Show / Hide Table of Contents

Class V1beta1JSONPatch

JSONPatch defines a JSON Patch.

Inheritance
object
V1beta1JSONPatch
Implements
IEquatable<V1beta1JSONPatch>
Inherited Members
object.GetType()
object.MemberwiseClone()
object.Equals(object, object)
object.ReferenceEquals(object, object)
Namespace: k8s.Models
Assembly: KubernetesClient.dll
Syntax
public record V1beta1JSONPatch : IEquatable<V1beta1JSONPatch>

Constructors

View Source

V1beta1JSONPatch()

Declaration
public V1beta1JSONPatch()
View Source

V1beta1JSONPatch(V1beta1JSONPatch)

Declaration
protected V1beta1JSONPatch(V1beta1JSONPatch original)
Parameters
Type Name Description
V1beta1JSONPatch original

Properties

View Source

EqualityContract

Declaration
protected virtual Type EqualityContract { get; }
Property Value
Type Description
Type
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
Type Description
string

Methods

View Source

Equals(object?)

Declaration
public override bool Equals(object? obj)
Parameters
Type Name Description
object obj
Returns
Type Description
bool
Overrides
object.Equals(object)
View Source

Equals(V1beta1JSONPatch?)

Declaration
public virtual bool Equals(V1beta1JSONPatch? other)
Parameters
Type Name Description
V1beta1JSONPatch other
Returns
Type Description
bool
View Source

GetHashCode()

Declaration
public override int GetHashCode()
Returns
Type Description
int
Overrides
object.GetHashCode()
View Source

PrintMembers(StringBuilder)

Declaration
protected virtual bool PrintMembers(StringBuilder builder)
Parameters
Type Name Description
StringBuilder builder
Returns
Type Description
bool
View Source

ToString()

Declaration
public override string ToString()
Returns
Type Description
string
Overrides
object.ToString()

Operators

View Source

operator ==(V1beta1JSONPatch?, V1beta1JSONPatch?)

Declaration
public static bool operator ==(V1beta1JSONPatch? left, V1beta1JSONPatch? right)
Parameters
Type Name Description
V1beta1JSONPatch left
V1beta1JSONPatch right
Returns
Type Description
bool
View Source

operator !=(V1beta1JSONPatch?, V1beta1JSONPatch?)

Declaration
public static bool operator !=(V1beta1JSONPatch? left, V1beta1JSONPatch? right)
Parameters
Type Name Description
V1beta1JSONPatch left
V1beta1JSONPatch right
Returns
Type Description
bool

Implements

IEquatable<T>
  • View Source
In this article
Back to top Generated by DocFX