kube-openapi: k8s.io/kube-openapi/pkg/idl Index | Examples | Files

package idl

import "k8s.io/kube-openapi/pkg/idl"

The IDL package describes comment directives that may be applied to API types and fields.

Index

Examples

Package Files

doc.go

type ListMapKey Uses

type ListMapKey string

ListMapKey annotates map lists by specifying the key used as the index of the map.

This tag MUST only be used on lists that have the listType=map attribute, or the generation step will fail. Also, the value specified for this attribute must be a scalar typed field of the child structure (no nesting is supported).

An example of how this can be used is shown in the ListType (map) example.

Example:

+listMapKey=name

Using this tag will generate the following OpenAPI extension:

"x-kubernetes-list-map-key": "name"

type ListType Uses

type ListType string

ListType annotates a list to further describe its topology. It may have 3 possible values: "atomic", "map", or "set". Note that there is no default, and the generation step will fail if a list is found that is missing the tag.

This tag MUST only be used on lists, or the generation step will fail.

Atomic

Example:

+listType=atomic

Atomic lists will be entirely replaced when updated. This tag may be used on any type of list (struct, scalar, ...).

Using this tag will generate the following OpenAPI extension:

"x-kubernetes-list-type": "atomic"

Map

Example:

+listType=map

These lists are like maps in that their elements have a non-index key used to identify them. Order is preserved upon merge. Using the map tag on a list with non-struct elements will result in an error during the generation step.

Using this tag will generate the following OpenAPI extension:

"x-kubernetes-list-type": "map"

Set

Example:

+listType=set

Sets are lists that must not have multiple times the same value. Each value must be a scalar (or another atomic type).

Using this tag will generate the following OpenAPI extension:

"x-kubernetes-list-type": "set"

This example shows how to use the listType atomic attribute to specify that this list should be treated as a whole.

Code:

type SomeStruct struct {
    Name  string
    Value string
}

type SomeAPI struct {
    // +listType=atomic
    elements []SomeStruct
}

This example shows how to use the listType map attribute and how to specify a key to identify elements of the list. The listMapKey attribute is used to specify that Name is the key of the map.

Code:

type SomeStruct struct {
    Name  string
    Value string
}
type SomeAPI struct {
    // +listType=map
    // +listMapKey=name
    elements []SomeStruct
}

This example shows how to use the listType set attribute to specify that this list should be treated as a set: items in the list can't be duplicated.

Code:

type SomeAPI struct {
    // +listType=set
    keys []string
}

type MapType Uses

type MapType string

MapType annotates a map to further describe its topology. It may have only one value: "atomic". Atomic means that the entire map is considered as a whole, rather than as distinct values.

By default, a map will be considered as a set of distinct values that can be updated individually. This default WILL NOT generate any openapi extension, as this will also be interpreted as the default behavior in the openapi definition.

This tag MUST only be used on maps, or the generation step will fail.

Atomic

Example:

+mapType=atomic

Atomic maps will be entirely replaced when updated. This tag may be used on any map.

Using this tag will generate the following OpenAPI extension:

"x-kubernetes-map-type": "atomic"

This example shows how to use the mapType atomic attribute to specify that this map should be treated as a whole.

Code:

type SomeAPI struct {
    // +mapType=atomic
    elements map[string]string
}

type OpenAPIGen Uses

type OpenAPIGen string

OpenAPIGen needs to be described.

type Optional Uses

type Optional string

Optional needs to be described.

type PatchMergeKey Uses

type PatchMergeKey string

PatchMergeKey needs to be described.

type PatchStrategy Uses

type PatchStrategy string

PatchStrategy needs to be described.

type StructType Uses

type StructType string

StructType annotates a struct to further describe its topology. It may have only one value: "atomic". Atomic means that the entire struct is considered as a whole, rather than as distinct values.

By default, a struct will be considered as a set of distinct values that can be updated individually. This default WILL NOT generate any openapi extension, as this will also be interpreted as the default behavior in the openapi definition.

This tag MUST only be used on structs, or the generation step will fail.

Atomic

Example:

+structType=atomic

Atomic structs will be entirely replaced when updated. This tag may be used on any struct.

Using this tag will generate the following OpenAPI extension:

"x-kubernetes-struct-type": "atomic"

This example shows how to use the structType atomic attribute to specify that this struct should be treated as a whole.

Code:

type SomeStruct struct {
    Name  string
    Value string
}
type SomeAPI struct {
    // +structType=atomic
    elements SomeStruct
}

type Union Uses

type Union string

Union is TBD.

Updated 2018-04-27. Refresh now. Tools for package owners.