Class V1alpha1JSONPatch
JSONPatch defines a JSON Patch.
Inheritance
V1alpha1JSONPatch
Assembly: KubernetesClient.dll
Syntax
public record V1alpha1JSONPatch : IEquatable<V1alpha1JSONPatch>
Constructors
View Source
V1alpha1JSONPatch()
Declaration
public V1alpha1JSONPatch()
View Source
V1alpha1JSONPatch(V1alpha1JSONPatch)
Declaration
protected V1alpha1JSONPatch(V1alpha1JSONPatch original)
Parameters
Properties
View Source
EqualityContract
Declaration
protected virtual Type EqualityContract { get; }
Property Value
View Source
Expression
expression will be evaluated by CEL to create a JSON
patch. ref: https://github.com/google/cel-spec
expression must return an array of JSONPatch values.
For example, this CEL expression returns a JSON patch to conditionally modify a
value:
[
JSONPatch{op: "test", path: "/spec/example", value: "Red"},
JSONPatch{op: "replace", path: "/spec/example", value: "Green"}
]
To define an object for the patch value, use Object types. For example:
[
JSONPatch{
op: "add",
path: "/spec/selector",
value: Object.spec.selector{matchLabels: {"environment": "test"}}
}
]
To use strings containing '/' and '~' as JSONPatch path keys, use
"jsonpatch.escapeKey". For example:
[
JSONPatch{
op: "add",
path: "/metadata/labels/" + jsonpatch.escapeKey("example.com/environment"),
value: "test"
},
]
CEL expressions have access to the types needed to create JSON patches and
objects:
- 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields
'op', 'from', 'path' and 'value'.
See JSON patch for more details. The 'value' field may
be set to any of: string,
integer, array, map or object. If set, the 'path' and 'from' fields must be set
to a
JSON pointer string, where the
'jsonpatch.escapeKey()' CEL
function may be used to escape path keys containing '/' and '~'.
- 'Object' - CEL type of the resource object. - 'Object.<fieldName> ' - CEL type
of object field (such as 'Object.spec') -
'Object.<fieldName1>.<fieldName2>...<fieldNameN>` - CEL type of nested field
(such as 'Object.spec.containers')
CEL expressions have access to the contents of the API request, organized into
CEL variables as well as some other useful variables:
- 'object' - The object from the incoming request. The value is null for DELETE
requests. - 'oldObject' - The existing object. The value is null for CREATE
requests. - 'request' - Attributes of the API
request(ref). - 'params' -
Parameter resource referred to by the policy binding being evaluated. Only
populated if the policy has a ParamKind. - 'namespaceObject' - The namespace
object that the incoming object belongs to. The value is null for cluster-scoped
resources. - 'variables' - Map of composited variables, from its name to its
lazily evaluated value.
For example, a variable named 'foo' can be accessed as 'variables.foo'.
- 'authorizer' - A CEL Authorizer. May be used to perform authorization checks
for the principal (user or service account) of the request.
See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz
- 'authorizer.requestResource' - A CEL ResourceCheck constructed from the
'authorizer' and configured with the
request resource.
CEL expressions have access to Kubernetes CEL function
libraries
as well as:
- 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are
escaped as '~0' and `~1' respectively).
Only property names of the form [a-zA-Z_.-/][a-zA-Z0-9_.-/]* are accessible.
Required.
Declaration
[JsonPropertyName("expression")]
public string Expression { get; set; }
Property Value
Methods
View Source
Equals(object?)
Declaration
public override bool Equals(object? obj)
Parameters
| Type |
Name |
Description |
| object |
obj |
|
Returns
Overrides
View Source
Equals(V1alpha1JSONPatch?)
Declaration
public virtual bool Equals(V1alpha1JSONPatch? other)
Parameters
Returns
View Source
GetHashCode()
Declaration
public override int GetHashCode()
Returns
Overrides
View Source
PrintMembers(StringBuilder)
Declaration
protected virtual bool PrintMembers(StringBuilder builder)
Parameters
Returns
View Source
ToString()
Declaration
public override string ToString()
Returns
Overrides
Operators
View Source
operator ==(V1alpha1JSONPatch?, V1alpha1JSONPatch?)
Declaration
public static bool operator ==(V1alpha1JSONPatch? left, V1alpha1JSONPatch? right)
Parameters
Returns
View Source
operator !=(V1alpha1JSONPatch?, V1alpha1JSONPatch?)
Declaration
public static bool operator !=(V1alpha1JSONPatch? left, V1alpha1JSONPatch? right)
Parameters
Returns
Implements