2017-06-05 15:12:43 -04:00
# Kubernetes's OpenAPI Specification
2018-08-09 11:56:08 -04:00
This folder contains an [OpenAPI specification ](https://github.com/OAI/OpenAPI-Specification ) for Kubernetes API.
2017-06-05 15:12:43 -04:00
## Vendor Extensions
2017-12-05 14:14:06 -05:00
Kubernetes extends OpenAPI using these extensions. Note the version that
2022-06-14 21:29:23 -04:00
extensions have been added.
2017-06-05 15:12:43 -04:00
### `x-kubernetes-group-version-kind`
Operations and Definitions may have `x-kubernetes-group-version-kind` if they
2019-02-04 13:28:31 -05:00
are associated with a [kubernetes resource ](https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources ).
2017-06-05 15:12:43 -04:00
For example:
``` json
"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
2019-02-04 13:28:31 -05:00
are associated with a [kubernetes resource ](https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources ).
2017-06-05 15:12:43 -04:00
Action can be one of `get` , `list` , `put` , `patch` , `post` , `delete` , `deletecollection` , `watch` , `watchlist` , `proxy` , or `connect` .
For example:
``` json
"paths": {
...
"/api/v1/namespaces/{namespace}/pods/{name}": {
...
"get": {
...
"x-kubernetes-action": "list"
}
}
}
```
2025-12-06 02:37:35 -05:00
### `x-kubernetes-list-map-keys`
Operations and Definitions may have `x-kubernetes-list-maps-keys` if they
are associated with a [kubernetes resource ](https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources ). `x-kubernetes-list-type` = `map` specifies field names inside each list element to serve as unique keys for the list-as-map.
**For example:**
```json
{
"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"]
}
}
}
}
```
2017-06-05 15:12:43 -04:00
### `x-kubernetes-patch-strategy` and `x-kubernetes-patch-merge-key`
2017-10-19 11:59:07 -04:00
Some of the definitions may have these extensions. For more information about PatchStrategy and PatchMergeKey see
2019-02-04 13:28:31 -05:00
[strategic-merge-patch ](https://git.k8s.io/community/contributors/devel/sig-api-machinery/strategic-merge-patch.md ).