From 46ac346dbf85289892ba6ce891148d6b7f72a401 Mon Sep 17 00:00:00 2001 From: Rohit Kumar Date: Wed, 19 Nov 2025 12:21:59 +0530 Subject: [PATCH 1/2] Integrate `ConditionsAPI` to machine resource --- api/compute/v1alpha1/machine_types.go | 19 + api/compute/v1alpha1/machinepool_types.go | 2 +- api/compute/v1alpha1/zz_generated.deepcopy.go | 24 + .../compute/v1alpha1/machinecondition.go | 68 + .../compute/v1alpha1/machinestatus.go | 14 + .../applyconfigurations/internal/internal.go | 28 + client-go/applyconfigurations/utils.go | 2 + client-go/openapi/api_violations.report | 1 + client-go/openapi/zz_generated.openapi.go | 73 +- .../broker-rbac/role.yaml | 1 - gen/swagger.json | 3817 ++++++++++------- ...ompute.ironcore.dev__v1alpha1_openapi.json | 131 +- ...torage.ironcore.dev__v1alpha1_openapi.json | 2852 +++++++++--- internal/apis/compute/machine_types.go | 19 + internal/apis/compute/machinepool_types.go | 2 +- .../v1alpha1/zz_generated.conversion.go | 40 + .../apis/compute/zz_generated.deepcopy.go | 24 + iri/apis/machine/v1alpha1/api.pb.go | 504 ++- iri/apis/machine/v1alpha1/api.proto | 10 + .../controllers/machine_controller.go | 98 + .../controllers/machine_controller_test.go | 45 + 21 files changed, 5362 insertions(+), 2412 deletions(-) create mode 100644 client-go/applyconfigurations/compute/v1alpha1/machinecondition.go diff --git a/api/compute/v1alpha1/machine_types.go b/api/compute/v1alpha1/machine_types.go index 1cf681a0e..bd07f6dab 100644 --- a/api/compute/v1alpha1/machine_types.go +++ b/api/compute/v1alpha1/machine_types.go @@ -186,12 +186,31 @@ const ( VolumeStateAttached VolumeState = "Attached" ) +// MachineConditionType is a type a MachineCondition can have. +type MachineConditionType string + +// MachineCondition is one of the conditions of a machine. +type MachineCondition struct { + // Type is the type of the condition. + Type MachineConditionType `json:"type"` + // Status is the status of the condition. + Status corev1.ConditionStatus `json:"status"` + // Reason is a machine-readable indication of why the condition is in a certain state. + Reason string `json:"reason"` + // Message is a human-readable explanation of why the condition has a certain reason / state. + Message string `json:"message"` + // LastTransitionTime is the last time the status of a condition has transitioned from one state to another. + LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty"` +} + // MachineStatus defines the observed state of Machine type MachineStatus struct { // MachineID is the provider specific machine ID in the format 'TYPE://MACHINE_ID'. MachineID string `json:"machineID,omitempty"` // ObservedGeneration is the last generation the MachinePool observed of the Machine. ObservedGeneration int64 `json:"observedGeneration,omitempty"` + // Conditions are the conditions of a machine. + Conditions []MachineCondition `json:"conditions,omitempty"` // State is the infrastructure state of the machine. State MachineState `json:"state,omitempty"` // NetworkInterfaces is the list of network interface states for the machine. diff --git a/api/compute/v1alpha1/machinepool_types.go b/api/compute/v1alpha1/machinepool_types.go index 9f6076df3..421b95cc4 100644 --- a/api/compute/v1alpha1/machinepool_types.go +++ b/api/compute/v1alpha1/machinepool_types.go @@ -85,7 +85,7 @@ type MachinePoolAddress struct { // MachinePoolConditionType is a type a MachinePoolCondition can have. type MachinePoolConditionType string -// MachinePoolCondition is one of the conditions of a volume. +// MachinePoolCondition is one of the conditions of a MachinePool. type MachinePoolCondition struct { // Type is the type of the condition. Type MachinePoolConditionType `json:"type"` diff --git a/api/compute/v1alpha1/zz_generated.deepcopy.go b/api/compute/v1alpha1/zz_generated.deepcopy.go index c62bdb9f6..5d79913ca 100644 --- a/api/compute/v1alpha1/zz_generated.deepcopy.go +++ b/api/compute/v1alpha1/zz_generated.deepcopy.go @@ -227,6 +227,23 @@ func (in *MachineClassList) DeepCopyObject() runtime.Object { return nil } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MachineCondition) DeepCopyInto(out *MachineCondition) { + *out = *in + in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineCondition. +func (in *MachineCondition) DeepCopy() *MachineCondition { + if in == nil { + return nil + } + out := new(MachineCondition) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *MachineExecOptions) DeepCopyInto(out *MachineExecOptions) { *out = *in @@ -531,6 +548,13 @@ func (in *MachineSpec) DeepCopy() *MachineSpec { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *MachineStatus) DeepCopyInto(out *MachineStatus) { *out = *in + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]MachineCondition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } if in.NetworkInterfaces != nil { in, out := &in.NetworkInterfaces, &out.NetworkInterfaces *out = make([]NetworkInterfaceStatus, len(*in)) diff --git a/client-go/applyconfigurations/compute/v1alpha1/machinecondition.go b/client-go/applyconfigurations/compute/v1alpha1/machinecondition.go new file mode 100644 index 000000000..4967adc30 --- /dev/null +++ b/client-go/applyconfigurations/compute/v1alpha1/machinecondition.go @@ -0,0 +1,68 @@ +// SPDX-FileCopyrightText: 2025 SAP SE or an SAP affiliate company and IronCore contributors +// SPDX-License-Identifier: Apache-2.0 + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + computev1alpha1 "github.com/ironcore-dev/ironcore/api/compute/v1alpha1" + v1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// MachineConditionApplyConfiguration represents a declarative configuration of the MachineCondition type for use +// with apply. +type MachineConditionApplyConfiguration struct { + Type *computev1alpha1.MachineConditionType `json:"type,omitempty"` + Status *v1.ConditionStatus `json:"status,omitempty"` + Reason *string `json:"reason,omitempty"` + Message *string `json:"message,omitempty"` + LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty"` +} + +// MachineConditionApplyConfiguration constructs a declarative configuration of the MachineCondition type for use with +// apply. +func MachineCondition() *MachineConditionApplyConfiguration { + return &MachineConditionApplyConfiguration{} +} + +// WithType sets the Type field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Type field is set to the value of the last call. +func (b *MachineConditionApplyConfiguration) WithType(value computev1alpha1.MachineConditionType) *MachineConditionApplyConfiguration { + b.Type = &value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *MachineConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *MachineConditionApplyConfiguration { + b.Status = &value + return b +} + +// WithReason sets the Reason field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Reason field is set to the value of the last call. +func (b *MachineConditionApplyConfiguration) WithReason(value string) *MachineConditionApplyConfiguration { + b.Reason = &value + return b +} + +// WithMessage sets the Message field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Message field is set to the value of the last call. +func (b *MachineConditionApplyConfiguration) WithMessage(value string) *MachineConditionApplyConfiguration { + b.Message = &value + return b +} + +// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the LastTransitionTime field is set to the value of the last call. +func (b *MachineConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *MachineConditionApplyConfiguration { + b.LastTransitionTime = &value + return b +} diff --git a/client-go/applyconfigurations/compute/v1alpha1/machinestatus.go b/client-go/applyconfigurations/compute/v1alpha1/machinestatus.go index da433872c..8ba1abf33 100644 --- a/client-go/applyconfigurations/compute/v1alpha1/machinestatus.go +++ b/client-go/applyconfigurations/compute/v1alpha1/machinestatus.go @@ -14,6 +14,7 @@ import ( type MachineStatusApplyConfiguration struct { MachineID *string `json:"machineID,omitempty"` ObservedGeneration *int64 `json:"observedGeneration,omitempty"` + Conditions []MachineConditionApplyConfiguration `json:"conditions,omitempty"` State *computev1alpha1.MachineState `json:"state,omitempty"` NetworkInterfaces []NetworkInterfaceStatusApplyConfiguration `json:"networkInterfaces,omitempty"` Volumes []VolumeStatusApplyConfiguration `json:"volumes,omitempty"` @@ -41,6 +42,19 @@ func (b *MachineStatusApplyConfiguration) WithObservedGeneration(value int64) *M return b } +// WithConditions adds the given value to the Conditions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Conditions field. +func (b *MachineStatusApplyConfiguration) WithConditions(values ...*MachineConditionApplyConfiguration) *MachineStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithConditions") + } + b.Conditions = append(b.Conditions, *values[i]) + } + return b +} + // WithState sets the State field in the declarative configuration to the given value // and returns the receiver, so that objects can be built by chaining "With" function invocations. // If called multiple times, the State field is set to the value of the last call. diff --git a/client-go/applyconfigurations/internal/internal.go b/client-go/applyconfigurations/internal/internal.go index caceb5113..ffcb5ac39 100644 --- a/client-go/applyconfigurations/internal/internal.go +++ b/client-go/applyconfigurations/internal/internal.go @@ -169,6 +169,28 @@ var schemaYAML = typed.YAMLObject(`types: type: namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta default: {} +- name: com.github.ironcore-dev.ironcore.api.compute.v1alpha1.MachineCondition + map: + fields: + - name: lastTransitionTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + - name: message + type: + scalar: string + default: "" + - name: reason + type: + scalar: string + default: "" + - name: status + type: + scalar: string + default: "" + - name: type + type: + scalar: string + default: "" - name: com.github.ironcore-dev.ironcore.api.compute.v1alpha1.MachinePool map: fields: @@ -344,6 +366,12 @@ var schemaYAML = typed.YAMLObject(`types: - name: com.github.ironcore-dev.ironcore.api.compute.v1alpha1.MachineStatus map: fields: + - name: conditions + type: + list: + elementType: + namedType: com.github.ironcore-dev.ironcore.api.compute.v1alpha1.MachineCondition + elementRelationship: atomic - name: machineID type: scalar: string diff --git a/client-go/applyconfigurations/utils.go b/client-go/applyconfigurations/utils.go index 6683f67a6..1b2eaf527 100644 --- a/client-go/applyconfigurations/utils.go +++ b/client-go/applyconfigurations/utils.go @@ -43,6 +43,8 @@ func ForKind(kind schema.GroupVersionKind) interface{} { return &computev1alpha1.MachineApplyConfiguration{} case v1alpha1.SchemeGroupVersion.WithKind("MachineClass"): return &computev1alpha1.MachineClassApplyConfiguration{} + case v1alpha1.SchemeGroupVersion.WithKind("MachineCondition"): + return &computev1alpha1.MachineConditionApplyConfiguration{} case v1alpha1.SchemeGroupVersion.WithKind("MachinePool"): return &computev1alpha1.MachinePoolApplyConfiguration{} case v1alpha1.SchemeGroupVersion.WithKind("MachinePoolAddress"): diff --git a/client-go/openapi/api_violations.report b/client-go/openapi/api_violations.report index a4c8c3576..ef96966c9 100644 --- a/client-go/openapi/api_violations.report +++ b/client-go/openapi/api_violations.report @@ -6,6 +6,7 @@ API rule violation: list_type_missing,github.com/ironcore-dev/ironcore/api/compu API rule violation: list_type_missing,github.com/ironcore-dev/ironcore/api/compute/v1alpha1,MachineSpec,NetworkInterfaces API rule violation: list_type_missing,github.com/ironcore-dev/ironcore/api/compute/v1alpha1,MachineSpec,Tolerations API rule violation: list_type_missing,github.com/ironcore-dev/ironcore/api/compute/v1alpha1,MachineSpec,Volumes +API rule violation: list_type_missing,github.com/ironcore-dev/ironcore/api/compute/v1alpha1,MachineStatus,Conditions API rule violation: list_type_missing,github.com/ironcore-dev/ironcore/api/compute/v1alpha1,MachineStatus,NetworkInterfaces API rule violation: list_type_missing,github.com/ironcore-dev/ironcore/api/compute/v1alpha1,MachineStatus,Volumes API rule violation: list_type_missing,github.com/ironcore-dev/ironcore/api/core/v1alpha1,ResourceScopeSelector,MatchExpressions diff --git a/client-go/openapi/zz_generated.openapi.go b/client-go/openapi/zz_generated.openapi.go index aad1b066f..0cfda5da2 100644 --- a/client-go/openapi/zz_generated.openapi.go +++ b/client-go/openapi/zz_generated.openapi.go @@ -37,6 +37,7 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA "github.com/ironcore-dev/ironcore/api/compute/v1alpha1.Machine": schema_ironcore_api_compute_v1alpha1_Machine(ref), "github.com/ironcore-dev/ironcore/api/compute/v1alpha1.MachineClass": schema_ironcore_api_compute_v1alpha1_MachineClass(ref), "github.com/ironcore-dev/ironcore/api/compute/v1alpha1.MachineClassList": schema_ironcore_api_compute_v1alpha1_MachineClassList(ref), + "github.com/ironcore-dev/ironcore/api/compute/v1alpha1.MachineCondition": schema_ironcore_api_compute_v1alpha1_MachineCondition(ref), "github.com/ironcore-dev/ironcore/api/compute/v1alpha1.MachineExecOptions": schema_ironcore_api_compute_v1alpha1_MachineExecOptions(ref), "github.com/ironcore-dev/ironcore/api/compute/v1alpha1.MachineList": schema_ironcore_api_compute_v1alpha1_MachineList(ref), "github.com/ironcore-dev/ironcore/api/compute/v1alpha1.MachinePool": schema_ironcore_api_compute_v1alpha1_MachinePool(ref), @@ -1008,6 +1009,60 @@ func schema_ironcore_api_compute_v1alpha1_MachineClassList(ref common.ReferenceC } } +func schema_ironcore_api_compute_v1alpha1_MachineCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "MachineCondition is one of the conditions of a machine.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "type": { + SchemaProps: spec.SchemaProps{ + Description: "Type is the type of the condition.", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Description: "Status is the status of the condition.", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "reason": { + SchemaProps: spec.SchemaProps{ + Description: "Reason is a machine-readable indication of why the condition is in a certain state.", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "message": { + SchemaProps: spec.SchemaProps{ + Description: "Message is a human-readable explanation of why the condition has a certain reason / state.", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "lastTransitionTime": { + SchemaProps: spec.SchemaProps{ + Description: "LastTransitionTime is the last time the status of a condition has transitioned from one state to another.", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + }, + Required: []string{"type", "status", "reason", "message"}, + }, + }, + Dependencies: []string{ + "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, + } +} + func schema_ironcore_api_compute_v1alpha1_MachineExecOptions(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ @@ -1168,7 +1223,7 @@ func schema_ironcore_api_compute_v1alpha1_MachinePoolCondition(ref common.Refere return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "MachinePoolCondition is one of the conditions of a volume.", + Description: "MachinePoolCondition is one of the conditions of a MachinePool.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "type": { @@ -1596,6 +1651,20 @@ func schema_ironcore_api_compute_v1alpha1_MachineStatus(ref common.ReferenceCall Format: "int64", }, }, + "conditions": { + SchemaProps: spec.SchemaProps{ + Description: "Conditions are the conditions of a machine.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/ironcore-dev/ironcore/api/compute/v1alpha1.MachineCondition"), + }, + }, + }, + }, + }, "state": { SchemaProps: spec.SchemaProps{ Description: "State is the infrastructure state of the machine.\n\nPossible enum values:\n - `\"Pending\"` means the Machine has been accepted by the system, but not yet completely started. This includes time before being bound to a MachinePool, as well as time spent setting up the Machine on that MachinePool.\n - `\"Running\"` means the machine is running on a MachinePool.\n - `\"Shutdown\"` means the machine is shut down.\n - `\"Terminated\"` means the machine has been permanently stopped and cannot be started.\n - `\"Terminating\"` means the machine that is terminating.", @@ -1636,7 +1705,7 @@ func schema_ironcore_api_compute_v1alpha1_MachineStatus(ref common.ReferenceCall }, }, Dependencies: []string{ - "github.com/ironcore-dev/ironcore/api/compute/v1alpha1.NetworkInterfaceStatus", "github.com/ironcore-dev/ironcore/api/compute/v1alpha1.VolumeStatus"}, + "github.com/ironcore-dev/ironcore/api/compute/v1alpha1.MachineCondition", "github.com/ironcore-dev/ironcore/api/compute/v1alpha1.NetworkInterfaceStatus", "github.com/ironcore-dev/ironcore/api/compute/v1alpha1.VolumeStatus"}, } } diff --git a/config/volumepoollet-broker/broker-rbac/role.yaml b/config/volumepoollet-broker/broker-rbac/role.yaml index de350fa52..26d55bec4 100644 --- a/config/volumepoollet-broker/broker-rbac/role.yaml +++ b/config/volumepoollet-broker/broker-rbac/role.yaml @@ -28,7 +28,6 @@ rules: - storage.ironcore.dev resources: - volumes - - volumesnapshots verbs: - create - delete diff --git a/gen/swagger.json b/gen/swagger.json index f9deba243..61730c98e 100644 --- a/gen/swagger.json +++ b/gen/swagger.json @@ -2,7 +2,7 @@ "swagger": "2.0", "info": { "title": "Kubernetes", - "version": "1.32" + "version": "1.34" }, "paths": { "/.well-known/openid-configuration/": { @@ -49512,9 +49512,9 @@ } ] }, - "/apis/networking.k8s.io/v1/ipaddresses": { + "/apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses": { "get": { - "description": "list or watch objects of kind IPAddress", + "description": "list or watch objects of kind Ingress", "consumes": [ "*/*" ], @@ -49531,7 +49531,7 @@ "tags": [ "networking_v1" ], - "operationId": "listNetworkingV1IPAddress", + "operationId": "listNetworkingV1NamespacedIngress", "parameters": [ { "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" @@ -49568,7 +49568,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IPAddressList" + "$ref": "#/definitions/io.k8s.api.networking.v1.IngressList" } }, "401": { @@ -49578,12 +49578,12 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", - "kind": "IPAddress", + "kind": "Ingress", "version": "v1" } }, "post": { - "description": "create an IPAddress", + "description": "create an Ingress", "consumes": [ "*/*" ], @@ -49598,14 +49598,14 @@ "tags": [ "networking_v1" ], - "operationId": "createNetworkingV1IPAddress", + "operationId": "createNetworkingV1NamespacedIngress", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IPAddress" + "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" } }, { @@ -49630,19 +49630,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IPAddress" + "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IPAddress" + "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IPAddress" + "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" } }, "401": { @@ -49652,12 +49652,12 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", - "kind": "IPAddress", + "kind": "Ingress", "version": "v1" } }, "delete": { - "description": "delete collection of IPAddress", + "description": "delete collection of Ingress", "consumes": [ "*/*" ], @@ -49672,7 +49672,7 @@ "tags": [ "networking_v1" ], - "operationId": "deleteNetworkingV1CollectionIPAddress", + "operationId": "deleteNetworkingV1CollectionNamespacedIngress", "parameters": [ { "$ref": "#/parameters/body-2Y1dVQaQ" @@ -49735,19 +49735,22 @@ "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", - "kind": "IPAddress", + "kind": "Ingress", "version": "v1" } }, "parameters": [ + { + "$ref": "#/parameters/namespace-vgWSWtn3" + }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ] }, - "/apis/networking.k8s.io/v1/ipaddresses/{name}": { + "/apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses/{name}": { "get": { - "description": "read the specified IPAddress", + "description": "read the specified Ingress", "consumes": [ "*/*" ], @@ -49762,12 +49765,12 @@ "tags": [ "networking_v1" ], - "operationId": "readNetworkingV1IPAddress", + "operationId": "readNetworkingV1NamespacedIngress", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IPAddress" + "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" } }, "401": { @@ -49777,12 +49780,12 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", - "kind": "IPAddress", + "kind": "Ingress", "version": "v1" } }, "put": { - "description": "replace the specified IPAddress", + "description": "replace the specified Ingress", "consumes": [ "*/*" ], @@ -49797,14 +49800,14 @@ "tags": [ "networking_v1" ], - "operationId": "replaceNetworkingV1IPAddress", + "operationId": "replaceNetworkingV1NamespacedIngress", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IPAddress" + "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" } }, { @@ -49829,13 +49832,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IPAddress" + "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IPAddress" + "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" } }, "401": { @@ -49845,12 +49848,12 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", - "kind": "IPAddress", + "kind": "Ingress", "version": "v1" } }, "delete": { - "description": "delete an IPAddress", + "description": "delete an Ingress", "consumes": [ "*/*" ], @@ -49865,7 +49868,7 @@ "tags": [ "networking_v1" ], - "operationId": "deleteNetworkingV1IPAddress", + "operationId": "deleteNetworkingV1NamespacedIngress", "parameters": [ { "$ref": "#/parameters/body-2Y1dVQaQ" @@ -49910,12 +49913,12 @@ "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", - "kind": "IPAddress", + "kind": "Ingress", "version": "v1" } }, "patch": { - "description": "partially update the specified IPAddress", + "description": "partially update the specified Ingress", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -49933,7 +49936,7 @@ "tags": [ "networking_v1" ], - "operationId": "patchNetworkingV1IPAddress", + "operationId": "patchNetworkingV1NamespacedIngress", "parameters": [ { "$ref": "#/parameters/body-78PwaGsr" @@ -49963,13 +49966,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IPAddress" + "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IPAddress" + "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" } }, "401": { @@ -49979,7 +49982,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", - "kind": "IPAddress", + "kind": "Ingress", "version": "v1" } }, @@ -49987,28 +49990,29 @@ { "uniqueItems": true, "type": "string", - "description": "name of the IPAddress", + "description": "name of the Ingress", "name": "name", "in": "path", "required": true }, + { + "$ref": "#/parameters/namespace-vgWSWtn3" + }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ] }, - "/apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses": { + "/apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses/{name}/status": { "get": { - "description": "list or watch objects of kind Ingress", + "description": "read status of the specified Ingress", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" @@ -50016,59 +50020,27 @@ "tags": [ "networking_v1" ], - "operationId": "listNetworkingV1NamespacedIngress", - "parameters": [ - { - "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" - }, - { - "$ref": "#/parameters/continue-QfD61s0i" - }, - { - "$ref": "#/parameters/fieldSelector-xIcQKXFG" - }, - { - "$ref": "#/parameters/labelSelector-5Zw57w4C" - }, - { - "$ref": "#/parameters/limit-1NfNmdNH" - }, - { - "$ref": "#/parameters/resourceVersion-5WAnf1kx" - }, - { - "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" - }, - { - "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" - }, - { - "$ref": "#/parameters/timeoutSeconds-yvYezaOC" - }, - { - "$ref": "#/parameters/watch-XNNPZGbK" - } - ], + "operationId": "readNetworkingV1NamespacedIngressStatus", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.IngressList" + "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "Ingress", "version": "v1" } }, - "post": { - "description": "create an Ingress", + "put": { + "description": "replace status of the specified Ingress", "consumes": [ "*/*" ], @@ -50083,7 +50055,7 @@ "tags": [ "networking_v1" ], - "operationId": "createNetworkingV1NamespacedIngress", + "operationId": "replaceNetworkingV1NamespacedIngressStatus", "parameters": [ { "name": "body", @@ -50124,27 +50096,24 @@ "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" } }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" - } - }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "Ingress", "version": "v1" } }, - "delete": { - "description": "delete collection of Ingress", + "patch": { + "description": "partially update status of the specified Ingress", "consumes": [ - "*/*" + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" ], "produces": [ "application/json", @@ -50157,13 +50126,10 @@ "tags": [ "networking_v1" ], - "operationId": "deleteNetworkingV1CollectionNamespacedIngress", + "operationId": "patchNetworkingV1NamespacedIngressStatus", "parameters": [ { - "$ref": "#/parameters/body-2Y1dVQaQ" - }, - { - "$ref": "#/parameters/continue-QfD61s0i" + "$ref": "#/parameters/body-78PwaGsr" }, { "uniqueItems": true, @@ -50173,51 +50139,37 @@ "in": "query" }, { - "$ref": "#/parameters/fieldSelector-xIcQKXFG" - }, - { - "$ref": "#/parameters/gracePeriodSeconds--K5HaBOS" - }, - { - "$ref": "#/parameters/ignoreStoreReadErrorWithClusterBreakingPotential-QbNkfIqj" - }, - { - "$ref": "#/parameters/labelSelector-5Zw57w4C" - }, - { - "$ref": "#/parameters/limit-1NfNmdNH" - }, - { - "$ref": "#/parameters/orphanDependents-uRB25kX5" - }, - { - "$ref": "#/parameters/propagationPolicy-6jk3prlO" - }, - { - "$ref": "#/parameters/resourceVersion-5WAnf1kx" - }, - { - "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" + "$ref": "#/parameters/fieldManager-7c6nTn1T" }, { - "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" + "uniqueItems": true, + "type": "string", + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "name": "fieldValidation", + "in": "query" }, { - "$ref": "#/parameters/timeoutSeconds-yvYezaOC" + "$ref": "#/parameters/force-tOGGb0Yi" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "deletecollection", + "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "Ingress", @@ -50225,6 +50177,14 @@ } }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the Ingress", + "name": "name", + "in": "path", + "required": true + }, { "$ref": "#/parameters/namespace-vgWSWtn3" }, @@ -50233,16 +50193,18 @@ } ] }, - "/apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses/{name}": { + "/apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies": { "get": { - "description": "read the specified Ingress", + "description": "list or watch objects of kind NetworkPolicy", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" @@ -50250,27 +50212,59 @@ "tags": [ "networking_v1" ], - "operationId": "readNetworkingV1NamespacedIngress", + "operationId": "listNetworkingV1NamespacedNetworkPolicy", + "parameters": [ + { + "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" + }, + { + "$ref": "#/parameters/continue-QfD61s0i" + }, + { + "$ref": "#/parameters/fieldSelector-xIcQKXFG" + }, + { + "$ref": "#/parameters/labelSelector-5Zw57w4C" + }, + { + "$ref": "#/parameters/limit-1NfNmdNH" + }, + { + "$ref": "#/parameters/resourceVersion-5WAnf1kx" + }, + { + "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" + }, + { + "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" + }, + { + "$ref": "#/parameters/timeoutSeconds-yvYezaOC" + }, + { + "$ref": "#/parameters/watch-XNNPZGbK" + } + ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyList" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "get", + "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", - "kind": "Ingress", + "kind": "NetworkPolicy", "version": "v1" } }, - "put": { - "description": "replace the specified Ingress", + "post": { + "description": "create a NetworkPolicy", "consumes": [ "*/*" ], @@ -50285,14 +50279,14 @@ "tags": [ "networking_v1" ], - "operationId": "replaceNetworkingV1NamespacedIngress", + "operationId": "createNetworkingV1NamespacedNetworkPolicy", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" } }, { @@ -50317,28 +50311,34 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "put", + "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", - "kind": "Ingress", + "kind": "NetworkPolicy", "version": "v1" } }, "delete": { - "description": "delete an Ingress", + "description": "delete collection of NetworkPolicy", "consumes": [ "*/*" ], @@ -50353,11 +50353,14 @@ "tags": [ "networking_v1" ], - "operationId": "deleteNetworkingV1NamespacedIngress", + "operationId": "deleteNetworkingV1CollectionNamespacedNetworkPolicy", "parameters": [ { "$ref": "#/parameters/body-2Y1dVQaQ" }, + { + "$ref": "#/parameters/continue-QfD61s0i" + }, { "uniqueItems": true, "type": "string", @@ -50365,6 +50368,9 @@ "name": "dryRun", "in": "query" }, + { + "$ref": "#/parameters/fieldSelector-xIcQKXFG" + }, { "$ref": "#/parameters/gracePeriodSeconds--K5HaBOS" }, @@ -50372,114 +50378,49 @@ "$ref": "#/parameters/ignoreStoreReadErrorWithClusterBreakingPotential-QbNkfIqj" }, { - "$ref": "#/parameters/orphanDependents-uRB25kX5" + "$ref": "#/parameters/labelSelector-5Zw57w4C" }, { - "$ref": "#/parameters/propagationPolicy-6jk3prlO" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } + "$ref": "#/parameters/limit-1NfNmdNH" }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } + { + "$ref": "#/parameters/orphanDependents-uRB25kX5" }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1" - } - }, - "patch": { - "description": "partially update the specified Ingress", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "operationId": "patchNetworkingV1NamespacedIngress", - "parameters": [ { - "$ref": "#/parameters/body-78PwaGsr" + "$ref": "#/parameters/propagationPolicy-6jk3prlO" }, { - "uniqueItems": true, - "type": "string", - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "name": "dryRun", - "in": "query" + "$ref": "#/parameters/resourceVersion-5WAnf1kx" }, { - "$ref": "#/parameters/fieldManager-7c6nTn1T" + "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" }, { - "uniqueItems": true, - "type": "string", - "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", - "name": "fieldValidation", - "in": "query" + "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" }, { - "$ref": "#/parameters/force-tOGGb0Yi" + "$ref": "#/parameters/timeoutSeconds-yvYezaOC" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "patch", + "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", - "kind": "Ingress", + "kind": "NetworkPolicy", "version": "v1" } }, "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Ingress", - "name": "name", - "in": "path", - "required": true - }, { "$ref": "#/parameters/namespace-vgWSWtn3" }, @@ -50488,9 +50429,9 @@ } ] }, - "/apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses/{name}/status": { + "/apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}": { "get": { - "description": "read status of the specified Ingress", + "description": "read the specified NetworkPolicy", "consumes": [ "*/*" ], @@ -50505,12 +50446,12 @@ "tags": [ "networking_v1" ], - "operationId": "readNetworkingV1NamespacedIngressStatus", + "operationId": "readNetworkingV1NamespacedNetworkPolicy", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" } }, "401": { @@ -50520,12 +50461,12 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", - "kind": "Ingress", + "kind": "NetworkPolicy", "version": "v1" } }, "put": { - "description": "replace status of the specified Ingress", + "description": "replace the specified NetworkPolicy", "consumes": [ "*/*" ], @@ -50540,14 +50481,14 @@ "tags": [ "networking_v1" ], - "operationId": "replaceNetworkingV1NamespacedIngressStatus", + "operationId": "replaceNetworkingV1NamespacedNetworkPolicy", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" } }, { @@ -50572,13 +50513,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" } }, "401": { @@ -50588,12 +50529,77 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", - "kind": "Ingress", + "kind": "NetworkPolicy", + "version": "v1" + } + }, + "delete": { + "description": "delete a NetworkPolicy", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "networking_v1" + ], + "operationId": "deleteNetworkingV1NamespacedNetworkPolicy", + "parameters": [ + { + "$ref": "#/parameters/body-2Y1dVQaQ" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "name": "dryRun", + "in": "query" + }, + { + "$ref": "#/parameters/gracePeriodSeconds--K5HaBOS" + }, + { + "$ref": "#/parameters/ignoreStoreReadErrorWithClusterBreakingPotential-QbNkfIqj" + }, + { + "$ref": "#/parameters/orphanDependents-uRB25kX5" + }, + { + "$ref": "#/parameters/propagationPolicy-6jk3prlO" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "NetworkPolicy", "version": "v1" } }, "patch": { - "description": "partially update status of the specified Ingress", + "description": "partially update the specified NetworkPolicy", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -50611,7 +50617,7 @@ "tags": [ "networking_v1" ], - "operationId": "patchNetworkingV1NamespacedIngressStatus", + "operationId": "patchNetworkingV1NamespacedNetworkPolicy", "parameters": [ { "$ref": "#/parameters/body-78PwaGsr" @@ -50641,13 +50647,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" } }, "401": { @@ -50657,7 +50663,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", - "kind": "Ingress", + "kind": "NetworkPolicy", "version": "v1" } }, @@ -50665,7 +50671,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the Ingress", + "description": "name of the NetworkPolicy", "name": "name", "in": "path", "required": true @@ -50678,7 +50684,7 @@ } ] }, - "/apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies": { + "/apis/networking.k8s.io/v1/networkpolicies": { "get": { "description": "list or watch objects of kind NetworkPolicy", "consumes": [ @@ -50697,7 +50703,81 @@ "tags": [ "networking_v1" ], - "operationId": "listNetworkingV1NamespacedNetworkPolicy", + "operationId": "listNetworkingV1NetworkPolicyForAllNamespaces", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "networking.k8s.io", + "kind": "NetworkPolicy", + "version": "v1" + } + }, + "parameters": [ + { + "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" + }, + { + "$ref": "#/parameters/continue-QfD61s0i" + }, + { + "$ref": "#/parameters/fieldSelector-xIcQKXFG" + }, + { + "$ref": "#/parameters/labelSelector-5Zw57w4C" + }, + { + "$ref": "#/parameters/limit-1NfNmdNH" + }, + { + "$ref": "#/parameters/pretty-tJGM1-ng" + }, + { + "$ref": "#/parameters/resourceVersion-5WAnf1kx" + }, + { + "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" + }, + { + "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" + }, + { + "$ref": "#/parameters/timeoutSeconds-yvYezaOC" + }, + { + "$ref": "#/parameters/watch-XNNPZGbK" + } + ] + }, + "/apis/networking.k8s.io/v1/servicecidrs": { + "get": { + "description": "list or watch objects of kind ServiceCIDR", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "networking_v1" + ], + "operationId": "listNetworkingV1ServiceCIDR", "parameters": [ { "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" @@ -50734,7 +50814,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyList" + "$ref": "#/definitions/io.k8s.api.networking.v1.ServiceCIDRList" } }, "401": { @@ -50744,12 +50824,12 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", - "kind": "NetworkPolicy", + "kind": "ServiceCIDR", "version": "v1" } }, "post": { - "description": "create a NetworkPolicy", + "description": "create a ServiceCIDR", "consumes": [ "*/*" ], @@ -50764,14 +50844,14 @@ "tags": [ "networking_v1" ], - "operationId": "createNetworkingV1NamespacedNetworkPolicy", + "operationId": "createNetworkingV1ServiceCIDR", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" + "$ref": "#/definitions/io.k8s.api.networking.v1.ServiceCIDR" } }, { @@ -50796,19 +50876,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" + "$ref": "#/definitions/io.k8s.api.networking.v1.ServiceCIDR" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" + "$ref": "#/definitions/io.k8s.api.networking.v1.ServiceCIDR" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" + "$ref": "#/definitions/io.k8s.api.networking.v1.ServiceCIDR" } }, "401": { @@ -50818,12 +50898,12 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", - "kind": "NetworkPolicy", + "kind": "ServiceCIDR", "version": "v1" } }, "delete": { - "description": "delete collection of NetworkPolicy", + "description": "delete collection of ServiceCIDR", "consumes": [ "*/*" ], @@ -50838,7 +50918,7 @@ "tags": [ "networking_v1" ], - "operationId": "deleteNetworkingV1CollectionNamespacedNetworkPolicy", + "operationId": "deleteNetworkingV1CollectionServiceCIDR", "parameters": [ { "$ref": "#/parameters/body-2Y1dVQaQ" @@ -50901,22 +50981,19 @@ "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", - "kind": "NetworkPolicy", + "kind": "ServiceCIDR", "version": "v1" } }, "parameters": [ - { - "$ref": "#/parameters/namespace-vgWSWtn3" - }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ] }, - "/apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}": { + "/apis/networking.k8s.io/v1/servicecidrs/{name}": { "get": { - "description": "read the specified NetworkPolicy", + "description": "read the specified ServiceCIDR", "consumes": [ "*/*" ], @@ -50931,12 +51008,12 @@ "tags": [ "networking_v1" ], - "operationId": "readNetworkingV1NamespacedNetworkPolicy", + "operationId": "readNetworkingV1ServiceCIDR", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" + "$ref": "#/definitions/io.k8s.api.networking.v1.ServiceCIDR" } }, "401": { @@ -50946,12 +51023,12 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", - "kind": "NetworkPolicy", + "kind": "ServiceCIDR", "version": "v1" } }, "put": { - "description": "replace the specified NetworkPolicy", + "description": "replace the specified ServiceCIDR", "consumes": [ "*/*" ], @@ -50966,14 +51043,14 @@ "tags": [ "networking_v1" ], - "operationId": "replaceNetworkingV1NamespacedNetworkPolicy", + "operationId": "replaceNetworkingV1ServiceCIDR", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" + "$ref": "#/definitions/io.k8s.api.networking.v1.ServiceCIDR" } }, { @@ -50998,13 +51075,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" + "$ref": "#/definitions/io.k8s.api.networking.v1.ServiceCIDR" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" + "$ref": "#/definitions/io.k8s.api.networking.v1.ServiceCIDR" } }, "401": { @@ -51014,12 +51091,12 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", - "kind": "NetworkPolicy", + "kind": "ServiceCIDR", "version": "v1" } }, "delete": { - "description": "delete a NetworkPolicy", + "description": "delete a ServiceCIDR", "consumes": [ "*/*" ], @@ -51034,7 +51111,7 @@ "tags": [ "networking_v1" ], - "operationId": "deleteNetworkingV1NamespacedNetworkPolicy", + "operationId": "deleteNetworkingV1ServiceCIDR", "parameters": [ { "$ref": "#/parameters/body-2Y1dVQaQ" @@ -51079,12 +51156,12 @@ "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", - "kind": "NetworkPolicy", + "kind": "ServiceCIDR", "version": "v1" } }, "patch": { - "description": "partially update the specified NetworkPolicy", + "description": "partially update the specified ServiceCIDR", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -51102,7 +51179,7 @@ "tags": [ "networking_v1" ], - "operationId": "patchNetworkingV1NamespacedNetworkPolicy", + "operationId": "patchNetworkingV1ServiceCIDR", "parameters": [ { "$ref": "#/parameters/body-78PwaGsr" @@ -51132,13 +51209,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" + "$ref": "#/definitions/io.k8s.api.networking.v1.ServiceCIDR" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" + "$ref": "#/definitions/io.k8s.api.networking.v1.ServiceCIDR" } }, "401": { @@ -51148,7 +51225,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", - "kind": "NetworkPolicy", + "kind": "ServiceCIDR", "version": "v1" } }, @@ -51156,105 +51233,26 @@ { "uniqueItems": true, "type": "string", - "description": "name of the NetworkPolicy", + "description": "name of the ServiceCIDR", "name": "name", "in": "path", "required": true }, - { - "$ref": "#/parameters/namespace-vgWSWtn3" - }, - { - "$ref": "#/parameters/pretty-tJGM1-ng" - } - ] - }, - "/apis/networking.k8s.io/v1/networkpolicies": { - "get": { - "description": "list or watch objects of kind NetworkPolicy", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "operationId": "listNetworkingV1NetworkPolicyForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "parameters": [ - { - "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" - }, - { - "$ref": "#/parameters/continue-QfD61s0i" - }, - { - "$ref": "#/parameters/fieldSelector-xIcQKXFG" - }, - { - "$ref": "#/parameters/labelSelector-5Zw57w4C" - }, - { - "$ref": "#/parameters/limit-1NfNmdNH" - }, { "$ref": "#/parameters/pretty-tJGM1-ng" - }, - { - "$ref": "#/parameters/resourceVersion-5WAnf1kx" - }, - { - "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" - }, - { - "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" - }, - { - "$ref": "#/parameters/timeoutSeconds-yvYezaOC" - }, - { - "$ref": "#/parameters/watch-XNNPZGbK" } ] }, - "/apis/networking.k8s.io/v1/servicecidrs": { + "/apis/networking.k8s.io/v1/servicecidrs/{name}/status": { "get": { - "description": "list or watch objects of kind ServiceCIDR", + "description": "read status of the specified ServiceCIDR", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" + "application/vnd.kubernetes.protobuf" ], "schemes": [ "https" @@ -51262,59 +51260,27 @@ "tags": [ "networking_v1" ], - "operationId": "listNetworkingV1ServiceCIDR", - "parameters": [ - { - "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" - }, - { - "$ref": "#/parameters/continue-QfD61s0i" - }, - { - "$ref": "#/parameters/fieldSelector-xIcQKXFG" - }, - { - "$ref": "#/parameters/labelSelector-5Zw57w4C" - }, - { - "$ref": "#/parameters/limit-1NfNmdNH" - }, - { - "$ref": "#/parameters/resourceVersion-5WAnf1kx" - }, - { - "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" - }, - { - "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" - }, - { - "$ref": "#/parameters/timeoutSeconds-yvYezaOC" - }, - { - "$ref": "#/parameters/watch-XNNPZGbK" - } - ], + "operationId": "readNetworkingV1ServiceCIDRStatus", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.ServiceCIDRList" + "$ref": "#/definitions/io.k8s.api.networking.v1.ServiceCIDR" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "ServiceCIDR", "version": "v1" } }, - "post": { - "description": "create a ServiceCIDR", + "put": { + "description": "replace status of the specified ServiceCIDR", "consumes": [ "*/*" ], @@ -51329,7 +51295,7 @@ "tags": [ "networking_v1" ], - "operationId": "createNetworkingV1ServiceCIDR", + "operationId": "replaceNetworkingV1ServiceCIDRStatus", "parameters": [ { "name": "body", @@ -51370,27 +51336,24 @@ "$ref": "#/definitions/io.k8s.api.networking.v1.ServiceCIDR" } }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.ServiceCIDR" - } - }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "ServiceCIDR", "version": "v1" } }, - "delete": { - "description": "delete collection of ServiceCIDR", + "patch": { + "description": "partially update status of the specified ServiceCIDR", "consumes": [ - "*/*" + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" ], "produces": [ "application/json", @@ -51403,13 +51366,10 @@ "tags": [ "networking_v1" ], - "operationId": "deleteNetworkingV1CollectionServiceCIDR", + "operationId": "patchNetworkingV1ServiceCIDRStatus", "parameters": [ { - "$ref": "#/parameters/body-2Y1dVQaQ" - }, - { - "$ref": "#/parameters/continue-QfD61s0i" + "$ref": "#/parameters/body-78PwaGsr" }, { "uniqueItems": true, @@ -51419,51 +51379,37 @@ "in": "query" }, { - "$ref": "#/parameters/fieldSelector-xIcQKXFG" - }, - { - "$ref": "#/parameters/gracePeriodSeconds--K5HaBOS" - }, - { - "$ref": "#/parameters/ignoreStoreReadErrorWithClusterBreakingPotential-QbNkfIqj" - }, - { - "$ref": "#/parameters/labelSelector-5Zw57w4C" - }, - { - "$ref": "#/parameters/limit-1NfNmdNH" - }, - { - "$ref": "#/parameters/orphanDependents-uRB25kX5" - }, - { - "$ref": "#/parameters/propagationPolicy-6jk3prlO" - }, - { - "$ref": "#/parameters/resourceVersion-5WAnf1kx" - }, - { - "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" + "$ref": "#/parameters/fieldManager-7c6nTn1T" }, { - "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" + "uniqueItems": true, + "type": "string", + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "name": "fieldValidation", + "in": "query" }, { - "$ref": "#/parameters/timeoutSeconds-yvYezaOC" + "$ref": "#/parameters/force-tOGGb0Yi" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + "$ref": "#/definitions/io.k8s.api.networking.v1.ServiceCIDR" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.networking.v1.ServiceCIDR" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "deletecollection", + "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "ServiceCIDR", @@ -51471,21 +51417,31 @@ } }, "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the ServiceCIDR", + "name": "name", + "in": "path", + "required": true + }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ] }, - "/apis/networking.k8s.io/v1/servicecidrs/{name}": { + "/apis/networking.k8s.io/v1/watch/ingressclasses": { "get": { - "description": "read the specified ServiceCIDR", + "description": "watch individual changes to a list of IngressClass. deprecated: use the 'watch' parameter with a list operation instead.", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" @@ -51493,34 +51449,73 @@ "tags": [ "networking_v1" ], - "operationId": "readNetworkingV1ServiceCIDR", + "operationId": "watchNetworkingV1IngressClassList", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.ServiceCIDR" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "get", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", - "kind": "ServiceCIDR", + "kind": "IngressClass", "version": "v1" } }, - "put": { - "description": "replace the specified ServiceCIDR", + "parameters": [ + { + "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" + }, + { + "$ref": "#/parameters/continue-QfD61s0i" + }, + { + "$ref": "#/parameters/fieldSelector-xIcQKXFG" + }, + { + "$ref": "#/parameters/labelSelector-5Zw57w4C" + }, + { + "$ref": "#/parameters/limit-1NfNmdNH" + }, + { + "$ref": "#/parameters/pretty-tJGM1-ng" + }, + { + "$ref": "#/parameters/resourceVersion-5WAnf1kx" + }, + { + "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" + }, + { + "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" + }, + { + "$ref": "#/parameters/timeoutSeconds-yvYezaOC" + }, + { + "$ref": "#/parameters/watch-XNNPZGbK" + } + ] + }, + "/apis/networking.k8s.io/v1/watch/ingressclasses/{name}": { + "get": { + "description": "watch changes to an object of kind IngressClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" @@ -51528,67 +51523,81 @@ "tags": [ "networking_v1" ], - "operationId": "replaceNetworkingV1ServiceCIDR", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.ServiceCIDR" - } - }, - { - "uniqueItems": true, - "type": "string", - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "name": "dryRun", - "in": "query" - }, - { - "$ref": "#/parameters/fieldManager-Qy4HdaTW" - }, - { - "uniqueItems": true, - "type": "string", - "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", - "name": "fieldValidation", - "in": "query" - } - ], + "operationId": "watchNetworkingV1IngressClass", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.ServiceCIDR" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.ServiceCIDR" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "put", + "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", - "kind": "ServiceCIDR", + "kind": "IngressClass", "version": "v1" } }, - "delete": { - "description": "delete a ServiceCIDR", + "parameters": [ + { + "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" + }, + { + "$ref": "#/parameters/continue-QfD61s0i" + }, + { + "$ref": "#/parameters/fieldSelector-xIcQKXFG" + }, + { + "$ref": "#/parameters/labelSelector-5Zw57w4C" + }, + { + "$ref": "#/parameters/limit-1NfNmdNH" + }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the IngressClass", + "name": "name", + "in": "path", + "required": true + }, + { + "$ref": "#/parameters/pretty-tJGM1-ng" + }, + { + "$ref": "#/parameters/resourceVersion-5WAnf1kx" + }, + { + "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" + }, + { + "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" + }, + { + "$ref": "#/parameters/timeoutSeconds-yvYezaOC" + }, + { + "$ref": "#/parameters/watch-XNNPZGbK" + } + ] + }, + "/apis/networking.k8s.io/v1/watch/ingresses": { + "get": { + "description": "watch individual changes to a list of Ingress. deprecated: use the 'watch' parameter with a list operation instead.", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" @@ -51596,67 +51605,73 @@ "tags": [ "networking_v1" ], - "operationId": "deleteNetworkingV1ServiceCIDR", - "parameters": [ - { - "$ref": "#/parameters/body-2Y1dVQaQ" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "name": "dryRun", - "in": "query" - }, - { - "$ref": "#/parameters/gracePeriodSeconds--K5HaBOS" - }, - { - "$ref": "#/parameters/ignoreStoreReadErrorWithClusterBreakingPotential-QbNkfIqj" - }, - { - "$ref": "#/parameters/orphanDependents-uRB25kX5" - }, - { - "$ref": "#/parameters/propagationPolicy-6jk3prlO" - } - ], + "operationId": "watchNetworkingV1IngressListForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "delete", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", - "kind": "ServiceCIDR", + "kind": "Ingress", "version": "v1" } }, - "patch": { - "description": "partially update the specified ServiceCIDR", + "parameters": [ + { + "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" + }, + { + "$ref": "#/parameters/continue-QfD61s0i" + }, + { + "$ref": "#/parameters/fieldSelector-xIcQKXFG" + }, + { + "$ref": "#/parameters/labelSelector-5Zw57w4C" + }, + { + "$ref": "#/parameters/limit-1NfNmdNH" + }, + { + "$ref": "#/parameters/pretty-tJGM1-ng" + }, + { + "$ref": "#/parameters/resourceVersion-5WAnf1kx" + }, + { + "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" + }, + { + "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" + }, + { + "$ref": "#/parameters/timeoutSeconds-yvYezaOC" + }, + { + "$ref": "#/parameters/watch-XNNPZGbK" + } + ] + }, + "/apis/networking.k8s.io/v1/watch/ipaddresses": { + "get": { + "description": "watch individual changes to a list of IPAddress. deprecated: use the 'watch' parameter with a list operation instead.", "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" + "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" @@ -51664,80 +51679,73 @@ "tags": [ "networking_v1" ], - "operationId": "patchNetworkingV1ServiceCIDR", - "parameters": [ - { - "$ref": "#/parameters/body-78PwaGsr" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "name": "dryRun", - "in": "query" - }, - { - "$ref": "#/parameters/fieldManager-7c6nTn1T" - }, - { - "uniqueItems": true, - "type": "string", - "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", - "name": "fieldValidation", - "in": "query" - }, - { - "$ref": "#/parameters/force-tOGGb0Yi" - } - ], + "operationId": "watchNetworkingV1IPAddressList", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.ServiceCIDR" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.ServiceCIDR" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "patch", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", - "kind": "ServiceCIDR", + "kind": "IPAddress", "version": "v1" } }, "parameters": [ { - "uniqueItems": true, - "type": "string", - "description": "name of the ServiceCIDR", - "name": "name", - "in": "path", - "required": true + "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" + }, + { + "$ref": "#/parameters/continue-QfD61s0i" + }, + { + "$ref": "#/parameters/fieldSelector-xIcQKXFG" + }, + { + "$ref": "#/parameters/labelSelector-5Zw57w4C" + }, + { + "$ref": "#/parameters/limit-1NfNmdNH" }, { "$ref": "#/parameters/pretty-tJGM1-ng" + }, + { + "$ref": "#/parameters/resourceVersion-5WAnf1kx" + }, + { + "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" + }, + { + "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" + }, + { + "$ref": "#/parameters/timeoutSeconds-yvYezaOC" + }, + { + "$ref": "#/parameters/watch-XNNPZGbK" } ] }, - "/apis/networking.k8s.io/v1/servicecidrs/{name}/status": { + "/apis/networking.k8s.io/v1/watch/ipaddresses/{name}": { "get": { - "description": "read status of the specified ServiceCIDR", + "description": "watch changes to an object of kind IPAddress. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "consumes": [ "*/*" ], "produces": [ "application/json", "application/yaml", - "application/vnd.kubernetes.protobuf" + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" ], "schemes": [ "https" @@ -51745,179 +51753,72 @@ "tags": [ "networking_v1" ], - "operationId": "readNetworkingV1ServiceCIDRStatus", + "operationId": "watchNetworkingV1IPAddress", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.ServiceCIDR" + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "401": { "description": "Unauthorized" } }, - "x-kubernetes-action": "get", + "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", - "kind": "ServiceCIDR", + "kind": "IPAddress", "version": "v1" } }, - "put": { - "description": "replace status of the specified ServiceCIDR", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "operationId": "replaceNetworkingV1ServiceCIDRStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.ServiceCIDR" - } - }, - { - "uniqueItems": true, - "type": "string", - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "name": "dryRun", - "in": "query" - }, - { - "$ref": "#/parameters/fieldManager-Qy4HdaTW" - }, - { - "uniqueItems": true, - "type": "string", - "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", - "name": "fieldValidation", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.ServiceCIDR" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.ServiceCIDR" - } - }, - "401": { - "description": "Unauthorized" - } + "parameters": [ + { + "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "ServiceCIDR", - "version": "v1" - } - }, - "patch": { - "description": "partially update status of the specified ServiceCIDR", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json", - "application/apply-patch+yaml" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "operationId": "patchNetworkingV1ServiceCIDRStatus", - "parameters": [ - { - "$ref": "#/parameters/body-78PwaGsr" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - "name": "dryRun", - "in": "query" - }, - { - "$ref": "#/parameters/fieldManager-7c6nTn1T" - }, - { - "uniqueItems": true, - "type": "string", - "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", - "name": "fieldValidation", - "in": "query" - }, - { - "$ref": "#/parameters/force-tOGGb0Yi" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.ServiceCIDR" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.ServiceCIDR" - } - }, - "401": { - "description": "Unauthorized" - } + { + "$ref": "#/parameters/continue-QfD61s0i" + }, + { + "$ref": "#/parameters/fieldSelector-xIcQKXFG" + }, + { + "$ref": "#/parameters/labelSelector-5Zw57w4C" + }, + { + "$ref": "#/parameters/limit-1NfNmdNH" }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "ServiceCIDR", - "version": "v1" - } - }, - "parameters": [ { "uniqueItems": true, "type": "string", - "description": "name of the ServiceCIDR", + "description": "name of the IPAddress", "name": "name", "in": "path", "required": true }, { "$ref": "#/parameters/pretty-tJGM1-ng" + }, + { + "$ref": "#/parameters/resourceVersion-5WAnf1kx" + }, + { + "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" + }, + { + "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" + }, + { + "$ref": "#/parameters/timeoutSeconds-yvYezaOC" + }, + { + "$ref": "#/parameters/watch-XNNPZGbK" } ] }, - "/apis/networking.k8s.io/v1/watch/ingressclasses": { + "/apis/networking.k8s.io/v1/watch/namespaces/{namespace}/ingresses": { "get": { - "description": "watch individual changes to a list of IngressClass. deprecated: use the 'watch' parameter with a list operation instead.", + "description": "watch individual changes to a list of Ingress. deprecated: use the 'watch' parameter with a list operation instead.", "consumes": [ "*/*" ], @@ -51934,7 +51835,7 @@ "tags": [ "networking_v1" ], - "operationId": "watchNetworkingV1IngressClassList", + "operationId": "watchNetworkingV1NamespacedIngressList", "responses": { "200": { "description": "OK", @@ -51949,7 +51850,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", - "kind": "IngressClass", + "kind": "Ingress", "version": "v1" } }, @@ -51969,6 +51870,9 @@ { "$ref": "#/parameters/limit-1NfNmdNH" }, + { + "$ref": "#/parameters/namespace-vgWSWtn3" + }, { "$ref": "#/parameters/pretty-tJGM1-ng" }, @@ -51989,9 +51893,9 @@ } ] }, - "/apis/networking.k8s.io/v1/watch/ingressclasses/{name}": { + "/apis/networking.k8s.io/v1/watch/namespaces/{namespace}/ingresses/{name}": { "get": { - "description": "watch changes to an object of kind IngressClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "description": "watch changes to an object of kind Ingress. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "consumes": [ "*/*" ], @@ -52008,7 +51912,7 @@ "tags": [ "networking_v1" ], - "operationId": "watchNetworkingV1IngressClass", + "operationId": "watchNetworkingV1NamespacedIngress", "responses": { "200": { "description": "OK", @@ -52023,7 +51927,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", - "kind": "IngressClass", + "kind": "Ingress", "version": "v1" } }, @@ -52046,11 +51950,14 @@ { "uniqueItems": true, "type": "string", - "description": "name of the IngressClass", + "description": "name of the Ingress", "name": "name", "in": "path", "required": true }, + { + "$ref": "#/parameters/namespace-vgWSWtn3" + }, { "$ref": "#/parameters/pretty-tJGM1-ng" }, @@ -52071,9 +51978,9 @@ } ] }, - "/apis/networking.k8s.io/v1/watch/ingresses": { + "/apis/networking.k8s.io/v1/watch/namespaces/{namespace}/networkpolicies": { "get": { - "description": "watch individual changes to a list of Ingress. deprecated: use the 'watch' parameter with a list operation instead.", + "description": "watch individual changes to a list of NetworkPolicy. deprecated: use the 'watch' parameter with a list operation instead.", "consumes": [ "*/*" ], @@ -52090,7 +51997,7 @@ "tags": [ "networking_v1" ], - "operationId": "watchNetworkingV1IngressListForAllNamespaces", + "operationId": "watchNetworkingV1NamespacedNetworkPolicyList", "responses": { "200": { "description": "OK", @@ -52105,7 +52012,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", - "kind": "Ingress", + "kind": "NetworkPolicy", "version": "v1" } }, @@ -52125,6 +52032,9 @@ { "$ref": "#/parameters/limit-1NfNmdNH" }, + { + "$ref": "#/parameters/namespace-vgWSWtn3" + }, { "$ref": "#/parameters/pretty-tJGM1-ng" }, @@ -52145,9 +52055,9 @@ } ] }, - "/apis/networking.k8s.io/v1/watch/ipaddresses": { + "/apis/networking.k8s.io/v1/watch/namespaces/{namespace}/networkpolicies/{name}": { "get": { - "description": "watch individual changes to a list of IPAddress. deprecated: use the 'watch' parameter with a list operation instead.", + "description": "watch changes to an object of kind NetworkPolicy. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "consumes": [ "*/*" ], @@ -52164,7 +52074,7 @@ "tags": [ "networking_v1" ], - "operationId": "watchNetworkingV1IPAddressList", + "operationId": "watchNetworkingV1NamespacedNetworkPolicy", "responses": { "200": { "description": "OK", @@ -52176,10 +52086,10 @@ "description": "Unauthorized" } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", - "kind": "IPAddress", + "kind": "NetworkPolicy", "version": "v1" } }, @@ -52199,6 +52109,17 @@ { "$ref": "#/parameters/limit-1NfNmdNH" }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the NetworkPolicy", + "name": "name", + "in": "path", + "required": true + }, + { + "$ref": "#/parameters/namespace-vgWSWtn3" + }, { "$ref": "#/parameters/pretty-tJGM1-ng" }, @@ -52219,9 +52140,9 @@ } ] }, - "/apis/networking.k8s.io/v1/watch/ipaddresses/{name}": { + "/apis/networking.k8s.io/v1/watch/networkpolicies": { "get": { - "description": "watch changes to an object of kind IPAddress. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "description": "watch individual changes to a list of NetworkPolicy. deprecated: use the 'watch' parameter with a list operation instead.", "consumes": [ "*/*" ], @@ -52238,7 +52159,7 @@ "tags": [ "networking_v1" ], - "operationId": "watchNetworkingV1IPAddress", + "operationId": "watchNetworkingV1NetworkPolicyListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -52250,10 +52171,10 @@ "description": "Unauthorized" } }, - "x-kubernetes-action": "watch", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", - "kind": "IPAddress", + "kind": "NetworkPolicy", "version": "v1" } }, @@ -52273,14 +52194,6 @@ { "$ref": "#/parameters/limit-1NfNmdNH" }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the IPAddress", - "name": "name", - "in": "path", - "required": true - }, { "$ref": "#/parameters/pretty-tJGM1-ng" }, @@ -52301,9 +52214,9 @@ } ] }, - "/apis/networking.k8s.io/v1/watch/namespaces/{namespace}/ingresses": { + "/apis/networking.k8s.io/v1/watch/servicecidrs": { "get": { - "description": "watch individual changes to a list of Ingress. deprecated: use the 'watch' parameter with a list operation instead.", + "description": "watch individual changes to a list of ServiceCIDR. deprecated: use the 'watch' parameter with a list operation instead.", "consumes": [ "*/*" ], @@ -52320,7 +52233,7 @@ "tags": [ "networking_v1" ], - "operationId": "watchNetworkingV1NamespacedIngressList", + "operationId": "watchNetworkingV1ServiceCIDRList", "responses": { "200": { "description": "OK", @@ -52335,7 +52248,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", - "kind": "Ingress", + "kind": "ServiceCIDR", "version": "v1" } }, @@ -52355,9 +52268,6 @@ { "$ref": "#/parameters/limit-1NfNmdNH" }, - { - "$ref": "#/parameters/namespace-vgWSWtn3" - }, { "$ref": "#/parameters/pretty-tJGM1-ng" }, @@ -52378,9 +52288,9 @@ } ] }, - "/apis/networking.k8s.io/v1/watch/namespaces/{namespace}/ingresses/{name}": { + "/apis/networking.k8s.io/v1/watch/servicecidrs/{name}": { "get": { - "description": "watch changes to an object of kind Ingress. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "description": "watch changes to an object of kind ServiceCIDR. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "consumes": [ "*/*" ], @@ -52397,7 +52307,7 @@ "tags": [ "networking_v1" ], - "operationId": "watchNetworkingV1NamespacedIngress", + "operationId": "watchNetworkingV1ServiceCIDR", "responses": { "200": { "description": "OK", @@ -52412,402 +52322,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", - "kind": "Ingress", - "version": "v1" - } - }, - "parameters": [ - { - "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" - }, - { - "$ref": "#/parameters/continue-QfD61s0i" - }, - { - "$ref": "#/parameters/fieldSelector-xIcQKXFG" - }, - { - "$ref": "#/parameters/labelSelector-5Zw57w4C" - }, - { - "$ref": "#/parameters/limit-1NfNmdNH" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the Ingress", - "name": "name", - "in": "path", - "required": true - }, - { - "$ref": "#/parameters/namespace-vgWSWtn3" - }, - { - "$ref": "#/parameters/pretty-tJGM1-ng" - }, - { - "$ref": "#/parameters/resourceVersion-5WAnf1kx" - }, - { - "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" - }, - { - "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" - }, - { - "$ref": "#/parameters/timeoutSeconds-yvYezaOC" - }, - { - "$ref": "#/parameters/watch-XNNPZGbK" - } - ] - }, - "/apis/networking.k8s.io/v1/watch/namespaces/{namespace}/networkpolicies": { - "get": { - "description": "watch individual changes to a list of NetworkPolicy. deprecated: use the 'watch' parameter with a list operation instead.", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "operationId": "watchNetworkingV1NamespacedNetworkPolicyList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "parameters": [ - { - "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" - }, - { - "$ref": "#/parameters/continue-QfD61s0i" - }, - { - "$ref": "#/parameters/fieldSelector-xIcQKXFG" - }, - { - "$ref": "#/parameters/labelSelector-5Zw57w4C" - }, - { - "$ref": "#/parameters/limit-1NfNmdNH" - }, - { - "$ref": "#/parameters/namespace-vgWSWtn3" - }, - { - "$ref": "#/parameters/pretty-tJGM1-ng" - }, - { - "$ref": "#/parameters/resourceVersion-5WAnf1kx" - }, - { - "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" - }, - { - "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" - }, - { - "$ref": "#/parameters/timeoutSeconds-yvYezaOC" - }, - { - "$ref": "#/parameters/watch-XNNPZGbK" - } - ] - }, - "/apis/networking.k8s.io/v1/watch/namespaces/{namespace}/networkpolicies/{name}": { - "get": { - "description": "watch changes to an object of kind NetworkPolicy. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "operationId": "watchNetworkingV1NamespacedNetworkPolicy", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "parameters": [ - { - "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" - }, - { - "$ref": "#/parameters/continue-QfD61s0i" - }, - { - "$ref": "#/parameters/fieldSelector-xIcQKXFG" - }, - { - "$ref": "#/parameters/labelSelector-5Zw57w4C" - }, - { - "$ref": "#/parameters/limit-1NfNmdNH" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the NetworkPolicy", - "name": "name", - "in": "path", - "required": true - }, - { - "$ref": "#/parameters/namespace-vgWSWtn3" - }, - { - "$ref": "#/parameters/pretty-tJGM1-ng" - }, - { - "$ref": "#/parameters/resourceVersion-5WAnf1kx" - }, - { - "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" - }, - { - "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" - }, - { - "$ref": "#/parameters/timeoutSeconds-yvYezaOC" - }, - { - "$ref": "#/parameters/watch-XNNPZGbK" - } - ] - }, - "/apis/networking.k8s.io/v1/watch/networkpolicies": { - "get": { - "description": "watch individual changes to a list of NetworkPolicy. deprecated: use the 'watch' parameter with a list operation instead.", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "operationId": "watchNetworkingV1NetworkPolicyListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "parameters": [ - { - "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" - }, - { - "$ref": "#/parameters/continue-QfD61s0i" - }, - { - "$ref": "#/parameters/fieldSelector-xIcQKXFG" - }, - { - "$ref": "#/parameters/labelSelector-5Zw57w4C" - }, - { - "$ref": "#/parameters/limit-1NfNmdNH" - }, - { - "$ref": "#/parameters/pretty-tJGM1-ng" - }, - { - "$ref": "#/parameters/resourceVersion-5WAnf1kx" - }, - { - "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" - }, - { - "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" - }, - { - "$ref": "#/parameters/timeoutSeconds-yvYezaOC" - }, - { - "$ref": "#/parameters/watch-XNNPZGbK" - } - ] - }, - "/apis/networking.k8s.io/v1/watch/servicecidrs": { - "get": { - "description": "watch individual changes to a list of ServiceCIDR. deprecated: use the 'watch' parameter with a list operation instead.", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "operationId": "watchNetworkingV1ServiceCIDRList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "ServiceCIDR", - "version": "v1" - } - }, - "parameters": [ - { - "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" - }, - { - "$ref": "#/parameters/continue-QfD61s0i" - }, - { - "$ref": "#/parameters/fieldSelector-xIcQKXFG" - }, - { - "$ref": "#/parameters/labelSelector-5Zw57w4C" - }, - { - "$ref": "#/parameters/limit-1NfNmdNH" - }, - { - "$ref": "#/parameters/pretty-tJGM1-ng" - }, - { - "$ref": "#/parameters/resourceVersion-5WAnf1kx" - }, - { - "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" - }, - { - "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" - }, - { - "$ref": "#/parameters/timeoutSeconds-yvYezaOC" - }, - { - "$ref": "#/parameters/watch-XNNPZGbK" - } - ] - }, - "/apis/networking.k8s.io/v1/watch/servicecidrs/{name}": { - "get": { - "description": "watch changes to an object of kind ServiceCIDR. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "operationId": "watchNetworkingV1ServiceCIDR", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "ServiceCIDR", + "kind": "ServiceCIDR", "version": "v1" } }, @@ -63997,9 +63512,9 @@ } ] }, - "/apis/storage.ironcore.dev/v1alpha1/volumeclasses": { + "/apis/storage.ironcore.dev/v1alpha1/namespaces/{namespace}/volumesnapshots": { "get": { - "description": "list or watch objects of kind VolumeClass", + "description": "list or watch objects of kind VolumeSnapshot", "consumes": [ "*/*" ], @@ -64014,7 +63529,7 @@ "tags": [ "storageIroncoreDev_v1alpha1" ], - "operationId": "listStorageIroncoreDevV1alpha1VolumeClass", + "operationId": "listStorageIroncoreDevV1alpha1NamespacedVolumeSnapshot", "parameters": [ { "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" @@ -64051,7 +63566,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClassList" + "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshotList" } }, "401": { @@ -64061,12 +63576,12 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", - "kind": "VolumeClass", + "kind": "VolumeSnapshot", "version": "v1alpha1" } }, "post": { - "description": "create a VolumeClass", + "description": "create a VolumeSnapshot", "consumes": [ "*/*" ], @@ -64080,14 +63595,14 @@ "tags": [ "storageIroncoreDev_v1alpha1" ], - "operationId": "createStorageIroncoreDevV1alpha1VolumeClass", + "operationId": "createStorageIroncoreDevV1alpha1NamespacedVolumeSnapshot", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" + "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot" } }, { @@ -64112,19 +63627,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" + "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" + "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" + "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot" } }, "401": { @@ -64134,12 +63649,12 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", - "kind": "VolumeClass", + "kind": "VolumeSnapshot", "version": "v1alpha1" } }, "delete": { - "description": "delete collection of VolumeClass", + "description": "delete collection of VolumeSnapshot", "consumes": [ "*/*" ], @@ -64153,7 +63668,7 @@ "tags": [ "storageIroncoreDev_v1alpha1" ], - "operationId": "deleteStorageIroncoreDevV1alpha1CollectionVolumeClass", + "operationId": "deleteStorageIroncoreDevV1alpha1CollectionNamespacedVolumeSnapshot", "parameters": [ { "$ref": "#/parameters/body-2Y1dVQaQ" @@ -64216,19 +63731,22 @@ "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", - "kind": "VolumeClass", + "kind": "VolumeSnapshot", "version": "v1alpha1" } }, "parameters": [ + { + "$ref": "#/parameters/namespace-vgWSWtn3" + }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ] }, - "/apis/storage.ironcore.dev/v1alpha1/volumeclasses/{name}": { + "/apis/storage.ironcore.dev/v1alpha1/namespaces/{namespace}/volumesnapshots/{name}": { "get": { - "description": "read the specified VolumeClass", + "description": "read the specified VolumeSnapshot", "consumes": [ "*/*" ], @@ -64242,12 +63760,12 @@ "tags": [ "storageIroncoreDev_v1alpha1" ], - "operationId": "readStorageIroncoreDevV1alpha1VolumeClass", + "operationId": "readStorageIroncoreDevV1alpha1NamespacedVolumeSnapshot", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" + "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot" } }, "401": { @@ -64257,12 +63775,12 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", - "kind": "VolumeClass", + "kind": "VolumeSnapshot", "version": "v1alpha1" } }, "put": { - "description": "replace the specified VolumeClass", + "description": "replace the specified VolumeSnapshot", "consumes": [ "*/*" ], @@ -64276,14 +63794,14 @@ "tags": [ "storageIroncoreDev_v1alpha1" ], - "operationId": "replaceStorageIroncoreDevV1alpha1VolumeClass", + "operationId": "replaceStorageIroncoreDevV1alpha1NamespacedVolumeSnapshot", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" + "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot" } }, { @@ -64308,13 +63826,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" + "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" + "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot" } }, "401": { @@ -64324,12 +63842,12 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", - "kind": "VolumeClass", + "kind": "VolumeSnapshot", "version": "v1alpha1" } }, "delete": { - "description": "delete a VolumeClass", + "description": "delete a VolumeSnapshot", "consumes": [ "*/*" ], @@ -64343,7 +63861,7 @@ "tags": [ "storageIroncoreDev_v1alpha1" ], - "operationId": "deleteStorageIroncoreDevV1alpha1VolumeClass", + "operationId": "deleteStorageIroncoreDevV1alpha1NamespacedVolumeSnapshot", "parameters": [ { "$ref": "#/parameters/body-2Y1dVQaQ" @@ -64388,12 +63906,12 @@ "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", - "kind": "VolumeClass", + "kind": "VolumeSnapshot", "version": "v1alpha1" } }, "patch": { - "description": "partially update the specified VolumeClass", + "description": "partially update the specified VolumeSnapshot", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -64410,7 +63928,7 @@ "tags": [ "storageIroncoreDev_v1alpha1" ], - "operationId": "patchStorageIroncoreDevV1alpha1VolumeClass", + "operationId": "patchStorageIroncoreDevV1alpha1NamespacedVolumeSnapshot", "parameters": [ { "$ref": "#/parameters/body-78PwaGsr" @@ -64440,13 +63958,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" + "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" + "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot" } }, "401": { @@ -64456,7 +63974,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", - "kind": "VolumeClass", + "kind": "VolumeSnapshot", "version": "v1alpha1" } }, @@ -64464,19 +63982,209 @@ { "uniqueItems": true, "type": "string", - "description": "name of the VolumeClass", + "description": "name of the VolumeSnapshot", "name": "name", "in": "path", "required": true }, + { + "$ref": "#/parameters/namespace-vgWSWtn3" + }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ] }, - "/apis/storage.ironcore.dev/v1alpha1/volumepools": { + "/apis/storage.ironcore.dev/v1alpha1/namespaces/{namespace}/volumesnapshots/{name}/status": { "get": { - "description": "list or watch objects of kind VolumePool", + "description": "read status of the specified VolumeSnapshot", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml" + ], + "schemes": [ + "https" + ], + "tags": [ + "storageIroncoreDev_v1alpha1" + ], + "operationId": "readStorageIroncoreDevV1alpha1NamespacedVolumeSnapshotStatus", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "storage.ironcore.dev", + "kind": "VolumeSnapshot", + "version": "v1alpha1" + } + }, + "put": { + "description": "replace status of the specified VolumeSnapshot", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml" + ], + "schemes": [ + "https" + ], + "tags": [ + "storageIroncoreDev_v1alpha1" + ], + "operationId": "replaceStorageIroncoreDevV1alpha1NamespacedVolumeSnapshotStatus", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot" + } + }, + { + "uniqueItems": true, + "type": "string", + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "name": "dryRun", + "in": "query" + }, + { + "$ref": "#/parameters/fieldManager-Qy4HdaTW" + }, + { + "uniqueItems": true, + "type": "string", + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "name": "fieldValidation", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "storage.ironcore.dev", + "kind": "VolumeSnapshot", + "version": "v1alpha1" + } + }, + "patch": { + "description": "partially update status of the specified VolumeSnapshot", + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "produces": [ + "application/json", + "application/yaml" + ], + "schemes": [ + "https" + ], + "tags": [ + "storageIroncoreDev_v1alpha1" + ], + "operationId": "patchStorageIroncoreDevV1alpha1NamespacedVolumeSnapshotStatus", + "parameters": [ + { + "$ref": "#/parameters/body-78PwaGsr" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "name": "dryRun", + "in": "query" + }, + { + "$ref": "#/parameters/fieldManager-7c6nTn1T" + }, + { + "uniqueItems": true, + "type": "string", + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "name": "fieldValidation", + "in": "query" + }, + { + "$ref": "#/parameters/force-tOGGb0Yi" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "storage.ironcore.dev", + "kind": "VolumeSnapshot", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the VolumeSnapshot", + "name": "name", + "in": "path", + "required": true + }, + { + "$ref": "#/parameters/namespace-vgWSWtn3" + }, + { + "$ref": "#/parameters/pretty-tJGM1-ng" + } + ] + }, + "/apis/storage.ironcore.dev/v1alpha1/volumeclasses": { + "get": { + "description": "list or watch objects of kind VolumeClass", "consumes": [ "*/*" ], @@ -64491,7 +64199,7 @@ "tags": [ "storageIroncoreDev_v1alpha1" ], - "operationId": "listStorageIroncoreDevV1alpha1VolumePool", + "operationId": "listStorageIroncoreDevV1alpha1VolumeClass", "parameters": [ { "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" @@ -64528,7 +64236,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePoolList" + "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClassList" } }, "401": { @@ -64538,12 +64246,12 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", - "kind": "VolumePool", + "kind": "VolumeClass", "version": "v1alpha1" } }, "post": { - "description": "create a VolumePool", + "description": "create a VolumeClass", "consumes": [ "*/*" ], @@ -64557,14 +64265,14 @@ "tags": [ "storageIroncoreDev_v1alpha1" ], - "operationId": "createStorageIroncoreDevV1alpha1VolumePool", + "operationId": "createStorageIroncoreDevV1alpha1VolumeClass", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" } }, { @@ -64589,19 +64297,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" } }, "401": { @@ -64611,12 +64319,12 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", - "kind": "VolumePool", + "kind": "VolumeClass", "version": "v1alpha1" } }, "delete": { - "description": "delete collection of VolumePool", + "description": "delete collection of VolumeClass", "consumes": [ "*/*" ], @@ -64630,7 +64338,7 @@ "tags": [ "storageIroncoreDev_v1alpha1" ], - "operationId": "deleteStorageIroncoreDevV1alpha1CollectionVolumePool", + "operationId": "deleteStorageIroncoreDevV1alpha1CollectionVolumeClass", "parameters": [ { "$ref": "#/parameters/body-2Y1dVQaQ" @@ -64693,7 +64401,7 @@ "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", - "kind": "VolumePool", + "kind": "VolumeClass", "version": "v1alpha1" } }, @@ -64703,9 +64411,9 @@ } ] }, - "/apis/storage.ironcore.dev/v1alpha1/volumepools/{name}": { + "/apis/storage.ironcore.dev/v1alpha1/volumeclasses/{name}": { "get": { - "description": "read the specified VolumePool", + "description": "read the specified VolumeClass", "consumes": [ "*/*" ], @@ -64719,12 +64427,12 @@ "tags": [ "storageIroncoreDev_v1alpha1" ], - "operationId": "readStorageIroncoreDevV1alpha1VolumePool", + "operationId": "readStorageIroncoreDevV1alpha1VolumeClass", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" } }, "401": { @@ -64734,12 +64442,12 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", - "kind": "VolumePool", + "kind": "VolumeClass", "version": "v1alpha1" } }, "put": { - "description": "replace the specified VolumePool", + "description": "replace the specified VolumeClass", "consumes": [ "*/*" ], @@ -64753,14 +64461,491 @@ "tags": [ "storageIroncoreDev_v1alpha1" ], - "operationId": "replaceStorageIroncoreDevV1alpha1VolumePool", + "operationId": "replaceStorageIroncoreDevV1alpha1VolumeClass", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" + } + }, + { + "uniqueItems": true, + "type": "string", + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "name": "dryRun", + "in": "query" + }, + { + "$ref": "#/parameters/fieldManager-Qy4HdaTW" + }, + { + "uniqueItems": true, + "type": "string", + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "name": "fieldValidation", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "storage.ironcore.dev", + "kind": "VolumeClass", + "version": "v1alpha1" + } + }, + "delete": { + "description": "delete a VolumeClass", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml" + ], + "schemes": [ + "https" + ], + "tags": [ + "storageIroncoreDev_v1alpha1" + ], + "operationId": "deleteStorageIroncoreDevV1alpha1VolumeClass", + "parameters": [ + { + "$ref": "#/parameters/body-2Y1dVQaQ" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "name": "dryRun", + "in": "query" + }, + { + "$ref": "#/parameters/gracePeriodSeconds--K5HaBOS" + }, + { + "$ref": "#/parameters/ignoreStoreReadErrorWithClusterBreakingPotential-QbNkfIqj" + }, + { + "$ref": "#/parameters/orphanDependents-uRB25kX5" + }, + { + "$ref": "#/parameters/propagationPolicy-6jk3prlO" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "storage.ironcore.dev", + "kind": "VolumeClass", + "version": "v1alpha1" + } + }, + "patch": { + "description": "partially update the specified VolumeClass", + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "produces": [ + "application/json", + "application/yaml" + ], + "schemes": [ + "https" + ], + "tags": [ + "storageIroncoreDev_v1alpha1" + ], + "operationId": "patchStorageIroncoreDevV1alpha1VolumeClass", + "parameters": [ + { + "$ref": "#/parameters/body-78PwaGsr" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "name": "dryRun", + "in": "query" + }, + { + "$ref": "#/parameters/fieldManager-7c6nTn1T" + }, + { + "uniqueItems": true, + "type": "string", + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "name": "fieldValidation", + "in": "query" + }, + { + "$ref": "#/parameters/force-tOGGb0Yi" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "storage.ironcore.dev", + "kind": "VolumeClass", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the VolumeClass", + "name": "name", + "in": "path", + "required": true + }, + { + "$ref": "#/parameters/pretty-tJGM1-ng" + } + ] + }, + "/apis/storage.ironcore.dev/v1alpha1/volumepools": { + "get": { + "description": "list or watch objects of kind VolumePool", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/json;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "storageIroncoreDev_v1alpha1" + ], + "operationId": "listStorageIroncoreDevV1alpha1VolumePool", + "parameters": [ + { + "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" + }, + { + "$ref": "#/parameters/continue-QfD61s0i" + }, + { + "$ref": "#/parameters/fieldSelector-xIcQKXFG" + }, + { + "$ref": "#/parameters/labelSelector-5Zw57w4C" + }, + { + "$ref": "#/parameters/limit-1NfNmdNH" + }, + { + "$ref": "#/parameters/resourceVersion-5WAnf1kx" + }, + { + "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" + }, + { + "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" + }, + { + "$ref": "#/parameters/timeoutSeconds-yvYezaOC" + }, + { + "$ref": "#/parameters/watch-XNNPZGbK" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePoolList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "storage.ironcore.dev", + "kind": "VolumePool", + "version": "v1alpha1" + } + }, + "post": { + "description": "create a VolumePool", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml" + ], + "schemes": [ + "https" + ], + "tags": [ + "storageIroncoreDev_v1alpha1" + ], + "operationId": "createStorageIroncoreDevV1alpha1VolumePool", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + } + }, + { + "uniqueItems": true, + "type": "string", + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "name": "dryRun", + "in": "query" + }, + { + "$ref": "#/parameters/fieldManager-Qy4HdaTW" + }, + { + "uniqueItems": true, + "type": "string", + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "name": "fieldValidation", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "storage.ironcore.dev", + "kind": "VolumePool", + "version": "v1alpha1" + } + }, + "delete": { + "description": "delete collection of VolumePool", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml" + ], + "schemes": [ + "https" + ], + "tags": [ + "storageIroncoreDev_v1alpha1" + ], + "operationId": "deleteStorageIroncoreDevV1alpha1CollectionVolumePool", + "parameters": [ + { + "$ref": "#/parameters/body-2Y1dVQaQ" + }, + { + "$ref": "#/parameters/continue-QfD61s0i" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "name": "dryRun", + "in": "query" + }, + { + "$ref": "#/parameters/fieldSelector-xIcQKXFG" + }, + { + "$ref": "#/parameters/gracePeriodSeconds--K5HaBOS" + }, + { + "$ref": "#/parameters/ignoreStoreReadErrorWithClusterBreakingPotential-QbNkfIqj" + }, + { + "$ref": "#/parameters/labelSelector-5Zw57w4C" + }, + { + "$ref": "#/parameters/limit-1NfNmdNH" + }, + { + "$ref": "#/parameters/orphanDependents-uRB25kX5" + }, + { + "$ref": "#/parameters/propagationPolicy-6jk3prlO" + }, + { + "$ref": "#/parameters/resourceVersion-5WAnf1kx" + }, + { + "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" + }, + { + "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" + }, + { + "$ref": "#/parameters/timeoutSeconds-yvYezaOC" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "storage.ironcore.dev", + "kind": "VolumePool", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "$ref": "#/parameters/pretty-tJGM1-ng" + } + ] + }, + "/apis/storage.ironcore.dev/v1alpha1/volumepools/{name}": { + "get": { + "description": "read the specified VolumePool", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml" + ], + "schemes": [ + "https" + ], + "tags": [ + "storageIroncoreDev_v1alpha1" + ], + "operationId": "readStorageIroncoreDevV1alpha1VolumePool", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "storage.ironcore.dev", + "kind": "VolumePool", + "version": "v1alpha1" + } + }, + "put": { + "description": "replace the specified VolumePool", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml" + ], + "schemes": [ + "https" + ], + "tags": [ + "storageIroncoreDev_v1alpha1" + ], + "operationId": "replaceStorageIroncoreDevV1alpha1VolumePool", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" } }, { @@ -65207,9 +65392,615 @@ } ] }, - "/apis/storage.ironcore.dev/v1alpha1/watch/bucketclasses": { + "/apis/storage.ironcore.dev/v1alpha1/volumesnapshots": { + "get": { + "description": "list or watch objects of kind VolumeSnapshot", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/json;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "storageIroncoreDev_v1alpha1" + ], + "operationId": "listStorageIroncoreDevV1alpha1VolumeSnapshotForAllNamespaces", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshotList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "storage.ironcore.dev", + "kind": "VolumeSnapshot", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" + }, + { + "$ref": "#/parameters/continue-QfD61s0i" + }, + { + "$ref": "#/parameters/fieldSelector-xIcQKXFG" + }, + { + "$ref": "#/parameters/labelSelector-5Zw57w4C" + }, + { + "$ref": "#/parameters/limit-1NfNmdNH" + }, + { + "$ref": "#/parameters/pretty-tJGM1-ng" + }, + { + "$ref": "#/parameters/resourceVersion-5WAnf1kx" + }, + { + "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" + }, + { + "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" + }, + { + "$ref": "#/parameters/timeoutSeconds-yvYezaOC" + }, + { + "$ref": "#/parameters/watch-XNNPZGbK" + } + ] + }, + "/apis/storage.ironcore.dev/v1alpha1/watch/bucketclasses": { + "get": { + "description": "watch individual changes to a list of BucketClass. deprecated: use the 'watch' parameter with a list operation instead.", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/json;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "storageIroncoreDev_v1alpha1" + ], + "operationId": "watchStorageIroncoreDevV1alpha1BucketClassList", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "storage.ironcore.dev", + "kind": "BucketClass", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" + }, + { + "$ref": "#/parameters/continue-QfD61s0i" + }, + { + "$ref": "#/parameters/fieldSelector-xIcQKXFG" + }, + { + "$ref": "#/parameters/labelSelector-5Zw57w4C" + }, + { + "$ref": "#/parameters/limit-1NfNmdNH" + }, + { + "$ref": "#/parameters/pretty-tJGM1-ng" + }, + { + "$ref": "#/parameters/resourceVersion-5WAnf1kx" + }, + { + "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" + }, + { + "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" + }, + { + "$ref": "#/parameters/timeoutSeconds-yvYezaOC" + }, + { + "$ref": "#/parameters/watch-XNNPZGbK" + } + ] + }, + "/apis/storage.ironcore.dev/v1alpha1/watch/bucketclasses/{name}": { + "get": { + "description": "watch changes to an object of kind BucketClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/json;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "storageIroncoreDev_v1alpha1" + ], + "operationId": "watchStorageIroncoreDevV1alpha1BucketClass", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "storage.ironcore.dev", + "kind": "BucketClass", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" + }, + { + "$ref": "#/parameters/continue-QfD61s0i" + }, + { + "$ref": "#/parameters/fieldSelector-xIcQKXFG" + }, + { + "$ref": "#/parameters/labelSelector-5Zw57w4C" + }, + { + "$ref": "#/parameters/limit-1NfNmdNH" + }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the BucketClass", + "name": "name", + "in": "path", + "required": true + }, + { + "$ref": "#/parameters/pretty-tJGM1-ng" + }, + { + "$ref": "#/parameters/resourceVersion-5WAnf1kx" + }, + { + "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" + }, + { + "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" + }, + { + "$ref": "#/parameters/timeoutSeconds-yvYezaOC" + }, + { + "$ref": "#/parameters/watch-XNNPZGbK" + } + ] + }, + "/apis/storage.ironcore.dev/v1alpha1/watch/bucketpools": { + "get": { + "description": "watch individual changes to a list of BucketPool. deprecated: use the 'watch' parameter with a list operation instead.", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/json;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "storageIroncoreDev_v1alpha1" + ], + "operationId": "watchStorageIroncoreDevV1alpha1BucketPoolList", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "storage.ironcore.dev", + "kind": "BucketPool", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" + }, + { + "$ref": "#/parameters/continue-QfD61s0i" + }, + { + "$ref": "#/parameters/fieldSelector-xIcQKXFG" + }, + { + "$ref": "#/parameters/labelSelector-5Zw57w4C" + }, + { + "$ref": "#/parameters/limit-1NfNmdNH" + }, + { + "$ref": "#/parameters/pretty-tJGM1-ng" + }, + { + "$ref": "#/parameters/resourceVersion-5WAnf1kx" + }, + { + "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" + }, + { + "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" + }, + { + "$ref": "#/parameters/timeoutSeconds-yvYezaOC" + }, + { + "$ref": "#/parameters/watch-XNNPZGbK" + } + ] + }, + "/apis/storage.ironcore.dev/v1alpha1/watch/bucketpools/{name}": { + "get": { + "description": "watch changes to an object of kind BucketPool. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/json;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "storageIroncoreDev_v1alpha1" + ], + "operationId": "watchStorageIroncoreDevV1alpha1BucketPool", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "storage.ironcore.dev", + "kind": "BucketPool", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" + }, + { + "$ref": "#/parameters/continue-QfD61s0i" + }, + { + "$ref": "#/parameters/fieldSelector-xIcQKXFG" + }, + { + "$ref": "#/parameters/labelSelector-5Zw57w4C" + }, + { + "$ref": "#/parameters/limit-1NfNmdNH" + }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the BucketPool", + "name": "name", + "in": "path", + "required": true + }, + { + "$ref": "#/parameters/pretty-tJGM1-ng" + }, + { + "$ref": "#/parameters/resourceVersion-5WAnf1kx" + }, + { + "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" + }, + { + "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" + }, + { + "$ref": "#/parameters/timeoutSeconds-yvYezaOC" + }, + { + "$ref": "#/parameters/watch-XNNPZGbK" + } + ] + }, + "/apis/storage.ironcore.dev/v1alpha1/watch/buckets": { + "get": { + "description": "watch individual changes to a list of Bucket. deprecated: use the 'watch' parameter with a list operation instead.", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/json;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "storageIroncoreDev_v1alpha1" + ], + "operationId": "watchStorageIroncoreDevV1alpha1BucketListForAllNamespaces", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "storage.ironcore.dev", + "kind": "Bucket", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" + }, + { + "$ref": "#/parameters/continue-QfD61s0i" + }, + { + "$ref": "#/parameters/fieldSelector-xIcQKXFG" + }, + { + "$ref": "#/parameters/labelSelector-5Zw57w4C" + }, + { + "$ref": "#/parameters/limit-1NfNmdNH" + }, + { + "$ref": "#/parameters/pretty-tJGM1-ng" + }, + { + "$ref": "#/parameters/resourceVersion-5WAnf1kx" + }, + { + "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" + }, + { + "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" + }, + { + "$ref": "#/parameters/timeoutSeconds-yvYezaOC" + }, + { + "$ref": "#/parameters/watch-XNNPZGbK" + } + ] + }, + "/apis/storage.ironcore.dev/v1alpha1/watch/namespaces/{namespace}/buckets": { + "get": { + "description": "watch individual changes to a list of Bucket. deprecated: use the 'watch' parameter with a list operation instead.", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/json;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "storageIroncoreDev_v1alpha1" + ], + "operationId": "watchStorageIroncoreDevV1alpha1NamespacedBucketList", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "storage.ironcore.dev", + "kind": "Bucket", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" + }, + { + "$ref": "#/parameters/continue-QfD61s0i" + }, + { + "$ref": "#/parameters/fieldSelector-xIcQKXFG" + }, + { + "$ref": "#/parameters/labelSelector-5Zw57w4C" + }, + { + "$ref": "#/parameters/limit-1NfNmdNH" + }, + { + "$ref": "#/parameters/namespace-vgWSWtn3" + }, + { + "$ref": "#/parameters/pretty-tJGM1-ng" + }, + { + "$ref": "#/parameters/resourceVersion-5WAnf1kx" + }, + { + "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" + }, + { + "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" + }, + { + "$ref": "#/parameters/timeoutSeconds-yvYezaOC" + }, + { + "$ref": "#/parameters/watch-XNNPZGbK" + } + ] + }, + "/apis/storage.ironcore.dev/v1alpha1/watch/namespaces/{namespace}/buckets/{name}": { + "get": { + "description": "watch changes to an object of kind Bucket. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/json;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "storageIroncoreDev_v1alpha1" + ], + "operationId": "watchStorageIroncoreDevV1alpha1NamespacedBucket", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "storage.ironcore.dev", + "kind": "Bucket", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" + }, + { + "$ref": "#/parameters/continue-QfD61s0i" + }, + { + "$ref": "#/parameters/fieldSelector-xIcQKXFG" + }, + { + "$ref": "#/parameters/labelSelector-5Zw57w4C" + }, + { + "$ref": "#/parameters/limit-1NfNmdNH" + }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the Bucket", + "name": "name", + "in": "path", + "required": true + }, + { + "$ref": "#/parameters/namespace-vgWSWtn3" + }, + { + "$ref": "#/parameters/pretty-tJGM1-ng" + }, + { + "$ref": "#/parameters/resourceVersion-5WAnf1kx" + }, + { + "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" + }, + { + "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" + }, + { + "$ref": "#/parameters/timeoutSeconds-yvYezaOC" + }, + { + "$ref": "#/parameters/watch-XNNPZGbK" + } + ] + }, + "/apis/storage.ironcore.dev/v1alpha1/watch/namespaces/{namespace}/volumes": { "get": { - "description": "watch individual changes to a list of BucketClass. deprecated: use the 'watch' parameter with a list operation instead.", + "description": "watch individual changes to a list of Volume. deprecated: use the 'watch' parameter with a list operation instead.", "consumes": [ "*/*" ], @@ -65224,7 +66015,7 @@ "tags": [ "storageIroncoreDev_v1alpha1" ], - "operationId": "watchStorageIroncoreDevV1alpha1BucketClassList", + "operationId": "watchStorageIroncoreDevV1alpha1NamespacedVolumeList", "responses": { "200": { "description": "OK", @@ -65239,79 +66030,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", - "kind": "BucketClass", - "version": "v1alpha1" - } - }, - "parameters": [ - { - "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" - }, - { - "$ref": "#/parameters/continue-QfD61s0i" - }, - { - "$ref": "#/parameters/fieldSelector-xIcQKXFG" - }, - { - "$ref": "#/parameters/labelSelector-5Zw57w4C" - }, - { - "$ref": "#/parameters/limit-1NfNmdNH" - }, - { - "$ref": "#/parameters/pretty-tJGM1-ng" - }, - { - "$ref": "#/parameters/resourceVersion-5WAnf1kx" - }, - { - "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" - }, - { - "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" - }, - { - "$ref": "#/parameters/timeoutSeconds-yvYezaOC" - }, - { - "$ref": "#/parameters/watch-XNNPZGbK" - } - ] - }, - "/apis/storage.ironcore.dev/v1alpha1/watch/bucketclasses/{name}": { - "get": { - "description": "watch changes to an object of kind BucketClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/json;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "storageIroncoreDev_v1alpha1" - ], - "operationId": "watchStorageIroncoreDevV1alpha1BucketClass", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "storage.ironcore.dev", - "kind": "BucketClass", + "kind": "Volume", "version": "v1alpha1" } }, @@ -65332,84 +66051,7 @@ "$ref": "#/parameters/limit-1NfNmdNH" }, { - "uniqueItems": true, - "type": "string", - "description": "name of the BucketClass", - "name": "name", - "in": "path", - "required": true - }, - { - "$ref": "#/parameters/pretty-tJGM1-ng" - }, - { - "$ref": "#/parameters/resourceVersion-5WAnf1kx" - }, - { - "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" - }, - { - "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" - }, - { - "$ref": "#/parameters/timeoutSeconds-yvYezaOC" - }, - { - "$ref": "#/parameters/watch-XNNPZGbK" - } - ] - }, - "/apis/storage.ironcore.dev/v1alpha1/watch/bucketpools": { - "get": { - "description": "watch individual changes to a list of BucketPool. deprecated: use the 'watch' parameter with a list operation instead.", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/json;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "storageIroncoreDev_v1alpha1" - ], - "operationId": "watchStorageIroncoreDevV1alpha1BucketPoolList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "storage.ironcore.dev", - "kind": "BucketPool", - "version": "v1alpha1" - } - }, - "parameters": [ - { - "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" - }, - { - "$ref": "#/parameters/continue-QfD61s0i" - }, - { - "$ref": "#/parameters/fieldSelector-xIcQKXFG" - }, - { - "$ref": "#/parameters/labelSelector-5Zw57w4C" - }, - { - "$ref": "#/parameters/limit-1NfNmdNH" + "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/pretty-tJGM1-ng" @@ -65431,9 +66073,9 @@ } ] }, - "/apis/storage.ironcore.dev/v1alpha1/watch/bucketpools/{name}": { + "/apis/storage.ironcore.dev/v1alpha1/watch/namespaces/{namespace}/volumes/{name}": { "get": { - "description": "watch changes to an object of kind BucketPool. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "description": "watch changes to an object of kind Volume. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "consumes": [ "*/*" ], @@ -65448,7 +66090,7 @@ "tags": [ "storageIroncoreDev_v1alpha1" ], - "operationId": "watchStorageIroncoreDevV1alpha1BucketPool", + "operationId": "watchStorageIroncoreDevV1alpha1NamespacedVolume", "responses": { "200": { "description": "OK", @@ -65463,7 +66105,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", - "kind": "BucketPool", + "kind": "Volume", "version": "v1alpha1" } }, @@ -65486,82 +66128,13 @@ { "uniqueItems": true, "type": "string", - "description": "name of the BucketPool", + "description": "name of the Volume", "name": "name", "in": "path", "required": true }, { - "$ref": "#/parameters/pretty-tJGM1-ng" - }, - { - "$ref": "#/parameters/resourceVersion-5WAnf1kx" - }, - { - "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" - }, - { - "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" - }, - { - "$ref": "#/parameters/timeoutSeconds-yvYezaOC" - }, - { - "$ref": "#/parameters/watch-XNNPZGbK" - } - ] - }, - "/apis/storage.ironcore.dev/v1alpha1/watch/buckets": { - "get": { - "description": "watch individual changes to a list of Bucket. deprecated: use the 'watch' parameter with a list operation instead.", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/json;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "storageIroncoreDev_v1alpha1" - ], - "operationId": "watchStorageIroncoreDevV1alpha1BucketListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "storage.ironcore.dev", - "kind": "Bucket", - "version": "v1alpha1" - } - }, - "parameters": [ - { - "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" - }, - { - "$ref": "#/parameters/continue-QfD61s0i" - }, - { - "$ref": "#/parameters/fieldSelector-xIcQKXFG" - }, - { - "$ref": "#/parameters/labelSelector-5Zw57w4C" - }, - { - "$ref": "#/parameters/limit-1NfNmdNH" + "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/pretty-tJGM1-ng" @@ -65583,9 +66156,9 @@ } ] }, - "/apis/storage.ironcore.dev/v1alpha1/watch/namespaces/{namespace}/buckets": { + "/apis/storage.ironcore.dev/v1alpha1/watch/namespaces/{namespace}/volumesnapshots": { "get": { - "description": "watch individual changes to a list of Bucket. deprecated: use the 'watch' parameter with a list operation instead.", + "description": "watch individual changes to a list of VolumeSnapshot. deprecated: use the 'watch' parameter with a list operation instead.", "consumes": [ "*/*" ], @@ -65600,7 +66173,7 @@ "tags": [ "storageIroncoreDev_v1alpha1" ], - "operationId": "watchStorageIroncoreDevV1alpha1NamespacedBucketList", + "operationId": "watchStorageIroncoreDevV1alpha1NamespacedVolumeSnapshotList", "responses": { "200": { "description": "OK", @@ -65615,7 +66188,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", - "kind": "Bucket", + "kind": "VolumeSnapshot", "version": "v1alpha1" } }, @@ -65658,9 +66231,9 @@ } ] }, - "/apis/storage.ironcore.dev/v1alpha1/watch/namespaces/{namespace}/buckets/{name}": { + "/apis/storage.ironcore.dev/v1alpha1/watch/namespaces/{namespace}/volumesnapshots/{name}": { "get": { - "description": "watch changes to an object of kind Bucket. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "description": "watch changes to an object of kind VolumeSnapshot. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "consumes": [ "*/*" ], @@ -65675,7 +66248,7 @@ "tags": [ "storageIroncoreDev_v1alpha1" ], - "operationId": "watchStorageIroncoreDevV1alpha1NamespacedBucket", + "operationId": "watchStorageIroncoreDevV1alpha1NamespacedVolumeSnapshot", "responses": { "200": { "description": "OK", @@ -65690,7 +66263,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", - "kind": "Bucket", + "kind": "VolumeSnapshot", "version": "v1alpha1" } }, @@ -65713,7 +66286,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the Bucket", + "description": "name of the VolumeSnapshot", "name": "name", "in": "path", "required": true @@ -65741,9 +66314,9 @@ } ] }, - "/apis/storage.ironcore.dev/v1alpha1/watch/namespaces/{namespace}/volumes": { + "/apis/storage.ironcore.dev/v1alpha1/watch/volumeclasses": { "get": { - "description": "watch individual changes to a list of Volume. deprecated: use the 'watch' parameter with a list operation instead.", + "description": "watch individual changes to a list of VolumeClass. deprecated: use the 'watch' parameter with a list operation instead.", "consumes": [ "*/*" ], @@ -65758,7 +66331,7 @@ "tags": [ "storageIroncoreDev_v1alpha1" ], - "operationId": "watchStorageIroncoreDevV1alpha1NamespacedVolumeList", + "operationId": "watchStorageIroncoreDevV1alpha1VolumeClassList", "responses": { "200": { "description": "OK", @@ -65773,7 +66346,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", - "kind": "Volume", + "kind": "VolumeClass", "version": "v1alpha1" } }, @@ -65793,9 +66366,6 @@ { "$ref": "#/parameters/limit-1NfNmdNH" }, - { - "$ref": "#/parameters/namespace-vgWSWtn3" - }, { "$ref": "#/parameters/pretty-tJGM1-ng" }, @@ -65816,9 +66386,9 @@ } ] }, - "/apis/storage.ironcore.dev/v1alpha1/watch/namespaces/{namespace}/volumes/{name}": { + "/apis/storage.ironcore.dev/v1alpha1/watch/volumeclasses/{name}": { "get": { - "description": "watch changes to an object of kind Volume. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "description": "watch changes to an object of kind VolumeClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "consumes": [ "*/*" ], @@ -65833,7 +66403,7 @@ "tags": [ "storageIroncoreDev_v1alpha1" ], - "operationId": "watchStorageIroncoreDevV1alpha1NamespacedVolume", + "operationId": "watchStorageIroncoreDevV1alpha1VolumeClass", "responses": { "200": { "description": "OK", @@ -65848,7 +66418,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", - "kind": "Volume", + "kind": "VolumeClass", "version": "v1alpha1" } }, @@ -65871,14 +66441,11 @@ { "uniqueItems": true, "type": "string", - "description": "name of the Volume", + "description": "name of the VolumeClass", "name": "name", "in": "path", "required": true }, - { - "$ref": "#/parameters/namespace-vgWSWtn3" - }, { "$ref": "#/parameters/pretty-tJGM1-ng" }, @@ -65899,9 +66466,9 @@ } ] }, - "/apis/storage.ironcore.dev/v1alpha1/watch/volumeclasses": { + "/apis/storage.ironcore.dev/v1alpha1/watch/volumepools": { "get": { - "description": "watch individual changes to a list of VolumeClass. deprecated: use the 'watch' parameter with a list operation instead.", + "description": "watch individual changes to a list of VolumePool. deprecated: use the 'watch' parameter with a list operation instead.", "consumes": [ "*/*" ], @@ -65916,7 +66483,7 @@ "tags": [ "storageIroncoreDev_v1alpha1" ], - "operationId": "watchStorageIroncoreDevV1alpha1VolumeClassList", + "operationId": "watchStorageIroncoreDevV1alpha1VolumePoolList", "responses": { "200": { "description": "OK", @@ -65931,7 +66498,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", - "kind": "VolumeClass", + "kind": "VolumePool", "version": "v1alpha1" } }, @@ -65971,9 +66538,9 @@ } ] }, - "/apis/storage.ironcore.dev/v1alpha1/watch/volumeclasses/{name}": { + "/apis/storage.ironcore.dev/v1alpha1/watch/volumepools/{name}": { "get": { - "description": "watch changes to an object of kind VolumeClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "description": "watch changes to an object of kind VolumePool. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "consumes": [ "*/*" ], @@ -65988,7 +66555,7 @@ "tags": [ "storageIroncoreDev_v1alpha1" ], - "operationId": "watchStorageIroncoreDevV1alpha1VolumeClass", + "operationId": "watchStorageIroncoreDevV1alpha1VolumePool", "responses": { "200": { "description": "OK", @@ -66003,7 +66570,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", - "kind": "VolumeClass", + "kind": "VolumePool", "version": "v1alpha1" } }, @@ -66026,7 +66593,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the VolumeClass", + "description": "name of the VolumePool", "name": "name", "in": "path", "required": true @@ -66051,9 +66618,9 @@ } ] }, - "/apis/storage.ironcore.dev/v1alpha1/watch/volumepools": { + "/apis/storage.ironcore.dev/v1alpha1/watch/volumes": { "get": { - "description": "watch individual changes to a list of VolumePool. deprecated: use the 'watch' parameter with a list operation instead.", + "description": "watch individual changes to a list of Volume. deprecated: use the 'watch' parameter with a list operation instead.", "consumes": [ "*/*" ], @@ -66068,7 +66635,7 @@ "tags": [ "storageIroncoreDev_v1alpha1" ], - "operationId": "watchStorageIroncoreDevV1alpha1VolumePoolList", + "operationId": "watchStorageIroncoreDevV1alpha1VolumeListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -66083,79 +66650,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", - "kind": "VolumePool", - "version": "v1alpha1" - } - }, - "parameters": [ - { - "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" - }, - { - "$ref": "#/parameters/continue-QfD61s0i" - }, - { - "$ref": "#/parameters/fieldSelector-xIcQKXFG" - }, - { - "$ref": "#/parameters/labelSelector-5Zw57w4C" - }, - { - "$ref": "#/parameters/limit-1NfNmdNH" - }, - { - "$ref": "#/parameters/pretty-tJGM1-ng" - }, - { - "$ref": "#/parameters/resourceVersion-5WAnf1kx" - }, - { - "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" - }, - { - "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" - }, - { - "$ref": "#/parameters/timeoutSeconds-yvYezaOC" - }, - { - "$ref": "#/parameters/watch-XNNPZGbK" - } - ] - }, - "/apis/storage.ironcore.dev/v1alpha1/watch/volumepools/{name}": { - "get": { - "description": "watch changes to an object of kind VolumePool. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/json;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "storageIroncoreDev_v1alpha1" - ], - "operationId": "watchStorageIroncoreDevV1alpha1VolumePool", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "storage.ironcore.dev", - "kind": "VolumePool", + "kind": "Volume", "version": "v1alpha1" } }, @@ -66175,14 +66670,6 @@ { "$ref": "#/parameters/limit-1NfNmdNH" }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the VolumePool", - "name": "name", - "in": "path", - "required": true - }, { "$ref": "#/parameters/pretty-tJGM1-ng" }, @@ -66203,9 +66690,9 @@ } ] }, - "/apis/storage.ironcore.dev/v1alpha1/watch/volumes": { + "/apis/storage.ironcore.dev/v1alpha1/watch/volumesnapshots": { "get": { - "description": "watch individual changes to a list of Volume. deprecated: use the 'watch' parameter with a list operation instead.", + "description": "watch individual changes to a list of VolumeSnapshot. deprecated: use the 'watch' parameter with a list operation instead.", "consumes": [ "*/*" ], @@ -66220,7 +66707,7 @@ "tags": [ "storageIroncoreDev_v1alpha1" ], - "operationId": "watchStorageIroncoreDevV1alpha1VolumeListForAllNamespaces", + "operationId": "watchStorageIroncoreDevV1alpha1VolumeSnapshotListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -66235,7 +66722,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", - "kind": "Volume", + "kind": "VolumeSnapshot", "version": "v1alpha1" } }, @@ -70746,6 +71233,20 @@ } } }, + "com.github.ironcore-dev.ironcore.api.compute.v1alpha1.LocalDiskVolumeSource": { + "description": "LocalDiskVolumeSource is a volume that's offered by the machine pool provider. Usually ephemeral (i.e. deleted when the surrounding entity is deleted), with varying performance characteristics. Potentially not recoverable.", + "type": "object", + "properties": { + "image": { + "description": "Image is the optional URL providing the operating system image of the machine.", + "type": "string" + }, + "sizeLimit": { + "description": "SizeLimit is the total amount of local storage required for this LocalDisk volume. The default is nil which means that the limit is undefined.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + } + } + }, "com.github.ironcore-dev.ironcore.api.compute.v1alpha1.Machine": { "description": "Machine is the Schema for the machines API", "type": "object", @@ -70839,6 +71340,38 @@ } ] }, + "com.github.ironcore-dev.ironcore.api.compute.v1alpha1.MachineCondition": { + "description": "MachineCondition is one of the conditions of a machine.", + "type": "object", + "required": [ + "type", + "status", + "reason", + "message" + ], + "properties": { + "lastTransitionTime": { + "description": "LastTransitionTime is the last time the status of a condition has transitioned from one state to another.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + }, + "message": { + "description": "Message is a human-readable explanation of why the condition has a certain reason / state.", + "type": "string" + }, + "reason": { + "description": "Reason is a machine-readable indication of why the condition is in a certain state.", + "type": "string" + }, + "status": { + "description": "Status is the status of the condition.", + "type": "string" + }, + "type": { + "description": "Type is the type of the condition.", + "type": "string" + } + } + }, "com.github.ironcore-dev.ironcore.api.compute.v1alpha1.MachineList": { "description": "MachineList contains a list of Machine", "type": "object", @@ -70918,7 +71451,7 @@ } }, "com.github.ironcore-dev.ironcore.api.compute.v1alpha1.MachinePoolCondition": { - "description": "MachinePoolCondition is one of the conditions of a volume.", + "description": "MachinePoolCondition is one of the conditions of a MachinePool.", "type": "object", "required": [ "type", @@ -71089,7 +71622,7 @@ "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.common.v1alpha1.SecretKeySelector" }, "image": { - "description": "Image is the optional URL providing the operating system image of the machine.", + "description": "Deprecated: Use LocalDisk to provide a bootable disk Image is the optional URL providing the operating system image of the machine.", "type": "string" }, "imagePullSecret": { @@ -71146,6 +71679,13 @@ "description": "MachineStatus defines the observed state of Machine", "type": "object", "properties": { + "conditions": { + "description": "Conditions are the conditions of a machine.", + "type": "array", + "items": { + "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.compute.v1alpha1.MachineCondition" + } + }, "machineID": { "description": "MachineID is the provider specific machine ID in the format 'TYPE://MACHINE_ID'.", "type": "string" @@ -71244,13 +71784,17 @@ "type": "string" }, "emptyDisk": { - "description": "EmptyDisk instructs to use a Volume offered by the machine pool provider.", + "description": "Deprecated: Use LocalDisk instead EmptyDisk instructs to use a Volume offered by the machine pool provider.", "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.compute.v1alpha1.EmptyDiskVolumeSource" }, "ephemeral": { "description": "Ephemeral instructs to create an ephemeral (i.e. coupled to the lifetime of the surrounding object) Volume to use.", "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.compute.v1alpha1.EphemeralVolumeSource" }, + "localDisk": { + "description": "LocalDisk instructs to use a Volume offered by the machine pool provider.", + "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.compute.v1alpha1.LocalDiskVolumeSource" + }, "name": { "description": "Name is the name of the Volume", "type": "string" @@ -73427,29 +73971,6 @@ } } }, - "com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeDataSource": { - "description": "VolumeDataSource represents the source for volume", - "type": "object", - "required": [ - "apiGroup", - "kind", - "name" - ], - "properties": { - "apiGroup": { - "description": "APIGroup is the group for the resource being referenced", - "type": "string" - }, - "kind": { - "description": "Kind is the type of resource being referenced", - "type": "string" - }, - "name": { - "description": "Name is the name of resource being referenced", - "type": "string" - } - } - }, "com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeEncryption": { "description": "VolumeEncryption represents information to encrypt a volume.", "type": "object", @@ -73652,6 +74173,104 @@ } } }, + "com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot": { + "description": "VolumeSnapshot is the Schema for the VolumeSnapshots API", + "type": "object", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshotSpec" + }, + "status": { + "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshotStatus" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "storage.ironcore.dev", + "kind": "VolumeSnapshot", + "version": "v1alpha1" + } + ] + }, + "com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshotList": { + "description": "VolumeSnapshotList contains a list of VolumeSnapshot", + "type": "object", + "required": [ + "items" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot" + } + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "storage.ironcore.dev", + "kind": "VolumeSnapshotList", + "version": "v1alpha1" + } + ] + }, + "com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshotSpec": { + "description": "VolumeSnapshotSpec defines the desired state of VolumeSnapshot", + "type": "object", + "required": [ + "volumeRef" + ], + "properties": { + "volumeRef": { + "description": "VolumeRef indicates which Volume to refer for VolumeSnapshot", + "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference" + } + } + }, + "com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshotStatus": { + "description": "VolumeSnapshotStatus defines the observed state of VolumeSnapshot", + "type": "object", + "properties": { + "lastStateTransitionTime": { + "description": "LastStateTransitionTime is the last time the State transitioned between values.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + }, + "size": { + "description": "Size is the storage size used by VolumeSnapshot", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "snapshotID": { + "description": "SnapshotID is the provider-specific snapshot ID in the format 'TYPE://SNAPSHOT_ID'.", + "type": "string" + }, + "state": { + "description": "State represents the storage provider state of VolumeSnapshot", + "type": "string" + } + } + }, "com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSpec": { "description": "VolumeSpec defines the desired state of Volume", "type": "object", @@ -73660,22 +74279,22 @@ "description": "ClaimRef is the reference to the claiming entity of the Volume.", "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.common.v1alpha1.LocalUIDReference" }, - "dataSource": { - "description": "DataSource is an optional field which provides information regarding the snapshot to be used as the source for the volume restoration", - "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeDataSource" - }, "encryption": { "description": "Encryption is an optional field which provides attributes to encrypt Volume.", "$ref": "#/definitions/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeEncryption" }, "image": { - "description": "Image is an optional image to bootstrap the volume with.", + "description": "Image is an optional image to bootstrap the volume with. To be deprecated", "type": "string" }, "imagePullSecretRef": { "description": "ImagePullSecretRef is an optional secret for pulling the image of a volume.", "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference" }, + "osImage": { + "description": "OSImage is an optional os image to bootstrap the volume.", + "type": "string" + }, "resources": { "description": "Resources is a description of the volume's resources and capacity.", "type": "object", @@ -73708,6 +74327,10 @@ "additionalProperties": { "type": "string" } + }, + "volumeSnapshotRef": { + "description": "VolumeSnapshotRef instructs to use the specified VolumeSnapshot as the data source.", + "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference" } } }, @@ -79643,7 +80266,7 @@ "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapEnvSource" }, "prefix": { - "description": "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", + "description": "Optional text to prepend to the name of each environment variable. May consist of any printable ASCII characters except '='.", "type": "string" }, "secretRef": { @@ -89178,6 +89801,11 @@ "description": "fsGroupPolicy defines if the underlying volume supports changing ownership and permission of the volume before being mounted. Refer to the specific FSGroupPolicy values for additional details.\n\nThis field was immutable in Kubernetes < 1.29 and now is mutable.\n\nDefaults to ReadWriteOnceWithFSType, which will examine each volume to determine if Kubernetes should modify ownership and permissions of the volume. With the default policy the defined fsGroup will only be applied if a fstype is defined and the volume's access mode contains ReadWriteOnce.", "type": "string" }, + "nodeAllocatableUpdatePeriodSeconds": { + "description": "nodeAllocatableUpdatePeriodSeconds specifies the interval between periodic updates of the CSINode allocatable capacity for this driver. When set, both periodic updates and updates triggered by capacity-related failures are enabled. If not set, no updates occur (neither periodic nor upon detecting capacity-related failures), and the allocatable.count remains static. The minimum allowed value for this field is 10 seconds.\n\nThis is a beta feature and requires the MutableCSINodeAllocatableCount feature gate to be enabled.\n\nThis field is mutable.", + "type": "integer", + "format": "int64" + }, "podInfoOnMount": { "description": "podInfoOnMount indicates this CSI volume driver requires additional pod information (like podName, podUID, etc.) during mount operations, if set to true. If set to false, pod information will not be passed on mount. Default is false.\n\nThe CSI driver specifies podInfoOnMount as part of driver deployment. If true, Kubelet will pass pod information as VolumeContext in the CSI NodePublishVolume() calls. The CSI driver is responsible for parsing and validating the information passed in as VolumeContext.\n\nThe following VolumeContext will be passed if podInfoOnMount is set to true. This list might grow, but the prefix will be used. \"csi.storage.k8s.io/pod.name\": pod.Name \"csi.storage.k8s.io/pod.namespace\": pod.Namespace \"csi.storage.k8s.io/pod.uid\": string(pod.UID) \"csi.storage.k8s.io/ephemeral\": \"true\" if the volume is an ephemeral inline volume\n defined by a CSIVolumeSource, otherwise \"false\"\n\n\"csi.storage.k8s.io/ephemeral\" is a new feature in Kubernetes 1.16. It is only required for drivers which support both the \"Persistent\" and \"Ephemeral\" VolumeLifecycleMode. Other drivers can leave pod info disabled and/or ignore this field. As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when deployed on such a cluster and the deployment determines which mode that is, for example via a command line parameter of the driver.\n\nThis field was immutable in Kubernetes < 1.29 and now is mutable.", "type": "boolean" @@ -89753,6 +90381,11 @@ "description": "VolumeError captures an error encountered during a volume operation.", "type": "object", "properties": { + "errorCode": { + "description": "errorCode is a numeric gRPC code representing the error encountered during Attach or Detach operations.\n\nThis is an optional, beta field that requires the MutableCSINodeAllocatableCount feature gate being enabled to be set.", + "type": "integer", + "format": "int32" + }, "message": { "description": "message represents the error encountered during Attach or Detach operation. This string may be logged, so it should not contain sensitive information.", "type": "string" @@ -91953,14 +92586,6 @@ "description": "EmulationMinor is the minor version of the emulation version", "type": "string" }, - "emulationMajor": { - "description": "EmulationMajor is the major version of the emulation version", - "type": "string" - }, - "emulationMinor": { - "description": "EmulationMinor is the minor version of the emulation version", - "type": "string" - }, "gitCommit": { "type": "string" }, diff --git a/gen/v3/apis__compute.ironcore.dev__v1alpha1_openapi.json b/gen/v3/apis__compute.ironcore.dev__v1alpha1_openapi.json index b5ec4d64f..aa56c29fa 100644 --- a/gen/v3/apis__compute.ironcore.dev__v1alpha1_openapi.json +++ b/gen/v3/apis__compute.ironcore.dev__v1alpha1_openapi.json @@ -4194,6 +4194,24 @@ } } }, + "com.github.ironcore-dev.ironcore.api.compute.v1alpha1.LocalDiskVolumeSource": { + "description": "LocalDiskVolumeSource is a volume that's offered by the machine pool provider. Usually ephemeral (i.e. deleted when the surrounding entity is deleted), with varying performance characteristics. Potentially not recoverable.", + "type": "object", + "properties": { + "image": { + "description": "Image is the optional URL providing the operating system image of the machine.", + "type": "string" + }, + "sizeLimit": { + "description": "SizeLimit is the total amount of local storage required for this LocalDisk volume. The default is nil which means that the limit is undefined.", + "allOf": [ + { + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity" + } + ] + } + } + }, "com.github.ironcore-dev.ironcore.api.compute.v1alpha1.Machine": { "description": "Machine is the Schema for the machines API", "type": "object", @@ -4317,6 +4335,46 @@ } ] }, + "com.github.ironcore-dev.ironcore.api.compute.v1alpha1.MachineCondition": { + "description": "MachineCondition is one of the conditions of a machine.", + "type": "object", + "required": [ + "type", + "status", + "reason", + "message" + ], + "properties": { + "lastTransitionTime": { + "description": "LastTransitionTime is the last time the status of a condition has transitioned from one state to another.", + "allOf": [ + { + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + } + ] + }, + "message": { + "description": "Message is a human-readable explanation of why the condition has a certain reason / state.", + "type": "string", + "default": "" + }, + "reason": { + "description": "Reason is a machine-readable indication of why the condition is in a certain state.", + "type": "string", + "default": "" + }, + "status": { + "description": "Status is the status of the condition.", + "type": "string", + "default": "" + }, + "type": { + "description": "Type is the type of the condition.", + "type": "string", + "default": "" + } + } + }, "com.github.ironcore-dev.ironcore.api.compute.v1alpha1.MachineList": { "description": "MachineList contains a list of Machine", "type": "object", @@ -4423,7 +4481,7 @@ } }, "com.github.ironcore-dev.ironcore.api.compute.v1alpha1.MachinePoolCondition": { - "description": "MachinePoolCondition is one of the conditions of a volume.", + "description": "MachinePoolCondition is one of the conditions of a MachinePool.", "type": "object", "required": [ "type", @@ -4652,7 +4710,7 @@ ] }, "image": { - "description": "Image is the optional URL providing the operating system image of the machine.", + "description": "Deprecated: Use LocalDisk to provide a bootable disk Image is the optional URL providing the operating system image of the machine.", "type": "string" }, "imagePullSecret": { @@ -4738,6 +4796,18 @@ "description": "MachineStatus defines the observed state of Machine", "type": "object", "properties": { + "conditions": { + "description": "Conditions are the conditions of a machine.", + "type": "array", + "items": { + "default": {}, + "allOf": [ + { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.compute.v1alpha1.MachineCondition" + } + ] + } + }, "machineID": { "description": "MachineID is the provider specific machine ID in the format 'TYPE://MACHINE_ID'.", "type": "string" @@ -4865,7 +4935,7 @@ "type": "string" }, "emptyDisk": { - "description": "EmptyDisk instructs to use a Volume offered by the machine pool provider.", + "description": "Deprecated: Use LocalDisk instead EmptyDisk instructs to use a Volume offered by the machine pool provider.", "allOf": [ { "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.compute.v1alpha1.EmptyDiskVolumeSource" @@ -4880,6 +4950,14 @@ } ] }, + "localDisk": { + "description": "LocalDisk instructs to use a Volume offered by the machine pool provider.", + "allOf": [ + { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.compute.v1alpha1.LocalDiskVolumeSource" + } + ] + }, "name": { "description": "Name is the name of the Volume", "type": "string", @@ -5257,31 +5335,6 @@ } } }, - "com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeDataSource": { - "description": "VolumeDataSource represents the source for volume", - "type": "object", - "required": [ - "apiGroup", - "kind", - "name" - ], - "properties": { - "apiGroup": { - "description": "APIGroup is the group for the resource being referenced", - "type": "string" - }, - "kind": { - "description": "Kind is the type of resource being referenced", - "type": "string", - "default": "" - }, - "name": { - "description": "Name is the name of resource being referenced", - "type": "string", - "default": "" - } - } - }, "com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeEncryption": { "description": "VolumeEncryption represents information to encrypt a volume.", "type": "object", @@ -5312,14 +5365,6 @@ } ] }, - "dataSource": { - "description": "DataSource is an optional field which provides information regarding the snapshot to be used as the source for the volume restoration", - "allOf": [ - { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeDataSource" - } - ] - }, "encryption": { "description": "Encryption is an optional field which provides attributes to encrypt Volume.", "allOf": [ @@ -5329,7 +5374,7 @@ ] }, "image": { - "description": "Image is an optional image to bootstrap the volume with.", + "description": "Image is an optional image to bootstrap the volume with. To be deprecated", "type": "string" }, "imagePullSecretRef": { @@ -5340,6 +5385,10 @@ } ] }, + "osImage": { + "description": "OSImage is an optional os image to bootstrap the volume.", + "type": "string" + }, "resources": { "description": "Resources is a description of the volume's resources and capacity.", "type": "object", @@ -5386,6 +5435,14 @@ "type": "string", "default": "" } + }, + "volumeSnapshotRef": { + "description": "VolumeSnapshotRef instructs to use the specified VolumeSnapshot as the data source.", + "allOf": [ + { + "$ref": "#/components/schemas/io.k8s.api.core.v1.LocalObjectReference" + } + ] } } }, diff --git a/gen/v3/apis__storage.ironcore.dev__v1alpha1_openapi.json b/gen/v3/apis__storage.ironcore.dev__v1alpha1_openapi.json index 17c0dcc34..be4ad8631 100644 --- a/gen/v3/apis__storage.ironcore.dev__v1alpha1_openapi.json +++ b/gen/v3/apis__storage.ironcore.dev__v1alpha1_openapi.json @@ -3936,13 +3936,13 @@ } ] }, - "/apis/storage.ironcore.dev/v1alpha1/volumeclasses": { + "/apis/storage.ironcore.dev/v1alpha1/namespaces/{namespace}/volumesnapshots": { "get": { "tags": [ "storageIroncoreDev_v1alpha1" ], - "description": "list or watch objects of kind VolumeClass", - "operationId": "listStorageIroncoreDevV1alpha1VolumeClass", + "description": "list or watch objects of kind VolumeSnapshot", + "operationId": "listStorageIroncoreDevV1alpha1NamespacedVolumeSnapshot", "parameters": [ { "name": "allowWatchBookmarks", @@ -4041,17 +4041,17 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClassList" + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshotList" } }, "application/json;stream=watch": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClassList" + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshotList" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClassList" + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshotList" } } } @@ -4061,15 +4061,15 @@ "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", "version": "v1alpha1", - "kind": "VolumeClass" + "kind": "VolumeSnapshot" } }, "post": { "tags": [ "storageIroncoreDev_v1alpha1" ], - "description": "create a VolumeClass", - "operationId": "createStorageIroncoreDevV1alpha1VolumeClass", + "description": "create a VolumeSnapshot", + "operationId": "createStorageIroncoreDevV1alpha1NamespacedVolumeSnapshot", "parameters": [ { "name": "dryRun", @@ -4103,7 +4103,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot" } } }, @@ -4115,12 +4115,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot" } } } @@ -4130,12 +4130,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot" } } } @@ -4145,12 +4145,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot" } } } @@ -4160,15 +4160,15 @@ "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", "version": "v1alpha1", - "kind": "VolumeClass" + "kind": "VolumeSnapshot" } }, "delete": { "tags": [ "storageIroncoreDev_v1alpha1" ], - "description": "delete collection of VolumeClass", - "operationId": "deleteStorageIroncoreDevV1alpha1CollectionVolumeClass", + "description": "delete collection of VolumeSnapshot", + "operationId": "deleteStorageIroncoreDevV1alpha1CollectionNamespacedVolumeSnapshot", "parameters": [ { "name": "continue", @@ -4318,10 +4318,20 @@ "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", "version": "v1alpha1", - "kind": "VolumeClass" + "kind": "VolumeSnapshot" } }, "parameters": [ + { + "name": "namespace", + "in": "path", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "schema": { + "type": "string", + "uniqueItems": true + } + }, { "name": "pretty", "in": "query", @@ -4333,25 +4343,25 @@ } ] }, - "/apis/storage.ironcore.dev/v1alpha1/volumeclasses/{name}": { + "/apis/storage.ironcore.dev/v1alpha1/namespaces/{namespace}/volumesnapshots/{name}": { "get": { "tags": [ "storageIroncoreDev_v1alpha1" ], - "description": "read the specified VolumeClass", - "operationId": "readStorageIroncoreDevV1alpha1VolumeClass", + "description": "read the specified VolumeSnapshot", + "operationId": "readStorageIroncoreDevV1alpha1NamespacedVolumeSnapshot", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot" } } } @@ -4361,15 +4371,15 @@ "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", "version": "v1alpha1", - "kind": "VolumeClass" + "kind": "VolumeSnapshot" } }, "put": { "tags": [ "storageIroncoreDev_v1alpha1" ], - "description": "replace the specified VolumeClass", - "operationId": "replaceStorageIroncoreDevV1alpha1VolumeClass", + "description": "replace the specified VolumeSnapshot", + "operationId": "replaceStorageIroncoreDevV1alpha1NamespacedVolumeSnapshot", "parameters": [ { "name": "dryRun", @@ -4403,7 +4413,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot" } } }, @@ -4415,12 +4425,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot" } } } @@ -4430,12 +4440,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot" } } } @@ -4445,15 +4455,15 @@ "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", "version": "v1alpha1", - "kind": "VolumeClass" + "kind": "VolumeSnapshot" } }, "delete": { "tags": [ "storageIroncoreDev_v1alpha1" ], - "description": "delete a VolumeClass", - "operationId": "deleteStorageIroncoreDevV1alpha1VolumeClass", + "description": "delete a VolumeSnapshot", + "operationId": "deleteStorageIroncoreDevV1alpha1NamespacedVolumeSnapshot", "parameters": [ { "name": "dryRun", @@ -4546,15 +4556,15 @@ "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", "version": "v1alpha1", - "kind": "VolumeClass" + "kind": "VolumeSnapshot" } }, "patch": { "tags": [ "storageIroncoreDev_v1alpha1" ], - "description": "partially update the specified VolumeClass", - "operationId": "patchStorageIroncoreDevV1alpha1VolumeClass", + "description": "partially update the specified VolumeSnapshot", + "operationId": "patchStorageIroncoreDevV1alpha1NamespacedVolumeSnapshot", "parameters": [ { "name": "dryRun", @@ -4624,12 +4634,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot" } } } @@ -4639,12 +4649,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot" } } } @@ -4654,14 +4664,24 @@ "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", "version": "v1alpha1", - "kind": "VolumeClass" + "kind": "VolumeSnapshot" } }, "parameters": [ { "name": "name", "in": "path", - "description": "name of the VolumeClass", + "description": "name of the VolumeSnapshot", + "required": true, + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "namespace", + "in": "path", + "description": "object name and auth scope, such as for teams and projects", "required": true, "schema": { "type": "string", @@ -4679,140 +4699,43 @@ } ] }, - "/apis/storage.ironcore.dev/v1alpha1/volumepools": { + "/apis/storage.ironcore.dev/v1alpha1/namespaces/{namespace}/volumesnapshots/{name}/status": { "get": { "tags": [ "storageIroncoreDev_v1alpha1" ], - "description": "list or watch objects of kind VolumePool", - "operationId": "listStorageIroncoreDevV1alpha1VolumePool", - "parameters": [ - { - "name": "allowWatchBookmarks", - "in": "query", - "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.", - "schema": { - "type": "boolean", - "uniqueItems": true - } - }, - { - "name": "continue", - "in": "query", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "schema": { - "type": "string", - "uniqueItems": true - } - }, - { - "name": "fieldSelector", - "in": "query", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "schema": { - "type": "string", - "uniqueItems": true - } - }, - { - "name": "labelSelector", - "in": "query", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "schema": { - "type": "string", - "uniqueItems": true - } - }, - { - "name": "limit", - "in": "query", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "schema": { - "type": "integer", - "uniqueItems": true - } - }, - { - "name": "resourceVersion", - "in": "query", - "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "schema": { - "type": "string", - "uniqueItems": true - } - }, - { - "name": "resourceVersionMatch", - "in": "query", - "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - "schema": { - "type": "string", - "uniqueItems": true - } - }, - { - "name": "sendInitialEvents", - "in": "query", - "description": "`sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched.\n\nWhen `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan\n is interpreted as \"data at least as new as the provided `resourceVersion`\"\n and the bookmark event is send when the state is synced\n to a `resourceVersion` at least as fresh as the one provided by the ListOptions.\n If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the\n bookmark event is send when the state is synced at least to the moment\n when request started being processed.\n- `resourceVersionMatch` set to any other value or unset\n Invalid error is returned.\n\nDefaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.", - "schema": { - "type": "boolean", - "uniqueItems": true - } - }, - { - "name": "timeoutSeconds", - "in": "query", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "schema": { - "type": "integer", - "uniqueItems": true - } - }, - { - "name": "watch", - "in": "query", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "schema": { - "type": "boolean", - "uniqueItems": true - } - } - ], + "description": "read status of the specified VolumeSnapshot", + "operationId": "readStorageIroncoreDevV1alpha1NamespacedVolumeSnapshotStatus", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePoolList" - } - }, - "application/json;stream=watch": { - "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePoolList" + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePoolList" + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot" } } } } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", "version": "v1alpha1", - "kind": "VolumePool" + "kind": "VolumeSnapshot" } }, - "post": { + "put": { "tags": [ "storageIroncoreDev_v1alpha1" ], - "description": "create a VolumePool", - "operationId": "createStorageIroncoreDevV1alpha1VolumePool", + "description": "replace status of the specified VolumeSnapshot", + "operationId": "replaceStorageIroncoreDevV1alpha1NamespacedVolumeSnapshotStatus", "parameters": [ { "name": "dryRun", @@ -4846,7 +4769,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot" } } }, @@ -4858,12 +4781,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot" } } } @@ -4873,55 +4796,31 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" - } - }, - "application/yaml": { - "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" - } - } - } - }, - "202": { - "description": "Accepted", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot" } } } } }, - "x-kubernetes-action": "post", + "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", "version": "v1alpha1", - "kind": "VolumePool" + "kind": "VolumeSnapshot" } }, - "delete": { + "patch": { "tags": [ "storageIroncoreDev_v1alpha1" ], - "description": "delete collection of VolumePool", - "operationId": "deleteStorageIroncoreDevV1alpha1CollectionVolumePool", + "description": "partially update status of the specified VolumeSnapshot", + "operationId": "patchStorageIroncoreDevV1alpha1NamespacedVolumeSnapshotStatus", "parameters": [ - { - "name": "continue", - "in": "query", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "schema": { - "type": "string", - "uniqueItems": true - } - }, { "name": "dryRun", "in": "query", @@ -4932,68 +4831,182 @@ } }, { - "name": "fieldSelector", + "name": "fieldManager", "in": "query", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", "schema": { "type": "string", "uniqueItems": true } }, { - "name": "gracePeriodSeconds", + "name": "fieldValidation", "in": "query", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", "schema": { - "type": "integer", + "type": "string", "uniqueItems": true } }, { - "name": "ignoreStoreReadErrorWithClusterBreakingPotential", + "name": "force", "in": "query", - "description": "if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it", + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", "schema": { "type": "boolean", "uniqueItems": true } - }, - { - "name": "labelSelector", - "in": "query", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "schema": { - "type": "string", - "uniqueItems": true + } + ], + "requestBody": { + "content": { + "application/apply-patch+yaml": { + "schema": { + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + "application/merge-patch+json": { + "schema": { + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + "application/strategic-merge-patch+json": { + "schema": { + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } } }, - { - "name": "limit", + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot" + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot" + } + } + } + } + }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "storage.ironcore.dev", + "version": "v1alpha1", + "kind": "VolumeSnapshot" + } + }, + "parameters": [ + { + "name": "name", + "in": "path", + "description": "name of the VolumeSnapshot", + "required": true, + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "namespace", + "in": "path", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "pretty", + "in": "query", + "description": "If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).", + "schema": { + "type": "string", + "uniqueItems": true + } + } + ] + }, + "/apis/storage.ironcore.dev/v1alpha1/volumeclasses": { + "get": { + "tags": [ + "storageIroncoreDev_v1alpha1" + ], + "description": "list or watch objects of kind VolumeClass", + "operationId": "listStorageIroncoreDevV1alpha1VolumeClass", + "parameters": [ + { + "name": "allowWatchBookmarks", "in": "query", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.", "schema": { - "type": "integer", + "type": "boolean", "uniqueItems": true } }, { - "name": "orphanDependents", + "name": "continue", "in": "query", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", "schema": { - "type": "boolean", + "type": "string", "uniqueItems": true } }, { - "name": "propagationPolicy", + "name": "fieldSelector", "in": "query", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "labelSelector", + "in": "query", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", "schema": { "type": "string", "uniqueItems": true } }, + { + "name": "limit", + "in": "query", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "schema": { + "type": "integer", + "uniqueItems": true + } + }, { "name": "resourceVersion", "in": "query", @@ -5029,90 +5042,52 @@ "type": "integer", "uniqueItems": true } - } - ], - "requestBody": { - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } + }, + { + "name": "watch", + "in": "query", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "schema": { + "type": "boolean", + "uniqueItems": true } } - }, + ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClassList" } }, - "application/yaml": { - "schema": { - "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - } - } - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "storage.ironcore.dev", - "version": "v1alpha1", - "kind": "VolumePool" - } - }, - "parameters": [ - { - "name": "pretty", - "in": "query", - "description": "If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).", - "schema": { - "type": "string", - "uniqueItems": true - } - } - ] - }, - "/apis/storage.ironcore.dev/v1alpha1/volumepools/{name}": { - "get": { - "tags": [ - "storageIroncoreDev_v1alpha1" - ], - "description": "read the specified VolumePool", - "operationId": "readStorageIroncoreDevV1alpha1VolumePool", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { + "application/json;stream=watch": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClassList" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClassList" } } } } }, - "x-kubernetes-action": "get", + "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", "version": "v1alpha1", - "kind": "VolumePool" + "kind": "VolumeClass" } }, - "put": { + "post": { "tags": [ "storageIroncoreDev_v1alpha1" ], - "description": "replace the specified VolumePool", - "operationId": "replaceStorageIroncoreDevV1alpha1VolumePool", + "description": "create a VolumeClass", + "operationId": "createStorageIroncoreDevV1alpha1VolumeClass", "parameters": [ { "name": "dryRun", @@ -5146,7 +5121,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" } } }, @@ -5158,12 +5133,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" } } } @@ -5173,31 +5148,55 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" + } + } + } + }, + "202": { + "description": "Accepted", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" } } } } }, - "x-kubernetes-action": "put", + "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", "version": "v1alpha1", - "kind": "VolumePool" + "kind": "VolumeClass" } }, "delete": { "tags": [ "storageIroncoreDev_v1alpha1" ], - "description": "delete a VolumePool", - "operationId": "deleteStorageIroncoreDevV1alpha1VolumePool", + "description": "delete collection of VolumeClass", + "operationId": "deleteStorageIroncoreDevV1alpha1CollectionVolumeClass", "parameters": [ + { + "name": "continue", + "in": "query", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "schema": { + "type": "string", + "uniqueItems": true + } + }, { "name": "dryRun", "in": "query", @@ -5207,6 +5206,15 @@ "uniqueItems": true } }, + { + "name": "fieldSelector", + "in": "query", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "schema": { + "type": "string", + "uniqueItems": true + } + }, { "name": "gracePeriodSeconds", "in": "query", @@ -5225,6 +5233,24 @@ "uniqueItems": true } }, + { + "name": "labelSelector", + "in": "query", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "limit", + "in": "query", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "schema": { + "type": "integer", + "uniqueItems": true + } + }, { "name": "orphanDependents", "in": "query", @@ -5242,9 +5268,45 @@ "type": "string", "uniqueItems": true } - } - ], - "requestBody": { + }, + { + "name": "resourceVersion", + "in": "query", + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "resourceVersionMatch", + "in": "query", + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "sendInitialEvents", + "in": "query", + "description": "`sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched.\n\nWhen `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan\n is interpreted as \"data at least as new as the provided `resourceVersion`\"\n and the bookmark event is send when the state is synced\n to a `resourceVersion` at least as fresh as the one provided by the ListOptions.\n If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the\n bookmark event is send when the state is synced at least to the moment\n when request started being processed.\n- `resourceVersionMatch` set to any other value or unset\n Invalid error is returned.\n\nDefaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.", + "schema": { + "type": "boolean", + "uniqueItems": true + } + }, + { + "name": "timeoutSeconds", + "in": "query", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "schema": { + "type": "integer", + "uniqueItems": true + } + } + ], + "requestBody": { "content": { "*/*": { "schema": { @@ -5268,36 +5330,64 @@ } } } - }, - "202": { - "description": "Accepted", + } + }, + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "storage.ironcore.dev", + "version": "v1alpha1", + "kind": "VolumeClass" + } + }, + "parameters": [ + { + "name": "pretty", + "in": "query", + "description": "If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).", + "schema": { + "type": "string", + "uniqueItems": true + } + } + ] + }, + "/apis/storage.ironcore.dev/v1alpha1/volumeclasses/{name}": { + "get": { + "tags": [ + "storageIroncoreDev_v1alpha1" + ], + "description": "read the specified VolumeClass", + "operationId": "readStorageIroncoreDevV1alpha1VolumeClass", + "responses": { + "200": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" } } } } }, - "x-kubernetes-action": "delete", + "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", "version": "v1alpha1", - "kind": "VolumePool" + "kind": "VolumeClass" } }, - "patch": { + "put": { "tags": [ "storageIroncoreDev_v1alpha1" ], - "description": "partially update the specified VolumePool", - "operationId": "patchStorageIroncoreDevV1alpha1VolumePool", + "description": "replace the specified VolumeClass", + "operationId": "replaceStorageIroncoreDevV1alpha1VolumeClass", "parameters": [ { "name": "dryRun", @@ -5311,7 +5401,7 @@ { "name": "fieldManager", "in": "query", - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", "schema": { "type": "string", "uniqueItems": true @@ -5325,37 +5415,13 @@ "type": "string", "uniqueItems": true } - }, - { - "name": "force", - "in": "query", - "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - "schema": { - "type": "boolean", - "uniqueItems": true - } } ], "requestBody": { "content": { - "application/apply-patch+yaml": { - "schema": { - "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - "application/json-patch+json": { - "schema": { - "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - "application/merge-patch+json": { - "schema": { - "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - }, - "application/strategic-merge-patch+json": { + "*/*": { "schema": { - "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" } } }, @@ -5367,12 +5433,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" } } } @@ -5382,83 +5448,30 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" - } - }, - "application/yaml": { - "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" - } - } - } - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.ironcore.dev", - "version": "v1alpha1", - "kind": "VolumePool" - } - }, - "parameters": [ - { - "name": "name", - "in": "path", - "description": "name of the VolumePool", - "required": true, - "schema": { - "type": "string", - "uniqueItems": true - } - }, - { - "name": "pretty", - "in": "query", - "description": "If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).", - "schema": { - "type": "string", - "uniqueItems": true - } - } - ] - }, - "/apis/storage.ironcore.dev/v1alpha1/volumepools/{name}/status": { - "get": { - "tags": [ - "storageIroncoreDev_v1alpha1" - ], - "description": "read status of the specified VolumePool", - "operationId": "readStorageIroncoreDevV1alpha1VolumePoolStatus", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" } } } } }, - "x-kubernetes-action": "get", + "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", "version": "v1alpha1", - "kind": "VolumePool" + "kind": "VolumeClass" } }, - "put": { + "delete": { "tags": [ "storageIroncoreDev_v1alpha1" ], - "description": "replace status of the specified VolumePool", - "operationId": "replaceStorageIroncoreDevV1alpha1VolumePoolStatus", + "description": "delete a VolumeClass", + "operationId": "deleteStorageIroncoreDevV1alpha1VolumeClass", "parameters": [ { "name": "dryRun", @@ -5470,18 +5483,36 @@ } }, { - "name": "fieldManager", + "name": "gracePeriodSeconds", "in": "query", - "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", "schema": { - "type": "string", + "type": "integer", "uniqueItems": true } }, { - "name": "fieldValidation", + "name": "ignoreStoreReadErrorWithClusterBreakingPotential", "in": "query", - "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "description": "if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it", + "schema": { + "type": "boolean", + "uniqueItems": true + } + }, + { + "name": "orphanDependents", + "in": "query", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "schema": { + "type": "boolean", + "uniqueItems": true + } + }, + { + "name": "propagationPolicy", + "in": "query", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", "schema": { "type": "string", "uniqueItems": true @@ -5492,11 +5523,10 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" } } - }, - "required": true + } }, "responses": { "200": { @@ -5504,45 +5534,45 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status" } } } }, - "201": { - "description": "Created", + "202": { + "description": "Accepted", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status" } } } } }, - "x-kubernetes-action": "put", + "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", "version": "v1alpha1", - "kind": "VolumePool" + "kind": "VolumeClass" } }, "patch": { "tags": [ "storageIroncoreDev_v1alpha1" ], - "description": "partially update status of the specified VolumePool", - "operationId": "patchStorageIroncoreDevV1alpha1VolumePoolStatus", + "description": "partially update the specified VolumeClass", + "operationId": "patchStorageIroncoreDevV1alpha1VolumeClass", "parameters": [ { "name": "dryRun", @@ -5612,12 +5642,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" } } } @@ -5627,12 +5657,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeClass" } } } @@ -5642,14 +5672,1519 @@ "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", "version": "v1alpha1", - "kind": "VolumePool" + "kind": "VolumeClass" + } + }, + "parameters": [ + { + "name": "name", + "in": "path", + "description": "name of the VolumeClass", + "required": true, + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "pretty", + "in": "query", + "description": "If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).", + "schema": { + "type": "string", + "uniqueItems": true + } + } + ] + }, + "/apis/storage.ironcore.dev/v1alpha1/volumepools": { + "get": { + "tags": [ + "storageIroncoreDev_v1alpha1" + ], + "description": "list or watch objects of kind VolumePool", + "operationId": "listStorageIroncoreDevV1alpha1VolumePool", + "parameters": [ + { + "name": "allowWatchBookmarks", + "in": "query", + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.", + "schema": { + "type": "boolean", + "uniqueItems": true + } + }, + { + "name": "continue", + "in": "query", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "fieldSelector", + "in": "query", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "labelSelector", + "in": "query", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "limit", + "in": "query", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "schema": { + "type": "integer", + "uniqueItems": true + } + }, + { + "name": "resourceVersion", + "in": "query", + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "resourceVersionMatch", + "in": "query", + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "sendInitialEvents", + "in": "query", + "description": "`sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched.\n\nWhen `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan\n is interpreted as \"data at least as new as the provided `resourceVersion`\"\n and the bookmark event is send when the state is synced\n to a `resourceVersion` at least as fresh as the one provided by the ListOptions.\n If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the\n bookmark event is send when the state is synced at least to the moment\n when request started being processed.\n- `resourceVersionMatch` set to any other value or unset\n Invalid error is returned.\n\nDefaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.", + "schema": { + "type": "boolean", + "uniqueItems": true + } + }, + { + "name": "timeoutSeconds", + "in": "query", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "schema": { + "type": "integer", + "uniqueItems": true + } + }, + { + "name": "watch", + "in": "query", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "schema": { + "type": "boolean", + "uniqueItems": true + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePoolList" + } + }, + "application/json;stream=watch": { + "schema": { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePoolList" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePoolList" + } + } + } + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "storage.ironcore.dev", + "version": "v1alpha1", + "kind": "VolumePool" + } + }, + "post": { + "tags": [ + "storageIroncoreDev_v1alpha1" + ], + "description": "create a VolumePool", + "operationId": "createStorageIroncoreDevV1alpha1VolumePool", + "parameters": [ + { + "name": "dryRun", + "in": "query", + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "fieldManager", + "in": "query", + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "fieldValidation", + "in": "query", + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "schema": { + "type": "string", + "uniqueItems": true + } + } + ], + "requestBody": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + } + } + } + }, + "202": { + "description": "Accepted", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + } + } + } + } + }, + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "storage.ironcore.dev", + "version": "v1alpha1", + "kind": "VolumePool" + } + }, + "delete": { + "tags": [ + "storageIroncoreDev_v1alpha1" + ], + "description": "delete collection of VolumePool", + "operationId": "deleteStorageIroncoreDevV1alpha1CollectionVolumePool", + "parameters": [ + { + "name": "continue", + "in": "query", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "dryRun", + "in": "query", + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "fieldSelector", + "in": "query", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "gracePeriodSeconds", + "in": "query", + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "schema": { + "type": "integer", + "uniqueItems": true + } + }, + { + "name": "ignoreStoreReadErrorWithClusterBreakingPotential", + "in": "query", + "description": "if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it", + "schema": { + "type": "boolean", + "uniqueItems": true + } + }, + { + "name": "labelSelector", + "in": "query", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "limit", + "in": "query", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "schema": { + "type": "integer", + "uniqueItems": true + } + }, + { + "name": "orphanDependents", + "in": "query", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "schema": { + "type": "boolean", + "uniqueItems": true + } + }, + { + "name": "propagationPolicy", + "in": "query", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "resourceVersion", + "in": "query", + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "resourceVersionMatch", + "in": "query", + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "sendInitialEvents", + "in": "query", + "description": "`sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched.\n\nWhen `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan\n is interpreted as \"data at least as new as the provided `resourceVersion`\"\n and the bookmark event is send when the state is synced\n to a `resourceVersion` at least as fresh as the one provided by the ListOptions.\n If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the\n bookmark event is send when the state is synced at least to the moment\n when request started being processed.\n- `resourceVersionMatch` set to any other value or unset\n Invalid error is returned.\n\nDefaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.", + "schema": { + "type": "boolean", + "uniqueItems": true + } + }, + { + "name": "timeoutSeconds", + "in": "query", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "schema": { + "type": "integer", + "uniqueItems": true + } + } + ], + "requestBody": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + } + } + } + }, + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "storage.ironcore.dev", + "version": "v1alpha1", + "kind": "VolumePool" + } + }, + "parameters": [ + { + "name": "pretty", + "in": "query", + "description": "If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).", + "schema": { + "type": "string", + "uniqueItems": true + } + } + ] + }, + "/apis/storage.ironcore.dev/v1alpha1/volumepools/{name}": { + "get": { + "tags": [ + "storageIroncoreDev_v1alpha1" + ], + "description": "read the specified VolumePool", + "operationId": "readStorageIroncoreDevV1alpha1VolumePool", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + } + } + } + } + }, + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "storage.ironcore.dev", + "version": "v1alpha1", + "kind": "VolumePool" + } + }, + "put": { + "tags": [ + "storageIroncoreDev_v1alpha1" + ], + "description": "replace the specified VolumePool", + "operationId": "replaceStorageIroncoreDevV1alpha1VolumePool", + "parameters": [ + { + "name": "dryRun", + "in": "query", + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "fieldManager", + "in": "query", + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "fieldValidation", + "in": "query", + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "schema": { + "type": "string", + "uniqueItems": true + } + } + ], + "requestBody": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + } + } + } + } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "storage.ironcore.dev", + "version": "v1alpha1", + "kind": "VolumePool" + } + }, + "delete": { + "tags": [ + "storageIroncoreDev_v1alpha1" + ], + "description": "delete a VolumePool", + "operationId": "deleteStorageIroncoreDevV1alpha1VolumePool", + "parameters": [ + { + "name": "dryRun", + "in": "query", + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "gracePeriodSeconds", + "in": "query", + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "schema": { + "type": "integer", + "uniqueItems": true + } + }, + { + "name": "ignoreStoreReadErrorWithClusterBreakingPotential", + "in": "query", + "description": "if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it", + "schema": { + "type": "boolean", + "uniqueItems": true + } + }, + { + "name": "orphanDependents", + "in": "query", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "schema": { + "type": "boolean", + "uniqueItems": true + } + }, + { + "name": "propagationPolicy", + "in": "query", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "schema": { + "type": "string", + "uniqueItems": true + } + } + ], + "requestBody": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + } + } + }, + "202": { + "description": "Accepted", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + } + } + } + }, + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "storage.ironcore.dev", + "version": "v1alpha1", + "kind": "VolumePool" + } + }, + "patch": { + "tags": [ + "storageIroncoreDev_v1alpha1" + ], + "description": "partially update the specified VolumePool", + "operationId": "patchStorageIroncoreDevV1alpha1VolumePool", + "parameters": [ + { + "name": "dryRun", + "in": "query", + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "fieldManager", + "in": "query", + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "fieldValidation", + "in": "query", + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "force", + "in": "query", + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "schema": { + "type": "boolean", + "uniqueItems": true + } + } + ], + "requestBody": { + "content": { + "application/apply-patch+yaml": { + "schema": { + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + "application/merge-patch+json": { + "schema": { + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + "application/strategic-merge-patch+json": { + "schema": { + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + } + } + } + } + }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "storage.ironcore.dev", + "version": "v1alpha1", + "kind": "VolumePool" + } + }, + "parameters": [ + { + "name": "name", + "in": "path", + "description": "name of the VolumePool", + "required": true, + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "pretty", + "in": "query", + "description": "If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).", + "schema": { + "type": "string", + "uniqueItems": true + } + } + ] + }, + "/apis/storage.ironcore.dev/v1alpha1/volumepools/{name}/status": { + "get": { + "tags": [ + "storageIroncoreDev_v1alpha1" + ], + "description": "read status of the specified VolumePool", + "operationId": "readStorageIroncoreDevV1alpha1VolumePoolStatus", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + } + } + } + } + }, + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "storage.ironcore.dev", + "version": "v1alpha1", + "kind": "VolumePool" + } + }, + "put": { + "tags": [ + "storageIroncoreDev_v1alpha1" + ], + "description": "replace status of the specified VolumePool", + "operationId": "replaceStorageIroncoreDevV1alpha1VolumePoolStatus", + "parameters": [ + { + "name": "dryRun", + "in": "query", + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "fieldManager", + "in": "query", + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "fieldValidation", + "in": "query", + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "schema": { + "type": "string", + "uniqueItems": true + } + } + ], + "requestBody": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + } + } + } + } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "storage.ironcore.dev", + "version": "v1alpha1", + "kind": "VolumePool" + } + }, + "patch": { + "tags": [ + "storageIroncoreDev_v1alpha1" + ], + "description": "partially update status of the specified VolumePool", + "operationId": "patchStorageIroncoreDevV1alpha1VolumePoolStatus", + "parameters": [ + { + "name": "dryRun", + "in": "query", + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "fieldManager", + "in": "query", + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "fieldValidation", + "in": "query", + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "force", + "in": "query", + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "schema": { + "type": "boolean", + "uniqueItems": true + } + } + ], + "requestBody": { + "content": { + "application/apply-patch+yaml": { + "schema": { + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + "application/merge-patch+json": { + "schema": { + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + "application/strategic-merge-patch+json": { + "schema": { + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumePool" + } + } + } + } + }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "storage.ironcore.dev", + "version": "v1alpha1", + "kind": "VolumePool" + } + }, + "parameters": [ + { + "name": "name", + "in": "path", + "description": "name of the VolumePool", + "required": true, + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "pretty", + "in": "query", + "description": "If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).", + "schema": { + "type": "string", + "uniqueItems": true + } + } + ] + }, + "/apis/storage.ironcore.dev/v1alpha1/volumes": { + "get": { + "tags": [ + "storageIroncoreDev_v1alpha1" + ], + "description": "list or watch objects of kind Volume", + "operationId": "listStorageIroncoreDevV1alpha1VolumeForAllNamespaces", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeList" + } + }, + "application/json;stream=watch": { + "schema": { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeList" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeList" + } + } + } + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "storage.ironcore.dev", + "version": "v1alpha1", + "kind": "Volume" + } + }, + "parameters": [ + { + "name": "allowWatchBookmarks", + "in": "query", + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.", + "schema": { + "type": "boolean", + "uniqueItems": true + } + }, + { + "name": "continue", + "in": "query", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "fieldSelector", + "in": "query", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "labelSelector", + "in": "query", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "limit", + "in": "query", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "schema": { + "type": "integer", + "uniqueItems": true + } + }, + { + "name": "pretty", + "in": "query", + "description": "If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "resourceVersion", + "in": "query", + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "resourceVersionMatch", + "in": "query", + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "sendInitialEvents", + "in": "query", + "description": "`sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched.\n\nWhen `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan\n is interpreted as \"data at least as new as the provided `resourceVersion`\"\n and the bookmark event is send when the state is synced\n to a `resourceVersion` at least as fresh as the one provided by the ListOptions.\n If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the\n bookmark event is send when the state is synced at least to the moment\n when request started being processed.\n- `resourceVersionMatch` set to any other value or unset\n Invalid error is returned.\n\nDefaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.", + "schema": { + "type": "boolean", + "uniqueItems": true + } + }, + { + "name": "timeoutSeconds", + "in": "query", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "schema": { + "type": "integer", + "uniqueItems": true + } + }, + { + "name": "watch", + "in": "query", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "schema": { + "type": "boolean", + "uniqueItems": true + } + } + ] + }, + "/apis/storage.ironcore.dev/v1alpha1/volumesnapshots": { + "get": { + "tags": [ + "storageIroncoreDev_v1alpha1" + ], + "description": "list or watch objects of kind VolumeSnapshot", + "operationId": "listStorageIroncoreDevV1alpha1VolumeSnapshotForAllNamespaces", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshotList" + } + }, + "application/json;stream=watch": { + "schema": { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshotList" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshotList" + } + } + } + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "storage.ironcore.dev", + "version": "v1alpha1", + "kind": "VolumeSnapshot" + } + }, + "parameters": [ + { + "name": "allowWatchBookmarks", + "in": "query", + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.", + "schema": { + "type": "boolean", + "uniqueItems": true + } + }, + { + "name": "continue", + "in": "query", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "fieldSelector", + "in": "query", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "labelSelector", + "in": "query", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "limit", + "in": "query", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "schema": { + "type": "integer", + "uniqueItems": true + } + }, + { + "name": "pretty", + "in": "query", + "description": "If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "resourceVersion", + "in": "query", + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "resourceVersionMatch", + "in": "query", + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "sendInitialEvents", + "in": "query", + "description": "`sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched.\n\nWhen `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan\n is interpreted as \"data at least as new as the provided `resourceVersion`\"\n and the bookmark event is send when the state is synced\n to a `resourceVersion` at least as fresh as the one provided by the ListOptions.\n If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the\n bookmark event is send when the state is synced at least to the moment\n when request started being processed.\n- `resourceVersionMatch` set to any other value or unset\n Invalid error is returned.\n\nDefaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.", + "schema": { + "type": "boolean", + "uniqueItems": true + } + }, + { + "name": "timeoutSeconds", + "in": "query", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "schema": { + "type": "integer", + "uniqueItems": true + } + }, + { + "name": "watch", + "in": "query", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "schema": { + "type": "boolean", + "uniqueItems": true + } + } + ] + }, + "/apis/storage.ironcore.dev/v1alpha1/watch/bucketclasses": { + "get": { + "tags": [ + "storageIroncoreDev_v1alpha1" + ], + "description": "watch individual changes to a list of BucketClass. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchStorageIroncoreDevV1alpha1BucketClassList", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "application/json;stream=watch": { + "schema": { + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + } + } + } + }, + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "storage.ironcore.dev", + "version": "v1alpha1", + "kind": "BucketClass" + } + }, + "parameters": [ + { + "name": "allowWatchBookmarks", + "in": "query", + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.", + "schema": { + "type": "boolean", + "uniqueItems": true + } + }, + { + "name": "continue", + "in": "query", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "fieldSelector", + "in": "query", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "labelSelector", + "in": "query", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "limit", + "in": "query", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "schema": { + "type": "integer", + "uniqueItems": true + } + }, + { + "name": "pretty", + "in": "query", + "description": "If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "resourceVersion", + "in": "query", + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "resourceVersionMatch", + "in": "query", + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "sendInitialEvents", + "in": "query", + "description": "`sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched.\n\nWhen `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan\n is interpreted as \"data at least as new as the provided `resourceVersion`\"\n and the bookmark event is send when the state is synced\n to a `resourceVersion` at least as fresh as the one provided by the ListOptions.\n If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the\n bookmark event is send when the state is synced at least to the moment\n when request started being processed.\n- `resourceVersionMatch` set to any other value or unset\n Invalid error is returned.\n\nDefaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.", + "schema": { + "type": "boolean", + "uniqueItems": true + } + }, + { + "name": "timeoutSeconds", + "in": "query", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "schema": { + "type": "integer", + "uniqueItems": true + } + }, + { + "name": "watch", + "in": "query", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "schema": { + "type": "boolean", + "uniqueItems": true + } + } + ] + }, + "/apis/storage.ironcore.dev/v1alpha1/watch/bucketclasses/{name}": { + "get": { + "tags": [ + "storageIroncoreDev_v1alpha1" + ], + "description": "watch changes to an object of kind BucketClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchStorageIroncoreDevV1alpha1BucketClass", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "application/json;stream=watch": { + "schema": { + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + } + } + } + }, + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "storage.ironcore.dev", + "version": "v1alpha1", + "kind": "BucketClass" } }, "parameters": [ + { + "name": "allowWatchBookmarks", + "in": "query", + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.", + "schema": { + "type": "boolean", + "uniqueItems": true + } + }, + { + "name": "continue", + "in": "query", + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "fieldSelector", + "in": "query", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "labelSelector", + "in": "query", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "limit", + "in": "query", + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "schema": { + "type": "integer", + "uniqueItems": true + } + }, { "name": "name", "in": "path", - "description": "name of the VolumePool", + "description": "name of the BucketClass", "required": true, "schema": { "type": "string", @@ -5664,43 +7199,88 @@ "type": "string", "uniqueItems": true } + }, + { + "name": "resourceVersion", + "in": "query", + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "resourceVersionMatch", + "in": "query", + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "sendInitialEvents", + "in": "query", + "description": "`sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched.\n\nWhen `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan\n is interpreted as \"data at least as new as the provided `resourceVersion`\"\n and the bookmark event is send when the state is synced\n to a `resourceVersion` at least as fresh as the one provided by the ListOptions.\n If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the\n bookmark event is send when the state is synced at least to the moment\n when request started being processed.\n- `resourceVersionMatch` set to any other value or unset\n Invalid error is returned.\n\nDefaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.", + "schema": { + "type": "boolean", + "uniqueItems": true + } + }, + { + "name": "timeoutSeconds", + "in": "query", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "schema": { + "type": "integer", + "uniqueItems": true + } + }, + { + "name": "watch", + "in": "query", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "schema": { + "type": "boolean", + "uniqueItems": true + } } ] }, - "/apis/storage.ironcore.dev/v1alpha1/volumes": { + "/apis/storage.ironcore.dev/v1alpha1/watch/bucketpools": { "get": { "tags": [ "storageIroncoreDev_v1alpha1" ], - "description": "list or watch objects of kind Volume", - "operationId": "listStorageIroncoreDevV1alpha1VolumeForAllNamespaces", + "description": "watch individual changes to a list of BucketPool. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchStorageIroncoreDevV1alpha1BucketPoolList", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeList" + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "application/json;stream=watch": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeList" + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeList" + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } } } } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", "version": "v1alpha1", - "kind": "Volume" + "kind": "BucketPool" } }, "parameters": [ @@ -5805,13 +7385,13 @@ } ] }, - "/apis/storage.ironcore.dev/v1alpha1/watch/bucketclasses": { + "/apis/storage.ironcore.dev/v1alpha1/watch/bucketpools/{name}": { "get": { "tags": [ "storageIroncoreDev_v1alpha1" ], - "description": "watch individual changes to a list of BucketClass. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchStorageIroncoreDevV1alpha1BucketClassList", + "description": "watch changes to an object of kind BucketPool. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchStorageIroncoreDevV1alpha1BucketPool", "responses": { "200": { "description": "OK", @@ -5834,11 +7414,11 @@ } } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", "version": "v1alpha1", - "kind": "BucketClass" + "kind": "BucketPool" } }, "parameters": [ @@ -5887,6 +7467,16 @@ "uniqueItems": true } }, + { + "name": "name", + "in": "path", + "description": "name of the BucketPool", + "required": true, + "schema": { + "type": "string", + "uniqueItems": true + } + }, { "name": "pretty", "in": "query", @@ -5943,13 +7533,13 @@ } ] }, - "/apis/storage.ironcore.dev/v1alpha1/watch/bucketclasses/{name}": { + "/apis/storage.ironcore.dev/v1alpha1/watch/buckets": { "get": { "tags": [ "storageIroncoreDev_v1alpha1" ], - "description": "watch changes to an object of kind BucketClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchStorageIroncoreDevV1alpha1BucketClass", + "description": "watch individual changes to a list of Bucket. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchStorageIroncoreDevV1alpha1BucketListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -5972,11 +7562,11 @@ } } }, - "x-kubernetes-action": "watch", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", "version": "v1alpha1", - "kind": "BucketClass" + "kind": "Bucket" } }, "parameters": [ @@ -6025,16 +7615,6 @@ "uniqueItems": true } }, - { - "name": "name", - "in": "path", - "description": "name of the BucketClass", - "required": true, - "schema": { - "type": "string", - "uniqueItems": true - } - }, { "name": "pretty", "in": "query", @@ -6091,13 +7671,13 @@ } ] }, - "/apis/storage.ironcore.dev/v1alpha1/watch/bucketpools": { + "/apis/storage.ironcore.dev/v1alpha1/watch/namespaces/{namespace}/buckets": { "get": { "tags": [ "storageIroncoreDev_v1alpha1" ], - "description": "watch individual changes to a list of BucketPool. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchStorageIroncoreDevV1alpha1BucketPoolList", + "description": "watch individual changes to a list of Bucket. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchStorageIroncoreDevV1alpha1NamespacedBucketList", "responses": { "200": { "description": "OK", @@ -6124,7 +7704,7 @@ "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", "version": "v1alpha1", - "kind": "BucketPool" + "kind": "Bucket" } }, "parameters": [ @@ -6173,6 +7753,16 @@ "uniqueItems": true } }, + { + "name": "namespace", + "in": "path", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "schema": { + "type": "string", + "uniqueItems": true + } + }, { "name": "pretty", "in": "query", @@ -6229,13 +7819,13 @@ } ] }, - "/apis/storage.ironcore.dev/v1alpha1/watch/bucketpools/{name}": { + "/apis/storage.ironcore.dev/v1alpha1/watch/namespaces/{namespace}/buckets/{name}": { "get": { "tags": [ "storageIroncoreDev_v1alpha1" ], - "description": "watch changes to an object of kind BucketPool. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchStorageIroncoreDevV1alpha1BucketPool", + "description": "watch changes to an object of kind Bucket. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchStorageIroncoreDevV1alpha1NamespacedBucket", "responses": { "200": { "description": "OK", @@ -6262,7 +7852,7 @@ "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", "version": "v1alpha1", - "kind": "BucketPool" + "kind": "Bucket" } }, "parameters": [ @@ -6314,7 +7904,17 @@ { "name": "name", "in": "path", - "description": "name of the BucketPool", + "description": "name of the Bucket", + "required": true, + "schema": { + "type": "string", + "uniqueItems": true + } + }, + { + "name": "namespace", + "in": "path", + "description": "object name and auth scope, such as for teams and projects", "required": true, "schema": { "type": "string", @@ -6377,13 +7977,13 @@ } ] }, - "/apis/storage.ironcore.dev/v1alpha1/watch/buckets": { + "/apis/storage.ironcore.dev/v1alpha1/watch/namespaces/{namespace}/volumes": { "get": { "tags": [ "storageIroncoreDev_v1alpha1" ], - "description": "watch individual changes to a list of Bucket. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchStorageIroncoreDevV1alpha1BucketListForAllNamespaces", + "description": "watch individual changes to a list of Volume. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchStorageIroncoreDevV1alpha1NamespacedVolumeList", "responses": { "200": { "description": "OK", @@ -6410,7 +8010,7 @@ "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", "version": "v1alpha1", - "kind": "Bucket" + "kind": "Volume" } }, "parameters": [ @@ -6459,6 +8059,16 @@ "uniqueItems": true } }, + { + "name": "namespace", + "in": "path", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "schema": { + "type": "string", + "uniqueItems": true + } + }, { "name": "pretty", "in": "query", @@ -6515,13 +8125,13 @@ } ] }, - "/apis/storage.ironcore.dev/v1alpha1/watch/namespaces/{namespace}/buckets": { + "/apis/storage.ironcore.dev/v1alpha1/watch/namespaces/{namespace}/volumes/{name}": { "get": { "tags": [ "storageIroncoreDev_v1alpha1" ], - "description": "watch individual changes to a list of Bucket. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchStorageIroncoreDevV1alpha1NamespacedBucketList", + "description": "watch changes to an object of kind Volume. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchStorageIroncoreDevV1alpha1NamespacedVolume", "responses": { "200": { "description": "OK", @@ -6544,11 +8154,11 @@ } } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", "version": "v1alpha1", - "kind": "Bucket" + "kind": "Volume" } }, "parameters": [ @@ -6597,6 +8207,16 @@ "uniqueItems": true } }, + { + "name": "name", + "in": "path", + "description": "name of the Volume", + "required": true, + "schema": { + "type": "string", + "uniqueItems": true + } + }, { "name": "namespace", "in": "path", @@ -6663,13 +8283,13 @@ } ] }, - "/apis/storage.ironcore.dev/v1alpha1/watch/namespaces/{namespace}/buckets/{name}": { + "/apis/storage.ironcore.dev/v1alpha1/watch/namespaces/{namespace}/volumesnapshots": { "get": { "tags": [ "storageIroncoreDev_v1alpha1" ], - "description": "watch changes to an object of kind Bucket. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchStorageIroncoreDevV1alpha1NamespacedBucket", + "description": "watch individual changes to a list of VolumeSnapshot. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchStorageIroncoreDevV1alpha1NamespacedVolumeSnapshotList", "responses": { "200": { "description": "OK", @@ -6692,11 +8312,11 @@ } } }, - "x-kubernetes-action": "watch", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", "version": "v1alpha1", - "kind": "Bucket" + "kind": "VolumeSnapshot" } }, "parameters": [ @@ -6745,16 +8365,6 @@ "uniqueItems": true } }, - { - "name": "name", - "in": "path", - "description": "name of the Bucket", - "required": true, - "schema": { - "type": "string", - "uniqueItems": true - } - }, { "name": "namespace", "in": "path", @@ -6821,13 +8431,13 @@ } ] }, - "/apis/storage.ironcore.dev/v1alpha1/watch/namespaces/{namespace}/volumes": { + "/apis/storage.ironcore.dev/v1alpha1/watch/namespaces/{namespace}/volumesnapshots/{name}": { "get": { "tags": [ "storageIroncoreDev_v1alpha1" ], - "description": "watch individual changes to a list of Volume. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchStorageIroncoreDevV1alpha1NamespacedVolumeList", + "description": "watch changes to an object of kind VolumeSnapshot. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchStorageIroncoreDevV1alpha1NamespacedVolumeSnapshot", "responses": { "200": { "description": "OK", @@ -6850,11 +8460,11 @@ } } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", "version": "v1alpha1", - "kind": "Volume" + "kind": "VolumeSnapshot" } }, "parameters": [ @@ -6899,7 +8509,17 @@ "in": "query", "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", "schema": { - "type": "integer", + "type": "integer", + "uniqueItems": true + } + }, + { + "name": "name", + "in": "path", + "description": "name of the VolumeSnapshot", + "required": true, + "schema": { + "type": "string", "uniqueItems": true } }, @@ -6969,13 +8589,13 @@ } ] }, - "/apis/storage.ironcore.dev/v1alpha1/watch/namespaces/{namespace}/volumes/{name}": { + "/apis/storage.ironcore.dev/v1alpha1/watch/volumeclasses": { "get": { "tags": [ "storageIroncoreDev_v1alpha1" ], - "description": "watch changes to an object of kind Volume. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchStorageIroncoreDevV1alpha1NamespacedVolume", + "description": "watch individual changes to a list of VolumeClass. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchStorageIroncoreDevV1alpha1VolumeClassList", "responses": { "200": { "description": "OK", @@ -6998,11 +8618,11 @@ } } }, - "x-kubernetes-action": "watch", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", "version": "v1alpha1", - "kind": "Volume" + "kind": "VolumeClass" } }, "parameters": [ @@ -7051,26 +8671,6 @@ "uniqueItems": true } }, - { - "name": "name", - "in": "path", - "description": "name of the Volume", - "required": true, - "schema": { - "type": "string", - "uniqueItems": true - } - }, - { - "name": "namespace", - "in": "path", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "schema": { - "type": "string", - "uniqueItems": true - } - }, { "name": "pretty", "in": "query", @@ -7127,13 +8727,13 @@ } ] }, - "/apis/storage.ironcore.dev/v1alpha1/watch/volumeclasses": { + "/apis/storage.ironcore.dev/v1alpha1/watch/volumeclasses/{name}": { "get": { "tags": [ "storageIroncoreDev_v1alpha1" ], - "description": "watch individual changes to a list of VolumeClass. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchStorageIroncoreDevV1alpha1VolumeClassList", + "description": "watch changes to an object of kind VolumeClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchStorageIroncoreDevV1alpha1VolumeClass", "responses": { "200": { "description": "OK", @@ -7156,7 +8756,7 @@ } } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", "version": "v1alpha1", @@ -7209,6 +8809,16 @@ "uniqueItems": true } }, + { + "name": "name", + "in": "path", + "description": "name of the VolumeClass", + "required": true, + "schema": { + "type": "string", + "uniqueItems": true + } + }, { "name": "pretty", "in": "query", @@ -7265,13 +8875,13 @@ } ] }, - "/apis/storage.ironcore.dev/v1alpha1/watch/volumeclasses/{name}": { + "/apis/storage.ironcore.dev/v1alpha1/watch/volumepools": { "get": { "tags": [ "storageIroncoreDev_v1alpha1" ], - "description": "watch changes to an object of kind VolumeClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchStorageIroncoreDevV1alpha1VolumeClass", + "description": "watch individual changes to a list of VolumePool. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchStorageIroncoreDevV1alpha1VolumePoolList", "responses": { "200": { "description": "OK", @@ -7294,11 +8904,11 @@ } } }, - "x-kubernetes-action": "watch", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", "version": "v1alpha1", - "kind": "VolumeClass" + "kind": "VolumePool" } }, "parameters": [ @@ -7347,16 +8957,6 @@ "uniqueItems": true } }, - { - "name": "name", - "in": "path", - "description": "name of the VolumeClass", - "required": true, - "schema": { - "type": "string", - "uniqueItems": true - } - }, { "name": "pretty", "in": "query", @@ -7413,13 +9013,13 @@ } ] }, - "/apis/storage.ironcore.dev/v1alpha1/watch/volumepools": { + "/apis/storage.ironcore.dev/v1alpha1/watch/volumepools/{name}": { "get": { "tags": [ "storageIroncoreDev_v1alpha1" ], - "description": "watch individual changes to a list of VolumePool. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchStorageIroncoreDevV1alpha1VolumePoolList", + "description": "watch changes to an object of kind VolumePool. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchStorageIroncoreDevV1alpha1VolumePool", "responses": { "200": { "description": "OK", @@ -7442,7 +9042,7 @@ } } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", "version": "v1alpha1", @@ -7495,6 +9095,16 @@ "uniqueItems": true } }, + { + "name": "name", + "in": "path", + "description": "name of the VolumePool", + "required": true, + "schema": { + "type": "string", + "uniqueItems": true + } + }, { "name": "pretty", "in": "query", @@ -7551,13 +9161,13 @@ } ] }, - "/apis/storage.ironcore.dev/v1alpha1/watch/volumepools/{name}": { + "/apis/storage.ironcore.dev/v1alpha1/watch/volumes": { "get": { "tags": [ "storageIroncoreDev_v1alpha1" ], - "description": "watch changes to an object of kind VolumePool. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchStorageIroncoreDevV1alpha1VolumePool", + "description": "watch individual changes to a list of Volume. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchStorageIroncoreDevV1alpha1VolumeListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -7580,11 +9190,11 @@ } } }, - "x-kubernetes-action": "watch", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", "version": "v1alpha1", - "kind": "VolumePool" + "kind": "Volume" } }, "parameters": [ @@ -7633,16 +9243,6 @@ "uniqueItems": true } }, - { - "name": "name", - "in": "path", - "description": "name of the VolumePool", - "required": true, - "schema": { - "type": "string", - "uniqueItems": true - } - }, { "name": "pretty", "in": "query", @@ -7699,13 +9299,13 @@ } ] }, - "/apis/storage.ironcore.dev/v1alpha1/watch/volumes": { + "/apis/storage.ironcore.dev/v1alpha1/watch/volumesnapshots": { "get": { "tags": [ "storageIroncoreDev_v1alpha1" ], - "description": "watch individual changes to a list of Volume. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchStorageIroncoreDevV1alpha1VolumeListForAllNamespaces", + "description": "watch individual changes to a list of VolumeSnapshot. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchStorageIroncoreDevV1alpha1VolumeSnapshotListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -7732,7 +9332,7 @@ "x-kubernetes-group-version-kind": { "group": "storage.ironcore.dev", "version": "v1alpha1", - "kind": "Volume" + "kind": "VolumeSnapshot" } }, "parameters": [ @@ -8562,31 +10162,6 @@ } } }, - "com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeDataSource": { - "description": "VolumeDataSource represents the source for volume", - "type": "object", - "required": [ - "apiGroup", - "kind", - "name" - ], - "properties": { - "apiGroup": { - "description": "APIGroup is the group for the resource being referenced", - "type": "string" - }, - "kind": { - "description": "Kind is the type of resource being referenced", - "type": "string", - "default": "" - }, - "name": { - "description": "Name is the name of resource being referenced", - "type": "string", - "default": "" - } - } - }, "com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeEncryption": { "description": "VolumeEncryption represents information to encrypt a volume.", "type": "object", @@ -8853,23 +10428,150 @@ } } }, - "com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSpec": { - "description": "VolumeSpec defines the desired state of Volume", + "com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot": { + "description": "VolumeSnapshot is the Schema for the VolumeSnapshots API", "type": "object", "properties": { - "claimRef": { - "description": "ClaimRef is the reference to the claiming entity of the Volume.", + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "default": {}, "allOf": [ { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.common.v1alpha1.LocalUIDReference" + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + } + ] + }, + "spec": { + "default": {}, + "allOf": [ + { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshotSpec" + } + ] + }, + "status": { + "default": {}, + "allOf": [ + { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshotStatus" + } + ] + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "storage.ironcore.dev", + "kind": "VolumeSnapshot", + "version": "v1alpha1" + } + ] + }, + "com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshotList": { + "description": "VolumeSnapshotList contains a list of VolumeSnapshot", + "type": "object", + "required": [ + "items" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "items": { + "type": "array", + "items": { + "default": {}, + "allOf": [ + { + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshot" + } + ] + } + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "default": {}, + "allOf": [ + { + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + } + ] + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "storage.ironcore.dev", + "kind": "VolumeSnapshotList", + "version": "v1alpha1" + } + ] + }, + "com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshotSpec": { + "description": "VolumeSnapshotSpec defines the desired state of VolumeSnapshot", + "type": "object", + "required": [ + "volumeRef" + ], + "properties": { + "volumeRef": { + "description": "VolumeRef indicates which Volume to refer for VolumeSnapshot", + "allOf": [ + { + "$ref": "#/components/schemas/io.k8s.api.core.v1.LocalObjectReference" + } + ] + } + } + }, + "com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSnapshotStatus": { + "description": "VolumeSnapshotStatus defines the observed state of VolumeSnapshot", + "type": "object", + "properties": { + "lastStateTransitionTime": { + "description": "LastStateTransitionTime is the last time the State transitioned between values.", + "allOf": [ + { + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + } + ] + }, + "size": { + "description": "Size is the storage size used by VolumeSnapshot", + "allOf": [ + { + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity" } ] }, - "dataSource": { - "description": "DataSource is an optional field which provides information regarding the snapshot to be used as the source for the volume restoration", + "snapshotID": { + "description": "SnapshotID is the provider-specific snapshot ID in the format 'TYPE://SNAPSHOT_ID'.", + "type": "string" + }, + "state": { + "description": "State represents the storage provider state of VolumeSnapshot", + "type": "string" + } + } + }, + "com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeSpec": { + "description": "VolumeSpec defines the desired state of Volume", + "type": "object", + "properties": { + "claimRef": { + "description": "ClaimRef is the reference to the claiming entity of the Volume.", "allOf": [ { - "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.storage.v1alpha1.VolumeDataSource" + "$ref": "#/components/schemas/com.github.ironcore-dev.ironcore.api.common.v1alpha1.LocalUIDReference" } ] }, @@ -8882,7 +10584,7 @@ ] }, "image": { - "description": "Image is an optional image to bootstrap the volume with.", + "description": "Image is an optional image to bootstrap the volume with. To be deprecated", "type": "string" }, "imagePullSecretRef": { @@ -8893,6 +10595,10 @@ } ] }, + "osImage": { + "description": "OSImage is an optional os image to bootstrap the volume.", + "type": "string" + }, "resources": { "description": "Resources is a description of the volume's resources and capacity.", "type": "object", @@ -8939,6 +10645,14 @@ "type": "string", "default": "" } + }, + "volumeSnapshotRef": { + "description": "VolumeSnapshotRef instructs to use the specified VolumeSnapshot as the data source.", + "allOf": [ + { + "$ref": "#/components/schemas/io.k8s.api.core.v1.LocalObjectReference" + } + ] } } }, diff --git a/internal/apis/compute/machine_types.go b/internal/apis/compute/machine_types.go index 3f218cc31..51368bf21 100644 --- a/internal/apis/compute/machine_types.go +++ b/internal/apis/compute/machine_types.go @@ -174,12 +174,31 @@ const ( VolumeStateAttached VolumeState = "Attached" ) +// MachineConditionType is a type a MachineCondition can have. +type MachineConditionType string + +// MachineCondition is one of the conditions of a machine. +type MachineCondition struct { + // Type is the type of the condition. + Type MachineConditionType + // Status is the status of the condition. + Status corev1.ConditionStatus + // Reason is a machine-readable indication of why the condition is in a certain state. + Reason string + // Message is a human-readable explanation of why the condition has a certain reason / state. + Message string + // LastTransitionTime is the last time the status of a condition has transitioned from one state to another. + LastTransitionTime metav1.Time +} + // MachineStatus defines the observed state of Machine type MachineStatus struct { // MachineID is the provider-specific machine ID in the format 'TYPE://MACHINE_ID'. MachineID string // ObservedGeneration is the last generation the MachinePool observed of the Machine. ObservedGeneration int64 + // Conditions are the conditions of a machine. + Conditions []MachineCondition // State is the infrastructure state of the machine. State MachineState // NetworkInterfaces is the list of network interface states for the machine. diff --git a/internal/apis/compute/machinepool_types.go b/internal/apis/compute/machinepool_types.go index f479e3277..891de8f71 100644 --- a/internal/apis/compute/machinepool_types.go +++ b/internal/apis/compute/machinepool_types.go @@ -85,7 +85,7 @@ type MachinePoolAddress struct { // MachinePoolConditionType is a type a MachinePoolCondition can have. type MachinePoolConditionType string -// MachinePoolCondition is one of the conditions of a volume. +// MachinePoolCondition is one of the conditions of a MachinePool. type MachinePoolCondition struct { // Type is the type of the condition. Type MachinePoolConditionType diff --git a/internal/apis/compute/v1alpha1/zz_generated.conversion.go b/internal/apis/compute/v1alpha1/zz_generated.conversion.go index 3dbc834d7..75c93b581 100644 --- a/internal/apis/compute/v1alpha1/zz_generated.conversion.go +++ b/internal/apis/compute/v1alpha1/zz_generated.conversion.go @@ -125,6 +125,16 @@ func RegisterConversions(s *runtime.Scheme) error { }); err != nil { return err } + if err := s.AddGeneratedConversionFunc((*computev1alpha1.MachineCondition)(nil), (*compute.MachineCondition)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_MachineCondition_To_compute_MachineCondition(a.(*computev1alpha1.MachineCondition), b.(*compute.MachineCondition), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*compute.MachineCondition)(nil), (*computev1alpha1.MachineCondition)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_compute_MachineCondition_To_v1alpha1_MachineCondition(a.(*compute.MachineCondition), b.(*computev1alpha1.MachineCondition), scope) + }); err != nil { + return err + } if err := s.AddGeneratedConversionFunc((*computev1alpha1.MachineExecOptions)(nil), (*compute.MachineExecOptions)(nil), func(a, b interface{}, scope conversion.Scope) error { return Convert_v1alpha1_MachineExecOptions_To_compute_MachineExecOptions(a.(*computev1alpha1.MachineExecOptions), b.(*compute.MachineExecOptions), scope) }); err != nil { @@ -505,6 +515,34 @@ func Convert_compute_MachineClassList_To_v1alpha1_MachineClassList(in *compute.M return autoConvert_compute_MachineClassList_To_v1alpha1_MachineClassList(in, out, s) } +func autoConvert_v1alpha1_MachineCondition_To_compute_MachineCondition(in *computev1alpha1.MachineCondition, out *compute.MachineCondition, s conversion.Scope) error { + out.Type = compute.MachineConditionType(in.Type) + out.Status = v1.ConditionStatus(in.Status) + out.Reason = in.Reason + out.Message = in.Message + out.LastTransitionTime = in.LastTransitionTime + return nil +} + +// Convert_v1alpha1_MachineCondition_To_compute_MachineCondition is an autogenerated conversion function. +func Convert_v1alpha1_MachineCondition_To_compute_MachineCondition(in *computev1alpha1.MachineCondition, out *compute.MachineCondition, s conversion.Scope) error { + return autoConvert_v1alpha1_MachineCondition_To_compute_MachineCondition(in, out, s) +} + +func autoConvert_compute_MachineCondition_To_v1alpha1_MachineCondition(in *compute.MachineCondition, out *computev1alpha1.MachineCondition, s conversion.Scope) error { + out.Type = computev1alpha1.MachineConditionType(in.Type) + out.Status = v1.ConditionStatus(in.Status) + out.Reason = in.Reason + out.Message = in.Message + out.LastTransitionTime = in.LastTransitionTime + return nil +} + +// Convert_compute_MachineCondition_To_v1alpha1_MachineCondition is an autogenerated conversion function. +func Convert_compute_MachineCondition_To_v1alpha1_MachineCondition(in *compute.MachineCondition, out *computev1alpha1.MachineCondition, s conversion.Scope) error { + return autoConvert_compute_MachineCondition_To_v1alpha1_MachineCondition(in, out, s) +} + func autoConvert_v1alpha1_MachineExecOptions_To_compute_MachineExecOptions(in *computev1alpha1.MachineExecOptions, out *compute.MachineExecOptions, s conversion.Scope) error { out.InsecureSkipTLSVerifyBackend = in.InsecureSkipTLSVerifyBackend return nil @@ -836,6 +874,7 @@ func Convert_compute_MachineSpec_To_v1alpha1_MachineSpec(in *compute.MachineSpec func autoConvert_v1alpha1_MachineStatus_To_compute_MachineStatus(in *computev1alpha1.MachineStatus, out *compute.MachineStatus, s conversion.Scope) error { out.MachineID = in.MachineID out.ObservedGeneration = in.ObservedGeneration + out.Conditions = *(*[]compute.MachineCondition)(unsafe.Pointer(&in.Conditions)) out.State = compute.MachineState(in.State) out.NetworkInterfaces = *(*[]compute.NetworkInterfaceStatus)(unsafe.Pointer(&in.NetworkInterfaces)) out.Volumes = *(*[]compute.VolumeStatus)(unsafe.Pointer(&in.Volumes)) @@ -850,6 +889,7 @@ func Convert_v1alpha1_MachineStatus_To_compute_MachineStatus(in *computev1alpha1 func autoConvert_compute_MachineStatus_To_v1alpha1_MachineStatus(in *compute.MachineStatus, out *computev1alpha1.MachineStatus, s conversion.Scope) error { out.MachineID = in.MachineID out.ObservedGeneration = in.ObservedGeneration + out.Conditions = *(*[]computev1alpha1.MachineCondition)(unsafe.Pointer(&in.Conditions)) out.State = computev1alpha1.MachineState(in.State) out.NetworkInterfaces = *(*[]computev1alpha1.NetworkInterfaceStatus)(unsafe.Pointer(&in.NetworkInterfaces)) out.Volumes = *(*[]computev1alpha1.VolumeStatus)(unsafe.Pointer(&in.Volumes)) diff --git a/internal/apis/compute/zz_generated.deepcopy.go b/internal/apis/compute/zz_generated.deepcopy.go index 87528abfe..371da58d4 100644 --- a/internal/apis/compute/zz_generated.deepcopy.go +++ b/internal/apis/compute/zz_generated.deepcopy.go @@ -227,6 +227,23 @@ func (in *MachineClassList) DeepCopyObject() runtime.Object { return nil } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MachineCondition) DeepCopyInto(out *MachineCondition) { + *out = *in + in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineCondition. +func (in *MachineCondition) DeepCopy() *MachineCondition { + if in == nil { + return nil + } + out := new(MachineCondition) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *MachineExecOptions) DeepCopyInto(out *MachineExecOptions) { *out = *in @@ -531,6 +548,13 @@ func (in *MachineSpec) DeepCopy() *MachineSpec { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *MachineStatus) DeepCopyInto(out *MachineStatus) { *out = *in + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]MachineCondition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } if in.NetworkInterfaces != nil { in, out := &in.NetworkInterfaces, &out.NetworkInterfaces *out = make([]NetworkInterfaceStatus, len(*in)) diff --git a/iri/apis/machine/v1alpha1/api.pb.go b/iri/apis/machine/v1alpha1/api.pb.go index 6cf543e37..aeeed7c34 100644 --- a/iri/apis/machine/v1alpha1/api.pb.go +++ b/iri/apis/machine/v1alpha1/api.pb.go @@ -911,6 +911,7 @@ type MachineStatus struct { ImageRef string `protobuf:"bytes,3,opt,name=image_ref,json=imageRef,proto3" json:"image_ref,omitempty"` Volumes []*VolumeStatus `protobuf:"bytes,4,rep,name=volumes,proto3" json:"volumes,omitempty"` NetworkInterfaces []*NetworkInterfaceStatus `protobuf:"bytes,5,rep,name=network_interfaces,json=networkInterfaces,proto3" json:"network_interfaces,omitempty"` + MachineConditions []*Conditions `protobuf:"bytes,6,rep,name=machine_conditions,json=machineConditions,proto3" json:"machine_conditions,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -980,6 +981,89 @@ func (x *MachineStatus) GetNetworkInterfaces() []*NetworkInterfaceStatus { return nil } +func (x *MachineStatus) GetMachineConditions() []*Conditions { + if x != nil { + return x.MachineConditions + } + return nil +} + +type Conditions struct { + state protoimpl.MessageState `protogen:"open.v1"` + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` + Status string `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` + Reason string `protobuf:"bytes,3,opt,name=reason,proto3" json:"reason,omitempty"` + Message string `protobuf:"bytes,4,opt,name=message,proto3" json:"message,omitempty"` + LastTransitionTime int64 `protobuf:"varint,5,opt,name=last_transition_time,json=lastTransitionTime,proto3" json:"last_transition_time,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *Conditions) Reset() { + *x = Conditions{} + mi := &file_machine_v1alpha1_api_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Conditions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Conditions) ProtoMessage() {} + +func (x *Conditions) ProtoReflect() protoreflect.Message { + mi := &file_machine_v1alpha1_api_proto_msgTypes[12] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Conditions.ProtoReflect.Descriptor instead. +func (*Conditions) Descriptor() ([]byte, []int) { + return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{12} +} + +func (x *Conditions) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *Conditions) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *Conditions) GetReason() string { + if x != nil { + return x.Reason + } + return "" +} + +func (x *Conditions) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +func (x *Conditions) GetLastTransitionTime() int64 { + if x != nil { + return x.LastTransitionTime + } + return 0 +} + type VolumeStatus struct { state protoimpl.MessageState `protogen:"open.v1"` Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` @@ -991,7 +1075,7 @@ type VolumeStatus struct { func (x *VolumeStatus) Reset() { *x = VolumeStatus{} - mi := &file_machine_v1alpha1_api_proto_msgTypes[12] + mi := &file_machine_v1alpha1_api_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1003,7 +1087,7 @@ func (x *VolumeStatus) String() string { func (*VolumeStatus) ProtoMessage() {} func (x *VolumeStatus) ProtoReflect() protoreflect.Message { - mi := &file_machine_v1alpha1_api_proto_msgTypes[12] + mi := &file_machine_v1alpha1_api_proto_msgTypes[13] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1016,7 +1100,7 @@ func (x *VolumeStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use VolumeStatus.ProtoReflect.Descriptor instead. func (*VolumeStatus) Descriptor() ([]byte, []int) { - return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{12} + return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{13} } func (x *VolumeStatus) GetName() string { @@ -1051,7 +1135,7 @@ type NetworkInterfaceStatus struct { func (x *NetworkInterfaceStatus) Reset() { *x = NetworkInterfaceStatus{} - mi := &file_machine_v1alpha1_api_proto_msgTypes[13] + mi := &file_machine_v1alpha1_api_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1063,7 +1147,7 @@ func (x *NetworkInterfaceStatus) String() string { func (*NetworkInterfaceStatus) ProtoMessage() {} func (x *NetworkInterfaceStatus) ProtoReflect() protoreflect.Message { - mi := &file_machine_v1alpha1_api_proto_msgTypes[13] + mi := &file_machine_v1alpha1_api_proto_msgTypes[14] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1076,7 +1160,7 @@ func (x *NetworkInterfaceStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use NetworkInterfaceStatus.ProtoReflect.Descriptor instead. func (*NetworkInterfaceStatus) Descriptor() ([]byte, []int) { - return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{13} + return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{14} } func (x *NetworkInterfaceStatus) GetName() string { @@ -1110,7 +1194,7 @@ type MachineClass struct { func (x *MachineClass) Reset() { *x = MachineClass{} - mi := &file_machine_v1alpha1_api_proto_msgTypes[14] + mi := &file_machine_v1alpha1_api_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1122,7 +1206,7 @@ func (x *MachineClass) String() string { func (*MachineClass) ProtoMessage() {} func (x *MachineClass) ProtoReflect() protoreflect.Message { - mi := &file_machine_v1alpha1_api_proto_msgTypes[14] + mi := &file_machine_v1alpha1_api_proto_msgTypes[15] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1135,7 +1219,7 @@ func (x *MachineClass) ProtoReflect() protoreflect.Message { // Deprecated: Use MachineClass.ProtoReflect.Descriptor instead. func (*MachineClass) Descriptor() ([]byte, []int) { - return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{14} + return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{15} } func (x *MachineClass) GetName() string { @@ -1162,7 +1246,7 @@ type MachineClassStatus struct { func (x *MachineClassStatus) Reset() { *x = MachineClassStatus{} - mi := &file_machine_v1alpha1_api_proto_msgTypes[15] + mi := &file_machine_v1alpha1_api_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1174,7 +1258,7 @@ func (x *MachineClassStatus) String() string { func (*MachineClassStatus) ProtoMessage() {} func (x *MachineClassStatus) ProtoReflect() protoreflect.Message { - mi := &file_machine_v1alpha1_api_proto_msgTypes[15] + mi := &file_machine_v1alpha1_api_proto_msgTypes[16] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1187,7 +1271,7 @@ func (x *MachineClassStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use MachineClassStatus.ProtoReflect.Descriptor instead. func (*MachineClassStatus) Descriptor() ([]byte, []int) { - return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{15} + return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{16} } func (x *MachineClassStatus) GetMachineClass() *MachineClass { @@ -1213,7 +1297,7 @@ type VersionRequest struct { func (x *VersionRequest) Reset() { *x = VersionRequest{} - mi := &file_machine_v1alpha1_api_proto_msgTypes[16] + mi := &file_machine_v1alpha1_api_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1225,7 +1309,7 @@ func (x *VersionRequest) String() string { func (*VersionRequest) ProtoMessage() {} func (x *VersionRequest) ProtoReflect() protoreflect.Message { - mi := &file_machine_v1alpha1_api_proto_msgTypes[16] + mi := &file_machine_v1alpha1_api_proto_msgTypes[17] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1238,7 +1322,7 @@ func (x *VersionRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use VersionRequest.ProtoReflect.Descriptor instead. func (*VersionRequest) Descriptor() ([]byte, []int) { - return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{16} + return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{17} } func (x *VersionRequest) GetVersion() string { @@ -1261,7 +1345,7 @@ type VersionResponse struct { func (x *VersionResponse) Reset() { *x = VersionResponse{} - mi := &file_machine_v1alpha1_api_proto_msgTypes[17] + mi := &file_machine_v1alpha1_api_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1273,7 +1357,7 @@ func (x *VersionResponse) String() string { func (*VersionResponse) ProtoMessage() {} func (x *VersionResponse) ProtoReflect() protoreflect.Message { - mi := &file_machine_v1alpha1_api_proto_msgTypes[17] + mi := &file_machine_v1alpha1_api_proto_msgTypes[18] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1286,7 +1370,7 @@ func (x *VersionResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use VersionResponse.ProtoReflect.Descriptor instead. func (*VersionResponse) Descriptor() ([]byte, []int) { - return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{17} + return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{18} } func (x *VersionResponse) GetRuntimeName() string { @@ -1312,7 +1396,7 @@ type ListMachinesRequest struct { func (x *ListMachinesRequest) Reset() { *x = ListMachinesRequest{} - mi := &file_machine_v1alpha1_api_proto_msgTypes[18] + mi := &file_machine_v1alpha1_api_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1324,7 +1408,7 @@ func (x *ListMachinesRequest) String() string { func (*ListMachinesRequest) ProtoMessage() {} func (x *ListMachinesRequest) ProtoReflect() protoreflect.Message { - mi := &file_machine_v1alpha1_api_proto_msgTypes[18] + mi := &file_machine_v1alpha1_api_proto_msgTypes[19] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1337,7 +1421,7 @@ func (x *ListMachinesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListMachinesRequest.ProtoReflect.Descriptor instead. func (*ListMachinesRequest) Descriptor() ([]byte, []int) { - return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{18} + return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{19} } func (x *ListMachinesRequest) GetFilter() *MachineFilter { @@ -1356,7 +1440,7 @@ type ListMachinesResponse struct { func (x *ListMachinesResponse) Reset() { *x = ListMachinesResponse{} - mi := &file_machine_v1alpha1_api_proto_msgTypes[19] + mi := &file_machine_v1alpha1_api_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1368,7 +1452,7 @@ func (x *ListMachinesResponse) String() string { func (*ListMachinesResponse) ProtoMessage() {} func (x *ListMachinesResponse) ProtoReflect() protoreflect.Message { - mi := &file_machine_v1alpha1_api_proto_msgTypes[19] + mi := &file_machine_v1alpha1_api_proto_msgTypes[20] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1381,7 +1465,7 @@ func (x *ListMachinesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListMachinesResponse.ProtoReflect.Descriptor instead. func (*ListMachinesResponse) Descriptor() ([]byte, []int) { - return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{19} + return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{20} } func (x *ListMachinesResponse) GetMachines() []*Machine { @@ -1400,7 +1484,7 @@ type ListEventsRequest struct { func (x *ListEventsRequest) Reset() { *x = ListEventsRequest{} - mi := &file_machine_v1alpha1_api_proto_msgTypes[20] + mi := &file_machine_v1alpha1_api_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1412,7 +1496,7 @@ func (x *ListEventsRequest) String() string { func (*ListEventsRequest) ProtoMessage() {} func (x *ListEventsRequest) ProtoReflect() protoreflect.Message { - mi := &file_machine_v1alpha1_api_proto_msgTypes[20] + mi := &file_machine_v1alpha1_api_proto_msgTypes[21] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1425,7 +1509,7 @@ func (x *ListEventsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListEventsRequest.ProtoReflect.Descriptor instead. func (*ListEventsRequest) Descriptor() ([]byte, []int) { - return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{20} + return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{21} } func (x *ListEventsRequest) GetFilter() *EventFilter { @@ -1444,7 +1528,7 @@ type ListEventsResponse struct { func (x *ListEventsResponse) Reset() { *x = ListEventsResponse{} - mi := &file_machine_v1alpha1_api_proto_msgTypes[21] + mi := &file_machine_v1alpha1_api_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1456,7 +1540,7 @@ func (x *ListEventsResponse) String() string { func (*ListEventsResponse) ProtoMessage() {} func (x *ListEventsResponse) ProtoReflect() protoreflect.Message { - mi := &file_machine_v1alpha1_api_proto_msgTypes[21] + mi := &file_machine_v1alpha1_api_proto_msgTypes[22] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1469,7 +1553,7 @@ func (x *ListEventsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListEventsResponse.ProtoReflect.Descriptor instead. func (*ListEventsResponse) Descriptor() ([]byte, []int) { - return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{21} + return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{22} } func (x *ListEventsResponse) GetEvents() []*v1alpha11.Event { @@ -1488,7 +1572,7 @@ type CreateMachineRequest struct { func (x *CreateMachineRequest) Reset() { *x = CreateMachineRequest{} - mi := &file_machine_v1alpha1_api_proto_msgTypes[22] + mi := &file_machine_v1alpha1_api_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1500,7 +1584,7 @@ func (x *CreateMachineRequest) String() string { func (*CreateMachineRequest) ProtoMessage() {} func (x *CreateMachineRequest) ProtoReflect() protoreflect.Message { - mi := &file_machine_v1alpha1_api_proto_msgTypes[22] + mi := &file_machine_v1alpha1_api_proto_msgTypes[23] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1513,7 +1597,7 @@ func (x *CreateMachineRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateMachineRequest.ProtoReflect.Descriptor instead. func (*CreateMachineRequest) Descriptor() ([]byte, []int) { - return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{22} + return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{23} } func (x *CreateMachineRequest) GetMachine() *Machine { @@ -1532,7 +1616,7 @@ type CreateMachineResponse struct { func (x *CreateMachineResponse) Reset() { *x = CreateMachineResponse{} - mi := &file_machine_v1alpha1_api_proto_msgTypes[23] + mi := &file_machine_v1alpha1_api_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1544,7 +1628,7 @@ func (x *CreateMachineResponse) String() string { func (*CreateMachineResponse) ProtoMessage() {} func (x *CreateMachineResponse) ProtoReflect() protoreflect.Message { - mi := &file_machine_v1alpha1_api_proto_msgTypes[23] + mi := &file_machine_v1alpha1_api_proto_msgTypes[24] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1557,7 +1641,7 @@ func (x *CreateMachineResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateMachineResponse.ProtoReflect.Descriptor instead. func (*CreateMachineResponse) Descriptor() ([]byte, []int) { - return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{23} + return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{24} } func (x *CreateMachineResponse) GetMachine() *Machine { @@ -1576,7 +1660,7 @@ type DeleteMachineRequest struct { func (x *DeleteMachineRequest) Reset() { *x = DeleteMachineRequest{} - mi := &file_machine_v1alpha1_api_proto_msgTypes[24] + mi := &file_machine_v1alpha1_api_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1588,7 +1672,7 @@ func (x *DeleteMachineRequest) String() string { func (*DeleteMachineRequest) ProtoMessage() {} func (x *DeleteMachineRequest) ProtoReflect() protoreflect.Message { - mi := &file_machine_v1alpha1_api_proto_msgTypes[24] + mi := &file_machine_v1alpha1_api_proto_msgTypes[25] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1601,7 +1685,7 @@ func (x *DeleteMachineRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteMachineRequest.ProtoReflect.Descriptor instead. func (*DeleteMachineRequest) Descriptor() ([]byte, []int) { - return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{24} + return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{25} } func (x *DeleteMachineRequest) GetMachineId() string { @@ -1619,7 +1703,7 @@ type DeleteMachineResponse struct { func (x *DeleteMachineResponse) Reset() { *x = DeleteMachineResponse{} - mi := &file_machine_v1alpha1_api_proto_msgTypes[25] + mi := &file_machine_v1alpha1_api_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1631,7 +1715,7 @@ func (x *DeleteMachineResponse) String() string { func (*DeleteMachineResponse) ProtoMessage() {} func (x *DeleteMachineResponse) ProtoReflect() protoreflect.Message { - mi := &file_machine_v1alpha1_api_proto_msgTypes[25] + mi := &file_machine_v1alpha1_api_proto_msgTypes[26] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1644,7 +1728,7 @@ func (x *DeleteMachineResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteMachineResponse.ProtoReflect.Descriptor instead. func (*DeleteMachineResponse) Descriptor() ([]byte, []int) { - return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{25} + return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{26} } type UpdateMachineAnnotationsRequest struct { @@ -1657,7 +1741,7 @@ type UpdateMachineAnnotationsRequest struct { func (x *UpdateMachineAnnotationsRequest) Reset() { *x = UpdateMachineAnnotationsRequest{} - mi := &file_machine_v1alpha1_api_proto_msgTypes[26] + mi := &file_machine_v1alpha1_api_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1669,7 +1753,7 @@ func (x *UpdateMachineAnnotationsRequest) String() string { func (*UpdateMachineAnnotationsRequest) ProtoMessage() {} func (x *UpdateMachineAnnotationsRequest) ProtoReflect() protoreflect.Message { - mi := &file_machine_v1alpha1_api_proto_msgTypes[26] + mi := &file_machine_v1alpha1_api_proto_msgTypes[27] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1682,7 +1766,7 @@ func (x *UpdateMachineAnnotationsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateMachineAnnotationsRequest.ProtoReflect.Descriptor instead. func (*UpdateMachineAnnotationsRequest) Descriptor() ([]byte, []int) { - return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{26} + return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{27} } func (x *UpdateMachineAnnotationsRequest) GetMachineId() string { @@ -1707,7 +1791,7 @@ type UpdateMachineAnnotationsResponse struct { func (x *UpdateMachineAnnotationsResponse) Reset() { *x = UpdateMachineAnnotationsResponse{} - mi := &file_machine_v1alpha1_api_proto_msgTypes[27] + mi := &file_machine_v1alpha1_api_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1719,7 +1803,7 @@ func (x *UpdateMachineAnnotationsResponse) String() string { func (*UpdateMachineAnnotationsResponse) ProtoMessage() {} func (x *UpdateMachineAnnotationsResponse) ProtoReflect() protoreflect.Message { - mi := &file_machine_v1alpha1_api_proto_msgTypes[27] + mi := &file_machine_v1alpha1_api_proto_msgTypes[28] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1732,7 +1816,7 @@ func (x *UpdateMachineAnnotationsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateMachineAnnotationsResponse.ProtoReflect.Descriptor instead. func (*UpdateMachineAnnotationsResponse) Descriptor() ([]byte, []int) { - return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{27} + return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{28} } type UpdateMachinePowerRequest struct { @@ -1745,7 +1829,7 @@ type UpdateMachinePowerRequest struct { func (x *UpdateMachinePowerRequest) Reset() { *x = UpdateMachinePowerRequest{} - mi := &file_machine_v1alpha1_api_proto_msgTypes[28] + mi := &file_machine_v1alpha1_api_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1757,7 +1841,7 @@ func (x *UpdateMachinePowerRequest) String() string { func (*UpdateMachinePowerRequest) ProtoMessage() {} func (x *UpdateMachinePowerRequest) ProtoReflect() protoreflect.Message { - mi := &file_machine_v1alpha1_api_proto_msgTypes[28] + mi := &file_machine_v1alpha1_api_proto_msgTypes[29] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1770,7 +1854,7 @@ func (x *UpdateMachinePowerRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateMachinePowerRequest.ProtoReflect.Descriptor instead. func (*UpdateMachinePowerRequest) Descriptor() ([]byte, []int) { - return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{28} + return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{29} } func (x *UpdateMachinePowerRequest) GetMachineId() string { @@ -1795,7 +1879,7 @@ type UpdateMachinePowerResponse struct { func (x *UpdateMachinePowerResponse) Reset() { *x = UpdateMachinePowerResponse{} - mi := &file_machine_v1alpha1_api_proto_msgTypes[29] + mi := &file_machine_v1alpha1_api_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1807,7 +1891,7 @@ func (x *UpdateMachinePowerResponse) String() string { func (*UpdateMachinePowerResponse) ProtoMessage() {} func (x *UpdateMachinePowerResponse) ProtoReflect() protoreflect.Message { - mi := &file_machine_v1alpha1_api_proto_msgTypes[29] + mi := &file_machine_v1alpha1_api_proto_msgTypes[30] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1820,7 +1904,7 @@ func (x *UpdateMachinePowerResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateMachinePowerResponse.ProtoReflect.Descriptor instead. func (*UpdateMachinePowerResponse) Descriptor() ([]byte, []int) { - return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{29} + return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{30} } type AttachVolumeRequest struct { @@ -1833,7 +1917,7 @@ type AttachVolumeRequest struct { func (x *AttachVolumeRequest) Reset() { *x = AttachVolumeRequest{} - mi := &file_machine_v1alpha1_api_proto_msgTypes[30] + mi := &file_machine_v1alpha1_api_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1845,7 +1929,7 @@ func (x *AttachVolumeRequest) String() string { func (*AttachVolumeRequest) ProtoMessage() {} func (x *AttachVolumeRequest) ProtoReflect() protoreflect.Message { - mi := &file_machine_v1alpha1_api_proto_msgTypes[30] + mi := &file_machine_v1alpha1_api_proto_msgTypes[31] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1858,7 +1942,7 @@ func (x *AttachVolumeRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AttachVolumeRequest.ProtoReflect.Descriptor instead. func (*AttachVolumeRequest) Descriptor() ([]byte, []int) { - return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{30} + return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{31} } func (x *AttachVolumeRequest) GetMachineId() string { @@ -1883,7 +1967,7 @@ type AttachVolumeResponse struct { func (x *AttachVolumeResponse) Reset() { *x = AttachVolumeResponse{} - mi := &file_machine_v1alpha1_api_proto_msgTypes[31] + mi := &file_machine_v1alpha1_api_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1895,7 +1979,7 @@ func (x *AttachVolumeResponse) String() string { func (*AttachVolumeResponse) ProtoMessage() {} func (x *AttachVolumeResponse) ProtoReflect() protoreflect.Message { - mi := &file_machine_v1alpha1_api_proto_msgTypes[31] + mi := &file_machine_v1alpha1_api_proto_msgTypes[32] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1908,7 +1992,7 @@ func (x *AttachVolumeResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use AttachVolumeResponse.ProtoReflect.Descriptor instead. func (*AttachVolumeResponse) Descriptor() ([]byte, []int) { - return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{31} + return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{32} } type DetachVolumeRequest struct { @@ -1921,7 +2005,7 @@ type DetachVolumeRequest struct { func (x *DetachVolumeRequest) Reset() { *x = DetachVolumeRequest{} - mi := &file_machine_v1alpha1_api_proto_msgTypes[32] + mi := &file_machine_v1alpha1_api_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1933,7 +2017,7 @@ func (x *DetachVolumeRequest) String() string { func (*DetachVolumeRequest) ProtoMessage() {} func (x *DetachVolumeRequest) ProtoReflect() protoreflect.Message { - mi := &file_machine_v1alpha1_api_proto_msgTypes[32] + mi := &file_machine_v1alpha1_api_proto_msgTypes[33] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1946,7 +2030,7 @@ func (x *DetachVolumeRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DetachVolumeRequest.ProtoReflect.Descriptor instead. func (*DetachVolumeRequest) Descriptor() ([]byte, []int) { - return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{32} + return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{33} } func (x *DetachVolumeRequest) GetMachineId() string { @@ -1971,7 +2055,7 @@ type DetachVolumeResponse struct { func (x *DetachVolumeResponse) Reset() { *x = DetachVolumeResponse{} - mi := &file_machine_v1alpha1_api_proto_msgTypes[33] + mi := &file_machine_v1alpha1_api_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1983,7 +2067,7 @@ func (x *DetachVolumeResponse) String() string { func (*DetachVolumeResponse) ProtoMessage() {} func (x *DetachVolumeResponse) ProtoReflect() protoreflect.Message { - mi := &file_machine_v1alpha1_api_proto_msgTypes[33] + mi := &file_machine_v1alpha1_api_proto_msgTypes[34] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1996,7 +2080,7 @@ func (x *DetachVolumeResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DetachVolumeResponse.ProtoReflect.Descriptor instead. func (*DetachVolumeResponse) Descriptor() ([]byte, []int) { - return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{33} + return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{34} } type UpdateVolumeRequest struct { @@ -2009,7 +2093,7 @@ type UpdateVolumeRequest struct { func (x *UpdateVolumeRequest) Reset() { *x = UpdateVolumeRequest{} - mi := &file_machine_v1alpha1_api_proto_msgTypes[34] + mi := &file_machine_v1alpha1_api_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2021,7 +2105,7 @@ func (x *UpdateVolumeRequest) String() string { func (*UpdateVolumeRequest) ProtoMessage() {} func (x *UpdateVolumeRequest) ProtoReflect() protoreflect.Message { - mi := &file_machine_v1alpha1_api_proto_msgTypes[34] + mi := &file_machine_v1alpha1_api_proto_msgTypes[35] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2034,7 +2118,7 @@ func (x *UpdateVolumeRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateVolumeRequest.ProtoReflect.Descriptor instead. func (*UpdateVolumeRequest) Descriptor() ([]byte, []int) { - return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{34} + return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{35} } func (x *UpdateVolumeRequest) GetMachineId() string { @@ -2059,7 +2143,7 @@ type UpdateVolumeResponse struct { func (x *UpdateVolumeResponse) Reset() { *x = UpdateVolumeResponse{} - mi := &file_machine_v1alpha1_api_proto_msgTypes[35] + mi := &file_machine_v1alpha1_api_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2071,7 +2155,7 @@ func (x *UpdateVolumeResponse) String() string { func (*UpdateVolumeResponse) ProtoMessage() {} func (x *UpdateVolumeResponse) ProtoReflect() protoreflect.Message { - mi := &file_machine_v1alpha1_api_proto_msgTypes[35] + mi := &file_machine_v1alpha1_api_proto_msgTypes[36] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2084,7 +2168,7 @@ func (x *UpdateVolumeResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateVolumeResponse.ProtoReflect.Descriptor instead. func (*UpdateVolumeResponse) Descriptor() ([]byte, []int) { - return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{35} + return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{36} } type AttachNetworkInterfaceRequest struct { @@ -2097,7 +2181,7 @@ type AttachNetworkInterfaceRequest struct { func (x *AttachNetworkInterfaceRequest) Reset() { *x = AttachNetworkInterfaceRequest{} - mi := &file_machine_v1alpha1_api_proto_msgTypes[36] + mi := &file_machine_v1alpha1_api_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2109,7 +2193,7 @@ func (x *AttachNetworkInterfaceRequest) String() string { func (*AttachNetworkInterfaceRequest) ProtoMessage() {} func (x *AttachNetworkInterfaceRequest) ProtoReflect() protoreflect.Message { - mi := &file_machine_v1alpha1_api_proto_msgTypes[36] + mi := &file_machine_v1alpha1_api_proto_msgTypes[37] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2122,7 +2206,7 @@ func (x *AttachNetworkInterfaceRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AttachNetworkInterfaceRequest.ProtoReflect.Descriptor instead. func (*AttachNetworkInterfaceRequest) Descriptor() ([]byte, []int) { - return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{36} + return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{37} } func (x *AttachNetworkInterfaceRequest) GetMachineId() string { @@ -2147,7 +2231,7 @@ type AttachNetworkInterfaceResponse struct { func (x *AttachNetworkInterfaceResponse) Reset() { *x = AttachNetworkInterfaceResponse{} - mi := &file_machine_v1alpha1_api_proto_msgTypes[37] + mi := &file_machine_v1alpha1_api_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2159,7 +2243,7 @@ func (x *AttachNetworkInterfaceResponse) String() string { func (*AttachNetworkInterfaceResponse) ProtoMessage() {} func (x *AttachNetworkInterfaceResponse) ProtoReflect() protoreflect.Message { - mi := &file_machine_v1alpha1_api_proto_msgTypes[37] + mi := &file_machine_v1alpha1_api_proto_msgTypes[38] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2172,7 +2256,7 @@ func (x *AttachNetworkInterfaceResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use AttachNetworkInterfaceResponse.ProtoReflect.Descriptor instead. func (*AttachNetworkInterfaceResponse) Descriptor() ([]byte, []int) { - return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{37} + return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{38} } type DetachNetworkInterfaceRequest struct { @@ -2185,7 +2269,7 @@ type DetachNetworkInterfaceRequest struct { func (x *DetachNetworkInterfaceRequest) Reset() { *x = DetachNetworkInterfaceRequest{} - mi := &file_machine_v1alpha1_api_proto_msgTypes[38] + mi := &file_machine_v1alpha1_api_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2197,7 +2281,7 @@ func (x *DetachNetworkInterfaceRequest) String() string { func (*DetachNetworkInterfaceRequest) ProtoMessage() {} func (x *DetachNetworkInterfaceRequest) ProtoReflect() protoreflect.Message { - mi := &file_machine_v1alpha1_api_proto_msgTypes[38] + mi := &file_machine_v1alpha1_api_proto_msgTypes[39] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2210,7 +2294,7 @@ func (x *DetachNetworkInterfaceRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DetachNetworkInterfaceRequest.ProtoReflect.Descriptor instead. func (*DetachNetworkInterfaceRequest) Descriptor() ([]byte, []int) { - return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{38} + return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{39} } func (x *DetachNetworkInterfaceRequest) GetMachineId() string { @@ -2235,7 +2319,7 @@ type DetachNetworkInterfaceResponse struct { func (x *DetachNetworkInterfaceResponse) Reset() { *x = DetachNetworkInterfaceResponse{} - mi := &file_machine_v1alpha1_api_proto_msgTypes[39] + mi := &file_machine_v1alpha1_api_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2247,7 +2331,7 @@ func (x *DetachNetworkInterfaceResponse) String() string { func (*DetachNetworkInterfaceResponse) ProtoMessage() {} func (x *DetachNetworkInterfaceResponse) ProtoReflect() protoreflect.Message { - mi := &file_machine_v1alpha1_api_proto_msgTypes[39] + mi := &file_machine_v1alpha1_api_proto_msgTypes[40] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2260,7 +2344,7 @@ func (x *DetachNetworkInterfaceResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DetachNetworkInterfaceResponse.ProtoReflect.Descriptor instead. func (*DetachNetworkInterfaceResponse) Descriptor() ([]byte, []int) { - return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{39} + return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{40} } type StatusRequest struct { @@ -2271,7 +2355,7 @@ type StatusRequest struct { func (x *StatusRequest) Reset() { *x = StatusRequest{} - mi := &file_machine_v1alpha1_api_proto_msgTypes[40] + mi := &file_machine_v1alpha1_api_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2283,7 +2367,7 @@ func (x *StatusRequest) String() string { func (*StatusRequest) ProtoMessage() {} func (x *StatusRequest) ProtoReflect() protoreflect.Message { - mi := &file_machine_v1alpha1_api_proto_msgTypes[40] + mi := &file_machine_v1alpha1_api_proto_msgTypes[41] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2296,7 +2380,7 @@ func (x *StatusRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StatusRequest.ProtoReflect.Descriptor instead. func (*StatusRequest) Descriptor() ([]byte, []int) { - return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{40} + return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{41} } type StatusResponse struct { @@ -2308,7 +2392,7 @@ type StatusResponse struct { func (x *StatusResponse) Reset() { *x = StatusResponse{} - mi := &file_machine_v1alpha1_api_proto_msgTypes[41] + mi := &file_machine_v1alpha1_api_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2320,7 +2404,7 @@ func (x *StatusResponse) String() string { func (*StatusResponse) ProtoMessage() {} func (x *StatusResponse) ProtoReflect() protoreflect.Message { - mi := &file_machine_v1alpha1_api_proto_msgTypes[41] + mi := &file_machine_v1alpha1_api_proto_msgTypes[42] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2333,7 +2417,7 @@ func (x *StatusResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use StatusResponse.ProtoReflect.Descriptor instead. func (*StatusResponse) Descriptor() ([]byte, []int) { - return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{41} + return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{42} } func (x *StatusResponse) GetMachineClassStatus() []*MachineClassStatus { @@ -2352,7 +2436,7 @@ type ExecRequest struct { func (x *ExecRequest) Reset() { *x = ExecRequest{} - mi := &file_machine_v1alpha1_api_proto_msgTypes[42] + mi := &file_machine_v1alpha1_api_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2364,7 +2448,7 @@ func (x *ExecRequest) String() string { func (*ExecRequest) ProtoMessage() {} func (x *ExecRequest) ProtoReflect() protoreflect.Message { - mi := &file_machine_v1alpha1_api_proto_msgTypes[42] + mi := &file_machine_v1alpha1_api_proto_msgTypes[43] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2377,7 +2461,7 @@ func (x *ExecRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ExecRequest.ProtoReflect.Descriptor instead. func (*ExecRequest) Descriptor() ([]byte, []int) { - return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{42} + return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{43} } func (x *ExecRequest) GetMachineId() string { @@ -2396,7 +2480,7 @@ type ExecResponse struct { func (x *ExecResponse) Reset() { *x = ExecResponse{} - mi := &file_machine_v1alpha1_api_proto_msgTypes[43] + mi := &file_machine_v1alpha1_api_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2408,7 +2492,7 @@ func (x *ExecResponse) String() string { func (*ExecResponse) ProtoMessage() {} func (x *ExecResponse) ProtoReflect() protoreflect.Message { - mi := &file_machine_v1alpha1_api_proto_msgTypes[43] + mi := &file_machine_v1alpha1_api_proto_msgTypes[44] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2421,7 +2505,7 @@ func (x *ExecResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ExecResponse.ProtoReflect.Descriptor instead. func (*ExecResponse) Descriptor() ([]byte, []int) { - return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{43} + return file_machine_v1alpha1_api_proto_rawDescGZIP(), []int{44} } func (x *ExecResponse) GetUrl() string { @@ -2523,13 +2607,21 @@ const file_machine_v1alpha1_api_proto_rawDesc = "" + "\x05class\x18\x02 \x01(\tR\x05class\x12#\n" + "\rignition_data\x18\x03 \x01(\fR\fignitionData\x122\n" + "\avolumes\x18\x04 \x03(\v2\x18.machine.v1alpha1.VolumeR\avolumes\x12Q\n" + - "\x12network_interfaces\x18\x05 \x03(\v2\".machine.v1alpha1.NetworkInterfaceR\x11networkInterfaces\"\xa6\x02\n" + + "\x12network_interfaces\x18\x05 \x03(\v2\".machine.v1alpha1.NetworkInterfaceR\x11networkInterfaces\"\xf3\x02\n" + "\rMachineStatus\x12/\n" + "\x13observed_generation\x18\x01 \x01(\x03R\x12observedGeneration\x124\n" + "\x05state\x18\x02 \x01(\x0e2\x1e.machine.v1alpha1.MachineStateR\x05state\x12\x1b\n" + "\timage_ref\x18\x03 \x01(\tR\bimageRef\x128\n" + "\avolumes\x18\x04 \x03(\v2\x1e.machine.v1alpha1.VolumeStatusR\avolumes\x12W\n" + - "\x12network_interfaces\x18\x05 \x03(\v2(.machine.v1alpha1.NetworkInterfaceStatusR\x11networkInterfaces\"o\n" + + "\x12network_interfaces\x18\x05 \x03(\v2(.machine.v1alpha1.NetworkInterfaceStatusR\x11networkInterfaces\x12K\n" + + "\x12machine_conditions\x18\x06 \x03(\v2\x1c.machine.v1alpha1.ConditionsR\x11machineConditions\"\x9c\x01\n" + + "\n" + + "Conditions\x12\x12\n" + + "\x04type\x18\x01 \x01(\tR\x04type\x12\x16\n" + + "\x06status\x18\x02 \x01(\tR\x06status\x12\x16\n" + + "\x06reason\x18\x03 \x01(\tR\x06reason\x12\x18\n" + + "\amessage\x18\x04 \x01(\tR\amessage\x120\n" + + "\x14last_transition_time\x18\x05 \x01(\x03R\x12lastTransitionTime\"o\n" + "\fVolumeStatus\x12\x12\n" + "\x04name\x18\x01 \x01(\tR\x04name\x12\x16\n" + "\x06handle\x18\x02 \x01(\tR\x06handle\x123\n" + @@ -2657,7 +2749,7 @@ func file_machine_v1alpha1_api_proto_rawDescGZIP() []byte { } var file_machine_v1alpha1_api_proto_enumTypes = make([]protoimpl.EnumInfo, 4) -var file_machine_v1alpha1_api_proto_msgTypes = make([]protoimpl.MessageInfo, 54) +var file_machine_v1alpha1_api_proto_msgTypes = make([]protoimpl.MessageInfo, 55) var file_machine_v1alpha1_api_proto_goTypes = []any{ (Power)(0), // 0: machine.v1alpha1.Power (VolumeState)(0), // 1: machine.v1alpha1.VolumeState @@ -2675,122 +2767,124 @@ var file_machine_v1alpha1_api_proto_goTypes = []any{ (*NetworkInterface)(nil), // 13: machine.v1alpha1.NetworkInterface (*MachineSpec)(nil), // 14: machine.v1alpha1.MachineSpec (*MachineStatus)(nil), // 15: machine.v1alpha1.MachineStatus - (*VolumeStatus)(nil), // 16: machine.v1alpha1.VolumeStatus - (*NetworkInterfaceStatus)(nil), // 17: machine.v1alpha1.NetworkInterfaceStatus - (*MachineClass)(nil), // 18: machine.v1alpha1.MachineClass - (*MachineClassStatus)(nil), // 19: machine.v1alpha1.MachineClassStatus - (*VersionRequest)(nil), // 20: machine.v1alpha1.VersionRequest - (*VersionResponse)(nil), // 21: machine.v1alpha1.VersionResponse - (*ListMachinesRequest)(nil), // 22: machine.v1alpha1.ListMachinesRequest - (*ListMachinesResponse)(nil), // 23: machine.v1alpha1.ListMachinesResponse - (*ListEventsRequest)(nil), // 24: machine.v1alpha1.ListEventsRequest - (*ListEventsResponse)(nil), // 25: machine.v1alpha1.ListEventsResponse - (*CreateMachineRequest)(nil), // 26: machine.v1alpha1.CreateMachineRequest - (*CreateMachineResponse)(nil), // 27: machine.v1alpha1.CreateMachineResponse - (*DeleteMachineRequest)(nil), // 28: machine.v1alpha1.DeleteMachineRequest - (*DeleteMachineResponse)(nil), // 29: machine.v1alpha1.DeleteMachineResponse - (*UpdateMachineAnnotationsRequest)(nil), // 30: machine.v1alpha1.UpdateMachineAnnotationsRequest - (*UpdateMachineAnnotationsResponse)(nil), // 31: machine.v1alpha1.UpdateMachineAnnotationsResponse - (*UpdateMachinePowerRequest)(nil), // 32: machine.v1alpha1.UpdateMachinePowerRequest - (*UpdateMachinePowerResponse)(nil), // 33: machine.v1alpha1.UpdateMachinePowerResponse - (*AttachVolumeRequest)(nil), // 34: machine.v1alpha1.AttachVolumeRequest - (*AttachVolumeResponse)(nil), // 35: machine.v1alpha1.AttachVolumeResponse - (*DetachVolumeRequest)(nil), // 36: machine.v1alpha1.DetachVolumeRequest - (*DetachVolumeResponse)(nil), // 37: machine.v1alpha1.DetachVolumeResponse - (*UpdateVolumeRequest)(nil), // 38: machine.v1alpha1.UpdateVolumeRequest - (*UpdateVolumeResponse)(nil), // 39: machine.v1alpha1.UpdateVolumeResponse - (*AttachNetworkInterfaceRequest)(nil), // 40: machine.v1alpha1.AttachNetworkInterfaceRequest - (*AttachNetworkInterfaceResponse)(nil), // 41: machine.v1alpha1.AttachNetworkInterfaceResponse - (*DetachNetworkInterfaceRequest)(nil), // 42: machine.v1alpha1.DetachNetworkInterfaceRequest - (*DetachNetworkInterfaceResponse)(nil), // 43: machine.v1alpha1.DetachNetworkInterfaceResponse - (*StatusRequest)(nil), // 44: machine.v1alpha1.StatusRequest - (*StatusResponse)(nil), // 45: machine.v1alpha1.StatusResponse - (*ExecRequest)(nil), // 46: machine.v1alpha1.ExecRequest - (*ExecResponse)(nil), // 47: machine.v1alpha1.ExecResponse - nil, // 48: machine.v1alpha1.VolumeSpec.AttributesEntry - nil, // 49: machine.v1alpha1.VolumeSpec.SecretDataEntry - nil, // 50: machine.v1alpha1.MachineFilter.LabelSelectorEntry - nil, // 51: machine.v1alpha1.EventFilter.LabelSelectorEntry - nil, // 52: machine.v1alpha1.MachineClassCapabilities.ResourcesEntry - nil, // 53: machine.v1alpha1.VolumeConnection.AttributesEntry - nil, // 54: machine.v1alpha1.VolumeConnection.SecretDataEntry - nil, // 55: machine.v1alpha1.VolumeConnection.EncryptionDataEntry - nil, // 56: machine.v1alpha1.NetworkInterface.AttributesEntry - nil, // 57: machine.v1alpha1.UpdateMachineAnnotationsRequest.AnnotationsEntry - (*v1alpha1.ObjectMetadata)(nil), // 58: meta.v1alpha1.ObjectMetadata - (*v1alpha11.Event)(nil), // 59: event.v1alpha1.Event + (*Conditions)(nil), // 16: machine.v1alpha1.Conditions + (*VolumeStatus)(nil), // 17: machine.v1alpha1.VolumeStatus + (*NetworkInterfaceStatus)(nil), // 18: machine.v1alpha1.NetworkInterfaceStatus + (*MachineClass)(nil), // 19: machine.v1alpha1.MachineClass + (*MachineClassStatus)(nil), // 20: machine.v1alpha1.MachineClassStatus + (*VersionRequest)(nil), // 21: machine.v1alpha1.VersionRequest + (*VersionResponse)(nil), // 22: machine.v1alpha1.VersionResponse + (*ListMachinesRequest)(nil), // 23: machine.v1alpha1.ListMachinesRequest + (*ListMachinesResponse)(nil), // 24: machine.v1alpha1.ListMachinesResponse + (*ListEventsRequest)(nil), // 25: machine.v1alpha1.ListEventsRequest + (*ListEventsResponse)(nil), // 26: machine.v1alpha1.ListEventsResponse + (*CreateMachineRequest)(nil), // 27: machine.v1alpha1.CreateMachineRequest + (*CreateMachineResponse)(nil), // 28: machine.v1alpha1.CreateMachineResponse + (*DeleteMachineRequest)(nil), // 29: machine.v1alpha1.DeleteMachineRequest + (*DeleteMachineResponse)(nil), // 30: machine.v1alpha1.DeleteMachineResponse + (*UpdateMachineAnnotationsRequest)(nil), // 31: machine.v1alpha1.UpdateMachineAnnotationsRequest + (*UpdateMachineAnnotationsResponse)(nil), // 32: machine.v1alpha1.UpdateMachineAnnotationsResponse + (*UpdateMachinePowerRequest)(nil), // 33: machine.v1alpha1.UpdateMachinePowerRequest + (*UpdateMachinePowerResponse)(nil), // 34: machine.v1alpha1.UpdateMachinePowerResponse + (*AttachVolumeRequest)(nil), // 35: machine.v1alpha1.AttachVolumeRequest + (*AttachVolumeResponse)(nil), // 36: machine.v1alpha1.AttachVolumeResponse + (*DetachVolumeRequest)(nil), // 37: machine.v1alpha1.DetachVolumeRequest + (*DetachVolumeResponse)(nil), // 38: machine.v1alpha1.DetachVolumeResponse + (*UpdateVolumeRequest)(nil), // 39: machine.v1alpha1.UpdateVolumeRequest + (*UpdateVolumeResponse)(nil), // 40: machine.v1alpha1.UpdateVolumeResponse + (*AttachNetworkInterfaceRequest)(nil), // 41: machine.v1alpha1.AttachNetworkInterfaceRequest + (*AttachNetworkInterfaceResponse)(nil), // 42: machine.v1alpha1.AttachNetworkInterfaceResponse + (*DetachNetworkInterfaceRequest)(nil), // 43: machine.v1alpha1.DetachNetworkInterfaceRequest + (*DetachNetworkInterfaceResponse)(nil), // 44: machine.v1alpha1.DetachNetworkInterfaceResponse + (*StatusRequest)(nil), // 45: machine.v1alpha1.StatusRequest + (*StatusResponse)(nil), // 46: machine.v1alpha1.StatusResponse + (*ExecRequest)(nil), // 47: machine.v1alpha1.ExecRequest + (*ExecResponse)(nil), // 48: machine.v1alpha1.ExecResponse + nil, // 49: machine.v1alpha1.VolumeSpec.AttributesEntry + nil, // 50: machine.v1alpha1.VolumeSpec.SecretDataEntry + nil, // 51: machine.v1alpha1.MachineFilter.LabelSelectorEntry + nil, // 52: machine.v1alpha1.EventFilter.LabelSelectorEntry + nil, // 53: machine.v1alpha1.MachineClassCapabilities.ResourcesEntry + nil, // 54: machine.v1alpha1.VolumeConnection.AttributesEntry + nil, // 55: machine.v1alpha1.VolumeConnection.SecretDataEntry + nil, // 56: machine.v1alpha1.VolumeConnection.EncryptionDataEntry + nil, // 57: machine.v1alpha1.NetworkInterface.AttributesEntry + nil, // 58: machine.v1alpha1.UpdateMachineAnnotationsRequest.AnnotationsEntry + (*v1alpha1.ObjectMetadata)(nil), // 59: meta.v1alpha1.ObjectMetadata + (*v1alpha11.Event)(nil), // 60: event.v1alpha1.Event } var file_machine_v1alpha1_api_proto_depIdxs = []int32{ - 48, // 0: machine.v1alpha1.VolumeSpec.attributes:type_name -> machine.v1alpha1.VolumeSpec.AttributesEntry - 49, // 1: machine.v1alpha1.VolumeSpec.secret_data:type_name -> machine.v1alpha1.VolumeSpec.SecretDataEntry - 50, // 2: machine.v1alpha1.MachineFilter.label_selector:type_name -> machine.v1alpha1.MachineFilter.LabelSelectorEntry - 51, // 3: machine.v1alpha1.EventFilter.label_selector:type_name -> machine.v1alpha1.EventFilter.LabelSelectorEntry - 52, // 4: machine.v1alpha1.MachineClassCapabilities.resources:type_name -> machine.v1alpha1.MachineClassCapabilities.ResourcesEntry - 58, // 5: machine.v1alpha1.Machine.metadata:type_name -> meta.v1alpha1.ObjectMetadata + 49, // 0: machine.v1alpha1.VolumeSpec.attributes:type_name -> machine.v1alpha1.VolumeSpec.AttributesEntry + 50, // 1: machine.v1alpha1.VolumeSpec.secret_data:type_name -> machine.v1alpha1.VolumeSpec.SecretDataEntry + 51, // 2: machine.v1alpha1.MachineFilter.label_selector:type_name -> machine.v1alpha1.MachineFilter.LabelSelectorEntry + 52, // 3: machine.v1alpha1.EventFilter.label_selector:type_name -> machine.v1alpha1.EventFilter.LabelSelectorEntry + 53, // 4: machine.v1alpha1.MachineClassCapabilities.resources:type_name -> machine.v1alpha1.MachineClassCapabilities.ResourcesEntry + 59, // 5: machine.v1alpha1.Machine.metadata:type_name -> meta.v1alpha1.ObjectMetadata 14, // 6: machine.v1alpha1.Machine.spec:type_name -> machine.v1alpha1.MachineSpec 15, // 7: machine.v1alpha1.Machine.status:type_name -> machine.v1alpha1.MachineStatus 9, // 8: machine.v1alpha1.LocalDisk.image:type_name -> machine.v1alpha1.ImageSpec - 53, // 9: machine.v1alpha1.VolumeConnection.attributes:type_name -> machine.v1alpha1.VolumeConnection.AttributesEntry - 54, // 10: machine.v1alpha1.VolumeConnection.secret_data:type_name -> machine.v1alpha1.VolumeConnection.SecretDataEntry - 55, // 11: machine.v1alpha1.VolumeConnection.encryption_data:type_name -> machine.v1alpha1.VolumeConnection.EncryptionDataEntry + 54, // 9: machine.v1alpha1.VolumeConnection.attributes:type_name -> machine.v1alpha1.VolumeConnection.AttributesEntry + 55, // 10: machine.v1alpha1.VolumeConnection.secret_data:type_name -> machine.v1alpha1.VolumeConnection.SecretDataEntry + 56, // 11: machine.v1alpha1.VolumeConnection.encryption_data:type_name -> machine.v1alpha1.VolumeConnection.EncryptionDataEntry 10, // 12: machine.v1alpha1.Volume.local_disk:type_name -> machine.v1alpha1.LocalDisk 11, // 13: machine.v1alpha1.Volume.connection:type_name -> machine.v1alpha1.VolumeConnection - 56, // 14: machine.v1alpha1.NetworkInterface.attributes:type_name -> machine.v1alpha1.NetworkInterface.AttributesEntry + 57, // 14: machine.v1alpha1.NetworkInterface.attributes:type_name -> machine.v1alpha1.NetworkInterface.AttributesEntry 0, // 15: machine.v1alpha1.MachineSpec.power:type_name -> machine.v1alpha1.Power 12, // 16: machine.v1alpha1.MachineSpec.volumes:type_name -> machine.v1alpha1.Volume 13, // 17: machine.v1alpha1.MachineSpec.network_interfaces:type_name -> machine.v1alpha1.NetworkInterface 3, // 18: machine.v1alpha1.MachineStatus.state:type_name -> machine.v1alpha1.MachineState - 16, // 19: machine.v1alpha1.MachineStatus.volumes:type_name -> machine.v1alpha1.VolumeStatus - 17, // 20: machine.v1alpha1.MachineStatus.network_interfaces:type_name -> machine.v1alpha1.NetworkInterfaceStatus - 1, // 21: machine.v1alpha1.VolumeStatus.state:type_name -> machine.v1alpha1.VolumeState - 2, // 22: machine.v1alpha1.NetworkInterfaceStatus.state:type_name -> machine.v1alpha1.NetworkInterfaceState - 7, // 23: machine.v1alpha1.MachineClass.capabilities:type_name -> machine.v1alpha1.MachineClassCapabilities - 18, // 24: machine.v1alpha1.MachineClassStatus.machine_class:type_name -> machine.v1alpha1.MachineClass - 5, // 25: machine.v1alpha1.ListMachinesRequest.filter:type_name -> machine.v1alpha1.MachineFilter - 8, // 26: machine.v1alpha1.ListMachinesResponse.machines:type_name -> machine.v1alpha1.Machine - 6, // 27: machine.v1alpha1.ListEventsRequest.filter:type_name -> machine.v1alpha1.EventFilter - 59, // 28: machine.v1alpha1.ListEventsResponse.events:type_name -> event.v1alpha1.Event - 8, // 29: machine.v1alpha1.CreateMachineRequest.machine:type_name -> machine.v1alpha1.Machine - 8, // 30: machine.v1alpha1.CreateMachineResponse.machine:type_name -> machine.v1alpha1.Machine - 57, // 31: machine.v1alpha1.UpdateMachineAnnotationsRequest.annotations:type_name -> machine.v1alpha1.UpdateMachineAnnotationsRequest.AnnotationsEntry - 0, // 32: machine.v1alpha1.UpdateMachinePowerRequest.power:type_name -> machine.v1alpha1.Power - 12, // 33: machine.v1alpha1.AttachVolumeRequest.volume:type_name -> machine.v1alpha1.Volume - 12, // 34: machine.v1alpha1.UpdateVolumeRequest.volume:type_name -> machine.v1alpha1.Volume - 13, // 35: machine.v1alpha1.AttachNetworkInterfaceRequest.network_interface:type_name -> machine.v1alpha1.NetworkInterface - 19, // 36: machine.v1alpha1.StatusResponse.machine_class_status:type_name -> machine.v1alpha1.MachineClassStatus - 20, // 37: machine.v1alpha1.MachineRuntime.Version:input_type -> machine.v1alpha1.VersionRequest - 24, // 38: machine.v1alpha1.MachineRuntime.ListEvents:input_type -> machine.v1alpha1.ListEventsRequest - 22, // 39: machine.v1alpha1.MachineRuntime.ListMachines:input_type -> machine.v1alpha1.ListMachinesRequest - 26, // 40: machine.v1alpha1.MachineRuntime.CreateMachine:input_type -> machine.v1alpha1.CreateMachineRequest - 28, // 41: machine.v1alpha1.MachineRuntime.DeleteMachine:input_type -> machine.v1alpha1.DeleteMachineRequest - 30, // 42: machine.v1alpha1.MachineRuntime.UpdateMachineAnnotations:input_type -> machine.v1alpha1.UpdateMachineAnnotationsRequest - 32, // 43: machine.v1alpha1.MachineRuntime.UpdateMachinePower:input_type -> machine.v1alpha1.UpdateMachinePowerRequest - 34, // 44: machine.v1alpha1.MachineRuntime.AttachVolume:input_type -> machine.v1alpha1.AttachVolumeRequest - 36, // 45: machine.v1alpha1.MachineRuntime.DetachVolume:input_type -> machine.v1alpha1.DetachVolumeRequest - 38, // 46: machine.v1alpha1.MachineRuntime.UpdateVolume:input_type -> machine.v1alpha1.UpdateVolumeRequest - 40, // 47: machine.v1alpha1.MachineRuntime.AttachNetworkInterface:input_type -> machine.v1alpha1.AttachNetworkInterfaceRequest - 42, // 48: machine.v1alpha1.MachineRuntime.DetachNetworkInterface:input_type -> machine.v1alpha1.DetachNetworkInterfaceRequest - 44, // 49: machine.v1alpha1.MachineRuntime.Status:input_type -> machine.v1alpha1.StatusRequest - 46, // 50: machine.v1alpha1.MachineRuntime.Exec:input_type -> machine.v1alpha1.ExecRequest - 21, // 51: machine.v1alpha1.MachineRuntime.Version:output_type -> machine.v1alpha1.VersionResponse - 25, // 52: machine.v1alpha1.MachineRuntime.ListEvents:output_type -> machine.v1alpha1.ListEventsResponse - 23, // 53: machine.v1alpha1.MachineRuntime.ListMachines:output_type -> machine.v1alpha1.ListMachinesResponse - 27, // 54: machine.v1alpha1.MachineRuntime.CreateMachine:output_type -> machine.v1alpha1.CreateMachineResponse - 29, // 55: machine.v1alpha1.MachineRuntime.DeleteMachine:output_type -> machine.v1alpha1.DeleteMachineResponse - 31, // 56: machine.v1alpha1.MachineRuntime.UpdateMachineAnnotations:output_type -> machine.v1alpha1.UpdateMachineAnnotationsResponse - 33, // 57: machine.v1alpha1.MachineRuntime.UpdateMachinePower:output_type -> machine.v1alpha1.UpdateMachinePowerResponse - 35, // 58: machine.v1alpha1.MachineRuntime.AttachVolume:output_type -> machine.v1alpha1.AttachVolumeResponse - 37, // 59: machine.v1alpha1.MachineRuntime.DetachVolume:output_type -> machine.v1alpha1.DetachVolumeResponse - 39, // 60: machine.v1alpha1.MachineRuntime.UpdateVolume:output_type -> machine.v1alpha1.UpdateVolumeResponse - 41, // 61: machine.v1alpha1.MachineRuntime.AttachNetworkInterface:output_type -> machine.v1alpha1.AttachNetworkInterfaceResponse - 43, // 62: machine.v1alpha1.MachineRuntime.DetachNetworkInterface:output_type -> machine.v1alpha1.DetachNetworkInterfaceResponse - 45, // 63: machine.v1alpha1.MachineRuntime.Status:output_type -> machine.v1alpha1.StatusResponse - 47, // 64: machine.v1alpha1.MachineRuntime.Exec:output_type -> machine.v1alpha1.ExecResponse - 51, // [51:65] is the sub-list for method output_type - 37, // [37:51] is the sub-list for method input_type - 37, // [37:37] is the sub-list for extension type_name - 37, // [37:37] is the sub-list for extension extendee - 0, // [0:37] is the sub-list for field type_name + 17, // 19: machine.v1alpha1.MachineStatus.volumes:type_name -> machine.v1alpha1.VolumeStatus + 18, // 20: machine.v1alpha1.MachineStatus.network_interfaces:type_name -> machine.v1alpha1.NetworkInterfaceStatus + 16, // 21: machine.v1alpha1.MachineStatus.machine_conditions:type_name -> machine.v1alpha1.Conditions + 1, // 22: machine.v1alpha1.VolumeStatus.state:type_name -> machine.v1alpha1.VolumeState + 2, // 23: machine.v1alpha1.NetworkInterfaceStatus.state:type_name -> machine.v1alpha1.NetworkInterfaceState + 7, // 24: machine.v1alpha1.MachineClass.capabilities:type_name -> machine.v1alpha1.MachineClassCapabilities + 19, // 25: machine.v1alpha1.MachineClassStatus.machine_class:type_name -> machine.v1alpha1.MachineClass + 5, // 26: machine.v1alpha1.ListMachinesRequest.filter:type_name -> machine.v1alpha1.MachineFilter + 8, // 27: machine.v1alpha1.ListMachinesResponse.machines:type_name -> machine.v1alpha1.Machine + 6, // 28: machine.v1alpha1.ListEventsRequest.filter:type_name -> machine.v1alpha1.EventFilter + 60, // 29: machine.v1alpha1.ListEventsResponse.events:type_name -> event.v1alpha1.Event + 8, // 30: machine.v1alpha1.CreateMachineRequest.machine:type_name -> machine.v1alpha1.Machine + 8, // 31: machine.v1alpha1.CreateMachineResponse.machine:type_name -> machine.v1alpha1.Machine + 58, // 32: machine.v1alpha1.UpdateMachineAnnotationsRequest.annotations:type_name -> machine.v1alpha1.UpdateMachineAnnotationsRequest.AnnotationsEntry + 0, // 33: machine.v1alpha1.UpdateMachinePowerRequest.power:type_name -> machine.v1alpha1.Power + 12, // 34: machine.v1alpha1.AttachVolumeRequest.volume:type_name -> machine.v1alpha1.Volume + 12, // 35: machine.v1alpha1.UpdateVolumeRequest.volume:type_name -> machine.v1alpha1.Volume + 13, // 36: machine.v1alpha1.AttachNetworkInterfaceRequest.network_interface:type_name -> machine.v1alpha1.NetworkInterface + 20, // 37: machine.v1alpha1.StatusResponse.machine_class_status:type_name -> machine.v1alpha1.MachineClassStatus + 21, // 38: machine.v1alpha1.MachineRuntime.Version:input_type -> machine.v1alpha1.VersionRequest + 25, // 39: machine.v1alpha1.MachineRuntime.ListEvents:input_type -> machine.v1alpha1.ListEventsRequest + 23, // 40: machine.v1alpha1.MachineRuntime.ListMachines:input_type -> machine.v1alpha1.ListMachinesRequest + 27, // 41: machine.v1alpha1.MachineRuntime.CreateMachine:input_type -> machine.v1alpha1.CreateMachineRequest + 29, // 42: machine.v1alpha1.MachineRuntime.DeleteMachine:input_type -> machine.v1alpha1.DeleteMachineRequest + 31, // 43: machine.v1alpha1.MachineRuntime.UpdateMachineAnnotations:input_type -> machine.v1alpha1.UpdateMachineAnnotationsRequest + 33, // 44: machine.v1alpha1.MachineRuntime.UpdateMachinePower:input_type -> machine.v1alpha1.UpdateMachinePowerRequest + 35, // 45: machine.v1alpha1.MachineRuntime.AttachVolume:input_type -> machine.v1alpha1.AttachVolumeRequest + 37, // 46: machine.v1alpha1.MachineRuntime.DetachVolume:input_type -> machine.v1alpha1.DetachVolumeRequest + 39, // 47: machine.v1alpha1.MachineRuntime.UpdateVolume:input_type -> machine.v1alpha1.UpdateVolumeRequest + 41, // 48: machine.v1alpha1.MachineRuntime.AttachNetworkInterface:input_type -> machine.v1alpha1.AttachNetworkInterfaceRequest + 43, // 49: machine.v1alpha1.MachineRuntime.DetachNetworkInterface:input_type -> machine.v1alpha1.DetachNetworkInterfaceRequest + 45, // 50: machine.v1alpha1.MachineRuntime.Status:input_type -> machine.v1alpha1.StatusRequest + 47, // 51: machine.v1alpha1.MachineRuntime.Exec:input_type -> machine.v1alpha1.ExecRequest + 22, // 52: machine.v1alpha1.MachineRuntime.Version:output_type -> machine.v1alpha1.VersionResponse + 26, // 53: machine.v1alpha1.MachineRuntime.ListEvents:output_type -> machine.v1alpha1.ListEventsResponse + 24, // 54: machine.v1alpha1.MachineRuntime.ListMachines:output_type -> machine.v1alpha1.ListMachinesResponse + 28, // 55: machine.v1alpha1.MachineRuntime.CreateMachine:output_type -> machine.v1alpha1.CreateMachineResponse + 30, // 56: machine.v1alpha1.MachineRuntime.DeleteMachine:output_type -> machine.v1alpha1.DeleteMachineResponse + 32, // 57: machine.v1alpha1.MachineRuntime.UpdateMachineAnnotations:output_type -> machine.v1alpha1.UpdateMachineAnnotationsResponse + 34, // 58: machine.v1alpha1.MachineRuntime.UpdateMachinePower:output_type -> machine.v1alpha1.UpdateMachinePowerResponse + 36, // 59: machine.v1alpha1.MachineRuntime.AttachVolume:output_type -> machine.v1alpha1.AttachVolumeResponse + 38, // 60: machine.v1alpha1.MachineRuntime.DetachVolume:output_type -> machine.v1alpha1.DetachVolumeResponse + 40, // 61: machine.v1alpha1.MachineRuntime.UpdateVolume:output_type -> machine.v1alpha1.UpdateVolumeResponse + 42, // 62: machine.v1alpha1.MachineRuntime.AttachNetworkInterface:output_type -> machine.v1alpha1.AttachNetworkInterfaceResponse + 44, // 63: machine.v1alpha1.MachineRuntime.DetachNetworkInterface:output_type -> machine.v1alpha1.DetachNetworkInterfaceResponse + 46, // 64: machine.v1alpha1.MachineRuntime.Status:output_type -> machine.v1alpha1.StatusResponse + 48, // 65: machine.v1alpha1.MachineRuntime.Exec:output_type -> machine.v1alpha1.ExecResponse + 52, // [52:66] is the sub-list for method output_type + 38, // [38:52] is the sub-list for method input_type + 38, // [38:38] is the sub-list for extension type_name + 38, // [38:38] is the sub-list for extension extendee + 0, // [0:38] is the sub-list for field type_name } func init() { file_machine_v1alpha1_api_proto_init() } @@ -2804,7 +2898,7 @@ func file_machine_v1alpha1_api_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_machine_v1alpha1_api_proto_rawDesc), len(file_machine_v1alpha1_api_proto_rawDesc)), NumEnums: 4, - NumMessages: 54, + NumMessages: 55, NumExtensions: 0, NumServices: 1, }, diff --git a/iri/apis/machine/v1alpha1/api.proto b/iri/apis/machine/v1alpha1/api.proto index 5adc6436d..05fea92b1 100644 --- a/iri/apis/machine/v1alpha1/api.proto +++ b/iri/apis/machine/v1alpha1/api.proto @@ -106,6 +106,16 @@ message MachineStatus { string image_ref = 3; repeated VolumeStatus volumes = 4; repeated NetworkInterfaceStatus network_interfaces = 5; + repeated Conditions machine_conditions = 6; +} + +message Conditions { + string type = 1; + string status = 2; + string reason = 3; + string message = 4; + int64 last_transition_time = 5; + } message VolumeStatus { diff --git a/poollet/machinepoollet/controllers/machine_controller.go b/poollet/machinepoollet/controllers/machine_controller.go index 35dce8b8a..cd8bb685f 100644 --- a/poollet/machinepoollet/controllers/machine_controller.go +++ b/poollet/machinepoollet/controllers/machine_controller.go @@ -504,6 +504,7 @@ func (r *MachineReconciler) updateMachineStatus(ctx context.Context, machine *co machine.Status.ObservedGeneration = generation machine.Status.Volumes = volumeStatuses machine.Status.NetworkInterfaces = nicStatuses + machine.Status.Conditions = r.computeMachineConditions(state, volumeStatuses, nicStatuses, now) if err := r.Status().Patch(ctx, machine, client.MergeFrom(base)); err != nil { return fmt.Errorf("error patching status: %w", err) @@ -511,6 +512,103 @@ func (r *MachineReconciler) updateMachineStatus(ctx context.Context, machine *co return nil } +// computeMachineConditions computes the conditions for the machine based on its current state. +func (r *MachineReconciler) computeMachineConditions( + state computev1alpha1.MachineState, + volumeStatuses []computev1alpha1.VolumeStatus, + nicStatuses []computev1alpha1.NetworkInterfaceStatus, + now metav1.Time, +) []computev1alpha1.MachineCondition { + var conditions []computev1alpha1.MachineCondition + + conditions = append(conditions, r.ComputeMachineReadyCondition(state, now)) + + if len(volumeStatuses) > 0 { + if c := r.ComputeVolumesReadyCondition(volumeStatuses, now); c.Type != "" { + conditions = append(conditions, c) + } + } + + if len(nicStatuses) > 0 { + if c := r.ComputeNetworkInterfacesReadyCondition(nicStatuses, now); c.Type != "" { + conditions = append(conditions, c) + } + } + + return conditions +} + +func (r *MachineReconciler) ComputeMachineReadyCondition(state computev1alpha1.MachineState, now metav1.Time) computev1alpha1.MachineCondition { + status, reason, message := corev1.ConditionFalse, "NotReady", "Machine is not ready" + + switch state { + case computev1alpha1.MachineStateRunning: + status, reason, message = corev1.ConditionTrue, "Running", "Machine is running" + case computev1alpha1.MachineStatePending: + status, reason, message = corev1.ConditionFalse, "Pending", "Machine is pending" + case computev1alpha1.MachineStateTerminating, computev1alpha1.MachineStateTerminated: + status, reason, message = corev1.ConditionFalse, "Terminating", "Machine is terminating or terminated" + } + + return computev1alpha1.MachineCondition{ + Type: "Ready", + Status: status, + Reason: reason, + Message: message, + LastTransitionTime: now, + } +} + +func (r *MachineReconciler) ComputeVolumesReadyCondition(volumeStatuses []computev1alpha1.VolumeStatus, now metav1.Time) computev1alpha1.MachineCondition { + if len(volumeStatuses) == 0 { + return computev1alpha1.MachineCondition{} + } + + status, reason, message := corev1.ConditionTrue, "VolumesReady", "All volumes are ready" + + for _, vs := range volumeStatuses { + if vs.State != computev1alpha1.VolumeStateAttached { + status = corev1.ConditionFalse + reason = fmt.Sprintf("VolumeNotReady: %s", vs.Name) + message = fmt.Sprintf("Volume %s is not attached (state: %s)", vs.Name, vs.State) + break + } + } + + return computev1alpha1.MachineCondition{ + Type: computev1alpha1.MachineConditionType("VolumesReady"), + Status: status, + Reason: reason, + Message: message, + LastTransitionTime: now, + } +} + +func (r *MachineReconciler) ComputeNetworkInterfacesReadyCondition(nicStatuses []computev1alpha1.NetworkInterfaceStatus, now metav1.Time) computev1alpha1.MachineCondition { + if len(nicStatuses) == 0 { + return computev1alpha1.MachineCondition{} + } + + status, reason, message := corev1.ConditionTrue, "NetworkInterfacesReady", "All network interfaces are ready" + + for _, nicStatus := range nicStatuses { + if nicStatus.State != computev1alpha1.NetworkInterfaceStateAttached { + status = corev1.ConditionFalse + reason = fmt.Sprintf("NetworkInterfaceNotReady: %s", nicStatus.Name) + message = fmt.Sprintf("Network interface %s is not attached (state: %s)", nicStatus.Name, nicStatus.State) + break + } + } + + return computev1alpha1.MachineCondition{ + Type: computev1alpha1.MachineConditionType("NetworkInterfacesReady"), + Status: status, + Reason: reason, + Message: message, + LastTransitionTime: now, + } +} + func (r *MachineReconciler) prepareIRIPower(power computev1alpha1.Power) (iri.Power, error) { switch power { case computev1alpha1.PowerOn: diff --git a/poollet/machinepoollet/controllers/machine_controller_test.go b/poollet/machinepoollet/controllers/machine_controller_test.go index 74e63069f..20c05728e 100644 --- a/poollet/machinepoollet/controllers/machine_controller_test.go +++ b/poollet/machinepoollet/controllers/machine_controller_test.go @@ -195,6 +195,29 @@ var _ = Describe("MachineController", func() { HaveField("Status.MachineID", expectedMachineID.String()), HaveField("Status.ObservedGeneration", machine.Generation), )) + Eventually(Object(machine)).Should(SatisfyAll( + HaveField("Status.Conditions", ContainElement(MatchFields(IgnoreExtras, Fields{ + "Type": Equal(computev1alpha1.MachineConditionType("Ready")), + "Status": Equal(corev1.ConditionFalse), + "Reason": Equal("Pending"), + "Message": Equal("Machine is pending"), + "LastTransitionTime": Not(BeNil()), + }))), + HaveField("Status.Conditions", ContainElement(MatchFields(IgnoreExtras, Fields{ + "Type": Equal(computev1alpha1.MachineConditionType("VolumesReady")), + "Status": Equal(corev1.ConditionFalse), + "Reason": Equal(fmt.Sprintf("VolumeNotReady: %s", "primary")), + "Message": Equal(fmt.Sprintf("Volume %s is not attached (state: %s)", "primary", "Pending")), + "LastTransitionTime": Not(BeNil()), + }))), + HaveField("Status.Conditions", ContainElement(MatchFields(IgnoreExtras, Fields{ + "Type": Equal(computev1alpha1.MachineConditionType("NetworkInterfacesReady")), + "Status": Equal(corev1.ConditionFalse), + "Reason": Equal(fmt.Sprintf("NetworkInterfaceNotReady: %s", "primary")), + "Message": Equal(fmt.Sprintf("Network interface %s is not attached (state: %s)", "primary", "Pending")), + "LastTransitionTime": Not(BeNil()), + }))), + )) By("setting the network interface id in the machine status") iriMachine = &testingmachine.FakeMachine{Machine: proto.Clone(iriMachine.Machine).(*iri.Machine)} @@ -481,6 +504,17 @@ var _ = Describe("MachineController", func() { srv.SetMachines([]*testingmachine.FakeMachine{iriMachine}) Eventually(Object(machine)).Should(HaveField("Status.State", Equal(computev1alpha1.MachineStateRunning))) + By("waiting for the machine conditions to be updated") + Eventually(Object(machine)).Should(SatisfyAll( + HaveField("Status.Conditions", ContainElement(MatchFields(IgnoreExtras, Fields{ + "Type": Equal(computev1alpha1.MachineConditionType("Ready")), + "Status": Equal(corev1.ConditionTrue), + "Reason": Equal("Running"), + "Message": Equal("Machine is running"), + "LastTransitionTime": Not(BeNil()), + }))), + )) + By("inspecting the machine to be terminating") _, iriMachine = GetSingleMapEntry(srv.Machines) iriMachine = &testingmachine.FakeMachine{Machine: proto.Clone(iriMachine.Machine).(*iri.Machine)} @@ -489,6 +523,17 @@ var _ = Describe("MachineController", func() { iriMachine.Status.State = iri.MachineState_MACHINE_TERMINATING srv.SetMachines([]*testingmachine.FakeMachine{iriMachine}) Eventually(Object(machine)).Should(HaveField("Status.State", Equal(computev1alpha1.MachineStateTerminating))) + + By("waiting for the machine conditions to be updated") + Eventually(Object(machine)).Should(SatisfyAll( + HaveField("Status.Conditions", ContainElement(MatchFields(IgnoreExtras, Fields{ + "Type": Equal(computev1alpha1.MachineConditionType("Ready")), + "Status": Equal(corev1.ConditionFalse), + "Reason": Equal("Terminating"), + "Message": Equal("Machine is terminating or terminated"), + "LastTransitionTime": Not(BeNil()), + }))), + )) }) It("should create a machine and verify claimed volume reference with ephemeral volume", func(ctx SpecContext) { From b61f6ef9436dfa418efc553acffa6767ec78efe1 Mon Sep 17 00:00:00 2001 From: Rohit Kumar Date: Wed, 19 Nov 2025 18:04:45 +0530 Subject: [PATCH 2/2] address review --- config/volumepoollet-broker/broker-rbac/role.yaml | 1 + .../machinepoollet/controllers/machine_controller.go | 12 ++++++------ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/config/volumepoollet-broker/broker-rbac/role.yaml b/config/volumepoollet-broker/broker-rbac/role.yaml index 26d55bec4..de350fa52 100644 --- a/config/volumepoollet-broker/broker-rbac/role.yaml +++ b/config/volumepoollet-broker/broker-rbac/role.yaml @@ -28,6 +28,7 @@ rules: - storage.ironcore.dev resources: - volumes + - volumesnapshots verbs: - create - delete diff --git a/poollet/machinepoollet/controllers/machine_controller.go b/poollet/machinepoollet/controllers/machine_controller.go index cd8bb685f..f8786db84 100644 --- a/poollet/machinepoollet/controllers/machine_controller.go +++ b/poollet/machinepoollet/controllers/machine_controller.go @@ -521,16 +521,16 @@ func (r *MachineReconciler) computeMachineConditions( ) []computev1alpha1.MachineCondition { var conditions []computev1alpha1.MachineCondition - conditions = append(conditions, r.ComputeMachineReadyCondition(state, now)) + conditions = append(conditions, r.computeMachineReadyCondition(state, now)) if len(volumeStatuses) > 0 { - if c := r.ComputeVolumesReadyCondition(volumeStatuses, now); c.Type != "" { + if c := r.computeVolumesReadyCondition(volumeStatuses, now); c.Type != "" { conditions = append(conditions, c) } } if len(nicStatuses) > 0 { - if c := r.ComputeNetworkInterfacesReadyCondition(nicStatuses, now); c.Type != "" { + if c := r.computeNetworkInterfacesReadyCondition(nicStatuses, now); c.Type != "" { conditions = append(conditions, c) } } @@ -538,7 +538,7 @@ func (r *MachineReconciler) computeMachineConditions( return conditions } -func (r *MachineReconciler) ComputeMachineReadyCondition(state computev1alpha1.MachineState, now metav1.Time) computev1alpha1.MachineCondition { +func (r *MachineReconciler) computeMachineReadyCondition(state computev1alpha1.MachineState, now metav1.Time) computev1alpha1.MachineCondition { status, reason, message := corev1.ConditionFalse, "NotReady", "Machine is not ready" switch state { @@ -559,7 +559,7 @@ func (r *MachineReconciler) ComputeMachineReadyCondition(state computev1alpha1.M } } -func (r *MachineReconciler) ComputeVolumesReadyCondition(volumeStatuses []computev1alpha1.VolumeStatus, now metav1.Time) computev1alpha1.MachineCondition { +func (r *MachineReconciler) computeVolumesReadyCondition(volumeStatuses []computev1alpha1.VolumeStatus, now metav1.Time) computev1alpha1.MachineCondition { if len(volumeStatuses) == 0 { return computev1alpha1.MachineCondition{} } @@ -584,7 +584,7 @@ func (r *MachineReconciler) ComputeVolumesReadyCondition(volumeStatuses []comput } } -func (r *MachineReconciler) ComputeNetworkInterfacesReadyCondition(nicStatuses []computev1alpha1.NetworkInterfaceStatus, now metav1.Time) computev1alpha1.MachineCondition { +func (r *MachineReconciler) computeNetworkInterfacesReadyCondition(nicStatuses []computev1alpha1.NetworkInterfaceStatus, now metav1.Time) computev1alpha1.MachineCondition { if len(nicStatuses) == 0 { return computev1alpha1.MachineCondition{} }