diff --git a/Makefile b/Makefile index cd882e47b..e4d98f879 100644 --- a/Makefile +++ b/Makefile @@ -135,12 +135,12 @@ check: generate manifests add-license fmt lint test # Generate manifests, code, .PHONY: docs docs: gen-crd-api-reference-docs ## Run go generate to generate API reference documentation. - $(GEN_CRD_API_REFERENCE_DOCS) -api-dir ./api/common/v1alpha1 -config ./hack/api-reference/common-config.json -template-dir ./hack/api-reference/template -out-file ./docs/api-reference/common.md - $(GEN_CRD_API_REFERENCE_DOCS) -api-dir ./api/core/v1alpha1 -config ./hack/api-reference/core-config.json -template-dir ./hack/api-reference/template -out-file ./docs/api-reference/core.md - $(GEN_CRD_API_REFERENCE_DOCS) -api-dir ./api/compute/v1alpha1 -config ./hack/api-reference/compute-config.json -template-dir ./hack/api-reference/template -out-file ./docs/api-reference/compute.md - $(GEN_CRD_API_REFERENCE_DOCS) -api-dir ./api/storage/v1alpha1 -config ./hack/api-reference/storage-config.json -template-dir ./hack/api-reference/template -out-file ./docs/api-reference/storage.md - $(GEN_CRD_API_REFERENCE_DOCS) -api-dir ./api/networking/v1alpha1 -config ./hack/api-reference/networking-config.json -template-dir ./hack/api-reference/template -out-file ./docs/api-reference/networking.md - $(GEN_CRD_API_REFERENCE_DOCS) -api-dir ./api/ipam/v1alpha1 -config ./hack/api-reference/ipam-config.json -template-dir ./hack/api-reference/template -out-file ./docs/api-reference/ipam.md + $(GEN_CRD_API_REFERENCE_DOCS) -api-dir ./api/common/v1alpha1 -config ./hack/api-reference/config.json -template-dir ./hack/api-reference/template -out-file ./docs/api-reference/common.md + $(GEN_CRD_API_REFERENCE_DOCS) -api-dir ./api/core/v1alpha1 -config ./hack/api-reference/config.json -template-dir ./hack/api-reference/template -out-file ./docs/api-reference/core.md + $(GEN_CRD_API_REFERENCE_DOCS) -api-dir ./api/storage/v1alpha1 -config ./hack/api-reference/config.json -template-dir ./hack/api-reference/template -out-file ./docs/api-reference/storage.md + $(GEN_CRD_API_REFERENCE_DOCS) -api-dir ./api/networking/v1alpha1 -config ./hack/api-reference/config.json -template-dir ./hack/api-reference/template -out-file ./docs/api-reference/networking.md + $(GEN_CRD_API_REFERENCE_DOCS) -api-dir ./api/ipam/v1alpha1 -config ./hack/api-reference/config.json -template-dir ./hack/api-reference/template -out-file ./docs/api-reference/ipam.md + $(GEN_CRD_API_REFERENCE_DOCS) -api-dir ./api/compute/v1alpha1 -config ./hack/api-reference/config.json -template-dir ./hack/api-reference/template -out-file ./docs/api-reference/compute.md .PHONY: start-docs start-docs: ## Start the local mkdocs based development environment. diff --git a/api/core/v1alpha1/types.go b/api/core/v1alpha1/types.go new file mode 100644 index 000000000..d0648f0b4 --- /dev/null +++ b/api/core/v1alpha1/types.go @@ -0,0 +1,25 @@ +// Copyright 2023 OnMetal authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package v1alpha1 + +import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + +// ObjectSelector specifies how to select objects of a certain kind. +type ObjectSelector struct { + // Kind is the kind of object to select. + Kind string `json:"kind"` + // LabelSelector is the label selector to select objects of the specified Kind by. + metav1.LabelSelector `json:",inline"` +} diff --git a/api/core/v1alpha1/zz_generated.deepcopy.go b/api/core/v1alpha1/zz_generated.deepcopy.go index 41f0f6c25..ed840dc78 100644 --- a/api/core/v1alpha1/zz_generated.deepcopy.go +++ b/api/core/v1alpha1/zz_generated.deepcopy.go @@ -24,6 +24,23 @@ import ( runtime "k8s.io/apimachinery/pkg/runtime" ) +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ObjectSelector) DeepCopyInto(out *ObjectSelector) { + *out = *in + in.LabelSelector.DeepCopyInto(&out.LabelSelector) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectSelector. +func (in *ObjectSelector) DeepCopy() *ObjectSelector { + if in == nil { + return nil + } + out := new(ObjectSelector) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in ResourceList) DeepCopyInto(out *ResourceList) { { diff --git a/api/networking/v1alpha1/networkpolicy_type.go b/api/networking/v1alpha1/networkpolicy_type.go new file mode 100644 index 000000000..5c9bfb669 --- /dev/null +++ b/api/networking/v1alpha1/networkpolicy_type.go @@ -0,0 +1,151 @@ +// Copyright 2023 OnMetal authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package v1alpha1 + +import ( + commonv1alpha1 "github.com/onmetal/onmetal-api/api/common/v1alpha1" + corev1alpha1 "github.com/onmetal/onmetal-api/api/core/v1alpha1" + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// NetworkPolicySpec defines the desired state of NetworkPolicy. +type NetworkPolicySpec struct { + // NetworkRef is the network to regulate using this policy. + NetworkRef corev1.LocalObjectReference `json:"networkRef"` + // NetworkInterfaceSelector selects the network interfaces that are subject to this policy. + NetworkInterfaceSelector metav1.LabelSelector `json:"networkInterfaceSelector"` + // Ingress specifies rules for ingress traffic. + Ingress []NetworkPolicyIngressRule `json:"ingress,omitempty"` + // Egress specifies rules for egress traffic. + Egress []NetworkPolicyEgressRule `json:"egress,omitempty"` + // PolicyTypes specifies the types of policies this network policy contains. + PolicyTypes []PolicyType `json:"policyTypes,omitempty"` +} + +// NetworkPolicyPort describes a port to allow traffic on +type NetworkPolicyPort struct { + // Protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this + // field defaults to TCP. + Protocol *corev1.Protocol `json:"protocol,omitempty"` + + // The port on the given protocol. If this field is not provided, this matches + // all port names and numbers. + // If present, only traffic on the specified protocol AND port will be matched. + Port int32 `json:"port,omitempty"` + + // EndPort indicates that the range of ports from Port to EndPort, inclusive, + // should be allowed by the policy. This field cannot be defined if the port field + // is not defined. The endPort must be equal or greater than port. + EndPort *int32 `json:"endPort,omitempty" protobuf:"bytes,3,opt,name=endPort"` +} + +// IPBlock specifies an ip block with optional exceptions. +type IPBlock struct { + // CIDR is a string representing the ip block. + CIDR commonv1alpha1.IPPrefix `json:"cidr"` + // Except is a slice of CIDRs that should not be included within the specified CIDR. + // Values will be rejected if they are outside CIDR. + Except []commonv1alpha1.IPPrefix `json:"except,omitempty"` +} + +// NetworkPolicyPeer describes a peer to allow traffic to / from. +type NetworkPolicyPeer struct { + // ObjectSelector selects peers with the given kind matching the label selector. + // Exclusive with other peer specifiers. + ObjectSelector *corev1alpha1.ObjectSelector `json:"objectSelector,omitempty"` + // IPBlock specifies the ip block from or to which network traffic may come. + IPBlock *IPBlock `json:"ipBlock,omitempty"` +} + +// NetworkPolicyIngressRule describes a rule to regulate ingress traffic with. +type NetworkPolicyIngressRule struct { + // Ports specifies the list of ports which should be made accessible for + // this rule. Each item in this list is combined using a logical OR. Empty matches all ports. + // As soon as a single item is present, only these ports are allowed. + Ports []NetworkPolicyPort `json:"ports,omitempty"` + // From specifies the list of sources which should be able to send traffic to the + // selected network interfaces. Fields are combined using a logical OR. Empty matches all sources. + // As soon as a single item is present, only these peers are allowed. + From []NetworkPolicyPeer `json:"from,omitempty"` +} + +// NetworkPolicyEgressRule describes a rule to regulate egress traffic with. +type NetworkPolicyEgressRule struct { + // Ports specifies the list of destination ports that can be called with + // this rule. Each item in this list is combined using a logical OR. Empty matches all ports. + // As soon as a single item is present, only these ports are allowed. + Ports []NetworkPolicyPort `json:"ports,omitempty"` + // To specifies the list of destinations which the selected network interfaces should be + // able to send traffic to. Fields are combined using a logical OR. Empty matches all destinations. + // As soon as a single item is present, only these peers are allowed. + To []NetworkPolicyPeer `json:"to,omitempty"` +} + +// PolicyType is a type of policy. +type PolicyType string + +const ( + // PolicyTypeIngress is a policy that describes ingress traffic. + PolicyTypeIngress PolicyType = "Ingress" + // PolicyTypeEgress is a policy that describes egress traffic. + PolicyTypeEgress PolicyType = "Egress" +) + +// NetworkPolicyStatus defines the observed state of NetworkPolicy. +type NetworkPolicyStatus struct { + // Conditions are various conditions of the NetworkPolicy. + Conditions []NetworkPolicyCondition `json:"conditions,omitempty"` +} + +// NetworkPolicyConditionType is a type a NetworkPolicyCondition can have. +type NetworkPolicyConditionType string + +// NetworkPolicyCondition is one of the conditions of a network policy. +type NetworkPolicyCondition struct { + // Type is the type of the condition. + Type NetworkPolicyConditionType `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"` + // ObservedGeneration represents the .metadata.generation that the condition was set based upon. + ObservedGeneration int64 `json:"observedGeneration,omitempty"` + // LastTransitionTime is the last time the status of a condition has transitioned from one state to another. + LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty"` +} + +// +genclient +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// NetworkPolicy is the Schema for the networkpolicies API +type NetworkPolicy struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + + Spec NetworkPolicySpec `json:"spec,omitempty"` + Status NetworkPolicyStatus `json:"status,omitempty"` +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// NetworkPolicyList contains a list of NetworkPolicy. +type NetworkPolicyList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []NetworkPolicy `json:"items"` +} diff --git a/api/networking/v1alpha1/register.go b/api/networking/v1alpha1/register.go index 27c4295d9..6ff4c0b16 100644 --- a/api/networking/v1alpha1/register.go +++ b/api/networking/v1alpha1/register.go @@ -46,6 +46,8 @@ func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &Network{}, &NetworkList{}, + &NetworkPolicy{}, + &NetworkPolicyList{}, &NetworkInterface{}, &NetworkInterfaceList{}, &VirtualIP{}, diff --git a/api/networking/v1alpha1/zz_generated.deepcopy.go b/api/networking/v1alpha1/zz_generated.deepcopy.go index 40e574329..86d16ae0f 100644 --- a/api/networking/v1alpha1/zz_generated.deepcopy.go +++ b/api/networking/v1alpha1/zz_generated.deepcopy.go @@ -22,6 +22,7 @@ package v1alpha1 import ( commonv1alpha1 "github.com/onmetal/onmetal-api/api/common/v1alpha1" + corev1alpha1 "github.com/onmetal/onmetal-api/api/core/v1alpha1" ipamv1alpha1 "github.com/onmetal/onmetal-api/api/ipam/v1alpha1" corev1 "k8s.io/api/core/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -239,6 +240,30 @@ func (in *EphemeralVirtualIPSource) DeepCopy() *EphemeralVirtualIPSource { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IPBlock) DeepCopyInto(out *IPBlock) { + *out = *in + in.CIDR.DeepCopyInto(&out.CIDR) + if in.Except != nil { + in, out := &in.Except, &out.Except + *out = make([]commonv1alpha1.IPPrefix, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPBlock. +func (in *IPBlock) DeepCopy() *IPBlock { + if in == nil { + return nil + } + out := new(IPBlock) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *IPSource) DeepCopyInto(out *IPSource) { *out = *in @@ -1002,6 +1027,256 @@ func (in *NetworkPeeringStatus) DeepCopy() *NetworkPeeringStatus { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NetworkPolicy) DeepCopyInto(out *NetworkPolicy) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicy. +func (in *NetworkPolicy) DeepCopy() *NetworkPolicy { + if in == nil { + return nil + } + out := new(NetworkPolicy) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *NetworkPolicy) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NetworkPolicyCondition) DeepCopyInto(out *NetworkPolicyCondition) { + *out = *in + in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicyCondition. +func (in *NetworkPolicyCondition) DeepCopy() *NetworkPolicyCondition { + if in == nil { + return nil + } + out := new(NetworkPolicyCondition) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NetworkPolicyEgressRule) DeepCopyInto(out *NetworkPolicyEgressRule) { + *out = *in + if in.Ports != nil { + in, out := &in.Ports, &out.Ports + *out = make([]NetworkPolicyPort, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.To != nil { + in, out := &in.To, &out.To + *out = make([]NetworkPolicyPeer, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicyEgressRule. +func (in *NetworkPolicyEgressRule) DeepCopy() *NetworkPolicyEgressRule { + if in == nil { + return nil + } + out := new(NetworkPolicyEgressRule) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NetworkPolicyIngressRule) DeepCopyInto(out *NetworkPolicyIngressRule) { + *out = *in + if in.Ports != nil { + in, out := &in.Ports, &out.Ports + *out = make([]NetworkPolicyPort, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.From != nil { + in, out := &in.From, &out.From + *out = make([]NetworkPolicyPeer, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicyIngressRule. +func (in *NetworkPolicyIngressRule) DeepCopy() *NetworkPolicyIngressRule { + if in == nil { + return nil + } + out := new(NetworkPolicyIngressRule) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NetworkPolicyList) DeepCopyInto(out *NetworkPolicyList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]NetworkPolicy, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicyList. +func (in *NetworkPolicyList) DeepCopy() *NetworkPolicyList { + if in == nil { + return nil + } + out := new(NetworkPolicyList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *NetworkPolicyList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NetworkPolicyPeer) DeepCopyInto(out *NetworkPolicyPeer) { + *out = *in + if in.ObjectSelector != nil { + in, out := &in.ObjectSelector, &out.ObjectSelector + *out = new(corev1alpha1.ObjectSelector) + (*in).DeepCopyInto(*out) + } + if in.IPBlock != nil { + in, out := &in.IPBlock, &out.IPBlock + *out = new(IPBlock) + (*in).DeepCopyInto(*out) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicyPeer. +func (in *NetworkPolicyPeer) DeepCopy() *NetworkPolicyPeer { + if in == nil { + return nil + } + out := new(NetworkPolicyPeer) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NetworkPolicyPort) DeepCopyInto(out *NetworkPolicyPort) { + *out = *in + if in.Protocol != nil { + in, out := &in.Protocol, &out.Protocol + *out = new(corev1.Protocol) + **out = **in + } + if in.EndPort != nil { + in, out := &in.EndPort, &out.EndPort + *out = new(int32) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicyPort. +func (in *NetworkPolicyPort) DeepCopy() *NetworkPolicyPort { + if in == nil { + return nil + } + out := new(NetworkPolicyPort) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NetworkPolicySpec) DeepCopyInto(out *NetworkPolicySpec) { + *out = *in + out.NetworkRef = in.NetworkRef + in.NetworkInterfaceSelector.DeepCopyInto(&out.NetworkInterfaceSelector) + if in.Ingress != nil { + in, out := &in.Ingress, &out.Ingress + *out = make([]NetworkPolicyIngressRule, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Egress != nil { + in, out := &in.Egress, &out.Egress + *out = make([]NetworkPolicyEgressRule, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.PolicyTypes != nil { + in, out := &in.PolicyTypes, &out.PolicyTypes + *out = make([]PolicyType, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicySpec. +func (in *NetworkPolicySpec) DeepCopy() *NetworkPolicySpec { + if in == nil { + return nil + } + out := new(NetworkPolicySpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NetworkPolicyStatus) DeepCopyInto(out *NetworkPolicyStatus) { + *out = *in + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]NetworkPolicyCondition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicyStatus. +func (in *NetworkPolicyStatus) DeepCopy() *NetworkPolicyStatus { + if in == nil { + return nil + } + out := new(NetworkPolicyStatus) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *NetworkSpec) DeepCopyInto(out *NetworkSpec) { *out = *in diff --git a/client-go/applyconfigurations/core/v1alpha1/objectselector.go b/client-go/applyconfigurations/core/v1alpha1/objectselector.go new file mode 100644 index 000000000..88e3a17a9 --- /dev/null +++ b/client-go/applyconfigurations/core/v1alpha1/objectselector.go @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2022 by the OnMetal authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + v1 "github.com/onmetal/onmetal-api/client-go/applyconfigurations/meta/v1" +) + +// ObjectSelectorApplyConfiguration represents an declarative configuration of the ObjectSelector type for use +// with apply. +type ObjectSelectorApplyConfiguration struct { + Kind *string `json:"kind,omitempty"` + v1.LabelSelectorApplyConfiguration `json:",inline"` +} + +// ObjectSelectorApplyConfiguration constructs an declarative configuration of the ObjectSelector type for use with +// apply. +func ObjectSelector() *ObjectSelectorApplyConfiguration { + return &ObjectSelectorApplyConfiguration{} +} + +// WithKind sets the Kind 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 Kind field is set to the value of the last call. +func (b *ObjectSelectorApplyConfiguration) WithKind(value string) *ObjectSelectorApplyConfiguration { + b.Kind = &value + return b +} + +// WithMatchLabels puts the entries into the MatchLabels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the MatchLabels field, +// overwriting an existing map entries in MatchLabels field with the same key. +func (b *ObjectSelectorApplyConfiguration) WithMatchLabels(entries map[string]string) *ObjectSelectorApplyConfiguration { + if b.MatchLabels == nil && len(entries) > 0 { + b.MatchLabels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.MatchLabels[k] = v + } + return b +} + +// WithMatchExpressions adds the given value to the MatchExpressions 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 MatchExpressions field. +func (b *ObjectSelectorApplyConfiguration) WithMatchExpressions(values ...*v1.LabelSelectorRequirementApplyConfiguration) *ObjectSelectorApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithMatchExpressions") + } + b.MatchExpressions = append(b.MatchExpressions, *values[i]) + } + return b +} diff --git a/client-go/applyconfigurations/internal/internal.go b/client-go/applyconfigurations/internal/internal.go index 6461e053e..a58a78263 100644 --- a/client-go/applyconfigurations/internal/internal.go +++ b/client-go/applyconfigurations/internal/internal.go @@ -461,6 +461,24 @@ var schemaYAML = typed.YAMLObject(`types: - name: state type: scalar: string +- name: com.github.onmetal.onmetal-api.api.core.v1alpha1.ObjectSelector + map: + fields: + - name: kind + type: + scalar: string + default: "" + - name: matchExpressions + type: + list: + elementType: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement + elementRelationship: atomic + - name: matchLabels + type: + map: + elementType: + scalar: string - name: com.github.onmetal.onmetal-api.api.core.v1alpha1.ResourceQuota map: fields: @@ -724,6 +742,19 @@ var schemaYAML = typed.YAMLObject(`types: - name: virtualIPTemplate type: namedType: com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPTemplateSpec +- name: com.github.onmetal.onmetal-api.api.networking.v1alpha1.IPBlock + map: + fields: + - name: cidr + type: + namedType: com.github.onmetal.onmetal-api.api.common.v1alpha1.IPPrefix + default: {} + - name: except + type: + list: + elementType: + namedType: com.github.onmetal.onmetal-api.api.common.v1alpha1.IPPrefix + elementRelationship: atomic - name: com.github.onmetal.onmetal-api.api.networking.v1alpha1.IPSource map: fields: @@ -1103,6 +1134,142 @@ var schemaYAML = typed.YAMLObject(`types: - name: phase type: scalar: string +- name: com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicySpec + default: {} + - name: status + type: + namedType: com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyStatus + default: {} +- name: com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyCondition + map: + fields: + - name: lastTransitionTime + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + default: {} + - name: message + type: + scalar: string + default: "" + - name: observedGeneration + type: + scalar: numeric + - name: reason + type: + scalar: string + default: "" + - name: status + type: + scalar: string + default: "" + - name: type + type: + scalar: string + default: "" +- name: com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyEgressRule + map: + fields: + - name: ports + type: + list: + elementType: + namedType: com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyPort + elementRelationship: atomic + - name: to + type: + list: + elementType: + namedType: com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyPeer + elementRelationship: atomic +- name: com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyIngressRule + map: + fields: + - name: from + type: + list: + elementType: + namedType: com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyPeer + elementRelationship: atomic + - name: ports + type: + list: + elementType: + namedType: com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyPort + elementRelationship: atomic +- name: com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyPeer + map: + fields: + - name: ipBlock + type: + namedType: com.github.onmetal.onmetal-api.api.networking.v1alpha1.IPBlock + - name: objectSelector + type: + namedType: com.github.onmetal.onmetal-api.api.core.v1alpha1.ObjectSelector +- name: com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyPort + map: + fields: + - name: endPort + type: + scalar: numeric + - name: port + type: + scalar: numeric + - name: protocol + type: + scalar: string +- name: com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicySpec + map: + fields: + - name: egress + type: + list: + elementType: + namedType: com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyEgressRule + elementRelationship: atomic + - name: ingress + type: + list: + elementType: + namedType: com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyIngressRule + elementRelationship: atomic + - name: networkInterfaceSelector + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector + default: {} + - name: networkRef + type: + namedType: io.k8s.api.core.v1.LocalObjectReference + default: {} + - name: policyTypes + type: + list: + elementType: + scalar: string + elementRelationship: atomic +- name: com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyStatus + map: + fields: + - name: conditions + type: + list: + elementType: + namedType: com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyCondition + elementRelationship: atomic - name: com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkSpec map: fields: diff --git a/client-go/applyconfigurations/networking/v1alpha1/ipblock.go b/client-go/applyconfigurations/networking/v1alpha1/ipblock.go new file mode 100644 index 000000000..dc44b4926 --- /dev/null +++ b/client-go/applyconfigurations/networking/v1alpha1/ipblock.go @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2022 by the OnMetal authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + v1alpha1 "github.com/onmetal/onmetal-api/api/common/v1alpha1" +) + +// IPBlockApplyConfiguration represents an declarative configuration of the IPBlock type for use +// with apply. +type IPBlockApplyConfiguration struct { + CIDR *v1alpha1.IPPrefix `json:"cidr,omitempty"` + Except []v1alpha1.IPPrefix `json:"except,omitempty"` +} + +// IPBlockApplyConfiguration constructs an declarative configuration of the IPBlock type for use with +// apply. +func IPBlock() *IPBlockApplyConfiguration { + return &IPBlockApplyConfiguration{} +} + +// WithCIDR sets the CIDR 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 CIDR field is set to the value of the last call. +func (b *IPBlockApplyConfiguration) WithCIDR(value v1alpha1.IPPrefix) *IPBlockApplyConfiguration { + b.CIDR = &value + return b +} + +// WithExcept adds the given value to the Except 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 Except field. +func (b *IPBlockApplyConfiguration) WithExcept(values ...v1alpha1.IPPrefix) *IPBlockApplyConfiguration { + for i := range values { + b.Except = append(b.Except, values[i]) + } + return b +} diff --git a/client-go/applyconfigurations/networking/v1alpha1/networkpolicy.go b/client-go/applyconfigurations/networking/v1alpha1/networkpolicy.go new file mode 100644 index 000000000..187d1fe16 --- /dev/null +++ b/client-go/applyconfigurations/networking/v1alpha1/networkpolicy.go @@ -0,0 +1,257 @@ +/* + * Copyright (c) 2022 by the OnMetal authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + networkingv1alpha1 "github.com/onmetal/onmetal-api/api/networking/v1alpha1" + internal "github.com/onmetal/onmetal-api/client-go/applyconfigurations/internal" + v1 "github.com/onmetal/onmetal-api/client-go/applyconfigurations/meta/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" +) + +// NetworkPolicyApplyConfiguration represents an declarative configuration of the NetworkPolicy type for use +// with apply. +type NetworkPolicyApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *NetworkPolicySpecApplyConfiguration `json:"spec,omitempty"` + Status *NetworkPolicyStatusApplyConfiguration `json:"status,omitempty"` +} + +// NetworkPolicy constructs an declarative configuration of the NetworkPolicy type for use with +// apply. +func NetworkPolicy(name, namespace string) *NetworkPolicyApplyConfiguration { + b := &NetworkPolicyApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("NetworkPolicy") + b.WithAPIVersion("networking.api.onmetal.de/v1alpha1") + return b +} + +// ExtractNetworkPolicy extracts the applied configuration owned by fieldManager from +// networkPolicy. If no managedFields are found in networkPolicy for fieldManager, a +// NetworkPolicyApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. It is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// networkPolicy must be a unmodified NetworkPolicy API object that was retrieved from the Kubernetes API. +// ExtractNetworkPolicy provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractNetworkPolicy(networkPolicy *networkingv1alpha1.NetworkPolicy, fieldManager string) (*NetworkPolicyApplyConfiguration, error) { + return extractNetworkPolicy(networkPolicy, fieldManager, "") +} + +// ExtractNetworkPolicyStatus is the same as ExtractNetworkPolicy except +// that it extracts the status subresource applied configuration. +// Experimental! +func ExtractNetworkPolicyStatus(networkPolicy *networkingv1alpha1.NetworkPolicy, fieldManager string) (*NetworkPolicyApplyConfiguration, error) { + return extractNetworkPolicy(networkPolicy, fieldManager, "status") +} + +func extractNetworkPolicy(networkPolicy *networkingv1alpha1.NetworkPolicy, fieldManager string, subresource string) (*NetworkPolicyApplyConfiguration, error) { + b := &NetworkPolicyApplyConfiguration{} + err := managedfields.ExtractInto(networkPolicy, internal.Parser().Type("com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy"), fieldManager, b, subresource) + if err != nil { + return nil, err + } + b.WithName(networkPolicy.Name) + b.WithNamespace(networkPolicy.Namespace) + + b.WithKind("NetworkPolicy") + b.WithAPIVersion("networking.api.onmetal.de/v1alpha1") + return b, nil +} + +// WithKind sets the Kind 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 Kind field is set to the value of the last call. +func (b *NetworkPolicyApplyConfiguration) WithKind(value string) *NetworkPolicyApplyConfiguration { + b.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion 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 APIVersion field is set to the value of the last call. +func (b *NetworkPolicyApplyConfiguration) WithAPIVersion(value string) *NetworkPolicyApplyConfiguration { + b.APIVersion = &value + return b +} + +// WithName sets the Name 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 Name field is set to the value of the last call. +func (b *NetworkPolicyApplyConfiguration) WithName(value string) *NetworkPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Name = &value + return b +} + +// WithGenerateName sets the GenerateName 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 GenerateName field is set to the value of the last call. +func (b *NetworkPolicyApplyConfiguration) WithGenerateName(value string) *NetworkPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace 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 Namespace field is set to the value of the last call. +func (b *NetworkPolicyApplyConfiguration) WithNamespace(value string) *NetworkPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Namespace = &value + return b +} + +// WithUID sets the UID 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 UID field is set to the value of the last call. +func (b *NetworkPolicyApplyConfiguration) WithUID(value types.UID) *NetworkPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion 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 ResourceVersion field is set to the value of the last call. +func (b *NetworkPolicyApplyConfiguration) WithResourceVersion(value string) *NetworkPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation 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 Generation field is set to the value of the last call. +func (b *NetworkPolicyApplyConfiguration) WithGeneration(value int64) *NetworkPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp 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 CreationTimestamp field is set to the value of the last call. +func (b *NetworkPolicyApplyConfiguration) WithCreationTimestamp(value metav1.Time) *NetworkPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp 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 DeletionTimestamp field is set to the value of the last call. +func (b *NetworkPolicyApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *NetworkPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds 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 DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *NetworkPolicyApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *NetworkPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *NetworkPolicyApplyConfiguration) WithLabels(entries map[string]string) *NetworkPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Labels == nil && len(entries) > 0 { + b.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *NetworkPolicyApplyConfiguration) WithAnnotations(entries map[string]string) *NetworkPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.Annotations == nil && len(entries) > 0 { + b.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences 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 OwnerReferences field. +func (b *NetworkPolicyApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *NetworkPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.OwnerReferences = append(b.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers 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 Finalizers field. +func (b *NetworkPolicyApplyConfiguration) WithFinalizers(values ...string) *NetworkPolicyApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.Finalizers = append(b.Finalizers, values[i]) + } + return b +} + +func (b *NetworkPolicyApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec 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 Spec field is set to the value of the last call. +func (b *NetworkPolicyApplyConfiguration) WithSpec(value *NetworkPolicySpecApplyConfiguration) *NetworkPolicyApplyConfiguration { + b.Spec = 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 *NetworkPolicyApplyConfiguration) WithStatus(value *NetworkPolicyStatusApplyConfiguration) *NetworkPolicyApplyConfiguration { + b.Status = value + return b +} diff --git a/client-go/applyconfigurations/networking/v1alpha1/networkpolicycondition.go b/client-go/applyconfigurations/networking/v1alpha1/networkpolicycondition.go new file mode 100644 index 000000000..7f42374d2 --- /dev/null +++ b/client-go/applyconfigurations/networking/v1alpha1/networkpolicycondition.go @@ -0,0 +1,89 @@ +/* + * Copyright (c) 2022 by the OnMetal authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + v1alpha1 "github.com/onmetal/onmetal-api/api/networking/v1alpha1" + v1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// NetworkPolicyConditionApplyConfiguration represents an declarative configuration of the NetworkPolicyCondition type for use +// with apply. +type NetworkPolicyConditionApplyConfiguration struct { + Type *v1alpha1.NetworkPolicyConditionType `json:"type,omitempty"` + Status *v1.ConditionStatus `json:"status,omitempty"` + Reason *string `json:"reason,omitempty"` + Message *string `json:"message,omitempty"` + ObservedGeneration *int64 `json:"observedGeneration,omitempty"` + LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty"` +} + +// NetworkPolicyConditionApplyConfiguration constructs an declarative configuration of the NetworkPolicyCondition type for use with +// apply. +func NetworkPolicyCondition() *NetworkPolicyConditionApplyConfiguration { + return &NetworkPolicyConditionApplyConfiguration{} +} + +// 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 *NetworkPolicyConditionApplyConfiguration) WithType(value v1alpha1.NetworkPolicyConditionType) *NetworkPolicyConditionApplyConfiguration { + 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 *NetworkPolicyConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *NetworkPolicyConditionApplyConfiguration { + 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 *NetworkPolicyConditionApplyConfiguration) WithReason(value string) *NetworkPolicyConditionApplyConfiguration { + 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 *NetworkPolicyConditionApplyConfiguration) WithMessage(value string) *NetworkPolicyConditionApplyConfiguration { + b.Message = &value + return b +} + +// WithObservedGeneration sets the ObservedGeneration 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 ObservedGeneration field is set to the value of the last call. +func (b *NetworkPolicyConditionApplyConfiguration) WithObservedGeneration(value int64) *NetworkPolicyConditionApplyConfiguration { + b.ObservedGeneration = &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 *NetworkPolicyConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *NetworkPolicyConditionApplyConfiguration { + b.LastTransitionTime = &value + return b +} diff --git a/client-go/applyconfigurations/networking/v1alpha1/networkpolicyegressrule.go b/client-go/applyconfigurations/networking/v1alpha1/networkpolicyegressrule.go new file mode 100644 index 000000000..0d18d2e9e --- /dev/null +++ b/client-go/applyconfigurations/networking/v1alpha1/networkpolicyegressrule.go @@ -0,0 +1,57 @@ +/* + * Copyright (c) 2022 by the OnMetal authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +// NetworkPolicyEgressRuleApplyConfiguration represents an declarative configuration of the NetworkPolicyEgressRule type for use +// with apply. +type NetworkPolicyEgressRuleApplyConfiguration struct { + Ports []NetworkPolicyPortApplyConfiguration `json:"ports,omitempty"` + To []NetworkPolicyPeerApplyConfiguration `json:"to,omitempty"` +} + +// NetworkPolicyEgressRuleApplyConfiguration constructs an declarative configuration of the NetworkPolicyEgressRule type for use with +// apply. +func NetworkPolicyEgressRule() *NetworkPolicyEgressRuleApplyConfiguration { + return &NetworkPolicyEgressRuleApplyConfiguration{} +} + +// WithPorts adds the given value to the Ports 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 Ports field. +func (b *NetworkPolicyEgressRuleApplyConfiguration) WithPorts(values ...*NetworkPolicyPortApplyConfiguration) *NetworkPolicyEgressRuleApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithPorts") + } + b.Ports = append(b.Ports, *values[i]) + } + return b +} + +// WithTo adds the given value to the To 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 To field. +func (b *NetworkPolicyEgressRuleApplyConfiguration) WithTo(values ...*NetworkPolicyPeerApplyConfiguration) *NetworkPolicyEgressRuleApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithTo") + } + b.To = append(b.To, *values[i]) + } + return b +} diff --git a/client-go/applyconfigurations/networking/v1alpha1/networkpolicyingressrule.go b/client-go/applyconfigurations/networking/v1alpha1/networkpolicyingressrule.go new file mode 100644 index 000000000..485587d23 --- /dev/null +++ b/client-go/applyconfigurations/networking/v1alpha1/networkpolicyingressrule.go @@ -0,0 +1,57 @@ +/* + * Copyright (c) 2022 by the OnMetal authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +// NetworkPolicyIngressRuleApplyConfiguration represents an declarative configuration of the NetworkPolicyIngressRule type for use +// with apply. +type NetworkPolicyIngressRuleApplyConfiguration struct { + Ports []NetworkPolicyPortApplyConfiguration `json:"ports,omitempty"` + From []NetworkPolicyPeerApplyConfiguration `json:"from,omitempty"` +} + +// NetworkPolicyIngressRuleApplyConfiguration constructs an declarative configuration of the NetworkPolicyIngressRule type for use with +// apply. +func NetworkPolicyIngressRule() *NetworkPolicyIngressRuleApplyConfiguration { + return &NetworkPolicyIngressRuleApplyConfiguration{} +} + +// WithPorts adds the given value to the Ports 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 Ports field. +func (b *NetworkPolicyIngressRuleApplyConfiguration) WithPorts(values ...*NetworkPolicyPortApplyConfiguration) *NetworkPolicyIngressRuleApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithPorts") + } + b.Ports = append(b.Ports, *values[i]) + } + return b +} + +// WithFrom adds the given value to the From 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 From field. +func (b *NetworkPolicyIngressRuleApplyConfiguration) WithFrom(values ...*NetworkPolicyPeerApplyConfiguration) *NetworkPolicyIngressRuleApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithFrom") + } + b.From = append(b.From, *values[i]) + } + return b +} diff --git a/client-go/applyconfigurations/networking/v1alpha1/networkpolicypeer.go b/client-go/applyconfigurations/networking/v1alpha1/networkpolicypeer.go new file mode 100644 index 000000000..5e85ec859 --- /dev/null +++ b/client-go/applyconfigurations/networking/v1alpha1/networkpolicypeer.go @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2022 by the OnMetal authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + v1alpha1 "github.com/onmetal/onmetal-api/client-go/applyconfigurations/core/v1alpha1" +) + +// NetworkPolicyPeerApplyConfiguration represents an declarative configuration of the NetworkPolicyPeer type for use +// with apply. +type NetworkPolicyPeerApplyConfiguration struct { + ObjectSelector *v1alpha1.ObjectSelectorApplyConfiguration `json:"objectSelector,omitempty"` + IPBlock *IPBlockApplyConfiguration `json:"ipBlock,omitempty"` +} + +// NetworkPolicyPeerApplyConfiguration constructs an declarative configuration of the NetworkPolicyPeer type for use with +// apply. +func NetworkPolicyPeer() *NetworkPolicyPeerApplyConfiguration { + return &NetworkPolicyPeerApplyConfiguration{} +} + +// WithObjectSelector sets the ObjectSelector 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 ObjectSelector field is set to the value of the last call. +func (b *NetworkPolicyPeerApplyConfiguration) WithObjectSelector(value *v1alpha1.ObjectSelectorApplyConfiguration) *NetworkPolicyPeerApplyConfiguration { + b.ObjectSelector = value + return b +} + +// WithIPBlock sets the IPBlock 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 IPBlock field is set to the value of the last call. +func (b *NetworkPolicyPeerApplyConfiguration) WithIPBlock(value *IPBlockApplyConfiguration) *NetworkPolicyPeerApplyConfiguration { + b.IPBlock = value + return b +} diff --git a/client-go/applyconfigurations/networking/v1alpha1/networkpolicyport.go b/client-go/applyconfigurations/networking/v1alpha1/networkpolicyport.go new file mode 100644 index 000000000..1d8ad9ebd --- /dev/null +++ b/client-go/applyconfigurations/networking/v1alpha1/networkpolicyport.go @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2022 by the OnMetal authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + v1 "k8s.io/api/core/v1" +) + +// NetworkPolicyPortApplyConfiguration represents an declarative configuration of the NetworkPolicyPort type for use +// with apply. +type NetworkPolicyPortApplyConfiguration struct { + Protocol *v1.Protocol `json:"protocol,omitempty"` + Port *int32 `json:"port,omitempty"` + EndPort *int32 `json:"endPort,omitempty"` +} + +// NetworkPolicyPortApplyConfiguration constructs an declarative configuration of the NetworkPolicyPort type for use with +// apply. +func NetworkPolicyPort() *NetworkPolicyPortApplyConfiguration { + return &NetworkPolicyPortApplyConfiguration{} +} + +// WithProtocol sets the Protocol 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 Protocol field is set to the value of the last call. +func (b *NetworkPolicyPortApplyConfiguration) WithProtocol(value v1.Protocol) *NetworkPolicyPortApplyConfiguration { + b.Protocol = &value + return b +} + +// WithPort sets the Port 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 Port field is set to the value of the last call. +func (b *NetworkPolicyPortApplyConfiguration) WithPort(value int32) *NetworkPolicyPortApplyConfiguration { + b.Port = &value + return b +} + +// WithEndPort sets the EndPort 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 EndPort field is set to the value of the last call. +func (b *NetworkPolicyPortApplyConfiguration) WithEndPort(value int32) *NetworkPolicyPortApplyConfiguration { + b.EndPort = &value + return b +} diff --git a/client-go/applyconfigurations/networking/v1alpha1/networkpolicyspec.go b/client-go/applyconfigurations/networking/v1alpha1/networkpolicyspec.go new file mode 100644 index 000000000..7275c351e --- /dev/null +++ b/client-go/applyconfigurations/networking/v1alpha1/networkpolicyspec.go @@ -0,0 +1,92 @@ +/* + * Copyright (c) 2022 by the OnMetal authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + networkingv1alpha1 "github.com/onmetal/onmetal-api/api/networking/v1alpha1" + metav1 "github.com/onmetal/onmetal-api/client-go/applyconfigurations/meta/v1" + v1 "k8s.io/api/core/v1" +) + +// NetworkPolicySpecApplyConfiguration represents an declarative configuration of the NetworkPolicySpec type for use +// with apply. +type NetworkPolicySpecApplyConfiguration struct { + NetworkRef *v1.LocalObjectReference `json:"networkRef,omitempty"` + NetworkInterfaceSelector *metav1.LabelSelectorApplyConfiguration `json:"networkInterfaceSelector,omitempty"` + Ingress []NetworkPolicyIngressRuleApplyConfiguration `json:"ingress,omitempty"` + Egress []NetworkPolicyEgressRuleApplyConfiguration `json:"egress,omitempty"` + PolicyTypes []networkingv1alpha1.PolicyType `json:"policyTypes,omitempty"` +} + +// NetworkPolicySpecApplyConfiguration constructs an declarative configuration of the NetworkPolicySpec type for use with +// apply. +func NetworkPolicySpec() *NetworkPolicySpecApplyConfiguration { + return &NetworkPolicySpecApplyConfiguration{} +} + +// WithNetworkRef sets the NetworkRef 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 NetworkRef field is set to the value of the last call. +func (b *NetworkPolicySpecApplyConfiguration) WithNetworkRef(value v1.LocalObjectReference) *NetworkPolicySpecApplyConfiguration { + b.NetworkRef = &value + return b +} + +// WithNetworkInterfaceSelector sets the NetworkInterfaceSelector 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 NetworkInterfaceSelector field is set to the value of the last call. +func (b *NetworkPolicySpecApplyConfiguration) WithNetworkInterfaceSelector(value *metav1.LabelSelectorApplyConfiguration) *NetworkPolicySpecApplyConfiguration { + b.NetworkInterfaceSelector = value + return b +} + +// WithIngress adds the given value to the Ingress 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 Ingress field. +func (b *NetworkPolicySpecApplyConfiguration) WithIngress(values ...*NetworkPolicyIngressRuleApplyConfiguration) *NetworkPolicySpecApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithIngress") + } + b.Ingress = append(b.Ingress, *values[i]) + } + return b +} + +// WithEgress adds the given value to the Egress 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 Egress field. +func (b *NetworkPolicySpecApplyConfiguration) WithEgress(values ...*NetworkPolicyEgressRuleApplyConfiguration) *NetworkPolicySpecApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithEgress") + } + b.Egress = append(b.Egress, *values[i]) + } + return b +} + +// WithPolicyTypes adds the given value to the PolicyTypes 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 PolicyTypes field. +func (b *NetworkPolicySpecApplyConfiguration) WithPolicyTypes(values ...networkingv1alpha1.PolicyType) *NetworkPolicySpecApplyConfiguration { + for i := range values { + b.PolicyTypes = append(b.PolicyTypes, values[i]) + } + return b +} diff --git a/client-go/applyconfigurations/networking/v1alpha1/networkpolicystatus.go b/client-go/applyconfigurations/networking/v1alpha1/networkpolicystatus.go new file mode 100644 index 000000000..0fe871715 --- /dev/null +++ b/client-go/applyconfigurations/networking/v1alpha1/networkpolicystatus.go @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2022 by the OnMetal authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +// NetworkPolicyStatusApplyConfiguration represents an declarative configuration of the NetworkPolicyStatus type for use +// with apply. +type NetworkPolicyStatusApplyConfiguration struct { + Conditions []NetworkPolicyConditionApplyConfiguration `json:"conditions,omitempty"` +} + +// NetworkPolicyStatusApplyConfiguration constructs an declarative configuration of the NetworkPolicyStatus type for use with +// apply. +func NetworkPolicyStatus() *NetworkPolicyStatusApplyConfiguration { + return &NetworkPolicyStatusApplyConfiguration{} +} + +// 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 *NetworkPolicyStatusApplyConfiguration) WithConditions(values ...*NetworkPolicyConditionApplyConfiguration) *NetworkPolicyStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithConditions") + } + b.Conditions = append(b.Conditions, *values[i]) + } + return b +} diff --git a/client-go/applyconfigurations/utils.go b/client-go/applyconfigurations/utils.go index c7aa93e64..5e03c58ed 100644 --- a/client-go/applyconfigurations/utils.go +++ b/client-go/applyconfigurations/utils.go @@ -96,6 +96,8 @@ func ForKind(kind schema.GroupVersionKind) interface{} { return &applyconfigurationscomputev1alpha1.VolumeStatusApplyConfiguration{} // Group=core.api.onmetal.de, Version=v1alpha1 + case corev1alpha1.SchemeGroupVersion.WithKind("ObjectSelector"): + return &applyconfigurationscorev1alpha1.ObjectSelectorApplyConfiguration{} case corev1alpha1.SchemeGroupVersion.WithKind("ResourceQuota"): return &applyconfigurationscorev1alpha1.ResourceQuotaApplyConfiguration{} case corev1alpha1.SchemeGroupVersion.WithKind("ResourceQuotaSpec"): @@ -150,6 +152,8 @@ func ForKind(kind schema.GroupVersionKind) interface{} { return &applyconfigurationsnetworkingv1alpha1.EphemeralPrefixSourceApplyConfiguration{} case networkingv1alpha1.SchemeGroupVersion.WithKind("EphemeralVirtualIPSource"): return &applyconfigurationsnetworkingv1alpha1.EphemeralVirtualIPSourceApplyConfiguration{} + case networkingv1alpha1.SchemeGroupVersion.WithKind("IPBlock"): + return &applyconfigurationsnetworkingv1alpha1.IPBlockApplyConfiguration{} case networkingv1alpha1.SchemeGroupVersion.WithKind("IPSource"): return &applyconfigurationsnetworkingv1alpha1.IPSourceApplyConfiguration{} case networkingv1alpha1.SchemeGroupVersion.WithKind("LoadBalancer"): @@ -192,6 +196,22 @@ func ForKind(kind schema.GroupVersionKind) interface{} { return &applyconfigurationsnetworkingv1alpha1.NetworkPeeringApplyConfiguration{} case networkingv1alpha1.SchemeGroupVersion.WithKind("NetworkPeeringStatus"): return &applyconfigurationsnetworkingv1alpha1.NetworkPeeringStatusApplyConfiguration{} + case networkingv1alpha1.SchemeGroupVersion.WithKind("NetworkPolicy"): + return &applyconfigurationsnetworkingv1alpha1.NetworkPolicyApplyConfiguration{} + case networkingv1alpha1.SchemeGroupVersion.WithKind("NetworkPolicyCondition"): + return &applyconfigurationsnetworkingv1alpha1.NetworkPolicyConditionApplyConfiguration{} + case networkingv1alpha1.SchemeGroupVersion.WithKind("NetworkPolicyEgressRule"): + return &applyconfigurationsnetworkingv1alpha1.NetworkPolicyEgressRuleApplyConfiguration{} + case networkingv1alpha1.SchemeGroupVersion.WithKind("NetworkPolicyIngressRule"): + return &applyconfigurationsnetworkingv1alpha1.NetworkPolicyIngressRuleApplyConfiguration{} + case networkingv1alpha1.SchemeGroupVersion.WithKind("NetworkPolicyPeer"): + return &applyconfigurationsnetworkingv1alpha1.NetworkPolicyPeerApplyConfiguration{} + case networkingv1alpha1.SchemeGroupVersion.WithKind("NetworkPolicyPort"): + return &applyconfigurationsnetworkingv1alpha1.NetworkPolicyPortApplyConfiguration{} + case networkingv1alpha1.SchemeGroupVersion.WithKind("NetworkPolicySpec"): + return &applyconfigurationsnetworkingv1alpha1.NetworkPolicySpecApplyConfiguration{} + case networkingv1alpha1.SchemeGroupVersion.WithKind("NetworkPolicyStatus"): + return &applyconfigurationsnetworkingv1alpha1.NetworkPolicyStatusApplyConfiguration{} case networkingv1alpha1.SchemeGroupVersion.WithKind("NetworkSpec"): return &applyconfigurationsnetworkingv1alpha1.NetworkSpecApplyConfiguration{} case networkingv1alpha1.SchemeGroupVersion.WithKind("NetworkStatus"): diff --git a/client-go/informers/generic.go b/client-go/informers/generic.go index 551894b4a..02bb08943 100644 --- a/client-go/informers/generic.go +++ b/client-go/informers/generic.go @@ -90,6 +90,8 @@ func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource return &genericInformer{resource: resource.GroupResource(), informer: f.Networking().V1alpha1().Networks().Informer()}, nil case networkingv1alpha1.SchemeGroupVersion.WithResource("networkinterfaces"): return &genericInformer{resource: resource.GroupResource(), informer: f.Networking().V1alpha1().NetworkInterfaces().Informer()}, nil + case networkingv1alpha1.SchemeGroupVersion.WithResource("networkpolicies"): + return &genericInformer{resource: resource.GroupResource(), informer: f.Networking().V1alpha1().NetworkPolicies().Informer()}, nil case networkingv1alpha1.SchemeGroupVersion.WithResource("virtualips"): return &genericInformer{resource: resource.GroupResource(), informer: f.Networking().V1alpha1().VirtualIPs().Informer()}, nil diff --git a/client-go/informers/networking/v1alpha1/interface.go b/client-go/informers/networking/v1alpha1/interface.go index 36286ee43..ea4984e0c 100644 --- a/client-go/informers/networking/v1alpha1/interface.go +++ b/client-go/informers/networking/v1alpha1/interface.go @@ -39,6 +39,8 @@ type Interface interface { Networks() NetworkInformer // NetworkInterfaces returns a NetworkInterfaceInformer. NetworkInterfaces() NetworkInterfaceInformer + // NetworkPolicies returns a NetworkPolicyInformer. + NetworkPolicies() NetworkPolicyInformer // VirtualIPs returns a VirtualIPInformer. VirtualIPs() VirtualIPInformer } @@ -94,6 +96,11 @@ func (v *version) NetworkInterfaces() NetworkInterfaceInformer { return &networkInterfaceInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } +// NetworkPolicies returns a NetworkPolicyInformer. +func (v *version) NetworkPolicies() NetworkPolicyInformer { + return &networkPolicyInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} +} + // VirtualIPs returns a VirtualIPInformer. func (v *version) VirtualIPs() VirtualIPInformer { return &virtualIPInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} diff --git a/client-go/informers/networking/v1alpha1/networkpolicy.go b/client-go/informers/networking/v1alpha1/networkpolicy.go new file mode 100644 index 000000000..91766f338 --- /dev/null +++ b/client-go/informers/networking/v1alpha1/networkpolicy.go @@ -0,0 +1,89 @@ +/* + * Copyright (c) 2022 by the OnMetal authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Code generated by informer-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + "context" + time "time" + + networkingv1alpha1 "github.com/onmetal/onmetal-api/api/networking/v1alpha1" + internalinterfaces "github.com/onmetal/onmetal-api/client-go/informers/internalinterfaces" + v1alpha1 "github.com/onmetal/onmetal-api/client-go/listers/networking/v1alpha1" + onmetalapi "github.com/onmetal/onmetal-api/client-go/onmetalapi" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + watch "k8s.io/apimachinery/pkg/watch" + cache "k8s.io/client-go/tools/cache" +) + +// NetworkPolicyInformer provides access to a shared informer and lister for +// NetworkPolicies. +type NetworkPolicyInformer interface { + Informer() cache.SharedIndexInformer + Lister() v1alpha1.NetworkPolicyLister +} + +type networkPolicyInformer struct { + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string +} + +// NewNetworkPolicyInformer constructs a new informer for NetworkPolicy type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewNetworkPolicyInformer(client onmetalapi.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredNetworkPolicyInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredNetworkPolicyInformer constructs a new informer for NetworkPolicy type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewFilteredNetworkPolicyInformer(client onmetalapi.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { + return cache.NewSharedIndexInformer( + &cache.ListWatch{ + ListFunc: func(options v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.NetworkingV1alpha1().NetworkPolicies(namespace).List(context.TODO(), options) + }, + WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.NetworkingV1alpha1().NetworkPolicies(namespace).Watch(context.TODO(), options) + }, + }, + &networkingv1alpha1.NetworkPolicy{}, + resyncPeriod, + indexers, + ) +} + +func (f *networkPolicyInformer) defaultInformer(client onmetalapi.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredNetworkPolicyInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) +} + +func (f *networkPolicyInformer) Informer() cache.SharedIndexInformer { + return f.factory.InformerFor(&networkingv1alpha1.NetworkPolicy{}, f.defaultInformer) +} + +func (f *networkPolicyInformer) Lister() v1alpha1.NetworkPolicyLister { + return v1alpha1.NewNetworkPolicyLister(f.Informer().GetIndexer()) +} diff --git a/client-go/listers/networking/v1alpha1/expansion_generated.go b/client-go/listers/networking/v1alpha1/expansion_generated.go index b52b8a1ac..58528dd7b 100644 --- a/client-go/listers/networking/v1alpha1/expansion_generated.go +++ b/client-go/listers/networking/v1alpha1/expansion_generated.go @@ -81,6 +81,14 @@ type NetworkInterfaceListerExpansion interface{} // NetworkInterfaceNamespaceLister. type NetworkInterfaceNamespaceListerExpansion interface{} +// NetworkPolicyListerExpansion allows custom methods to be added to +// NetworkPolicyLister. +type NetworkPolicyListerExpansion interface{} + +// NetworkPolicyNamespaceListerExpansion allows custom methods to be added to +// NetworkPolicyNamespaceLister. +type NetworkPolicyNamespaceListerExpansion interface{} + // VirtualIPListerExpansion allows custom methods to be added to // VirtualIPLister. type VirtualIPListerExpansion interface{} diff --git a/client-go/listers/networking/v1alpha1/networkpolicy.go b/client-go/listers/networking/v1alpha1/networkpolicy.go new file mode 100644 index 000000000..ef961d368 --- /dev/null +++ b/client-go/listers/networking/v1alpha1/networkpolicy.go @@ -0,0 +1,98 @@ +/* + * Copyright (c) 2022 by the OnMetal authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Code generated by lister-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + v1alpha1 "github.com/onmetal/onmetal-api/api/networking/v1alpha1" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" +) + +// NetworkPolicyLister helps list NetworkPolicies. +// All objects returned here must be treated as read-only. +type NetworkPolicyLister interface { + // List lists all NetworkPolicies in the indexer. + // Objects returned here must be treated as read-only. + List(selector labels.Selector) (ret []*v1alpha1.NetworkPolicy, err error) + // NetworkPolicies returns an object that can list and get NetworkPolicies. + NetworkPolicies(namespace string) NetworkPolicyNamespaceLister + NetworkPolicyListerExpansion +} + +// networkPolicyLister implements the NetworkPolicyLister interface. +type networkPolicyLister struct { + indexer cache.Indexer +} + +// NewNetworkPolicyLister returns a new NetworkPolicyLister. +func NewNetworkPolicyLister(indexer cache.Indexer) NetworkPolicyLister { + return &networkPolicyLister{indexer: indexer} +} + +// List lists all NetworkPolicies in the indexer. +func (s *networkPolicyLister) List(selector labels.Selector) (ret []*v1alpha1.NetworkPolicy, err error) { + err = cache.ListAll(s.indexer, selector, func(m interface{}) { + ret = append(ret, m.(*v1alpha1.NetworkPolicy)) + }) + return ret, err +} + +// NetworkPolicies returns an object that can list and get NetworkPolicies. +func (s *networkPolicyLister) NetworkPolicies(namespace string) NetworkPolicyNamespaceLister { + return networkPolicyNamespaceLister{indexer: s.indexer, namespace: namespace} +} + +// NetworkPolicyNamespaceLister helps list and get NetworkPolicies. +// All objects returned here must be treated as read-only. +type NetworkPolicyNamespaceLister interface { + // List lists all NetworkPolicies in the indexer for a given namespace. + // Objects returned here must be treated as read-only. + List(selector labels.Selector) (ret []*v1alpha1.NetworkPolicy, err error) + // Get retrieves the NetworkPolicy from the indexer for a given namespace and name. + // Objects returned here must be treated as read-only. + Get(name string) (*v1alpha1.NetworkPolicy, error) + NetworkPolicyNamespaceListerExpansion +} + +// networkPolicyNamespaceLister implements the NetworkPolicyNamespaceLister +// interface. +type networkPolicyNamespaceLister struct { + indexer cache.Indexer + namespace string +} + +// List lists all NetworkPolicies in the indexer for a given namespace. +func (s networkPolicyNamespaceLister) List(selector labels.Selector) (ret []*v1alpha1.NetworkPolicy, err error) { + err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { + ret = append(ret, m.(*v1alpha1.NetworkPolicy)) + }) + return ret, err +} + +// Get retrieves the NetworkPolicy from the indexer for a given namespace and name. +func (s networkPolicyNamespaceLister) Get(name string) (*v1alpha1.NetworkPolicy, error) { + obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(v1alpha1.Resource("networkpolicy"), name) + } + return obj.(*v1alpha1.NetworkPolicy), nil +} diff --git a/client-go/onmetalapi/typed/networking/v1alpha1/fake/fake_networking_client.go b/client-go/onmetalapi/typed/networking/v1alpha1/fake/fake_networking_client.go index a530b0108..cbfd78f88 100644 --- a/client-go/onmetalapi/typed/networking/v1alpha1/fake/fake_networking_client.go +++ b/client-go/onmetalapi/typed/networking/v1alpha1/fake/fake_networking_client.go @@ -59,6 +59,10 @@ func (c *FakeNetworkingV1alpha1) NetworkInterfaces(namespace string) v1alpha1.Ne return &FakeNetworkInterfaces{c, namespace} } +func (c *FakeNetworkingV1alpha1) NetworkPolicies(namespace string) v1alpha1.NetworkPolicyInterface { + return &FakeNetworkPolicies{c, namespace} +} + func (c *FakeNetworkingV1alpha1) VirtualIPs(namespace string) v1alpha1.VirtualIPInterface { return &FakeVirtualIPs{c, namespace} } diff --git a/client-go/onmetalapi/typed/networking/v1alpha1/fake/fake_networkpolicy.go b/client-go/onmetalapi/typed/networking/v1alpha1/fake/fake_networkpolicy.go new file mode 100644 index 000000000..e3d4516c5 --- /dev/null +++ b/client-go/onmetalapi/typed/networking/v1alpha1/fake/fake_networkpolicy.go @@ -0,0 +1,189 @@ +/* + * Copyright (c) 2022 by the OnMetal authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Code generated by client-gen. DO NOT EDIT. + +package fake + +import ( + "context" + json "encoding/json" + "fmt" + + v1alpha1 "github.com/onmetal/onmetal-api/api/networking/v1alpha1" + networkingv1alpha1 "github.com/onmetal/onmetal-api/client-go/applyconfigurations/networking/v1alpha1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + labels "k8s.io/apimachinery/pkg/labels" + schema "k8s.io/apimachinery/pkg/runtime/schema" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + testing "k8s.io/client-go/testing" +) + +// FakeNetworkPolicies implements NetworkPolicyInterface +type FakeNetworkPolicies struct { + Fake *FakeNetworkingV1alpha1 + ns string +} + +var networkpoliciesResource = schema.GroupVersionResource{Group: "networking.api.onmetal.de", Version: "v1alpha1", Resource: "networkpolicies"} + +var networkpoliciesKind = schema.GroupVersionKind{Group: "networking.api.onmetal.de", Version: "v1alpha1", Kind: "NetworkPolicy"} + +// Get takes name of the networkPolicy, and returns the corresponding networkPolicy object, and an error if there is any. +func (c *FakeNetworkPolicies) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.NetworkPolicy, err error) { + obj, err := c.Fake. + Invokes(testing.NewGetAction(networkpoliciesResource, c.ns, name), &v1alpha1.NetworkPolicy{}) + + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.NetworkPolicy), err +} + +// List takes label and field selectors, and returns the list of NetworkPolicies that match those selectors. +func (c *FakeNetworkPolicies) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.NetworkPolicyList, err error) { + obj, err := c.Fake. + Invokes(testing.NewListAction(networkpoliciesResource, networkpoliciesKind, c.ns, opts), &v1alpha1.NetworkPolicyList{}) + + if obj == nil { + return nil, err + } + + label, _, _ := testing.ExtractFromListOptions(opts) + if label == nil { + label = labels.Everything() + } + list := &v1alpha1.NetworkPolicyList{ListMeta: obj.(*v1alpha1.NetworkPolicyList).ListMeta} + for _, item := range obj.(*v1alpha1.NetworkPolicyList).Items { + if label.Matches(labels.Set(item.Labels)) { + list.Items = append(list.Items, item) + } + } + return list, err +} + +// Watch returns a watch.Interface that watches the requested networkPolicies. +func (c *FakeNetworkPolicies) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { + return c.Fake. + InvokesWatch(testing.NewWatchAction(networkpoliciesResource, c.ns, opts)) + +} + +// Create takes the representation of a networkPolicy and creates it. Returns the server's representation of the networkPolicy, and an error, if there is any. +func (c *FakeNetworkPolicies) Create(ctx context.Context, networkPolicy *v1alpha1.NetworkPolicy, opts v1.CreateOptions) (result *v1alpha1.NetworkPolicy, err error) { + obj, err := c.Fake. + Invokes(testing.NewCreateAction(networkpoliciesResource, c.ns, networkPolicy), &v1alpha1.NetworkPolicy{}) + + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.NetworkPolicy), err +} + +// Update takes the representation of a networkPolicy and updates it. Returns the server's representation of the networkPolicy, and an error, if there is any. +func (c *FakeNetworkPolicies) Update(ctx context.Context, networkPolicy *v1alpha1.NetworkPolicy, opts v1.UpdateOptions) (result *v1alpha1.NetworkPolicy, err error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateAction(networkpoliciesResource, c.ns, networkPolicy), &v1alpha1.NetworkPolicy{}) + + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.NetworkPolicy), err +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). +func (c *FakeNetworkPolicies) UpdateStatus(ctx context.Context, networkPolicy *v1alpha1.NetworkPolicy, opts v1.UpdateOptions) (*v1alpha1.NetworkPolicy, error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateSubresourceAction(networkpoliciesResource, "status", c.ns, networkPolicy), &v1alpha1.NetworkPolicy{}) + + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.NetworkPolicy), err +} + +// Delete takes name of the networkPolicy and deletes it. Returns an error if one occurs. +func (c *FakeNetworkPolicies) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { + _, err := c.Fake. + Invokes(testing.NewDeleteActionWithOptions(networkpoliciesResource, c.ns, name, opts), &v1alpha1.NetworkPolicy{}) + + return err +} + +// DeleteCollection deletes a collection of objects. +func (c *FakeNetworkPolicies) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { + action := testing.NewDeleteCollectionAction(networkpoliciesResource, c.ns, listOpts) + + _, err := c.Fake.Invokes(action, &v1alpha1.NetworkPolicyList{}) + return err +} + +// Patch applies the patch and returns the patched networkPolicy. +func (c *FakeNetworkPolicies) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.NetworkPolicy, err error) { + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(networkpoliciesResource, c.ns, name, pt, data, subresources...), &v1alpha1.NetworkPolicy{}) + + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.NetworkPolicy), err +} + +// Apply takes the given apply declarative configuration, applies it and returns the applied networkPolicy. +func (c *FakeNetworkPolicies) Apply(ctx context.Context, networkPolicy *networkingv1alpha1.NetworkPolicyApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.NetworkPolicy, err error) { + if networkPolicy == nil { + return nil, fmt.Errorf("networkPolicy provided to Apply must not be nil") + } + data, err := json.Marshal(networkPolicy) + if err != nil { + return nil, err + } + name := networkPolicy.Name + if name == nil { + return nil, fmt.Errorf("networkPolicy.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(networkpoliciesResource, c.ns, *name, types.ApplyPatchType, data), &v1alpha1.NetworkPolicy{}) + + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.NetworkPolicy), err +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *FakeNetworkPolicies) ApplyStatus(ctx context.Context, networkPolicy *networkingv1alpha1.NetworkPolicyApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.NetworkPolicy, err error) { + if networkPolicy == nil { + return nil, fmt.Errorf("networkPolicy provided to Apply must not be nil") + } + data, err := json.Marshal(networkPolicy) + if err != nil { + return nil, err + } + name := networkPolicy.Name + if name == nil { + return nil, fmt.Errorf("networkPolicy.Name must be provided to Apply") + } + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(networkpoliciesResource, c.ns, *name, types.ApplyPatchType, data, "status"), &v1alpha1.NetworkPolicy{}) + + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.NetworkPolicy), err +} diff --git a/client-go/onmetalapi/typed/networking/v1alpha1/generated_expansion.go b/client-go/onmetalapi/typed/networking/v1alpha1/generated_expansion.go index b3a701179..11966bc03 100644 --- a/client-go/onmetalapi/typed/networking/v1alpha1/generated_expansion.go +++ b/client-go/onmetalapi/typed/networking/v1alpha1/generated_expansion.go @@ -33,4 +33,6 @@ type NetworkExpansion interface{} type NetworkInterfaceExpansion interface{} +type NetworkPolicyExpansion interface{} + type VirtualIPExpansion interface{} diff --git a/client-go/onmetalapi/typed/networking/v1alpha1/networking_client.go b/client-go/onmetalapi/typed/networking/v1alpha1/networking_client.go index c7101356c..ccff26916 100644 --- a/client-go/onmetalapi/typed/networking/v1alpha1/networking_client.go +++ b/client-go/onmetalapi/typed/networking/v1alpha1/networking_client.go @@ -35,6 +35,7 @@ type NetworkingV1alpha1Interface interface { NATGatewayRoutingsGetter NetworksGetter NetworkInterfacesGetter + NetworkPoliciesGetter VirtualIPsGetter } @@ -75,6 +76,10 @@ func (c *NetworkingV1alpha1Client) NetworkInterfaces(namespace string) NetworkIn return newNetworkInterfaces(c, namespace) } +func (c *NetworkingV1alpha1Client) NetworkPolicies(namespace string) NetworkPolicyInterface { + return newNetworkPolicies(c, namespace) +} + func (c *NetworkingV1alpha1Client) VirtualIPs(namespace string) VirtualIPInterface { return newVirtualIPs(c, namespace) } diff --git a/client-go/onmetalapi/typed/networking/v1alpha1/networkpolicy.go b/client-go/onmetalapi/typed/networking/v1alpha1/networkpolicy.go new file mode 100644 index 000000000..101ace4d7 --- /dev/null +++ b/client-go/onmetalapi/typed/networking/v1alpha1/networkpolicy.go @@ -0,0 +1,255 @@ +/* + * Copyright (c) 2022 by the OnMetal authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Code generated by client-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + "context" + json "encoding/json" + "fmt" + "time" + + v1alpha1 "github.com/onmetal/onmetal-api/api/networking/v1alpha1" + networkingv1alpha1 "github.com/onmetal/onmetal-api/client-go/applyconfigurations/networking/v1alpha1" + scheme "github.com/onmetal/onmetal-api/client-go/onmetalapi/scheme" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + rest "k8s.io/client-go/rest" +) + +// NetworkPoliciesGetter has a method to return a NetworkPolicyInterface. +// A group's client should implement this interface. +type NetworkPoliciesGetter interface { + NetworkPolicies(namespace string) NetworkPolicyInterface +} + +// NetworkPolicyInterface has methods to work with NetworkPolicy resources. +type NetworkPolicyInterface interface { + Create(ctx context.Context, networkPolicy *v1alpha1.NetworkPolicy, opts v1.CreateOptions) (*v1alpha1.NetworkPolicy, error) + Update(ctx context.Context, networkPolicy *v1alpha1.NetworkPolicy, opts v1.UpdateOptions) (*v1alpha1.NetworkPolicy, error) + UpdateStatus(ctx context.Context, networkPolicy *v1alpha1.NetworkPolicy, opts v1.UpdateOptions) (*v1alpha1.NetworkPolicy, error) + Delete(ctx context.Context, name string, opts v1.DeleteOptions) error + DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error + Get(ctx context.Context, name string, opts v1.GetOptions) (*v1alpha1.NetworkPolicy, error) + List(ctx context.Context, opts v1.ListOptions) (*v1alpha1.NetworkPolicyList, error) + Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) + Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.NetworkPolicy, err error) + Apply(ctx context.Context, networkPolicy *networkingv1alpha1.NetworkPolicyApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.NetworkPolicy, err error) + ApplyStatus(ctx context.Context, networkPolicy *networkingv1alpha1.NetworkPolicyApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.NetworkPolicy, err error) + NetworkPolicyExpansion +} + +// networkPolicies implements NetworkPolicyInterface +type networkPolicies struct { + client rest.Interface + ns string +} + +// newNetworkPolicies returns a NetworkPolicies +func newNetworkPolicies(c *NetworkingV1alpha1Client, namespace string) *networkPolicies { + return &networkPolicies{ + client: c.RESTClient(), + ns: namespace, + } +} + +// Get takes name of the networkPolicy, and returns the corresponding networkPolicy object, and an error if there is any. +func (c *networkPolicies) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.NetworkPolicy, err error) { + result = &v1alpha1.NetworkPolicy{} + err = c.client.Get(). + Namespace(c.ns). + Resource("networkpolicies"). + Name(name). + VersionedParams(&options, scheme.ParameterCodec). + Do(ctx). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of NetworkPolicies that match those selectors. +func (c *networkPolicies) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.NetworkPolicyList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + result = &v1alpha1.NetworkPolicyList{} + err = c.client.Get(). + Namespace(c.ns). + Resource("networkpolicies"). + VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). + Do(ctx). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested networkPolicies. +func (c *networkPolicies) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + opts.Watch = true + return c.client.Get(). + Namespace(c.ns). + Resource("networkpolicies"). + VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). + Watch(ctx) +} + +// Create takes the representation of a networkPolicy and creates it. Returns the server's representation of the networkPolicy, and an error, if there is any. +func (c *networkPolicies) Create(ctx context.Context, networkPolicy *v1alpha1.NetworkPolicy, opts v1.CreateOptions) (result *v1alpha1.NetworkPolicy, err error) { + result = &v1alpha1.NetworkPolicy{} + err = c.client.Post(). + Namespace(c.ns). + Resource("networkpolicies"). + VersionedParams(&opts, scheme.ParameterCodec). + Body(networkPolicy). + Do(ctx). + Into(result) + return +} + +// Update takes the representation of a networkPolicy and updates it. Returns the server's representation of the networkPolicy, and an error, if there is any. +func (c *networkPolicies) Update(ctx context.Context, networkPolicy *v1alpha1.NetworkPolicy, opts v1.UpdateOptions) (result *v1alpha1.NetworkPolicy, err error) { + result = &v1alpha1.NetworkPolicy{} + err = c.client.Put(). + Namespace(c.ns). + Resource("networkpolicies"). + Name(networkPolicy.Name). + VersionedParams(&opts, scheme.ParameterCodec). + Body(networkPolicy). + Do(ctx). + Into(result) + return +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). +func (c *networkPolicies) UpdateStatus(ctx context.Context, networkPolicy *v1alpha1.NetworkPolicy, opts v1.UpdateOptions) (result *v1alpha1.NetworkPolicy, err error) { + result = &v1alpha1.NetworkPolicy{} + err = c.client.Put(). + Namespace(c.ns). + Resource("networkpolicies"). + Name(networkPolicy.Name). + SubResource("status"). + VersionedParams(&opts, scheme.ParameterCodec). + Body(networkPolicy). + Do(ctx). + Into(result) + return +} + +// Delete takes name of the networkPolicy and deletes it. Returns an error if one occurs. +func (c *networkPolicies) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { + return c.client.Delete(). + Namespace(c.ns). + Resource("networkpolicies"). + Name(name). + Body(&opts). + Do(ctx). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *networkPolicies) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { + var timeout time.Duration + if listOpts.TimeoutSeconds != nil { + timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second + } + return c.client.Delete(). + Namespace(c.ns). + Resource("networkpolicies"). + VersionedParams(&listOpts, scheme.ParameterCodec). + Timeout(timeout). + Body(&opts). + Do(ctx). + Error() +} + +// Patch applies the patch and returns the patched networkPolicy. +func (c *networkPolicies) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.NetworkPolicy, err error) { + result = &v1alpha1.NetworkPolicy{} + err = c.client.Patch(pt). + Namespace(c.ns). + Resource("networkpolicies"). + Name(name). + SubResource(subresources...). + VersionedParams(&opts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + +// Apply takes the given apply declarative configuration, applies it and returns the applied networkPolicy. +func (c *networkPolicies) Apply(ctx context.Context, networkPolicy *networkingv1alpha1.NetworkPolicyApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.NetworkPolicy, err error) { + if networkPolicy == nil { + return nil, fmt.Errorf("networkPolicy provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(networkPolicy) + if err != nil { + return nil, err + } + name := networkPolicy.Name + if name == nil { + return nil, fmt.Errorf("networkPolicy.Name must be provided to Apply") + } + result = &v1alpha1.NetworkPolicy{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("networkpolicies"). + Name(*name). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} + +// ApplyStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). +func (c *networkPolicies) ApplyStatus(ctx context.Context, networkPolicy *networkingv1alpha1.NetworkPolicyApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.NetworkPolicy, err error) { + if networkPolicy == nil { + return nil, fmt.Errorf("networkPolicy provided to Apply must not be nil") + } + patchOpts := opts.ToPatchOptions() + data, err := json.Marshal(networkPolicy) + if err != nil { + return nil, err + } + + name := networkPolicy.Name + if name == nil { + return nil, fmt.Errorf("networkPolicy.Name must be provided to Apply") + } + + result = &v1alpha1.NetworkPolicy{} + err = c.client.Patch(types.ApplyPatchType). + Namespace(c.ns). + Resource("networkpolicies"). + Name(*name). + SubResource("status"). + VersionedParams(&patchOpts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/client-go/openapi/api_violations.report b/client-go/openapi/api_violations.report index 77a1467b2..2f4562dfb 100644 --- a/client-go/openapi/api_violations.report +++ b/client-go/openapi/api_violations.report @@ -13,6 +13,7 @@ API rule violation: list_type_missing,github.com/onmetal/onmetal-api/api/core/v1 API rule violation: list_type_missing,github.com/onmetal/onmetal-api/api/core/v1alpha1,ResourceScopeSelectorRequirement,Values API rule violation: list_type_missing,github.com/onmetal/onmetal-api/api/ipam/v1alpha1,PrefixStatus,Used API rule violation: list_type_missing,github.com/onmetal/onmetal-api/api/networking/v1alpha1,AliasPrefixRouting,Destinations +API rule violation: list_type_missing,github.com/onmetal/onmetal-api/api/networking/v1alpha1,IPBlock,Except API rule violation: list_type_missing,github.com/onmetal/onmetal-api/api/networking/v1alpha1,LoadBalancerRouting,Destinations API rule violation: list_type_missing,github.com/onmetal/onmetal-api/api/networking/v1alpha1,LoadBalancerSpec,IPFamilies API rule violation: list_type_missing,github.com/onmetal/onmetal-api/api/networking/v1alpha1,LoadBalancerSpec,IPs @@ -26,6 +27,14 @@ API rule violation: list_type_missing,github.com/onmetal/onmetal-api/api/network API rule violation: list_type_missing,github.com/onmetal/onmetal-api/api/networking/v1alpha1,NetworkInterfaceSpec,IPFamilies API rule violation: list_type_missing,github.com/onmetal/onmetal-api/api/networking/v1alpha1,NetworkInterfaceSpec,IPs API rule violation: list_type_missing,github.com/onmetal/onmetal-api/api/networking/v1alpha1,NetworkInterfaceStatus,IPs +API rule violation: list_type_missing,github.com/onmetal/onmetal-api/api/networking/v1alpha1,NetworkPolicyEgressRule,Ports +API rule violation: list_type_missing,github.com/onmetal/onmetal-api/api/networking/v1alpha1,NetworkPolicyEgressRule,To +API rule violation: list_type_missing,github.com/onmetal/onmetal-api/api/networking/v1alpha1,NetworkPolicyIngressRule,From +API rule violation: list_type_missing,github.com/onmetal/onmetal-api/api/networking/v1alpha1,NetworkPolicyIngressRule,Ports +API rule violation: list_type_missing,github.com/onmetal/onmetal-api/api/networking/v1alpha1,NetworkPolicySpec,Egress +API rule violation: list_type_missing,github.com/onmetal/onmetal-api/api/networking/v1alpha1,NetworkPolicySpec,Ingress +API rule violation: list_type_missing,github.com/onmetal/onmetal-api/api/networking/v1alpha1,NetworkPolicySpec,PolicyTypes +API rule violation: list_type_missing,github.com/onmetal/onmetal-api/api/networking/v1alpha1,NetworkPolicyStatus,Conditions API rule violation: list_type_missing,github.com/onmetal/onmetal-api/api/networking/v1alpha1,NetworkSpec,Peerings API rule violation: list_type_missing,github.com/onmetal/onmetal-api/api/networking/v1alpha1,NetworkStatus,Peerings API rule violation: list_type_missing,github.com/onmetal/onmetal-api/api/storage/v1alpha1,BucketPoolSpec,Taints diff --git a/client-go/openapi/zz_generated.openapi.go b/client-go/openapi/zz_generated.openapi.go index e5ee1fefa..4116c03a2 100644 --- a/client-go/openapi/zz_generated.openapi.go +++ b/client-go/openapi/zz_generated.openapi.go @@ -66,6 +66,7 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA "github.com/onmetal/onmetal-api/api/compute/v1alpha1.Volume": schema_onmetal_api_api_compute_v1alpha1_Volume(ref), "github.com/onmetal/onmetal-api/api/compute/v1alpha1.VolumeSource": schema_onmetal_api_api_compute_v1alpha1_VolumeSource(ref), "github.com/onmetal/onmetal-api/api/compute/v1alpha1.VolumeStatus": schema_onmetal_api_api_compute_v1alpha1_VolumeStatus(ref), + "github.com/onmetal/onmetal-api/api/core/v1alpha1.ObjectSelector": schema_onmetal_api_api_core_v1alpha1_ObjectSelector(ref), "github.com/onmetal/onmetal-api/api/core/v1alpha1.ResourceQuota": schema_onmetal_api_api_core_v1alpha1_ResourceQuota(ref), "github.com/onmetal/onmetal-api/api/core/v1alpha1.ResourceQuotaList": schema_onmetal_api_api_core_v1alpha1_ResourceQuotaList(ref), "github.com/onmetal/onmetal-api/api/core/v1alpha1.ResourceQuotaSpec": schema_onmetal_api_api_core_v1alpha1_ResourceQuotaSpec(ref), @@ -89,6 +90,7 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA "github.com/onmetal/onmetal-api/api/networking/v1alpha1.AliasPrefixStatus": schema_onmetal_api_api_networking_v1alpha1_AliasPrefixStatus(ref), "github.com/onmetal/onmetal-api/api/networking/v1alpha1.EphemeralPrefixSource": schema_onmetal_api_api_networking_v1alpha1_EphemeralPrefixSource(ref), "github.com/onmetal/onmetal-api/api/networking/v1alpha1.EphemeralVirtualIPSource": schema_onmetal_api_api_networking_v1alpha1_EphemeralVirtualIPSource(ref), + "github.com/onmetal/onmetal-api/api/networking/v1alpha1.IPBlock": schema_onmetal_api_api_networking_v1alpha1_IPBlock(ref), "github.com/onmetal/onmetal-api/api/networking/v1alpha1.IPSource": schema_onmetal_api_api_networking_v1alpha1_IPSource(ref), "github.com/onmetal/onmetal-api/api/networking/v1alpha1.LoadBalancer": schema_onmetal_api_api_networking_v1alpha1_LoadBalancer(ref), "github.com/onmetal/onmetal-api/api/networking/v1alpha1.LoadBalancerList": schema_onmetal_api_api_networking_v1alpha1_LoadBalancerList(ref), @@ -116,6 +118,15 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA "github.com/onmetal/onmetal-api/api/networking/v1alpha1.NetworkList": schema_onmetal_api_api_networking_v1alpha1_NetworkList(ref), "github.com/onmetal/onmetal-api/api/networking/v1alpha1.NetworkPeering": schema_onmetal_api_api_networking_v1alpha1_NetworkPeering(ref), "github.com/onmetal/onmetal-api/api/networking/v1alpha1.NetworkPeeringStatus": schema_onmetal_api_api_networking_v1alpha1_NetworkPeeringStatus(ref), + "github.com/onmetal/onmetal-api/api/networking/v1alpha1.NetworkPolicy": schema_onmetal_api_api_networking_v1alpha1_NetworkPolicy(ref), + "github.com/onmetal/onmetal-api/api/networking/v1alpha1.NetworkPolicyCondition": schema_onmetal_api_api_networking_v1alpha1_NetworkPolicyCondition(ref), + "github.com/onmetal/onmetal-api/api/networking/v1alpha1.NetworkPolicyEgressRule": schema_onmetal_api_api_networking_v1alpha1_NetworkPolicyEgressRule(ref), + "github.com/onmetal/onmetal-api/api/networking/v1alpha1.NetworkPolicyIngressRule": schema_onmetal_api_api_networking_v1alpha1_NetworkPolicyIngressRule(ref), + "github.com/onmetal/onmetal-api/api/networking/v1alpha1.NetworkPolicyList": schema_onmetal_api_api_networking_v1alpha1_NetworkPolicyList(ref), + "github.com/onmetal/onmetal-api/api/networking/v1alpha1.NetworkPolicyPeer": schema_onmetal_api_api_networking_v1alpha1_NetworkPolicyPeer(ref), + "github.com/onmetal/onmetal-api/api/networking/v1alpha1.NetworkPolicyPort": schema_onmetal_api_api_networking_v1alpha1_NetworkPolicyPort(ref), + "github.com/onmetal/onmetal-api/api/networking/v1alpha1.NetworkPolicySpec": schema_onmetal_api_api_networking_v1alpha1_NetworkPolicySpec(ref), + "github.com/onmetal/onmetal-api/api/networking/v1alpha1.NetworkPolicyStatus": schema_onmetal_api_api_networking_v1alpha1_NetworkPolicyStatus(ref), "github.com/onmetal/onmetal-api/api/networking/v1alpha1.NetworkSpec": schema_onmetal_api_api_networking_v1alpha1_NetworkSpec(ref), "github.com/onmetal/onmetal-api/api/networking/v1alpha1.NetworkStatus": schema_onmetal_api_api_networking_v1alpha1_NetworkStatus(ref), "github.com/onmetal/onmetal-api/api/networking/v1alpha1.PrefixSource": schema_onmetal_api_api_networking_v1alpha1_PrefixSource(ref), @@ -1850,6 +1861,60 @@ func schema_onmetal_api_api_compute_v1alpha1_VolumeStatus(ref common.ReferenceCa } } +func schema_onmetal_api_api_core_v1alpha1_ObjectSelector(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ObjectSelector specifies how to select objects of a certain kind.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "kind": { + SchemaProps: spec.SchemaProps{ + Description: "Kind is the kind of object to select.", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "matchLabels": { + SchemaProps: spec.SchemaProps{ + Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \"key\", the operator is \"In\", and the values array contains only \"value\". The requirements are ANDed.", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "matchExpressions": { + SchemaProps: spec.SchemaProps{ + Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelectorRequirement"), + }, + }, + }, + }, + }, + }, + Required: []string{"kind"}, + }, + }, + Dependencies: []string{ + "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelectorRequirement"}, + } +} + func schema_onmetal_api_api_core_v1alpha1_ResourceQuota(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ @@ -2790,6 +2855,43 @@ func schema_onmetal_api_api_networking_v1alpha1_EphemeralVirtualIPSource(ref com } } +func schema_onmetal_api_api_networking_v1alpha1_IPBlock(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "IPBlock specifies an ip block with optional exceptions.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "cidr": { + SchemaProps: spec.SchemaProps{ + Description: "CIDR is a string representing the ip block.", + Default: map[string]interface{}{}, + Ref: ref("github.com/onmetal/onmetal-api/api/common/v1alpha1.IPPrefix"), + }, + }, + "except": { + SchemaProps: spec.SchemaProps{ + Description: "Except is a slice of CIDRs that should not be included within the specified CIDR. Values will be rejected if they are outside CIDR.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/onmetal/onmetal-api/api/common/v1alpha1.IPPrefix"), + }, + }, + }, + }, + }, + }, + Required: []string{"cidr"}, + }, + }, + Dependencies: []string{ + "github.com/onmetal/onmetal-api/api/common/v1alpha1.IPPrefix"}, + } +} + func schema_onmetal_api_api_networking_v1alpha1_IPSource(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ @@ -4044,6 +4146,413 @@ func schema_onmetal_api_api_networking_v1alpha1_NetworkPeeringStatus(ref common. } } +func schema_onmetal_api_api_networking_v1alpha1_NetworkPolicy(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "NetworkPolicy is the Schema for the networkpolicies API", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "kind": { + SchemaProps: spec.SchemaProps{ + 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{"string"}, + Format: "", + }, + }, + "apiVersion": { + SchemaProps: spec.SchemaProps{ + 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{"string"}, + Format: "", + }, + }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + }, + }, + "spec": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/onmetal/onmetal-api/api/networking/v1alpha1.NetworkPolicySpec"), + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/onmetal/onmetal-api/api/networking/v1alpha1.NetworkPolicyStatus"), + }, + }, + }, + }, + }, + Dependencies: []string{ + "github.com/onmetal/onmetal-api/api/networking/v1alpha1.NetworkPolicySpec", "github.com/onmetal/onmetal-api/api/networking/v1alpha1.NetworkPolicyStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + } +} + +func schema_onmetal_api_api_networking_v1alpha1_NetworkPolicyCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "NetworkPolicyCondition is one of the conditions of a network policy.", + 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: "", + }, + }, + "observedGeneration": { + SchemaProps: spec.SchemaProps{ + Description: "ObservedGeneration represents the .metadata.generation that the condition was set based upon.", + Type: []string{"integer"}, + Format: "int64", + }, + }, + "lastTransitionTime": { + SchemaProps: spec.SchemaProps{ + Description: "LastTransitionTime is the last time the status of a condition has transitioned from one state to another.", + Default: map[string]interface{}{}, + 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_onmetal_api_api_networking_v1alpha1_NetworkPolicyEgressRule(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "NetworkPolicyEgressRule describes a rule to regulate egress traffic with.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "ports": { + SchemaProps: spec.SchemaProps{ + Description: "Ports specifies the list of destination ports that can be called with this rule. Each item in this list is combined using a logical OR. Empty matches all ports. As soon as a single item is present, only these ports are allowed.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/onmetal/onmetal-api/api/networking/v1alpha1.NetworkPolicyPort"), + }, + }, + }, + }, + }, + "to": { + SchemaProps: spec.SchemaProps{ + Description: "To specifies the list of destinations which the selected network interfaces should be able to send traffic to. Fields are combined using a logical OR. Empty matches all destinations. As soon as a single item is present, only these peers are allowed.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/onmetal/onmetal-api/api/networking/v1alpha1.NetworkPolicyPeer"), + }, + }, + }, + }, + }, + }, + }, + }, + Dependencies: []string{ + "github.com/onmetal/onmetal-api/api/networking/v1alpha1.NetworkPolicyPeer", "github.com/onmetal/onmetal-api/api/networking/v1alpha1.NetworkPolicyPort"}, + } +} + +func schema_onmetal_api_api_networking_v1alpha1_NetworkPolicyIngressRule(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "NetworkPolicyIngressRule describes a rule to regulate ingress traffic with.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "ports": { + SchemaProps: spec.SchemaProps{ + Description: "Ports specifies the list of ports which should be made accessible for this rule. Each item in this list is combined using a logical OR. Empty matches all ports. As soon as a single item is present, only these ports are allowed.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/onmetal/onmetal-api/api/networking/v1alpha1.NetworkPolicyPort"), + }, + }, + }, + }, + }, + "from": { + SchemaProps: spec.SchemaProps{ + Description: "From specifies the list of sources which should be able to send traffic to the selected network interfaces. Fields are combined using a logical OR. Empty matches all sources. As soon as a single item is present, only these peers are allowed.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/onmetal/onmetal-api/api/networking/v1alpha1.NetworkPolicyPeer"), + }, + }, + }, + }, + }, + }, + }, + }, + Dependencies: []string{ + "github.com/onmetal/onmetal-api/api/networking/v1alpha1.NetworkPolicyPeer", "github.com/onmetal/onmetal-api/api/networking/v1alpha1.NetworkPolicyPort"}, + } +} + +func schema_onmetal_api_api_networking_v1alpha1_NetworkPolicyList(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "NetworkPolicyList contains a list of NetworkPolicy.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "kind": { + SchemaProps: spec.SchemaProps{ + 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{"string"}, + Format: "", + }, + }, + "apiVersion": { + SchemaProps: spec.SchemaProps{ + 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{"string"}, + Format: "", + }, + }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + }, + }, + "items": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/onmetal/onmetal-api/api/networking/v1alpha1.NetworkPolicy"), + }, + }, + }, + }, + }, + }, + Required: []string{"items"}, + }, + }, + Dependencies: []string{ + "github.com/onmetal/onmetal-api/api/networking/v1alpha1.NetworkPolicy", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + } +} + +func schema_onmetal_api_api_networking_v1alpha1_NetworkPolicyPeer(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "NetworkPolicyPeer describes a peer to allow traffic to / from.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "objectSelector": { + SchemaProps: spec.SchemaProps{ + Description: "ObjectSelector selects peers with the given kind matching the label selector. Exclusive with other peer specifiers.", + Ref: ref("github.com/onmetal/onmetal-api/api/core/v1alpha1.ObjectSelector"), + }, + }, + "ipBlock": { + SchemaProps: spec.SchemaProps{ + Description: "IPBlock specifies the ip block from or to which network traffic may come.", + Ref: ref("github.com/onmetal/onmetal-api/api/networking/v1alpha1.IPBlock"), + }, + }, + }, + }, + }, + Dependencies: []string{ + "github.com/onmetal/onmetal-api/api/core/v1alpha1.ObjectSelector", "github.com/onmetal/onmetal-api/api/networking/v1alpha1.IPBlock"}, + } +} + +func schema_onmetal_api_api_networking_v1alpha1_NetworkPolicyPort(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "NetworkPolicyPort describes a port to allow traffic on", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "protocol": { + SchemaProps: spec.SchemaProps{ + Description: "Protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this field defaults to TCP.", + Type: []string{"string"}, + Format: "", + }, + }, + "port": { + SchemaProps: spec.SchemaProps{ + Description: "The port on the given protocol. If this field is not provided, this matches all port names and numbers. If present, only traffic on the specified protocol AND port will be matched.", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "endPort": { + SchemaProps: spec.SchemaProps{ + Description: "EndPort indicates that the range of ports from Port to EndPort, inclusive, should be allowed by the policy. This field cannot be defined if the port field is not defined. The endPort must be equal or greater than port.", + Type: []string{"integer"}, + Format: "int32", + }, + }, + }, + }, + }, + } +} + +func schema_onmetal_api_api_networking_v1alpha1_NetworkPolicySpec(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "NetworkPolicySpec defines the desired state of NetworkPolicy.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "networkRef": { + SchemaProps: spec.SchemaProps{ + Description: "NetworkRef is the network to regulate using this policy.", + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/core/v1.LocalObjectReference"), + }, + }, + "networkInterfaceSelector": { + SchemaProps: spec.SchemaProps{ + Description: "NetworkInterfaceSelector selects the network interfaces that are subject to this policy.", + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), + }, + }, + "ingress": { + SchemaProps: spec.SchemaProps{ + Description: "Ingress specifies rules for ingress traffic.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/onmetal/onmetal-api/api/networking/v1alpha1.NetworkPolicyIngressRule"), + }, + }, + }, + }, + }, + "egress": { + SchemaProps: spec.SchemaProps{ + Description: "Egress specifies rules for egress traffic.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/onmetal/onmetal-api/api/networking/v1alpha1.NetworkPolicyEgressRule"), + }, + }, + }, + }, + }, + "policyTypes": { + SchemaProps: spec.SchemaProps{ + Description: "PolicyTypes specifies the types of policies this network policy contains.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + }, + Required: []string{"networkRef", "networkInterfaceSelector"}, + }, + }, + Dependencies: []string{ + "github.com/onmetal/onmetal-api/api/networking/v1alpha1.NetworkPolicyEgressRule", "github.com/onmetal/onmetal-api/api/networking/v1alpha1.NetworkPolicyIngressRule", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, + } +} + +func schema_onmetal_api_api_networking_v1alpha1_NetworkPolicyStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "NetworkPolicyStatus defines the observed state of NetworkPolicy.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "conditions": { + SchemaProps: spec.SchemaProps{ + Description: "Conditions are various conditions of the NetworkPolicy.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/onmetal/onmetal-api/api/networking/v1alpha1.NetworkPolicyCondition"), + }, + }, + }, + }, + }, + }, + }, + }, + Dependencies: []string{ + "github.com/onmetal/onmetal-api/api/networking/v1alpha1.NetworkPolicyCondition"}, + } +} + func schema_onmetal_api_api_networking_v1alpha1_NetworkSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ diff --git a/config/samples/networking_v1alpha1_networkpolicy.yaml b/config/samples/networking_v1alpha1_networkpolicy.yaml new file mode 100644 index 000000000..0d04e2643 --- /dev/null +++ b/config/samples/networking_v1alpha1_networkpolicy.yaml @@ -0,0 +1,22 @@ +apiVersion: networking.api.onmetal.de/v1alpha1 +kind: NetworkPolicy +metadata: + namespace: default + name: networkpolicy-sample +spec: + networkRef: + name: network-sample + networkInterfaceSelector: + matchLabels: + app: db + ingress: + - from: + - objectSelector: + kind: NetworkInterface + matchLabels: + app: web + egress: + - to: + - ipBlock: + cidr: 10.0.0.0/16 + \ No newline at end of file diff --git a/docs/api-reference/compute.md b/docs/api-reference/compute.md index dbd331877..ad4174fc8 100644 --- a/docs/api-reference/compute.md +++ b/docs/api-reference/compute.md @@ -50,7 +50,7 @@ string metadata
- + Kubernetes meta/v1.ObjectMeta @@ -77,7 +77,7 @@ MachineSpec machineClassRef
- + Kubernetes core/v1.LocalObjectReference @@ -101,7 +101,7 @@ map[string]string machinePoolRef
- + Kubernetes core/v1.LocalObjectReference @@ -141,7 +141,7 @@ string imagePullSecret
- + Kubernetes core/v1.LocalObjectReference @@ -271,7 +271,7 @@ string metadata
- + Kubernetes meta/v1.ObjectMeta @@ -285,7 +285,9 @@ Refer to the Kubernetes API documentation for the fields of the capabilities
+ github.com/onmetal/onmetal-api/api/core/v1alpha1.ResourceList + @@ -327,7 +329,7 @@ string metadata
- + Kubernetes meta/v1.ObjectMeta @@ -494,7 +496,7 @@ varying performance characteristics. Potentially not recoverable.

sizeLimit
- + k8s.io/apimachinery/pkg/api/resource.Quantity @@ -709,7 +711,7 @@ MachinePoolConditionType status
- + Kubernetes core/v1.ConditionStatus @@ -755,7 +757,7 @@ int64 lastTransitionTime
- + Kubernetes meta/v1.Time @@ -922,7 +924,7 @@ MachinePoolState availableMachineClasses
- + []Kubernetes core/v1.LocalObjectReference @@ -976,7 +978,7 @@ MachinePoolDaemonEndpoints machineClassRef
- + Kubernetes core/v1.LocalObjectReference @@ -1000,7 +1002,7 @@ map[string]string machinePoolRef
- + Kubernetes core/v1.LocalObjectReference @@ -1040,7 +1042,7 @@ string imagePullSecret
- + Kubernetes core/v1.LocalObjectReference @@ -1318,7 +1320,7 @@ NetworkInterfaceSource networkInterfaceRef
- + Kubernetes core/v1.LocalObjectReference @@ -1461,7 +1463,7 @@ NetworkInterfaceState lastStateTransitionTime
- + Kubernetes meta/v1.Time @@ -1487,7 +1489,7 @@ NetworkInterfacePhase lastPhaseTransitionTime
- + Kubernetes meta/v1.Time @@ -1622,7 +1624,7 @@ VolumeSource volumeRef
- + Kubernetes core/v1.LocalObjectReference @@ -1741,7 +1743,7 @@ VolumeState lastStateTransitionTime
- + Kubernetes meta/v1.Time @@ -1767,7 +1769,7 @@ VolumePhase lastPhaseTransitionTime
- + Kubernetes meta/v1.Time diff --git a/docs/api-reference/core.md b/docs/api-reference/core.md index 4ea00778b..88211954a 100644 --- a/docs/api-reference/core.md +++ b/docs/api-reference/core.md @@ -46,7 +46,7 @@ string metadata
- + Kubernetes meta/v1.ObjectMeta @@ -113,6 +113,48 @@ ResourceQuotaStatus +

ObjectSelector +

+
+

ObjectSelector specifies how to select objects of a certain kind.

+
+ + + + + + + + + + + + + + + + + +
FieldDescription
+kind
+ +string + +
+

Kind is the kind of object to select.

+
+LabelSelector
+ + +Kubernetes meta/v1.LabelSelector + + +
+

+(Members of LabelSelector are embedded into this type.) +

+

LabelSelector is the label selector to select objects of the specified Kind by.

+

ResourceName (string alias)

diff --git a/docs/api-reference/ipam.md b/docs/api-reference/ipam.md index 41059048a..97717be73 100644 --- a/docs/api-reference/ipam.md +++ b/docs/api-reference/ipam.md @@ -48,7 +48,7 @@ string metadata
- + Kubernetes meta/v1.ObjectMeta @@ -75,7 +75,7 @@ PrefixSpec ipFamily
- + Kubernetes core/v1.IPFamily @@ -89,7 +89,7 @@ If unset but Prefix is set, this can be inferred.

prefix
- + github.com/onmetal/onmetal-api/api/common/v1alpha1.IPPrefix @@ -113,7 +113,7 @@ int32 parentRef
- + Kubernetes core/v1.LocalObjectReference @@ -128,7 +128,7 @@ allocated by itself.

parentSelector
- + Kubernetes meta/v1.LabelSelector @@ -188,7 +188,7 @@ string metadata
- + Kubernetes meta/v1.ObjectMeta @@ -215,7 +215,7 @@ PrefixAllocationSpec ipFamily
- + Kubernetes core/v1.IPFamily @@ -229,7 +229,7 @@ If unset but Prefix is set, this can be inferred.

prefix
- + github.com/onmetal/onmetal-api/api/common/v1alpha1.IPPrefix @@ -253,7 +253,7 @@ int32 prefixRef
- + Kubernetes core/v1.LocalObjectReference @@ -266,7 +266,7 @@ Kubernetes core/v1.LocalObjectReference prefixSelector
- + Kubernetes meta/v1.LabelSelector @@ -338,7 +338,7 @@ PrefixAllocationStatus ipFamily
- + Kubernetes core/v1.IPFamily @@ -352,7 +352,7 @@ If unset but Prefix is set, this can be inferred.

prefix
- + github.com/onmetal/onmetal-api/api/common/v1alpha1.IPPrefix @@ -376,7 +376,7 @@ int32 prefixRef
- + Kubernetes core/v1.LocalObjectReference @@ -389,7 +389,7 @@ Kubernetes core/v1.LocalObjectReference prefixSelector
- + Kubernetes meta/v1.LabelSelector @@ -420,7 +420,7 @@ Kubernetes meta/v1.LabelSelector prefix
- + github.com/onmetal/onmetal-api/api/common/v1alpha1.IPPrefix @@ -446,7 +446,7 @@ PrefixAllocationPhase lastPhaseTransitionTime
- + Kubernetes meta/v1.Time @@ -500,7 +500,7 @@ Kubernetes meta/v1.Time ipFamily
- + Kubernetes core/v1.IPFamily @@ -514,7 +514,7 @@ If unset but Prefix is set, this can be inferred.

prefix
- + github.com/onmetal/onmetal-api/api/common/v1alpha1.IPPrefix @@ -538,7 +538,7 @@ int32 parentRef
- + Kubernetes core/v1.LocalObjectReference @@ -553,7 +553,7 @@ allocated by itself.

parentSelector
- + Kubernetes meta/v1.LabelSelector @@ -597,7 +597,7 @@ PrefixPhase lastPhaseTransitionTime
- + Kubernetes meta/v1.Time @@ -610,7 +610,7 @@ Kubernetes meta/v1.Time used
- + []github.com/onmetal/onmetal-api/api/common/v1alpha1.IPPrefix @@ -637,7 +637,7 @@ Kubernetes meta/v1.Time metadata
- + Kubernetes meta/v1.ObjectMeta @@ -664,7 +664,7 @@ PrefixSpec ipFamily
- + Kubernetes core/v1.IPFamily @@ -678,7 +678,7 @@ If unset but Prefix is set, this can be inferred.

prefix
- + github.com/onmetal/onmetal-api/api/common/v1alpha1.IPPrefix @@ -702,7 +702,7 @@ int32 parentRef
- + Kubernetes core/v1.LocalObjectReference @@ -717,7 +717,7 @@ allocated by itself.

parentSelector
- + Kubernetes meta/v1.LabelSelector diff --git a/docs/api-reference/networking.md b/docs/api-reference/networking.md index 86781b63e..70f727c10 100644 --- a/docs/api-reference/networking.md +++ b/docs/api-reference/networking.md @@ -26,6 +26,8 @@ Resource Types:
  • NetworkInterface
  • +NetworkPolicy +
  • VirtualIP
  • AliasPrefix @@ -62,7 +64,7 @@ string metadata
    - + Kubernetes meta/v1.ObjectMeta @@ -89,7 +91,7 @@ AliasPrefixSpec networkRef
    - + Kubernetes core/v1.LocalObjectReference @@ -102,7 +104,7 @@ Kubernetes core/v1.LocalObjectReference networkInterfaceSelector
    - + Kubernetes meta/v1.LabelSelector @@ -177,7 +179,7 @@ string metadata
    - + Kubernetes meta/v1.ObjectMeta @@ -249,7 +251,7 @@ string metadata
    - + Kubernetes meta/v1.ObjectMeta @@ -289,7 +291,7 @@ LoadBalancerType ipFamilies
    - + []Kubernetes core/v1.IPFamily @@ -315,7 +317,7 @@ LoadBalancerType networkRef
    - + Kubernetes core/v1.LocalObjectReference @@ -328,7 +330,7 @@ Kubernetes core/v1.LocalObjectReference networkInterfaceSelector
    - + Kubernetes meta/v1.LabelSelector @@ -402,7 +404,7 @@ string metadata
    - + Kubernetes meta/v1.ObjectMeta @@ -474,7 +476,7 @@ string metadata
    - + Kubernetes meta/v1.ObjectMeta @@ -514,7 +516,7 @@ NATGatewayType ipFamilies
    - + []Kubernetes core/v1.IPFamily @@ -541,7 +543,7 @@ NATGatewayType networkRef
    - + Kubernetes core/v1.LocalObjectReference @@ -554,7 +556,7 @@ Kubernetes core/v1.LocalObjectReference networkInterfaceSelector
    - + Kubernetes meta/v1.LabelSelector @@ -627,7 +629,7 @@ string metadata
    - + Kubernetes meta/v1.ObjectMeta @@ -699,7 +701,7 @@ string metadata
    - + Kubernetes meta/v1.ObjectMeta @@ -798,7 +800,7 @@ string metadata
    - + Kubernetes meta/v1.ObjectMeta @@ -825,7 +827,7 @@ NetworkInterfaceSpec networkRef
    - + Kubernetes core/v1.LocalObjectReference @@ -851,7 +853,7 @@ github.com/onmetal/onmetal-api/api/common/v1alpha1.LocalUIDReference ipFamilies
    - + []Kubernetes core/v1.IPFamily @@ -904,6 +906,145 @@ NetworkInterfaceStatus +

    NetworkPolicy +

    +
    +

    NetworkPolicy is the Schema for the networkpolicies API

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FieldDescription
    +apiVersion
    +string
    + +networking.api.onmetal.de/v1alpha1 + +
    +kind
    +string +
    NetworkPolicy
    +metadata
    + + +Kubernetes meta/v1.ObjectMeta + + +
    +Refer to the Kubernetes API documentation for the fields of the +metadata field. +
    +spec
    + + +NetworkPolicySpec + + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    +networkRef
    + + +Kubernetes core/v1.LocalObjectReference + + +
    +

    NetworkRef is the network to regulate using this policy.

    +
    +networkInterfaceSelector
    + + +Kubernetes meta/v1.LabelSelector + + +
    +

    NetworkInterfaceSelector selects the network interfaces that are subject to this policy.

    +
    +ingress
    + + +[]NetworkPolicyIngressRule + + +
    +

    Ingress specifies rules for ingress traffic.

    +
    +egress
    + + +[]NetworkPolicyEgressRule + + +
    +

    Egress specifies rules for egress traffic.

    +
    +policyTypes
    + + +[]PolicyType + + +
    +

    PolicyTypes specifies the types of policies this network policy contains.

    +
    +
    +status
    + + +NetworkPolicyStatus + + +
    +

    VirtualIP

    @@ -938,7 +1079,7 @@ string metadata
    - + Kubernetes meta/v1.ObjectMeta @@ -978,7 +1119,7 @@ VirtualIPType ipFamily
    - + Kubernetes core/v1.IPFamily @@ -1037,7 +1178,7 @@ VirtualIPStatus networkRef
    - + Kubernetes core/v1.LocalObjectReference @@ -1050,7 +1191,7 @@ Kubernetes core/v1.LocalObjectReference networkInterfaceSelector
    - + Kubernetes meta/v1.LabelSelector @@ -1096,7 +1237,7 @@ should be used by this AliasPrefix

    prefix
    - + github.com/onmetal/onmetal-api/api/common/v1alpha1.IPPrefix @@ -1171,6 +1312,51 @@ VirtualIPTemplateSpec +

    IPBlock +

    +

    +(Appears on:NetworkPolicyPeer) +

    +
    +

    IPBlock specifies an ip block with optional exceptions.

    +
    + + + + + + + + + + + + + + + + + +
    FieldDescription
    +cidr
    + + +github.com/onmetal/onmetal-api/api/common/v1alpha1.IPPrefix + + +
    +

    CIDR is a string representing the ip block.

    +
    +except
    + + +[]github.com/onmetal/onmetal-api/api/common/v1alpha1.IPPrefix + + +
    +

    Except is a slice of CIDRs that should not be included within the specified CIDR. +Values will be rejected if they are outside CIDR.

    +

    IPSource

    @@ -1234,7 +1420,7 @@ EphemeralPrefixSource protocol
    - + Kubernetes core/v1.Protocol @@ -1302,7 +1488,7 @@ LoadBalancerType ipFamilies
    - + []Kubernetes core/v1.IPFamily @@ -1328,7 +1514,7 @@ LoadBalancerType networkRef
    - + Kubernetes core/v1.LocalObjectReference @@ -1341,7 +1527,7 @@ Kubernetes core/v1.LocalObjectReference networkInterfaceSelector
    - + Kubernetes meta/v1.LabelSelector @@ -1626,7 +1812,7 @@ NATGatewayType ipFamilies
    - + []Kubernetes core/v1.IPFamily @@ -1653,7 +1839,7 @@ NATGatewayType networkRef
    - + Kubernetes core/v1.LocalObjectReference @@ -1666,7 +1852,7 @@ Kubernetes core/v1.LocalObjectReference networkInterfaceSelector
    - + Kubernetes meta/v1.LabelSelector @@ -1798,7 +1984,7 @@ int32 networkRef
    - + Kubernetes core/v1.LocalObjectReference @@ -1824,7 +2010,7 @@ github.com/onmetal/onmetal-api/api/common/v1alpha1.LocalUIDReference ipFamilies
    - + []Kubernetes core/v1.IPFamily @@ -1921,7 +2107,7 @@ NetworkInterfaceState lastStateTransitionTime
    - + Kubernetes meta/v1.Time @@ -1984,7 +2170,7 @@ NetworkInterfacePhase machinePoolRef
    - + Kubernetes core/v1.LocalObjectReference @@ -1997,7 +2183,7 @@ Kubernetes core/v1.LocalObjectReference lastPhaseTransitionTime
    - + Kubernetes meta/v1.Time @@ -2025,7 +2211,7 @@ Kubernetes meta/v1.Time metadata
    - + Kubernetes meta/v1.ObjectMeta @@ -2052,7 +2238,7 @@ NetworkInterfaceSpec networkRef
    - + Kubernetes core/v1.LocalObjectReference @@ -2078,7 +2264,7 @@ github.com/onmetal/onmetal-api/api/common/v1alpha1.LocalUIDReference ipFamilies
    - + []Kubernetes core/v1.IPFamily @@ -2150,7 +2336,9 @@ string networkRef
    + github.com/onmetal/onmetal-api/api/common/v1alpha1.UIDReference + @@ -2239,7 +2427,7 @@ NetworkPeeringPhase lastPhaseTransitionTime
    - + Kubernetes meta/v1.Time @@ -2250,6 +2438,417 @@ Kubernetes meta/v1.Time +

    NetworkPolicyCondition +

    +

    +(Appears on:NetworkPolicyStatus) +

    +
    +

    NetworkPolicyCondition is one of the conditions of a network policy.

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FieldDescription
    +type
    + + +NetworkPolicyConditionType + + +
    +

    Type is the type of the condition.

    +
    +status
    + + +Kubernetes core/v1.ConditionStatus + + +
    +

    Status is the status of the condition.

    +
    +reason
    + +string + +
    +

    Reason is a machine-readable indication of why the condition is in a certain state.

    +
    +message
    + +string + +
    +

    Message is a human-readable explanation of why the condition has a certain reason / state.

    +
    +observedGeneration
    + +int64 + +
    +

    ObservedGeneration represents the .metadata.generation that the condition was set based upon.

    +
    +lastTransitionTime
    + + +Kubernetes meta/v1.Time + + +
    +

    LastTransitionTime is the last time the status of a condition has transitioned from one state to another.

    +
    +

    NetworkPolicyConditionType +(string alias)

    +

    +(Appears on:NetworkPolicyCondition) +

    +
    +

    NetworkPolicyConditionType is a type a NetworkPolicyCondition can have.

    +
    +

    NetworkPolicyEgressRule +

    +

    +(Appears on:NetworkPolicySpec) +

    +
    +

    NetworkPolicyEgressRule describes a rule to regulate egress traffic with.

    +
    + + + + + + + + + + + + + + + + + +
    FieldDescription
    +ports
    + + +[]NetworkPolicyPort + + +
    +

    Ports specifies the list of destination ports that can be called with +this rule. Each item in this list is combined using a logical OR. Empty matches all ports. +As soon as a single item is present, only these ports are allowed.

    +
    +to
    + + +[]NetworkPolicyPeer + + +
    +

    To specifies the list of destinations which the selected network interfaces should be +able to send traffic to. Fields are combined using a logical OR. Empty matches all destinations. +As soon as a single item is present, only these peers are allowed.

    +
    +

    NetworkPolicyIngressRule +

    +

    +(Appears on:NetworkPolicySpec) +

    +
    +

    NetworkPolicyIngressRule describes a rule to regulate ingress traffic with.

    +
    + + + + + + + + + + + + + + + + + +
    FieldDescription
    +ports
    + + +[]NetworkPolicyPort + + +
    +

    Ports specifies the list of ports which should be made accessible for +this rule. Each item in this list is combined using a logical OR. Empty matches all ports. +As soon as a single item is present, only these ports are allowed.

    +
    +from
    + + +[]NetworkPolicyPeer + + +
    +

    From specifies the list of sources which should be able to send traffic to the +selected network interfaces. Fields are combined using a logical OR. Empty matches all sources. +As soon as a single item is present, only these peers are allowed.

    +
    +

    NetworkPolicyPeer +

    +

    +(Appears on:NetworkPolicyEgressRule, NetworkPolicyIngressRule) +

    +
    +

    NetworkPolicyPeer describes a peer to allow traffic to / from.

    +
    + + + + + + + + + + + + + + + + + +
    FieldDescription
    +objectSelector
    + + +github.com/onmetal/onmetal-api/api/core/v1alpha1.ObjectSelector + + +
    +

    ObjectSelector selects peers with the given kind matching the label selector. +Exclusive with other peer specifiers.

    +
    +ipBlock
    + + +IPBlock + + +
    +

    IPBlock specifies the ip block from or to which network traffic may come.

    +
    +

    NetworkPolicyPort +

    +

    +(Appears on:NetworkPolicyEgressRule, NetworkPolicyIngressRule) +

    +
    +

    NetworkPolicyPort describes a port to allow traffic on

    +
    + + + + + + + + + + + + + + + + + + + + + +
    FieldDescription
    +protocol
    + + +Kubernetes core/v1.Protocol + + +
    +

    Protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this +field defaults to TCP.

    +
    +port
    + +int32 + +
    +

    The port on the given protocol. If this field is not provided, this matches +all port names and numbers. +If present, only traffic on the specified protocol AND port will be matched.

    +
    +endPort
    + +int32 + +
    +

    EndPort indicates that the range of ports from Port to EndPort, inclusive, +should be allowed by the policy. This field cannot be defined if the port field +is not defined. The endPort must be equal or greater than port.

    +
    +

    NetworkPolicySpec +

    +

    +(Appears on:NetworkPolicy) +

    +
    +

    NetworkPolicySpec defines the desired state of NetworkPolicy.

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FieldDescription
    +networkRef
    + + +Kubernetes core/v1.LocalObjectReference + + +
    +

    NetworkRef is the network to regulate using this policy.

    +
    +networkInterfaceSelector
    + + +Kubernetes meta/v1.LabelSelector + + +
    +

    NetworkInterfaceSelector selects the network interfaces that are subject to this policy.

    +
    +ingress
    + + +[]NetworkPolicyIngressRule + + +
    +

    Ingress specifies rules for ingress traffic.

    +
    +egress
    + + +[]NetworkPolicyEgressRule + + +
    +

    Egress specifies rules for egress traffic.

    +
    +policyTypes
    + + +[]PolicyType + + +
    +

    PolicyTypes specifies the types of policies this network policy contains.

    +
    +

    NetworkPolicyStatus +

    +

    +(Appears on:NetworkPolicy) +

    +
    +

    NetworkPolicyStatus defines the observed state of NetworkPolicy.

    +
    + + + + + + + + + + + + + +
    FieldDescription
    +conditions
    + + +[]NetworkPolicyCondition + + +
    +

    Conditions are various conditions of the NetworkPolicy.

    +

    NetworkSpec

    @@ -2364,6 +2963,29 @@ NetworkState +

    PolicyType +(string alias)

    +

    +(Appears on:NetworkPolicySpec) +

    +
    +

    PolicyType is a type of policy.

    +
    + + + + + + + + + + + + +
    ValueDescription

    "Egress"

    PolicyTypeEgress is a policy that describes egress traffic.

    +

    "Ingress"

    PolicyTypeIngress is a policy that describes ingress traffic.

    +

    PrefixSource

    @@ -2384,7 +3006,7 @@ NetworkState value
    - + github.com/onmetal/onmetal-api/api/common/v1alpha1.IPPrefix @@ -2454,7 +3076,7 @@ EphemeralPrefixSource virtualIPRef
    - + Kubernetes core/v1.LocalObjectReference @@ -2512,7 +3134,7 @@ VirtualIPType ipFamily
    - + Kubernetes core/v1.IPFamily @@ -2582,7 +3204,7 @@ VirtualIPPhase phaseLastTransitionTime
    - + Kubernetes meta/v1.Time @@ -2613,7 +3235,7 @@ Kubernetes meta/v1.Time metadata
    - + Kubernetes meta/v1.ObjectMeta @@ -2653,7 +3275,7 @@ VirtualIPType ipFamily
    - + Kubernetes core/v1.IPFamily diff --git a/docs/api-reference/storage.md b/docs/api-reference/storage.md index 911875d7c..4334ea9ca 100644 --- a/docs/api-reference/storage.md +++ b/docs/api-reference/storage.md @@ -56,7 +56,7 @@ string metadata
    - + Kubernetes meta/v1.ObjectMeta @@ -83,7 +83,7 @@ BucketSpec bucketClassRef
    - + Kubernetes core/v1.LocalObjectReference @@ -108,7 +108,7 @@ map[string]string bucketPoolRef
    - + Kubernetes core/v1.LocalObjectReference @@ -183,7 +183,7 @@ string metadata
    - + Kubernetes meta/v1.ObjectMeta @@ -197,7 +197,9 @@ Refer to the Kubernetes API documentation for the fields of the capabilities
    + github.com/onmetal/onmetal-api/api/core/v1alpha1.ResourceList + @@ -240,7 +242,7 @@ string metadata
    - + Kubernetes meta/v1.ObjectMeta @@ -339,7 +341,7 @@ string metadata
    - + Kubernetes meta/v1.ObjectMeta @@ -366,7 +368,7 @@ VolumeSpec volumeClassRef
    - + Kubernetes core/v1.LocalObjectReference @@ -391,7 +393,7 @@ map[string]string volumePoolRef
    - + Kubernetes core/v1.LocalObjectReference @@ -418,7 +420,9 @@ github.com/onmetal/onmetal-api/api/common/v1alpha1.LocalUIDReference resources
    + github.com/onmetal/onmetal-api/api/core/v1alpha1.ResourceList + @@ -440,7 +444,7 @@ string imagePullSecretRef
    - + Kubernetes core/v1.LocalObjectReference @@ -538,7 +542,7 @@ string metadata
    - + Kubernetes meta/v1.ObjectMeta @@ -552,7 +556,9 @@ Refer to the Kubernetes API documentation for the fields of the capabilities
    + github.com/onmetal/onmetal-api/api/core/v1alpha1.ResourceList + @@ -595,7 +601,7 @@ string metadata
    - + Kubernetes meta/v1.ObjectMeta @@ -680,7 +686,7 @@ VolumePoolStatus secretRef
    - + Kubernetes core/v1.LocalObjectReference @@ -735,7 +741,7 @@ BucketConditionType status
    - + Kubernetes core/v1.ConditionStatus @@ -781,7 +787,7 @@ int64 lastTransitionTime
    - + Kubernetes meta/v1.Time @@ -898,7 +904,7 @@ BucketPoolState availableBucketClasses
    - + []Kubernetes core/v1.LocalObjectReference @@ -929,7 +935,7 @@ BucketPoolState bucketClassRef
    - + Kubernetes core/v1.LocalObjectReference @@ -954,7 +960,7 @@ map[string]string bucketPoolRef
    - + Kubernetes core/v1.LocalObjectReference @@ -1039,7 +1045,7 @@ BucketState lastStateTransitionTime
    - + Kubernetes meta/v1.Time @@ -1094,7 +1100,7 @@ This is set by the bucket provider when the bucket is provisioned.

    metadata
    - + Kubernetes meta/v1.ObjectMeta @@ -1121,7 +1127,7 @@ BucketSpec bucketClassRef
    - + Kubernetes core/v1.LocalObjectReference @@ -1146,7 +1152,7 @@ map[string]string bucketPoolRef
    - + Kubernetes core/v1.LocalObjectReference @@ -1195,7 +1201,7 @@ covered by Tolerations will be considered to host the Bucket.

    secretRef
    - + Kubernetes core/v1.LocalObjectReference @@ -1272,7 +1278,7 @@ VolumeConditionType status
    - + Kubernetes core/v1.ConditionStatus @@ -1318,7 +1324,7 @@ int64 lastTransitionTime
    - + Kubernetes meta/v1.Time @@ -1357,7 +1363,7 @@ Kubernetes meta/v1.Time secretRef
    - + Kubernetes core/v1.LocalObjectReference @@ -1428,7 +1434,7 @@ VolumePoolConditionType status
    - + Kubernetes core/v1.ConditionStatus @@ -1474,7 +1480,7 @@ int64 lastTransitionTime
    - + Kubernetes meta/v1.Time @@ -1602,7 +1608,7 @@ VolumePoolState availableVolumeClasses
    - + []Kubernetes core/v1.LocalObjectReference @@ -1615,7 +1621,9 @@ VolumePoolState available
    + github.com/onmetal/onmetal-api/api/core/v1alpha1.ResourceList + @@ -1626,7 +1634,9 @@ github.com/onmetal/onmetal-api/api/core/v1alpha1.ResourceList used
    + github.com/onmetal/onmetal-api/api/core/v1alpha1.ResourceList + @@ -1655,7 +1665,7 @@ github.com/onmetal/onmetal-api/api/core/v1alpha1.ResourceList volumeClassRef
    - + Kubernetes core/v1.LocalObjectReference @@ -1680,7 +1690,7 @@ map[string]string volumePoolRef
    - + Kubernetes core/v1.LocalObjectReference @@ -1707,7 +1717,9 @@ github.com/onmetal/onmetal-api/api/common/v1alpha1.LocalUIDReference resources
    + github.com/onmetal/onmetal-api/api/core/v1alpha1.ResourceList + @@ -1729,7 +1741,7 @@ string imagePullSecretRef
    - + Kubernetes core/v1.LocalObjectReference @@ -1837,7 +1849,7 @@ VolumeState lastStateTransitionTime
    - + Kubernetes meta/v1.Time @@ -1863,7 +1875,7 @@ VolumePhase lastPhaseTransitionTime
    - + Kubernetes meta/v1.Time @@ -1918,7 +1930,7 @@ This is set by the volume provider when the volume is provisioned.

    metadata
    - + Kubernetes meta/v1.ObjectMeta @@ -1945,7 +1957,7 @@ VolumeSpec volumeClassRef
    - + Kubernetes core/v1.LocalObjectReference @@ -1970,7 +1982,7 @@ map[string]string volumePoolRef
    - + Kubernetes core/v1.LocalObjectReference @@ -1997,7 +2009,9 @@ github.com/onmetal/onmetal-api/api/common/v1alpha1.LocalUIDReference resources
    + github.com/onmetal/onmetal-api/api/core/v1alpha1.ResourceList + @@ -2019,7 +2033,7 @@ string imagePullSecretRef
    - + Kubernetes core/v1.LocalObjectReference diff --git a/gen/swagger.json b/gen/swagger.json index 332343b01..5ed2ee835 100644 --- a/gen/swagger.json +++ b/gen/swagger.json @@ -58982,9 +58982,9 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networks": { + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networkpolicies": { "get": { - "description": "list or watch objects of kind Network", + "description": "list or watch objects of kind NetworkPolicy", "consumes": [ "*/*" ], @@ -58999,7 +58999,7 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "operationId": "listNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", + "operationId": "listNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicy", "parameters": [ { "uniqueItems": true, @@ -59069,7 +59069,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyList" } }, "401": { @@ -59079,12 +59079,12 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, "post": { - "description": "create a Network", + "description": "create a NetworkPolicy", "consumes": [ "*/*" ], @@ -59098,14 +59098,14 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "operationId": "createNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", + "operationId": "createNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicy", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, { @@ -59134,19 +59134,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "401": { @@ -59156,12 +59156,12 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, "delete": { - "description": "delete collection of Network", + "description": "delete collection of NetworkPolicy", "consumes": [ "*/*" ], @@ -59175,7 +59175,7 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "operationId": "deleteNetworkingApiOnmetalDeV1alpha1CollectionNamespacedNetwork", + "operationId": "deleteNetworkingApiOnmetalDeV1alpha1CollectionNamespacedNetworkPolicy", "parameters": [ { "name": "body", @@ -59276,7 +59276,7 @@ "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -59298,9 +59298,9 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networks/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networkpolicies/{name}": { "get": { - "description": "read the specified Network", + "description": "read the specified NetworkPolicy", "consumes": [ "*/*" ], @@ -59314,12 +59314,12 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", + "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicy", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "401": { @@ -59329,12 +59329,12 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, "put": { - "description": "replace the specified Network", + "description": "replace the specified NetworkPolicy", "consumes": [ "*/*" ], @@ -59348,14 +59348,14 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", + "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicy", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, { @@ -59384,13 +59384,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "401": { @@ -59400,12 +59400,12 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, "delete": { - "description": "delete a Network", + "description": "delete a NetworkPolicy", "consumes": [ "*/*" ], @@ -59419,7 +59419,7 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "operationId": "deleteNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", + "operationId": "deleteNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicy", "parameters": [ { "name": "body", @@ -59477,12 +59477,12 @@ "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, "patch": { - "description": "partially update the specified Network", + "description": "partially update the specified NetworkPolicy", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -59499,7 +59499,7 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", + "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicy", "parameters": [ { "name": "body", @@ -59542,13 +59542,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "401": { @@ -59558,7 +59558,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -59566,7 +59566,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the Network", + "description": "name of the NetworkPolicy", "name": "name", "in": "path", "required": true @@ -59588,9 +59588,9 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networks/{name}/status": { + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networkpolicies/{name}/status": { "get": { - "description": "read status of the specified Network", + "description": "read status of the specified NetworkPolicy", "consumes": [ "*/*" ], @@ -59604,12 +59604,12 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedNetworkStatus", + "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicyStatus", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "401": { @@ -59619,12 +59619,12 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, "put": { - "description": "replace status of the specified Network", + "description": "replace status of the specified NetworkPolicy", "consumes": [ "*/*" ], @@ -59638,14 +59638,14 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedNetworkStatus", + "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicyStatus", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, { @@ -59674,13 +59674,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "401": { @@ -59690,12 +59690,12 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, "patch": { - "description": "partially update status of the specified Network", + "description": "partially update status of the specified NetworkPolicy", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -59712,7 +59712,7 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkStatus", + "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicyStatus", "parameters": [ { "name": "body", @@ -59755,13 +59755,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "401": { @@ -59771,7 +59771,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -59779,7 +59779,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the Network", + "description": "name of the NetworkPolicy", "name": "name", "in": "path", "required": true @@ -59801,9 +59801,9 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/virtualips": { + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networks": { "get": { - "description": "list or watch objects of kind VirtualIP", + "description": "list or watch objects of kind Network", "consumes": [ "*/*" ], @@ -59818,7 +59818,7 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "operationId": "listNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "operationId": "listNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", "parameters": [ { "uniqueItems": true, @@ -59888,7 +59888,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" } }, "401": { @@ -59898,12 +59898,12 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, "post": { - "description": "create a VirtualIP", + "description": "create a Network", "consumes": [ "*/*" ], @@ -59917,14 +59917,14 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "operationId": "createNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "operationId": "createNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, { @@ -59953,19 +59953,19 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "202": { "description": "Accepted", "schema": { - "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "401": { @@ -59975,12 +59975,12 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, "delete": { - "description": "delete collection of VirtualIP", + "description": "delete collection of Network", "consumes": [ "*/*" ], @@ -59994,7 +59994,7 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "operationId": "deleteNetworkingApiOnmetalDeV1alpha1CollectionNamespacedVirtualIP", + "operationId": "deleteNetworkingApiOnmetalDeV1alpha1CollectionNamespacedNetwork", "parameters": [ { "name": "body", @@ -60095,7 +60095,7 @@ "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -60117,9 +60117,9 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/virtualips/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networks/{name}": { "get": { - "description": "read the specified VirtualIP", + "description": "read the specified Network", "consumes": [ "*/*" ], @@ -60133,12 +60133,12 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "401": { @@ -60148,12 +60148,12 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, "put": { - "description": "replace the specified VirtualIP", + "description": "replace the specified Network", "consumes": [ "*/*" ], @@ -60167,14 +60167,14 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, { @@ -60203,13 +60203,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "401": { @@ -60219,12 +60219,12 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, "delete": { - "description": "delete a VirtualIP", + "description": "delete a Network", "consumes": [ "*/*" ], @@ -60238,7 +60238,7 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "operationId": "deleteNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "operationId": "deleteNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", "parameters": [ { "name": "body", @@ -60296,12 +60296,12 @@ "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, "patch": { - "description": "partially update the specified VirtualIP", + "description": "partially update the specified Network", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -60318,7 +60318,7 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", "parameters": [ { "name": "body", @@ -60361,13 +60361,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "401": { @@ -60377,7 +60377,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -60385,7 +60385,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the VirtualIP", + "description": "name of the Network", "name": "name", "in": "path", "required": true @@ -60407,9 +60407,9 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/virtualips/{name}/status": { + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networks/{name}/status": { "get": { - "description": "read status of the specified VirtualIP", + "description": "read status of the specified Network", "consumes": [ "*/*" ], @@ -60423,12 +60423,12 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIPStatus", + "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedNetworkStatus", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "401": { @@ -60438,12 +60438,12 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, "put": { - "description": "replace status of the specified VirtualIP", + "description": "replace status of the specified Network", "consumes": [ "*/*" ], @@ -60457,14 +60457,14 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIPStatus", + "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedNetworkStatus", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, { @@ -60493,13 +60493,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "401": { @@ -60509,12 +60509,12 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, "patch": { - "description": "partially update status of the specified VirtualIP", + "description": "partially update status of the specified Network", "consumes": [ "application/json-patch+json", "application/merge-patch+json", @@ -60531,7 +60531,7 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIPStatus", + "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkStatus", "parameters": [ { "name": "body", @@ -60574,13 +60574,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "201": { "description": "Created", "schema": { - "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "401": { @@ -60590,7 +60590,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -60598,7 +60598,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the VirtualIP", + "description": "name of the Network", "name": "name", "in": "path", "required": true @@ -60620,9 +60620,9 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/natgatewayroutings": { + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/virtualips": { "get": { - "description": "list or watch objects of kind NATGatewayRouting", + "description": "list or watch objects of kind VirtualIP", "consumes": [ "*/*" ], @@ -60637,12 +60637,77 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "operationId": "listNetworkingApiOnmetalDeV1alpha1NATGatewayRoutingForAllNamespaces", + "operationId": "listNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "parameters": [ + { + "uniqueItems": true, + "type": "boolean", + "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.", + "name": "allowWatchBookmarks", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "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.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "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.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "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", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "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", + "name": "resourceVersionMatch", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayRoutingList" + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" } }, "401": { @@ -60652,13 +60717,876 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NATGatewayRouting", + "kind": "VirtualIP", "version": "v1alpha1" } }, - "parameters": [ - { - "uniqueItems": true, + "post": { + "description": "create a VirtualIP", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml" + ], + "schemes": [ + "https" + ], + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "operationId": "createNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + { + "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" + }, + { + "uniqueItems": true, + "type": "string", + "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.", + "name": "fieldManager", + "in": "query" + }, + { + "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, provided that the `ServerSideFieldValidation` feature gate is also enabled. 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 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - 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 when the `ServerSideFieldValidation` feature gate is enabled. - 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.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "delete": { + "description": "delete collection of VirtualIP", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml" + ], + "schemes": [ + "https" + ], + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "operationId": "deleteNetworkingApiOnmetalDeV1alpha1CollectionNamespacedVirtualIP", + "parameters": [ + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "uniqueItems": true, + "type": "string", + "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.", + "name": "continue", + "in": "query" + }, + { + "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" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "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.", + "name": "gracePeriodSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "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.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "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.", + "name": "orphanDependents", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "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.", + "name": "propagationPolicy", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "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", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "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", + "name": "resourceVersionMatch", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + } + ], + "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": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/virtualips/{name}": { + "get": { + "description": "read the specified VirtualIP", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml" + ], + "schemes": [ + "https" + ], + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "put": { + "description": "replace the specified VirtualIP", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml" + ], + "schemes": [ + "https" + ], + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + { + "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" + }, + { + "uniqueItems": true, + "type": "string", + "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.", + "name": "fieldManager", + "in": "query" + }, + { + "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, provided that the `ServerSideFieldValidation` feature gate is also enabled. 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 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - 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 when the `ServerSideFieldValidation` feature gate is enabled. - 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.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "delete": { + "description": "delete a VirtualIP", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml" + ], + "schemes": [ + "https" + ], + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "operationId": "deleteNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "parameters": [ + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "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" + }, + { + "uniqueItems": true, + "type": "integer", + "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.", + "name": "gracePeriodSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "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.", + "name": "orphanDependents", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "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.", + "name": "propagationPolicy", + "in": "query" + } + ], + "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.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "patch": { + "description": "partially update the specified VirtualIP", + "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": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "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" + }, + { + "uniqueItems": true, + "type": "string", + "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).", + "name": "fieldManager", + "in": "query" + }, + { + "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, provided that the `ServerSideFieldValidation` feature gate is also enabled. 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 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - 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 when the `ServerSideFieldValidation` feature gate is enabled. - 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" + }, + { + "uniqueItems": true, + "type": "boolean", + "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.", + "name": "force", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the VirtualIP", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/virtualips/{name}/status": { + "get": { + "description": "read status of the specified VirtualIP", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml" + ], + "schemes": [ + "https" + ], + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIPStatus", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "put": { + "description": "replace status of the specified VirtualIP", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml" + ], + "schemes": [ + "https" + ], + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIPStatus", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + { + "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" + }, + { + "uniqueItems": true, + "type": "string", + "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.", + "name": "fieldManager", + "in": "query" + }, + { + "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, provided that the `ServerSideFieldValidation` feature gate is also enabled. 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 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - 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 when the `ServerSideFieldValidation` feature gate is enabled. - 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.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "patch": { + "description": "partially update status of the specified VirtualIP", + "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": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIPStatus", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + }, + { + "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" + }, + { + "uniqueItems": true, + "type": "string", + "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).", + "name": "fieldManager", + "in": "query" + }, + { + "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, provided that the `ServerSideFieldValidation` feature gate is also enabled. 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 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - 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 when the `ServerSideFieldValidation` feature gate is enabled. - 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" + }, + { + "uniqueItems": true, + "type": "boolean", + "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.", + "name": "force", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the VirtualIP", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/networking.api.onmetal.de/v1alpha1/natgatewayroutings": { + "get": { + "description": "list or watch objects of kind NATGatewayRouting", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/json;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "operationId": "listNetworkingApiOnmetalDeV1alpha1NATGatewayRoutingForAllNamespaces", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayRoutingList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "NATGatewayRouting", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "boolean", + "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.", + "name": "allowWatchBookmarks", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "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.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "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.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "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", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "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", + "name": "resourceVersionMatch", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/networking.api.onmetal.de/v1alpha1/natgateways": { + "get": { + "description": "list or watch objects of kind NATGateway", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/json;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "operationId": "listNetworkingApiOnmetalDeV1alpha1NATGatewayForAllNamespaces", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "NATGateway", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "uniqueItems": true, "type": "boolean", "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.", "name": "allowWatchBookmarks", @@ -60729,9 +61657,9 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/natgateways": { + "/apis/networking.api.onmetal.de/v1alpha1/networkinterfaces": { "get": { - "description": "list or watch objects of kind NATGateway", + "description": "list or watch objects of kind NetworkInterface", "consumes": [ "*/*" ], @@ -60746,12 +61674,12 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "operationId": "listNetworkingApiOnmetalDeV1alpha1NATGatewayForAllNamespaces", + "operationId": "listNetworkingApiOnmetalDeV1alpha1NetworkInterfaceForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayList" + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkInterfaceList" } }, "401": { @@ -60761,7 +61689,7 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NATGateway", + "kind": "NetworkInterface", "version": "v1alpha1" } }, @@ -60838,9 +61766,9 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/networkinterfaces": { + "/apis/networking.api.onmetal.de/v1alpha1/networkpolicies": { "get": { - "description": "list or watch objects of kind NetworkInterface", + "description": "list or watch objects of kind NetworkPolicy", "consumes": [ "*/*" ], @@ -60855,12 +61783,12 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "operationId": "listNetworkingApiOnmetalDeV1alpha1NetworkInterfaceForAllNamespaces", + "operationId": "listNetworkingApiOnmetalDeV1alpha1NetworkPolicyForAllNamespaces", "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkInterfaceList" + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyList" } }, "401": { @@ -60870,7 +61798,7 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NetworkInterface", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -61492,9 +62420,235 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/loadbalancers": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/loadbalancers": { + "get": { + "description": "watch individual changes to a list of LoadBalancer. deprecated: use the 'watch' parameter with a list operation instead.", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/json;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "operationId": "watchNetworkingApiOnmetalDeV1alpha1LoadBalancerListForAllNamespaces", + "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.api.onmetal.de", + "kind": "LoadBalancer", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "boolean", + "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.", + "name": "allowWatchBookmarks", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "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.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "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.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "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", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "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", + "name": "resourceVersionMatch", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/aliasprefixes": { + "get": { + "description": "watch individual changes to a list of AliasPrefix. deprecated: use the 'watch' parameter with a list operation instead.", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/json;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedAliasPrefixList", + "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.api.onmetal.de", + "kind": "AliasPrefix", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "boolean", + "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.", + "name": "allowWatchBookmarks", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "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.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "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.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "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", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "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", + "name": "resourceVersionMatch", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/aliasprefixes/{name}": { "get": { - "description": "watch individual changes to a list of LoadBalancer. deprecated: use the 'watch' parameter with a list operation instead.", + "description": "watch changes to an object of kind AliasPrefix. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "consumes": [ "*/*" ], @@ -61509,7 +62663,7 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "operationId": "watchNetworkingApiOnmetalDeV1alpha1LoadBalancerListForAllNamespaces", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedAliasPrefix", "responses": { "200": { "description": "OK", @@ -61521,10 +62675,10 @@ "description": "Unauthorized" } }, - "x-kubernetes-action": "watchlist", + "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "LoadBalancer", + "kind": "AliasPrefix", "version": "v1alpha1" } }, @@ -61564,6 +62718,22 @@ "name": "limit", "in": "query" }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the AliasPrefix", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, { "uniqueItems": true, "type": "string", @@ -61601,9 +62771,9 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/aliasprefixes": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/aliasprefixroutings": { "get": { - "description": "watch individual changes to a list of AliasPrefix. deprecated: use the 'watch' parameter with a list operation instead.", + "description": "watch individual changes to a list of AliasPrefixRouting. deprecated: use the 'watch' parameter with a list operation instead.", "consumes": [ "*/*" ], @@ -61618,7 +62788,7 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedAliasPrefixList", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedAliasPrefixRoutingList", "responses": { "200": { "description": "OK", @@ -61633,7 +62803,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "AliasPrefix", + "kind": "AliasPrefixRouting", "version": "v1alpha1" } }, @@ -61718,9 +62888,9 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/aliasprefixes/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/aliasprefixroutings/{name}": { "get": { - "description": "watch changes to an object of kind AliasPrefix. 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 AliasPrefixRouting. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "consumes": [ "*/*" ], @@ -61735,7 +62905,7 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedAliasPrefix", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedAliasPrefixRouting", "responses": { "200": { "description": "OK", @@ -61750,7 +62920,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "AliasPrefix", + "kind": "AliasPrefixRouting", "version": "v1alpha1" } }, @@ -61793,7 +62963,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the AliasPrefix", + "description": "name of the AliasPrefixRouting", "name": "name", "in": "path", "required": true @@ -61843,9 +63013,9 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/aliasprefixroutings": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/loadbalancerroutings": { "get": { - "description": "watch individual changes to a list of AliasPrefixRouting. deprecated: use the 'watch' parameter with a list operation instead.", + "description": "watch individual changes to a list of LoadBalancerRouting. deprecated: use the 'watch' parameter with a list operation instead.", "consumes": [ "*/*" ], @@ -61860,7 +63030,7 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedAliasPrefixRoutingList", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedLoadBalancerRoutingList", "responses": { "200": { "description": "OK", @@ -61875,7 +63045,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "AliasPrefixRouting", + "kind": "LoadBalancerRouting", "version": "v1alpha1" } }, @@ -61960,9 +63130,9 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/aliasprefixroutings/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/loadbalancerroutings/{name}": { "get": { - "description": "watch changes to an object of kind AliasPrefixRouting. 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 LoadBalancerRouting. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "consumes": [ "*/*" ], @@ -61977,7 +63147,7 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedAliasPrefixRouting", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedLoadBalancerRouting", "responses": { "200": { "description": "OK", @@ -61992,7 +63162,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "AliasPrefixRouting", + "kind": "LoadBalancerRouting", "version": "v1alpha1" } }, @@ -62035,7 +63205,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the AliasPrefixRouting", + "description": "name of the LoadBalancerRouting", "name": "name", "in": "path", "required": true @@ -62085,9 +63255,9 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/loadbalancerroutings": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/loadbalancers": { "get": { - "description": "watch individual changes to a list of LoadBalancerRouting. deprecated: use the 'watch' parameter with a list operation instead.", + "description": "watch individual changes to a list of LoadBalancer. deprecated: use the 'watch' parameter with a list operation instead.", "consumes": [ "*/*" ], @@ -62102,7 +63272,7 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedLoadBalancerRoutingList", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedLoadBalancerList", "responses": { "200": { "description": "OK", @@ -62117,7 +63287,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "LoadBalancerRouting", + "kind": "LoadBalancer", "version": "v1alpha1" } }, @@ -62202,9 +63372,9 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/loadbalancerroutings/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/loadbalancers/{name}": { "get": { - "description": "watch changes to an object of kind LoadBalancerRouting. 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 LoadBalancer. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "consumes": [ "*/*" ], @@ -62219,7 +63389,7 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedLoadBalancerRouting", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedLoadBalancer", "responses": { "200": { "description": "OK", @@ -62234,7 +63404,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "LoadBalancerRouting", + "kind": "LoadBalancer", "version": "v1alpha1" } }, @@ -62277,7 +63447,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the LoadBalancerRouting", + "description": "name of the LoadBalancer", "name": "name", "in": "path", "required": true @@ -62327,9 +63497,9 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/loadbalancers": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/natgatewayroutings": { "get": { - "description": "watch individual changes to a list of LoadBalancer. deprecated: use the 'watch' parameter with a list operation instead.", + "description": "watch individual changes to a list of NATGatewayRouting. deprecated: use the 'watch' parameter with a list operation instead.", "consumes": [ "*/*" ], @@ -62344,7 +63514,7 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedLoadBalancerList", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNATGatewayRoutingList", "responses": { "200": { "description": "OK", @@ -62359,7 +63529,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "LoadBalancer", + "kind": "NATGatewayRouting", "version": "v1alpha1" } }, @@ -62444,9 +63614,9 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/loadbalancers/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/natgatewayroutings/{name}": { "get": { - "description": "watch changes to an object of kind LoadBalancer. 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 NATGatewayRouting. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "consumes": [ "*/*" ], @@ -62461,7 +63631,7 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedLoadBalancer", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNATGatewayRouting", "responses": { "200": { "description": "OK", @@ -62476,7 +63646,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "LoadBalancer", + "kind": "NATGatewayRouting", "version": "v1alpha1" } }, @@ -62519,7 +63689,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the LoadBalancer", + "description": "name of the NATGatewayRouting", "name": "name", "in": "path", "required": true @@ -62569,9 +63739,9 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/natgatewayroutings": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/natgateways": { "get": { - "description": "watch individual changes to a list of NATGatewayRouting. deprecated: use the 'watch' parameter with a list operation instead.", + "description": "watch individual changes to a list of NATGateway. deprecated: use the 'watch' parameter with a list operation instead.", "consumes": [ "*/*" ], @@ -62586,7 +63756,7 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNATGatewayRoutingList", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNATGatewayList", "responses": { "200": { "description": "OK", @@ -62601,7 +63771,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NATGatewayRouting", + "kind": "NATGateway", "version": "v1alpha1" } }, @@ -62686,9 +63856,9 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/natgatewayroutings/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/natgateways/{name}": { "get": { - "description": "watch changes to an object of kind NATGatewayRouting. 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 NATGateway. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "consumes": [ "*/*" ], @@ -62703,7 +63873,7 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNATGatewayRouting", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNATGateway", "responses": { "200": { "description": "OK", @@ -62718,7 +63888,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NATGatewayRouting", + "kind": "NATGateway", "version": "v1alpha1" } }, @@ -62761,7 +63931,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the NATGatewayRouting", + "description": "name of the NATGateway", "name": "name", "in": "path", "required": true @@ -62811,9 +63981,9 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/natgateways": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/networkinterfaces": { "get": { - "description": "watch individual changes to a list of NATGateway. deprecated: use the 'watch' parameter with a list operation instead.", + "description": "watch individual changes to a list of NetworkInterface. deprecated: use the 'watch' parameter with a list operation instead.", "consumes": [ "*/*" ], @@ -62828,7 +63998,7 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNATGatewayList", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkInterfaceList", "responses": { "200": { "description": "OK", @@ -62843,7 +64013,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NATGateway", + "kind": "NetworkInterface", "version": "v1alpha1" } }, @@ -62928,9 +64098,9 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/natgateways/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/networkinterfaces/{name}": { "get": { - "description": "watch changes to an object of kind NATGateway. 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 NetworkInterface. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "consumes": [ "*/*" ], @@ -62945,7 +64115,7 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNATGateway", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkInterface", "responses": { "200": { "description": "OK", @@ -62960,7 +64130,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NATGateway", + "kind": "NetworkInterface", "version": "v1alpha1" } }, @@ -63003,7 +64173,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the NATGateway", + "description": "name of the NetworkInterface", "name": "name", "in": "path", "required": true @@ -63053,9 +64223,9 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/networkinterfaces": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/networkpolicies": { "get": { - "description": "watch individual changes to a list of NetworkInterface. 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": [ "*/*" ], @@ -63070,7 +64240,7 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkInterfaceList", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicyList", "responses": { "200": { "description": "OK", @@ -63085,7 +64255,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NetworkInterface", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -63170,9 +64340,9 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/networkinterfaces/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/networkpolicies/{name}": { "get": { - "description": "watch changes to an object of kind NetworkInterface. 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 NetworkPolicy. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "consumes": [ "*/*" ], @@ -63187,7 +64357,7 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkInterface", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicy", "responses": { "200": { "description": "OK", @@ -63202,7 +64372,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NetworkInterface", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -63245,7 +64415,7 @@ { "uniqueItems": true, "type": "string", - "description": "name of the NetworkInterface", + "description": "name of the NetworkPolicy", "name": "name", "in": "path", "required": true @@ -63779,9 +64949,118 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/natgatewayroutings": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/natgatewayroutings": { + "get": { + "description": "watch individual changes to a list of NATGatewayRouting. deprecated: use the 'watch' parameter with a list operation instead.", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/json;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NATGatewayRoutingListForAllNamespaces", + "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.api.onmetal.de", + "kind": "NATGatewayRouting", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "boolean", + "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.", + "name": "allowWatchBookmarks", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "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.", + "name": "continue", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "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.", + "name": "limit", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "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", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "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", + "name": "resourceVersionMatch", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/networking.api.onmetal.de/v1alpha1/watch/natgateways": { "get": { - "description": "watch individual changes to a list of NATGatewayRouting. deprecated: use the 'watch' parameter with a list operation instead.", + "description": "watch individual changes to a list of NATGateway. deprecated: use the 'watch' parameter with a list operation instead.", "consumes": [ "*/*" ], @@ -63796,7 +65075,7 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NATGatewayRoutingListForAllNamespaces", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NATGatewayListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -63811,7 +65090,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NATGatewayRouting", + "kind": "NATGateway", "version": "v1alpha1" } }, @@ -63888,9 +65167,9 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/natgateways": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/networkinterfaces": { "get": { - "description": "watch individual changes to a list of NATGateway. deprecated: use the 'watch' parameter with a list operation instead.", + "description": "watch individual changes to a list of NetworkInterface. deprecated: use the 'watch' parameter with a list operation instead.", "consumes": [ "*/*" ], @@ -63905,7 +65184,7 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NATGatewayListForAllNamespaces", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NetworkInterfaceListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -63920,7 +65199,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NATGateway", + "kind": "NetworkInterface", "version": "v1alpha1" } }, @@ -63997,9 +65276,9 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/networkinterfaces": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/networkpolicies": { "get": { - "description": "watch individual changes to a list of NetworkInterface. 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": [ "*/*" ], @@ -64014,7 +65293,7 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NetworkInterfaceListForAllNamespaces", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NetworkPolicyListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -64029,7 +65308,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NetworkInterface", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -87759,6 +89038,33 @@ } } }, + "com.github.onmetal.onmetal-api.api.core.v1alpha1.ObjectSelector": { + "description": "ObjectSelector specifies how to select objects of a certain kind.", + "type": "object", + "required": [ + "kind" + ], + "properties": { + "kind": { + "description": "Kind is the kind of object to select.", + "type": "string" + }, + "matchExpressions": { + "description": "matchExpressions is a list of label selector requirements. The requirements are ANDed.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement" + } + }, + "matchLabels": { + "description": "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \"key\", the operator is \"In\", and the values array contains only \"value\". The requirements are ANDed.", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, "com.github.onmetal.onmetal-api.api.core.v1alpha1.ResourceQuota": { "description": "ResourceQuota is the Schema for the resourcequotas API", "type": "object", @@ -88321,6 +89627,26 @@ } } }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.IPBlock": { + "description": "IPBlock specifies an ip block with optional exceptions.", + "type": "object", + "required": [ + "cidr" + ], + "properties": { + "cidr": { + "description": "CIDR is a string representing the ip block.", + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.common.v1alpha1.IPPrefix" + }, + "except": { + "description": "Except is a slice of CIDRs that should not be included within the specified CIDR. Values will be rejected if they are outside CIDR.", + "type": "array", + "items": { + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.common.v1alpha1.IPPrefix" + } + } + } + }, "com.github.onmetal.onmetal-api.api.networking.v1alpha1.IPSource": { "description": "IPSource is the definition of how to obtain an IP.", "type": "object", @@ -88508,6 +89834,13 @@ "type": "string" } }, + "ips": { + "description": "IPs are the ips to use. Can only be used when Type is LoadBalancerTypeInternal.", + "type": "array", + "items": { + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.IPSource" + } + }, "networkInterfaceSelector": { "description": "NetworkInterfaceSelector defines the NetworkInterfaces for which this LoadBalancer should be applied", "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" @@ -89074,6 +90407,232 @@ } } }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy": { + "description": "NetworkPolicy is the Schema for the networkpolicies 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.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicySpec" + }, + "status": { + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyStatus" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "networking.api.onmetal.de", + "kind": "NetworkPolicy", + "version": "v1alpha1" + } + ] + }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyCondition": { + "description": "NetworkPolicyCondition is one of the conditions of a network policy.", + "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" + }, + "observedGeneration": { + "description": "ObservedGeneration represents the .metadata.generation that the condition was set based upon.", + "type": "integer", + "format": "int64" + }, + "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.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyEgressRule": { + "description": "NetworkPolicyEgressRule describes a rule to regulate egress traffic with.", + "type": "object", + "properties": { + "ports": { + "description": "Ports specifies the list of destination ports that can be called with this rule. Each item in this list is combined using a logical OR. Empty matches all ports. As soon as a single item is present, only these ports are allowed.", + "type": "array", + "items": { + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyPort" + } + }, + "to": { + "description": "To specifies the list of destinations which the selected network interfaces should be able to send traffic to. Fields are combined using a logical OR. Empty matches all destinations. As soon as a single item is present, only these peers are allowed.", + "type": "array", + "items": { + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyPeer" + } + } + } + }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyIngressRule": { + "description": "NetworkPolicyIngressRule describes a rule to regulate ingress traffic with.", + "type": "object", + "properties": { + "from": { + "description": "From specifies the list of sources which should be able to send traffic to the selected network interfaces. Fields are combined using a logical OR. Empty matches all sources. As soon as a single item is present, only these peers are allowed.", + "type": "array", + "items": { + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyPeer" + } + }, + "ports": { + "description": "Ports specifies the list of ports which should be made accessible for this rule. Each item in this list is combined using a logical OR. Empty matches all ports. As soon as a single item is present, only these ports are allowed.", + "type": "array", + "items": { + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyPort" + } + } + } + }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyList": { + "description": "NetworkPolicyList contains a list of NetworkPolicy.", + "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.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" + } + }, + "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": "networking.api.onmetal.de", + "kind": "NetworkPolicyList", + "version": "v1alpha1" + } + ] + }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyPeer": { + "description": "NetworkPolicyPeer describes a peer to allow traffic to / from.", + "type": "object", + "properties": { + "ipBlock": { + "description": "IPBlock specifies the ip block from or to which network traffic may come.", + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.IPBlock" + }, + "objectSelector": { + "description": "ObjectSelector selects peers with the given kind matching the label selector. Exclusive with other peer specifiers.", + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.core.v1alpha1.ObjectSelector" + } + } + }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyPort": { + "description": "NetworkPolicyPort describes a port to allow traffic on", + "type": "object", + "properties": { + "endPort": { + "description": "EndPort indicates that the range of ports from Port to EndPort, inclusive, should be allowed by the policy. This field cannot be defined if the port field is not defined. The endPort must be equal or greater than port.", + "type": "integer", + "format": "int32" + }, + "port": { + "description": "The port on the given protocol. If this field is not provided, this matches all port names and numbers. If present, only traffic on the specified protocol AND port will be matched.", + "type": "integer", + "format": "int32" + }, + "protocol": { + "description": "Protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this field defaults to TCP.", + "type": "string" + } + } + }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicySpec": { + "description": "NetworkPolicySpec defines the desired state of NetworkPolicy.", + "type": "object", + "required": [ + "networkRef", + "networkInterfaceSelector" + ], + "properties": { + "egress": { + "description": "Egress specifies rules for egress traffic.", + "type": "array", + "items": { + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyEgressRule" + } + }, + "ingress": { + "description": "Ingress specifies rules for ingress traffic.", + "type": "array", + "items": { + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyIngressRule" + } + }, + "networkInterfaceSelector": { + "description": "NetworkInterfaceSelector selects the network interfaces that are subject to this policy.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" + }, + "networkRef": { + "description": "NetworkRef is the network to regulate using this policy.", + "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference" + }, + "policyTypes": { + "description": "PolicyTypes specifies the types of policies this network policy contains.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyStatus": { + "description": "NetworkPolicyStatus defines the observed state of NetworkPolicy.", + "type": "object", + "properties": { + "conditions": { + "description": "Conditions are various conditions of the NetworkPolicy.", + "type": "array", + "items": { + "$ref": "#/definitions/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyCondition" + } + } + } + }, "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkSpec": { "description": "NetworkSpec defines the desired state of Network", "type": "object", diff --git a/gen/v3/apis__compute.api.onmetal.de__v1alpha1_openapi.json b/gen/v3/apis__compute.api.onmetal.de__v1alpha1_openapi.json index ccab29818..f971c7889 100644 --- a/gen/v3/apis__compute.api.onmetal.de__v1alpha1_openapi.json +++ b/gen/v3/apis__compute.api.onmetal.de__v1alpha1_openapi.json @@ -15680,13 +15680,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networks": { + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networkpolicies": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "list or watch objects of kind Network", - "operationId": "listNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", + "description": "list or watch objects of kind NetworkPolicy", + "operationId": "listNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicy", "parameters": [ { "name": "allowWatchBookmarks", @@ -15776,17 +15776,17 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyList" } }, "application/json;stream=watch": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyList" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyList" } } } @@ -15798,7 +15798,7 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -15806,8 +15806,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "create a Network", - "operationId": "createNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", + "description": "create a NetworkPolicy", + "operationId": "createNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicy", "parameters": [ { "name": "dryRun", @@ -15841,7 +15841,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -15852,12 +15852,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -15867,12 +15867,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -15882,12 +15882,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -15899,7 +15899,7 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -15907,8 +15907,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "delete collection of Network", - "operationId": "deleteNetworkingApiOnmetalDeV1alpha1CollectionNamespacedNetwork", + "description": "delete collection of NetworkPolicy", + "operationId": "deleteNetworkingApiOnmetalDeV1alpha1CollectionNamespacedNetworkPolicy", "parameters": [ { "name": "continue", @@ -16042,7 +16042,7 @@ "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -16068,25 +16068,25 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networks/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networkpolicies/{name}": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "read the specified Network", - "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", + "description": "read the specified NetworkPolicy", + "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicy", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16098,7 +16098,7 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -16106,8 +16106,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "replace the specified Network", - "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", + "description": "replace the specified NetworkPolicy", + "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicy", "parameters": [ { "name": "dryRun", @@ -16141,7 +16141,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16152,12 +16152,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16167,12 +16167,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16184,7 +16184,7 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -16192,8 +16192,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "delete a Network", - "operationId": "deleteNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", + "description": "delete a NetworkPolicy", + "operationId": "deleteNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicy", "parameters": [ { "name": "dryRun", @@ -16279,7 +16279,7 @@ "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -16287,8 +16287,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "partially update the specified Network", - "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", + "description": "partially update the specified NetworkPolicy", + "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicy", "parameters": [ { "name": "dryRun", @@ -16357,12 +16357,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16372,12 +16372,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16389,7 +16389,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -16397,7 +16397,7 @@ { "name": "name", "in": "path", - "description": "name of the Network", + "description": "name of the NetworkPolicy", "required": true, "schema": { "type": "string", @@ -16425,25 +16425,25 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networks/{name}/status": { + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networkpolicies/{name}/status": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "read status of the specified Network", - "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedNetworkStatus", + "description": "read status of the specified NetworkPolicy", + "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicyStatus", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16455,7 +16455,7 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -16463,8 +16463,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "replace status of the specified Network", - "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedNetworkStatus", + "description": "replace status of the specified NetworkPolicy", + "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicyStatus", "parameters": [ { "name": "dryRun", @@ -16498,7 +16498,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16509,12 +16509,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16524,12 +16524,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16541,7 +16541,7 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -16549,8 +16549,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "partially update status of the specified Network", - "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkStatus", + "description": "partially update status of the specified NetworkPolicy", + "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicyStatus", "parameters": [ { "name": "dryRun", @@ -16619,12 +16619,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16634,12 +16634,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16651,7 +16651,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -16659,7 +16659,7 @@ { "name": "name", "in": "path", - "description": "name of the Network", + "description": "name of the NetworkPolicy", "required": true, "schema": { "type": "string", @@ -16687,13 +16687,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/virtualips": { + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networks": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "list or watch objects of kind VirtualIP", - "operationId": "listNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "description": "list or watch objects of kind Network", + "operationId": "listNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", "parameters": [ { "name": "allowWatchBookmarks", @@ -16783,17 +16783,17 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" } }, "application/json;stream=watch": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" } } } @@ -16805,7 +16805,7 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -16813,8 +16813,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "create a VirtualIP", - "operationId": "createNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "description": "create a Network", + "operationId": "createNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", "parameters": [ { "name": "dryRun", @@ -16848,7 +16848,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -16859,12 +16859,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -16874,12 +16874,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -16889,12 +16889,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -16906,7 +16906,7 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -16914,8 +16914,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "delete collection of VirtualIP", - "operationId": "deleteNetworkingApiOnmetalDeV1alpha1CollectionNamespacedVirtualIP", + "description": "delete collection of Network", + "operationId": "deleteNetworkingApiOnmetalDeV1alpha1CollectionNamespacedNetwork", "parameters": [ { "name": "continue", @@ -17049,7 +17049,7 @@ "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -17075,25 +17075,25 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/virtualips/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networks/{name}": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "read the specified VirtualIP", - "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "description": "read the specified Network", + "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17105,7 +17105,7 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -17113,8 +17113,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "replace the specified VirtualIP", - "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "description": "replace the specified Network", + "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", "parameters": [ { "name": "dryRun", @@ -17148,7 +17148,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17159,12 +17159,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17174,12 +17174,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17191,7 +17191,7 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -17199,8 +17199,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "delete a VirtualIP", - "operationId": "deleteNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "description": "delete a Network", + "operationId": "deleteNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", "parameters": [ { "name": "dryRun", @@ -17286,7 +17286,7 @@ "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -17294,8 +17294,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "partially update the specified VirtualIP", - "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "description": "partially update the specified Network", + "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", "parameters": [ { "name": "dryRun", @@ -17364,12 +17364,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17379,12 +17379,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17396,7 +17396,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -17404,7 +17404,7 @@ { "name": "name", "in": "path", - "description": "name of the VirtualIP", + "description": "name of the Network", "required": true, "schema": { "type": "string", @@ -17432,25 +17432,25 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/virtualips/{name}/status": { + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networks/{name}/status": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "read status of the specified VirtualIP", - "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIPStatus", + "description": "read status of the specified Network", + "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedNetworkStatus", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17462,7 +17462,7 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -17470,8 +17470,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "replace status of the specified VirtualIP", - "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIPStatus", + "description": "replace status of the specified Network", + "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedNetworkStatus", "parameters": [ { "name": "dryRun", @@ -17505,7 +17505,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17516,12 +17516,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17531,12 +17531,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17548,7 +17548,7 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -17556,8 +17556,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "partially update status of the specified VirtualIP", - "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIPStatus", + "description": "partially update status of the specified Network", + "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkStatus", "parameters": [ { "name": "dryRun", @@ -17626,12 +17626,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17641,12 +17641,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17658,7 +17658,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -17666,7 +17666,7 @@ { "name": "name", "in": "path", - "description": "name of the VirtualIP", + "description": "name of the Network", "required": true, "schema": { "type": "string", @@ -17694,56 +17694,1327 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/natgatewayroutings": { + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/virtualips": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "list or watch objects of kind NATGatewayRouting", - "operationId": "listNetworkingApiOnmetalDeV1alpha1NATGatewayRoutingForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayRoutingList" - } - }, - "application/json;stream=watch": { - "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayRoutingList" - } - }, - "application/yaml": { - "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayRoutingList" - } - } + "description": "list or watch objects of kind VirtualIP", + "operationId": "listNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "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 } }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "networking.api.onmetal.de", - "kind": "NATGatewayRouting", - "version": "v1alpha1" - } - }, - "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": "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.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" + } + }, + "application/json;stream=watch": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "post": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "create a VirtualIP", + "operationId": "createNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "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, provided that the `ServerSideFieldValidation` feature gate is also enabled. 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 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - 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 when the `ServerSideFieldValidation` feature gate is enabled. - 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.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "202": { + "description": "Accepted", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "delete": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "delete collection of VirtualIP", + "operationId": "deleteNetworkingApiOnmetalDeV1alpha1CollectionNamespacedVirtualIP", + "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": "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": "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" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "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", + "description": "If 'true', then the output is pretty printed.", + "schema": { + "type": "string", + "uniqueItems": true + } + } + ] + }, + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/virtualips/{name}": { + "get": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "read the specified VirtualIP", + "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "put": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "replace the specified VirtualIP", + "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "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, provided that the `ServerSideFieldValidation` feature gate is also enabled. 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 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - 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 when the `ServerSideFieldValidation` feature gate is enabled. - 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.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "delete": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "delete a VirtualIP", + "operationId": "deleteNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "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": "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" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "patch": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "partially update the specified VirtualIP", + "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "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, provided that the `ServerSideFieldValidation` feature gate is also enabled. 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 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - 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 when the `ServerSideFieldValidation` feature gate is enabled. - 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" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "name": "name", + "in": "path", + "description": "name of the VirtualIP", + "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.", + "schema": { + "type": "string", + "uniqueItems": true + } + } + ] + }, + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/virtualips/{name}/status": { + "get": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "read status of the specified VirtualIP", + "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIPStatus", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "put": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "replace status of the specified VirtualIP", + "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIPStatus", + "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, provided that the `ServerSideFieldValidation` feature gate is also enabled. 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 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - 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 when the `ServerSideFieldValidation` feature gate is enabled. - 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.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "patch": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "partially update status of the specified VirtualIP", + "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIPStatus", + "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, provided that the `ServerSideFieldValidation` feature gate is also enabled. 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 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - 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 when the `ServerSideFieldValidation` feature gate is enabled. - 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" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "name": "name", + "in": "path", + "description": "name of the VirtualIP", + "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.", + "schema": { + "type": "string", + "uniqueItems": true + } + } + ] + }, + "/apis/networking.api.onmetal.de/v1alpha1/natgatewayroutings": { + "get": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "list or watch objects of kind NATGatewayRouting", + "operationId": "listNetworkingApiOnmetalDeV1alpha1NATGatewayRoutingForAllNamespaces", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayRoutingList" + } + }, + "application/json;stream=watch": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayRoutingList" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayRoutingList" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "NATGatewayRouting", + "version": "v1alpha1" + } + }, + "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.", + "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": "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/networking.api.onmetal.de/v1alpha1/natgateways": { + "get": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "list or watch objects of kind NATGateway", + "operationId": "listNetworkingApiOnmetalDeV1alpha1NATGatewayForAllNamespaces", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayList" + } + }, + "application/json;stream=watch": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayList" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayList" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "NATGateway", + "version": "v1alpha1" + } + }, + "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.", + "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": "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/networking.api.onmetal.de/v1alpha1/networkinterfaces": { + "get": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "list or watch objects of kind NetworkInterface", + "operationId": "listNetworkingApiOnmetalDeV1alpha1NetworkInterfaceForAllNamespaces", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkInterfaceList" + } + }, + "application/json;stream=watch": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkInterfaceList" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkInterfaceList" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "NetworkInterface", + "version": "v1alpha1" + } + }, + "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.", @@ -17826,30 +19097,30 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/natgateways": { + "/apis/networking.api.onmetal.de/v1alpha1/networkpolicies": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "list or watch objects of kind NATGateway", - "operationId": "listNetworkingApiOnmetalDeV1alpha1NATGatewayForAllNamespaces", + "description": "list or watch objects of kind NetworkPolicy", + "operationId": "listNetworkingApiOnmetalDeV1alpha1NetworkPolicyForAllNamespaces", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyList" } }, "application/json;stream=watch": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyList" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyList" } } } @@ -17861,7 +19132,7 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NATGateway", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -17958,30 +19229,30 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/networkinterfaces": { + "/apis/networking.api.onmetal.de/v1alpha1/networks": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "list or watch objects of kind NetworkInterface", - "operationId": "listNetworkingApiOnmetalDeV1alpha1NetworkInterfaceForAllNamespaces", + "description": "list or watch objects of kind Network", + "operationId": "listNetworkingApiOnmetalDeV1alpha1NetworkForAllNamespaces", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkInterfaceList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" } }, "application/json;stream=watch": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkInterfaceList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkInterfaceList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" } } } @@ -17993,7 +19264,7 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NetworkInterface", + "kind": "Network", "version": "v1alpha1" } }, @@ -18090,30 +19361,30 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/networks": { + "/apis/networking.api.onmetal.de/v1alpha1/virtualips": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "list or watch objects of kind Network", - "operationId": "listNetworkingApiOnmetalDeV1alpha1NetworkForAllNamespaces", + "description": "list or watch objects of kind VirtualIP", + "operationId": "listNetworkingApiOnmetalDeV1alpha1VirtualIPForAllNamespaces", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" } }, "application/json;stream=watch": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" } } } @@ -18125,7 +19396,7 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "VirtualIP", "version": "v1alpha1" } }, @@ -18222,30 +19493,30 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/virtualips": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/aliasprefixes": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "list or watch objects of kind VirtualIP", - "operationId": "listNetworkingApiOnmetalDeV1alpha1VirtualIPForAllNamespaces", + "description": "watch individual changes to a list of AliasPrefix. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1AliasPrefixListForAllNamespaces", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "application/json;stream=watch": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } } } @@ -18254,10 +19525,10 @@ "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "AliasPrefix", "version": "v1alpha1" } }, @@ -18354,13 +19625,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/aliasprefixes": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/aliasprefixroutings": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of AliasPrefix. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1AliasPrefixListForAllNamespaces", + "description": "watch individual changes to a list of AliasPrefixRouting. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1AliasPrefixRoutingListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -18389,7 +19660,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "AliasPrefix", + "kind": "AliasPrefixRouting", "version": "v1alpha1" } }, @@ -18486,13 +19757,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/aliasprefixroutings": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/loadbalancerroutings": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of AliasPrefixRouting. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1AliasPrefixRoutingListForAllNamespaces", + "description": "watch individual changes to a list of LoadBalancerRouting. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1LoadBalancerRoutingListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -18521,7 +19792,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "AliasPrefixRouting", + "kind": "LoadBalancerRouting", "version": "v1alpha1" } }, @@ -18618,13 +19889,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/loadbalancerroutings": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/loadbalancers": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of LoadBalancerRouting. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1LoadBalancerRoutingListForAllNamespaces", + "description": "watch individual changes to a list of LoadBalancer. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1LoadBalancerListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -18653,7 +19924,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "LoadBalancerRouting", + "kind": "LoadBalancer", "version": "v1alpha1" } }, @@ -18750,13 +20021,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/loadbalancers": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/aliasprefixes": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of LoadBalancer. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1LoadBalancerListForAllNamespaces", + "description": "watch individual changes to a list of AliasPrefix. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedAliasPrefixList", "responses": { "200": { "description": "OK", @@ -18785,7 +20056,149 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "LoadBalancer", + "kind": "AliasPrefix", + "version": "v1alpha1" + } + }, + "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": "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.", + "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": "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/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/aliasprefixes/{name}": { + "get": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "watch changes to an object of kind AliasPrefix. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedAliasPrefix", + "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" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "AliasPrefix", "version": "v1alpha1" } }, @@ -18831,7 +20244,27 @@ "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 AliasPrefix", + "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 } }, @@ -18882,13 +20315,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/aliasprefixes": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/aliasprefixroutings": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of AliasPrefix. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedAliasPrefixList", + "description": "watch individual changes to a list of AliasPrefixRouting. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedAliasPrefixRoutingList", "responses": { "200": { "description": "OK", @@ -18917,7 +20350,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "AliasPrefix", + "kind": "AliasPrefixRouting", "version": "v1alpha1" } }, @@ -19024,13 +20457,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/aliasprefixes/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/aliasprefixroutings/{name}": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch changes to an object of kind AliasPrefix. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedAliasPrefix", + "description": "watch changes to an object of kind AliasPrefixRouting. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedAliasPrefixRouting", "responses": { "200": { "description": "OK", @@ -19059,7 +20492,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "AliasPrefix", + "kind": "AliasPrefixRouting", "version": "v1alpha1" } }, @@ -19112,7 +20545,7 @@ { "name": "name", "in": "path", - "description": "name of the AliasPrefix", + "description": "name of the AliasPrefixRouting", "required": true, "schema": { "type": "string", @@ -19176,13 +20609,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/aliasprefixroutings": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/loadbalancerroutings": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of AliasPrefixRouting. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedAliasPrefixRoutingList", + "description": "watch individual changes to a list of LoadBalancerRouting. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedLoadBalancerRoutingList", "responses": { "200": { "description": "OK", @@ -19211,7 +20644,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "AliasPrefixRouting", + "kind": "LoadBalancerRouting", "version": "v1alpha1" } }, @@ -19318,13 +20751,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/aliasprefixroutings/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/loadbalancerroutings/{name}": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch changes to an object of kind AliasPrefixRouting. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedAliasPrefixRouting", + "description": "watch changes to an object of kind LoadBalancerRouting. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedLoadBalancerRouting", "responses": { "200": { "description": "OK", @@ -19353,7 +20786,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "AliasPrefixRouting", + "kind": "LoadBalancerRouting", "version": "v1alpha1" } }, @@ -19406,7 +20839,7 @@ { "name": "name", "in": "path", - "description": "name of the AliasPrefixRouting", + "description": "name of the LoadBalancerRouting", "required": true, "schema": { "type": "string", @@ -19470,13 +20903,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/loadbalancerroutings": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/loadbalancers": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of LoadBalancerRouting. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedLoadBalancerRoutingList", + "description": "watch individual changes to a list of LoadBalancer. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedLoadBalancerList", "responses": { "200": { "description": "OK", @@ -19505,7 +20938,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "LoadBalancerRouting", + "kind": "LoadBalancer", "version": "v1alpha1" } }, @@ -19612,13 +21045,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/loadbalancerroutings/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/loadbalancers/{name}": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch changes to an object of kind LoadBalancerRouting. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedLoadBalancerRouting", + "description": "watch changes to an object of kind LoadBalancer. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedLoadBalancer", "responses": { "200": { "description": "OK", @@ -19647,7 +21080,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "LoadBalancerRouting", + "kind": "LoadBalancer", "version": "v1alpha1" } }, @@ -19700,7 +21133,7 @@ { "name": "name", "in": "path", - "description": "name of the LoadBalancerRouting", + "description": "name of the LoadBalancer", "required": true, "schema": { "type": "string", @@ -19764,13 +21197,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/loadbalancers": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/natgatewayroutings": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of LoadBalancer. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedLoadBalancerList", + "description": "watch individual changes to a list of NATGatewayRouting. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNATGatewayRoutingList", "responses": { "200": { "description": "OK", @@ -19799,7 +21232,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "LoadBalancer", + "kind": "NATGatewayRouting", "version": "v1alpha1" } }, @@ -19906,13 +21339,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/loadbalancers/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/natgatewayroutings/{name}": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch changes to an object of kind LoadBalancer. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedLoadBalancer", + "description": "watch changes to an object of kind NATGatewayRouting. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNATGatewayRouting", "responses": { "200": { "description": "OK", @@ -19941,7 +21374,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "LoadBalancer", + "kind": "NATGatewayRouting", "version": "v1alpha1" } }, @@ -19994,7 +21427,7 @@ { "name": "name", "in": "path", - "description": "name of the LoadBalancer", + "description": "name of the NATGatewayRouting", "required": true, "schema": { "type": "string", @@ -20058,13 +21491,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/natgatewayroutings": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/natgateways": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of NATGatewayRouting. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNATGatewayRoutingList", + "description": "watch individual changes to a list of NATGateway. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNATGatewayList", "responses": { "200": { "description": "OK", @@ -20093,7 +21526,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NATGatewayRouting", + "kind": "NATGateway", "version": "v1alpha1" } }, @@ -20200,13 +21633,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/natgatewayroutings/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/natgateways/{name}": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch changes to an object of kind NATGatewayRouting. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNATGatewayRouting", + "description": "watch changes to an object of kind NATGateway. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNATGateway", "responses": { "200": { "description": "OK", @@ -20235,7 +21668,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NATGatewayRouting", + "kind": "NATGateway", "version": "v1alpha1" } }, @@ -20288,7 +21721,7 @@ { "name": "name", "in": "path", - "description": "name of the NATGatewayRouting", + "description": "name of the NATGateway", "required": true, "schema": { "type": "string", @@ -20352,13 +21785,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/natgateways": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/networkinterfaces": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of NATGateway. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNATGatewayList", + "description": "watch individual changes to a list of NetworkInterface. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkInterfaceList", "responses": { "200": { "description": "OK", @@ -20387,7 +21820,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NATGateway", + "kind": "NetworkInterface", "version": "v1alpha1" } }, @@ -20494,13 +21927,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/natgateways/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/networkinterfaces/{name}": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch changes to an object of kind NATGateway. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNATGateway", + "description": "watch changes to an object of kind NetworkInterface. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkInterface", "responses": { "200": { "description": "OK", @@ -20529,7 +21962,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NATGateway", + "kind": "NetworkInterface", "version": "v1alpha1" } }, @@ -20582,7 +22015,7 @@ { "name": "name", "in": "path", - "description": "name of the NATGateway", + "description": "name of the NetworkInterface", "required": true, "schema": { "type": "string", @@ -20646,13 +22079,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/networkinterfaces": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/networkpolicies": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of NetworkInterface. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkInterfaceList", + "description": "watch individual changes to a list of NetworkPolicy. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicyList", "responses": { "200": { "description": "OK", @@ -20681,7 +22114,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NetworkInterface", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -20788,13 +22221,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/networkinterfaces/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/networkpolicies/{name}": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch changes to an object of kind NetworkInterface. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkInterface", + "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.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicy", "responses": { "200": { "description": "OK", @@ -20823,7 +22256,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NetworkInterface", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -20876,7 +22309,7 @@ { "name": "name", "in": "path", - "description": "name of the NetworkInterface", + "description": "name of the NetworkPolicy", "required": true, "schema": { "type": "string", @@ -21533,8 +22966,140 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of NATGatewayRouting. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NATGatewayRoutingListForAllNamespaces", + "description": "watch individual changes to a list of NATGatewayRouting. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NATGatewayRoutingListForAllNamespaces", + "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" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "NATGatewayRouting", + "version": "v1alpha1" + } + }, + "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.", + "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": "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/networking.api.onmetal.de/v1alpha1/watch/natgateways": { + "get": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "watch individual changes to a list of NATGateway. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NATGatewayListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -21563,7 +23128,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NATGatewayRouting", + "kind": "NATGateway", "version": "v1alpha1" } }, @@ -21660,13 +23225,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/natgateways": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/networkinterfaces": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of NATGateway. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NATGatewayListForAllNamespaces", + "description": "watch individual changes to a list of NetworkInterface. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NetworkInterfaceListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -21695,7 +23260,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NATGateway", + "kind": "NetworkInterface", "version": "v1alpha1" } }, @@ -21792,13 +23357,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/networkinterfaces": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/networkpolicies": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of NetworkInterface. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NetworkInterfaceListForAllNamespaces", + "description": "watch individual changes to a list of NetworkPolicy. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NetworkPolicyListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -21827,7 +23392,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NetworkInterface", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -30713,6 +32278,33 @@ } } }, + "com.github.onmetal.onmetal-api.api.core.v1alpha1.ObjectSelector": { + "description": "ObjectSelector specifies how to select objects of a certain kind.", + "type": "object", + "required": [ + "kind" + ], + "properties": { + "kind": { + "description": "Kind is the kind of object to select.", + "type": "string" + }, + "matchExpressions": { + "description": "matchExpressions is a list of label selector requirements. The requirements are ANDed.", + "type": "array", + "items": { + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement" + } + }, + "matchLabels": { + "description": "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \"key\", the operator is \"In\", and the values array contains only \"value\". The requirements are ANDed.", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, "com.github.onmetal.onmetal-api.api.core.v1alpha1.ResourceQuota": { "description": "ResourceQuota is the Schema for the resourcequotas API", "type": "object", @@ -31343,6 +32935,30 @@ } } }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.IPBlock": { + "description": "IPBlock specifies an ip block with optional exceptions.", + "type": "object", + "required": [ + "cidr" + ], + "properties": { + "cidr": { + "description": "CIDR is a string representing the ip block.", + "allOf": [ + { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.common.v1alpha1.IPPrefix" + } + ] + }, + "except": { + "description": "Except is a slice of CIDRs that should not be included within the specified CIDR. Values will be rejected if they are outside CIDR.", + "type": "array", + "items": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.common.v1alpha1.IPPrefix" + } + } + } + }, "com.github.onmetal.onmetal-api.api.networking.v1alpha1.IPSource": { "description": "IPSource is the definition of how to obtain an IP.", "type": "object", @@ -31542,6 +33158,13 @@ "type": "string" } }, + "ips": { + "description": "IPs are the ips to use. Can only be used when Type is LoadBalancerTypeInternal.", + "type": "array", + "items": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.IPSource" + } + }, "networkInterfaceSelector": { "description": "NetworkInterfaceSelector defines the NetworkInterfaces for which this LoadBalancer should be applied", "allOf": [ @@ -32168,6 +33791,252 @@ } } }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy": { + "description": "NetworkPolicy is the Schema for the networkpolicies 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": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicySpec" + }, + "status": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyStatus" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "networking.api.onmetal.de", + "kind": "NetworkPolicy", + "version": "v1alpha1" + } + ] + }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyCondition": { + "description": "NetworkPolicyCondition is one of the conditions of a network policy.", + "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" + }, + "observedGeneration": { + "description": "ObservedGeneration represents the .metadata.generation that the condition was set based upon.", + "type": "integer", + "format": "int64" + }, + "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.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyEgressRule": { + "description": "NetworkPolicyEgressRule describes a rule to regulate egress traffic with.", + "type": "object", + "properties": { + "ports": { + "description": "Ports specifies the list of destination ports that can be called with this rule. Each item in this list is combined using a logical OR. Empty matches all ports. As soon as a single item is present, only these ports are allowed.", + "type": "array", + "items": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyPort" + } + }, + "to": { + "description": "To specifies the list of destinations which the selected network interfaces should be able to send traffic to. Fields are combined using a logical OR. Empty matches all destinations. As soon as a single item is present, only these peers are allowed.", + "type": "array", + "items": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyPeer" + } + } + } + }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyIngressRule": { + "description": "NetworkPolicyIngressRule describes a rule to regulate ingress traffic with.", + "type": "object", + "properties": { + "from": { + "description": "From specifies the list of sources which should be able to send traffic to the selected network interfaces. Fields are combined using a logical OR. Empty matches all sources. As soon as a single item is present, only these peers are allowed.", + "type": "array", + "items": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyPeer" + } + }, + "ports": { + "description": "Ports specifies the list of ports which should be made accessible for this rule. Each item in this list is combined using a logical OR. Empty matches all ports. As soon as a single item is present, only these ports are allowed.", + "type": "array", + "items": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyPort" + } + } + } + }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyList": { + "description": "NetworkPolicyList contains a list of NetworkPolicy.", + "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": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" + } + }, + "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": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "networking.api.onmetal.de", + "kind": "NetworkPolicyList", + "version": "v1alpha1" + } + ] + }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyPeer": { + "description": "NetworkPolicyPeer describes a peer to allow traffic to / from.", + "type": "object", + "properties": { + "ipBlock": { + "description": "IPBlock specifies the ip block from or to which network traffic may come.", + "allOf": [ + { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.IPBlock" + } + ] + }, + "objectSelector": { + "description": "ObjectSelector selects peers with the given kind matching the label selector. Exclusive with other peer specifiers.", + "allOf": [ + { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.core.v1alpha1.ObjectSelector" + } + ] + } + } + }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyPort": { + "description": "NetworkPolicyPort describes a port to allow traffic on", + "type": "object", + "properties": { + "endPort": { + "description": "EndPort indicates that the range of ports from Port to EndPort, inclusive, should be allowed by the policy. This field cannot be defined if the port field is not defined. The endPort must be equal or greater than port.", + "type": "integer", + "format": "int32" + }, + "port": { + "description": "The port on the given protocol. If this field is not provided, this matches all port names and numbers. If present, only traffic on the specified protocol AND port will be matched.", + "type": "integer", + "format": "int32" + }, + "protocol": { + "description": "Protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this field defaults to TCP.", + "type": "string" + } + } + }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicySpec": { + "description": "NetworkPolicySpec defines the desired state of NetworkPolicy.", + "type": "object", + "required": [ + "networkRef", + "networkInterfaceSelector" + ], + "properties": { + "egress": { + "description": "Egress specifies rules for egress traffic.", + "type": "array", + "items": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyEgressRule" + } + }, + "ingress": { + "description": "Ingress specifies rules for ingress traffic.", + "type": "array", + "items": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyIngressRule" + } + }, + "networkInterfaceSelector": { + "description": "NetworkInterfaceSelector selects the network interfaces that are subject to this policy.", + "allOf": [ + { + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" + } + ] + }, + "networkRef": { + "description": "NetworkRef is the network to regulate using this policy.", + "allOf": [ + { + "$ref": "#/components/schemas/io.k8s.api.core.v1.LocalObjectReference" + } + ] + }, + "policyTypes": { + "description": "PolicyTypes specifies the types of policies this network policy contains.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyStatus": { + "description": "NetworkPolicyStatus defines the observed state of NetworkPolicy.", + "type": "object", + "properties": { + "conditions": { + "description": "Conditions are various conditions of the NetworkPolicy.", + "type": "array", + "items": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyCondition" + } + } + } + }, "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkSpec": { "description": "NetworkSpec defines the desired state of Network", "type": "object", diff --git a/gen/v3/apis__core.api.onmetal.de__v1alpha1_openapi.json b/gen/v3/apis__core.api.onmetal.de__v1alpha1_openapi.json index ccab29818..f971c7889 100644 --- a/gen/v3/apis__core.api.onmetal.de__v1alpha1_openapi.json +++ b/gen/v3/apis__core.api.onmetal.de__v1alpha1_openapi.json @@ -15680,13 +15680,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networks": { + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networkpolicies": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "list or watch objects of kind Network", - "operationId": "listNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", + "description": "list or watch objects of kind NetworkPolicy", + "operationId": "listNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicy", "parameters": [ { "name": "allowWatchBookmarks", @@ -15776,17 +15776,17 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyList" } }, "application/json;stream=watch": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyList" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyList" } } } @@ -15798,7 +15798,7 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -15806,8 +15806,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "create a Network", - "operationId": "createNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", + "description": "create a NetworkPolicy", + "operationId": "createNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicy", "parameters": [ { "name": "dryRun", @@ -15841,7 +15841,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -15852,12 +15852,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -15867,12 +15867,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -15882,12 +15882,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -15899,7 +15899,7 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -15907,8 +15907,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "delete collection of Network", - "operationId": "deleteNetworkingApiOnmetalDeV1alpha1CollectionNamespacedNetwork", + "description": "delete collection of NetworkPolicy", + "operationId": "deleteNetworkingApiOnmetalDeV1alpha1CollectionNamespacedNetworkPolicy", "parameters": [ { "name": "continue", @@ -16042,7 +16042,7 @@ "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -16068,25 +16068,25 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networks/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networkpolicies/{name}": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "read the specified Network", - "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", + "description": "read the specified NetworkPolicy", + "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicy", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16098,7 +16098,7 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -16106,8 +16106,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "replace the specified Network", - "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", + "description": "replace the specified NetworkPolicy", + "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicy", "parameters": [ { "name": "dryRun", @@ -16141,7 +16141,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16152,12 +16152,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16167,12 +16167,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16184,7 +16184,7 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -16192,8 +16192,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "delete a Network", - "operationId": "deleteNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", + "description": "delete a NetworkPolicy", + "operationId": "deleteNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicy", "parameters": [ { "name": "dryRun", @@ -16279,7 +16279,7 @@ "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -16287,8 +16287,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "partially update the specified Network", - "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", + "description": "partially update the specified NetworkPolicy", + "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicy", "parameters": [ { "name": "dryRun", @@ -16357,12 +16357,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16372,12 +16372,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16389,7 +16389,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -16397,7 +16397,7 @@ { "name": "name", "in": "path", - "description": "name of the Network", + "description": "name of the NetworkPolicy", "required": true, "schema": { "type": "string", @@ -16425,25 +16425,25 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networks/{name}/status": { + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networkpolicies/{name}/status": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "read status of the specified Network", - "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedNetworkStatus", + "description": "read status of the specified NetworkPolicy", + "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicyStatus", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16455,7 +16455,7 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -16463,8 +16463,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "replace status of the specified Network", - "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedNetworkStatus", + "description": "replace status of the specified NetworkPolicy", + "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicyStatus", "parameters": [ { "name": "dryRun", @@ -16498,7 +16498,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16509,12 +16509,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16524,12 +16524,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16541,7 +16541,7 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -16549,8 +16549,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "partially update status of the specified Network", - "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkStatus", + "description": "partially update status of the specified NetworkPolicy", + "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicyStatus", "parameters": [ { "name": "dryRun", @@ -16619,12 +16619,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16634,12 +16634,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16651,7 +16651,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -16659,7 +16659,7 @@ { "name": "name", "in": "path", - "description": "name of the Network", + "description": "name of the NetworkPolicy", "required": true, "schema": { "type": "string", @@ -16687,13 +16687,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/virtualips": { + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networks": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "list or watch objects of kind VirtualIP", - "operationId": "listNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "description": "list or watch objects of kind Network", + "operationId": "listNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", "parameters": [ { "name": "allowWatchBookmarks", @@ -16783,17 +16783,17 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" } }, "application/json;stream=watch": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" } } } @@ -16805,7 +16805,7 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -16813,8 +16813,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "create a VirtualIP", - "operationId": "createNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "description": "create a Network", + "operationId": "createNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", "parameters": [ { "name": "dryRun", @@ -16848,7 +16848,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -16859,12 +16859,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -16874,12 +16874,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -16889,12 +16889,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -16906,7 +16906,7 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -16914,8 +16914,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "delete collection of VirtualIP", - "operationId": "deleteNetworkingApiOnmetalDeV1alpha1CollectionNamespacedVirtualIP", + "description": "delete collection of Network", + "operationId": "deleteNetworkingApiOnmetalDeV1alpha1CollectionNamespacedNetwork", "parameters": [ { "name": "continue", @@ -17049,7 +17049,7 @@ "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -17075,25 +17075,25 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/virtualips/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networks/{name}": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "read the specified VirtualIP", - "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "description": "read the specified Network", + "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17105,7 +17105,7 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -17113,8 +17113,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "replace the specified VirtualIP", - "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "description": "replace the specified Network", + "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", "parameters": [ { "name": "dryRun", @@ -17148,7 +17148,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17159,12 +17159,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17174,12 +17174,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17191,7 +17191,7 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -17199,8 +17199,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "delete a VirtualIP", - "operationId": "deleteNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "description": "delete a Network", + "operationId": "deleteNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", "parameters": [ { "name": "dryRun", @@ -17286,7 +17286,7 @@ "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -17294,8 +17294,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "partially update the specified VirtualIP", - "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "description": "partially update the specified Network", + "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", "parameters": [ { "name": "dryRun", @@ -17364,12 +17364,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17379,12 +17379,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17396,7 +17396,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -17404,7 +17404,7 @@ { "name": "name", "in": "path", - "description": "name of the VirtualIP", + "description": "name of the Network", "required": true, "schema": { "type": "string", @@ -17432,25 +17432,25 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/virtualips/{name}/status": { + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networks/{name}/status": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "read status of the specified VirtualIP", - "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIPStatus", + "description": "read status of the specified Network", + "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedNetworkStatus", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17462,7 +17462,7 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -17470,8 +17470,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "replace status of the specified VirtualIP", - "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIPStatus", + "description": "replace status of the specified Network", + "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedNetworkStatus", "parameters": [ { "name": "dryRun", @@ -17505,7 +17505,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17516,12 +17516,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17531,12 +17531,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17548,7 +17548,7 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -17556,8 +17556,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "partially update status of the specified VirtualIP", - "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIPStatus", + "description": "partially update status of the specified Network", + "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkStatus", "parameters": [ { "name": "dryRun", @@ -17626,12 +17626,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17641,12 +17641,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17658,7 +17658,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -17666,7 +17666,7 @@ { "name": "name", "in": "path", - "description": "name of the VirtualIP", + "description": "name of the Network", "required": true, "schema": { "type": "string", @@ -17694,56 +17694,1327 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/natgatewayroutings": { + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/virtualips": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "list or watch objects of kind NATGatewayRouting", - "operationId": "listNetworkingApiOnmetalDeV1alpha1NATGatewayRoutingForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayRoutingList" - } - }, - "application/json;stream=watch": { - "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayRoutingList" - } - }, - "application/yaml": { - "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayRoutingList" - } - } + "description": "list or watch objects of kind VirtualIP", + "operationId": "listNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "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 } }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "networking.api.onmetal.de", - "kind": "NATGatewayRouting", - "version": "v1alpha1" - } - }, - "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": "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.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" + } + }, + "application/json;stream=watch": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "post": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "create a VirtualIP", + "operationId": "createNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "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, provided that the `ServerSideFieldValidation` feature gate is also enabled. 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 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - 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 when the `ServerSideFieldValidation` feature gate is enabled. - 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.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "202": { + "description": "Accepted", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "delete": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "delete collection of VirtualIP", + "operationId": "deleteNetworkingApiOnmetalDeV1alpha1CollectionNamespacedVirtualIP", + "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": "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": "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" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "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", + "description": "If 'true', then the output is pretty printed.", + "schema": { + "type": "string", + "uniqueItems": true + } + } + ] + }, + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/virtualips/{name}": { + "get": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "read the specified VirtualIP", + "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "put": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "replace the specified VirtualIP", + "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "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, provided that the `ServerSideFieldValidation` feature gate is also enabled. 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 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - 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 when the `ServerSideFieldValidation` feature gate is enabled. - 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.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "delete": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "delete a VirtualIP", + "operationId": "deleteNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "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": "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" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "patch": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "partially update the specified VirtualIP", + "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "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, provided that the `ServerSideFieldValidation` feature gate is also enabled. 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 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - 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 when the `ServerSideFieldValidation` feature gate is enabled. - 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" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "name": "name", + "in": "path", + "description": "name of the VirtualIP", + "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.", + "schema": { + "type": "string", + "uniqueItems": true + } + } + ] + }, + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/virtualips/{name}/status": { + "get": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "read status of the specified VirtualIP", + "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIPStatus", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "put": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "replace status of the specified VirtualIP", + "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIPStatus", + "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, provided that the `ServerSideFieldValidation` feature gate is also enabled. 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 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - 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 when the `ServerSideFieldValidation` feature gate is enabled. - 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.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "patch": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "partially update status of the specified VirtualIP", + "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIPStatus", + "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, provided that the `ServerSideFieldValidation` feature gate is also enabled. 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 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - 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 when the `ServerSideFieldValidation` feature gate is enabled. - 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" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "name": "name", + "in": "path", + "description": "name of the VirtualIP", + "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.", + "schema": { + "type": "string", + "uniqueItems": true + } + } + ] + }, + "/apis/networking.api.onmetal.de/v1alpha1/natgatewayroutings": { + "get": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "list or watch objects of kind NATGatewayRouting", + "operationId": "listNetworkingApiOnmetalDeV1alpha1NATGatewayRoutingForAllNamespaces", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayRoutingList" + } + }, + "application/json;stream=watch": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayRoutingList" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayRoutingList" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "NATGatewayRouting", + "version": "v1alpha1" + } + }, + "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.", + "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": "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/networking.api.onmetal.de/v1alpha1/natgateways": { + "get": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "list or watch objects of kind NATGateway", + "operationId": "listNetworkingApiOnmetalDeV1alpha1NATGatewayForAllNamespaces", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayList" + } + }, + "application/json;stream=watch": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayList" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayList" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "NATGateway", + "version": "v1alpha1" + } + }, + "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.", + "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": "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/networking.api.onmetal.de/v1alpha1/networkinterfaces": { + "get": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "list or watch objects of kind NetworkInterface", + "operationId": "listNetworkingApiOnmetalDeV1alpha1NetworkInterfaceForAllNamespaces", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkInterfaceList" + } + }, + "application/json;stream=watch": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkInterfaceList" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkInterfaceList" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "NetworkInterface", + "version": "v1alpha1" + } + }, + "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.", @@ -17826,30 +19097,30 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/natgateways": { + "/apis/networking.api.onmetal.de/v1alpha1/networkpolicies": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "list or watch objects of kind NATGateway", - "operationId": "listNetworkingApiOnmetalDeV1alpha1NATGatewayForAllNamespaces", + "description": "list or watch objects of kind NetworkPolicy", + "operationId": "listNetworkingApiOnmetalDeV1alpha1NetworkPolicyForAllNamespaces", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyList" } }, "application/json;stream=watch": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyList" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyList" } } } @@ -17861,7 +19132,7 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NATGateway", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -17958,30 +19229,30 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/networkinterfaces": { + "/apis/networking.api.onmetal.de/v1alpha1/networks": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "list or watch objects of kind NetworkInterface", - "operationId": "listNetworkingApiOnmetalDeV1alpha1NetworkInterfaceForAllNamespaces", + "description": "list or watch objects of kind Network", + "operationId": "listNetworkingApiOnmetalDeV1alpha1NetworkForAllNamespaces", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkInterfaceList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" } }, "application/json;stream=watch": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkInterfaceList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkInterfaceList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" } } } @@ -17993,7 +19264,7 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NetworkInterface", + "kind": "Network", "version": "v1alpha1" } }, @@ -18090,30 +19361,30 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/networks": { + "/apis/networking.api.onmetal.de/v1alpha1/virtualips": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "list or watch objects of kind Network", - "operationId": "listNetworkingApiOnmetalDeV1alpha1NetworkForAllNamespaces", + "description": "list or watch objects of kind VirtualIP", + "operationId": "listNetworkingApiOnmetalDeV1alpha1VirtualIPForAllNamespaces", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" } }, "application/json;stream=watch": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" } } } @@ -18125,7 +19396,7 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "VirtualIP", "version": "v1alpha1" } }, @@ -18222,30 +19493,30 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/virtualips": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/aliasprefixes": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "list or watch objects of kind VirtualIP", - "operationId": "listNetworkingApiOnmetalDeV1alpha1VirtualIPForAllNamespaces", + "description": "watch individual changes to a list of AliasPrefix. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1AliasPrefixListForAllNamespaces", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "application/json;stream=watch": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } } } @@ -18254,10 +19525,10 @@ "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "AliasPrefix", "version": "v1alpha1" } }, @@ -18354,13 +19625,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/aliasprefixes": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/aliasprefixroutings": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of AliasPrefix. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1AliasPrefixListForAllNamespaces", + "description": "watch individual changes to a list of AliasPrefixRouting. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1AliasPrefixRoutingListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -18389,7 +19660,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "AliasPrefix", + "kind": "AliasPrefixRouting", "version": "v1alpha1" } }, @@ -18486,13 +19757,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/aliasprefixroutings": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/loadbalancerroutings": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of AliasPrefixRouting. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1AliasPrefixRoutingListForAllNamespaces", + "description": "watch individual changes to a list of LoadBalancerRouting. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1LoadBalancerRoutingListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -18521,7 +19792,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "AliasPrefixRouting", + "kind": "LoadBalancerRouting", "version": "v1alpha1" } }, @@ -18618,13 +19889,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/loadbalancerroutings": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/loadbalancers": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of LoadBalancerRouting. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1LoadBalancerRoutingListForAllNamespaces", + "description": "watch individual changes to a list of LoadBalancer. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1LoadBalancerListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -18653,7 +19924,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "LoadBalancerRouting", + "kind": "LoadBalancer", "version": "v1alpha1" } }, @@ -18750,13 +20021,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/loadbalancers": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/aliasprefixes": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of LoadBalancer. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1LoadBalancerListForAllNamespaces", + "description": "watch individual changes to a list of AliasPrefix. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedAliasPrefixList", "responses": { "200": { "description": "OK", @@ -18785,7 +20056,149 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "LoadBalancer", + "kind": "AliasPrefix", + "version": "v1alpha1" + } + }, + "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": "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.", + "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": "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/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/aliasprefixes/{name}": { + "get": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "watch changes to an object of kind AliasPrefix. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedAliasPrefix", + "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" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "AliasPrefix", "version": "v1alpha1" } }, @@ -18831,7 +20244,27 @@ "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 AliasPrefix", + "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 } }, @@ -18882,13 +20315,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/aliasprefixes": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/aliasprefixroutings": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of AliasPrefix. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedAliasPrefixList", + "description": "watch individual changes to a list of AliasPrefixRouting. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedAliasPrefixRoutingList", "responses": { "200": { "description": "OK", @@ -18917,7 +20350,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "AliasPrefix", + "kind": "AliasPrefixRouting", "version": "v1alpha1" } }, @@ -19024,13 +20457,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/aliasprefixes/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/aliasprefixroutings/{name}": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch changes to an object of kind AliasPrefix. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedAliasPrefix", + "description": "watch changes to an object of kind AliasPrefixRouting. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedAliasPrefixRouting", "responses": { "200": { "description": "OK", @@ -19059,7 +20492,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "AliasPrefix", + "kind": "AliasPrefixRouting", "version": "v1alpha1" } }, @@ -19112,7 +20545,7 @@ { "name": "name", "in": "path", - "description": "name of the AliasPrefix", + "description": "name of the AliasPrefixRouting", "required": true, "schema": { "type": "string", @@ -19176,13 +20609,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/aliasprefixroutings": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/loadbalancerroutings": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of AliasPrefixRouting. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedAliasPrefixRoutingList", + "description": "watch individual changes to a list of LoadBalancerRouting. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedLoadBalancerRoutingList", "responses": { "200": { "description": "OK", @@ -19211,7 +20644,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "AliasPrefixRouting", + "kind": "LoadBalancerRouting", "version": "v1alpha1" } }, @@ -19318,13 +20751,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/aliasprefixroutings/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/loadbalancerroutings/{name}": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch changes to an object of kind AliasPrefixRouting. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedAliasPrefixRouting", + "description": "watch changes to an object of kind LoadBalancerRouting. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedLoadBalancerRouting", "responses": { "200": { "description": "OK", @@ -19353,7 +20786,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "AliasPrefixRouting", + "kind": "LoadBalancerRouting", "version": "v1alpha1" } }, @@ -19406,7 +20839,7 @@ { "name": "name", "in": "path", - "description": "name of the AliasPrefixRouting", + "description": "name of the LoadBalancerRouting", "required": true, "schema": { "type": "string", @@ -19470,13 +20903,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/loadbalancerroutings": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/loadbalancers": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of LoadBalancerRouting. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedLoadBalancerRoutingList", + "description": "watch individual changes to a list of LoadBalancer. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedLoadBalancerList", "responses": { "200": { "description": "OK", @@ -19505,7 +20938,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "LoadBalancerRouting", + "kind": "LoadBalancer", "version": "v1alpha1" } }, @@ -19612,13 +21045,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/loadbalancerroutings/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/loadbalancers/{name}": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch changes to an object of kind LoadBalancerRouting. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedLoadBalancerRouting", + "description": "watch changes to an object of kind LoadBalancer. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedLoadBalancer", "responses": { "200": { "description": "OK", @@ -19647,7 +21080,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "LoadBalancerRouting", + "kind": "LoadBalancer", "version": "v1alpha1" } }, @@ -19700,7 +21133,7 @@ { "name": "name", "in": "path", - "description": "name of the LoadBalancerRouting", + "description": "name of the LoadBalancer", "required": true, "schema": { "type": "string", @@ -19764,13 +21197,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/loadbalancers": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/natgatewayroutings": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of LoadBalancer. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedLoadBalancerList", + "description": "watch individual changes to a list of NATGatewayRouting. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNATGatewayRoutingList", "responses": { "200": { "description": "OK", @@ -19799,7 +21232,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "LoadBalancer", + "kind": "NATGatewayRouting", "version": "v1alpha1" } }, @@ -19906,13 +21339,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/loadbalancers/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/natgatewayroutings/{name}": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch changes to an object of kind LoadBalancer. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedLoadBalancer", + "description": "watch changes to an object of kind NATGatewayRouting. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNATGatewayRouting", "responses": { "200": { "description": "OK", @@ -19941,7 +21374,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "LoadBalancer", + "kind": "NATGatewayRouting", "version": "v1alpha1" } }, @@ -19994,7 +21427,7 @@ { "name": "name", "in": "path", - "description": "name of the LoadBalancer", + "description": "name of the NATGatewayRouting", "required": true, "schema": { "type": "string", @@ -20058,13 +21491,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/natgatewayroutings": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/natgateways": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of NATGatewayRouting. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNATGatewayRoutingList", + "description": "watch individual changes to a list of NATGateway. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNATGatewayList", "responses": { "200": { "description": "OK", @@ -20093,7 +21526,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NATGatewayRouting", + "kind": "NATGateway", "version": "v1alpha1" } }, @@ -20200,13 +21633,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/natgatewayroutings/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/natgateways/{name}": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch changes to an object of kind NATGatewayRouting. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNATGatewayRouting", + "description": "watch changes to an object of kind NATGateway. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNATGateway", "responses": { "200": { "description": "OK", @@ -20235,7 +21668,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NATGatewayRouting", + "kind": "NATGateway", "version": "v1alpha1" } }, @@ -20288,7 +21721,7 @@ { "name": "name", "in": "path", - "description": "name of the NATGatewayRouting", + "description": "name of the NATGateway", "required": true, "schema": { "type": "string", @@ -20352,13 +21785,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/natgateways": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/networkinterfaces": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of NATGateway. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNATGatewayList", + "description": "watch individual changes to a list of NetworkInterface. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkInterfaceList", "responses": { "200": { "description": "OK", @@ -20387,7 +21820,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NATGateway", + "kind": "NetworkInterface", "version": "v1alpha1" } }, @@ -20494,13 +21927,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/natgateways/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/networkinterfaces/{name}": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch changes to an object of kind NATGateway. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNATGateway", + "description": "watch changes to an object of kind NetworkInterface. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkInterface", "responses": { "200": { "description": "OK", @@ -20529,7 +21962,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NATGateway", + "kind": "NetworkInterface", "version": "v1alpha1" } }, @@ -20582,7 +22015,7 @@ { "name": "name", "in": "path", - "description": "name of the NATGateway", + "description": "name of the NetworkInterface", "required": true, "schema": { "type": "string", @@ -20646,13 +22079,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/networkinterfaces": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/networkpolicies": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of NetworkInterface. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkInterfaceList", + "description": "watch individual changes to a list of NetworkPolicy. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicyList", "responses": { "200": { "description": "OK", @@ -20681,7 +22114,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NetworkInterface", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -20788,13 +22221,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/networkinterfaces/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/networkpolicies/{name}": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch changes to an object of kind NetworkInterface. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkInterface", + "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.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicy", "responses": { "200": { "description": "OK", @@ -20823,7 +22256,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NetworkInterface", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -20876,7 +22309,7 @@ { "name": "name", "in": "path", - "description": "name of the NetworkInterface", + "description": "name of the NetworkPolicy", "required": true, "schema": { "type": "string", @@ -21533,8 +22966,140 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of NATGatewayRouting. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NATGatewayRoutingListForAllNamespaces", + "description": "watch individual changes to a list of NATGatewayRouting. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NATGatewayRoutingListForAllNamespaces", + "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" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "NATGatewayRouting", + "version": "v1alpha1" + } + }, + "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.", + "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": "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/networking.api.onmetal.de/v1alpha1/watch/natgateways": { + "get": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "watch individual changes to a list of NATGateway. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NATGatewayListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -21563,7 +23128,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NATGatewayRouting", + "kind": "NATGateway", "version": "v1alpha1" } }, @@ -21660,13 +23225,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/natgateways": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/networkinterfaces": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of NATGateway. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NATGatewayListForAllNamespaces", + "description": "watch individual changes to a list of NetworkInterface. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NetworkInterfaceListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -21695,7 +23260,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NATGateway", + "kind": "NetworkInterface", "version": "v1alpha1" } }, @@ -21792,13 +23357,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/networkinterfaces": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/networkpolicies": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of NetworkInterface. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NetworkInterfaceListForAllNamespaces", + "description": "watch individual changes to a list of NetworkPolicy. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NetworkPolicyListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -21827,7 +23392,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NetworkInterface", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -30713,6 +32278,33 @@ } } }, + "com.github.onmetal.onmetal-api.api.core.v1alpha1.ObjectSelector": { + "description": "ObjectSelector specifies how to select objects of a certain kind.", + "type": "object", + "required": [ + "kind" + ], + "properties": { + "kind": { + "description": "Kind is the kind of object to select.", + "type": "string" + }, + "matchExpressions": { + "description": "matchExpressions is a list of label selector requirements. The requirements are ANDed.", + "type": "array", + "items": { + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement" + } + }, + "matchLabels": { + "description": "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \"key\", the operator is \"In\", and the values array contains only \"value\". The requirements are ANDed.", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, "com.github.onmetal.onmetal-api.api.core.v1alpha1.ResourceQuota": { "description": "ResourceQuota is the Schema for the resourcequotas API", "type": "object", @@ -31343,6 +32935,30 @@ } } }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.IPBlock": { + "description": "IPBlock specifies an ip block with optional exceptions.", + "type": "object", + "required": [ + "cidr" + ], + "properties": { + "cidr": { + "description": "CIDR is a string representing the ip block.", + "allOf": [ + { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.common.v1alpha1.IPPrefix" + } + ] + }, + "except": { + "description": "Except is a slice of CIDRs that should not be included within the specified CIDR. Values will be rejected if they are outside CIDR.", + "type": "array", + "items": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.common.v1alpha1.IPPrefix" + } + } + } + }, "com.github.onmetal.onmetal-api.api.networking.v1alpha1.IPSource": { "description": "IPSource is the definition of how to obtain an IP.", "type": "object", @@ -31542,6 +33158,13 @@ "type": "string" } }, + "ips": { + "description": "IPs are the ips to use. Can only be used when Type is LoadBalancerTypeInternal.", + "type": "array", + "items": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.IPSource" + } + }, "networkInterfaceSelector": { "description": "NetworkInterfaceSelector defines the NetworkInterfaces for which this LoadBalancer should be applied", "allOf": [ @@ -32168,6 +33791,252 @@ } } }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy": { + "description": "NetworkPolicy is the Schema for the networkpolicies 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": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicySpec" + }, + "status": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyStatus" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "networking.api.onmetal.de", + "kind": "NetworkPolicy", + "version": "v1alpha1" + } + ] + }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyCondition": { + "description": "NetworkPolicyCondition is one of the conditions of a network policy.", + "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" + }, + "observedGeneration": { + "description": "ObservedGeneration represents the .metadata.generation that the condition was set based upon.", + "type": "integer", + "format": "int64" + }, + "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.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyEgressRule": { + "description": "NetworkPolicyEgressRule describes a rule to regulate egress traffic with.", + "type": "object", + "properties": { + "ports": { + "description": "Ports specifies the list of destination ports that can be called with this rule. Each item in this list is combined using a logical OR. Empty matches all ports. As soon as a single item is present, only these ports are allowed.", + "type": "array", + "items": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyPort" + } + }, + "to": { + "description": "To specifies the list of destinations which the selected network interfaces should be able to send traffic to. Fields are combined using a logical OR. Empty matches all destinations. As soon as a single item is present, only these peers are allowed.", + "type": "array", + "items": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyPeer" + } + } + } + }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyIngressRule": { + "description": "NetworkPolicyIngressRule describes a rule to regulate ingress traffic with.", + "type": "object", + "properties": { + "from": { + "description": "From specifies the list of sources which should be able to send traffic to the selected network interfaces. Fields are combined using a logical OR. Empty matches all sources. As soon as a single item is present, only these peers are allowed.", + "type": "array", + "items": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyPeer" + } + }, + "ports": { + "description": "Ports specifies the list of ports which should be made accessible for this rule. Each item in this list is combined using a logical OR. Empty matches all ports. As soon as a single item is present, only these ports are allowed.", + "type": "array", + "items": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyPort" + } + } + } + }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyList": { + "description": "NetworkPolicyList contains a list of NetworkPolicy.", + "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": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" + } + }, + "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": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "networking.api.onmetal.de", + "kind": "NetworkPolicyList", + "version": "v1alpha1" + } + ] + }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyPeer": { + "description": "NetworkPolicyPeer describes a peer to allow traffic to / from.", + "type": "object", + "properties": { + "ipBlock": { + "description": "IPBlock specifies the ip block from or to which network traffic may come.", + "allOf": [ + { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.IPBlock" + } + ] + }, + "objectSelector": { + "description": "ObjectSelector selects peers with the given kind matching the label selector. Exclusive with other peer specifiers.", + "allOf": [ + { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.core.v1alpha1.ObjectSelector" + } + ] + } + } + }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyPort": { + "description": "NetworkPolicyPort describes a port to allow traffic on", + "type": "object", + "properties": { + "endPort": { + "description": "EndPort indicates that the range of ports from Port to EndPort, inclusive, should be allowed by the policy. This field cannot be defined if the port field is not defined. The endPort must be equal or greater than port.", + "type": "integer", + "format": "int32" + }, + "port": { + "description": "The port on the given protocol. If this field is not provided, this matches all port names and numbers. If present, only traffic on the specified protocol AND port will be matched.", + "type": "integer", + "format": "int32" + }, + "protocol": { + "description": "Protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this field defaults to TCP.", + "type": "string" + } + } + }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicySpec": { + "description": "NetworkPolicySpec defines the desired state of NetworkPolicy.", + "type": "object", + "required": [ + "networkRef", + "networkInterfaceSelector" + ], + "properties": { + "egress": { + "description": "Egress specifies rules for egress traffic.", + "type": "array", + "items": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyEgressRule" + } + }, + "ingress": { + "description": "Ingress specifies rules for ingress traffic.", + "type": "array", + "items": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyIngressRule" + } + }, + "networkInterfaceSelector": { + "description": "NetworkInterfaceSelector selects the network interfaces that are subject to this policy.", + "allOf": [ + { + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" + } + ] + }, + "networkRef": { + "description": "NetworkRef is the network to regulate using this policy.", + "allOf": [ + { + "$ref": "#/components/schemas/io.k8s.api.core.v1.LocalObjectReference" + } + ] + }, + "policyTypes": { + "description": "PolicyTypes specifies the types of policies this network policy contains.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyStatus": { + "description": "NetworkPolicyStatus defines the observed state of NetworkPolicy.", + "type": "object", + "properties": { + "conditions": { + "description": "Conditions are various conditions of the NetworkPolicy.", + "type": "array", + "items": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyCondition" + } + } + } + }, "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkSpec": { "description": "NetworkSpec defines the desired state of Network", "type": "object", diff --git a/gen/v3/apis__ipam.api.onmetal.de__v1alpha1_openapi.json b/gen/v3/apis__ipam.api.onmetal.de__v1alpha1_openapi.json index ccab29818..f971c7889 100644 --- a/gen/v3/apis__ipam.api.onmetal.de__v1alpha1_openapi.json +++ b/gen/v3/apis__ipam.api.onmetal.de__v1alpha1_openapi.json @@ -15680,13 +15680,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networks": { + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networkpolicies": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "list or watch objects of kind Network", - "operationId": "listNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", + "description": "list or watch objects of kind NetworkPolicy", + "operationId": "listNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicy", "parameters": [ { "name": "allowWatchBookmarks", @@ -15776,17 +15776,17 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyList" } }, "application/json;stream=watch": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyList" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyList" } } } @@ -15798,7 +15798,7 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -15806,8 +15806,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "create a Network", - "operationId": "createNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", + "description": "create a NetworkPolicy", + "operationId": "createNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicy", "parameters": [ { "name": "dryRun", @@ -15841,7 +15841,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -15852,12 +15852,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -15867,12 +15867,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -15882,12 +15882,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -15899,7 +15899,7 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -15907,8 +15907,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "delete collection of Network", - "operationId": "deleteNetworkingApiOnmetalDeV1alpha1CollectionNamespacedNetwork", + "description": "delete collection of NetworkPolicy", + "operationId": "deleteNetworkingApiOnmetalDeV1alpha1CollectionNamespacedNetworkPolicy", "parameters": [ { "name": "continue", @@ -16042,7 +16042,7 @@ "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -16068,25 +16068,25 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networks/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networkpolicies/{name}": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "read the specified Network", - "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", + "description": "read the specified NetworkPolicy", + "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicy", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16098,7 +16098,7 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -16106,8 +16106,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "replace the specified Network", - "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", + "description": "replace the specified NetworkPolicy", + "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicy", "parameters": [ { "name": "dryRun", @@ -16141,7 +16141,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16152,12 +16152,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16167,12 +16167,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16184,7 +16184,7 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -16192,8 +16192,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "delete a Network", - "operationId": "deleteNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", + "description": "delete a NetworkPolicy", + "operationId": "deleteNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicy", "parameters": [ { "name": "dryRun", @@ -16279,7 +16279,7 @@ "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -16287,8 +16287,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "partially update the specified Network", - "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", + "description": "partially update the specified NetworkPolicy", + "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicy", "parameters": [ { "name": "dryRun", @@ -16357,12 +16357,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16372,12 +16372,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16389,7 +16389,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -16397,7 +16397,7 @@ { "name": "name", "in": "path", - "description": "name of the Network", + "description": "name of the NetworkPolicy", "required": true, "schema": { "type": "string", @@ -16425,25 +16425,25 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networks/{name}/status": { + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networkpolicies/{name}/status": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "read status of the specified Network", - "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedNetworkStatus", + "description": "read status of the specified NetworkPolicy", + "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicyStatus", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16455,7 +16455,7 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -16463,8 +16463,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "replace status of the specified Network", - "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedNetworkStatus", + "description": "replace status of the specified NetworkPolicy", + "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicyStatus", "parameters": [ { "name": "dryRun", @@ -16498,7 +16498,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16509,12 +16509,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16524,12 +16524,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16541,7 +16541,7 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -16549,8 +16549,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "partially update status of the specified Network", - "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkStatus", + "description": "partially update status of the specified NetworkPolicy", + "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicyStatus", "parameters": [ { "name": "dryRun", @@ -16619,12 +16619,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16634,12 +16634,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16651,7 +16651,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -16659,7 +16659,7 @@ { "name": "name", "in": "path", - "description": "name of the Network", + "description": "name of the NetworkPolicy", "required": true, "schema": { "type": "string", @@ -16687,13 +16687,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/virtualips": { + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networks": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "list or watch objects of kind VirtualIP", - "operationId": "listNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "description": "list or watch objects of kind Network", + "operationId": "listNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", "parameters": [ { "name": "allowWatchBookmarks", @@ -16783,17 +16783,17 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" } }, "application/json;stream=watch": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" } } } @@ -16805,7 +16805,7 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -16813,8 +16813,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "create a VirtualIP", - "operationId": "createNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "description": "create a Network", + "operationId": "createNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", "parameters": [ { "name": "dryRun", @@ -16848,7 +16848,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -16859,12 +16859,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -16874,12 +16874,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -16889,12 +16889,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -16906,7 +16906,7 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -16914,8 +16914,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "delete collection of VirtualIP", - "operationId": "deleteNetworkingApiOnmetalDeV1alpha1CollectionNamespacedVirtualIP", + "description": "delete collection of Network", + "operationId": "deleteNetworkingApiOnmetalDeV1alpha1CollectionNamespacedNetwork", "parameters": [ { "name": "continue", @@ -17049,7 +17049,7 @@ "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -17075,25 +17075,25 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/virtualips/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networks/{name}": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "read the specified VirtualIP", - "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "description": "read the specified Network", + "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17105,7 +17105,7 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -17113,8 +17113,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "replace the specified VirtualIP", - "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "description": "replace the specified Network", + "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", "parameters": [ { "name": "dryRun", @@ -17148,7 +17148,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17159,12 +17159,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17174,12 +17174,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17191,7 +17191,7 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -17199,8 +17199,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "delete a VirtualIP", - "operationId": "deleteNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "description": "delete a Network", + "operationId": "deleteNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", "parameters": [ { "name": "dryRun", @@ -17286,7 +17286,7 @@ "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -17294,8 +17294,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "partially update the specified VirtualIP", - "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "description": "partially update the specified Network", + "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", "parameters": [ { "name": "dryRun", @@ -17364,12 +17364,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17379,12 +17379,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17396,7 +17396,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -17404,7 +17404,7 @@ { "name": "name", "in": "path", - "description": "name of the VirtualIP", + "description": "name of the Network", "required": true, "schema": { "type": "string", @@ -17432,25 +17432,25 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/virtualips/{name}/status": { + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networks/{name}/status": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "read status of the specified VirtualIP", - "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIPStatus", + "description": "read status of the specified Network", + "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedNetworkStatus", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17462,7 +17462,7 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -17470,8 +17470,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "replace status of the specified VirtualIP", - "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIPStatus", + "description": "replace status of the specified Network", + "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedNetworkStatus", "parameters": [ { "name": "dryRun", @@ -17505,7 +17505,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17516,12 +17516,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17531,12 +17531,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17548,7 +17548,7 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -17556,8 +17556,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "partially update status of the specified VirtualIP", - "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIPStatus", + "description": "partially update status of the specified Network", + "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkStatus", "parameters": [ { "name": "dryRun", @@ -17626,12 +17626,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17641,12 +17641,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17658,7 +17658,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -17666,7 +17666,7 @@ { "name": "name", "in": "path", - "description": "name of the VirtualIP", + "description": "name of the Network", "required": true, "schema": { "type": "string", @@ -17694,56 +17694,1327 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/natgatewayroutings": { + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/virtualips": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "list or watch objects of kind NATGatewayRouting", - "operationId": "listNetworkingApiOnmetalDeV1alpha1NATGatewayRoutingForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayRoutingList" - } - }, - "application/json;stream=watch": { - "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayRoutingList" - } - }, - "application/yaml": { - "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayRoutingList" - } - } + "description": "list or watch objects of kind VirtualIP", + "operationId": "listNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "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 } }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "networking.api.onmetal.de", - "kind": "NATGatewayRouting", - "version": "v1alpha1" - } - }, - "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": "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.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" + } + }, + "application/json;stream=watch": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "post": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "create a VirtualIP", + "operationId": "createNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "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, provided that the `ServerSideFieldValidation` feature gate is also enabled. 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 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - 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 when the `ServerSideFieldValidation` feature gate is enabled. - 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.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "202": { + "description": "Accepted", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "delete": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "delete collection of VirtualIP", + "operationId": "deleteNetworkingApiOnmetalDeV1alpha1CollectionNamespacedVirtualIP", + "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": "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": "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" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "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", + "description": "If 'true', then the output is pretty printed.", + "schema": { + "type": "string", + "uniqueItems": true + } + } + ] + }, + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/virtualips/{name}": { + "get": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "read the specified VirtualIP", + "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "put": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "replace the specified VirtualIP", + "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "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, provided that the `ServerSideFieldValidation` feature gate is also enabled. 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 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - 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 when the `ServerSideFieldValidation` feature gate is enabled. - 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.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "delete": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "delete a VirtualIP", + "operationId": "deleteNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "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": "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" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "patch": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "partially update the specified VirtualIP", + "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "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, provided that the `ServerSideFieldValidation` feature gate is also enabled. 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 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - 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 when the `ServerSideFieldValidation` feature gate is enabled. - 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" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "name": "name", + "in": "path", + "description": "name of the VirtualIP", + "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.", + "schema": { + "type": "string", + "uniqueItems": true + } + } + ] + }, + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/virtualips/{name}/status": { + "get": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "read status of the specified VirtualIP", + "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIPStatus", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "put": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "replace status of the specified VirtualIP", + "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIPStatus", + "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, provided that the `ServerSideFieldValidation` feature gate is also enabled. 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 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - 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 when the `ServerSideFieldValidation` feature gate is enabled. - 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.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "patch": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "partially update status of the specified VirtualIP", + "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIPStatus", + "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, provided that the `ServerSideFieldValidation` feature gate is also enabled. 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 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - 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 when the `ServerSideFieldValidation` feature gate is enabled. - 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" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "name": "name", + "in": "path", + "description": "name of the VirtualIP", + "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.", + "schema": { + "type": "string", + "uniqueItems": true + } + } + ] + }, + "/apis/networking.api.onmetal.de/v1alpha1/natgatewayroutings": { + "get": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "list or watch objects of kind NATGatewayRouting", + "operationId": "listNetworkingApiOnmetalDeV1alpha1NATGatewayRoutingForAllNamespaces", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayRoutingList" + } + }, + "application/json;stream=watch": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayRoutingList" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayRoutingList" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "NATGatewayRouting", + "version": "v1alpha1" + } + }, + "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.", + "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": "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/networking.api.onmetal.de/v1alpha1/natgateways": { + "get": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "list or watch objects of kind NATGateway", + "operationId": "listNetworkingApiOnmetalDeV1alpha1NATGatewayForAllNamespaces", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayList" + } + }, + "application/json;stream=watch": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayList" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayList" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "NATGateway", + "version": "v1alpha1" + } + }, + "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.", + "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": "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/networking.api.onmetal.de/v1alpha1/networkinterfaces": { + "get": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "list or watch objects of kind NetworkInterface", + "operationId": "listNetworkingApiOnmetalDeV1alpha1NetworkInterfaceForAllNamespaces", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkInterfaceList" + } + }, + "application/json;stream=watch": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkInterfaceList" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkInterfaceList" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "NetworkInterface", + "version": "v1alpha1" + } + }, + "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.", @@ -17826,30 +19097,30 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/natgateways": { + "/apis/networking.api.onmetal.de/v1alpha1/networkpolicies": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "list or watch objects of kind NATGateway", - "operationId": "listNetworkingApiOnmetalDeV1alpha1NATGatewayForAllNamespaces", + "description": "list or watch objects of kind NetworkPolicy", + "operationId": "listNetworkingApiOnmetalDeV1alpha1NetworkPolicyForAllNamespaces", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyList" } }, "application/json;stream=watch": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyList" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyList" } } } @@ -17861,7 +19132,7 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NATGateway", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -17958,30 +19229,30 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/networkinterfaces": { + "/apis/networking.api.onmetal.de/v1alpha1/networks": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "list or watch objects of kind NetworkInterface", - "operationId": "listNetworkingApiOnmetalDeV1alpha1NetworkInterfaceForAllNamespaces", + "description": "list or watch objects of kind Network", + "operationId": "listNetworkingApiOnmetalDeV1alpha1NetworkForAllNamespaces", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkInterfaceList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" } }, "application/json;stream=watch": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkInterfaceList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkInterfaceList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" } } } @@ -17993,7 +19264,7 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NetworkInterface", + "kind": "Network", "version": "v1alpha1" } }, @@ -18090,30 +19361,30 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/networks": { + "/apis/networking.api.onmetal.de/v1alpha1/virtualips": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "list or watch objects of kind Network", - "operationId": "listNetworkingApiOnmetalDeV1alpha1NetworkForAllNamespaces", + "description": "list or watch objects of kind VirtualIP", + "operationId": "listNetworkingApiOnmetalDeV1alpha1VirtualIPForAllNamespaces", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" } }, "application/json;stream=watch": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" } } } @@ -18125,7 +19396,7 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "VirtualIP", "version": "v1alpha1" } }, @@ -18222,30 +19493,30 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/virtualips": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/aliasprefixes": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "list or watch objects of kind VirtualIP", - "operationId": "listNetworkingApiOnmetalDeV1alpha1VirtualIPForAllNamespaces", + "description": "watch individual changes to a list of AliasPrefix. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1AliasPrefixListForAllNamespaces", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "application/json;stream=watch": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } } } @@ -18254,10 +19525,10 @@ "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "AliasPrefix", "version": "v1alpha1" } }, @@ -18354,13 +19625,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/aliasprefixes": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/aliasprefixroutings": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of AliasPrefix. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1AliasPrefixListForAllNamespaces", + "description": "watch individual changes to a list of AliasPrefixRouting. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1AliasPrefixRoutingListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -18389,7 +19660,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "AliasPrefix", + "kind": "AliasPrefixRouting", "version": "v1alpha1" } }, @@ -18486,13 +19757,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/aliasprefixroutings": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/loadbalancerroutings": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of AliasPrefixRouting. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1AliasPrefixRoutingListForAllNamespaces", + "description": "watch individual changes to a list of LoadBalancerRouting. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1LoadBalancerRoutingListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -18521,7 +19792,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "AliasPrefixRouting", + "kind": "LoadBalancerRouting", "version": "v1alpha1" } }, @@ -18618,13 +19889,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/loadbalancerroutings": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/loadbalancers": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of LoadBalancerRouting. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1LoadBalancerRoutingListForAllNamespaces", + "description": "watch individual changes to a list of LoadBalancer. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1LoadBalancerListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -18653,7 +19924,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "LoadBalancerRouting", + "kind": "LoadBalancer", "version": "v1alpha1" } }, @@ -18750,13 +20021,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/loadbalancers": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/aliasprefixes": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of LoadBalancer. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1LoadBalancerListForAllNamespaces", + "description": "watch individual changes to a list of AliasPrefix. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedAliasPrefixList", "responses": { "200": { "description": "OK", @@ -18785,7 +20056,149 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "LoadBalancer", + "kind": "AliasPrefix", + "version": "v1alpha1" + } + }, + "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": "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.", + "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": "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/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/aliasprefixes/{name}": { + "get": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "watch changes to an object of kind AliasPrefix. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedAliasPrefix", + "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" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "AliasPrefix", "version": "v1alpha1" } }, @@ -18831,7 +20244,27 @@ "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 AliasPrefix", + "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 } }, @@ -18882,13 +20315,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/aliasprefixes": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/aliasprefixroutings": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of AliasPrefix. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedAliasPrefixList", + "description": "watch individual changes to a list of AliasPrefixRouting. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedAliasPrefixRoutingList", "responses": { "200": { "description": "OK", @@ -18917,7 +20350,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "AliasPrefix", + "kind": "AliasPrefixRouting", "version": "v1alpha1" } }, @@ -19024,13 +20457,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/aliasprefixes/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/aliasprefixroutings/{name}": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch changes to an object of kind AliasPrefix. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedAliasPrefix", + "description": "watch changes to an object of kind AliasPrefixRouting. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedAliasPrefixRouting", "responses": { "200": { "description": "OK", @@ -19059,7 +20492,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "AliasPrefix", + "kind": "AliasPrefixRouting", "version": "v1alpha1" } }, @@ -19112,7 +20545,7 @@ { "name": "name", "in": "path", - "description": "name of the AliasPrefix", + "description": "name of the AliasPrefixRouting", "required": true, "schema": { "type": "string", @@ -19176,13 +20609,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/aliasprefixroutings": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/loadbalancerroutings": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of AliasPrefixRouting. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedAliasPrefixRoutingList", + "description": "watch individual changes to a list of LoadBalancerRouting. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedLoadBalancerRoutingList", "responses": { "200": { "description": "OK", @@ -19211,7 +20644,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "AliasPrefixRouting", + "kind": "LoadBalancerRouting", "version": "v1alpha1" } }, @@ -19318,13 +20751,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/aliasprefixroutings/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/loadbalancerroutings/{name}": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch changes to an object of kind AliasPrefixRouting. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedAliasPrefixRouting", + "description": "watch changes to an object of kind LoadBalancerRouting. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedLoadBalancerRouting", "responses": { "200": { "description": "OK", @@ -19353,7 +20786,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "AliasPrefixRouting", + "kind": "LoadBalancerRouting", "version": "v1alpha1" } }, @@ -19406,7 +20839,7 @@ { "name": "name", "in": "path", - "description": "name of the AliasPrefixRouting", + "description": "name of the LoadBalancerRouting", "required": true, "schema": { "type": "string", @@ -19470,13 +20903,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/loadbalancerroutings": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/loadbalancers": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of LoadBalancerRouting. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedLoadBalancerRoutingList", + "description": "watch individual changes to a list of LoadBalancer. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedLoadBalancerList", "responses": { "200": { "description": "OK", @@ -19505,7 +20938,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "LoadBalancerRouting", + "kind": "LoadBalancer", "version": "v1alpha1" } }, @@ -19612,13 +21045,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/loadbalancerroutings/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/loadbalancers/{name}": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch changes to an object of kind LoadBalancerRouting. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedLoadBalancerRouting", + "description": "watch changes to an object of kind LoadBalancer. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedLoadBalancer", "responses": { "200": { "description": "OK", @@ -19647,7 +21080,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "LoadBalancerRouting", + "kind": "LoadBalancer", "version": "v1alpha1" } }, @@ -19700,7 +21133,7 @@ { "name": "name", "in": "path", - "description": "name of the LoadBalancerRouting", + "description": "name of the LoadBalancer", "required": true, "schema": { "type": "string", @@ -19764,13 +21197,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/loadbalancers": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/natgatewayroutings": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of LoadBalancer. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedLoadBalancerList", + "description": "watch individual changes to a list of NATGatewayRouting. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNATGatewayRoutingList", "responses": { "200": { "description": "OK", @@ -19799,7 +21232,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "LoadBalancer", + "kind": "NATGatewayRouting", "version": "v1alpha1" } }, @@ -19906,13 +21339,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/loadbalancers/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/natgatewayroutings/{name}": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch changes to an object of kind LoadBalancer. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedLoadBalancer", + "description": "watch changes to an object of kind NATGatewayRouting. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNATGatewayRouting", "responses": { "200": { "description": "OK", @@ -19941,7 +21374,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "LoadBalancer", + "kind": "NATGatewayRouting", "version": "v1alpha1" } }, @@ -19994,7 +21427,7 @@ { "name": "name", "in": "path", - "description": "name of the LoadBalancer", + "description": "name of the NATGatewayRouting", "required": true, "schema": { "type": "string", @@ -20058,13 +21491,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/natgatewayroutings": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/natgateways": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of NATGatewayRouting. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNATGatewayRoutingList", + "description": "watch individual changes to a list of NATGateway. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNATGatewayList", "responses": { "200": { "description": "OK", @@ -20093,7 +21526,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NATGatewayRouting", + "kind": "NATGateway", "version": "v1alpha1" } }, @@ -20200,13 +21633,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/natgatewayroutings/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/natgateways/{name}": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch changes to an object of kind NATGatewayRouting. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNATGatewayRouting", + "description": "watch changes to an object of kind NATGateway. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNATGateway", "responses": { "200": { "description": "OK", @@ -20235,7 +21668,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NATGatewayRouting", + "kind": "NATGateway", "version": "v1alpha1" } }, @@ -20288,7 +21721,7 @@ { "name": "name", "in": "path", - "description": "name of the NATGatewayRouting", + "description": "name of the NATGateway", "required": true, "schema": { "type": "string", @@ -20352,13 +21785,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/natgateways": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/networkinterfaces": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of NATGateway. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNATGatewayList", + "description": "watch individual changes to a list of NetworkInterface. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkInterfaceList", "responses": { "200": { "description": "OK", @@ -20387,7 +21820,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NATGateway", + "kind": "NetworkInterface", "version": "v1alpha1" } }, @@ -20494,13 +21927,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/natgateways/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/networkinterfaces/{name}": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch changes to an object of kind NATGateway. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNATGateway", + "description": "watch changes to an object of kind NetworkInterface. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkInterface", "responses": { "200": { "description": "OK", @@ -20529,7 +21962,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NATGateway", + "kind": "NetworkInterface", "version": "v1alpha1" } }, @@ -20582,7 +22015,7 @@ { "name": "name", "in": "path", - "description": "name of the NATGateway", + "description": "name of the NetworkInterface", "required": true, "schema": { "type": "string", @@ -20646,13 +22079,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/networkinterfaces": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/networkpolicies": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of NetworkInterface. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkInterfaceList", + "description": "watch individual changes to a list of NetworkPolicy. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicyList", "responses": { "200": { "description": "OK", @@ -20681,7 +22114,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NetworkInterface", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -20788,13 +22221,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/networkinterfaces/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/networkpolicies/{name}": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch changes to an object of kind NetworkInterface. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkInterface", + "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.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicy", "responses": { "200": { "description": "OK", @@ -20823,7 +22256,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NetworkInterface", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -20876,7 +22309,7 @@ { "name": "name", "in": "path", - "description": "name of the NetworkInterface", + "description": "name of the NetworkPolicy", "required": true, "schema": { "type": "string", @@ -21533,8 +22966,140 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of NATGatewayRouting. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NATGatewayRoutingListForAllNamespaces", + "description": "watch individual changes to a list of NATGatewayRouting. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NATGatewayRoutingListForAllNamespaces", + "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" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "NATGatewayRouting", + "version": "v1alpha1" + } + }, + "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.", + "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": "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/networking.api.onmetal.de/v1alpha1/watch/natgateways": { + "get": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "watch individual changes to a list of NATGateway. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NATGatewayListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -21563,7 +23128,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NATGatewayRouting", + "kind": "NATGateway", "version": "v1alpha1" } }, @@ -21660,13 +23225,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/natgateways": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/networkinterfaces": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of NATGateway. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NATGatewayListForAllNamespaces", + "description": "watch individual changes to a list of NetworkInterface. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NetworkInterfaceListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -21695,7 +23260,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NATGateway", + "kind": "NetworkInterface", "version": "v1alpha1" } }, @@ -21792,13 +23357,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/networkinterfaces": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/networkpolicies": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of NetworkInterface. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NetworkInterfaceListForAllNamespaces", + "description": "watch individual changes to a list of NetworkPolicy. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NetworkPolicyListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -21827,7 +23392,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NetworkInterface", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -30713,6 +32278,33 @@ } } }, + "com.github.onmetal.onmetal-api.api.core.v1alpha1.ObjectSelector": { + "description": "ObjectSelector specifies how to select objects of a certain kind.", + "type": "object", + "required": [ + "kind" + ], + "properties": { + "kind": { + "description": "Kind is the kind of object to select.", + "type": "string" + }, + "matchExpressions": { + "description": "matchExpressions is a list of label selector requirements. The requirements are ANDed.", + "type": "array", + "items": { + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement" + } + }, + "matchLabels": { + "description": "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \"key\", the operator is \"In\", and the values array contains only \"value\". The requirements are ANDed.", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, "com.github.onmetal.onmetal-api.api.core.v1alpha1.ResourceQuota": { "description": "ResourceQuota is the Schema for the resourcequotas API", "type": "object", @@ -31343,6 +32935,30 @@ } } }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.IPBlock": { + "description": "IPBlock specifies an ip block with optional exceptions.", + "type": "object", + "required": [ + "cidr" + ], + "properties": { + "cidr": { + "description": "CIDR is a string representing the ip block.", + "allOf": [ + { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.common.v1alpha1.IPPrefix" + } + ] + }, + "except": { + "description": "Except is a slice of CIDRs that should not be included within the specified CIDR. Values will be rejected if they are outside CIDR.", + "type": "array", + "items": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.common.v1alpha1.IPPrefix" + } + } + } + }, "com.github.onmetal.onmetal-api.api.networking.v1alpha1.IPSource": { "description": "IPSource is the definition of how to obtain an IP.", "type": "object", @@ -31542,6 +33158,13 @@ "type": "string" } }, + "ips": { + "description": "IPs are the ips to use. Can only be used when Type is LoadBalancerTypeInternal.", + "type": "array", + "items": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.IPSource" + } + }, "networkInterfaceSelector": { "description": "NetworkInterfaceSelector defines the NetworkInterfaces for which this LoadBalancer should be applied", "allOf": [ @@ -32168,6 +33791,252 @@ } } }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy": { + "description": "NetworkPolicy is the Schema for the networkpolicies 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": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicySpec" + }, + "status": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyStatus" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "networking.api.onmetal.de", + "kind": "NetworkPolicy", + "version": "v1alpha1" + } + ] + }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyCondition": { + "description": "NetworkPolicyCondition is one of the conditions of a network policy.", + "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" + }, + "observedGeneration": { + "description": "ObservedGeneration represents the .metadata.generation that the condition was set based upon.", + "type": "integer", + "format": "int64" + }, + "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.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyEgressRule": { + "description": "NetworkPolicyEgressRule describes a rule to regulate egress traffic with.", + "type": "object", + "properties": { + "ports": { + "description": "Ports specifies the list of destination ports that can be called with this rule. Each item in this list is combined using a logical OR. Empty matches all ports. As soon as a single item is present, only these ports are allowed.", + "type": "array", + "items": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyPort" + } + }, + "to": { + "description": "To specifies the list of destinations which the selected network interfaces should be able to send traffic to. Fields are combined using a logical OR. Empty matches all destinations. As soon as a single item is present, only these peers are allowed.", + "type": "array", + "items": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyPeer" + } + } + } + }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyIngressRule": { + "description": "NetworkPolicyIngressRule describes a rule to regulate ingress traffic with.", + "type": "object", + "properties": { + "from": { + "description": "From specifies the list of sources which should be able to send traffic to the selected network interfaces. Fields are combined using a logical OR. Empty matches all sources. As soon as a single item is present, only these peers are allowed.", + "type": "array", + "items": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyPeer" + } + }, + "ports": { + "description": "Ports specifies the list of ports which should be made accessible for this rule. Each item in this list is combined using a logical OR. Empty matches all ports. As soon as a single item is present, only these ports are allowed.", + "type": "array", + "items": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyPort" + } + } + } + }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyList": { + "description": "NetworkPolicyList contains a list of NetworkPolicy.", + "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": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" + } + }, + "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": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "networking.api.onmetal.de", + "kind": "NetworkPolicyList", + "version": "v1alpha1" + } + ] + }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyPeer": { + "description": "NetworkPolicyPeer describes a peer to allow traffic to / from.", + "type": "object", + "properties": { + "ipBlock": { + "description": "IPBlock specifies the ip block from or to which network traffic may come.", + "allOf": [ + { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.IPBlock" + } + ] + }, + "objectSelector": { + "description": "ObjectSelector selects peers with the given kind matching the label selector. Exclusive with other peer specifiers.", + "allOf": [ + { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.core.v1alpha1.ObjectSelector" + } + ] + } + } + }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyPort": { + "description": "NetworkPolicyPort describes a port to allow traffic on", + "type": "object", + "properties": { + "endPort": { + "description": "EndPort indicates that the range of ports from Port to EndPort, inclusive, should be allowed by the policy. This field cannot be defined if the port field is not defined. The endPort must be equal or greater than port.", + "type": "integer", + "format": "int32" + }, + "port": { + "description": "The port on the given protocol. If this field is not provided, this matches all port names and numbers. If present, only traffic on the specified protocol AND port will be matched.", + "type": "integer", + "format": "int32" + }, + "protocol": { + "description": "Protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this field defaults to TCP.", + "type": "string" + } + } + }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicySpec": { + "description": "NetworkPolicySpec defines the desired state of NetworkPolicy.", + "type": "object", + "required": [ + "networkRef", + "networkInterfaceSelector" + ], + "properties": { + "egress": { + "description": "Egress specifies rules for egress traffic.", + "type": "array", + "items": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyEgressRule" + } + }, + "ingress": { + "description": "Ingress specifies rules for ingress traffic.", + "type": "array", + "items": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyIngressRule" + } + }, + "networkInterfaceSelector": { + "description": "NetworkInterfaceSelector selects the network interfaces that are subject to this policy.", + "allOf": [ + { + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" + } + ] + }, + "networkRef": { + "description": "NetworkRef is the network to regulate using this policy.", + "allOf": [ + { + "$ref": "#/components/schemas/io.k8s.api.core.v1.LocalObjectReference" + } + ] + }, + "policyTypes": { + "description": "PolicyTypes specifies the types of policies this network policy contains.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyStatus": { + "description": "NetworkPolicyStatus defines the observed state of NetworkPolicy.", + "type": "object", + "properties": { + "conditions": { + "description": "Conditions are various conditions of the NetworkPolicy.", + "type": "array", + "items": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyCondition" + } + } + } + }, "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkSpec": { "description": "NetworkSpec defines the desired state of Network", "type": "object", diff --git a/gen/v3/apis__networking.api.onmetal.de__v1alpha1_openapi.json b/gen/v3/apis__networking.api.onmetal.de__v1alpha1_openapi.json index ccab29818..f971c7889 100644 --- a/gen/v3/apis__networking.api.onmetal.de__v1alpha1_openapi.json +++ b/gen/v3/apis__networking.api.onmetal.de__v1alpha1_openapi.json @@ -15680,13 +15680,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networks": { + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networkpolicies": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "list or watch objects of kind Network", - "operationId": "listNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", + "description": "list or watch objects of kind NetworkPolicy", + "operationId": "listNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicy", "parameters": [ { "name": "allowWatchBookmarks", @@ -15776,17 +15776,17 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyList" } }, "application/json;stream=watch": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyList" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyList" } } } @@ -15798,7 +15798,7 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -15806,8 +15806,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "create a Network", - "operationId": "createNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", + "description": "create a NetworkPolicy", + "operationId": "createNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicy", "parameters": [ { "name": "dryRun", @@ -15841,7 +15841,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -15852,12 +15852,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -15867,12 +15867,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -15882,12 +15882,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -15899,7 +15899,7 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -15907,8 +15907,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "delete collection of Network", - "operationId": "deleteNetworkingApiOnmetalDeV1alpha1CollectionNamespacedNetwork", + "description": "delete collection of NetworkPolicy", + "operationId": "deleteNetworkingApiOnmetalDeV1alpha1CollectionNamespacedNetworkPolicy", "parameters": [ { "name": "continue", @@ -16042,7 +16042,7 @@ "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -16068,25 +16068,25 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networks/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networkpolicies/{name}": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "read the specified Network", - "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", + "description": "read the specified NetworkPolicy", + "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicy", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16098,7 +16098,7 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -16106,8 +16106,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "replace the specified Network", - "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", + "description": "replace the specified NetworkPolicy", + "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicy", "parameters": [ { "name": "dryRun", @@ -16141,7 +16141,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16152,12 +16152,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16167,12 +16167,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16184,7 +16184,7 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -16192,8 +16192,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "delete a Network", - "operationId": "deleteNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", + "description": "delete a NetworkPolicy", + "operationId": "deleteNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicy", "parameters": [ { "name": "dryRun", @@ -16279,7 +16279,7 @@ "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -16287,8 +16287,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "partially update the specified Network", - "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", + "description": "partially update the specified NetworkPolicy", + "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicy", "parameters": [ { "name": "dryRun", @@ -16357,12 +16357,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16372,12 +16372,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16389,7 +16389,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -16397,7 +16397,7 @@ { "name": "name", "in": "path", - "description": "name of the Network", + "description": "name of the NetworkPolicy", "required": true, "schema": { "type": "string", @@ -16425,25 +16425,25 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networks/{name}/status": { + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networkpolicies/{name}/status": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "read status of the specified Network", - "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedNetworkStatus", + "description": "read status of the specified NetworkPolicy", + "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicyStatus", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16455,7 +16455,7 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -16463,8 +16463,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "replace status of the specified Network", - "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedNetworkStatus", + "description": "replace status of the specified NetworkPolicy", + "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicyStatus", "parameters": [ { "name": "dryRun", @@ -16498,7 +16498,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16509,12 +16509,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16524,12 +16524,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16541,7 +16541,7 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -16549,8 +16549,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "partially update status of the specified Network", - "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkStatus", + "description": "partially update status of the specified NetworkPolicy", + "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicyStatus", "parameters": [ { "name": "dryRun", @@ -16619,12 +16619,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16634,12 +16634,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16651,7 +16651,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -16659,7 +16659,7 @@ { "name": "name", "in": "path", - "description": "name of the Network", + "description": "name of the NetworkPolicy", "required": true, "schema": { "type": "string", @@ -16687,13 +16687,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/virtualips": { + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networks": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "list or watch objects of kind VirtualIP", - "operationId": "listNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "description": "list or watch objects of kind Network", + "operationId": "listNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", "parameters": [ { "name": "allowWatchBookmarks", @@ -16783,17 +16783,17 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" } }, "application/json;stream=watch": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" } } } @@ -16805,7 +16805,7 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -16813,8 +16813,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "create a VirtualIP", - "operationId": "createNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "description": "create a Network", + "operationId": "createNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", "parameters": [ { "name": "dryRun", @@ -16848,7 +16848,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -16859,12 +16859,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -16874,12 +16874,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -16889,12 +16889,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -16906,7 +16906,7 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -16914,8 +16914,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "delete collection of VirtualIP", - "operationId": "deleteNetworkingApiOnmetalDeV1alpha1CollectionNamespacedVirtualIP", + "description": "delete collection of Network", + "operationId": "deleteNetworkingApiOnmetalDeV1alpha1CollectionNamespacedNetwork", "parameters": [ { "name": "continue", @@ -17049,7 +17049,7 @@ "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -17075,25 +17075,25 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/virtualips/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networks/{name}": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "read the specified VirtualIP", - "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "description": "read the specified Network", + "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17105,7 +17105,7 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -17113,8 +17113,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "replace the specified VirtualIP", - "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "description": "replace the specified Network", + "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", "parameters": [ { "name": "dryRun", @@ -17148,7 +17148,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17159,12 +17159,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17174,12 +17174,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17191,7 +17191,7 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -17199,8 +17199,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "delete a VirtualIP", - "operationId": "deleteNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "description": "delete a Network", + "operationId": "deleteNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", "parameters": [ { "name": "dryRun", @@ -17286,7 +17286,7 @@ "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -17294,8 +17294,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "partially update the specified VirtualIP", - "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "description": "partially update the specified Network", + "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", "parameters": [ { "name": "dryRun", @@ -17364,12 +17364,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17379,12 +17379,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17396,7 +17396,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -17404,7 +17404,7 @@ { "name": "name", "in": "path", - "description": "name of the VirtualIP", + "description": "name of the Network", "required": true, "schema": { "type": "string", @@ -17432,25 +17432,25 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/virtualips/{name}/status": { + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networks/{name}/status": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "read status of the specified VirtualIP", - "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIPStatus", + "description": "read status of the specified Network", + "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedNetworkStatus", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17462,7 +17462,7 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -17470,8 +17470,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "replace status of the specified VirtualIP", - "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIPStatus", + "description": "replace status of the specified Network", + "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedNetworkStatus", "parameters": [ { "name": "dryRun", @@ -17505,7 +17505,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17516,12 +17516,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17531,12 +17531,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17548,7 +17548,7 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -17556,8 +17556,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "partially update status of the specified VirtualIP", - "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIPStatus", + "description": "partially update status of the specified Network", + "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkStatus", "parameters": [ { "name": "dryRun", @@ -17626,12 +17626,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17641,12 +17641,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17658,7 +17658,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -17666,7 +17666,7 @@ { "name": "name", "in": "path", - "description": "name of the VirtualIP", + "description": "name of the Network", "required": true, "schema": { "type": "string", @@ -17694,56 +17694,1327 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/natgatewayroutings": { + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/virtualips": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "list or watch objects of kind NATGatewayRouting", - "operationId": "listNetworkingApiOnmetalDeV1alpha1NATGatewayRoutingForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayRoutingList" - } - }, - "application/json;stream=watch": { - "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayRoutingList" - } - }, - "application/yaml": { - "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayRoutingList" - } - } + "description": "list or watch objects of kind VirtualIP", + "operationId": "listNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "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 } }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "networking.api.onmetal.de", - "kind": "NATGatewayRouting", - "version": "v1alpha1" - } - }, - "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": "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.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" + } + }, + "application/json;stream=watch": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "post": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "create a VirtualIP", + "operationId": "createNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "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, provided that the `ServerSideFieldValidation` feature gate is also enabled. 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 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - 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 when the `ServerSideFieldValidation` feature gate is enabled. - 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.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "202": { + "description": "Accepted", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "delete": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "delete collection of VirtualIP", + "operationId": "deleteNetworkingApiOnmetalDeV1alpha1CollectionNamespacedVirtualIP", + "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": "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": "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" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "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", + "description": "If 'true', then the output is pretty printed.", + "schema": { + "type": "string", + "uniqueItems": true + } + } + ] + }, + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/virtualips/{name}": { + "get": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "read the specified VirtualIP", + "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "put": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "replace the specified VirtualIP", + "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "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, provided that the `ServerSideFieldValidation` feature gate is also enabled. 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 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - 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 when the `ServerSideFieldValidation` feature gate is enabled. - 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.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "delete": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "delete a VirtualIP", + "operationId": "deleteNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "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": "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" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "patch": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "partially update the specified VirtualIP", + "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "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, provided that the `ServerSideFieldValidation` feature gate is also enabled. 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 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - 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 when the `ServerSideFieldValidation` feature gate is enabled. - 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" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "name": "name", + "in": "path", + "description": "name of the VirtualIP", + "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.", + "schema": { + "type": "string", + "uniqueItems": true + } + } + ] + }, + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/virtualips/{name}/status": { + "get": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "read status of the specified VirtualIP", + "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIPStatus", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "put": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "replace status of the specified VirtualIP", + "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIPStatus", + "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, provided that the `ServerSideFieldValidation` feature gate is also enabled. 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 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - 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 when the `ServerSideFieldValidation` feature gate is enabled. - 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.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "patch": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "partially update status of the specified VirtualIP", + "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIPStatus", + "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, provided that the `ServerSideFieldValidation` feature gate is also enabled. 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 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - 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 when the `ServerSideFieldValidation` feature gate is enabled. - 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" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "name": "name", + "in": "path", + "description": "name of the VirtualIP", + "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.", + "schema": { + "type": "string", + "uniqueItems": true + } + } + ] + }, + "/apis/networking.api.onmetal.de/v1alpha1/natgatewayroutings": { + "get": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "list or watch objects of kind NATGatewayRouting", + "operationId": "listNetworkingApiOnmetalDeV1alpha1NATGatewayRoutingForAllNamespaces", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayRoutingList" + } + }, + "application/json;stream=watch": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayRoutingList" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayRoutingList" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "NATGatewayRouting", + "version": "v1alpha1" + } + }, + "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.", + "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": "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/networking.api.onmetal.de/v1alpha1/natgateways": { + "get": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "list or watch objects of kind NATGateway", + "operationId": "listNetworkingApiOnmetalDeV1alpha1NATGatewayForAllNamespaces", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayList" + } + }, + "application/json;stream=watch": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayList" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayList" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "NATGateway", + "version": "v1alpha1" + } + }, + "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.", + "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": "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/networking.api.onmetal.de/v1alpha1/networkinterfaces": { + "get": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "list or watch objects of kind NetworkInterface", + "operationId": "listNetworkingApiOnmetalDeV1alpha1NetworkInterfaceForAllNamespaces", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkInterfaceList" + } + }, + "application/json;stream=watch": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkInterfaceList" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkInterfaceList" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "NetworkInterface", + "version": "v1alpha1" + } + }, + "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.", @@ -17826,30 +19097,30 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/natgateways": { + "/apis/networking.api.onmetal.de/v1alpha1/networkpolicies": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "list or watch objects of kind NATGateway", - "operationId": "listNetworkingApiOnmetalDeV1alpha1NATGatewayForAllNamespaces", + "description": "list or watch objects of kind NetworkPolicy", + "operationId": "listNetworkingApiOnmetalDeV1alpha1NetworkPolicyForAllNamespaces", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyList" } }, "application/json;stream=watch": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyList" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyList" } } } @@ -17861,7 +19132,7 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NATGateway", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -17958,30 +19229,30 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/networkinterfaces": { + "/apis/networking.api.onmetal.de/v1alpha1/networks": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "list or watch objects of kind NetworkInterface", - "operationId": "listNetworkingApiOnmetalDeV1alpha1NetworkInterfaceForAllNamespaces", + "description": "list or watch objects of kind Network", + "operationId": "listNetworkingApiOnmetalDeV1alpha1NetworkForAllNamespaces", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkInterfaceList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" } }, "application/json;stream=watch": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkInterfaceList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkInterfaceList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" } } } @@ -17993,7 +19264,7 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NetworkInterface", + "kind": "Network", "version": "v1alpha1" } }, @@ -18090,30 +19361,30 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/networks": { + "/apis/networking.api.onmetal.de/v1alpha1/virtualips": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "list or watch objects of kind Network", - "operationId": "listNetworkingApiOnmetalDeV1alpha1NetworkForAllNamespaces", + "description": "list or watch objects of kind VirtualIP", + "operationId": "listNetworkingApiOnmetalDeV1alpha1VirtualIPForAllNamespaces", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" } }, "application/json;stream=watch": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" } } } @@ -18125,7 +19396,7 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "VirtualIP", "version": "v1alpha1" } }, @@ -18222,30 +19493,30 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/virtualips": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/aliasprefixes": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "list or watch objects of kind VirtualIP", - "operationId": "listNetworkingApiOnmetalDeV1alpha1VirtualIPForAllNamespaces", + "description": "watch individual changes to a list of AliasPrefix. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1AliasPrefixListForAllNamespaces", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "application/json;stream=watch": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } } } @@ -18254,10 +19525,10 @@ "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "AliasPrefix", "version": "v1alpha1" } }, @@ -18354,13 +19625,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/aliasprefixes": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/aliasprefixroutings": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of AliasPrefix. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1AliasPrefixListForAllNamespaces", + "description": "watch individual changes to a list of AliasPrefixRouting. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1AliasPrefixRoutingListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -18389,7 +19660,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "AliasPrefix", + "kind": "AliasPrefixRouting", "version": "v1alpha1" } }, @@ -18486,13 +19757,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/aliasprefixroutings": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/loadbalancerroutings": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of AliasPrefixRouting. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1AliasPrefixRoutingListForAllNamespaces", + "description": "watch individual changes to a list of LoadBalancerRouting. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1LoadBalancerRoutingListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -18521,7 +19792,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "AliasPrefixRouting", + "kind": "LoadBalancerRouting", "version": "v1alpha1" } }, @@ -18618,13 +19889,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/loadbalancerroutings": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/loadbalancers": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of LoadBalancerRouting. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1LoadBalancerRoutingListForAllNamespaces", + "description": "watch individual changes to a list of LoadBalancer. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1LoadBalancerListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -18653,7 +19924,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "LoadBalancerRouting", + "kind": "LoadBalancer", "version": "v1alpha1" } }, @@ -18750,13 +20021,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/loadbalancers": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/aliasprefixes": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of LoadBalancer. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1LoadBalancerListForAllNamespaces", + "description": "watch individual changes to a list of AliasPrefix. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedAliasPrefixList", "responses": { "200": { "description": "OK", @@ -18785,7 +20056,149 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "LoadBalancer", + "kind": "AliasPrefix", + "version": "v1alpha1" + } + }, + "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": "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.", + "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": "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/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/aliasprefixes/{name}": { + "get": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "watch changes to an object of kind AliasPrefix. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedAliasPrefix", + "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" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "AliasPrefix", "version": "v1alpha1" } }, @@ -18831,7 +20244,27 @@ "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 AliasPrefix", + "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 } }, @@ -18882,13 +20315,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/aliasprefixes": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/aliasprefixroutings": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of AliasPrefix. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedAliasPrefixList", + "description": "watch individual changes to a list of AliasPrefixRouting. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedAliasPrefixRoutingList", "responses": { "200": { "description": "OK", @@ -18917,7 +20350,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "AliasPrefix", + "kind": "AliasPrefixRouting", "version": "v1alpha1" } }, @@ -19024,13 +20457,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/aliasprefixes/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/aliasprefixroutings/{name}": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch changes to an object of kind AliasPrefix. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedAliasPrefix", + "description": "watch changes to an object of kind AliasPrefixRouting. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedAliasPrefixRouting", "responses": { "200": { "description": "OK", @@ -19059,7 +20492,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "AliasPrefix", + "kind": "AliasPrefixRouting", "version": "v1alpha1" } }, @@ -19112,7 +20545,7 @@ { "name": "name", "in": "path", - "description": "name of the AliasPrefix", + "description": "name of the AliasPrefixRouting", "required": true, "schema": { "type": "string", @@ -19176,13 +20609,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/aliasprefixroutings": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/loadbalancerroutings": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of AliasPrefixRouting. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedAliasPrefixRoutingList", + "description": "watch individual changes to a list of LoadBalancerRouting. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedLoadBalancerRoutingList", "responses": { "200": { "description": "OK", @@ -19211,7 +20644,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "AliasPrefixRouting", + "kind": "LoadBalancerRouting", "version": "v1alpha1" } }, @@ -19318,13 +20751,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/aliasprefixroutings/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/loadbalancerroutings/{name}": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch changes to an object of kind AliasPrefixRouting. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedAliasPrefixRouting", + "description": "watch changes to an object of kind LoadBalancerRouting. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedLoadBalancerRouting", "responses": { "200": { "description": "OK", @@ -19353,7 +20786,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "AliasPrefixRouting", + "kind": "LoadBalancerRouting", "version": "v1alpha1" } }, @@ -19406,7 +20839,7 @@ { "name": "name", "in": "path", - "description": "name of the AliasPrefixRouting", + "description": "name of the LoadBalancerRouting", "required": true, "schema": { "type": "string", @@ -19470,13 +20903,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/loadbalancerroutings": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/loadbalancers": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of LoadBalancerRouting. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedLoadBalancerRoutingList", + "description": "watch individual changes to a list of LoadBalancer. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedLoadBalancerList", "responses": { "200": { "description": "OK", @@ -19505,7 +20938,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "LoadBalancerRouting", + "kind": "LoadBalancer", "version": "v1alpha1" } }, @@ -19612,13 +21045,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/loadbalancerroutings/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/loadbalancers/{name}": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch changes to an object of kind LoadBalancerRouting. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedLoadBalancerRouting", + "description": "watch changes to an object of kind LoadBalancer. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedLoadBalancer", "responses": { "200": { "description": "OK", @@ -19647,7 +21080,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "LoadBalancerRouting", + "kind": "LoadBalancer", "version": "v1alpha1" } }, @@ -19700,7 +21133,7 @@ { "name": "name", "in": "path", - "description": "name of the LoadBalancerRouting", + "description": "name of the LoadBalancer", "required": true, "schema": { "type": "string", @@ -19764,13 +21197,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/loadbalancers": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/natgatewayroutings": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of LoadBalancer. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedLoadBalancerList", + "description": "watch individual changes to a list of NATGatewayRouting. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNATGatewayRoutingList", "responses": { "200": { "description": "OK", @@ -19799,7 +21232,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "LoadBalancer", + "kind": "NATGatewayRouting", "version": "v1alpha1" } }, @@ -19906,13 +21339,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/loadbalancers/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/natgatewayroutings/{name}": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch changes to an object of kind LoadBalancer. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedLoadBalancer", + "description": "watch changes to an object of kind NATGatewayRouting. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNATGatewayRouting", "responses": { "200": { "description": "OK", @@ -19941,7 +21374,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "LoadBalancer", + "kind": "NATGatewayRouting", "version": "v1alpha1" } }, @@ -19994,7 +21427,7 @@ { "name": "name", "in": "path", - "description": "name of the LoadBalancer", + "description": "name of the NATGatewayRouting", "required": true, "schema": { "type": "string", @@ -20058,13 +21491,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/natgatewayroutings": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/natgateways": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of NATGatewayRouting. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNATGatewayRoutingList", + "description": "watch individual changes to a list of NATGateway. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNATGatewayList", "responses": { "200": { "description": "OK", @@ -20093,7 +21526,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NATGatewayRouting", + "kind": "NATGateway", "version": "v1alpha1" } }, @@ -20200,13 +21633,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/natgatewayroutings/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/natgateways/{name}": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch changes to an object of kind NATGatewayRouting. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNATGatewayRouting", + "description": "watch changes to an object of kind NATGateway. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNATGateway", "responses": { "200": { "description": "OK", @@ -20235,7 +21668,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NATGatewayRouting", + "kind": "NATGateway", "version": "v1alpha1" } }, @@ -20288,7 +21721,7 @@ { "name": "name", "in": "path", - "description": "name of the NATGatewayRouting", + "description": "name of the NATGateway", "required": true, "schema": { "type": "string", @@ -20352,13 +21785,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/natgateways": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/networkinterfaces": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of NATGateway. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNATGatewayList", + "description": "watch individual changes to a list of NetworkInterface. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkInterfaceList", "responses": { "200": { "description": "OK", @@ -20387,7 +21820,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NATGateway", + "kind": "NetworkInterface", "version": "v1alpha1" } }, @@ -20494,13 +21927,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/natgateways/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/networkinterfaces/{name}": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch changes to an object of kind NATGateway. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNATGateway", + "description": "watch changes to an object of kind NetworkInterface. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkInterface", "responses": { "200": { "description": "OK", @@ -20529,7 +21962,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NATGateway", + "kind": "NetworkInterface", "version": "v1alpha1" } }, @@ -20582,7 +22015,7 @@ { "name": "name", "in": "path", - "description": "name of the NATGateway", + "description": "name of the NetworkInterface", "required": true, "schema": { "type": "string", @@ -20646,13 +22079,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/networkinterfaces": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/networkpolicies": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of NetworkInterface. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkInterfaceList", + "description": "watch individual changes to a list of NetworkPolicy. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicyList", "responses": { "200": { "description": "OK", @@ -20681,7 +22114,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NetworkInterface", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -20788,13 +22221,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/networkinterfaces/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/networkpolicies/{name}": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch changes to an object of kind NetworkInterface. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkInterface", + "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.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicy", "responses": { "200": { "description": "OK", @@ -20823,7 +22256,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NetworkInterface", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -20876,7 +22309,7 @@ { "name": "name", "in": "path", - "description": "name of the NetworkInterface", + "description": "name of the NetworkPolicy", "required": true, "schema": { "type": "string", @@ -21533,8 +22966,140 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of NATGatewayRouting. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NATGatewayRoutingListForAllNamespaces", + "description": "watch individual changes to a list of NATGatewayRouting. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NATGatewayRoutingListForAllNamespaces", + "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" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "NATGatewayRouting", + "version": "v1alpha1" + } + }, + "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.", + "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": "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/networking.api.onmetal.de/v1alpha1/watch/natgateways": { + "get": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "watch individual changes to a list of NATGateway. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NATGatewayListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -21563,7 +23128,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NATGatewayRouting", + "kind": "NATGateway", "version": "v1alpha1" } }, @@ -21660,13 +23225,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/natgateways": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/networkinterfaces": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of NATGateway. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NATGatewayListForAllNamespaces", + "description": "watch individual changes to a list of NetworkInterface. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NetworkInterfaceListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -21695,7 +23260,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NATGateway", + "kind": "NetworkInterface", "version": "v1alpha1" } }, @@ -21792,13 +23357,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/networkinterfaces": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/networkpolicies": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of NetworkInterface. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NetworkInterfaceListForAllNamespaces", + "description": "watch individual changes to a list of NetworkPolicy. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NetworkPolicyListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -21827,7 +23392,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NetworkInterface", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -30713,6 +32278,33 @@ } } }, + "com.github.onmetal.onmetal-api.api.core.v1alpha1.ObjectSelector": { + "description": "ObjectSelector specifies how to select objects of a certain kind.", + "type": "object", + "required": [ + "kind" + ], + "properties": { + "kind": { + "description": "Kind is the kind of object to select.", + "type": "string" + }, + "matchExpressions": { + "description": "matchExpressions is a list of label selector requirements. The requirements are ANDed.", + "type": "array", + "items": { + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement" + } + }, + "matchLabels": { + "description": "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \"key\", the operator is \"In\", and the values array contains only \"value\". The requirements are ANDed.", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, "com.github.onmetal.onmetal-api.api.core.v1alpha1.ResourceQuota": { "description": "ResourceQuota is the Schema for the resourcequotas API", "type": "object", @@ -31343,6 +32935,30 @@ } } }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.IPBlock": { + "description": "IPBlock specifies an ip block with optional exceptions.", + "type": "object", + "required": [ + "cidr" + ], + "properties": { + "cidr": { + "description": "CIDR is a string representing the ip block.", + "allOf": [ + { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.common.v1alpha1.IPPrefix" + } + ] + }, + "except": { + "description": "Except is a slice of CIDRs that should not be included within the specified CIDR. Values will be rejected if they are outside CIDR.", + "type": "array", + "items": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.common.v1alpha1.IPPrefix" + } + } + } + }, "com.github.onmetal.onmetal-api.api.networking.v1alpha1.IPSource": { "description": "IPSource is the definition of how to obtain an IP.", "type": "object", @@ -31542,6 +33158,13 @@ "type": "string" } }, + "ips": { + "description": "IPs are the ips to use. Can only be used when Type is LoadBalancerTypeInternal.", + "type": "array", + "items": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.IPSource" + } + }, "networkInterfaceSelector": { "description": "NetworkInterfaceSelector defines the NetworkInterfaces for which this LoadBalancer should be applied", "allOf": [ @@ -32168,6 +33791,252 @@ } } }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy": { + "description": "NetworkPolicy is the Schema for the networkpolicies 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": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicySpec" + }, + "status": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyStatus" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "networking.api.onmetal.de", + "kind": "NetworkPolicy", + "version": "v1alpha1" + } + ] + }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyCondition": { + "description": "NetworkPolicyCondition is one of the conditions of a network policy.", + "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" + }, + "observedGeneration": { + "description": "ObservedGeneration represents the .metadata.generation that the condition was set based upon.", + "type": "integer", + "format": "int64" + }, + "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.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyEgressRule": { + "description": "NetworkPolicyEgressRule describes a rule to regulate egress traffic with.", + "type": "object", + "properties": { + "ports": { + "description": "Ports specifies the list of destination ports that can be called with this rule. Each item in this list is combined using a logical OR. Empty matches all ports. As soon as a single item is present, only these ports are allowed.", + "type": "array", + "items": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyPort" + } + }, + "to": { + "description": "To specifies the list of destinations which the selected network interfaces should be able to send traffic to. Fields are combined using a logical OR. Empty matches all destinations. As soon as a single item is present, only these peers are allowed.", + "type": "array", + "items": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyPeer" + } + } + } + }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyIngressRule": { + "description": "NetworkPolicyIngressRule describes a rule to regulate ingress traffic with.", + "type": "object", + "properties": { + "from": { + "description": "From specifies the list of sources which should be able to send traffic to the selected network interfaces. Fields are combined using a logical OR. Empty matches all sources. As soon as a single item is present, only these peers are allowed.", + "type": "array", + "items": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyPeer" + } + }, + "ports": { + "description": "Ports specifies the list of ports which should be made accessible for this rule. Each item in this list is combined using a logical OR. Empty matches all ports. As soon as a single item is present, only these ports are allowed.", + "type": "array", + "items": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyPort" + } + } + } + }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyList": { + "description": "NetworkPolicyList contains a list of NetworkPolicy.", + "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": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" + } + }, + "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": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "networking.api.onmetal.de", + "kind": "NetworkPolicyList", + "version": "v1alpha1" + } + ] + }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyPeer": { + "description": "NetworkPolicyPeer describes a peer to allow traffic to / from.", + "type": "object", + "properties": { + "ipBlock": { + "description": "IPBlock specifies the ip block from or to which network traffic may come.", + "allOf": [ + { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.IPBlock" + } + ] + }, + "objectSelector": { + "description": "ObjectSelector selects peers with the given kind matching the label selector. Exclusive with other peer specifiers.", + "allOf": [ + { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.core.v1alpha1.ObjectSelector" + } + ] + } + } + }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyPort": { + "description": "NetworkPolicyPort describes a port to allow traffic on", + "type": "object", + "properties": { + "endPort": { + "description": "EndPort indicates that the range of ports from Port to EndPort, inclusive, should be allowed by the policy. This field cannot be defined if the port field is not defined. The endPort must be equal or greater than port.", + "type": "integer", + "format": "int32" + }, + "port": { + "description": "The port on the given protocol. If this field is not provided, this matches all port names and numbers. If present, only traffic on the specified protocol AND port will be matched.", + "type": "integer", + "format": "int32" + }, + "protocol": { + "description": "Protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this field defaults to TCP.", + "type": "string" + } + } + }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicySpec": { + "description": "NetworkPolicySpec defines the desired state of NetworkPolicy.", + "type": "object", + "required": [ + "networkRef", + "networkInterfaceSelector" + ], + "properties": { + "egress": { + "description": "Egress specifies rules for egress traffic.", + "type": "array", + "items": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyEgressRule" + } + }, + "ingress": { + "description": "Ingress specifies rules for ingress traffic.", + "type": "array", + "items": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyIngressRule" + } + }, + "networkInterfaceSelector": { + "description": "NetworkInterfaceSelector selects the network interfaces that are subject to this policy.", + "allOf": [ + { + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" + } + ] + }, + "networkRef": { + "description": "NetworkRef is the network to regulate using this policy.", + "allOf": [ + { + "$ref": "#/components/schemas/io.k8s.api.core.v1.LocalObjectReference" + } + ] + }, + "policyTypes": { + "description": "PolicyTypes specifies the types of policies this network policy contains.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyStatus": { + "description": "NetworkPolicyStatus defines the observed state of NetworkPolicy.", + "type": "object", + "properties": { + "conditions": { + "description": "Conditions are various conditions of the NetworkPolicy.", + "type": "array", + "items": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyCondition" + } + } + } + }, "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkSpec": { "description": "NetworkSpec defines the desired state of Network", "type": "object", diff --git a/gen/v3/apis__storage.api.onmetal.de__v1alpha1_openapi.json b/gen/v3/apis__storage.api.onmetal.de__v1alpha1_openapi.json index ccab29818..f971c7889 100644 --- a/gen/v3/apis__storage.api.onmetal.de__v1alpha1_openapi.json +++ b/gen/v3/apis__storage.api.onmetal.de__v1alpha1_openapi.json @@ -15680,13 +15680,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networks": { + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networkpolicies": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "list or watch objects of kind Network", - "operationId": "listNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", + "description": "list or watch objects of kind NetworkPolicy", + "operationId": "listNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicy", "parameters": [ { "name": "allowWatchBookmarks", @@ -15776,17 +15776,17 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyList" } }, "application/json;stream=watch": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyList" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyList" } } } @@ -15798,7 +15798,7 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -15806,8 +15806,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "create a Network", - "operationId": "createNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", + "description": "create a NetworkPolicy", + "operationId": "createNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicy", "parameters": [ { "name": "dryRun", @@ -15841,7 +15841,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -15852,12 +15852,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -15867,12 +15867,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -15882,12 +15882,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -15899,7 +15899,7 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -15907,8 +15907,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "delete collection of Network", - "operationId": "deleteNetworkingApiOnmetalDeV1alpha1CollectionNamespacedNetwork", + "description": "delete collection of NetworkPolicy", + "operationId": "deleteNetworkingApiOnmetalDeV1alpha1CollectionNamespacedNetworkPolicy", "parameters": [ { "name": "continue", @@ -16042,7 +16042,7 @@ "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -16068,25 +16068,25 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networks/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networkpolicies/{name}": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "read the specified Network", - "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", + "description": "read the specified NetworkPolicy", + "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicy", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16098,7 +16098,7 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -16106,8 +16106,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "replace the specified Network", - "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", + "description": "replace the specified NetworkPolicy", + "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicy", "parameters": [ { "name": "dryRun", @@ -16141,7 +16141,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16152,12 +16152,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16167,12 +16167,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16184,7 +16184,7 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -16192,8 +16192,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "delete a Network", - "operationId": "deleteNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", + "description": "delete a NetworkPolicy", + "operationId": "deleteNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicy", "parameters": [ { "name": "dryRun", @@ -16279,7 +16279,7 @@ "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -16287,8 +16287,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "partially update the specified Network", - "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", + "description": "partially update the specified NetworkPolicy", + "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicy", "parameters": [ { "name": "dryRun", @@ -16357,12 +16357,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16372,12 +16372,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16389,7 +16389,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -16397,7 +16397,7 @@ { "name": "name", "in": "path", - "description": "name of the Network", + "description": "name of the NetworkPolicy", "required": true, "schema": { "type": "string", @@ -16425,25 +16425,25 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networks/{name}/status": { + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networkpolicies/{name}/status": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "read status of the specified Network", - "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedNetworkStatus", + "description": "read status of the specified NetworkPolicy", + "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicyStatus", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16455,7 +16455,7 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -16463,8 +16463,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "replace status of the specified Network", - "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedNetworkStatus", + "description": "replace status of the specified NetworkPolicy", + "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicyStatus", "parameters": [ { "name": "dryRun", @@ -16498,7 +16498,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16509,12 +16509,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16524,12 +16524,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16541,7 +16541,7 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -16549,8 +16549,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "partially update status of the specified Network", - "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkStatus", + "description": "partially update status of the specified NetworkPolicy", + "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicyStatus", "parameters": [ { "name": "dryRun", @@ -16619,12 +16619,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16634,12 +16634,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" } } } @@ -16651,7 +16651,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -16659,7 +16659,7 @@ { "name": "name", "in": "path", - "description": "name of the Network", + "description": "name of the NetworkPolicy", "required": true, "schema": { "type": "string", @@ -16687,13 +16687,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/virtualips": { + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networks": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "list or watch objects of kind VirtualIP", - "operationId": "listNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "description": "list or watch objects of kind Network", + "operationId": "listNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", "parameters": [ { "name": "allowWatchBookmarks", @@ -16783,17 +16783,17 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" } }, "application/json;stream=watch": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" } } } @@ -16805,7 +16805,7 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -16813,8 +16813,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "create a VirtualIP", - "operationId": "createNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "description": "create a Network", + "operationId": "createNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", "parameters": [ { "name": "dryRun", @@ -16848,7 +16848,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -16859,12 +16859,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -16874,12 +16874,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -16889,12 +16889,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -16906,7 +16906,7 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -16914,8 +16914,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "delete collection of VirtualIP", - "operationId": "deleteNetworkingApiOnmetalDeV1alpha1CollectionNamespacedVirtualIP", + "description": "delete collection of Network", + "operationId": "deleteNetworkingApiOnmetalDeV1alpha1CollectionNamespacedNetwork", "parameters": [ { "name": "continue", @@ -17049,7 +17049,7 @@ "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -17075,25 +17075,25 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/virtualips/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networks/{name}": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "read the specified VirtualIP", - "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "description": "read the specified Network", + "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17105,7 +17105,7 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -17113,8 +17113,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "replace the specified VirtualIP", - "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "description": "replace the specified Network", + "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", "parameters": [ { "name": "dryRun", @@ -17148,7 +17148,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17159,12 +17159,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17174,12 +17174,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17191,7 +17191,7 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -17199,8 +17199,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "delete a VirtualIP", - "operationId": "deleteNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "description": "delete a Network", + "operationId": "deleteNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", "parameters": [ { "name": "dryRun", @@ -17286,7 +17286,7 @@ "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -17294,8 +17294,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "partially update the specified VirtualIP", - "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "description": "partially update the specified Network", + "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedNetwork", "parameters": [ { "name": "dryRun", @@ -17364,12 +17364,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17379,12 +17379,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17396,7 +17396,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -17404,7 +17404,7 @@ { "name": "name", "in": "path", - "description": "name of the VirtualIP", + "description": "name of the Network", "required": true, "schema": { "type": "string", @@ -17432,25 +17432,25 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/virtualips/{name}/status": { + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/networks/{name}/status": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "read status of the specified VirtualIP", - "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIPStatus", + "description": "read status of the specified Network", + "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedNetworkStatus", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17462,7 +17462,7 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -17470,8 +17470,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "replace status of the specified VirtualIP", - "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIPStatus", + "description": "replace status of the specified Network", + "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedNetworkStatus", "parameters": [ { "name": "dryRun", @@ -17505,7 +17505,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17516,12 +17516,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17531,12 +17531,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17548,7 +17548,7 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -17556,8 +17556,8 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "partially update status of the specified VirtualIP", - "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIPStatus", + "description": "partially update status of the specified Network", + "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkStatus", "parameters": [ { "name": "dryRun", @@ -17626,12 +17626,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17641,12 +17641,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.Network" } } } @@ -17658,7 +17658,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "Network", "version": "v1alpha1" } }, @@ -17666,7 +17666,7 @@ { "name": "name", "in": "path", - "description": "name of the VirtualIP", + "description": "name of the Network", "required": true, "schema": { "type": "string", @@ -17694,56 +17694,1327 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/natgatewayroutings": { + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/virtualips": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "list or watch objects of kind NATGatewayRouting", - "operationId": "listNetworkingApiOnmetalDeV1alpha1NATGatewayRoutingForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayRoutingList" - } - }, - "application/json;stream=watch": { - "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayRoutingList" - } - }, - "application/yaml": { - "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayRoutingList" - } - } + "description": "list or watch objects of kind VirtualIP", + "operationId": "listNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "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 } }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "networking.api.onmetal.de", - "kind": "NATGatewayRouting", - "version": "v1alpha1" - } - }, - "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": "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.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" + } + }, + "application/json;stream=watch": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "post": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "create a VirtualIP", + "operationId": "createNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "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, provided that the `ServerSideFieldValidation` feature gate is also enabled. 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 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - 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 when the `ServerSideFieldValidation` feature gate is enabled. - 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.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "202": { + "description": "Accepted", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "delete": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "delete collection of VirtualIP", + "operationId": "deleteNetworkingApiOnmetalDeV1alpha1CollectionNamespacedVirtualIP", + "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": "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": "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" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "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", + "description": "If 'true', then the output is pretty printed.", + "schema": { + "type": "string", + "uniqueItems": true + } + } + ] + }, + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/virtualips/{name}": { + "get": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "read the specified VirtualIP", + "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "put": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "replace the specified VirtualIP", + "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "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, provided that the `ServerSideFieldValidation` feature gate is also enabled. 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 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - 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 when the `ServerSideFieldValidation` feature gate is enabled. - 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.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "delete": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "delete a VirtualIP", + "operationId": "deleteNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "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": "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" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "patch": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "partially update the specified VirtualIP", + "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIP", + "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, provided that the `ServerSideFieldValidation` feature gate is also enabled. 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 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - 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 when the `ServerSideFieldValidation` feature gate is enabled. - 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" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "name": "name", + "in": "path", + "description": "name of the VirtualIP", + "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.", + "schema": { + "type": "string", + "uniqueItems": true + } + } + ] + }, + "/apis/networking.api.onmetal.de/v1alpha1/namespaces/{namespace}/virtualips/{name}/status": { + "get": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "read status of the specified VirtualIP", + "operationId": "readNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIPStatus", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "put": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "replace status of the specified VirtualIP", + "operationId": "replaceNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIPStatus", + "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, provided that the `ServerSideFieldValidation` feature gate is also enabled. 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 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - 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 when the `ServerSideFieldValidation` feature gate is enabled. - 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.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "patch": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "partially update status of the specified VirtualIP", + "operationId": "patchNetworkingApiOnmetalDeV1alpha1NamespacedVirtualIPStatus", + "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, provided that the `ServerSideFieldValidation` feature gate is also enabled. 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 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - 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 when the `ServerSideFieldValidation` feature gate is enabled. - 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" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIP" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "VirtualIP", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "name": "name", + "in": "path", + "description": "name of the VirtualIP", + "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.", + "schema": { + "type": "string", + "uniqueItems": true + } + } + ] + }, + "/apis/networking.api.onmetal.de/v1alpha1/natgatewayroutings": { + "get": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "list or watch objects of kind NATGatewayRouting", + "operationId": "listNetworkingApiOnmetalDeV1alpha1NATGatewayRoutingForAllNamespaces", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayRoutingList" + } + }, + "application/json;stream=watch": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayRoutingList" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayRoutingList" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "NATGatewayRouting", + "version": "v1alpha1" + } + }, + "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.", + "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": "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/networking.api.onmetal.de/v1alpha1/natgateways": { + "get": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "list or watch objects of kind NATGateway", + "operationId": "listNetworkingApiOnmetalDeV1alpha1NATGatewayForAllNamespaces", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayList" + } + }, + "application/json;stream=watch": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayList" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayList" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "NATGateway", + "version": "v1alpha1" + } + }, + "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.", + "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": "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/networking.api.onmetal.de/v1alpha1/networkinterfaces": { + "get": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "list or watch objects of kind NetworkInterface", + "operationId": "listNetworkingApiOnmetalDeV1alpha1NetworkInterfaceForAllNamespaces", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkInterfaceList" + } + }, + "application/json;stream=watch": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkInterfaceList" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkInterfaceList" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "NetworkInterface", + "version": "v1alpha1" + } + }, + "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.", @@ -17826,30 +19097,30 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/natgateways": { + "/apis/networking.api.onmetal.de/v1alpha1/networkpolicies": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "list or watch objects of kind NATGateway", - "operationId": "listNetworkingApiOnmetalDeV1alpha1NATGatewayForAllNamespaces", + "description": "list or watch objects of kind NetworkPolicy", + "operationId": "listNetworkingApiOnmetalDeV1alpha1NetworkPolicyForAllNamespaces", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyList" } }, "application/json;stream=watch": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyList" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NATGatewayList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyList" } } } @@ -17861,7 +19132,7 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NATGateway", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -17958,30 +19229,30 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/networkinterfaces": { + "/apis/networking.api.onmetal.de/v1alpha1/networks": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "list or watch objects of kind NetworkInterface", - "operationId": "listNetworkingApiOnmetalDeV1alpha1NetworkInterfaceForAllNamespaces", + "description": "list or watch objects of kind Network", + "operationId": "listNetworkingApiOnmetalDeV1alpha1NetworkForAllNamespaces", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkInterfaceList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" } }, "application/json;stream=watch": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkInterfaceList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkInterfaceList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" } } } @@ -17993,7 +19264,7 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NetworkInterface", + "kind": "Network", "version": "v1alpha1" } }, @@ -18090,30 +19361,30 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/networks": { + "/apis/networking.api.onmetal.de/v1alpha1/virtualips": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "list or watch objects of kind Network", - "operationId": "listNetworkingApiOnmetalDeV1alpha1NetworkForAllNamespaces", + "description": "list or watch objects of kind VirtualIP", + "operationId": "listNetworkingApiOnmetalDeV1alpha1VirtualIPForAllNamespaces", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" } }, "application/json;stream=watch": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkList" + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" } } } @@ -18125,7 +19396,7 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "Network", + "kind": "VirtualIP", "version": "v1alpha1" } }, @@ -18222,30 +19493,30 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/virtualips": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/aliasprefixes": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "list or watch objects of kind VirtualIP", - "operationId": "listNetworkingApiOnmetalDeV1alpha1VirtualIPForAllNamespaces", + "description": "watch individual changes to a list of AliasPrefix. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1AliasPrefixListForAllNamespaces", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "application/json;stream=watch": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.VirtualIPList" + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" } } } @@ -18254,10 +19525,10 @@ "description": "Unauthorized" } }, - "x-kubernetes-action": "list", + "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "VirtualIP", + "kind": "AliasPrefix", "version": "v1alpha1" } }, @@ -18354,13 +19625,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/aliasprefixes": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/aliasprefixroutings": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of AliasPrefix. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1AliasPrefixListForAllNamespaces", + "description": "watch individual changes to a list of AliasPrefixRouting. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1AliasPrefixRoutingListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -18389,7 +19660,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "AliasPrefix", + "kind": "AliasPrefixRouting", "version": "v1alpha1" } }, @@ -18486,13 +19757,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/aliasprefixroutings": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/loadbalancerroutings": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of AliasPrefixRouting. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1AliasPrefixRoutingListForAllNamespaces", + "description": "watch individual changes to a list of LoadBalancerRouting. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1LoadBalancerRoutingListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -18521,7 +19792,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "AliasPrefixRouting", + "kind": "LoadBalancerRouting", "version": "v1alpha1" } }, @@ -18618,13 +19889,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/loadbalancerroutings": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/loadbalancers": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of LoadBalancerRouting. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1LoadBalancerRoutingListForAllNamespaces", + "description": "watch individual changes to a list of LoadBalancer. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1LoadBalancerListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -18653,7 +19924,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "LoadBalancerRouting", + "kind": "LoadBalancer", "version": "v1alpha1" } }, @@ -18750,13 +20021,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/loadbalancers": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/aliasprefixes": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of LoadBalancer. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1LoadBalancerListForAllNamespaces", + "description": "watch individual changes to a list of AliasPrefix. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedAliasPrefixList", "responses": { "200": { "description": "OK", @@ -18785,7 +20056,149 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "LoadBalancer", + "kind": "AliasPrefix", + "version": "v1alpha1" + } + }, + "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": "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.", + "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": "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/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/aliasprefixes/{name}": { + "get": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "watch changes to an object of kind AliasPrefix. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedAliasPrefix", + "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" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "AliasPrefix", "version": "v1alpha1" } }, @@ -18831,7 +20244,27 @@ "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 AliasPrefix", + "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 } }, @@ -18882,13 +20315,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/aliasprefixes": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/aliasprefixroutings": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of AliasPrefix. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedAliasPrefixList", + "description": "watch individual changes to a list of AliasPrefixRouting. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedAliasPrefixRoutingList", "responses": { "200": { "description": "OK", @@ -18917,7 +20350,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "AliasPrefix", + "kind": "AliasPrefixRouting", "version": "v1alpha1" } }, @@ -19024,13 +20457,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/aliasprefixes/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/aliasprefixroutings/{name}": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch changes to an object of kind AliasPrefix. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedAliasPrefix", + "description": "watch changes to an object of kind AliasPrefixRouting. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedAliasPrefixRouting", "responses": { "200": { "description": "OK", @@ -19059,7 +20492,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "AliasPrefix", + "kind": "AliasPrefixRouting", "version": "v1alpha1" } }, @@ -19112,7 +20545,7 @@ { "name": "name", "in": "path", - "description": "name of the AliasPrefix", + "description": "name of the AliasPrefixRouting", "required": true, "schema": { "type": "string", @@ -19176,13 +20609,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/aliasprefixroutings": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/loadbalancerroutings": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of AliasPrefixRouting. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedAliasPrefixRoutingList", + "description": "watch individual changes to a list of LoadBalancerRouting. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedLoadBalancerRoutingList", "responses": { "200": { "description": "OK", @@ -19211,7 +20644,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "AliasPrefixRouting", + "kind": "LoadBalancerRouting", "version": "v1alpha1" } }, @@ -19318,13 +20751,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/aliasprefixroutings/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/loadbalancerroutings/{name}": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch changes to an object of kind AliasPrefixRouting. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedAliasPrefixRouting", + "description": "watch changes to an object of kind LoadBalancerRouting. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedLoadBalancerRouting", "responses": { "200": { "description": "OK", @@ -19353,7 +20786,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "AliasPrefixRouting", + "kind": "LoadBalancerRouting", "version": "v1alpha1" } }, @@ -19406,7 +20839,7 @@ { "name": "name", "in": "path", - "description": "name of the AliasPrefixRouting", + "description": "name of the LoadBalancerRouting", "required": true, "schema": { "type": "string", @@ -19470,13 +20903,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/loadbalancerroutings": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/loadbalancers": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of LoadBalancerRouting. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedLoadBalancerRoutingList", + "description": "watch individual changes to a list of LoadBalancer. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedLoadBalancerList", "responses": { "200": { "description": "OK", @@ -19505,7 +20938,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "LoadBalancerRouting", + "kind": "LoadBalancer", "version": "v1alpha1" } }, @@ -19612,13 +21045,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/loadbalancerroutings/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/loadbalancers/{name}": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch changes to an object of kind LoadBalancerRouting. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedLoadBalancerRouting", + "description": "watch changes to an object of kind LoadBalancer. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedLoadBalancer", "responses": { "200": { "description": "OK", @@ -19647,7 +21080,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "LoadBalancerRouting", + "kind": "LoadBalancer", "version": "v1alpha1" } }, @@ -19700,7 +21133,7 @@ { "name": "name", "in": "path", - "description": "name of the LoadBalancerRouting", + "description": "name of the LoadBalancer", "required": true, "schema": { "type": "string", @@ -19764,13 +21197,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/loadbalancers": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/natgatewayroutings": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of LoadBalancer. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedLoadBalancerList", + "description": "watch individual changes to a list of NATGatewayRouting. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNATGatewayRoutingList", "responses": { "200": { "description": "OK", @@ -19799,7 +21232,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "LoadBalancer", + "kind": "NATGatewayRouting", "version": "v1alpha1" } }, @@ -19906,13 +21339,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/loadbalancers/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/natgatewayroutings/{name}": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch changes to an object of kind LoadBalancer. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedLoadBalancer", + "description": "watch changes to an object of kind NATGatewayRouting. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNATGatewayRouting", "responses": { "200": { "description": "OK", @@ -19941,7 +21374,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "LoadBalancer", + "kind": "NATGatewayRouting", "version": "v1alpha1" } }, @@ -19994,7 +21427,7 @@ { "name": "name", "in": "path", - "description": "name of the LoadBalancer", + "description": "name of the NATGatewayRouting", "required": true, "schema": { "type": "string", @@ -20058,13 +21491,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/natgatewayroutings": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/natgateways": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of NATGatewayRouting. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNATGatewayRoutingList", + "description": "watch individual changes to a list of NATGateway. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNATGatewayList", "responses": { "200": { "description": "OK", @@ -20093,7 +21526,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NATGatewayRouting", + "kind": "NATGateway", "version": "v1alpha1" } }, @@ -20200,13 +21633,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/natgatewayroutings/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/natgateways/{name}": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch changes to an object of kind NATGatewayRouting. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNATGatewayRouting", + "description": "watch changes to an object of kind NATGateway. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNATGateway", "responses": { "200": { "description": "OK", @@ -20235,7 +21668,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NATGatewayRouting", + "kind": "NATGateway", "version": "v1alpha1" } }, @@ -20288,7 +21721,7 @@ { "name": "name", "in": "path", - "description": "name of the NATGatewayRouting", + "description": "name of the NATGateway", "required": true, "schema": { "type": "string", @@ -20352,13 +21785,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/natgateways": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/networkinterfaces": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of NATGateway. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNATGatewayList", + "description": "watch individual changes to a list of NetworkInterface. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkInterfaceList", "responses": { "200": { "description": "OK", @@ -20387,7 +21820,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NATGateway", + "kind": "NetworkInterface", "version": "v1alpha1" } }, @@ -20494,13 +21927,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/natgateways/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/networkinterfaces/{name}": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch changes to an object of kind NATGateway. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNATGateway", + "description": "watch changes to an object of kind NetworkInterface. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkInterface", "responses": { "200": { "description": "OK", @@ -20529,7 +21962,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NATGateway", + "kind": "NetworkInterface", "version": "v1alpha1" } }, @@ -20582,7 +22015,7 @@ { "name": "name", "in": "path", - "description": "name of the NATGateway", + "description": "name of the NetworkInterface", "required": true, "schema": { "type": "string", @@ -20646,13 +22079,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/networkinterfaces": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/networkpolicies": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of NetworkInterface. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkInterfaceList", + "description": "watch individual changes to a list of NetworkPolicy. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicyList", "responses": { "200": { "description": "OK", @@ -20681,7 +22114,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NetworkInterface", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -20788,13 +22221,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/networkinterfaces/{name}": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/namespaces/{namespace}/networkpolicies/{name}": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch changes to an object of kind NetworkInterface. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkInterface", + "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.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NamespacedNetworkPolicy", "responses": { "200": { "description": "OK", @@ -20823,7 +22256,7 @@ "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NetworkInterface", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -20876,7 +22309,7 @@ { "name": "name", "in": "path", - "description": "name of the NetworkInterface", + "description": "name of the NetworkPolicy", "required": true, "schema": { "type": "string", @@ -21533,8 +22966,140 @@ "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of NATGatewayRouting. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NATGatewayRoutingListForAllNamespaces", + "description": "watch individual changes to a list of NATGatewayRouting. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NATGatewayRoutingListForAllNamespaces", + "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" + } + } + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "networking.api.onmetal.de", + "kind": "NATGatewayRouting", + "version": "v1alpha1" + } + }, + "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.", + "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": "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/networking.api.onmetal.de/v1alpha1/watch/natgateways": { + "get": { + "tags": [ + "networkingApiOnmetalDe_v1alpha1" + ], + "description": "watch individual changes to a list of NATGateway. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NATGatewayListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -21563,7 +23128,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NATGatewayRouting", + "kind": "NATGateway", "version": "v1alpha1" } }, @@ -21660,13 +23225,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/natgateways": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/networkinterfaces": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of NATGateway. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NATGatewayListForAllNamespaces", + "description": "watch individual changes to a list of NetworkInterface. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NetworkInterfaceListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -21695,7 +23260,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NATGateway", + "kind": "NetworkInterface", "version": "v1alpha1" } }, @@ -21792,13 +23357,13 @@ } ] }, - "/apis/networking.api.onmetal.de/v1alpha1/watch/networkinterfaces": { + "/apis/networking.api.onmetal.de/v1alpha1/watch/networkpolicies": { "get": { "tags": [ "networkingApiOnmetalDe_v1alpha1" ], - "description": "watch individual changes to a list of NetworkInterface. deprecated: use the 'watch' parameter with a list operation instead.", - "operationId": "watchNetworkingApiOnmetalDeV1alpha1NetworkInterfaceListForAllNamespaces", + "description": "watch individual changes to a list of NetworkPolicy. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchNetworkingApiOnmetalDeV1alpha1NetworkPolicyListForAllNamespaces", "responses": { "200": { "description": "OK", @@ -21827,7 +23392,7 @@ "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.api.onmetal.de", - "kind": "NetworkInterface", + "kind": "NetworkPolicy", "version": "v1alpha1" } }, @@ -30713,6 +32278,33 @@ } } }, + "com.github.onmetal.onmetal-api.api.core.v1alpha1.ObjectSelector": { + "description": "ObjectSelector specifies how to select objects of a certain kind.", + "type": "object", + "required": [ + "kind" + ], + "properties": { + "kind": { + "description": "Kind is the kind of object to select.", + "type": "string" + }, + "matchExpressions": { + "description": "matchExpressions is a list of label selector requirements. The requirements are ANDed.", + "type": "array", + "items": { + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement" + } + }, + "matchLabels": { + "description": "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \"key\", the operator is \"In\", and the values array contains only \"value\". The requirements are ANDed.", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, "com.github.onmetal.onmetal-api.api.core.v1alpha1.ResourceQuota": { "description": "ResourceQuota is the Schema for the resourcequotas API", "type": "object", @@ -31343,6 +32935,30 @@ } } }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.IPBlock": { + "description": "IPBlock specifies an ip block with optional exceptions.", + "type": "object", + "required": [ + "cidr" + ], + "properties": { + "cidr": { + "description": "CIDR is a string representing the ip block.", + "allOf": [ + { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.common.v1alpha1.IPPrefix" + } + ] + }, + "except": { + "description": "Except is a slice of CIDRs that should not be included within the specified CIDR. Values will be rejected if they are outside CIDR.", + "type": "array", + "items": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.common.v1alpha1.IPPrefix" + } + } + } + }, "com.github.onmetal.onmetal-api.api.networking.v1alpha1.IPSource": { "description": "IPSource is the definition of how to obtain an IP.", "type": "object", @@ -31542,6 +33158,13 @@ "type": "string" } }, + "ips": { + "description": "IPs are the ips to use. Can only be used when Type is LoadBalancerTypeInternal.", + "type": "array", + "items": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.IPSource" + } + }, "networkInterfaceSelector": { "description": "NetworkInterfaceSelector defines the NetworkInterfaces for which this LoadBalancer should be applied", "allOf": [ @@ -32168,6 +33791,252 @@ } } }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy": { + "description": "NetworkPolicy is the Schema for the networkpolicies 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": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicySpec" + }, + "status": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyStatus" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "networking.api.onmetal.de", + "kind": "NetworkPolicy", + "version": "v1alpha1" + } + ] + }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyCondition": { + "description": "NetworkPolicyCondition is one of the conditions of a network policy.", + "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" + }, + "observedGeneration": { + "description": "ObservedGeneration represents the .metadata.generation that the condition was set based upon.", + "type": "integer", + "format": "int64" + }, + "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.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyEgressRule": { + "description": "NetworkPolicyEgressRule describes a rule to regulate egress traffic with.", + "type": "object", + "properties": { + "ports": { + "description": "Ports specifies the list of destination ports that can be called with this rule. Each item in this list is combined using a logical OR. Empty matches all ports. As soon as a single item is present, only these ports are allowed.", + "type": "array", + "items": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyPort" + } + }, + "to": { + "description": "To specifies the list of destinations which the selected network interfaces should be able to send traffic to. Fields are combined using a logical OR. Empty matches all destinations. As soon as a single item is present, only these peers are allowed.", + "type": "array", + "items": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyPeer" + } + } + } + }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyIngressRule": { + "description": "NetworkPolicyIngressRule describes a rule to regulate ingress traffic with.", + "type": "object", + "properties": { + "from": { + "description": "From specifies the list of sources which should be able to send traffic to the selected network interfaces. Fields are combined using a logical OR. Empty matches all sources. As soon as a single item is present, only these peers are allowed.", + "type": "array", + "items": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyPeer" + } + }, + "ports": { + "description": "Ports specifies the list of ports which should be made accessible for this rule. Each item in this list is combined using a logical OR. Empty matches all ports. As soon as a single item is present, only these ports are allowed.", + "type": "array", + "items": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyPort" + } + } + } + }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyList": { + "description": "NetworkPolicyList contains a list of NetworkPolicy.", + "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": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicy" + } + }, + "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": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "networking.api.onmetal.de", + "kind": "NetworkPolicyList", + "version": "v1alpha1" + } + ] + }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyPeer": { + "description": "NetworkPolicyPeer describes a peer to allow traffic to / from.", + "type": "object", + "properties": { + "ipBlock": { + "description": "IPBlock specifies the ip block from or to which network traffic may come.", + "allOf": [ + { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.IPBlock" + } + ] + }, + "objectSelector": { + "description": "ObjectSelector selects peers with the given kind matching the label selector. Exclusive with other peer specifiers.", + "allOf": [ + { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.core.v1alpha1.ObjectSelector" + } + ] + } + } + }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyPort": { + "description": "NetworkPolicyPort describes a port to allow traffic on", + "type": "object", + "properties": { + "endPort": { + "description": "EndPort indicates that the range of ports from Port to EndPort, inclusive, should be allowed by the policy. This field cannot be defined if the port field is not defined. The endPort must be equal or greater than port.", + "type": "integer", + "format": "int32" + }, + "port": { + "description": "The port on the given protocol. If this field is not provided, this matches all port names and numbers. If present, only traffic on the specified protocol AND port will be matched.", + "type": "integer", + "format": "int32" + }, + "protocol": { + "description": "Protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this field defaults to TCP.", + "type": "string" + } + } + }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicySpec": { + "description": "NetworkPolicySpec defines the desired state of NetworkPolicy.", + "type": "object", + "required": [ + "networkRef", + "networkInterfaceSelector" + ], + "properties": { + "egress": { + "description": "Egress specifies rules for egress traffic.", + "type": "array", + "items": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyEgressRule" + } + }, + "ingress": { + "description": "Ingress specifies rules for ingress traffic.", + "type": "array", + "items": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyIngressRule" + } + }, + "networkInterfaceSelector": { + "description": "NetworkInterfaceSelector selects the network interfaces that are subject to this policy.", + "allOf": [ + { + "$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" + } + ] + }, + "networkRef": { + "description": "NetworkRef is the network to regulate using this policy.", + "allOf": [ + { + "$ref": "#/components/schemas/io.k8s.api.core.v1.LocalObjectReference" + } + ] + }, + "policyTypes": { + "description": "PolicyTypes specifies the types of policies this network policy contains.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyStatus": { + "description": "NetworkPolicyStatus defines the observed state of NetworkPolicy.", + "type": "object", + "properties": { + "conditions": { + "description": "Conditions are various conditions of the NetworkPolicy.", + "type": "array", + "items": { + "$ref": "#/components/schemas/com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkPolicyCondition" + } + } + } + }, "com.github.onmetal.onmetal-api.api.networking.v1alpha1.NetworkSpec": { "description": "NetworkSpec defines the desired state of Network", "type": "object", diff --git a/hack/api-reference/common-config.json b/hack/api-reference/common-config.json deleted file mode 100644 index 168262b49..000000000 --- a/hack/api-reference/common-config.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "hideMemberFields": [ - "TypeMeta" - ], - "hideTypePatterns": [ - "ParseError$", - "List$" - ], - "externalPackages": [ - { - "typeMatchPrefix": "^net/netip\\.Addr", - "docsURLTemplate": "https://pkg.go.dev/net/netip#Addr" - }, - { - "typeMatchPrefix": "^net/netip\\.Prefix", - "docsURLTemplate": "https://pkg.go.dev/net/netip#Prefix" - }, - { - "typeMatchPrefix": "^k8s\\.io/apimachinery/pkg/api/resource\\.Quantity", - "docsURLTemplate": "https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Duration" - }, - { - "typeMatchPrefix": "^k8s\\.io/apimachinery/pkg/types\\.UID", - "docsURLTemplate": "https://pkg.go.dev/k8s.io/apimachinery/pkg/types#UID" - }, - { - "typeMatchPrefix": "^k8s\\.io/(api|apimachinery/pkg/apis)/", - "docsURLTemplate": "https://v1-23.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#{{lower .TypeIdentifier}}-{{arrIndex .PackageSegments -1}}-{{arrIndex .PackageSegments -2}}" - } - ], - "typeDisplayNamePrefixOverrides": { - "k8s.io/api/": "Kubernetes ", - "k8s.io/apimachinery/pkg/apis/": "Kubernetes " - }, - "markdownDisabled": false -} diff --git a/hack/api-reference/compute-config.json b/hack/api-reference/compute-config.json deleted file mode 100644 index afbeed1fa..000000000 --- a/hack/api-reference/compute-config.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "hideMemberFields": [ - "TypeMeta" - ], - "hideTypePatterns": [ - "ParseError$", - "List$" - ], - "externalPackages": [ - { - "typeMatchPrefix": "^k8s\\.io/apimachinery/pkg/api/resource\\.Quantity", - "docsURLTemplate": "https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Duration" - }, - { - "typeMatchPrefix": "^k8s\\.io/(api|apimachinery/pkg/apis)/", - "docsURLTemplate": "https://v1-23.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#{{lower .TypeIdentifier}}-{{arrIndex .PackageSegments -1}}-{{arrIndex .PackageSegments -2}}" - }, - { - "typeMatchPrefix": "^github\\.com/onmetal/onmetal-api/api/common/v1alpha1\\.SecretKeySelector$", - "docsURLTemplate": "../common/#common.api.onmetal.de/v1alpha1.SecretKeySelector" - }, - { - "typeMatchPrefix": "^github\\.com/onmetal/onmetal-api/api/networking/v1alpha1\\.NetworkInterfaceTemplateSpec", - "docsURLTemplate": "../networking/#networking.api.onmetal.de/v1alpha1.NetworkInterfaceTemplateSpec" - }, - { - "typeMatchPrefix": "^github\\.com/onmetal/onmetal-api/api/storage/v1alpha1\\.VolumeTemplateSpec", - "docsURLTemplate": "../storage/#storage.api.onmetal.de/v1alpha1.VolumeTemplateSpec" - }, - { - "typeMatchPrefix": "^github\\.com/onmetal/onmetal-api/api/common/v1alpha1\\.IP", - "docsURLTemplate": "../common/#common.api.onmetal.de/v1alpha1.IP" - }, - { - "typeMatchPrefix": "^github\\.com/onmetal/onmetal-api/api/common/v1alpha1\\.Toleration", - "docsURLTemplate": "../common/#common.api.onmetal.de/v1alpha1.Toleration" - }, - { - "typeMatchPrefix": "^github\\.com/onmetal/onmetal-api/api/common/v1alpha1\\.Taint", - "docsURLTemplate": "../common/#common.api.onmetal.de/v1alpha1.Taint" - } - ], - "typeDisplayNamePrefixOverrides": { - "k8s.io/api/": "Kubernetes ", - "k8s.io/apimachinery/pkg/apis/": "Kubernetes " - }, - "markdownDisabled": false -} diff --git a/hack/api-reference/config.json b/hack/api-reference/config.json new file mode 100644 index 000000000..c7934f882 --- /dev/null +++ b/hack/api-reference/config.json @@ -0,0 +1,36 @@ +{ + "hideMemberFields": [ + "TypeMeta" + ], + "hideTypePatterns": [ + "ParseError$", + "List$" + ], + "externalPackages": [ + { + "typeMatchPrefix": "^net/netip", + "docsURLTemplate": "https://pkg.go.dev/net/netip#{{.TypeIdentifier}}" + }, + { + "typeMatchPrefix": "^k8s\\.io/apimachinery/pkg/api/resource", + "docsURLTemplate": "https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#{{.TypeIdentifier}}" + }, + { + "typeMatchPrefix": "^k8s\\.io/apimachinery/pkg/types", + "docsURLTemplate": "https://pkg.go.dev/k8s.io/apimachinery/pkg/types#{{.TypeIdentifier}}" + }, + { + "typeMatchPrefix": "^k8s\\.io/(api|apimachinery/pkg/apis)/", + "docsURLTemplate": "https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#{{lower .TypeIdentifier}}-{{arrIndex .PackageSegments -1}}-{{arrIndex .PackageSegments -2}}" + }, + { + "typeMatchPrefix": "^github\\.com/onmetal/onmetal-api/api/", + "docsURLTemplate": "../{{arrIndex .PackageSegments -2}}/#{{arrIndex .PackageSegments -2}}.api.onmetal.de/{{arrIndex .PackageSegments -1}}.{{.TypeIdentifier}}" + } + ], + "typeDisplayNamePrefixOverrides": { + "k8s.io/api/": "Kubernetes ", + "k8s.io/apimachinery/pkg/apis/": "Kubernetes " + }, + "markdownDisabled": false +} diff --git a/hack/api-reference/core-config.json b/hack/api-reference/core-config.json deleted file mode 100644 index 4d28b222b..000000000 --- a/hack/api-reference/core-config.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "hideMemberFields": [ - "TypeMeta" - ], - "hideTypePatterns": [ - "ParseError$", - "List$" - ], - "externalPackages": [ - { - "typeMatchPrefix": "^k8s\\.io/apimachinery/pkg/api/resource\\.Quantity", - "docsURLTemplate": "https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Duration" - }, - { - "typeMatchPrefix": "^k8s\\.io/(api|apimachinery/pkg/apis)/", - "docsURLTemplate": "https://v1-23.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#{{lower .TypeIdentifier}}-{{arrIndex .PackageSegments -1}}-{{arrIndex .PackageSegments -2}}" - } - ], - "typeDisplayNamePrefixOverrides": { - "k8s.io/api/": "Kubernetes ", - "k8s.io/apimachinery/pkg/apis/": "Kubernetes " - }, - "markdownDisabled": false -} diff --git a/hack/api-reference/ipam-config.json b/hack/api-reference/ipam-config.json deleted file mode 100644 index 7d965cedb..000000000 --- a/hack/api-reference/ipam-config.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "hideMemberFields": [ - "TypeMeta" - ], - "hideTypePatterns": [ - "ParseError$", - "List$" - ], - "externalPackages": [ - { - "typeMatchPrefix": "^k8s\\.io/apimachinery/pkg/api/resource\\.Quantity", - "docsURLTemplate": "https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Duration" - }, - { - "typeMatchPrefix": "^k8s\\.io/(api|apimachinery/pkg/apis)/", - "docsURLTemplate": "https://v1-25.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.25/#{{lower .TypeIdentifier}}-{{arrIndex .PackageSegments -1}}-{{arrIndex .PackageSegments -2}}" - }, - { - "typeMatchPrefix": "^github\\.com/onmetal/onmetal-api/api/common/v1alpha1\\.IP", - "docsURLTemplate": "../common/#common.api.onmetal.de/v1alpha1.IP" - }, - { - "typeMatchPrefix": "^github\\.com/onmetal/onmetal-api/api/common/v1alpha1\\.IPPrefix", - "docsURLTemplate": "../common/#common.api.onmetal.de/v1alpha1.IPPrefix" - }, - { - "typeMatchPrefix": "^github\\.com/onmetal/onmetal-api/api/common/v1alpha1\\.SecretKeySelector$", - "docsURLTemplate": "../common/#common.api.onmetal.de/v1alpha1.SecretKeySelector" - }, - { - "typeMatchPrefix": "^github\\.com/onmetal/onmetal-api/api/common/v1alpha1\\.ConfigMapKeySelector$", - "docsURLTemplate": "../common/#common.api.onmetal.de/v1alpha1.ConfigMapKeySelector" - } - ], - "typeDisplayNamePrefixOverrides": { - "k8s.io/api/": "Kubernetes ", - "k8s.io/apimachinery/pkg/apis/": "Kubernetes " - }, - "markdownDisabled": false -} diff --git a/hack/api-reference/networking-config.json b/hack/api-reference/networking-config.json deleted file mode 100644 index e6330e554..000000000 --- a/hack/api-reference/networking-config.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "hideMemberFields": [ - "TypeMeta" - ], - "hideTypePatterns": [ - "ParseError$", - "List$" - ], - "externalPackages": [ - { - "typeMatchPrefix": "^k8s\\.io/apimachinery/pkg/api/resource\\.Quantity", - "docsURLTemplate": "https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Duration" - }, - { - "typeMatchPrefix": "^k8s\\.io/apimachinery/pkg/types\\.UID", - "docsURLTemplate": "https://pkg.go.dev/k8s.io/apimachinery/pkg/types#UID" - }, - { - "typeMatchPrefix": "^k8s\\.io/(api|apimachinery/pkg/apis)/", - "docsURLTemplate": "https://v1-25.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.25/#{{lower .TypeIdentifier}}-{{arrIndex .PackageSegments -1}}-{{arrIndex .PackageSegments -2}}" - }, - { - "typeMatchPrefix": "^github\\.com/onmetal/onmetal-api/api/common/v1alpha1\\.IP", - "docsURLTemplate": "../common/#common.api.onmetal.de/v1alpha1.IP" - }, - { - "typeMatchPrefix": "^github\\.com/onmetal/onmetal-api/api/common/v1alpha1\\.IPPrefix", - "docsURLTemplate": "../common/#common.api.onmetal.de/v1alpha1.IPPrefix" - }, - { - "typeMatchPrefix": "^github\\.com/onmetal/onmetal-api/api/common/v1alpha1\\.LocalUIDReference", - "docsURLTemplate": "../common/#common.api.onmetal.de/v1alpha1.LocalUIDReference" - }, - { - "typeMatchPrefix": "^github\\.com/onmetal/onmetal-api/api/ipam/v1alpha1\\.PrefixSpec", - "docsURLTemplate": "../ipam/#ipam.api.onmetal.de/v1alpha1.PrefixSpec" - }, - { - "typeMatchPrefix": "^github\\.com/onmetal/onmetal-api/api/ipam/v1alpha1\\.PrefixTemplateSpec", - "docsURLTemplate": "../ipam/#ipam.api.onmetal.de/v1alpha1.PrefixTemplateSpec" - }, - { - "typeMatchPrefix": "^github\\.com/onmetal/onmetal-api/api/common/v1alpha1\\.SecretKeySelector$", - "docsURLTemplate": "../common/#common.api.onmetal.de/v1alpha1.SecretKeySelector" - }, - { - "typeMatchPrefix": "^github\\.com/onmetal/onmetal-api/api/common/v1alpha1\\.ConfigMapKeySelector$", - "docsURLTemplate": "../common/#common.api.onmetal.de/v1alpha1.ConfigMapKeySelector" - } - ], - "typeDisplayNamePrefixOverrides": { - "k8s.io/api/": "Kubernetes ", - "k8s.io/apimachinery/pkg/apis/": "Kubernetes " - }, - "markdownDisabled": false -} diff --git a/hack/api-reference/storage-config.json b/hack/api-reference/storage-config.json deleted file mode 100644 index ffc1c7e5d..000000000 --- a/hack/api-reference/storage-config.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "hideMemberFields": [ - "TypeMeta" - ], - "hideTypePatterns": [ - "ParseError$", - "List$" - ], - "externalPackages": [ - { - "typeMatchPrefix": "^k8s\\.io/apimachinery/pkg/types\\.UID", - "docsURLTemplate": "https://pkg.go.dev/k8s.io/apimachinery/pkg/types#UID" - }, - { - "typeMatchPrefix": "^k8s\\.io/apimachinery/pkg/api/resource\\.Quantity", - "docsURLTemplate": "https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Duration" - }, - { - "typeMatchPrefix": "^k8s\\.io/(api|apimachinery/pkg/apis)/", - "docsURLTemplate": "https://v1-25.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.25/#{{lower .TypeIdentifier}}-{{arrIndex .PackageSegments -1}}-{{arrIndex .PackageSegments -2}}" - }, - { - "typeMatchPrefix": "^github\\.com/onmetal/onmetal-api/api/common/v1alpha1\\.Toleration", - "docsURLTemplate": "../common/#common.api.onmetal.de/v1alpha1.Toleration" - }, - { - "typeMatchPrefix": "^github\\.com/onmetal/onmetal-api/api/common/v1alpha1\\.Taint", - "docsURLTemplate": "../common/#common.api.onmetal.de/v1alpha1.Taint" - }, - { - "typeMatchPrefix": "^github\\.com/onmetal/onmetal-api/api/common/v1alpha1\\.SecretKeySelector$", - "docsURLTemplate": "../common.md#secretkeyselector" - }, - { - "typeMatchPrefix": "^github\\.com/onmetal/onmetal-api/api/common/v1alpha1\\.LocalUIDReference", - "docsURLTemplate": "../common/#common.api.onmetal.de/v1alpha1.LocalUIDReference" - } - ], - "typeDisplayNamePrefixOverrides": { - "k8s.io/api/": "Kubernetes ", - "k8s.io/apimachinery/pkg/apis/": "Kubernetes " - }, - "markdownDisabled": false -} diff --git a/internal/apis/core/types.go b/internal/apis/core/types.go new file mode 100644 index 000000000..b7d6f43c3 --- /dev/null +++ b/internal/apis/core/types.go @@ -0,0 +1,25 @@ +// Copyright 2023 OnMetal authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package core + +import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + +// ObjectSelector specifies how to select objects of a certain kind. +type ObjectSelector struct { + // Kind is the kind of object to select. + Kind string + // LabelSelector is the label selector to select objects of the specified Kind by. + metav1.LabelSelector +} diff --git a/internal/apis/core/v1alpha1/zz_generated.conversion.go b/internal/apis/core/v1alpha1/zz_generated.conversion.go index 0a0a1560f..3afe41c91 100644 --- a/internal/apis/core/v1alpha1/zz_generated.conversion.go +++ b/internal/apis/core/v1alpha1/zz_generated.conversion.go @@ -36,6 +36,16 @@ func init() { // RegisterConversions adds conversion functions to the given scheme. // Public to allow building arbitrary schemes. func RegisterConversions(s *runtime.Scheme) error { + if err := s.AddGeneratedConversionFunc((*v1alpha1.ObjectSelector)(nil), (*core.ObjectSelector)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_ObjectSelector_To_core_ObjectSelector(a.(*v1alpha1.ObjectSelector), b.(*core.ObjectSelector), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*core.ObjectSelector)(nil), (*v1alpha1.ObjectSelector)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_core_ObjectSelector_To_v1alpha1_ObjectSelector(a.(*core.ObjectSelector), b.(*v1alpha1.ObjectSelector), scope) + }); err != nil { + return err + } if err := s.AddGeneratedConversionFunc((*v1alpha1.ResourceQuota)(nil), (*core.ResourceQuota)(nil), func(a, b interface{}, scope conversion.Scope) error { return Convert_v1alpha1_ResourceQuota_To_core_ResourceQuota(a.(*v1alpha1.ResourceQuota), b.(*core.ResourceQuota), scope) }); err != nil { @@ -99,6 +109,28 @@ func RegisterConversions(s *runtime.Scheme) error { return nil } +func autoConvert_v1alpha1_ObjectSelector_To_core_ObjectSelector(in *v1alpha1.ObjectSelector, out *core.ObjectSelector, s conversion.Scope) error { + out.Kind = in.Kind + out.LabelSelector = in.LabelSelector + return nil +} + +// Convert_v1alpha1_ObjectSelector_To_core_ObjectSelector is an autogenerated conversion function. +func Convert_v1alpha1_ObjectSelector_To_core_ObjectSelector(in *v1alpha1.ObjectSelector, out *core.ObjectSelector, s conversion.Scope) error { + return autoConvert_v1alpha1_ObjectSelector_To_core_ObjectSelector(in, out, s) +} + +func autoConvert_core_ObjectSelector_To_v1alpha1_ObjectSelector(in *core.ObjectSelector, out *v1alpha1.ObjectSelector, s conversion.Scope) error { + out.Kind = in.Kind + out.LabelSelector = in.LabelSelector + return nil +} + +// Convert_core_ObjectSelector_To_v1alpha1_ObjectSelector is an autogenerated conversion function. +func Convert_core_ObjectSelector_To_v1alpha1_ObjectSelector(in *core.ObjectSelector, out *v1alpha1.ObjectSelector, s conversion.Scope) error { + return autoConvert_core_ObjectSelector_To_v1alpha1_ObjectSelector(in, out, s) +} + func autoConvert_v1alpha1_ResourceQuota_To_core_ResourceQuota(in *v1alpha1.ResourceQuota, out *core.ResourceQuota, s conversion.Scope) error { out.ObjectMeta = in.ObjectMeta if err := Convert_v1alpha1_ResourceQuotaSpec_To_core_ResourceQuotaSpec(&in.Spec, &out.Spec, s); err != nil { diff --git a/internal/apis/core/zz_generated.deepcopy.go b/internal/apis/core/zz_generated.deepcopy.go index 762b9217f..bebb884c2 100644 --- a/internal/apis/core/zz_generated.deepcopy.go +++ b/internal/apis/core/zz_generated.deepcopy.go @@ -24,6 +24,23 @@ import ( runtime "k8s.io/apimachinery/pkg/runtime" ) +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ObjectSelector) DeepCopyInto(out *ObjectSelector) { + *out = *in + in.LabelSelector.DeepCopyInto(&out.LabelSelector) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectSelector. +func (in *ObjectSelector) DeepCopy() *ObjectSelector { + if in == nil { + return nil + } + out := new(ObjectSelector) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in ResourceList) DeepCopyInto(out *ResourceList) { { diff --git a/internal/apis/networking/networkpolicy_type.go b/internal/apis/networking/networkpolicy_type.go new file mode 100644 index 000000000..8ed6baefd --- /dev/null +++ b/internal/apis/networking/networkpolicy_type.go @@ -0,0 +1,151 @@ +// Copyright 2023 OnMetal authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package networking + +import ( + commonv1alpha1 "github.com/onmetal/onmetal-api/api/common/v1alpha1" + "github.com/onmetal/onmetal-api/internal/apis/core" + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// NetworkPolicySpec defines the desired state of NetworkPolicy. +type NetworkPolicySpec struct { + // NetworkRef is the network to regulate using this policy. + NetworkRef corev1.LocalObjectReference + // NetworkInterfaceSelector selects the network interfaces that are subject to this policy. + NetworkInterfaceSelector metav1.LabelSelector + // Ingress specifies rules for ingress traffic. + Ingress []NetworkPolicyIngressRule + // Egress specifies rules for egress traffic. + Egress []NetworkPolicyEgressRule + // PolicyTypes specifies the types of policies this network policy contains. + PolicyTypes []PolicyType +} + +// NetworkPolicyPort describes a port to allow traffic on +type NetworkPolicyPort struct { + // Protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this + // field defaults to TCP. + Protocol *corev1.Protocol + + // The port on the given protocol. If this field is not provided, this matches + // all port names and numbers. + // If present, only traffic on the specified protocol AND port will be matched. + Port int32 + + // EndPort indicates that the range of ports from Port to EndPort, inclusive, + // should be allowed by the policy. This field cannot be defined if the port field + // is not defined. The endPort must be equal or greater than port. + EndPort *int32 +} + +// IPBlock specifies an ip block with optional exceptions. +type IPBlock struct { + // CIDR is a string representing the ip block. + CIDR commonv1alpha1.IPPrefix + // Except is a slice of CIDRs that should not be included within the specified CIDR. + // Values will be rejected if they are outside CIDR. + Except []commonv1alpha1.IPPrefix +} + +// NetworkPolicyPeer describes a peer to allow traffic to / from. +type NetworkPolicyPeer struct { + // ObjectSelector selects peers with the given kind matching the label selector. + // Exclusive with other peer specifiers. + ObjectSelector *core.ObjectSelector + // IPBlock specifies the ip block from or to which network traffic may come. + IPBlock *IPBlock +} + +// NetworkPolicyIngressRule describes a rule to regulate ingress traffic with. +type NetworkPolicyIngressRule struct { + // Ports specifies the list of ports which should be made accessible for + // this rule. Each item in this list is combined using a logical OR. Empty matches all ports. + // As soon as a single item is present, only these ports are allowed. + Ports []NetworkPolicyPort + // From specifies the list of sources which should be able to send traffic to the + // selected network interfaces. Fields are combined using a logical OR. Empty matches all sources. + // As soon as a single item is present, only these peers are allowed. + From []NetworkPolicyPeer +} + +// NetworkPolicyEgressRule describes a rule to regulate egress traffic with. +type NetworkPolicyEgressRule struct { + // Ports specifies the list of destination ports that can be called with + // this rule. Each item in this list is combined using a logical OR. Empty matches all ports. + // As soon as a single item is present, only these ports are allowed. + Ports []NetworkPolicyPort + // To specifies the list of destinations which the selected network interfaces should be + // able to send traffic to. Fields are combined using a logical OR. Empty matches all destinations. + // As soon as a single item is present, only these peers are allowed. + To []NetworkPolicyPeer +} + +// PolicyType is a type of policy. +type PolicyType string + +const ( + // PolicyTypeIngress is a policy that describes ingress traffic. + PolicyTypeIngress PolicyType = "Ingress" + // PolicyTypeEgress is a policy that describes egress traffic. + PolicyTypeEgress PolicyType = "Egress" +) + +// NetworkPolicyStatus defines the observed state of NetworkPolicy. +type NetworkPolicyStatus struct { + // Conditions are various conditions of the NetworkPolicy. + Conditions []NetworkPolicyCondition +} + +// NetworkPolicyConditionType is a type a NetworkPolicyCondition can have. +type NetworkPolicyConditionType string + +// NetworkPolicyCondition is one of the conditions of a network policy. +type NetworkPolicyCondition struct { + // Type is the type of the condition. + Type NetworkPolicyConditionType + // 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 + // ObservedGeneration represents the .metadata.generation that the condition was set based upon. + ObservedGeneration int64 + // LastTransitionTime is the last time the status of a condition has transitioned from one state to another. + LastTransitionTime metav1.Time +} + +// +genclient +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// NetworkPolicy is the Schema for the networkpolicies API +type NetworkPolicy struct { + metav1.TypeMeta + metav1.ObjectMeta + + Spec NetworkPolicySpec + Status NetworkPolicyStatus +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// NetworkPolicyList contains a list of NetworkPolicy. +type NetworkPolicyList struct { + metav1.TypeMeta + metav1.ListMeta + Items []NetworkPolicy +} diff --git a/internal/apis/networking/register.go b/internal/apis/networking/register.go index a6ce2f15b..d90aa43e4 100644 --- a/internal/apis/networking/register.go +++ b/internal/apis/networking/register.go @@ -45,6 +45,8 @@ func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &Network{}, &NetworkList{}, + &NetworkPolicy{}, + &NetworkPolicyList{}, &NetworkInterface{}, &NetworkInterfaceList{}, &VirtualIP{}, diff --git a/internal/apis/networking/v1alpha1/defaults.go b/internal/apis/networking/v1alpha1/defaults.go index c80e1eb95..26e37730f 100644 --- a/internal/apis/networking/v1alpha1/defaults.go +++ b/internal/apis/networking/v1alpha1/defaults.go @@ -20,6 +20,7 @@ import ( "github.com/onmetal/onmetal-api/api/networking/v1alpha1" corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/sets" "k8s.io/utils/pointer" ) @@ -34,6 +35,17 @@ func addDefaultingFuncs(scheme *runtime.Scheme) error { return RegisterDefaults(scheme) } +func SetDefaults_NetworkPolicySpec(spec *v1alpha1.NetworkPolicySpec) { + policyTypes := sets.New[v1alpha1.PolicyType](spec.PolicyTypes...) + if len(spec.Ingress) > 0 { + policyTypes.Insert(v1alpha1.PolicyTypeIngress) + } + if len(spec.Egress) > 0 { + policyTypes.Insert(v1alpha1.PolicyTypeEgress) + } + spec.PolicyTypes = sets.List(policyTypes) +} + func SetDefaults_NetworkInterfaceSpec(spec *v1alpha1.NetworkInterfaceSpec) { setDefaults_IPFamiliesIPSources(&spec.IPFamilies, &spec.IPs) } diff --git a/internal/apis/networking/v1alpha1/zz_generated.conversion.go b/internal/apis/networking/v1alpha1/zz_generated.conversion.go index 056b82b0a..e6b972033 100644 --- a/internal/apis/networking/v1alpha1/zz_generated.conversion.go +++ b/internal/apis/networking/v1alpha1/zz_generated.conversion.go @@ -24,8 +24,10 @@ import ( unsafe "unsafe" commonv1alpha1 "github.com/onmetal/onmetal-api/api/common/v1alpha1" + corev1alpha1 "github.com/onmetal/onmetal-api/api/core/v1alpha1" ipamv1alpha1 "github.com/onmetal/onmetal-api/api/ipam/v1alpha1" v1alpha1 "github.com/onmetal/onmetal-api/api/networking/v1alpha1" + core "github.com/onmetal/onmetal-api/internal/apis/core" ipam "github.com/onmetal/onmetal-api/internal/apis/ipam" networking "github.com/onmetal/onmetal-api/internal/apis/networking" corev1 "k8s.io/api/core/v1" @@ -122,6 +124,16 @@ func RegisterConversions(s *runtime.Scheme) error { }); err != nil { return err } + if err := s.AddGeneratedConversionFunc((*v1alpha1.IPBlock)(nil), (*networking.IPBlock)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_IPBlock_To_networking_IPBlock(a.(*v1alpha1.IPBlock), b.(*networking.IPBlock), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*networking.IPBlock)(nil), (*v1alpha1.IPBlock)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_networking_IPBlock_To_v1alpha1_IPBlock(a.(*networking.IPBlock), b.(*v1alpha1.IPBlock), scope) + }); err != nil { + return err + } if err := s.AddGeneratedConversionFunc((*v1alpha1.IPSource)(nil), (*networking.IPSource)(nil), func(a, b interface{}, scope conversion.Scope) error { return Convert_v1alpha1_IPSource_To_networking_IPSource(a.(*v1alpha1.IPSource), b.(*networking.IPSource), scope) }); err != nil { @@ -392,6 +404,96 @@ func RegisterConversions(s *runtime.Scheme) error { }); err != nil { return err } + if err := s.AddGeneratedConversionFunc((*v1alpha1.NetworkPolicy)(nil), (*networking.NetworkPolicy)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_NetworkPolicy_To_networking_NetworkPolicy(a.(*v1alpha1.NetworkPolicy), b.(*networking.NetworkPolicy), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*networking.NetworkPolicy)(nil), (*v1alpha1.NetworkPolicy)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_networking_NetworkPolicy_To_v1alpha1_NetworkPolicy(a.(*networking.NetworkPolicy), b.(*v1alpha1.NetworkPolicy), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*v1alpha1.NetworkPolicyCondition)(nil), (*networking.NetworkPolicyCondition)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_NetworkPolicyCondition_To_networking_NetworkPolicyCondition(a.(*v1alpha1.NetworkPolicyCondition), b.(*networking.NetworkPolicyCondition), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*networking.NetworkPolicyCondition)(nil), (*v1alpha1.NetworkPolicyCondition)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_networking_NetworkPolicyCondition_To_v1alpha1_NetworkPolicyCondition(a.(*networking.NetworkPolicyCondition), b.(*v1alpha1.NetworkPolicyCondition), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*v1alpha1.NetworkPolicyEgressRule)(nil), (*networking.NetworkPolicyEgressRule)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_NetworkPolicyEgressRule_To_networking_NetworkPolicyEgressRule(a.(*v1alpha1.NetworkPolicyEgressRule), b.(*networking.NetworkPolicyEgressRule), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*networking.NetworkPolicyEgressRule)(nil), (*v1alpha1.NetworkPolicyEgressRule)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_networking_NetworkPolicyEgressRule_To_v1alpha1_NetworkPolicyEgressRule(a.(*networking.NetworkPolicyEgressRule), b.(*v1alpha1.NetworkPolicyEgressRule), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*v1alpha1.NetworkPolicyIngressRule)(nil), (*networking.NetworkPolicyIngressRule)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_NetworkPolicyIngressRule_To_networking_NetworkPolicyIngressRule(a.(*v1alpha1.NetworkPolicyIngressRule), b.(*networking.NetworkPolicyIngressRule), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*networking.NetworkPolicyIngressRule)(nil), (*v1alpha1.NetworkPolicyIngressRule)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_networking_NetworkPolicyIngressRule_To_v1alpha1_NetworkPolicyIngressRule(a.(*networking.NetworkPolicyIngressRule), b.(*v1alpha1.NetworkPolicyIngressRule), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*v1alpha1.NetworkPolicyList)(nil), (*networking.NetworkPolicyList)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_NetworkPolicyList_To_networking_NetworkPolicyList(a.(*v1alpha1.NetworkPolicyList), b.(*networking.NetworkPolicyList), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*networking.NetworkPolicyList)(nil), (*v1alpha1.NetworkPolicyList)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_networking_NetworkPolicyList_To_v1alpha1_NetworkPolicyList(a.(*networking.NetworkPolicyList), b.(*v1alpha1.NetworkPolicyList), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*v1alpha1.NetworkPolicyPeer)(nil), (*networking.NetworkPolicyPeer)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_NetworkPolicyPeer_To_networking_NetworkPolicyPeer(a.(*v1alpha1.NetworkPolicyPeer), b.(*networking.NetworkPolicyPeer), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*networking.NetworkPolicyPeer)(nil), (*v1alpha1.NetworkPolicyPeer)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_networking_NetworkPolicyPeer_To_v1alpha1_NetworkPolicyPeer(a.(*networking.NetworkPolicyPeer), b.(*v1alpha1.NetworkPolicyPeer), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*v1alpha1.NetworkPolicyPort)(nil), (*networking.NetworkPolicyPort)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_NetworkPolicyPort_To_networking_NetworkPolicyPort(a.(*v1alpha1.NetworkPolicyPort), b.(*networking.NetworkPolicyPort), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*networking.NetworkPolicyPort)(nil), (*v1alpha1.NetworkPolicyPort)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_networking_NetworkPolicyPort_To_v1alpha1_NetworkPolicyPort(a.(*networking.NetworkPolicyPort), b.(*v1alpha1.NetworkPolicyPort), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*v1alpha1.NetworkPolicySpec)(nil), (*networking.NetworkPolicySpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_NetworkPolicySpec_To_networking_NetworkPolicySpec(a.(*v1alpha1.NetworkPolicySpec), b.(*networking.NetworkPolicySpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*networking.NetworkPolicySpec)(nil), (*v1alpha1.NetworkPolicySpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_networking_NetworkPolicySpec_To_v1alpha1_NetworkPolicySpec(a.(*networking.NetworkPolicySpec), b.(*v1alpha1.NetworkPolicySpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*v1alpha1.NetworkPolicyStatus)(nil), (*networking.NetworkPolicyStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_NetworkPolicyStatus_To_networking_NetworkPolicyStatus(a.(*v1alpha1.NetworkPolicyStatus), b.(*networking.NetworkPolicyStatus), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*networking.NetworkPolicyStatus)(nil), (*v1alpha1.NetworkPolicyStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_networking_NetworkPolicyStatus_To_v1alpha1_NetworkPolicyStatus(a.(*networking.NetworkPolicyStatus), b.(*v1alpha1.NetworkPolicyStatus), scope) + }); err != nil { + return err + } if err := s.AddGeneratedConversionFunc((*v1alpha1.NetworkSpec)(nil), (*networking.NetworkSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { return Convert_v1alpha1_NetworkSpec_To_networking_NetworkSpec(a.(*v1alpha1.NetworkSpec), b.(*networking.NetworkSpec), scope) }); err != nil { @@ -673,6 +775,28 @@ func Convert_networking_EphemeralVirtualIPSource_To_v1alpha1_EphemeralVirtualIPS return autoConvert_networking_EphemeralVirtualIPSource_To_v1alpha1_EphemeralVirtualIPSource(in, out, s) } +func autoConvert_v1alpha1_IPBlock_To_networking_IPBlock(in *v1alpha1.IPBlock, out *networking.IPBlock, s conversion.Scope) error { + out.CIDR = in.CIDR + out.Except = *(*[]commonv1alpha1.IPPrefix)(unsafe.Pointer(&in.Except)) + return nil +} + +// Convert_v1alpha1_IPBlock_To_networking_IPBlock is an autogenerated conversion function. +func Convert_v1alpha1_IPBlock_To_networking_IPBlock(in *v1alpha1.IPBlock, out *networking.IPBlock, s conversion.Scope) error { + return autoConvert_v1alpha1_IPBlock_To_networking_IPBlock(in, out, s) +} + +func autoConvert_networking_IPBlock_To_v1alpha1_IPBlock(in *networking.IPBlock, out *v1alpha1.IPBlock, s conversion.Scope) error { + out.CIDR = in.CIDR + out.Except = *(*[]commonv1alpha1.IPPrefix)(unsafe.Pointer(&in.Except)) + return nil +} + +// Convert_networking_IPBlock_To_v1alpha1_IPBlock is an autogenerated conversion function. +func Convert_networking_IPBlock_To_v1alpha1_IPBlock(in *networking.IPBlock, out *v1alpha1.IPBlock, s conversion.Scope) error { + return autoConvert_networking_IPBlock_To_v1alpha1_IPBlock(in, out, s) +} + func autoConvert_v1alpha1_IPSource_To_networking_IPSource(in *v1alpha1.IPSource, out *networking.IPSource, s conversion.Scope) error { out.Value = (*commonv1alpha1.IP)(unsafe.Pointer(in.Value)) out.Ephemeral = (*networking.EphemeralPrefixSource)(unsafe.Pointer(in.Ephemeral)) @@ -1355,6 +1479,228 @@ func Convert_networking_NetworkPeeringStatus_To_v1alpha1_NetworkPeeringStatus(in return autoConvert_networking_NetworkPeeringStatus_To_v1alpha1_NetworkPeeringStatus(in, out, s) } +func autoConvert_v1alpha1_NetworkPolicy_To_networking_NetworkPolicy(in *v1alpha1.NetworkPolicy, out *networking.NetworkPolicy, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1alpha1_NetworkPolicySpec_To_networking_NetworkPolicySpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_v1alpha1_NetworkPolicyStatus_To_networking_NetworkPolicyStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_v1alpha1_NetworkPolicy_To_networking_NetworkPolicy is an autogenerated conversion function. +func Convert_v1alpha1_NetworkPolicy_To_networking_NetworkPolicy(in *v1alpha1.NetworkPolicy, out *networking.NetworkPolicy, s conversion.Scope) error { + return autoConvert_v1alpha1_NetworkPolicy_To_networking_NetworkPolicy(in, out, s) +} + +func autoConvert_networking_NetworkPolicy_To_v1alpha1_NetworkPolicy(in *networking.NetworkPolicy, out *v1alpha1.NetworkPolicy, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_networking_NetworkPolicySpec_To_v1alpha1_NetworkPolicySpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_networking_NetworkPolicyStatus_To_v1alpha1_NetworkPolicyStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_networking_NetworkPolicy_To_v1alpha1_NetworkPolicy is an autogenerated conversion function. +func Convert_networking_NetworkPolicy_To_v1alpha1_NetworkPolicy(in *networking.NetworkPolicy, out *v1alpha1.NetworkPolicy, s conversion.Scope) error { + return autoConvert_networking_NetworkPolicy_To_v1alpha1_NetworkPolicy(in, out, s) +} + +func autoConvert_v1alpha1_NetworkPolicyCondition_To_networking_NetworkPolicyCondition(in *v1alpha1.NetworkPolicyCondition, out *networking.NetworkPolicyCondition, s conversion.Scope) error { + out.Type = networking.NetworkPolicyConditionType(in.Type) + out.Status = corev1.ConditionStatus(in.Status) + out.Reason = in.Reason + out.Message = in.Message + out.ObservedGeneration = in.ObservedGeneration + out.LastTransitionTime = in.LastTransitionTime + return nil +} + +// Convert_v1alpha1_NetworkPolicyCondition_To_networking_NetworkPolicyCondition is an autogenerated conversion function. +func Convert_v1alpha1_NetworkPolicyCondition_To_networking_NetworkPolicyCondition(in *v1alpha1.NetworkPolicyCondition, out *networking.NetworkPolicyCondition, s conversion.Scope) error { + return autoConvert_v1alpha1_NetworkPolicyCondition_To_networking_NetworkPolicyCondition(in, out, s) +} + +func autoConvert_networking_NetworkPolicyCondition_To_v1alpha1_NetworkPolicyCondition(in *networking.NetworkPolicyCondition, out *v1alpha1.NetworkPolicyCondition, s conversion.Scope) error { + out.Type = v1alpha1.NetworkPolicyConditionType(in.Type) + out.Status = corev1.ConditionStatus(in.Status) + out.Reason = in.Reason + out.Message = in.Message + out.ObservedGeneration = in.ObservedGeneration + out.LastTransitionTime = in.LastTransitionTime + return nil +} + +// Convert_networking_NetworkPolicyCondition_To_v1alpha1_NetworkPolicyCondition is an autogenerated conversion function. +func Convert_networking_NetworkPolicyCondition_To_v1alpha1_NetworkPolicyCondition(in *networking.NetworkPolicyCondition, out *v1alpha1.NetworkPolicyCondition, s conversion.Scope) error { + return autoConvert_networking_NetworkPolicyCondition_To_v1alpha1_NetworkPolicyCondition(in, out, s) +} + +func autoConvert_v1alpha1_NetworkPolicyEgressRule_To_networking_NetworkPolicyEgressRule(in *v1alpha1.NetworkPolicyEgressRule, out *networking.NetworkPolicyEgressRule, s conversion.Scope) error { + out.Ports = *(*[]networking.NetworkPolicyPort)(unsafe.Pointer(&in.Ports)) + out.To = *(*[]networking.NetworkPolicyPeer)(unsafe.Pointer(&in.To)) + return nil +} + +// Convert_v1alpha1_NetworkPolicyEgressRule_To_networking_NetworkPolicyEgressRule is an autogenerated conversion function. +func Convert_v1alpha1_NetworkPolicyEgressRule_To_networking_NetworkPolicyEgressRule(in *v1alpha1.NetworkPolicyEgressRule, out *networking.NetworkPolicyEgressRule, s conversion.Scope) error { + return autoConvert_v1alpha1_NetworkPolicyEgressRule_To_networking_NetworkPolicyEgressRule(in, out, s) +} + +func autoConvert_networking_NetworkPolicyEgressRule_To_v1alpha1_NetworkPolicyEgressRule(in *networking.NetworkPolicyEgressRule, out *v1alpha1.NetworkPolicyEgressRule, s conversion.Scope) error { + out.Ports = *(*[]v1alpha1.NetworkPolicyPort)(unsafe.Pointer(&in.Ports)) + out.To = *(*[]v1alpha1.NetworkPolicyPeer)(unsafe.Pointer(&in.To)) + return nil +} + +// Convert_networking_NetworkPolicyEgressRule_To_v1alpha1_NetworkPolicyEgressRule is an autogenerated conversion function. +func Convert_networking_NetworkPolicyEgressRule_To_v1alpha1_NetworkPolicyEgressRule(in *networking.NetworkPolicyEgressRule, out *v1alpha1.NetworkPolicyEgressRule, s conversion.Scope) error { + return autoConvert_networking_NetworkPolicyEgressRule_To_v1alpha1_NetworkPolicyEgressRule(in, out, s) +} + +func autoConvert_v1alpha1_NetworkPolicyIngressRule_To_networking_NetworkPolicyIngressRule(in *v1alpha1.NetworkPolicyIngressRule, out *networking.NetworkPolicyIngressRule, s conversion.Scope) error { + out.Ports = *(*[]networking.NetworkPolicyPort)(unsafe.Pointer(&in.Ports)) + out.From = *(*[]networking.NetworkPolicyPeer)(unsafe.Pointer(&in.From)) + return nil +} + +// Convert_v1alpha1_NetworkPolicyIngressRule_To_networking_NetworkPolicyIngressRule is an autogenerated conversion function. +func Convert_v1alpha1_NetworkPolicyIngressRule_To_networking_NetworkPolicyIngressRule(in *v1alpha1.NetworkPolicyIngressRule, out *networking.NetworkPolicyIngressRule, s conversion.Scope) error { + return autoConvert_v1alpha1_NetworkPolicyIngressRule_To_networking_NetworkPolicyIngressRule(in, out, s) +} + +func autoConvert_networking_NetworkPolicyIngressRule_To_v1alpha1_NetworkPolicyIngressRule(in *networking.NetworkPolicyIngressRule, out *v1alpha1.NetworkPolicyIngressRule, s conversion.Scope) error { + out.Ports = *(*[]v1alpha1.NetworkPolicyPort)(unsafe.Pointer(&in.Ports)) + out.From = *(*[]v1alpha1.NetworkPolicyPeer)(unsafe.Pointer(&in.From)) + return nil +} + +// Convert_networking_NetworkPolicyIngressRule_To_v1alpha1_NetworkPolicyIngressRule is an autogenerated conversion function. +func Convert_networking_NetworkPolicyIngressRule_To_v1alpha1_NetworkPolicyIngressRule(in *networking.NetworkPolicyIngressRule, out *v1alpha1.NetworkPolicyIngressRule, s conversion.Scope) error { + return autoConvert_networking_NetworkPolicyIngressRule_To_v1alpha1_NetworkPolicyIngressRule(in, out, s) +} + +func autoConvert_v1alpha1_NetworkPolicyList_To_networking_NetworkPolicyList(in *v1alpha1.NetworkPolicyList, out *networking.NetworkPolicyList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]networking.NetworkPolicy)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_v1alpha1_NetworkPolicyList_To_networking_NetworkPolicyList is an autogenerated conversion function. +func Convert_v1alpha1_NetworkPolicyList_To_networking_NetworkPolicyList(in *v1alpha1.NetworkPolicyList, out *networking.NetworkPolicyList, s conversion.Scope) error { + return autoConvert_v1alpha1_NetworkPolicyList_To_networking_NetworkPolicyList(in, out, s) +} + +func autoConvert_networking_NetworkPolicyList_To_v1alpha1_NetworkPolicyList(in *networking.NetworkPolicyList, out *v1alpha1.NetworkPolicyList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]v1alpha1.NetworkPolicy)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_networking_NetworkPolicyList_To_v1alpha1_NetworkPolicyList is an autogenerated conversion function. +func Convert_networking_NetworkPolicyList_To_v1alpha1_NetworkPolicyList(in *networking.NetworkPolicyList, out *v1alpha1.NetworkPolicyList, s conversion.Scope) error { + return autoConvert_networking_NetworkPolicyList_To_v1alpha1_NetworkPolicyList(in, out, s) +} + +func autoConvert_v1alpha1_NetworkPolicyPeer_To_networking_NetworkPolicyPeer(in *v1alpha1.NetworkPolicyPeer, out *networking.NetworkPolicyPeer, s conversion.Scope) error { + out.ObjectSelector = (*core.ObjectSelector)(unsafe.Pointer(in.ObjectSelector)) + out.IPBlock = (*networking.IPBlock)(unsafe.Pointer(in.IPBlock)) + return nil +} + +// Convert_v1alpha1_NetworkPolicyPeer_To_networking_NetworkPolicyPeer is an autogenerated conversion function. +func Convert_v1alpha1_NetworkPolicyPeer_To_networking_NetworkPolicyPeer(in *v1alpha1.NetworkPolicyPeer, out *networking.NetworkPolicyPeer, s conversion.Scope) error { + return autoConvert_v1alpha1_NetworkPolicyPeer_To_networking_NetworkPolicyPeer(in, out, s) +} + +func autoConvert_networking_NetworkPolicyPeer_To_v1alpha1_NetworkPolicyPeer(in *networking.NetworkPolicyPeer, out *v1alpha1.NetworkPolicyPeer, s conversion.Scope) error { + out.ObjectSelector = (*corev1alpha1.ObjectSelector)(unsafe.Pointer(in.ObjectSelector)) + out.IPBlock = (*v1alpha1.IPBlock)(unsafe.Pointer(in.IPBlock)) + return nil +} + +// Convert_networking_NetworkPolicyPeer_To_v1alpha1_NetworkPolicyPeer is an autogenerated conversion function. +func Convert_networking_NetworkPolicyPeer_To_v1alpha1_NetworkPolicyPeer(in *networking.NetworkPolicyPeer, out *v1alpha1.NetworkPolicyPeer, s conversion.Scope) error { + return autoConvert_networking_NetworkPolicyPeer_To_v1alpha1_NetworkPolicyPeer(in, out, s) +} + +func autoConvert_v1alpha1_NetworkPolicyPort_To_networking_NetworkPolicyPort(in *v1alpha1.NetworkPolicyPort, out *networking.NetworkPolicyPort, s conversion.Scope) error { + out.Protocol = (*corev1.Protocol)(unsafe.Pointer(in.Protocol)) + out.Port = in.Port + out.EndPort = (*int32)(unsafe.Pointer(in.EndPort)) + return nil +} + +// Convert_v1alpha1_NetworkPolicyPort_To_networking_NetworkPolicyPort is an autogenerated conversion function. +func Convert_v1alpha1_NetworkPolicyPort_To_networking_NetworkPolicyPort(in *v1alpha1.NetworkPolicyPort, out *networking.NetworkPolicyPort, s conversion.Scope) error { + return autoConvert_v1alpha1_NetworkPolicyPort_To_networking_NetworkPolicyPort(in, out, s) +} + +func autoConvert_networking_NetworkPolicyPort_To_v1alpha1_NetworkPolicyPort(in *networking.NetworkPolicyPort, out *v1alpha1.NetworkPolicyPort, s conversion.Scope) error { + out.Protocol = (*corev1.Protocol)(unsafe.Pointer(in.Protocol)) + out.Port = in.Port + out.EndPort = (*int32)(unsafe.Pointer(in.EndPort)) + return nil +} + +// Convert_networking_NetworkPolicyPort_To_v1alpha1_NetworkPolicyPort is an autogenerated conversion function. +func Convert_networking_NetworkPolicyPort_To_v1alpha1_NetworkPolicyPort(in *networking.NetworkPolicyPort, out *v1alpha1.NetworkPolicyPort, s conversion.Scope) error { + return autoConvert_networking_NetworkPolicyPort_To_v1alpha1_NetworkPolicyPort(in, out, s) +} + +func autoConvert_v1alpha1_NetworkPolicySpec_To_networking_NetworkPolicySpec(in *v1alpha1.NetworkPolicySpec, out *networking.NetworkPolicySpec, s conversion.Scope) error { + out.NetworkRef = in.NetworkRef + out.NetworkInterfaceSelector = in.NetworkInterfaceSelector + out.Ingress = *(*[]networking.NetworkPolicyIngressRule)(unsafe.Pointer(&in.Ingress)) + out.Egress = *(*[]networking.NetworkPolicyEgressRule)(unsafe.Pointer(&in.Egress)) + out.PolicyTypes = *(*[]networking.PolicyType)(unsafe.Pointer(&in.PolicyTypes)) + return nil +} + +// Convert_v1alpha1_NetworkPolicySpec_To_networking_NetworkPolicySpec is an autogenerated conversion function. +func Convert_v1alpha1_NetworkPolicySpec_To_networking_NetworkPolicySpec(in *v1alpha1.NetworkPolicySpec, out *networking.NetworkPolicySpec, s conversion.Scope) error { + return autoConvert_v1alpha1_NetworkPolicySpec_To_networking_NetworkPolicySpec(in, out, s) +} + +func autoConvert_networking_NetworkPolicySpec_To_v1alpha1_NetworkPolicySpec(in *networking.NetworkPolicySpec, out *v1alpha1.NetworkPolicySpec, s conversion.Scope) error { + out.NetworkRef = in.NetworkRef + out.NetworkInterfaceSelector = in.NetworkInterfaceSelector + out.Ingress = *(*[]v1alpha1.NetworkPolicyIngressRule)(unsafe.Pointer(&in.Ingress)) + out.Egress = *(*[]v1alpha1.NetworkPolicyEgressRule)(unsafe.Pointer(&in.Egress)) + out.PolicyTypes = *(*[]v1alpha1.PolicyType)(unsafe.Pointer(&in.PolicyTypes)) + return nil +} + +// Convert_networking_NetworkPolicySpec_To_v1alpha1_NetworkPolicySpec is an autogenerated conversion function. +func Convert_networking_NetworkPolicySpec_To_v1alpha1_NetworkPolicySpec(in *networking.NetworkPolicySpec, out *v1alpha1.NetworkPolicySpec, s conversion.Scope) error { + return autoConvert_networking_NetworkPolicySpec_To_v1alpha1_NetworkPolicySpec(in, out, s) +} + +func autoConvert_v1alpha1_NetworkPolicyStatus_To_networking_NetworkPolicyStatus(in *v1alpha1.NetworkPolicyStatus, out *networking.NetworkPolicyStatus, s conversion.Scope) error { + out.Conditions = *(*[]networking.NetworkPolicyCondition)(unsafe.Pointer(&in.Conditions)) + return nil +} + +// Convert_v1alpha1_NetworkPolicyStatus_To_networking_NetworkPolicyStatus is an autogenerated conversion function. +func Convert_v1alpha1_NetworkPolicyStatus_To_networking_NetworkPolicyStatus(in *v1alpha1.NetworkPolicyStatus, out *networking.NetworkPolicyStatus, s conversion.Scope) error { + return autoConvert_v1alpha1_NetworkPolicyStatus_To_networking_NetworkPolicyStatus(in, out, s) +} + +func autoConvert_networking_NetworkPolicyStatus_To_v1alpha1_NetworkPolicyStatus(in *networking.NetworkPolicyStatus, out *v1alpha1.NetworkPolicyStatus, s conversion.Scope) error { + out.Conditions = *(*[]v1alpha1.NetworkPolicyCondition)(unsafe.Pointer(&in.Conditions)) + return nil +} + +// Convert_networking_NetworkPolicyStatus_To_v1alpha1_NetworkPolicyStatus is an autogenerated conversion function. +func Convert_networking_NetworkPolicyStatus_To_v1alpha1_NetworkPolicyStatus(in *networking.NetworkPolicyStatus, out *v1alpha1.NetworkPolicyStatus, s conversion.Scope) error { + return autoConvert_networking_NetworkPolicyStatus_To_v1alpha1_NetworkPolicyStatus(in, out, s) +} + func autoConvert_v1alpha1_NetworkSpec_To_networking_NetworkSpec(in *v1alpha1.NetworkSpec, out *networking.NetworkSpec, s conversion.Scope) error { out.Handle = in.Handle out.Peerings = *(*[]networking.NetworkPeering)(unsafe.Pointer(&in.Peerings)) diff --git a/internal/apis/networking/v1alpha1/zz_generated.defaults.go b/internal/apis/networking/v1alpha1/zz_generated.defaults.go index 23950b514..e890a3a93 100644 --- a/internal/apis/networking/v1alpha1/zz_generated.defaults.go +++ b/internal/apis/networking/v1alpha1/zz_generated.defaults.go @@ -38,6 +38,8 @@ func RegisterDefaults(scheme *runtime.Scheme) error { scheme.AddTypeDefaultingFunc(&v1alpha1.NATGatewayList{}, func(obj interface{}) { SetObjectDefaults_NATGatewayList(obj.(*v1alpha1.NATGatewayList)) }) scheme.AddTypeDefaultingFunc(&v1alpha1.NetworkInterface{}, func(obj interface{}) { SetObjectDefaults_NetworkInterface(obj.(*v1alpha1.NetworkInterface)) }) scheme.AddTypeDefaultingFunc(&v1alpha1.NetworkInterfaceList{}, func(obj interface{}) { SetObjectDefaults_NetworkInterfaceList(obj.(*v1alpha1.NetworkInterfaceList)) }) + scheme.AddTypeDefaultingFunc(&v1alpha1.NetworkPolicy{}, func(obj interface{}) { SetObjectDefaults_NetworkPolicy(obj.(*v1alpha1.NetworkPolicy)) }) + scheme.AddTypeDefaultingFunc(&v1alpha1.NetworkPolicyList{}, func(obj interface{}) { SetObjectDefaults_NetworkPolicyList(obj.(*v1alpha1.NetworkPolicyList)) }) return nil } @@ -105,3 +107,14 @@ func SetObjectDefaults_NetworkInterfaceList(in *v1alpha1.NetworkInterfaceList) { SetObjectDefaults_NetworkInterface(a) } } + +func SetObjectDefaults_NetworkPolicy(in *v1alpha1.NetworkPolicy) { + SetDefaults_NetworkPolicySpec(&in.Spec) +} + +func SetObjectDefaults_NetworkPolicyList(in *v1alpha1.NetworkPolicyList) { + for i := range in.Items { + a := &in.Items[i] + SetObjectDefaults_NetworkPolicy(a) + } +} diff --git a/internal/apis/networking/validation/networkpolicy.go b/internal/apis/networking/validation/networkpolicy.go new file mode 100644 index 000000000..97ea35e53 --- /dev/null +++ b/internal/apis/networking/validation/networkpolicy.go @@ -0,0 +1,262 @@ +// Copyright 2023 OnMetal authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package validation + +import ( + "fmt" + + onmetalapivalidation "github.com/onmetal/onmetal-api/internal/api/validation" + "github.com/onmetal/onmetal-api/internal/apis/core" + "github.com/onmetal/onmetal-api/internal/apis/networking" + "go4.org/netipx" + corev1 "k8s.io/api/core/v1" + apivalidation "k8s.io/apimachinery/pkg/api/validation" + metav1validation "k8s.io/apimachinery/pkg/apis/meta/v1/validation" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/validation" + "k8s.io/apimachinery/pkg/util/validation/field" +) + +func ValidateNetworkPolicy(networkPolicy *networking.NetworkPolicy) field.ErrorList { + var allErrs field.ErrorList + + allErrs = append(allErrs, apivalidation.ValidateObjectMetaAccessor(networkPolicy, true, apivalidation.NameIsDNSLabel, field.NewPath("metadata"))...) + allErrs = append(allErrs, validateNetworkPolicySpec(&networkPolicy.Spec, field.NewPath("spec"))...) + + return allErrs +} + +func validateNetworkPolicySpec(spec *networking.NetworkPolicySpec, fldPath *field.Path) field.ErrorList { + var allErrs field.ErrorList + + if spec.NetworkRef == (corev1.LocalObjectReference{}) { + allErrs = append(allErrs, field.Required(fldPath.Child("networkRef"), "must specify a network ref")) + } else { + for _, msg := range apivalidation.NameIsDNSLabel(spec.NetworkRef.Name, false) { + allErrs = append(allErrs, field.Invalid(fldPath.Child("networkRef").Child("name"), spec.NetworkRef.Name, msg)) + } + } + + allErrs = append(allErrs, metav1validation.ValidateLabelSelector(&spec.NetworkInterfaceSelector, metav1validation.LabelSelectorValidationOptions{}, fldPath.Child("networkInterfaceSelector"))...) + + for i := range spec.Ingress { + ingressRule := &spec.Ingress[i] + fldPath := fldPath.Child("ingress").Index(i) + allErrs = append(allErrs, validateNetworkPolicyIngressRule(ingressRule, fldPath)...) + } + + for i := range spec.Egress { + egressRule := &spec.Egress[i] + fldPath := fldPath.Child("egress").Index(i) + allErrs = append(allErrs, validateNetworkPolicyEgressRule(egressRule, fldPath)...) + } + + if len(spec.PolicyTypes) == 0 { + allErrs = append(allErrs, field.Required(fldPath.Child("policyTypes"), "must specify policyTypes")) + } else { + allErrs = append(allErrs, validatePolicyTypes(spec.PolicyTypes, fldPath.Child("policyTypes"))...) + } + + return allErrs +} + +var supportedIngressObjectSelectorKinds = sets.New[string]( + "NetworkInterface", + "LoadBalancer", + "VirtualIP", + "AliasPrefix", +) + +func validateNetworkPolicyIngressRule(rule *networking.NetworkPolicyIngressRule, fldPath *field.Path) field.ErrorList { + var allErrs field.ErrorList + + for i := range rule.From { + from := &rule.From[i] + fldPath := fldPath.Child("from").Index(i) + allErrs = append(allErrs, validateNetworkPolicyPeer(from, supportedIngressObjectSelectorKinds, fldPath)...) + } + + for i := range rule.Ports { + port := &rule.Ports[i] + fldPath := fldPath.Child("ports").Index(i) + allErrs = append(allErrs, validateNetworkPolicyPort(port, fldPath)...) + } + + return allErrs +} + +var supportedEgressObjectSelectorKinds = sets.New[string]( + "NetworkInterface", + "LoadBalancer", + "VirtualIP", + "AliasPrefix", +) + +func validateNetworkPolicyEgressRule(rule *networking.NetworkPolicyEgressRule, fldPath *field.Path) field.ErrorList { + var allErrs field.ErrorList + + for i := range rule.To { + to := &rule.To[i] + fldPath := fldPath.Child("to").Index(i) + allErrs = append(allErrs, validateNetworkPolicyPeer(to, supportedEgressObjectSelectorKinds, fldPath)...) + } + + for i := range rule.Ports { + port := &rule.Ports[i] + fldPath := fldPath.Child("ports").Index(i) + allErrs = append(allErrs, validateNetworkPolicyPort(port, fldPath)...) + } + + return allErrs +} + +func validateNetworkPolicyPort(port *networking.NetworkPolicyPort, fldPath *field.Path) field.ErrorList { + var allErrs field.ErrorList + + if port.Port != 0 { + if issues := validation.IsValidPortNum(int(port.Port)); len(issues) > 0 { + for _, issue := range issues { + allErrs = append(allErrs, field.Invalid(fldPath.Child("port"), port.Port, issue)) + } + } + } + + if endPort := port.EndPort; endPort != nil { + if port.Port == 0 { + allErrs = append(allErrs, field.Forbidden(fldPath.Child("endPort"), "must not specify endPort without port")) + } else { + if *endPort < port.Port { + allErrs = append(allErrs, field.Forbidden(fldPath.Child("endPort"), fmt.Sprintf("endPort %d must not be smaller than port %d", *endPort, port.Port))) + } + } + } + + if protocol := port.Protocol; protocol != nil { + allErrs = append(allErrs, onmetalapivalidation.ValidateProtocol(*protocol, fldPath.Child("protocol"))...) + } + + return allErrs +} + +func validateNetworkPolicyPeer(peer *networking.NetworkPolicyPeer, supportedObjectSelectorKinds sets.Set[string], fldPath *field.Path) field.ErrorList { + var allErrs field.ErrorList + + var numPeers int + + if peer.ObjectSelector != nil { + if numPeers > 0 { + allErrs = append(allErrs, field.Forbidden(fldPath.Child("ipBlock"), "cannot specify multiple peers")) + } else { + numPeers++ + allErrs = append(allErrs, validateNetworkPolicyPeerObjectSelector(peer.ObjectSelector, supportedObjectSelectorKinds, fldPath.Child("objectSelector"))...) + } + } + + if peer.IPBlock != nil { + if numPeers > 0 { + allErrs = append(allErrs, field.Forbidden(fldPath.Child("ipBlock"), "cannot specify multiple peers")) + } else { + numPeers++ //nolint:ineffassign + allErrs = append(allErrs, validateIPBlock(peer.IPBlock, fldPath.Child("ipBlock"))...) + } + } + + return allErrs +} + +func validateNetworkPolicyPeerObjectSelector(sel *core.ObjectSelector, allowedKinds sets.Set[string], fldPath *field.Path) field.ErrorList { + var allErrs field.ErrorList + + allErrs = append(allErrs, onmetalapivalidation.ValidateEnum(allowedKinds, sel.Kind, fldPath.Child("kind"), "must specify kind")...) + allErrs = append(allErrs, metav1validation.ValidateLabelSelector(&sel.LabelSelector, metav1validation.LabelSelectorValidationOptions{}, fldPath)...) + + return allErrs +} + +func validateIPBlock(ipBlock *networking.IPBlock, fldPath *field.Path) field.ErrorList { + var allErrs field.ErrorList + + if !ipBlock.CIDR.IsValid() { + allErrs = append(allErrs, field.Invalid(fldPath.Child("cidr"), ipBlock.CIDR, "must specify valid cidr")) + } else { + var bldr netipx.IPSetBuilder + bldr.AddPrefix(ipBlock.CIDR.Prefix) + ipSet, _ := bldr.IPSet() + + for i, except := range ipBlock.Except { + fldPath := fldPath.Child("except").Index(i) + if !except.IsValid() { + allErrs = append(allErrs, field.Invalid(fldPath, except, "must specify valid except value")) + } else { + if !ipSet.ContainsPrefix(except.Prefix) { + allErrs = append(allErrs, + field.Forbidden(fldPath, fmt.Sprintf("cidr %s does not contain except %s", + ipBlock.CIDR, except)), + ) + } + } + } + } + + return allErrs +} + +var supportedPolicyTypes = sets.New( + networking.PolicyTypeIngress, + networking.PolicyTypeEgress, +) + +func validatePolicyType(policyType networking.PolicyType, fldPath *field.Path) field.ErrorList { + return onmetalapivalidation.ValidateEnum(supportedPolicyTypes, policyType, fldPath, "must specify type") +} + +func validatePolicyTypes(policyTypes []networking.PolicyType, fldPath *field.Path) field.ErrorList { + var allErrs field.ErrorList + + seen := sets.New[networking.PolicyType]() + + for i := range policyTypes { + policyType := policyTypes[i] + fldPath := fldPath.Index(i) + allErrs = append(allErrs, validatePolicyType(policyType, fldPath)...) + if seen.Has(policyType) { + allErrs = append(allErrs, field.Duplicate(fldPath, policyType)) + } else { + seen.Insert(policyType) + } + } + + return allErrs +} + +// ValidateNetworkPolicyUpdate validates a NetworkPolicy object before an update. +func ValidateNetworkPolicyUpdate(newNetworkPolicy, oldNetworkPolicy *networking.NetworkPolicy) field.ErrorList { + var allErrs field.ErrorList + + allErrs = append(allErrs, apivalidation.ValidateObjectMetaAccessorUpdate(newNetworkPolicy, oldNetworkPolicy, field.NewPath("metadata"))...) + allErrs = append(allErrs, validateNetworkPolicySpecUpdate(&newNetworkPolicy.Spec, &oldNetworkPolicy.Spec, field.NewPath("spec"))...) + allErrs = append(allErrs, ValidateNetworkPolicy(newNetworkPolicy)...) + + return allErrs +} + +// validateNetworkPolicySpecUpdate validates the spec of a networkPolicy object before an update. +func validateNetworkPolicySpecUpdate(newSpec, oldSpec *networking.NetworkPolicySpec, fldPath *field.Path) field.ErrorList { + var allErrs field.ErrorList + + allErrs = append(allErrs, onmetalapivalidation.ValidateImmutableField(newSpec.NetworkRef, oldSpec.NetworkRef, fldPath.Child("networkRef"))...) + + return allErrs +} diff --git a/internal/apis/networking/validation/networkpolicy_test.go b/internal/apis/networking/validation/networkpolicy_test.go new file mode 100644 index 000000000..505fa70b5 --- /dev/null +++ b/internal/apis/networking/validation/networkpolicy_test.go @@ -0,0 +1,156 @@ +/* + * Copyright (c) 2022 by the OnMetal authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package validation + +import ( + commonv1alpha1 "github.com/onmetal/onmetal-api/api/common/v1alpha1" + "github.com/onmetal/onmetal-api/internal/apis/core" + "github.com/onmetal/onmetal-api/internal/apis/networking" + . "github.com/onmetal/onmetal-api/internal/testutils/validation" + . "github.com/onsi/ginkgo/v2" + . "github.com/onsi/gomega" + "github.com/onsi/gomega/types" + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +var _ = Describe("NetworkPolicy", func() { + DescribeTable("ValidateNetworkPolicy", + func(networkPolicy *networking.NetworkPolicy, match types.GomegaMatcher) { + errList := ValidateNetworkPolicy(networkPolicy) + Expect(errList).To(match) + }, + Entry("missing name", + &networking.NetworkPolicy{}, + ContainElement(RequiredField("metadata.name")), + ), + Entry("missing namespace", + &networking.NetworkPolicy{ObjectMeta: metav1.ObjectMeta{Name: "foo"}}, + ContainElement(RequiredField("metadata.namespace")), + ), + Entry("bad name", + &networking.NetworkPolicy{ObjectMeta: metav1.ObjectMeta{Name: "foo*"}}, + ContainElement(InvalidField("metadata.name")), + ), + Entry("no network ref", + &networking.NetworkPolicy{}, + ContainElement(RequiredField("spec.networkRef")), + ), + Entry("invalid network ref name", + &networking.NetworkPolicy{ + Spec: networking.NetworkPolicySpec{ + NetworkRef: corev1.LocalObjectReference{Name: "foo*"}, + }, + }, + ContainElement(InvalidField("spec.networkRef.name")), + ), + Entry("invalid ingress port", + &networking.NetworkPolicy{ + Spec: networking.NetworkPolicySpec{ + Ingress: []networking.NetworkPolicyIngressRule{ + { + Ports: []networking.NetworkPolicyPort{ + {Port: -10}, + }, + }, + }, + }, + }, + ContainElement(InvalidField("spec.ingress[0].ports[0].port")), + ), + Entry("not supported ingress peer object selector", + &networking.NetworkPolicy{ + Spec: networking.NetworkPolicySpec{ + Ingress: []networking.NetworkPolicyIngressRule{ + { + From: []networking.NetworkPolicyPeer{ + { + ObjectSelector: &core.ObjectSelector{ + Kind: "Invalid", + }, + }, + }, + }, + }, + }, + }, + ContainElement(NotSupportedField("spec.ingress[0].from[0].objectSelector.kind")), + ), + Entry("multiple network policy ingress peer sources in a peer", + &networking.NetworkPolicy{ + Spec: networking.NetworkPolicySpec{ + Ingress: []networking.NetworkPolicyIngressRule{ + { + From: []networking.NetworkPolicyPeer{ + { + ObjectSelector: &core.ObjectSelector{ + Kind: "LoadBalancer", + }, + IPBlock: &networking.IPBlock{ + CIDR: commonv1alpha1.MustParseIPPrefix("10.0.0.0/16"), + }, + }, + }, + }, + }, + }, + }, + ContainElement(ForbiddenField("spec.ingress[0].from[0].ipBlock")), + ), + Entry("ip block except not contained in cidr", + &networking.NetworkPolicy{ + Spec: networking.NetworkPolicySpec{ + Ingress: []networking.NetworkPolicyIngressRule{ + { + From: []networking.NetworkPolicyPeer{ + { + IPBlock: &networking.IPBlock{ + CIDR: commonv1alpha1.MustParseIPPrefix("10.0.0.0/16"), + Except: []commonv1alpha1.IPPrefix{ + commonv1alpha1.MustParseIPPrefix("10.1.0.0/16"), + }, + }, + }, + }, + }, + }, + }, + }, + ContainElement(ForbiddenField("spec.ingress[0].from[0].ipBlock.except[0]")), + ), + ) + + DescribeTable("ValidateNetworkPolicyUpdate", + func(newNetworkPolicy, oldNetworkPolicy *networking.NetworkPolicy, match types.GomegaMatcher) { + errList := ValidateNetworkPolicyUpdate(newNetworkPolicy, oldNetworkPolicy) + Expect(errList).To(match) + }, + Entry("immutable networkRef", + &networking.NetworkPolicy{ + Spec: networking.NetworkPolicySpec{ + NetworkRef: corev1.LocalObjectReference{Name: "foo"}, + }, + }, + &networking.NetworkPolicy{ + Spec: networking.NetworkPolicySpec{ + NetworkRef: corev1.LocalObjectReference{Name: "bar"}, + }, + }, + ContainElement(ForbiddenField("spec.networkRef")), + ), + ) +}) diff --git a/internal/apis/networking/zz_generated.deepcopy.go b/internal/apis/networking/zz_generated.deepcopy.go index f48404dce..a79ac3626 100644 --- a/internal/apis/networking/zz_generated.deepcopy.go +++ b/internal/apis/networking/zz_generated.deepcopy.go @@ -22,6 +22,7 @@ package networking import ( v1alpha1 "github.com/onmetal/onmetal-api/api/common/v1alpha1" + core "github.com/onmetal/onmetal-api/internal/apis/core" ipam "github.com/onmetal/onmetal-api/internal/apis/ipam" corev1 "k8s.io/api/core/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -239,6 +240,30 @@ func (in *EphemeralVirtualIPSource) DeepCopy() *EphemeralVirtualIPSource { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IPBlock) DeepCopyInto(out *IPBlock) { + *out = *in + in.CIDR.DeepCopyInto(&out.CIDR) + if in.Except != nil { + in, out := &in.Except, &out.Except + *out = make([]v1alpha1.IPPrefix, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPBlock. +func (in *IPBlock) DeepCopy() *IPBlock { + if in == nil { + return nil + } + out := new(IPBlock) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *IPSource) DeepCopyInto(out *IPSource) { *out = *in @@ -1002,6 +1027,256 @@ func (in *NetworkPeeringStatus) DeepCopy() *NetworkPeeringStatus { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NetworkPolicy) DeepCopyInto(out *NetworkPolicy) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicy. +func (in *NetworkPolicy) DeepCopy() *NetworkPolicy { + if in == nil { + return nil + } + out := new(NetworkPolicy) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *NetworkPolicy) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NetworkPolicyCondition) DeepCopyInto(out *NetworkPolicyCondition) { + *out = *in + in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicyCondition. +func (in *NetworkPolicyCondition) DeepCopy() *NetworkPolicyCondition { + if in == nil { + return nil + } + out := new(NetworkPolicyCondition) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NetworkPolicyEgressRule) DeepCopyInto(out *NetworkPolicyEgressRule) { + *out = *in + if in.Ports != nil { + in, out := &in.Ports, &out.Ports + *out = make([]NetworkPolicyPort, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.To != nil { + in, out := &in.To, &out.To + *out = make([]NetworkPolicyPeer, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicyEgressRule. +func (in *NetworkPolicyEgressRule) DeepCopy() *NetworkPolicyEgressRule { + if in == nil { + return nil + } + out := new(NetworkPolicyEgressRule) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NetworkPolicyIngressRule) DeepCopyInto(out *NetworkPolicyIngressRule) { + *out = *in + if in.Ports != nil { + in, out := &in.Ports, &out.Ports + *out = make([]NetworkPolicyPort, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.From != nil { + in, out := &in.From, &out.From + *out = make([]NetworkPolicyPeer, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicyIngressRule. +func (in *NetworkPolicyIngressRule) DeepCopy() *NetworkPolicyIngressRule { + if in == nil { + return nil + } + out := new(NetworkPolicyIngressRule) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NetworkPolicyList) DeepCopyInto(out *NetworkPolicyList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]NetworkPolicy, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicyList. +func (in *NetworkPolicyList) DeepCopy() *NetworkPolicyList { + if in == nil { + return nil + } + out := new(NetworkPolicyList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *NetworkPolicyList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NetworkPolicyPeer) DeepCopyInto(out *NetworkPolicyPeer) { + *out = *in + if in.ObjectSelector != nil { + in, out := &in.ObjectSelector, &out.ObjectSelector + *out = new(core.ObjectSelector) + (*in).DeepCopyInto(*out) + } + if in.IPBlock != nil { + in, out := &in.IPBlock, &out.IPBlock + *out = new(IPBlock) + (*in).DeepCopyInto(*out) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicyPeer. +func (in *NetworkPolicyPeer) DeepCopy() *NetworkPolicyPeer { + if in == nil { + return nil + } + out := new(NetworkPolicyPeer) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NetworkPolicyPort) DeepCopyInto(out *NetworkPolicyPort) { + *out = *in + if in.Protocol != nil { + in, out := &in.Protocol, &out.Protocol + *out = new(corev1.Protocol) + **out = **in + } + if in.EndPort != nil { + in, out := &in.EndPort, &out.EndPort + *out = new(int32) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicyPort. +func (in *NetworkPolicyPort) DeepCopy() *NetworkPolicyPort { + if in == nil { + return nil + } + out := new(NetworkPolicyPort) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NetworkPolicySpec) DeepCopyInto(out *NetworkPolicySpec) { + *out = *in + out.NetworkRef = in.NetworkRef + in.NetworkInterfaceSelector.DeepCopyInto(&out.NetworkInterfaceSelector) + if in.Ingress != nil { + in, out := &in.Ingress, &out.Ingress + *out = make([]NetworkPolicyIngressRule, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Egress != nil { + in, out := &in.Egress, &out.Egress + *out = make([]NetworkPolicyEgressRule, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.PolicyTypes != nil { + in, out := &in.PolicyTypes, &out.PolicyTypes + *out = make([]PolicyType, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicySpec. +func (in *NetworkPolicySpec) DeepCopy() *NetworkPolicySpec { + if in == nil { + return nil + } + out := new(NetworkPolicySpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NetworkPolicyStatus) DeepCopyInto(out *NetworkPolicyStatus) { + *out = *in + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]NetworkPolicyCondition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicyStatus. +func (in *NetworkPolicyStatus) DeepCopy() *NetworkPolicyStatus { + if in == nil { + return nil + } + out := new(NetworkPolicyStatus) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *NetworkSpec) DeepCopyInto(out *NetworkSpec) { *out = *in diff --git a/internal/registry/networking/networkpolicy/storage/storage.go b/internal/registry/networking/networkpolicy/storage/storage.go new file mode 100644 index 000000000..e9ac43945 --- /dev/null +++ b/internal/registry/networking/networkpolicy/storage/storage.go @@ -0,0 +1,98 @@ +/* + * Copyright (c) 2022 by the OnMetal authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package storage + +import ( + "context" + + "github.com/onmetal/onmetal-api/internal/apis/networking" + "github.com/onmetal/onmetal-api/internal/registry/networking/networkpolicy" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apiserver/pkg/registry/generic" + genericregistry "k8s.io/apiserver/pkg/registry/generic/registry" + "k8s.io/apiserver/pkg/registry/rest" + "sigs.k8s.io/structured-merge-diff/v4/fieldpath" +) + +type NetworkPolicyStorage struct { + NetworkPolicy *REST + Status *StatusREST +} + +type REST struct { + *genericregistry.Store +} + +func (REST) ShortNames() []string { + return []string{"netpol"} +} + +func NewStorage(optsGetter generic.RESTOptionsGetter) (NetworkPolicyStorage, error) { + store := &genericregistry.Store{ + NewFunc: func() runtime.Object { + return &networking.NetworkPolicy{} + }, + NewListFunc: func() runtime.Object { + return &networking.NetworkPolicyList{} + }, + PredicateFunc: networkpolicy.MatchNetworkPolicy, + DefaultQualifiedResource: networking.Resource("networkpolicies"), + + CreateStrategy: networkpolicy.Strategy, + UpdateStrategy: networkpolicy.Strategy, + DeleteStrategy: networkpolicy.Strategy, + + TableConvertor: newTableConvertor(), + } + + options := &generic.StoreOptions{RESTOptions: optsGetter, AttrFunc: networkpolicy.GetAttrs} + if err := store.CompleteWithOptions(options); err != nil { + return NetworkPolicyStorage{}, err + } + + statusStore := *store + statusStore.UpdateStrategy = networkpolicy.StatusStrategy + statusStore.ResetFieldsStrategy = networkpolicy.StatusStrategy + + return NetworkPolicyStorage{ + NetworkPolicy: &REST{store}, + Status: &StatusREST{&statusStore}, + }, nil +} + +type StatusREST struct { + store *genericregistry.Store +} + +func (r *StatusREST) New() runtime.Object { + return &networking.NetworkPolicy{} +} + +func (r *StatusREST) Get(ctx context.Context, name string, options *metav1.GetOptions) (runtime.Object, error) { + return r.store.Get(ctx, name, options) +} + +func (r *StatusREST) Update(ctx context.Context, name string, objInfo rest.UpdatedObjectInfo, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc, forceAllowCreate bool, options *metav1.UpdateOptions) (runtime.Object, bool, error) { + return r.store.Update(ctx, name, objInfo, createValidation, updateValidation, false, options) +} + +func (r *StatusREST) GetResetFields() map[fieldpath.APIVersion]*fieldpath.Set { + return r.store.GetResetFields() +} + +func (r *StatusREST) Destroy() {} diff --git a/internal/registry/networking/networkpolicy/storage/tableconvertor.go b/internal/registry/networking/networkpolicy/storage/tableconvertor.go new file mode 100644 index 000000000..319e11b3c --- /dev/null +++ b/internal/registry/networking/networkpolicy/storage/tableconvertor.go @@ -0,0 +1,72 @@ +/* + * Copyright (c) 2022 by the OnMetal authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package storage + +import ( + "context" + + "github.com/onmetal/onmetal-api/internal/apis/networking" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/api/meta/table" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" +) + +type convertor struct{} + +var ( + objectMetaSwaggerDoc = metav1.ObjectMeta{}.SwaggerDoc() + + headers = []metav1.TableColumnDefinition{ + {Name: "Name", Type: "string", Format: "name", Description: objectMetaSwaggerDoc["name"]}, + {Name: "Network", Type: "string", Description: "The network this network policy affects"}, + {Name: "Nic-Selector", Type: "string", Description: "The selector for network interfaces"}, + {Name: "Age", Type: "string", Format: "date", Description: objectMetaSwaggerDoc["creationTimestamp"]}, + } +) + +func newTableConvertor() *convertor { + return &convertor{} +} + +func (c *convertor) ConvertToTable(ctx context.Context, obj runtime.Object, tableOptions runtime.Object) (*metav1.Table, error) { + tab := &metav1.Table{ + ColumnDefinitions: headers, + } + + if m, err := meta.ListAccessor(obj); err == nil { + tab.ResourceVersion = m.GetResourceVersion() + tab.Continue = m.GetContinue() + } else { + if m, err := meta.CommonAccessor(obj); err == nil { + tab.ResourceVersion = m.GetResourceVersion() + } + } + + var err error + tab.Rows, err = table.MetaToTableRow(obj, func(obj runtime.Object, m metav1.Object, name, age string) (cells []interface{}, err error) { + networkPolicy := obj.(*networking.NetworkPolicy) + + cells = append(cells, name) + cells = append(cells, networkPolicy.Spec.NetworkRef.Name) + cells = append(cells, metav1.FormatLabelSelector(&networkPolicy.Spec.NetworkInterfaceSelector)) + cells = append(cells, age) + + return cells, nil + }) + return tab, err +} diff --git a/internal/registry/networking/networkpolicy/strategy.go b/internal/registry/networking/networkpolicy/strategy.go new file mode 100644 index 000000000..d60e897d1 --- /dev/null +++ b/internal/registry/networking/networkpolicy/strategy.go @@ -0,0 +1,133 @@ +/* + * Copyright (c) 2022 by the OnMetal authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package networkpolicy + +import ( + "context" + "fmt" + + "github.com/onmetal/onmetal-api/internal/api" + "github.com/onmetal/onmetal-api/internal/apis/networking" + "github.com/onmetal/onmetal-api/internal/apis/networking/validation" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + "k8s.io/apiserver/pkg/registry/generic" + apisrvstorage "k8s.io/apiserver/pkg/storage" + "k8s.io/apiserver/pkg/storage/names" + "sigs.k8s.io/structured-merge-diff/v4/fieldpath" +) + +func GetAttrs(obj runtime.Object) (labels.Set, fields.Set, error) { + networkPolicy, ok := obj.(*networking.NetworkPolicy) + if !ok { + return nil, nil, fmt.Errorf("given object is not a NetworkPolicy") + } + return networkPolicy.Labels, SelectableFields(networkPolicy), nil +} + +func MatchNetworkPolicy(label labels.Selector, field fields.Selector) apisrvstorage.SelectionPredicate { + return apisrvstorage.SelectionPredicate{ + Label: label, + Field: field, + GetAttrs: GetAttrs, + } +} + +func SelectableFields(networkPolicy *networking.NetworkPolicy) fields.Set { + return generic.ObjectMetaFieldsSet(&networkPolicy.ObjectMeta, true) +} + +type networkPolicyStrategy struct { + runtime.ObjectTyper + names.NameGenerator +} + +var Strategy = networkPolicyStrategy{api.Scheme, names.SimpleNameGenerator} + +func (networkPolicyStrategy) NamespaceScoped() bool { + return true +} + +func (networkPolicyStrategy) PrepareForCreate(ctx context.Context, obj runtime.Object) { + networkPolicy := obj.(*networking.NetworkPolicy) + networkPolicy.Status = networking.NetworkPolicyStatus{} +} + +func (networkPolicyStrategy) PrepareForUpdate(ctx context.Context, obj, old runtime.Object) { + newNetworkPolicy := obj.(*networking.NetworkPolicy) + oldNetworkPolicy := old.(*networking.NetworkPolicy) + newNetworkPolicy.Status = oldNetworkPolicy.Status +} + +func (networkPolicyStrategy) Validate(ctx context.Context, obj runtime.Object) field.ErrorList { + networkPolicy := obj.(*networking.NetworkPolicy) + return validation.ValidateNetworkPolicy(networkPolicy) +} + +func (networkPolicyStrategy) WarningsOnCreate(ctx context.Context, obj runtime.Object) []string { + return nil +} + +func (networkPolicyStrategy) AllowCreateOnUpdate() bool { + return false +} + +func (networkPolicyStrategy) AllowUnconditionalUpdate() bool { + return false +} + +func (networkPolicyStrategy) Canonicalize(obj runtime.Object) { +} + +func (networkPolicyStrategy) ValidateUpdate(ctx context.Context, obj, old runtime.Object) field.ErrorList { + newNetworkPolicy := obj.(*networking.NetworkPolicy) + oldNetworkPolicy := old.(*networking.NetworkPolicy) + return validation.ValidateNetworkPolicyUpdate(newNetworkPolicy, oldNetworkPolicy) +} + +func (networkPolicyStrategy) WarningsOnUpdate(ctx context.Context, obj, old runtime.Object) []string { + return nil +} + +type networkPolicyStatusStrategy struct { + networkPolicyStrategy +} + +var StatusStrategy = networkPolicyStatusStrategy{Strategy} + +func (networkPolicyStatusStrategy) GetResetFields() map[fieldpath.APIVersion]*fieldpath.Set { + return map[fieldpath.APIVersion]*fieldpath.Set{ + "networking.api.onmetal.de/v1alpha1": fieldpath.NewSet( + fieldpath.MakePathOrDie("spec"), + ), + } +} + +func (networkPolicyStatusStrategy) PrepareForUpdate(ctx context.Context, obj, old runtime.Object) { +} + +func (networkPolicyStatusStrategy) ValidateUpdate(ctx context.Context, obj, old runtime.Object) field.ErrorList { + newNetworkPolicy := obj.(*networking.NetworkPolicy) + oldNetworkPolicy := old.(*networking.NetworkPolicy) + return validation.ValidateNetworkPolicyUpdate(newNetworkPolicy, oldNetworkPolicy) +} + +func (networkPolicyStatusStrategy) WarningsOnUpdate(cxt context.Context, obj, old runtime.Object) []string { + return nil +} diff --git a/internal/registry/networking/rest/rest.go b/internal/registry/networking/rest/rest.go index 8ce326d9d..dd0dcfd2c 100644 --- a/internal/registry/networking/rest/rest.go +++ b/internal/registry/networking/rest/rest.go @@ -26,6 +26,7 @@ import ( natgatewayroutingstorage "github.com/onmetal/onmetal-api/internal/registry/networking/natgatewayrouting/storage" networkstorage "github.com/onmetal/onmetal-api/internal/registry/networking/network/storage" networkinterfacestorage "github.com/onmetal/onmetal-api/internal/registry/networking/networkinterface/storage" + networkpolicystorage "github.com/onmetal/onmetal-api/internal/registry/networking/networkpolicy/storage" virtualipstorage "github.com/onmetal/onmetal-api/internal/registry/networking/virtualip/storage" onmetalapiserializer "github.com/onmetal/onmetal-api/internal/serializer" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -77,6 +78,14 @@ func (p StorageProvider) v1alpha1Storage(restOptionsGetter generic.RESTOptionsGe storageMap["networks"] = networkStorage.Network storageMap["networks/status"] = networkStorage.Status + networkPolicyStorage, err := networkpolicystorage.NewStorage(restOptionsGetter) + if err != nil { + return storageMap, err + } + + storageMap["networkpolicies"] = networkPolicyStorage.NetworkPolicy + storageMap["networkpolicies/status"] = networkPolicyStorage.Status + virtualIPStorage, err := virtualipstorage.NewStorage(restOptionsGetter) if err != nil { return storageMap, err diff --git a/mkdocs.yml b/mkdocs.yml index eb53d88f6..ec2669804 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -5,67 +5,68 @@ theme: icon: repo: fontawesome/brands/github features: - - navigation.instant - - navigation.tracking - - navigation.expand - - navigation.indexes - - navigation.top + - navigation.instant + - navigation.tracking + - navigation.expand + - navigation.indexes + - navigation.top name: material logo: assets/logo.png favicon: assets/favicon.png palette: - - media: "(prefers-color-scheme: light)" - scheme: default - primary: white - toggle: - icon: material/weather-night - name: Switch to dark mode - - media: "(prefers-color-scheme: dark)" - scheme: slate - primary: black - toggle: - icon: material/weather-sunny - name: Switch to light mode + - media: "(prefers-color-scheme: light)" + scheme: default + primary: white + toggle: + icon: material/weather-night + name: Switch to dark mode + - media: "(prefers-color-scheme: dark)" + scheme: slate + primary: black + toggle: + icon: material/weather-sunny + name: Switch to light mode font: text: 'Work Sans' plugins: - - search +- search markdown_extensions: - - pymdownx.highlight - - pymdownx.superfences: - custom_fences: - - name: mermaid - class: mermaid - format: !!python/name:pymdownx.superfences.fence_code_format - - pymdownx.snippets - - codehilite - - admonition - - abbr - - toc: - permalink: true +- pymdownx.highlight +- pymdownx.superfences: + custom_fences: + - name: mermaid + class: mermaid + format: !!python/name:pymdownx.superfences.fence_code_format +- pymdownx.snippets +- codehilite +- admonition +- abbr +- toc: + permalink: true nav: - - Home: README.md - - Concepts: README.md - - Architecture: README.md - - Usage: README.md - - Developer Guide: - - Local Setup: development/setup.md - - Documentation: development/documentation.md - - Testing: development/testing.md - - Contribution Guide: development/contribution.md - - Proposals: proposals/README.md - - API Reference: - - Overview: api-reference/overview.md - - IPAM: api-reference/ipam.md - - Compute: api-reference/compute.md - - Networking: api-reference/networking.md - - Storage: api-reference/storage.md - - Common: api-reference/common.md +- Home: README.md +- Concepts: README.md +- Architecture: README.md +- Usage: README.md +- Developer Guide: + - Local Setup: development/setup.md + - Documentation: development/documentation.md + - Testing: development/testing.md + - Contribution Guide: development/contribution.md +- Proposals: proposals/README.md +- API Reference: + - Overview: api-reference/overview.md + - IPAM: api-reference/ipam.md + - Core: api-reference/core.md + - Compute: api-reference/compute.md + - Networking: api-reference/networking.md + - Storage: api-reference/storage.md + - Common: api-reference/common.md extra: social: - - icon: fontawesome/brands/github - link: https://github.com/onmetal/onmetal-api \ No newline at end of file + - icon: fontawesome/brands/github + link: https://github.com/onmetal/onmetal-api \ No newline at end of file