This PR adds missing OpenAPI vendor extension documentation for the following: x-kubernetes-list-map-keys The provided documentation includes simple additions to api/openapi-spec/README.md with similar format to present documentation. Fixes issue #131724
2.4 KiB
Kubernetes's OpenAPI Specification
This folder contains an OpenAPI specification for Kubernetes API.
Vendor Extensions
Kubernetes extends OpenAPI using these extensions. Note the version that extensions have been added.
x-kubernetes-group-version-kind
Operations and Definitions may have x-kubernetes-group-version-kind if they
are associated with a kubernetes resource.
For example:
"paths": {
...
"/api/v1/namespaces/{namespace}/pods/{name}": {
...
"get": {
...
"x-kubernetes-group-version-kind": {
"group": "",
"version": "v1",
"kind": "Pod"
}
}
}
}
x-kubernetes-action
Operations and Definitions may have x-kubernetes-action if they
are associated with a kubernetes resource.
Action can be one of get, list, put, patch, post, delete, deletecollection, watch, watchlist, proxy, or connect.
For example:
"paths": {
...
"/api/v1/namespaces/{namespace}/pods/{name}": {
...
"get": {
...
"x-kubernetes-action": "list"
}
}
}
x-kubernetes-list-map-keys
Operations and Definitions may have x-kubernetes-list-maps-keys if they
are associated with a kubernetes resource. x-kubernetes-list-type = map specifies field names inside each list element to serve as unique keys for the list-as-map.
For example:
{
"type": "object",
"properties": {
"servers": {
"type": "array",
"x-kubernetes-list-type": "map",
"x-kubernetes-list-map-keys": ["name"],
"items": {
"type": "object",
"properties": {
"name": { "type": "string" },
"address": { "type": "string" }
},
"required": ["name"]
}
}
}
}
x-kubernetes-patch-strategy and x-kubernetes-patch-merge-key
Some of the definitions may have these extensions. For more information about PatchStrategy and PatchMergeKey see strategic-merge-patch.