From c41b8bf599628f49779bf575af6014444b71251e Mon Sep 17 00:00:00 2001 From: Marc Nuri Date: Tue, 23 Jul 2024 12:16:12 +0200 Subject: [PATCH] fix(openapi): proper handling of schema paths (x-kubernetes-group-version-kind) Signed-off-by: Marc Nuri --- .../kubernetes-model-core/pom.xml | 5 +- .../kubernetes/api/model/KubeSchema.java | 824 ------------------ .../kubernetes/api/model/NamedExtension.java | 10 +- .../api/model/ValidationSchema.java | 824 ------------------ .../kubernetes/api/model/version/Info.java | 9 - .../kubernetes-model-rbac/pom.xml | 2 +- .../kubernetes/api/model/KubeSchema.java | 160 ---- .../api/model/ValidationSchema.java | 160 ---- .../openapi/generator/main.go | 81 +- .../schema/generator/GeneratorSettings.java | 29 +- .../schemas/admission-registration.json | 2 +- .../openapi/schemas/gateway-api.json | 2 +- .../openapi/schemas/metrics.json | 2 +- kubernetes-model-generator/pom.xml | 2 +- 14 files changed, 81 insertions(+), 2031 deletions(-) delete mode 100644 kubernetes-model-generator/kubernetes-model-core/src/generated/java/io/fabric8/kubernetes/api/model/KubeSchema.java delete mode 100644 kubernetes-model-generator/kubernetes-model-core/src/generated/java/io/fabric8/kubernetes/api/model/ValidationSchema.java delete mode 100644 kubernetes-model-generator/kubernetes-model-rbac/src/generated/java/io/fabric8/kubernetes/api/model/KubeSchema.java delete mode 100644 kubernetes-model-generator/kubernetes-model-rbac/src/generated/java/io/fabric8/kubernetes/api/model/ValidationSchema.java diff --git a/kubernetes-model-generator/kubernetes-model-core/pom.xml b/kubernetes-model-generator/kubernetes-model-core/pom.xml index 7eb4589c54f..91b4a0d70b2 100644 --- a/kubernetes-model-generator/kubernetes-model-core/pom.xml +++ b/kubernetes-model-generator/kubernetes-model-core/pom.xml @@ -142,8 +142,9 @@ false - ${project.basedir}/../openapi/schemas/kubernetes-1.30.0.json + ${openapi.schema.kubernetes-latest} ${project.basedir}/../openapi/schemas/api-machinery-extra.json + ${project.basedir}/../openapi/schemas/kubernetes-config.json ${project.basedir}/../openapi/schemas/admission-registration.json @@ -156,6 +157,8 @@ ^io\.k8s\.api\.core\..*$ ^io\.k8s\.apimachinery\..*$ + ^io\.k8s\.kube-aggregator\.pkg\.apis\.apiregistration\..*$ + ^io\.k8s\.client-go\.tools\.clientcmd\.api\.v1\..*$ diff --git a/kubernetes-model-generator/kubernetes-model-core/src/generated/java/io/fabric8/kubernetes/api/model/KubeSchema.java b/kubernetes-model-generator/kubernetes-model-core/src/generated/java/io/fabric8/kubernetes/api/model/KubeSchema.java deleted file mode 100644 index c9c918b88e7..00000000000 --- a/kubernetes-model-generator/kubernetes-model-core/src/generated/java/io/fabric8/kubernetes/api/model/KubeSchema.java +++ /dev/null @@ -1,824 +0,0 @@ - -package io.fabric8.kubernetes.api.model; - -import java.util.LinkedHashMap; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.fabric8.kubernetes.api.model.version.Info; - -@Generated("jsonschema2pojo") -public class KubeSchema { - - private APIGroup aPIGroup; - private APIGroupList aPIGroupList; - private APIResource aPIResource; - private APIResourceList aPIResourceList; - private APIService aPIService; - private APIServiceList aPIServiceList; - private APIVersions aPIVersions; - private Binding binding; - private ComponentStatus componentStatus; - private ComponentStatusList componentStatusList; - private Condition condition; - private Config config; - private ConfigMap configMap; - private ConfigMapList configMapList; - private ContainerStatus containerStatus; - private CreateOptions createOptions; - private DeleteOptions deleteOptions; - private EndpointPort endpointPort; - private Endpoints endpoints; - private EndpointsList endpointsList; - private EnvVar envVar; - private Event event; - private EventList eventList; - private EventSeries eventSeries; - private EventSource eventSource; - private GetOptions getOptions; - private GroupKind groupKind; - private GroupVersionKind groupVersionKind; - private GroupVersionResource groupVersionResource; - private Info info; - private KubernetesList kubernetesList; - private LimitRangeList limitRangeList; - private ListOptions listOptions; - private MicroTime microTime; - private Namespace namespace; - private NamespaceList namespaceList; - private Node node; - private NodeList nodeList; - private ObjectMeta objectMeta; - private Patch patch; - private PatchOptions patchOptions; - private PersistentVolume persistentVolume; - private PersistentVolumeClaim persistentVolumeClaim; - private PersistentVolumeClaimList persistentVolumeClaimList; - private PersistentVolumeList persistentVolumeList; - private PodExecOptions podExecOptions; - private PodList podList; - private PodTemplateList podTemplateList; - private Quantity quantity; - private ReplicationControllerList replicationControllerList; - private ResourceQuota resourceQuota; - private ResourceQuotaList resourceQuotaList; - private RootPaths rootPaths; - private Secret secret; - private SecretList secretList; - private ServiceAccount serviceAccount; - private ServiceAccountList serviceAccountList; - private ServiceList serviceList; - private Status status; - private String time; - private Toleration toleration; - private TopologySelectorTerm topologySelectorTerm; - private TypeMeta typeMeta; - private UpdateOptions updateOptions; - private WatchEvent watchEvent; - @JsonIgnore - private Map additionalProperties = new LinkedHashMap(); - - /** - * No args constructor for use in serialization - * - */ - public KubeSchema() { - } - - public KubeSchema(APIGroup aPIGroup, APIGroupList aPIGroupList, APIResource aPIResource, APIResourceList aPIResourceList, APIService aPIService, APIServiceList aPIServiceList, APIVersions aPIVersions, Binding binding, ComponentStatus componentStatus, ComponentStatusList componentStatusList, Condition condition, Config config, ConfigMap configMap, ConfigMapList configMapList, ContainerStatus containerStatus, CreateOptions createOptions, DeleteOptions deleteOptions, EndpointPort endpointPort, Endpoints endpoints, EndpointsList endpointsList, EnvVar envVar, Event event, EventList eventList, EventSeries eventSeries, EventSource eventSource, GetOptions getOptions, GroupKind groupKind, GroupVersionKind groupVersionKind, GroupVersionResource groupVersionResource, Info info, KubernetesList kubernetesList, LimitRangeList limitRangeList, ListOptions listOptions, MicroTime microTime, Namespace namespace, NamespaceList namespaceList, Node node, NodeList nodeList, ObjectMeta objectMeta, Patch patch, PatchOptions patchOptions, PersistentVolume persistentVolume, PersistentVolumeClaim persistentVolumeClaim, PersistentVolumeClaimList persistentVolumeClaimList, PersistentVolumeList persistentVolumeList, PodExecOptions podExecOptions, PodList podList, PodTemplateList podTemplateList, Quantity quantity, ReplicationControllerList replicationControllerList, ResourceQuota resourceQuota, ResourceQuotaList resourceQuotaList, RootPaths rootPaths, Secret secret, SecretList secretList, ServiceAccount serviceAccount, ServiceAccountList serviceAccountList, ServiceList serviceList, Status status, String time, Toleration toleration, TopologySelectorTerm topologySelectorTerm, TypeMeta typeMeta, UpdateOptions updateOptions, WatchEvent watchEvent) { - super(); - this.aPIGroup = aPIGroup; - this.aPIGroupList = aPIGroupList; - this.aPIResource = aPIResource; - this.aPIResourceList = aPIResourceList; - this.aPIService = aPIService; - this.aPIServiceList = aPIServiceList; - this.aPIVersions = aPIVersions; - this.binding = binding; - this.componentStatus = componentStatus; - this.componentStatusList = componentStatusList; - this.condition = condition; - this.config = config; - this.configMap = configMap; - this.configMapList = configMapList; - this.containerStatus = containerStatus; - this.createOptions = createOptions; - this.deleteOptions = deleteOptions; - this.endpointPort = endpointPort; - this.endpoints = endpoints; - this.endpointsList = endpointsList; - this.envVar = envVar; - this.event = event; - this.eventList = eventList; - this.eventSeries = eventSeries; - this.eventSource = eventSource; - this.getOptions = getOptions; - this.groupKind = groupKind; - this.groupVersionKind = groupVersionKind; - this.groupVersionResource = groupVersionResource; - this.info = info; - this.kubernetesList = kubernetesList; - this.limitRangeList = limitRangeList; - this.listOptions = listOptions; - this.microTime = microTime; - this.namespace = namespace; - this.namespaceList = namespaceList; - this.node = node; - this.nodeList = nodeList; - this.objectMeta = objectMeta; - this.patch = patch; - this.patchOptions = patchOptions; - this.persistentVolume = persistentVolume; - this.persistentVolumeClaim = persistentVolumeClaim; - this.persistentVolumeClaimList = persistentVolumeClaimList; - this.persistentVolumeList = persistentVolumeList; - this.podExecOptions = podExecOptions; - this.podList = podList; - this.podTemplateList = podTemplateList; - this.quantity = quantity; - this.replicationControllerList = replicationControllerList; - this.resourceQuota = resourceQuota; - this.resourceQuotaList = resourceQuotaList; - this.rootPaths = rootPaths; - this.secret = secret; - this.secretList = secretList; - this.serviceAccount = serviceAccount; - this.serviceAccountList = serviceAccountList; - this.serviceList = serviceList; - this.status = status; - this.time = time; - this.toleration = toleration; - this.topologySelectorTerm = topologySelectorTerm; - this.typeMeta = typeMeta; - this.updateOptions = updateOptions; - this.watchEvent = watchEvent; - } - - @JsonProperty("APIGroup") - public APIGroup getAPIGroup() { - return aPIGroup; - } - - @JsonProperty("APIGroup") - public void setAPIGroup(APIGroup aPIGroup) { - this.aPIGroup = aPIGroup; - } - - @JsonProperty("APIGroupList") - public APIGroupList getAPIGroupList() { - return aPIGroupList; - } - - @JsonProperty("APIGroupList") - public void setAPIGroupList(APIGroupList aPIGroupList) { - this.aPIGroupList = aPIGroupList; - } - - @JsonProperty("APIResource") - public APIResource getAPIResource() { - return aPIResource; - } - - @JsonProperty("APIResource") - public void setAPIResource(APIResource aPIResource) { - this.aPIResource = aPIResource; - } - - @JsonProperty("APIResourceList") - public APIResourceList getAPIResourceList() { - return aPIResourceList; - } - - @JsonProperty("APIResourceList") - public void setAPIResourceList(APIResourceList aPIResourceList) { - this.aPIResourceList = aPIResourceList; - } - - @JsonProperty("APIService") - public APIService getAPIService() { - return aPIService; - } - - @JsonProperty("APIService") - public void setAPIService(APIService aPIService) { - this.aPIService = aPIService; - } - - @JsonProperty("APIServiceList") - public APIServiceList getAPIServiceList() { - return aPIServiceList; - } - - @JsonProperty("APIServiceList") - public void setAPIServiceList(APIServiceList aPIServiceList) { - this.aPIServiceList = aPIServiceList; - } - - @JsonProperty("APIVersions") - public APIVersions getAPIVersions() { - return aPIVersions; - } - - @JsonProperty("APIVersions") - public void setAPIVersions(APIVersions aPIVersions) { - this.aPIVersions = aPIVersions; - } - - @JsonProperty("Binding") - public Binding getBinding() { - return binding; - } - - @JsonProperty("Binding") - public void setBinding(Binding binding) { - this.binding = binding; - } - - @JsonProperty("ComponentStatus") - public ComponentStatus getComponentStatus() { - return componentStatus; - } - - @JsonProperty("ComponentStatus") - public void setComponentStatus(ComponentStatus componentStatus) { - this.componentStatus = componentStatus; - } - - @JsonProperty("ComponentStatusList") - public ComponentStatusList getComponentStatusList() { - return componentStatusList; - } - - @JsonProperty("ComponentStatusList") - public void setComponentStatusList(ComponentStatusList componentStatusList) { - this.componentStatusList = componentStatusList; - } - - @JsonProperty("Condition") - public Condition getCondition() { - return condition; - } - - @JsonProperty("Condition") - public void setCondition(Condition condition) { - this.condition = condition; - } - - @JsonProperty("Config") - public Config getConfig() { - return config; - } - - @JsonProperty("Config") - public void setConfig(Config config) { - this.config = config; - } - - @JsonProperty("ConfigMap") - public ConfigMap getConfigMap() { - return configMap; - } - - @JsonProperty("ConfigMap") - public void setConfigMap(ConfigMap configMap) { - this.configMap = configMap; - } - - @JsonProperty("ConfigMapList") - public ConfigMapList getConfigMapList() { - return configMapList; - } - - @JsonProperty("ConfigMapList") - public void setConfigMapList(ConfigMapList configMapList) { - this.configMapList = configMapList; - } - - @JsonProperty("ContainerStatus") - public ContainerStatus getContainerStatus() { - return containerStatus; - } - - @JsonProperty("ContainerStatus") - public void setContainerStatus(ContainerStatus containerStatus) { - this.containerStatus = containerStatus; - } - - @JsonProperty("CreateOptions") - public CreateOptions getCreateOptions() { - return createOptions; - } - - @JsonProperty("CreateOptions") - public void setCreateOptions(CreateOptions createOptions) { - this.createOptions = createOptions; - } - - @JsonProperty("DeleteOptions") - public DeleteOptions getDeleteOptions() { - return deleteOptions; - } - - @JsonProperty("DeleteOptions") - public void setDeleteOptions(DeleteOptions deleteOptions) { - this.deleteOptions = deleteOptions; - } - - @JsonProperty("EndpointPort") - public EndpointPort getEndpointPort() { - return endpointPort; - } - - @JsonProperty("EndpointPort") - public void setEndpointPort(EndpointPort endpointPort) { - this.endpointPort = endpointPort; - } - - @JsonProperty("Endpoints") - public Endpoints getEndpoints() { - return endpoints; - } - - @JsonProperty("Endpoints") - public void setEndpoints(Endpoints endpoints) { - this.endpoints = endpoints; - } - - @JsonProperty("EndpointsList") - public EndpointsList getEndpointsList() { - return endpointsList; - } - - @JsonProperty("EndpointsList") - public void setEndpointsList(EndpointsList endpointsList) { - this.endpointsList = endpointsList; - } - - @JsonProperty("EnvVar") - public EnvVar getEnvVar() { - return envVar; - } - - @JsonProperty("EnvVar") - public void setEnvVar(EnvVar envVar) { - this.envVar = envVar; - } - - @JsonProperty("Event") - public Event getEvent() { - return event; - } - - @JsonProperty("Event") - public void setEvent(Event event) { - this.event = event; - } - - @JsonProperty("EventList") - public EventList getEventList() { - return eventList; - } - - @JsonProperty("EventList") - public void setEventList(EventList eventList) { - this.eventList = eventList; - } - - @JsonProperty("EventSeries") - public EventSeries getEventSeries() { - return eventSeries; - } - - @JsonProperty("EventSeries") - public void setEventSeries(EventSeries eventSeries) { - this.eventSeries = eventSeries; - } - - @JsonProperty("EventSource") - public EventSource getEventSource() { - return eventSource; - } - - @JsonProperty("EventSource") - public void setEventSource(EventSource eventSource) { - this.eventSource = eventSource; - } - - @JsonProperty("GetOptions") - public GetOptions getGetOptions() { - return getOptions; - } - - @JsonProperty("GetOptions") - public void setGetOptions(GetOptions getOptions) { - this.getOptions = getOptions; - } - - @JsonProperty("GroupKind") - public GroupKind getGroupKind() { - return groupKind; - } - - @JsonProperty("GroupKind") - public void setGroupKind(GroupKind groupKind) { - this.groupKind = groupKind; - } - - @JsonProperty("GroupVersionKind") - public GroupVersionKind getGroupVersionKind() { - return groupVersionKind; - } - - @JsonProperty("GroupVersionKind") - public void setGroupVersionKind(GroupVersionKind groupVersionKind) { - this.groupVersionKind = groupVersionKind; - } - - @JsonProperty("GroupVersionResource") - public GroupVersionResource getGroupVersionResource() { - return groupVersionResource; - } - - @JsonProperty("GroupVersionResource") - public void setGroupVersionResource(GroupVersionResource groupVersionResource) { - this.groupVersionResource = groupVersionResource; - } - - @JsonProperty("Info") - public Info getInfo() { - return info; - } - - @JsonProperty("Info") - public void setInfo(Info info) { - this.info = info; - } - - @JsonProperty("KubernetesList") - public KubernetesList getKubernetesList() { - return kubernetesList; - } - - @JsonProperty("KubernetesList") - public void setKubernetesList(KubernetesList kubernetesList) { - this.kubernetesList = kubernetesList; - } - - @JsonProperty("LimitRangeList") - public LimitRangeList getLimitRangeList() { - return limitRangeList; - } - - @JsonProperty("LimitRangeList") - public void setLimitRangeList(LimitRangeList limitRangeList) { - this.limitRangeList = limitRangeList; - } - - @JsonProperty("ListOptions") - public ListOptions getListOptions() { - return listOptions; - } - - @JsonProperty("ListOptions") - public void setListOptions(ListOptions listOptions) { - this.listOptions = listOptions; - } - - @JsonProperty("MicroTime") - public MicroTime getMicroTime() { - return microTime; - } - - @JsonProperty("MicroTime") - public void setMicroTime(MicroTime microTime) { - this.microTime = microTime; - } - - @JsonProperty("Namespace") - public Namespace getNamespace() { - return namespace; - } - - @JsonProperty("Namespace") - public void setNamespace(Namespace namespace) { - this.namespace = namespace; - } - - @JsonProperty("NamespaceList") - public NamespaceList getNamespaceList() { - return namespaceList; - } - - @JsonProperty("NamespaceList") - public void setNamespaceList(NamespaceList namespaceList) { - this.namespaceList = namespaceList; - } - - @JsonProperty("Node") - public Node getNode() { - return node; - } - - @JsonProperty("Node") - public void setNode(Node node) { - this.node = node; - } - - @JsonProperty("NodeList") - public NodeList getNodeList() { - return nodeList; - } - - @JsonProperty("NodeList") - public void setNodeList(NodeList nodeList) { - this.nodeList = nodeList; - } - - @JsonProperty("ObjectMeta") - public ObjectMeta getObjectMeta() { - return objectMeta; - } - - @JsonProperty("ObjectMeta") - public void setObjectMeta(ObjectMeta objectMeta) { - this.objectMeta = objectMeta; - } - - @JsonProperty("Patch") - public Patch getPatch() { - return patch; - } - - @JsonProperty("Patch") - public void setPatch(Patch patch) { - this.patch = patch; - } - - @JsonProperty("PatchOptions") - public PatchOptions getPatchOptions() { - return patchOptions; - } - - @JsonProperty("PatchOptions") - public void setPatchOptions(PatchOptions patchOptions) { - this.patchOptions = patchOptions; - } - - @JsonProperty("PersistentVolume") - public PersistentVolume getPersistentVolume() { - return persistentVolume; - } - - @JsonProperty("PersistentVolume") - public void setPersistentVolume(PersistentVolume persistentVolume) { - this.persistentVolume = persistentVolume; - } - - @JsonProperty("PersistentVolumeClaim") - public PersistentVolumeClaim getPersistentVolumeClaim() { - return persistentVolumeClaim; - } - - @JsonProperty("PersistentVolumeClaim") - public void setPersistentVolumeClaim(PersistentVolumeClaim persistentVolumeClaim) { - this.persistentVolumeClaim = persistentVolumeClaim; - } - - @JsonProperty("PersistentVolumeClaimList") - public PersistentVolumeClaimList getPersistentVolumeClaimList() { - return persistentVolumeClaimList; - } - - @JsonProperty("PersistentVolumeClaimList") - public void setPersistentVolumeClaimList(PersistentVolumeClaimList persistentVolumeClaimList) { - this.persistentVolumeClaimList = persistentVolumeClaimList; - } - - @JsonProperty("PersistentVolumeList") - public PersistentVolumeList getPersistentVolumeList() { - return persistentVolumeList; - } - - @JsonProperty("PersistentVolumeList") - public void setPersistentVolumeList(PersistentVolumeList persistentVolumeList) { - this.persistentVolumeList = persistentVolumeList; - } - - @JsonProperty("PodExecOptions") - public PodExecOptions getPodExecOptions() { - return podExecOptions; - } - - @JsonProperty("PodExecOptions") - public void setPodExecOptions(PodExecOptions podExecOptions) { - this.podExecOptions = podExecOptions; - } - - @JsonProperty("PodList") - public PodList getPodList() { - return podList; - } - - @JsonProperty("PodList") - public void setPodList(PodList podList) { - this.podList = podList; - } - - @JsonProperty("PodTemplateList") - public PodTemplateList getPodTemplateList() { - return podTemplateList; - } - - @JsonProperty("PodTemplateList") - public void setPodTemplateList(PodTemplateList podTemplateList) { - this.podTemplateList = podTemplateList; - } - - @JsonProperty("Quantity") - public Quantity getQuantity() { - return quantity; - } - - @JsonProperty("Quantity") - public void setQuantity(Quantity quantity) { - this.quantity = quantity; - } - - @JsonProperty("ReplicationControllerList") - public ReplicationControllerList getReplicationControllerList() { - return replicationControllerList; - } - - @JsonProperty("ReplicationControllerList") - public void setReplicationControllerList(ReplicationControllerList replicationControllerList) { - this.replicationControllerList = replicationControllerList; - } - - @JsonProperty("ResourceQuota") - public ResourceQuota getResourceQuota() { - return resourceQuota; - } - - @JsonProperty("ResourceQuota") - public void setResourceQuota(ResourceQuota resourceQuota) { - this.resourceQuota = resourceQuota; - } - - @JsonProperty("ResourceQuotaList") - public ResourceQuotaList getResourceQuotaList() { - return resourceQuotaList; - } - - @JsonProperty("ResourceQuotaList") - public void setResourceQuotaList(ResourceQuotaList resourceQuotaList) { - this.resourceQuotaList = resourceQuotaList; - } - - @JsonProperty("RootPaths") - public RootPaths getRootPaths() { - return rootPaths; - } - - @JsonProperty("RootPaths") - public void setRootPaths(RootPaths rootPaths) { - this.rootPaths = rootPaths; - } - - @JsonProperty("Secret") - public Secret getSecret() { - return secret; - } - - @JsonProperty("Secret") - public void setSecret(Secret secret) { - this.secret = secret; - } - - @JsonProperty("SecretList") - public SecretList getSecretList() { - return secretList; - } - - @JsonProperty("SecretList") - public void setSecretList(SecretList secretList) { - this.secretList = secretList; - } - - @JsonProperty("ServiceAccount") - public ServiceAccount getServiceAccount() { - return serviceAccount; - } - - @JsonProperty("ServiceAccount") - public void setServiceAccount(ServiceAccount serviceAccount) { - this.serviceAccount = serviceAccount; - } - - @JsonProperty("ServiceAccountList") - public ServiceAccountList getServiceAccountList() { - return serviceAccountList; - } - - @JsonProperty("ServiceAccountList") - public void setServiceAccountList(ServiceAccountList serviceAccountList) { - this.serviceAccountList = serviceAccountList; - } - - @JsonProperty("ServiceList") - public ServiceList getServiceList() { - return serviceList; - } - - @JsonProperty("ServiceList") - public void setServiceList(ServiceList serviceList) { - this.serviceList = serviceList; - } - - @JsonProperty("Status") - public Status getStatus() { - return status; - } - - @JsonProperty("Status") - public void setStatus(Status status) { - this.status = status; - } - - @JsonProperty("Time") - public String getTime() { - return time; - } - - @JsonProperty("Time") - public void setTime(String time) { - this.time = time; - } - - @JsonProperty("Toleration") - public Toleration getToleration() { - return toleration; - } - - @JsonProperty("Toleration") - public void setToleration(Toleration toleration) { - this.toleration = toleration; - } - - @JsonProperty("TopologySelectorTerm") - public TopologySelectorTerm getTopologySelectorTerm() { - return topologySelectorTerm; - } - - @JsonProperty("TopologySelectorTerm") - public void setTopologySelectorTerm(TopologySelectorTerm topologySelectorTerm) { - this.topologySelectorTerm = topologySelectorTerm; - } - - @JsonProperty("TypeMeta") - public TypeMeta getTypeMeta() { - return typeMeta; - } - - @JsonProperty("TypeMeta") - public void setTypeMeta(TypeMeta typeMeta) { - this.typeMeta = typeMeta; - } - - @JsonProperty("UpdateOptions") - public UpdateOptions getUpdateOptions() { - return updateOptions; - } - - @JsonProperty("UpdateOptions") - public void setUpdateOptions(UpdateOptions updateOptions) { - this.updateOptions = updateOptions; - } - - @JsonProperty("WatchEvent") - public WatchEvent getWatchEvent() { - return watchEvent; - } - - @JsonProperty("WatchEvent") - public void setWatchEvent(WatchEvent watchEvent) { - this.watchEvent = watchEvent; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - - public void setAdditionalProperties(Map additionalProperties) { - this.additionalProperties = additionalProperties; - } - -} diff --git a/kubernetes-model-generator/kubernetes-model-core/src/generated/java/io/fabric8/kubernetes/api/model/NamedExtension.java b/kubernetes-model-generator/kubernetes-model-core/src/generated/java/io/fabric8/kubernetes/api/model/NamedExtension.java index 09e05eda95e..83667c83489 100644 --- a/kubernetes-model-generator/kubernetes-model-core/src/generated/java/io/fabric8/kubernetes/api/model/NamedExtension.java +++ b/kubernetes-model-generator/kubernetes-model-core/src/generated/java/io/fabric8/kubernetes/api/model/NamedExtension.java @@ -31,11 +31,11 @@ }) @Buildable(editableEnabled = false, validationEnabled = false, generateBuilderPackage = false, lazyCollectionInitEnabled = false, builderPackage = "io.fabric8.kubernetes.api.builder") @Generated("jsonschema2pojo") -public class NamedExtension implements Editable , io.fabric8.kubernetes.api.model.KubernetesResource +public class NamedExtension implements Editable , KubernetesResource { @JsonProperty("extension") - private io.fabric8.kubernetes.api.model.KubernetesResource extension; + private KubernetesResource extension; @JsonProperty("name") private String name; @JsonIgnore @@ -48,19 +48,19 @@ public class NamedExtension implements Editable , io.fabr public NamedExtension() { } - public NamedExtension(io.fabric8.kubernetes.api.model.KubernetesResource extension, String name) { + public NamedExtension(KubernetesResource extension, String name) { super(); this.extension = extension; this.name = name; } @JsonProperty("extension") - public io.fabric8.kubernetes.api.model.KubernetesResource getExtension() { + public KubernetesResource getExtension() { return extension; } @JsonProperty("extension") - public void setExtension(io.fabric8.kubernetes.api.model.KubernetesResource extension) { + public void setExtension(KubernetesResource extension) { this.extension = extension; } diff --git a/kubernetes-model-generator/kubernetes-model-core/src/generated/java/io/fabric8/kubernetes/api/model/ValidationSchema.java b/kubernetes-model-generator/kubernetes-model-core/src/generated/java/io/fabric8/kubernetes/api/model/ValidationSchema.java deleted file mode 100644 index 8ee6d47ebe3..00000000000 --- a/kubernetes-model-generator/kubernetes-model-core/src/generated/java/io/fabric8/kubernetes/api/model/ValidationSchema.java +++ /dev/null @@ -1,824 +0,0 @@ - -package io.fabric8.kubernetes.api.model; - -import java.util.LinkedHashMap; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.fabric8.kubernetes.api.model.version.Info; - -@Generated("jsonschema2pojo") -public class ValidationSchema { - - private APIGroup aPIGroup; - private APIGroupList aPIGroupList; - private APIResource aPIResource; - private APIResourceList aPIResourceList; - private APIService aPIService; - private APIServiceList aPIServiceList; - private APIVersions aPIVersions; - private Binding binding; - private ComponentStatus componentStatus; - private ComponentStatusList componentStatusList; - private Condition condition; - private Config config; - private ConfigMap configMap; - private ConfigMapList configMapList; - private ContainerStatus containerStatus; - private CreateOptions createOptions; - private DeleteOptions deleteOptions; - private EndpointPort endpointPort; - private Endpoints endpoints; - private EndpointsList endpointsList; - private EnvVar envVar; - private Event event; - private EventList eventList; - private EventSeries eventSeries; - private EventSource eventSource; - private GetOptions getOptions; - private GroupKind groupKind; - private GroupVersionKind groupVersionKind; - private GroupVersionResource groupVersionResource; - private Info info; - private KubernetesList kubernetesList; - private LimitRangeList limitRangeList; - private ListOptions listOptions; - private MicroTime microTime; - private Namespace namespace; - private NamespaceList namespaceList; - private Node node; - private NodeList nodeList; - private ObjectMeta objectMeta; - private Patch patch; - private PatchOptions patchOptions; - private PersistentVolume persistentVolume; - private PersistentVolumeClaim persistentVolumeClaim; - private PersistentVolumeClaimList persistentVolumeClaimList; - private PersistentVolumeList persistentVolumeList; - private PodExecOptions podExecOptions; - private PodList podList; - private PodTemplateList podTemplateList; - private Quantity quantity; - private ReplicationControllerList replicationControllerList; - private ResourceQuota resourceQuota; - private ResourceQuotaList resourceQuotaList; - private RootPaths rootPaths; - private Secret secret; - private SecretList secretList; - private ServiceAccount serviceAccount; - private ServiceAccountList serviceAccountList; - private ServiceList serviceList; - private Status status; - private String time; - private Toleration toleration; - private TopologySelectorTerm topologySelectorTerm; - private TypeMeta typeMeta; - private UpdateOptions updateOptions; - private WatchEvent watchEvent; - @JsonIgnore - private Map additionalProperties = new LinkedHashMap(); - - /** - * No args constructor for use in serialization - * - */ - public ValidationSchema() { - } - - public ValidationSchema(APIGroup aPIGroup, APIGroupList aPIGroupList, APIResource aPIResource, APIResourceList aPIResourceList, APIService aPIService, APIServiceList aPIServiceList, APIVersions aPIVersions, Binding binding, ComponentStatus componentStatus, ComponentStatusList componentStatusList, Condition condition, Config config, ConfigMap configMap, ConfigMapList configMapList, ContainerStatus containerStatus, CreateOptions createOptions, DeleteOptions deleteOptions, EndpointPort endpointPort, Endpoints endpoints, EndpointsList endpointsList, EnvVar envVar, Event event, EventList eventList, EventSeries eventSeries, EventSource eventSource, GetOptions getOptions, GroupKind groupKind, GroupVersionKind groupVersionKind, GroupVersionResource groupVersionResource, Info info, KubernetesList kubernetesList, LimitRangeList limitRangeList, ListOptions listOptions, MicroTime microTime, Namespace namespace, NamespaceList namespaceList, Node node, NodeList nodeList, ObjectMeta objectMeta, Patch patch, PatchOptions patchOptions, PersistentVolume persistentVolume, PersistentVolumeClaim persistentVolumeClaim, PersistentVolumeClaimList persistentVolumeClaimList, PersistentVolumeList persistentVolumeList, PodExecOptions podExecOptions, PodList podList, PodTemplateList podTemplateList, Quantity quantity, ReplicationControllerList replicationControllerList, ResourceQuota resourceQuota, ResourceQuotaList resourceQuotaList, RootPaths rootPaths, Secret secret, SecretList secretList, ServiceAccount serviceAccount, ServiceAccountList serviceAccountList, ServiceList serviceList, Status status, String time, Toleration toleration, TopologySelectorTerm topologySelectorTerm, TypeMeta typeMeta, UpdateOptions updateOptions, WatchEvent watchEvent) { - super(); - this.aPIGroup = aPIGroup; - this.aPIGroupList = aPIGroupList; - this.aPIResource = aPIResource; - this.aPIResourceList = aPIResourceList; - this.aPIService = aPIService; - this.aPIServiceList = aPIServiceList; - this.aPIVersions = aPIVersions; - this.binding = binding; - this.componentStatus = componentStatus; - this.componentStatusList = componentStatusList; - this.condition = condition; - this.config = config; - this.configMap = configMap; - this.configMapList = configMapList; - this.containerStatus = containerStatus; - this.createOptions = createOptions; - this.deleteOptions = deleteOptions; - this.endpointPort = endpointPort; - this.endpoints = endpoints; - this.endpointsList = endpointsList; - this.envVar = envVar; - this.event = event; - this.eventList = eventList; - this.eventSeries = eventSeries; - this.eventSource = eventSource; - this.getOptions = getOptions; - this.groupKind = groupKind; - this.groupVersionKind = groupVersionKind; - this.groupVersionResource = groupVersionResource; - this.info = info; - this.kubernetesList = kubernetesList; - this.limitRangeList = limitRangeList; - this.listOptions = listOptions; - this.microTime = microTime; - this.namespace = namespace; - this.namespaceList = namespaceList; - this.node = node; - this.nodeList = nodeList; - this.objectMeta = objectMeta; - this.patch = patch; - this.patchOptions = patchOptions; - this.persistentVolume = persistentVolume; - this.persistentVolumeClaim = persistentVolumeClaim; - this.persistentVolumeClaimList = persistentVolumeClaimList; - this.persistentVolumeList = persistentVolumeList; - this.podExecOptions = podExecOptions; - this.podList = podList; - this.podTemplateList = podTemplateList; - this.quantity = quantity; - this.replicationControllerList = replicationControllerList; - this.resourceQuota = resourceQuota; - this.resourceQuotaList = resourceQuotaList; - this.rootPaths = rootPaths; - this.secret = secret; - this.secretList = secretList; - this.serviceAccount = serviceAccount; - this.serviceAccountList = serviceAccountList; - this.serviceList = serviceList; - this.status = status; - this.time = time; - this.toleration = toleration; - this.topologySelectorTerm = topologySelectorTerm; - this.typeMeta = typeMeta; - this.updateOptions = updateOptions; - this.watchEvent = watchEvent; - } - - @JsonProperty("APIGroup") - public APIGroup getAPIGroup() { - return aPIGroup; - } - - @JsonProperty("APIGroup") - public void setAPIGroup(APIGroup aPIGroup) { - this.aPIGroup = aPIGroup; - } - - @JsonProperty("APIGroupList") - public APIGroupList getAPIGroupList() { - return aPIGroupList; - } - - @JsonProperty("APIGroupList") - public void setAPIGroupList(APIGroupList aPIGroupList) { - this.aPIGroupList = aPIGroupList; - } - - @JsonProperty("APIResource") - public APIResource getAPIResource() { - return aPIResource; - } - - @JsonProperty("APIResource") - public void setAPIResource(APIResource aPIResource) { - this.aPIResource = aPIResource; - } - - @JsonProperty("APIResourceList") - public APIResourceList getAPIResourceList() { - return aPIResourceList; - } - - @JsonProperty("APIResourceList") - public void setAPIResourceList(APIResourceList aPIResourceList) { - this.aPIResourceList = aPIResourceList; - } - - @JsonProperty("APIService") - public APIService getAPIService() { - return aPIService; - } - - @JsonProperty("APIService") - public void setAPIService(APIService aPIService) { - this.aPIService = aPIService; - } - - @JsonProperty("APIServiceList") - public APIServiceList getAPIServiceList() { - return aPIServiceList; - } - - @JsonProperty("APIServiceList") - public void setAPIServiceList(APIServiceList aPIServiceList) { - this.aPIServiceList = aPIServiceList; - } - - @JsonProperty("APIVersions") - public APIVersions getAPIVersions() { - return aPIVersions; - } - - @JsonProperty("APIVersions") - public void setAPIVersions(APIVersions aPIVersions) { - this.aPIVersions = aPIVersions; - } - - @JsonProperty("Binding") - public Binding getBinding() { - return binding; - } - - @JsonProperty("Binding") - public void setBinding(Binding binding) { - this.binding = binding; - } - - @JsonProperty("ComponentStatus") - public ComponentStatus getComponentStatus() { - return componentStatus; - } - - @JsonProperty("ComponentStatus") - public void setComponentStatus(ComponentStatus componentStatus) { - this.componentStatus = componentStatus; - } - - @JsonProperty("ComponentStatusList") - public ComponentStatusList getComponentStatusList() { - return componentStatusList; - } - - @JsonProperty("ComponentStatusList") - public void setComponentStatusList(ComponentStatusList componentStatusList) { - this.componentStatusList = componentStatusList; - } - - @JsonProperty("Condition") - public Condition getCondition() { - return condition; - } - - @JsonProperty("Condition") - public void setCondition(Condition condition) { - this.condition = condition; - } - - @JsonProperty("Config") - public Config getConfig() { - return config; - } - - @JsonProperty("Config") - public void setConfig(Config config) { - this.config = config; - } - - @JsonProperty("ConfigMap") - public ConfigMap getConfigMap() { - return configMap; - } - - @JsonProperty("ConfigMap") - public void setConfigMap(ConfigMap configMap) { - this.configMap = configMap; - } - - @JsonProperty("ConfigMapList") - public ConfigMapList getConfigMapList() { - return configMapList; - } - - @JsonProperty("ConfigMapList") - public void setConfigMapList(ConfigMapList configMapList) { - this.configMapList = configMapList; - } - - @JsonProperty("ContainerStatus") - public ContainerStatus getContainerStatus() { - return containerStatus; - } - - @JsonProperty("ContainerStatus") - public void setContainerStatus(ContainerStatus containerStatus) { - this.containerStatus = containerStatus; - } - - @JsonProperty("CreateOptions") - public CreateOptions getCreateOptions() { - return createOptions; - } - - @JsonProperty("CreateOptions") - public void setCreateOptions(CreateOptions createOptions) { - this.createOptions = createOptions; - } - - @JsonProperty("DeleteOptions") - public DeleteOptions getDeleteOptions() { - return deleteOptions; - } - - @JsonProperty("DeleteOptions") - public void setDeleteOptions(DeleteOptions deleteOptions) { - this.deleteOptions = deleteOptions; - } - - @JsonProperty("EndpointPort") - public EndpointPort getEndpointPort() { - return endpointPort; - } - - @JsonProperty("EndpointPort") - public void setEndpointPort(EndpointPort endpointPort) { - this.endpointPort = endpointPort; - } - - @JsonProperty("Endpoints") - public Endpoints getEndpoints() { - return endpoints; - } - - @JsonProperty("Endpoints") - public void setEndpoints(Endpoints endpoints) { - this.endpoints = endpoints; - } - - @JsonProperty("EndpointsList") - public EndpointsList getEndpointsList() { - return endpointsList; - } - - @JsonProperty("EndpointsList") - public void setEndpointsList(EndpointsList endpointsList) { - this.endpointsList = endpointsList; - } - - @JsonProperty("EnvVar") - public EnvVar getEnvVar() { - return envVar; - } - - @JsonProperty("EnvVar") - public void setEnvVar(EnvVar envVar) { - this.envVar = envVar; - } - - @JsonProperty("Event") - public Event getEvent() { - return event; - } - - @JsonProperty("Event") - public void setEvent(Event event) { - this.event = event; - } - - @JsonProperty("EventList") - public EventList getEventList() { - return eventList; - } - - @JsonProperty("EventList") - public void setEventList(EventList eventList) { - this.eventList = eventList; - } - - @JsonProperty("EventSeries") - public EventSeries getEventSeries() { - return eventSeries; - } - - @JsonProperty("EventSeries") - public void setEventSeries(EventSeries eventSeries) { - this.eventSeries = eventSeries; - } - - @JsonProperty("EventSource") - public EventSource getEventSource() { - return eventSource; - } - - @JsonProperty("EventSource") - public void setEventSource(EventSource eventSource) { - this.eventSource = eventSource; - } - - @JsonProperty("GetOptions") - public GetOptions getGetOptions() { - return getOptions; - } - - @JsonProperty("GetOptions") - public void setGetOptions(GetOptions getOptions) { - this.getOptions = getOptions; - } - - @JsonProperty("GroupKind") - public GroupKind getGroupKind() { - return groupKind; - } - - @JsonProperty("GroupKind") - public void setGroupKind(GroupKind groupKind) { - this.groupKind = groupKind; - } - - @JsonProperty("GroupVersionKind") - public GroupVersionKind getGroupVersionKind() { - return groupVersionKind; - } - - @JsonProperty("GroupVersionKind") - public void setGroupVersionKind(GroupVersionKind groupVersionKind) { - this.groupVersionKind = groupVersionKind; - } - - @JsonProperty("GroupVersionResource") - public GroupVersionResource getGroupVersionResource() { - return groupVersionResource; - } - - @JsonProperty("GroupVersionResource") - public void setGroupVersionResource(GroupVersionResource groupVersionResource) { - this.groupVersionResource = groupVersionResource; - } - - @JsonProperty("Info") - public Info getInfo() { - return info; - } - - @JsonProperty("Info") - public void setInfo(Info info) { - this.info = info; - } - - @JsonProperty("KubernetesList") - public KubernetesList getKubernetesList() { - return kubernetesList; - } - - @JsonProperty("KubernetesList") - public void setKubernetesList(KubernetesList kubernetesList) { - this.kubernetesList = kubernetesList; - } - - @JsonProperty("LimitRangeList") - public LimitRangeList getLimitRangeList() { - return limitRangeList; - } - - @JsonProperty("LimitRangeList") - public void setLimitRangeList(LimitRangeList limitRangeList) { - this.limitRangeList = limitRangeList; - } - - @JsonProperty("ListOptions") - public ListOptions getListOptions() { - return listOptions; - } - - @JsonProperty("ListOptions") - public void setListOptions(ListOptions listOptions) { - this.listOptions = listOptions; - } - - @JsonProperty("MicroTime") - public MicroTime getMicroTime() { - return microTime; - } - - @JsonProperty("MicroTime") - public void setMicroTime(MicroTime microTime) { - this.microTime = microTime; - } - - @JsonProperty("Namespace") - public Namespace getNamespace() { - return namespace; - } - - @JsonProperty("Namespace") - public void setNamespace(Namespace namespace) { - this.namespace = namespace; - } - - @JsonProperty("NamespaceList") - public NamespaceList getNamespaceList() { - return namespaceList; - } - - @JsonProperty("NamespaceList") - public void setNamespaceList(NamespaceList namespaceList) { - this.namespaceList = namespaceList; - } - - @JsonProperty("Node") - public Node getNode() { - return node; - } - - @JsonProperty("Node") - public void setNode(Node node) { - this.node = node; - } - - @JsonProperty("NodeList") - public NodeList getNodeList() { - return nodeList; - } - - @JsonProperty("NodeList") - public void setNodeList(NodeList nodeList) { - this.nodeList = nodeList; - } - - @JsonProperty("ObjectMeta") - public ObjectMeta getObjectMeta() { - return objectMeta; - } - - @JsonProperty("ObjectMeta") - public void setObjectMeta(ObjectMeta objectMeta) { - this.objectMeta = objectMeta; - } - - @JsonProperty("Patch") - public Patch getPatch() { - return patch; - } - - @JsonProperty("Patch") - public void setPatch(Patch patch) { - this.patch = patch; - } - - @JsonProperty("PatchOptions") - public PatchOptions getPatchOptions() { - return patchOptions; - } - - @JsonProperty("PatchOptions") - public void setPatchOptions(PatchOptions patchOptions) { - this.patchOptions = patchOptions; - } - - @JsonProperty("PersistentVolume") - public PersistentVolume getPersistentVolume() { - return persistentVolume; - } - - @JsonProperty("PersistentVolume") - public void setPersistentVolume(PersistentVolume persistentVolume) { - this.persistentVolume = persistentVolume; - } - - @JsonProperty("PersistentVolumeClaim") - public PersistentVolumeClaim getPersistentVolumeClaim() { - return persistentVolumeClaim; - } - - @JsonProperty("PersistentVolumeClaim") - public void setPersistentVolumeClaim(PersistentVolumeClaim persistentVolumeClaim) { - this.persistentVolumeClaim = persistentVolumeClaim; - } - - @JsonProperty("PersistentVolumeClaimList") - public PersistentVolumeClaimList getPersistentVolumeClaimList() { - return persistentVolumeClaimList; - } - - @JsonProperty("PersistentVolumeClaimList") - public void setPersistentVolumeClaimList(PersistentVolumeClaimList persistentVolumeClaimList) { - this.persistentVolumeClaimList = persistentVolumeClaimList; - } - - @JsonProperty("PersistentVolumeList") - public PersistentVolumeList getPersistentVolumeList() { - return persistentVolumeList; - } - - @JsonProperty("PersistentVolumeList") - public void setPersistentVolumeList(PersistentVolumeList persistentVolumeList) { - this.persistentVolumeList = persistentVolumeList; - } - - @JsonProperty("PodExecOptions") - public PodExecOptions getPodExecOptions() { - return podExecOptions; - } - - @JsonProperty("PodExecOptions") - public void setPodExecOptions(PodExecOptions podExecOptions) { - this.podExecOptions = podExecOptions; - } - - @JsonProperty("PodList") - public PodList getPodList() { - return podList; - } - - @JsonProperty("PodList") - public void setPodList(PodList podList) { - this.podList = podList; - } - - @JsonProperty("PodTemplateList") - public PodTemplateList getPodTemplateList() { - return podTemplateList; - } - - @JsonProperty("PodTemplateList") - public void setPodTemplateList(PodTemplateList podTemplateList) { - this.podTemplateList = podTemplateList; - } - - @JsonProperty("Quantity") - public Quantity getQuantity() { - return quantity; - } - - @JsonProperty("Quantity") - public void setQuantity(Quantity quantity) { - this.quantity = quantity; - } - - @JsonProperty("ReplicationControllerList") - public ReplicationControllerList getReplicationControllerList() { - return replicationControllerList; - } - - @JsonProperty("ReplicationControllerList") - public void setReplicationControllerList(ReplicationControllerList replicationControllerList) { - this.replicationControllerList = replicationControllerList; - } - - @JsonProperty("ResourceQuota") - public ResourceQuota getResourceQuota() { - return resourceQuota; - } - - @JsonProperty("ResourceQuota") - public void setResourceQuota(ResourceQuota resourceQuota) { - this.resourceQuota = resourceQuota; - } - - @JsonProperty("ResourceQuotaList") - public ResourceQuotaList getResourceQuotaList() { - return resourceQuotaList; - } - - @JsonProperty("ResourceQuotaList") - public void setResourceQuotaList(ResourceQuotaList resourceQuotaList) { - this.resourceQuotaList = resourceQuotaList; - } - - @JsonProperty("RootPaths") - public RootPaths getRootPaths() { - return rootPaths; - } - - @JsonProperty("RootPaths") - public void setRootPaths(RootPaths rootPaths) { - this.rootPaths = rootPaths; - } - - @JsonProperty("Secret") - public Secret getSecret() { - return secret; - } - - @JsonProperty("Secret") - public void setSecret(Secret secret) { - this.secret = secret; - } - - @JsonProperty("SecretList") - public SecretList getSecretList() { - return secretList; - } - - @JsonProperty("SecretList") - public void setSecretList(SecretList secretList) { - this.secretList = secretList; - } - - @JsonProperty("ServiceAccount") - public ServiceAccount getServiceAccount() { - return serviceAccount; - } - - @JsonProperty("ServiceAccount") - public void setServiceAccount(ServiceAccount serviceAccount) { - this.serviceAccount = serviceAccount; - } - - @JsonProperty("ServiceAccountList") - public ServiceAccountList getServiceAccountList() { - return serviceAccountList; - } - - @JsonProperty("ServiceAccountList") - public void setServiceAccountList(ServiceAccountList serviceAccountList) { - this.serviceAccountList = serviceAccountList; - } - - @JsonProperty("ServiceList") - public ServiceList getServiceList() { - return serviceList; - } - - @JsonProperty("ServiceList") - public void setServiceList(ServiceList serviceList) { - this.serviceList = serviceList; - } - - @JsonProperty("Status") - public Status getStatus() { - return status; - } - - @JsonProperty("Status") - public void setStatus(Status status) { - this.status = status; - } - - @JsonProperty("Time") - public String getTime() { - return time; - } - - @JsonProperty("Time") - public void setTime(String time) { - this.time = time; - } - - @JsonProperty("Toleration") - public Toleration getToleration() { - return toleration; - } - - @JsonProperty("Toleration") - public void setToleration(Toleration toleration) { - this.toleration = toleration; - } - - @JsonProperty("TopologySelectorTerm") - public TopologySelectorTerm getTopologySelectorTerm() { - return topologySelectorTerm; - } - - @JsonProperty("TopologySelectorTerm") - public void setTopologySelectorTerm(TopologySelectorTerm topologySelectorTerm) { - this.topologySelectorTerm = topologySelectorTerm; - } - - @JsonProperty("TypeMeta") - public TypeMeta getTypeMeta() { - return typeMeta; - } - - @JsonProperty("TypeMeta") - public void setTypeMeta(TypeMeta typeMeta) { - this.typeMeta = typeMeta; - } - - @JsonProperty("UpdateOptions") - public UpdateOptions getUpdateOptions() { - return updateOptions; - } - - @JsonProperty("UpdateOptions") - public void setUpdateOptions(UpdateOptions updateOptions) { - this.updateOptions = updateOptions; - } - - @JsonProperty("WatchEvent") - public WatchEvent getWatchEvent() { - return watchEvent; - } - - @JsonProperty("WatchEvent") - public void setWatchEvent(WatchEvent watchEvent) { - this.watchEvent = watchEvent; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - - public void setAdditionalProperties(Map additionalProperties) { - this.additionalProperties = additionalProperties; - } - -} diff --git a/kubernetes-model-generator/kubernetes-model-core/src/generated/java/io/fabric8/kubernetes/api/model/version/Info.java b/kubernetes-model-generator/kubernetes-model-core/src/generated/java/io/fabric8/kubernetes/api/model/version/Info.java index b56f8c5382d..e71018f3a26 100644 --- a/kubernetes-model-generator/kubernetes-model-core/src/generated/java/io/fabric8/kubernetes/api/model/version/Info.java +++ b/kubernetes-model-generator/kubernetes-model-core/src/generated/java/io/fabric8/kubernetes/api/model/version/Info.java @@ -13,11 +13,7 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import io.fabric8.kubernetes.api.builder.Editable; import io.fabric8.kubernetes.api.model.KubernetesResource; -import io.fabric8.kubernetes.model.annotation.Group; -import io.fabric8.kubernetes.model.annotation.Version; import io.sundr.builder.annotations.Buildable; -import io.sundr.transform.annotations.TemplateTransformation; -import io.sundr.transform.annotations.TemplateTransformations; import lombok.EqualsAndHashCode; import lombok.ToString; import lombok.experimental.Accessors; @@ -42,11 +38,6 @@ "" }) @Buildable(editableEnabled = false, validationEnabled = false, generateBuilderPackage = false, lazyCollectionInitEnabled = false, builderPackage = "io.fabric8.kubernetes.api.builder") -@TemplateTransformations({ - @TemplateTransformation(value = "/manifest.vm", outputPath = "META-INF/services/io.fabric8.kubernetes.api.model.KubernetesResource", gather = true) -}) -@Version("v1") -@Group("") @Generated("jsonschema2pojo") public class Info implements Editable , KubernetesResource { diff --git a/kubernetes-model-generator/kubernetes-model-rbac/pom.xml b/kubernetes-model-generator/kubernetes-model-rbac/pom.xml index ab0206a75d5..9ee4eab152e 100644 --- a/kubernetes-model-generator/kubernetes-model-rbac/pom.xml +++ b/kubernetes-model-generator/kubernetes-model-rbac/pom.xml @@ -60,7 +60,7 @@ - ${project.basedir}/../openapi/schemas/kubernetes-1.30.0.json + ${openapi.schema.kubernetes-latest} io.fabric8.kubernetes.api.model.rbac diff --git a/kubernetes-model-generator/kubernetes-model-rbac/src/generated/java/io/fabric8/kubernetes/api/model/KubeSchema.java b/kubernetes-model-generator/kubernetes-model-rbac/src/generated/java/io/fabric8/kubernetes/api/model/KubeSchema.java deleted file mode 100644 index c5c091d2c97..00000000000 --- a/kubernetes-model-generator/kubernetes-model-rbac/src/generated/java/io/fabric8/kubernetes/api/model/KubeSchema.java +++ /dev/null @@ -1,160 +0,0 @@ - -package io.fabric8.kubernetes.api.model; - -import java.util.LinkedHashMap; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.fabric8.kubernetes.api.model.rbac.AggregationRule; -import io.fabric8.kubernetes.api.model.rbac.ClusterRole; -import io.fabric8.kubernetes.api.model.rbac.ClusterRoleBinding; -import io.fabric8.kubernetes.api.model.rbac.ClusterRoleBindingList; -import io.fabric8.kubernetes.api.model.rbac.ClusterRoleList; -import io.fabric8.kubernetes.api.model.rbac.Role; -import io.fabric8.kubernetes.api.model.rbac.RoleBinding; -import io.fabric8.kubernetes.api.model.rbac.RoleBindingList; -import io.fabric8.kubernetes.api.model.rbac.RoleList; - -@Generated("jsonschema2pojo") -public class KubeSchema { - - private AggregationRule aggregationRule; - private ClusterRole clusterRole; - private ClusterRoleBinding clusterRoleBinding; - private ClusterRoleBindingList clusterRoleBindingList; - private ClusterRoleList clusterRoleList; - private Role role; - private RoleBinding roleBinding; - private RoleBindingList roleBindingList; - private RoleList roleList; - @JsonIgnore - private Map additionalProperties = new LinkedHashMap(); - - /** - * No args constructor for use in serialization - * - */ - public KubeSchema() { - } - - public KubeSchema(AggregationRule aggregationRule, ClusterRole clusterRole, ClusterRoleBinding clusterRoleBinding, ClusterRoleBindingList clusterRoleBindingList, ClusterRoleList clusterRoleList, Role role, RoleBinding roleBinding, RoleBindingList roleBindingList, RoleList roleList) { - super(); - this.aggregationRule = aggregationRule; - this.clusterRole = clusterRole; - this.clusterRoleBinding = clusterRoleBinding; - this.clusterRoleBindingList = clusterRoleBindingList; - this.clusterRoleList = clusterRoleList; - this.role = role; - this.roleBinding = roleBinding; - this.roleBindingList = roleBindingList; - this.roleList = roleList; - } - - @JsonProperty("AggregationRule") - public AggregationRule getAggregationRule() { - return aggregationRule; - } - - @JsonProperty("AggregationRule") - public void setAggregationRule(AggregationRule aggregationRule) { - this.aggregationRule = aggregationRule; - } - - @JsonProperty("ClusterRole") - public ClusterRole getClusterRole() { - return clusterRole; - } - - @JsonProperty("ClusterRole") - public void setClusterRole(ClusterRole clusterRole) { - this.clusterRole = clusterRole; - } - - @JsonProperty("ClusterRoleBinding") - public ClusterRoleBinding getClusterRoleBinding() { - return clusterRoleBinding; - } - - @JsonProperty("ClusterRoleBinding") - public void setClusterRoleBinding(ClusterRoleBinding clusterRoleBinding) { - this.clusterRoleBinding = clusterRoleBinding; - } - - @JsonProperty("ClusterRoleBindingList") - public ClusterRoleBindingList getClusterRoleBindingList() { - return clusterRoleBindingList; - } - - @JsonProperty("ClusterRoleBindingList") - public void setClusterRoleBindingList(ClusterRoleBindingList clusterRoleBindingList) { - this.clusterRoleBindingList = clusterRoleBindingList; - } - - @JsonProperty("ClusterRoleList") - public ClusterRoleList getClusterRoleList() { - return clusterRoleList; - } - - @JsonProperty("ClusterRoleList") - public void setClusterRoleList(ClusterRoleList clusterRoleList) { - this.clusterRoleList = clusterRoleList; - } - - @JsonProperty("Role") - public Role getRole() { - return role; - } - - @JsonProperty("Role") - public void setRole(Role role) { - this.role = role; - } - - @JsonProperty("RoleBinding") - public RoleBinding getRoleBinding() { - return roleBinding; - } - - @JsonProperty("RoleBinding") - public void setRoleBinding(RoleBinding roleBinding) { - this.roleBinding = roleBinding; - } - - @JsonProperty("RoleBindingList") - public RoleBindingList getRoleBindingList() { - return roleBindingList; - } - - @JsonProperty("RoleBindingList") - public void setRoleBindingList(RoleBindingList roleBindingList) { - this.roleBindingList = roleBindingList; - } - - @JsonProperty("RoleList") - public RoleList getRoleList() { - return roleList; - } - - @JsonProperty("RoleList") - public void setRoleList(RoleList roleList) { - this.roleList = roleList; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - - public void setAdditionalProperties(Map additionalProperties) { - this.additionalProperties = additionalProperties; - } - -} diff --git a/kubernetes-model-generator/kubernetes-model-rbac/src/generated/java/io/fabric8/kubernetes/api/model/ValidationSchema.java b/kubernetes-model-generator/kubernetes-model-rbac/src/generated/java/io/fabric8/kubernetes/api/model/ValidationSchema.java deleted file mode 100644 index e6c10dd946f..00000000000 --- a/kubernetes-model-generator/kubernetes-model-rbac/src/generated/java/io/fabric8/kubernetes/api/model/ValidationSchema.java +++ /dev/null @@ -1,160 +0,0 @@ - -package io.fabric8.kubernetes.api.model; - -import java.util.LinkedHashMap; -import java.util.Map; -import javax.annotation.Generated; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.fabric8.kubernetes.api.model.rbac.AggregationRule; -import io.fabric8.kubernetes.api.model.rbac.ClusterRole; -import io.fabric8.kubernetes.api.model.rbac.ClusterRoleBinding; -import io.fabric8.kubernetes.api.model.rbac.ClusterRoleBindingList; -import io.fabric8.kubernetes.api.model.rbac.ClusterRoleList; -import io.fabric8.kubernetes.api.model.rbac.Role; -import io.fabric8.kubernetes.api.model.rbac.RoleBinding; -import io.fabric8.kubernetes.api.model.rbac.RoleBindingList; -import io.fabric8.kubernetes.api.model.rbac.RoleList; - -@Generated("jsonschema2pojo") -public class ValidationSchema { - - private AggregationRule aggregationRule; - private ClusterRole clusterRole; - private ClusterRoleBinding clusterRoleBinding; - private ClusterRoleBindingList clusterRoleBindingList; - private ClusterRoleList clusterRoleList; - private Role role; - private RoleBinding roleBinding; - private RoleBindingList roleBindingList; - private RoleList roleList; - @JsonIgnore - private Map additionalProperties = new LinkedHashMap(); - - /** - * No args constructor for use in serialization - * - */ - public ValidationSchema() { - } - - public ValidationSchema(AggregationRule aggregationRule, ClusterRole clusterRole, ClusterRoleBinding clusterRoleBinding, ClusterRoleBindingList clusterRoleBindingList, ClusterRoleList clusterRoleList, Role role, RoleBinding roleBinding, RoleBindingList roleBindingList, RoleList roleList) { - super(); - this.aggregationRule = aggregationRule; - this.clusterRole = clusterRole; - this.clusterRoleBinding = clusterRoleBinding; - this.clusterRoleBindingList = clusterRoleBindingList; - this.clusterRoleList = clusterRoleList; - this.role = role; - this.roleBinding = roleBinding; - this.roleBindingList = roleBindingList; - this.roleList = roleList; - } - - @JsonProperty("AggregationRule") - public AggregationRule getAggregationRule() { - return aggregationRule; - } - - @JsonProperty("AggregationRule") - public void setAggregationRule(AggregationRule aggregationRule) { - this.aggregationRule = aggregationRule; - } - - @JsonProperty("ClusterRole") - public ClusterRole getClusterRole() { - return clusterRole; - } - - @JsonProperty("ClusterRole") - public void setClusterRole(ClusterRole clusterRole) { - this.clusterRole = clusterRole; - } - - @JsonProperty("ClusterRoleBinding") - public ClusterRoleBinding getClusterRoleBinding() { - return clusterRoleBinding; - } - - @JsonProperty("ClusterRoleBinding") - public void setClusterRoleBinding(ClusterRoleBinding clusterRoleBinding) { - this.clusterRoleBinding = clusterRoleBinding; - } - - @JsonProperty("ClusterRoleBindingList") - public ClusterRoleBindingList getClusterRoleBindingList() { - return clusterRoleBindingList; - } - - @JsonProperty("ClusterRoleBindingList") - public void setClusterRoleBindingList(ClusterRoleBindingList clusterRoleBindingList) { - this.clusterRoleBindingList = clusterRoleBindingList; - } - - @JsonProperty("ClusterRoleList") - public ClusterRoleList getClusterRoleList() { - return clusterRoleList; - } - - @JsonProperty("ClusterRoleList") - public void setClusterRoleList(ClusterRoleList clusterRoleList) { - this.clusterRoleList = clusterRoleList; - } - - @JsonProperty("Role") - public Role getRole() { - return role; - } - - @JsonProperty("Role") - public void setRole(Role role) { - this.role = role; - } - - @JsonProperty("RoleBinding") - public RoleBinding getRoleBinding() { - return roleBinding; - } - - @JsonProperty("RoleBinding") - public void setRoleBinding(RoleBinding roleBinding) { - this.roleBinding = roleBinding; - } - - @JsonProperty("RoleBindingList") - public RoleBindingList getRoleBindingList() { - return roleBindingList; - } - - @JsonProperty("RoleBindingList") - public void setRoleBindingList(RoleBindingList roleBindingList) { - this.roleBindingList = roleBindingList; - } - - @JsonProperty("RoleList") - public RoleList getRoleList() { - return roleList; - } - - @JsonProperty("RoleList") - public void setRoleList(RoleList roleList) { - this.roleList = roleList; - } - - @JsonAnyGetter - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - @JsonAnySetter - public void setAdditionalProperty(String name, Object value) { - this.additionalProperties.put(name, value); - } - - public void setAdditionalProperties(Map additionalProperties) { - this.additionalProperties = additionalProperties; - } - -} diff --git a/kubernetes-model-generator/openapi/generator/main.go b/kubernetes-model-generator/openapi/generator/main.go index be1447024d1..1d448a10cf9 100644 --- a/kubernetes-model-generator/openapi/generator/main.go +++ b/kubernetes-model-generator/openapi/generator/main.go @@ -36,17 +36,24 @@ import ( "time" ) +type ApiVersion struct { + List bool + GroupVersion string + Plural string + Namespaced bool +} + type Schema struct { Types []reflect.Type Name string - Paths map[reflect.Type]string + Paths map[reflect.Type]ApiVersion } func NewTypeSchema(types []reflect.Type, name string) Schema { - return Schema{types, name, make(map[reflect.Type]string)} + return Schema{types, name, make(map[reflect.Type]ApiVersion)} } -func NewPathSchema(paths map[reflect.Type]string, name string) Schema { +func NewPathSchema(paths map[reflect.Type]ApiVersion, name string) Schema { schema := Schema{make([]reflect.Type, 0), name, paths} for t := range paths { schema.Types = append(schema.Types, t) @@ -81,10 +88,11 @@ func main() { reflect.TypeOf(metaV1.GroupKind{}), reflect.TypeOf(metaV1.TypeMeta{}), // TODO: can be removed, it's an inline type not directly used }, "api-machinery-extra"), - NewTypeSchema([]reflect.Type{ - reflect.TypeOf(admissionV1.AdmissionReview{}), - reflect.TypeOf(admissionV1Beta1.AdmissionReview{}), - reflect.TypeOf(admissionregistrationV1.Rule{}), + // Webhooks, add fake paths so that Maven OpenAPI plugin adds deserialization type information + NewPathSchema(map[reflect.Type]ApiVersion{ + reflect.TypeOf(admissionV1.AdmissionReview{}): {false, admissionV1.SchemeGroupVersion.String(), "admissionreviews", false}, + reflect.TypeOf(admissionV1Beta1.AdmissionReview{}): {false, admissionV1Beta1.SchemeGroupVersion.String(), "admissionreviews", false}, + reflect.TypeOf(admissionregistrationV1.Rule{}): {false, admissionregistrationV1.SchemeGroupVersion.String(), "rules", false}, }, "admission-registration"), NewTypeSchema([]reflect.Type{ reflect.TypeOf(apiextensionsV1.ConversionReview{}), @@ -98,30 +106,30 @@ func main() { reflect.TypeOf(apiextensionsV1Beta1.SelectableField{}), reflect.TypeOf(apiextensionsV1Beta1.ValidationRule{}), }, "apiextensions"), - NewPathSchema(map[reflect.Type]string{ - reflect.TypeOf(gatewayApiV1.GatewayList{}): "/apis/" + gatewayApiV1.GroupName + "/v1/namespaces/{namespace}/gateways", - reflect.TypeOf(gatewayApiV1.Gateway{}): "/apis/" + gatewayApiV1.GroupName + "/v1/namespaces/{namespace}/gateways/{name}", - reflect.TypeOf(gatewayApiV1.GatewayClassList{}): "/apis/" + gatewayApiV1.GroupName + "/v1/gatewayclasses", - reflect.TypeOf(gatewayApiV1.GatewayClass{}): "/apis/" + gatewayApiV1.GroupName + "/v1/gatewayclasses/{name}", - reflect.TypeOf(gatewayApiV1.HTTPRouteList{}): "/apis/" + gatewayApiV1.GroupName + "/v1/namespaces/{namespace}/httproutes", - reflect.TypeOf(gatewayApiV1.HTTPRoute{}): "/apis/" + gatewayApiV1.GroupName + "/v1/namespaces/{namespace}/httproutes/{name}", - reflect.TypeOf(gatewayApiV1Beta1.GatewayList{}): "/apis/" + gatewayApiV1.GroupName + "/v1beta1/namespaces/{namespace}/gateways", - reflect.TypeOf(gatewayApiV1Beta1.Gateway{}): "/apis/" + gatewayApiV1.GroupName + "/v1beta1/namespaces/{namespace}/gateways/{name}", - reflect.TypeOf(gatewayApiV1Beta1.GatewayClassList{}): "/apis/" + gatewayApiV1.GroupName + "/v1beta1/gatewayclasses", - reflect.TypeOf(gatewayApiV1Beta1.GatewayClass{}): "/apis/" + gatewayApiV1.GroupName + "/v1beta1/gatewayclasses/{name}", - reflect.TypeOf(gatewayApiV1Beta1.HTTPRouteList{}): "/apis/" + gatewayApiV1.GroupName + "/v1beta1/namespaces/{namespace}/httproutes", - reflect.TypeOf(gatewayApiV1Beta1.HTTPRoute{}): "/apis/" + gatewayApiV1.GroupName + "/v1beta1/namespaces/{namespace}/httproutes/{name}", - reflect.TypeOf(gatewayApiV1Beta1.ReferenceGrantList{}): "/apis/" + gatewayApiV1.GroupName + "/v1beta1/namespaces/{namespace}/referencegrants", - reflect.TypeOf(gatewayApiV1Beta1.ReferenceGrant{}): "/apis/" + gatewayApiV1.GroupName + "/v1beta1/namespaces/{namespace}/referencegrants/{name}", + NewPathSchema(map[reflect.Type]ApiVersion{ + reflect.TypeOf(gatewayApiV1.GatewayList{}): {true, gatewayApiV1.GroupVersion.String(), "gateways", true}, + reflect.TypeOf(gatewayApiV1.Gateway{}): {false, gatewayApiV1.GroupVersion.String(), "gateways", true}, + reflect.TypeOf(gatewayApiV1.GatewayClassList{}): {true, gatewayApiV1.GroupVersion.String(), "gatewayclasses", false}, + reflect.TypeOf(gatewayApiV1.GatewayClass{}): {false, gatewayApiV1.GroupVersion.String(), "gatewayclasses", false}, + reflect.TypeOf(gatewayApiV1.HTTPRouteList{}): {true, gatewayApiV1.GroupVersion.String(), "httproutes", true}, + reflect.TypeOf(gatewayApiV1.HTTPRoute{}): {false, gatewayApiV1.GroupVersion.String(), "httproutes", true}, + reflect.TypeOf(gatewayApiV1Beta1.GatewayList{}): {true, gatewayApiV1Beta1.GroupVersion.String(), "gateways", true}, + reflect.TypeOf(gatewayApiV1Beta1.Gateway{}): {false, gatewayApiV1Beta1.GroupVersion.String(), "gateways", true}, + reflect.TypeOf(gatewayApiV1Beta1.GatewayClassList{}): {true, gatewayApiV1Beta1.GroupVersion.String(), "gatewayclasses", false}, + reflect.TypeOf(gatewayApiV1Beta1.GatewayClass{}): {false, gatewayApiV1Beta1.GroupVersion.String(), "gatewayclasses", false}, + reflect.TypeOf(gatewayApiV1Beta1.HTTPRouteList{}): {true, gatewayApiV1Beta1.GroupVersion.String(), "httproutes", true}, + reflect.TypeOf(gatewayApiV1Beta1.HTTPRoute{}): {false, gatewayApiV1Beta1.GroupVersion.String(), "httproutes", true}, + reflect.TypeOf(gatewayApiV1Beta1.ReferenceGrantList{}): {true, gatewayApiV1Beta1.GroupVersion.String(), "referencegrants", true}, + reflect.TypeOf(gatewayApiV1Beta1.ReferenceGrant{}): {false, gatewayApiV1Beta1.GroupVersion.String(), "referencegrants", true}, }, "gateway-api"), NewTypeSchema([]reflect.Type{ reflect.TypeOf(kustomize.Kustomization{}), }, "kustomize"), - NewPathSchema(map[reflect.Type]string{ - reflect.TypeOf(metricsV1Beta1.NodeMetricsList{}): "/apis/" + metricsV1Beta1.SchemeGroupVersion.String() + "/nodes", - reflect.TypeOf(metricsV1Beta1.NodeMetrics{}): "/apis/" + metricsV1Beta1.SchemeGroupVersion.String() + "/nodes/{name}", - reflect.TypeOf(metricsV1Beta1.PodMetricsList{}): "/apis/" + metricsV1Beta1.SchemeGroupVersion.String() + "/namespaces/{namespace}/pods", - reflect.TypeOf(metricsV1Beta1.PodMetrics{}): "/apis/" + metricsV1Beta1.SchemeGroupVersion.String() + "/namespaces/{namespace}/pods/{name}", + NewPathSchema(map[reflect.Type]ApiVersion{ + reflect.TypeOf(metricsV1Beta1.NodeMetricsList{}): {true, metricsV1Beta1.SchemeGroupVersion.String(), "nodes", false}, + reflect.TypeOf(metricsV1Beta1.NodeMetrics{}): {false, metricsV1Beta1.SchemeGroupVersion.String(), "nodes", false}, + reflect.TypeOf(metricsV1Beta1.PodMetricsList{}): {true, metricsV1Beta1.SchemeGroupVersion.String(), "pods", true}, + reflect.TypeOf(metricsV1Beta1.PodMetrics{}): {false, metricsV1Beta1.SchemeGroupVersion.String(), "pods", true}, }, "metrics"), } generate(schemas, targetDirectory) @@ -289,22 +297,31 @@ func openApiKind(t reflect.Type) *openapi3.SchemaRef { } // Create fake paths so that the OpenAPI generator can compute group, version, plural, scope (namespaced/cluster) -func extractPaths(paths map[reflect.Type]string) *openapi3.Paths { +func extractPaths(apiVersions map[reflect.Type]ApiVersion) *openapi3.Paths { oApiPaths := openapi3.NewPaths() - for t, path := range paths { + for t, apiVersion := range apiVersions { pathItem := &openapi3.PathItem{} pathItem.Get = openapi3.NewOperation() pathItem.Get.AddResponse(200, openapi3.NewResponse().WithDescription("OK").WithJSONSchemaRef(&openapi3.SchemaRef{ Ref: "#/components/schemas/" + getKey(t), })) - if strings.Contains(path, "{namespace}") { + pathItem.Get.Extensions = make(map[string]interface{}) + pathItem.Get.Extensions["x-kubernetes-group-version-kind"] = map[string]interface{}{ + "group": strings.Split(apiVersion.GroupVersion, "/")[0], + "version": strings.Split(apiVersion.GroupVersion, "/")[1], + "kind": t.Name(), + } + path := "/apis/" + apiVersion.GroupVersion + if apiVersion.Namespaced { + path += "/namespaces/{namespace}" pathItem.Get.AddParameter(openapi3.NewPathParameter("namespace")) } - if strings.Contains(path, "{name}") { + path += "/" + apiVersion.Plural + if !apiVersion.List { + path += "/{name}" pathItem.Get.AddParameter(openapi3.NewPathParameter("name")) } oApiPaths.Set(path, pathItem) - } return oApiPaths } diff --git a/kubernetes-model-generator/openapi/maven-plugin/src/main/java/io/fabric8/kubernetes/schema/generator/GeneratorSettings.java b/kubernetes-model-generator/openapi/maven-plugin/src/main/java/io/fabric8/kubernetes/schema/generator/GeneratorSettings.java index fdb7a203a77..151a7daffc4 100644 --- a/kubernetes-model-generator/openapi/maven-plugin/src/main/java/io/fabric8/kubernetes/schema/generator/GeneratorSettings.java +++ b/kubernetes-model-generator/openapi/maven-plugin/src/main/java/io/fabric8/kubernetes/schema/generator/GeneratorSettings.java @@ -188,14 +188,21 @@ private static Map computeApiVersions(OpenAPI openAPI) { || operation.getResponses().get("200").getContent().get(APPLICATION_JSON) == null) { continue; } - final String path = apiPath.getKey(); - final String[] segments = path.split("/"); final ApiVersion.ApiVersionBuilder apiVersionBuilder = ApiVersion.builder(); - if (path.startsWith("/apis/") && segments.length > 3) { - apiVersionBuilder.group(segments[2]).version(segments[3]); - } else { - apiVersionBuilder.group("").version("v1"); + // final String path = apiPath.getKey(); + // final String[] segments = path.split("/"); + // if (path.startsWith("/apis/") && segments.length > 3) { + // apiVersionBuilder.group(segments[2]).version(segments[3]); + // } else { + // apiVersionBuilder.group("").version("v1"); + // } + if (operation.getExtensions() == null || operation.getExtensions().get("x-kubernetes-group-version-kind") == null) { + continue; } + final Map groupVersionKind = (Map) operation.getExtensions() + .get("x-kubernetes-group-version-kind"); + apiVersionBuilder.group(groupVersionKind.get("group")); + apiVersionBuilder.version(groupVersionKind.get("version")); apiVersionBuilder.namespaced(isNamespaced(operation)); final String ref = operation.getResponses().get("200").getContent().get(APPLICATION_JSON) .getSchema().get$ref(); @@ -203,12 +210,12 @@ private static Map computeApiVersions(OpenAPI openAPI) { apiVersions.put(ref.replaceFirst("#/components/schemas/", ""), apiVersionBuilder.build()); } } - // api machinery + core components always tagged as core v1 - // TODO: see if we want to omit the addition of group and version altogether in the future - openAPI.getComponents().getSchemas().entrySet().stream() - .filter(GeneratorSettings::isApplicableApiMachineryOrCoreComponent) - .forEach(e -> apiVersions.putIfAbsent(e.getKey(), ApiVersion.builder().group("").version("v1").build())); } + // api machinery + core components always tagged as core v1 + // TODO: see if we want to omit the addition of group and version altogether in the future + openAPI.getComponents().getSchemas().entrySet().stream() + .filter(GeneratorSettings::isApplicableApiMachineryOrCoreComponent) + .forEach(e -> apiVersions.putIfAbsent(e.getKey(), ApiVersion.builder().group("").version("v1").build())); return apiVersions; } diff --git a/kubernetes-model-generator/openapi/schemas/admission-registration.json b/kubernetes-model-generator/openapi/schemas/admission-registration.json index 461c2d3c951..22ca693ddb0 100644 --- a/kubernetes-model-generator/openapi/schemas/admission-registration.json +++ b/kubernetes-model-generator/openapi/schemas/admission-registration.json @@ -1 +1 @@ -{"components":{"schemas":{"io.k8s.api.admission.v1.AdmissionRequest":{"properties":{"dryRun":{"type":"boolean"},"kind":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionKind"},"name":{"type":"string"},"namespace":{"type":"string"},"object":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.runtime.RawExtension"},"oldObject":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.runtime.RawExtension"},"operation":{"type":"string"},"options":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.runtime.RawExtension"},"requestKind":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionKind"},"requestResource":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionResource"},"requestSubResource":{"type":"string"},"resource":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionResource"},"subResource":{"type":"string"},"uid":{"type":"string"},"userInfo":{"$ref":"#/components/schemas/io.k8s.api.authentication.v1.UserInfo"}},"type":"object"},"io.k8s.api.admission.v1.AdmissionResponse":{"properties":{"allowed":{"type":"boolean"},"auditAnnotations":{"additionalProperties":{"type":"string"},"type":"object"},"patch":{"type":"string"},"patchType":{"type":"string"},"status":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status"},"uid":{"type":"string"},"warnings":{"items":{"type":"string"},"type":"array"}},"type":"object"},"io.k8s.api.admission.v1.AdmissionReview":{"properties":{"apiVersion":{"type":"string"},"kind":{"type":"string"},"request":{"$ref":"#/components/schemas/io.k8s.api.admission.v1.AdmissionRequest"},"response":{"$ref":"#/components/schemas/io.k8s.api.admission.v1.AdmissionResponse"}},"type":"object"},"io.k8s.api.admission.v1beta1.AdmissionRequest":{"properties":{"dryRun":{"type":"boolean"},"kind":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionKind"},"name":{"type":"string"},"namespace":{"type":"string"},"object":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.runtime.RawExtension"},"oldObject":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.runtime.RawExtension"},"operation":{"type":"string"},"options":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.runtime.RawExtension"},"requestKind":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionKind"},"requestResource":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionResource"},"requestSubResource":{"type":"string"},"resource":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionResource"},"subResource":{"type":"string"},"uid":{"type":"string"},"userInfo":{"$ref":"#/components/schemas/io.k8s.api.authentication.v1.UserInfo"}},"type":"object"},"io.k8s.api.admission.v1beta1.AdmissionResponse":{"properties":{"allowed":{"type":"boolean"},"auditAnnotations":{"additionalProperties":{"type":"string"},"type":"object"},"patch":{"type":"string"},"patchType":{"type":"string"},"status":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status"},"uid":{"type":"string"},"warnings":{"items":{"type":"string"},"type":"array"}},"type":"object"},"io.k8s.api.admission.v1beta1.AdmissionReview":{"properties":{"apiVersion":{"type":"string"},"kind":{"type":"string"},"request":{"$ref":"#/components/schemas/io.k8s.api.admission.v1beta1.AdmissionRequest"},"response":{"$ref":"#/components/schemas/io.k8s.api.admission.v1beta1.AdmissionResponse"}},"type":"object"},"io.k8s.api.admissionregistration.v1.Rule":{"properties":{"apiGroups":{"items":{"type":"string"},"type":"array"},"apiVersions":{"items":{"type":"string"},"type":"array"},"resources":{"items":{"type":"string"},"type":"array"},"scope":{"type":"string"}},"type":"object"},"io.k8s.api.authentication.v1.UserInfo":{"properties":{"extra":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},"groups":{"items":{"type":"string"},"type":"array"},"uid":{"type":"string"},"username":{"type":"string"}},"type":"object"},"io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionKind":{"properties":{"group":{"type":"string"},"kind":{"type":"string"},"version":{"type":"string"}},"type":"object"},"io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionResource":{"properties":{"group":{"type":"string"},"resource":{"type":"string"},"version":{"type":"string"}},"type":"object"},"io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta":{"properties":{"continue":{"type":"string"},"remainingItemCount":{"format":"int64","type":"integer"},"resourceVersion":{"type":"string"},"selfLink":{"type":"string"}},"type":"object"},"io.k8s.apimachinery.pkg.apis.meta.v1.Status":{"properties":{"apiVersion":{"type":"string"},"code":{"format":"int32","type":"integer"},"details":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails"},"kind":{"type":"string"},"message":{"type":"string"},"metadata":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"},"reason":{"type":"string"},"status":{"type":"string"}},"type":"object"},"io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause":{"properties":{"field":{"type":"string"},"message":{"type":"string"},"reason":{"type":"string"}},"type":"object"},"io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails":{"properties":{"causes":{"items":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause"},"type":"array"},"group":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"},"retryAfterSeconds":{"format":"int32","type":"integer"},"uid":{"type":"string"}},"type":"object"},"io.k8s.apimachinery.pkg.runtime.RawExtension":{"properties":{"-":{"type":"object"}},"type":"object"}}},"info":{"title":"admission-registration","version":"0.0.0"},"openapi":"3.0.0","paths":{}} \ No newline at end of file +{"components":{"schemas":{"io.k8s.api.admission.v1.AdmissionRequest":{"properties":{"dryRun":{"type":"boolean"},"kind":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionKind"},"name":{"type":"string"},"namespace":{"type":"string"},"object":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.runtime.RawExtension"},"oldObject":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.runtime.RawExtension"},"operation":{"type":"string"},"options":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.runtime.RawExtension"},"requestKind":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionKind"},"requestResource":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionResource"},"requestSubResource":{"type":"string"},"resource":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionResource"},"subResource":{"type":"string"},"uid":{"type":"string"},"userInfo":{"$ref":"#/components/schemas/io.k8s.api.authentication.v1.UserInfo"}},"type":"object"},"io.k8s.api.admission.v1.AdmissionResponse":{"properties":{"allowed":{"type":"boolean"},"auditAnnotations":{"additionalProperties":{"type":"string"},"type":"object"},"patch":{"type":"string"},"patchType":{"type":"string"},"status":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status"},"uid":{"type":"string"},"warnings":{"items":{"type":"string"},"type":"array"}},"type":"object"},"io.k8s.api.admission.v1.AdmissionReview":{"properties":{"apiVersion":{"type":"string"},"kind":{"type":"string"},"request":{"$ref":"#/components/schemas/io.k8s.api.admission.v1.AdmissionRequest"},"response":{"$ref":"#/components/schemas/io.k8s.api.admission.v1.AdmissionResponse"}},"type":"object"},"io.k8s.api.admission.v1beta1.AdmissionRequest":{"properties":{"dryRun":{"type":"boolean"},"kind":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionKind"},"name":{"type":"string"},"namespace":{"type":"string"},"object":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.runtime.RawExtension"},"oldObject":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.runtime.RawExtension"},"operation":{"type":"string"},"options":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.runtime.RawExtension"},"requestKind":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionKind"},"requestResource":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionResource"},"requestSubResource":{"type":"string"},"resource":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionResource"},"subResource":{"type":"string"},"uid":{"type":"string"},"userInfo":{"$ref":"#/components/schemas/io.k8s.api.authentication.v1.UserInfo"}},"type":"object"},"io.k8s.api.admission.v1beta1.AdmissionResponse":{"properties":{"allowed":{"type":"boolean"},"auditAnnotations":{"additionalProperties":{"type":"string"},"type":"object"},"patch":{"type":"string"},"patchType":{"type":"string"},"status":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status"},"uid":{"type":"string"},"warnings":{"items":{"type":"string"},"type":"array"}},"type":"object"},"io.k8s.api.admission.v1beta1.AdmissionReview":{"properties":{"apiVersion":{"type":"string"},"kind":{"type":"string"},"request":{"$ref":"#/components/schemas/io.k8s.api.admission.v1beta1.AdmissionRequest"},"response":{"$ref":"#/components/schemas/io.k8s.api.admission.v1beta1.AdmissionResponse"}},"type":"object"},"io.k8s.api.admissionregistration.v1.Rule":{"properties":{"apiGroups":{"items":{"type":"string"},"type":"array"},"apiVersions":{"items":{"type":"string"},"type":"array"},"resources":{"items":{"type":"string"},"type":"array"},"scope":{"type":"string"}},"type":"object"},"io.k8s.api.authentication.v1.UserInfo":{"properties":{"extra":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},"groups":{"items":{"type":"string"},"type":"array"},"uid":{"type":"string"},"username":{"type":"string"}},"type":"object"},"io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionKind":{"properties":{"group":{"type":"string"},"kind":{"type":"string"},"version":{"type":"string"}},"type":"object"},"io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionResource":{"properties":{"group":{"type":"string"},"resource":{"type":"string"},"version":{"type":"string"}},"type":"object"},"io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta":{"properties":{"continue":{"type":"string"},"remainingItemCount":{"format":"int64","type":"integer"},"resourceVersion":{"type":"string"},"selfLink":{"type":"string"}},"type":"object"},"io.k8s.apimachinery.pkg.apis.meta.v1.Status":{"properties":{"apiVersion":{"type":"string"},"code":{"format":"int32","type":"integer"},"details":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails"},"kind":{"type":"string"},"message":{"type":"string"},"metadata":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"},"reason":{"type":"string"},"status":{"type":"string"}},"type":"object"},"io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause":{"properties":{"field":{"type":"string"},"message":{"type":"string"},"reason":{"type":"string"}},"type":"object"},"io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails":{"properties":{"causes":{"items":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause"},"type":"array"},"group":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"},"retryAfterSeconds":{"format":"int32","type":"integer"},"uid":{"type":"string"}},"type":"object"},"io.k8s.apimachinery.pkg.runtime.RawExtension":{"properties":{"-":{"type":"object"}},"type":"object"}}},"info":{"title":"admission-registration","version":"0.0.0"},"openapi":"3.0.0","paths":{"/apis/admission.k8s.io/v1/admissionreviews/{name}":{"get":{"parameters":[{"in":"path","name":"name","required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/io.k8s.api.admission.v1.AdmissionReview"}}},"description":"OK"},"default":{"description":""}},"x-kubernetes-group-version-kind":{"group":"admission.k8s.io","kind":"AdmissionReview","version":"v1"}}},"/apis/admission.k8s.io/v1beta1/admissionreviews/{name}":{"get":{"parameters":[{"in":"path","name":"name","required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/io.k8s.api.admission.v1beta1.AdmissionReview"}}},"description":"OK"},"default":{"description":""}},"x-kubernetes-group-version-kind":{"group":"admission.k8s.io","kind":"AdmissionReview","version":"v1beta1"}}},"/apis/admissionregistration.k8s.io/v1/rules/{name}":{"get":{"parameters":[{"in":"path","name":"name","required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/io.k8s.api.admissionregistration.v1.Rule"}}},"description":"OK"},"default":{"description":""}},"x-kubernetes-group-version-kind":{"group":"admissionregistration.k8s.io","kind":"Rule","version":"v1"}}}}} \ No newline at end of file diff --git a/kubernetes-model-generator/openapi/schemas/gateway-api.json b/kubernetes-model-generator/openapi/schemas/gateway-api.json index 7af9c9b242e..c5a695815a9 100644 --- a/kubernetes-model-generator/openapi/schemas/gateway-api.json +++ b/kubernetes-model-generator/openapi/schemas/gateway-api.json @@ -1 +1 @@ -{"components":{"schemas":{"io.k8s.apimachinery.pkg.apis.meta.v1.Condition":{"properties":{"lastTransitionTime":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time"},"message":{"type":"string"},"observedGeneration":{"format":"int64","type":"integer"},"reason":{"type":"string"},"status":{"type":"string"},"type":{"type":"string"}},"type":"object"},"io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1":{"properties":{"-":{"type":"string"}},"type":"object"},"io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector":{"properties":{"matchExpressions":{"items":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement"},"type":"array"},"matchLabels":{"additionalProperties":{"type":"string"},"type":"object"}},"type":"object"},"io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement":{"properties":{"key":{"type":"string"},"operator":{"type":"string"},"values":{"items":{"type":"string"},"type":"array"}},"type":"object"},"io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta":{"properties":{"continue":{"type":"string"},"remainingItemCount":{"format":"int64","type":"integer"},"resourceVersion":{"type":"string"},"selfLink":{"type":"string"}},"type":"object"},"io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry":{"properties":{"apiVersion":{"type":"string"},"fieldsType":{"type":"string"},"fieldsV1":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1"},"manager":{"type":"string"},"operation":{"type":"string"},"subresource":{"type":"string"},"time":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time"}},"type":"object"},"io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta":{"properties":{"annotations":{"additionalProperties":{"type":"string"},"type":"object"},"creationTimestamp":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time"},"deletionGracePeriodSeconds":{"format":"int64","type":"integer"},"deletionTimestamp":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time"},"finalizers":{"items":{"type":"string"},"type":"array"},"generateName":{"type":"string"},"generation":{"format":"int64","type":"integer"},"labels":{"additionalProperties":{"type":"string"},"type":"object"},"managedFields":{"items":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry"},"type":"array"},"name":{"type":"string"},"namespace":{"type":"string"},"ownerReferences":{"items":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference"},"type":"array"},"resourceVersion":{"type":"string"},"selfLink":{"type":"string"},"uid":{"type":"string"}},"type":"object"},"io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference":{"properties":{"apiVersion":{"type":"string"},"blockOwnerDeletion":{"type":"boolean"},"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"type":"object"},"io.k8s.apimachinery.pkg.apis.meta.v1.Time":{"properties":{"Time":{"type":"string"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.AllowedRoutes":{"properties":{"kinds":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.RouteGroupKind"},"type":"array"},"namespaces":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.RouteNamespaces"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.BackendObjectReference":{"properties":{"group":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"port":{"format":"int32","type":"integer"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.CookieConfig":{"properties":{"lifetimeType":{"type":"string"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.FrontendTLSValidation":{"properties":{"caCertificateRefs":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.ObjectReference"},"type":"array"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.Gateway":{"properties":{"apiVersion":{"type":"string"},"kind":{"type":"string"},"metadata":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"},"spec":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.GatewaySpec"},"status":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.GatewayStatus"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.GatewayAddress":{"properties":{"type":{"type":"string"},"value":{"type":"string"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.GatewayClass":{"properties":{"apiVersion":{"type":"string"},"kind":{"type":"string"},"metadata":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"},"spec":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.GatewayClassSpec"},"status":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.GatewayClassStatus"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.GatewayClassList":{"properties":{"apiVersion":{"type":"string"},"items":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.GatewayClass"},"type":"array"},"kind":{"type":"string"},"metadata":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.GatewayClassSpec":{"properties":{"controllerName":{"type":"string"},"description":{"type":"string"},"parametersRef":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.ParametersReference"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.GatewayClassStatus":{"properties":{"conditions":{"items":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Condition"},"type":"array"},"supportedFeatures":{"items":{"type":"string"},"type":"array"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.GatewayInfrastructure":{"properties":{"annotations":{"additionalProperties":{"type":"string"},"type":"object"},"labels":{"additionalProperties":{"type":"string"},"type":"object"},"parametersRef":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.LocalParametersReference"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.GatewayList":{"properties":{"apiVersion":{"type":"string"},"items":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.Gateway"},"type":"array"},"kind":{"type":"string"},"metadata":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.GatewaySpec":{"properties":{"addresses":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.GatewayAddress"},"type":"array"},"gatewayClassName":{"type":"string"},"infrastructure":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.GatewayInfrastructure"},"listeners":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.Listener"},"type":"array"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.GatewayStatus":{"properties":{"addresses":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.GatewayStatusAddress"},"type":"array"},"conditions":{"items":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Condition"},"type":"array"},"listeners":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.ListenerStatus"},"type":"array"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.GatewayStatusAddress":{"properties":{"type":{"type":"string"},"value":{"type":"string"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.GatewayTLSConfig":{"properties":{"certificateRefs":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.SecretObjectReference"},"type":"array"},"frontendValidation":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.FrontendTLSValidation"},"mode":{"type":"string"},"options":{"additionalProperties":{"type":"string"},"type":"object"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.HTTPBackendRef":{"properties":{"filters":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPRouteFilter"},"type":"array"},"group":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"port":{"format":"int32","type":"integer"},"weight":{"format":"int32","type":"integer"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.HTTPHeader":{"properties":{"name":{"type":"string"},"value":{"type":"string"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.HTTPHeaderFilter":{"properties":{"add":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPHeader"},"type":"array"},"remove":{"items":{"type":"string"},"type":"array"},"set":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPHeader"},"type":"array"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.HTTPHeaderMatch":{"properties":{"name":{"type":"string"},"type":{"type":"string"},"value":{"type":"string"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.HTTPPathMatch":{"properties":{"type":{"type":"string"},"value":{"type":"string"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.HTTPPathModifier":{"properties":{"replaceFullPath":{"type":"string"},"replacePrefixMatch":{"type":"string"},"type":{"type":"string"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.HTTPQueryParamMatch":{"properties":{"name":{"type":"string"},"type":{"type":"string"},"value":{"type":"string"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.HTTPRequestMirrorFilter":{"properties":{"backendRef":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.BackendObjectReference"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.HTTPRequestRedirectFilter":{"properties":{"hostname":{"type":"string"},"path":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPPathModifier"},"port":{"format":"int32","type":"integer"},"scheme":{"type":"string"},"statusCode":{"format":"int32","type":"integer"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.HTTPRoute":{"properties":{"apiVersion":{"type":"string"},"kind":{"type":"string"},"metadata":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"},"spec":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPRouteSpec"},"status":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPRouteStatus"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.HTTPRouteFilter":{"properties":{"extensionRef":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.LocalObjectReference"},"requestHeaderModifier":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPHeaderFilter"},"requestMirror":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPRequestMirrorFilter"},"requestRedirect":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPRequestRedirectFilter"},"responseHeaderModifier":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPHeaderFilter"},"type":{"type":"string"},"urlRewrite":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPURLRewriteFilter"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.HTTPRouteList":{"properties":{"apiVersion":{"type":"string"},"items":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPRoute"},"type":"array"},"kind":{"type":"string"},"metadata":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.HTTPRouteMatch":{"properties":{"headers":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPHeaderMatch"},"type":"array"},"method":{"type":"string"},"path":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPPathMatch"},"queryParams":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPQueryParamMatch"},"type":"array"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.HTTPRouteRule":{"properties":{"backendRefs":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPBackendRef"},"type":"array"},"filters":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPRouteFilter"},"type":"array"},"matches":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPRouteMatch"},"type":"array"},"sessionPersistence":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.SessionPersistence"},"timeouts":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPRouteTimeouts"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.HTTPRouteSpec":{"properties":{"hostnames":{"items":{"type":"string"},"type":"array"},"parentRefs":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.ParentReference"},"type":"array"},"rules":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPRouteRule"},"type":"array"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.HTTPRouteStatus":{"properties":{"parents":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.RouteParentStatus"},"type":"array"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.HTTPRouteTimeouts":{"properties":{"backendRequest":{"type":"string"},"request":{"type":"string"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.HTTPURLRewriteFilter":{"properties":{"hostname":{"type":"string"},"path":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPPathModifier"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.Listener":{"properties":{"allowedRoutes":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.AllowedRoutes"},"hostname":{"type":"string"},"name":{"type":"string"},"port":{"format":"int32","type":"integer"},"protocol":{"type":"string"},"tls":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.GatewayTLSConfig"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.ListenerStatus":{"properties":{"attachedRoutes":{"format":"int32","type":"integer"},"conditions":{"items":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Condition"},"type":"array"},"name":{"type":"string"},"supportedKinds":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.RouteGroupKind"},"type":"array"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.LocalObjectReference":{"properties":{"group":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.LocalParametersReference":{"properties":{"group":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.ObjectReference":{"properties":{"group":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.ParametersReference":{"properties":{"group":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.ParentReference":{"properties":{"group":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"port":{"format":"int32","type":"integer"},"sectionName":{"type":"string"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.RouteGroupKind":{"properties":{"group":{"type":"string"},"kind":{"type":"string"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.RouteNamespaces":{"properties":{"from":{"type":"string"},"selector":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.RouteParentStatus":{"properties":{"conditions":{"items":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Condition"},"type":"array"},"controllerName":{"type":"string"},"parentRef":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.ParentReference"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.SecretObjectReference":{"properties":{"group":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.SessionPersistence":{"properties":{"absoluteTimeout":{"type":"string"},"cookieConfig":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.CookieConfig"},"idleTimeout":{"type":"string"},"sessionName":{"type":"string"},"type":{"type":"string"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1beta1.Gateway":{"properties":{"apiVersion":{"type":"string"},"kind":{"type":"string"},"metadata":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"},"spec":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.GatewaySpec"},"status":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.GatewayStatus"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1beta1.GatewayClass":{"properties":{"apiVersion":{"type":"string"},"kind":{"type":"string"},"metadata":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"},"spec":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.GatewayClassSpec"},"status":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.GatewayClassStatus"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1beta1.GatewayClassList":{"properties":{"apiVersion":{"type":"string"},"items":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1beta1.GatewayClass"},"type":"array"},"kind":{"type":"string"},"metadata":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1beta1.GatewayList":{"properties":{"apiVersion":{"type":"string"},"items":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1beta1.Gateway"},"type":"array"},"kind":{"type":"string"},"metadata":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1beta1.HTTPRoute":{"properties":{"apiVersion":{"type":"string"},"kind":{"type":"string"},"metadata":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"},"spec":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPRouteSpec"},"status":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPRouteStatus"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1beta1.HTTPRouteList":{"properties":{"apiVersion":{"type":"string"},"items":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1beta1.HTTPRoute"},"type":"array"},"kind":{"type":"string"},"metadata":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1beta1.ReferenceGrant":{"properties":{"apiVersion":{"type":"string"},"kind":{"type":"string"},"metadata":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"},"spec":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1beta1.ReferenceGrantSpec"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1beta1.ReferenceGrantFrom":{"properties":{"group":{"type":"string"},"kind":{"type":"string"},"namespace":{"type":"string"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1beta1.ReferenceGrantList":{"properties":{"apiVersion":{"type":"string"},"items":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1beta1.ReferenceGrant"},"type":"array"},"kind":{"type":"string"},"metadata":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1beta1.ReferenceGrantSpec":{"properties":{"from":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1beta1.ReferenceGrantFrom"},"type":"array"},"to":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1beta1.ReferenceGrantTo"},"type":"array"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1beta1.ReferenceGrantTo":{"properties":{"group":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"}},"type":"object"}}},"info":{"title":"gateway-api","version":"0.0.0"},"openapi":"3.0.0","paths":{"/apis/gateway.networking.k8s.io/v1/gatewayclasses":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.GatewayClassList"}}},"description":"OK"},"default":{"description":""}}}},"/apis/gateway.networking.k8s.io/v1/gatewayclasses/{name}":{"get":{"parameters":[{"in":"path","name":"name","required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.GatewayClass"}}},"description":"OK"},"default":{"description":""}}}},"/apis/gateway.networking.k8s.io/v1/namespaces/{namespace}/gateways":{"get":{"parameters":[{"in":"path","name":"namespace","required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.GatewayList"}}},"description":"OK"},"default":{"description":""}}}},"/apis/gateway.networking.k8s.io/v1/namespaces/{namespace}/gateways/{name}":{"get":{"parameters":[{"in":"path","name":"namespace","required":true},{"in":"path","name":"name","required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.Gateway"}}},"description":"OK"},"default":{"description":""}}}},"/apis/gateway.networking.k8s.io/v1/namespaces/{namespace}/httproutes":{"get":{"parameters":[{"in":"path","name":"namespace","required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPRouteList"}}},"description":"OK"},"default":{"description":""}}}},"/apis/gateway.networking.k8s.io/v1/namespaces/{namespace}/httproutes/{name}":{"get":{"parameters":[{"in":"path","name":"namespace","required":true},{"in":"path","name":"name","required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPRoute"}}},"description":"OK"},"default":{"description":""}}}},"/apis/gateway.networking.k8s.io/v1beta1/gatewayclasses":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1beta1.GatewayClassList"}}},"description":"OK"},"default":{"description":""}}}},"/apis/gateway.networking.k8s.io/v1beta1/gatewayclasses/{name}":{"get":{"parameters":[{"in":"path","name":"name","required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1beta1.GatewayClass"}}},"description":"OK"},"default":{"description":""}}}},"/apis/gateway.networking.k8s.io/v1beta1/namespaces/{namespace}/gateways":{"get":{"parameters":[{"in":"path","name":"namespace","required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1beta1.GatewayList"}}},"description":"OK"},"default":{"description":""}}}},"/apis/gateway.networking.k8s.io/v1beta1/namespaces/{namespace}/gateways/{name}":{"get":{"parameters":[{"in":"path","name":"namespace","required":true},{"in":"path","name":"name","required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1beta1.Gateway"}}},"description":"OK"},"default":{"description":""}}}},"/apis/gateway.networking.k8s.io/v1beta1/namespaces/{namespace}/httproutes":{"get":{"parameters":[{"in":"path","name":"namespace","required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1beta1.HTTPRouteList"}}},"description":"OK"},"default":{"description":""}}}},"/apis/gateway.networking.k8s.io/v1beta1/namespaces/{namespace}/httproutes/{name}":{"get":{"parameters":[{"in":"path","name":"namespace","required":true},{"in":"path","name":"name","required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1beta1.HTTPRoute"}}},"description":"OK"},"default":{"description":""}}}},"/apis/gateway.networking.k8s.io/v1beta1/namespaces/{namespace}/referencegrants":{"get":{"parameters":[{"in":"path","name":"namespace","required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1beta1.ReferenceGrantList"}}},"description":"OK"},"default":{"description":""}}}},"/apis/gateway.networking.k8s.io/v1beta1/namespaces/{namespace}/referencegrants/{name}":{"get":{"parameters":[{"in":"path","name":"namespace","required":true},{"in":"path","name":"name","required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1beta1.ReferenceGrant"}}},"description":"OK"},"default":{"description":""}}}}}} \ No newline at end of file +{"components":{"schemas":{"io.k8s.apimachinery.pkg.apis.meta.v1.Condition":{"properties":{"lastTransitionTime":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time"},"message":{"type":"string"},"observedGeneration":{"format":"int64","type":"integer"},"reason":{"type":"string"},"status":{"type":"string"},"type":{"type":"string"}},"type":"object"},"io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1":{"properties":{"-":{"type":"string"}},"type":"object"},"io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector":{"properties":{"matchExpressions":{"items":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement"},"type":"array"},"matchLabels":{"additionalProperties":{"type":"string"},"type":"object"}},"type":"object"},"io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement":{"properties":{"key":{"type":"string"},"operator":{"type":"string"},"values":{"items":{"type":"string"},"type":"array"}},"type":"object"},"io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta":{"properties":{"continue":{"type":"string"},"remainingItemCount":{"format":"int64","type":"integer"},"resourceVersion":{"type":"string"},"selfLink":{"type":"string"}},"type":"object"},"io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry":{"properties":{"apiVersion":{"type":"string"},"fieldsType":{"type":"string"},"fieldsV1":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1"},"manager":{"type":"string"},"operation":{"type":"string"},"subresource":{"type":"string"},"time":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time"}},"type":"object"},"io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta":{"properties":{"annotations":{"additionalProperties":{"type":"string"},"type":"object"},"creationTimestamp":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time"},"deletionGracePeriodSeconds":{"format":"int64","type":"integer"},"deletionTimestamp":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time"},"finalizers":{"items":{"type":"string"},"type":"array"},"generateName":{"type":"string"},"generation":{"format":"int64","type":"integer"},"labels":{"additionalProperties":{"type":"string"},"type":"object"},"managedFields":{"items":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry"},"type":"array"},"name":{"type":"string"},"namespace":{"type":"string"},"ownerReferences":{"items":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference"},"type":"array"},"resourceVersion":{"type":"string"},"selfLink":{"type":"string"},"uid":{"type":"string"}},"type":"object"},"io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference":{"properties":{"apiVersion":{"type":"string"},"blockOwnerDeletion":{"type":"boolean"},"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"type":"object"},"io.k8s.apimachinery.pkg.apis.meta.v1.Time":{"properties":{"Time":{"type":"string"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.AllowedRoutes":{"properties":{"kinds":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.RouteGroupKind"},"type":"array"},"namespaces":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.RouteNamespaces"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.BackendObjectReference":{"properties":{"group":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"port":{"format":"int32","type":"integer"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.CookieConfig":{"properties":{"lifetimeType":{"type":"string"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.FrontendTLSValidation":{"properties":{"caCertificateRefs":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.ObjectReference"},"type":"array"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.Gateway":{"properties":{"apiVersion":{"type":"string"},"kind":{"type":"string"},"metadata":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"},"spec":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.GatewaySpec"},"status":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.GatewayStatus"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.GatewayAddress":{"properties":{"type":{"type":"string"},"value":{"type":"string"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.GatewayClass":{"properties":{"apiVersion":{"type":"string"},"kind":{"type":"string"},"metadata":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"},"spec":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.GatewayClassSpec"},"status":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.GatewayClassStatus"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.GatewayClassList":{"properties":{"apiVersion":{"type":"string"},"items":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.GatewayClass"},"type":"array"},"kind":{"type":"string"},"metadata":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.GatewayClassSpec":{"properties":{"controllerName":{"type":"string"},"description":{"type":"string"},"parametersRef":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.ParametersReference"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.GatewayClassStatus":{"properties":{"conditions":{"items":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Condition"},"type":"array"},"supportedFeatures":{"items":{"type":"string"},"type":"array"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.GatewayInfrastructure":{"properties":{"annotations":{"additionalProperties":{"type":"string"},"type":"object"},"labels":{"additionalProperties":{"type":"string"},"type":"object"},"parametersRef":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.LocalParametersReference"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.GatewayList":{"properties":{"apiVersion":{"type":"string"},"items":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.Gateway"},"type":"array"},"kind":{"type":"string"},"metadata":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.GatewaySpec":{"properties":{"addresses":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.GatewayAddress"},"type":"array"},"gatewayClassName":{"type":"string"},"infrastructure":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.GatewayInfrastructure"},"listeners":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.Listener"},"type":"array"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.GatewayStatus":{"properties":{"addresses":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.GatewayStatusAddress"},"type":"array"},"conditions":{"items":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Condition"},"type":"array"},"listeners":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.ListenerStatus"},"type":"array"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.GatewayStatusAddress":{"properties":{"type":{"type":"string"},"value":{"type":"string"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.GatewayTLSConfig":{"properties":{"certificateRefs":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.SecretObjectReference"},"type":"array"},"frontendValidation":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.FrontendTLSValidation"},"mode":{"type":"string"},"options":{"additionalProperties":{"type":"string"},"type":"object"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.HTTPBackendRef":{"properties":{"filters":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPRouteFilter"},"type":"array"},"group":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"port":{"format":"int32","type":"integer"},"weight":{"format":"int32","type":"integer"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.HTTPHeader":{"properties":{"name":{"type":"string"},"value":{"type":"string"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.HTTPHeaderFilter":{"properties":{"add":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPHeader"},"type":"array"},"remove":{"items":{"type":"string"},"type":"array"},"set":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPHeader"},"type":"array"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.HTTPHeaderMatch":{"properties":{"name":{"type":"string"},"type":{"type":"string"},"value":{"type":"string"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.HTTPPathMatch":{"properties":{"type":{"type":"string"},"value":{"type":"string"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.HTTPPathModifier":{"properties":{"replaceFullPath":{"type":"string"},"replacePrefixMatch":{"type":"string"},"type":{"type":"string"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.HTTPQueryParamMatch":{"properties":{"name":{"type":"string"},"type":{"type":"string"},"value":{"type":"string"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.HTTPRequestMirrorFilter":{"properties":{"backendRef":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.BackendObjectReference"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.HTTPRequestRedirectFilter":{"properties":{"hostname":{"type":"string"},"path":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPPathModifier"},"port":{"format":"int32","type":"integer"},"scheme":{"type":"string"},"statusCode":{"format":"int32","type":"integer"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.HTTPRoute":{"properties":{"apiVersion":{"type":"string"},"kind":{"type":"string"},"metadata":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"},"spec":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPRouteSpec"},"status":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPRouteStatus"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.HTTPRouteFilter":{"properties":{"extensionRef":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.LocalObjectReference"},"requestHeaderModifier":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPHeaderFilter"},"requestMirror":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPRequestMirrorFilter"},"requestRedirect":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPRequestRedirectFilter"},"responseHeaderModifier":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPHeaderFilter"},"type":{"type":"string"},"urlRewrite":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPURLRewriteFilter"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.HTTPRouteList":{"properties":{"apiVersion":{"type":"string"},"items":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPRoute"},"type":"array"},"kind":{"type":"string"},"metadata":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.HTTPRouteMatch":{"properties":{"headers":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPHeaderMatch"},"type":"array"},"method":{"type":"string"},"path":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPPathMatch"},"queryParams":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPQueryParamMatch"},"type":"array"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.HTTPRouteRule":{"properties":{"backendRefs":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPBackendRef"},"type":"array"},"filters":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPRouteFilter"},"type":"array"},"matches":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPRouteMatch"},"type":"array"},"sessionPersistence":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.SessionPersistence"},"timeouts":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPRouteTimeouts"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.HTTPRouteSpec":{"properties":{"hostnames":{"items":{"type":"string"},"type":"array"},"parentRefs":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.ParentReference"},"type":"array"},"rules":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPRouteRule"},"type":"array"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.HTTPRouteStatus":{"properties":{"parents":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.RouteParentStatus"},"type":"array"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.HTTPRouteTimeouts":{"properties":{"backendRequest":{"type":"string"},"request":{"type":"string"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.HTTPURLRewriteFilter":{"properties":{"hostname":{"type":"string"},"path":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPPathModifier"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.Listener":{"properties":{"allowedRoutes":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.AllowedRoutes"},"hostname":{"type":"string"},"name":{"type":"string"},"port":{"format":"int32","type":"integer"},"protocol":{"type":"string"},"tls":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.GatewayTLSConfig"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.ListenerStatus":{"properties":{"attachedRoutes":{"format":"int32","type":"integer"},"conditions":{"items":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Condition"},"type":"array"},"name":{"type":"string"},"supportedKinds":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.RouteGroupKind"},"type":"array"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.LocalObjectReference":{"properties":{"group":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.LocalParametersReference":{"properties":{"group":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.ObjectReference":{"properties":{"group":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.ParametersReference":{"properties":{"group":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.ParentReference":{"properties":{"group":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"port":{"format":"int32","type":"integer"},"sectionName":{"type":"string"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.RouteGroupKind":{"properties":{"group":{"type":"string"},"kind":{"type":"string"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.RouteNamespaces":{"properties":{"from":{"type":"string"},"selector":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.RouteParentStatus":{"properties":{"conditions":{"items":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Condition"},"type":"array"},"controllerName":{"type":"string"},"parentRef":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.ParentReference"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.SecretObjectReference":{"properties":{"group":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1.SessionPersistence":{"properties":{"absoluteTimeout":{"type":"string"},"cookieConfig":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.CookieConfig"},"idleTimeout":{"type":"string"},"sessionName":{"type":"string"},"type":{"type":"string"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1beta1.Gateway":{"properties":{"apiVersion":{"type":"string"},"kind":{"type":"string"},"metadata":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"},"spec":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.GatewaySpec"},"status":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.GatewayStatus"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1beta1.GatewayClass":{"properties":{"apiVersion":{"type":"string"},"kind":{"type":"string"},"metadata":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"},"spec":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.GatewayClassSpec"},"status":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.GatewayClassStatus"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1beta1.GatewayClassList":{"properties":{"apiVersion":{"type":"string"},"items":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1beta1.GatewayClass"},"type":"array"},"kind":{"type":"string"},"metadata":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1beta1.GatewayList":{"properties":{"apiVersion":{"type":"string"},"items":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1beta1.Gateway"},"type":"array"},"kind":{"type":"string"},"metadata":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1beta1.HTTPRoute":{"properties":{"apiVersion":{"type":"string"},"kind":{"type":"string"},"metadata":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"},"spec":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPRouteSpec"},"status":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPRouteStatus"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1beta1.HTTPRouteList":{"properties":{"apiVersion":{"type":"string"},"items":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1beta1.HTTPRoute"},"type":"array"},"kind":{"type":"string"},"metadata":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1beta1.ReferenceGrant":{"properties":{"apiVersion":{"type":"string"},"kind":{"type":"string"},"metadata":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"},"spec":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1beta1.ReferenceGrantSpec"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1beta1.ReferenceGrantFrom":{"properties":{"group":{"type":"string"},"kind":{"type":"string"},"namespace":{"type":"string"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1beta1.ReferenceGrantList":{"properties":{"apiVersion":{"type":"string"},"items":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1beta1.ReferenceGrant"},"type":"array"},"kind":{"type":"string"},"metadata":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1beta1.ReferenceGrantSpec":{"properties":{"from":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1beta1.ReferenceGrantFrom"},"type":"array"},"to":{"items":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1beta1.ReferenceGrantTo"},"type":"array"}},"type":"object"},"io.k8s.sigs.gateway-api.apis.v1beta1.ReferenceGrantTo":{"properties":{"group":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"}},"type":"object"}}},"info":{"title":"gateway-api","version":"0.0.0"},"openapi":"3.0.0","paths":{"/apis/gateway.networking.k8s.io/v1/gatewayclasses":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.GatewayClassList"}}},"description":"OK"},"default":{"description":""}},"x-kubernetes-group-version-kind":{"group":"gateway.networking.k8s.io","kind":"GatewayClassList","version":"v1"}}},"/apis/gateway.networking.k8s.io/v1/gatewayclasses/{name}":{"get":{"parameters":[{"in":"path","name":"name","required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.GatewayClass"}}},"description":"OK"},"default":{"description":""}},"x-kubernetes-group-version-kind":{"group":"gateway.networking.k8s.io","kind":"GatewayClass","version":"v1"}}},"/apis/gateway.networking.k8s.io/v1/namespaces/{namespace}/gateways":{"get":{"parameters":[{"in":"path","name":"namespace","required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.GatewayList"}}},"description":"OK"},"default":{"description":""}},"x-kubernetes-group-version-kind":{"group":"gateway.networking.k8s.io","kind":"GatewayList","version":"v1"}}},"/apis/gateway.networking.k8s.io/v1/namespaces/{namespace}/gateways/{name}":{"get":{"parameters":[{"in":"path","name":"namespace","required":true},{"in":"path","name":"name","required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.Gateway"}}},"description":"OK"},"default":{"description":""}},"x-kubernetes-group-version-kind":{"group":"gateway.networking.k8s.io","kind":"Gateway","version":"v1"}}},"/apis/gateway.networking.k8s.io/v1/namespaces/{namespace}/httproutes":{"get":{"parameters":[{"in":"path","name":"namespace","required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPRouteList"}}},"description":"OK"},"default":{"description":""}},"x-kubernetes-group-version-kind":{"group":"gateway.networking.k8s.io","kind":"HTTPRouteList","version":"v1"}}},"/apis/gateway.networking.k8s.io/v1/namespaces/{namespace}/httproutes/{name}":{"get":{"parameters":[{"in":"path","name":"namespace","required":true},{"in":"path","name":"name","required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1.HTTPRoute"}}},"description":"OK"},"default":{"description":""}},"x-kubernetes-group-version-kind":{"group":"gateway.networking.k8s.io","kind":"HTTPRoute","version":"v1"}}},"/apis/gateway.networking.k8s.io/v1beta1/gatewayclasses":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1beta1.GatewayClassList"}}},"description":"OK"},"default":{"description":""}},"x-kubernetes-group-version-kind":{"group":"gateway.networking.k8s.io","kind":"GatewayClassList","version":"v1beta1"}}},"/apis/gateway.networking.k8s.io/v1beta1/gatewayclasses/{name}":{"get":{"parameters":[{"in":"path","name":"name","required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1beta1.GatewayClass"}}},"description":"OK"},"default":{"description":""}},"x-kubernetes-group-version-kind":{"group":"gateway.networking.k8s.io","kind":"GatewayClass","version":"v1beta1"}}},"/apis/gateway.networking.k8s.io/v1beta1/namespaces/{namespace}/gateways":{"get":{"parameters":[{"in":"path","name":"namespace","required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1beta1.GatewayList"}}},"description":"OK"},"default":{"description":""}},"x-kubernetes-group-version-kind":{"group":"gateway.networking.k8s.io","kind":"GatewayList","version":"v1beta1"}}},"/apis/gateway.networking.k8s.io/v1beta1/namespaces/{namespace}/gateways/{name}":{"get":{"parameters":[{"in":"path","name":"namespace","required":true},{"in":"path","name":"name","required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1beta1.Gateway"}}},"description":"OK"},"default":{"description":""}},"x-kubernetes-group-version-kind":{"group":"gateway.networking.k8s.io","kind":"Gateway","version":"v1beta1"}}},"/apis/gateway.networking.k8s.io/v1beta1/namespaces/{namespace}/httproutes":{"get":{"parameters":[{"in":"path","name":"namespace","required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1beta1.HTTPRouteList"}}},"description":"OK"},"default":{"description":""}},"x-kubernetes-group-version-kind":{"group":"gateway.networking.k8s.io","kind":"HTTPRouteList","version":"v1beta1"}}},"/apis/gateway.networking.k8s.io/v1beta1/namespaces/{namespace}/httproutes/{name}":{"get":{"parameters":[{"in":"path","name":"namespace","required":true},{"in":"path","name":"name","required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1beta1.HTTPRoute"}}},"description":"OK"},"default":{"description":""}},"x-kubernetes-group-version-kind":{"group":"gateway.networking.k8s.io","kind":"HTTPRoute","version":"v1beta1"}}},"/apis/gateway.networking.k8s.io/v1beta1/namespaces/{namespace}/referencegrants":{"get":{"parameters":[{"in":"path","name":"namespace","required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1beta1.ReferenceGrantList"}}},"description":"OK"},"default":{"description":""}},"x-kubernetes-group-version-kind":{"group":"gateway.networking.k8s.io","kind":"ReferenceGrantList","version":"v1beta1"}}},"/apis/gateway.networking.k8s.io/v1beta1/namespaces/{namespace}/referencegrants/{name}":{"get":{"parameters":[{"in":"path","name":"namespace","required":true},{"in":"path","name":"name","required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/io.k8s.sigs.gateway-api.apis.v1beta1.ReferenceGrant"}}},"description":"OK"},"default":{"description":""}},"x-kubernetes-group-version-kind":{"group":"gateway.networking.k8s.io","kind":"ReferenceGrant","version":"v1beta1"}}}}} \ No newline at end of file diff --git a/kubernetes-model-generator/openapi/schemas/metrics.json b/kubernetes-model-generator/openapi/schemas/metrics.json index 9af806670c5..941af5ff7e6 100644 --- a/kubernetes-model-generator/openapi/schemas/metrics.json +++ b/kubernetes-model-generator/openapi/schemas/metrics.json @@ -1 +1 @@ -{"components":{"schemas":{"io.k8s.apimachinery.pkg.apis.meta.v1.Duration":{"properties":{"Duration":{"format":"int64","type":"integer"}},"type":"object"},"io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1":{"properties":{"-":{"type":"string"}},"type":"object"},"io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta":{"properties":{"continue":{"type":"string"},"remainingItemCount":{"format":"int64","type":"integer"},"resourceVersion":{"type":"string"},"selfLink":{"type":"string"}},"type":"object"},"io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry":{"properties":{"apiVersion":{"type":"string"},"fieldsType":{"type":"string"},"fieldsV1":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1"},"manager":{"type":"string"},"operation":{"type":"string"},"subresource":{"type":"string"},"time":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time"}},"type":"object"},"io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta":{"properties":{"annotations":{"additionalProperties":{"type":"string"},"type":"object"},"creationTimestamp":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time"},"deletionGracePeriodSeconds":{"format":"int64","type":"integer"},"deletionTimestamp":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time"},"finalizers":{"items":{"type":"string"},"type":"array"},"generateName":{"type":"string"},"generation":{"format":"int64","type":"integer"},"labels":{"additionalProperties":{"type":"string"},"type":"object"},"managedFields":{"items":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry"},"type":"array"},"name":{"type":"string"},"namespace":{"type":"string"},"ownerReferences":{"items":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference"},"type":"array"},"resourceVersion":{"type":"string"},"selfLink":{"type":"string"},"uid":{"type":"string"}},"type":"object"},"io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference":{"properties":{"apiVersion":{"type":"string"},"blockOwnerDeletion":{"type":"boolean"},"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"type":"object"},"io.k8s.apimachinery.pkg.apis.meta.v1.Time":{"properties":{"Time":{"type":"string"}},"type":"object"},"io.k8s.metrics.pkg.apis.metrics.v1beta1.ContainerMetrics":{"properties":{"name":{"type":"string"},"usage":{"additionalProperties":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity"},"type":"object"}},"type":"object"},"io.k8s.metrics.pkg.apis.metrics.v1beta1.NodeMetrics":{"properties":{"apiVersion":{"type":"string"},"kind":{"type":"string"},"metadata":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"},"timestamp":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time"},"usage":{"additionalProperties":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity"},"type":"object"},"window":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Duration"}},"type":"object"},"io.k8s.metrics.pkg.apis.metrics.v1beta1.NodeMetricsList":{"properties":{"apiVersion":{"type":"string"},"items":{"items":{"$ref":"#/components/schemas/io.k8s.metrics.pkg.apis.metrics.v1beta1.NodeMetrics"},"type":"array"},"kind":{"type":"string"},"metadata":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"}},"type":"object"},"io.k8s.metrics.pkg.apis.metrics.v1beta1.PodMetrics":{"properties":{"apiVersion":{"type":"string"},"containers":{"items":{"$ref":"#/components/schemas/io.k8s.metrics.pkg.apis.metrics.v1beta1.ContainerMetrics"},"type":"array"},"kind":{"type":"string"},"metadata":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"},"timestamp":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time"},"window":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Duration"}},"type":"object"},"io.k8s.metrics.pkg.apis.metrics.v1beta1.PodMetricsList":{"properties":{"apiVersion":{"type":"string"},"items":{"items":{"$ref":"#/components/schemas/io.k8s.metrics.pkg.apis.metrics.v1beta1.PodMetrics"},"type":"array"},"kind":{"type":"string"},"metadata":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"}},"type":"object"}}},"info":{"title":"metrics","version":"0.0.0"},"openapi":"3.0.0","paths":{"/apis/metrics.k8s.io/v1beta1/namespaces/{namespace}/pods":{"get":{"parameters":[{"in":"path","name":"namespace","required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/io.k8s.metrics.pkg.apis.metrics.v1beta1.PodMetricsList"}}},"description":"OK"},"default":{"description":""}}}},"/apis/metrics.k8s.io/v1beta1/namespaces/{namespace}/pods/{name}":{"get":{"parameters":[{"in":"path","name":"namespace","required":true},{"in":"path","name":"name","required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/io.k8s.metrics.pkg.apis.metrics.v1beta1.PodMetrics"}}},"description":"OK"},"default":{"description":""}}}},"/apis/metrics.k8s.io/v1beta1/nodes":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/io.k8s.metrics.pkg.apis.metrics.v1beta1.NodeMetricsList"}}},"description":"OK"},"default":{"description":""}}}},"/apis/metrics.k8s.io/v1beta1/nodes/{name}":{"get":{"parameters":[{"in":"path","name":"name","required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/io.k8s.metrics.pkg.apis.metrics.v1beta1.NodeMetrics"}}},"description":"OK"},"default":{"description":""}}}}}} \ No newline at end of file +{"components":{"schemas":{"io.k8s.apimachinery.pkg.apis.meta.v1.Duration":{"properties":{"Duration":{"format":"int64","type":"integer"}},"type":"object"},"io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1":{"properties":{"-":{"type":"string"}},"type":"object"},"io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta":{"properties":{"continue":{"type":"string"},"remainingItemCount":{"format":"int64","type":"integer"},"resourceVersion":{"type":"string"},"selfLink":{"type":"string"}},"type":"object"},"io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry":{"properties":{"apiVersion":{"type":"string"},"fieldsType":{"type":"string"},"fieldsV1":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1"},"manager":{"type":"string"},"operation":{"type":"string"},"subresource":{"type":"string"},"time":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time"}},"type":"object"},"io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta":{"properties":{"annotations":{"additionalProperties":{"type":"string"},"type":"object"},"creationTimestamp":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time"},"deletionGracePeriodSeconds":{"format":"int64","type":"integer"},"deletionTimestamp":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time"},"finalizers":{"items":{"type":"string"},"type":"array"},"generateName":{"type":"string"},"generation":{"format":"int64","type":"integer"},"labels":{"additionalProperties":{"type":"string"},"type":"object"},"managedFields":{"items":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry"},"type":"array"},"name":{"type":"string"},"namespace":{"type":"string"},"ownerReferences":{"items":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference"},"type":"array"},"resourceVersion":{"type":"string"},"selfLink":{"type":"string"},"uid":{"type":"string"}},"type":"object"},"io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference":{"properties":{"apiVersion":{"type":"string"},"blockOwnerDeletion":{"type":"boolean"},"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"type":"object"},"io.k8s.apimachinery.pkg.apis.meta.v1.Time":{"properties":{"Time":{"type":"string"}},"type":"object"},"io.k8s.metrics.pkg.apis.metrics.v1beta1.ContainerMetrics":{"properties":{"name":{"type":"string"},"usage":{"additionalProperties":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity"},"type":"object"}},"type":"object"},"io.k8s.metrics.pkg.apis.metrics.v1beta1.NodeMetrics":{"properties":{"apiVersion":{"type":"string"},"kind":{"type":"string"},"metadata":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"},"timestamp":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time"},"usage":{"additionalProperties":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity"},"type":"object"},"window":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Duration"}},"type":"object"},"io.k8s.metrics.pkg.apis.metrics.v1beta1.NodeMetricsList":{"properties":{"apiVersion":{"type":"string"},"items":{"items":{"$ref":"#/components/schemas/io.k8s.metrics.pkg.apis.metrics.v1beta1.NodeMetrics"},"type":"array"},"kind":{"type":"string"},"metadata":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"}},"type":"object"},"io.k8s.metrics.pkg.apis.metrics.v1beta1.PodMetrics":{"properties":{"apiVersion":{"type":"string"},"containers":{"items":{"$ref":"#/components/schemas/io.k8s.metrics.pkg.apis.metrics.v1beta1.ContainerMetrics"},"type":"array"},"kind":{"type":"string"},"metadata":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"},"timestamp":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time"},"window":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Duration"}},"type":"object"},"io.k8s.metrics.pkg.apis.metrics.v1beta1.PodMetricsList":{"properties":{"apiVersion":{"type":"string"},"items":{"items":{"$ref":"#/components/schemas/io.k8s.metrics.pkg.apis.metrics.v1beta1.PodMetrics"},"type":"array"},"kind":{"type":"string"},"metadata":{"$ref":"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"}},"type":"object"}}},"info":{"title":"metrics","version":"0.0.0"},"openapi":"3.0.0","paths":{"/apis/metrics.k8s.io/v1beta1/namespaces/{namespace}/pods":{"get":{"parameters":[{"in":"path","name":"namespace","required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/io.k8s.metrics.pkg.apis.metrics.v1beta1.PodMetricsList"}}},"description":"OK"},"default":{"description":""}},"x-kubernetes-group-version-kind":{"group":"metrics.k8s.io","kind":"PodMetricsList","version":"v1beta1"}}},"/apis/metrics.k8s.io/v1beta1/namespaces/{namespace}/pods/{name}":{"get":{"parameters":[{"in":"path","name":"namespace","required":true},{"in":"path","name":"name","required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/io.k8s.metrics.pkg.apis.metrics.v1beta1.PodMetrics"}}},"description":"OK"},"default":{"description":""}},"x-kubernetes-group-version-kind":{"group":"metrics.k8s.io","kind":"PodMetrics","version":"v1beta1"}}},"/apis/metrics.k8s.io/v1beta1/nodes":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/io.k8s.metrics.pkg.apis.metrics.v1beta1.NodeMetricsList"}}},"description":"OK"},"default":{"description":""}},"x-kubernetes-group-version-kind":{"group":"metrics.k8s.io","kind":"NodeMetricsList","version":"v1beta1"}}},"/apis/metrics.k8s.io/v1beta1/nodes/{name}":{"get":{"parameters":[{"in":"path","name":"name","required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/io.k8s.metrics.pkg.apis.metrics.v1beta1.NodeMetrics"}}},"description":"OK"},"default":{"description":""}},"x-kubernetes-group-version-kind":{"group":"metrics.k8s.io","kind":"NodeMetrics","version":"v1beta1"}}}}} \ No newline at end of file diff --git a/kubernetes-model-generator/pom.xml b/kubernetes-model-generator/pom.xml index 3788ffa89ae..c980e2c9636 100644 --- a/kubernetes-model-generator/pom.xml +++ b/kubernetes-model-generator/pom.xml @@ -76,9 +76,9 @@ true - false **/*KubernetesTest.java + ${project.parent.basedir}/openapi/schemas/kubernetes-1.30.0.json osgi.extender; filter:="(osgi.extender=osgi.serviceloader.registrar)"