Skip to content

Commit a5818b8

Browse files
committed
feat (kubernetes-model-generator) : Add model type APIVersions to Kubernetes Core Model
Signed-off-by: Rohan Kumar <[email protected]>
1 parent 30e0e7b commit a5818b8

File tree

8 files changed

+388
-2
lines changed

8 files changed

+388
-2
lines changed

kubernetes-model-generator/kubernetes-model-core/cmd/generate/generate.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ type Schema struct {
4343
APIGroupList metav1.APIGroupList
4444
APIResource metav1.APIResource
4545
APIResourceList metav1.APIResourceList
46+
APIVersions metav1.APIVersions
4647
KubernetesList metav1.List
4748
ObjectMeta metav1.ObjectMeta
4849
TypeMeta metav1.TypeMeta
Lines changed: 171 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,171 @@
1+
2+
package io.fabric8.kubernetes.api.model;
3+
4+
import java.util.ArrayList;
5+
import java.util.LinkedHashMap;
6+
import java.util.List;
7+
import java.util.Map;
8+
import javax.annotation.Generated;
9+
import com.fasterxml.jackson.annotation.JsonAnyGetter;
10+
import com.fasterxml.jackson.annotation.JsonAnySetter;
11+
import com.fasterxml.jackson.annotation.JsonIgnore;
12+
import com.fasterxml.jackson.annotation.JsonInclude;
13+
import com.fasterxml.jackson.annotation.JsonProperty;
14+
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
15+
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
16+
import io.fabric8.kubernetes.api.builder.Editable;
17+
import io.fabric8.kubernetes.model.annotation.Group;
18+
import io.fabric8.kubernetes.model.annotation.Version;
19+
import io.sundr.builder.annotations.Buildable;
20+
import io.sundr.transform.annotations.TemplateTransformation;
21+
import io.sundr.transform.annotations.TemplateTransformations;
22+
import lombok.EqualsAndHashCode;
23+
import lombok.Setter;
24+
import lombok.ToString;
25+
import lombok.experimental.Accessors;
26+
27+
@JsonDeserialize(using = com.fasterxml.jackson.databind.JsonDeserializer.None.class)
28+
@JsonInclude(JsonInclude.Include.NON_NULL)
29+
@JsonPropertyOrder({
30+
"apiVersion",
31+
"kind",
32+
"metadata",
33+
"serverAddressByClientCIDRs",
34+
"versions"
35+
})
36+
@ToString
37+
@EqualsAndHashCode
38+
@Setter
39+
@Accessors(prefix = {
40+
"_",
41+
""
42+
})
43+
@Buildable(editableEnabled = false, validationEnabled = false, generateBuilderPackage = false, lazyCollectionInitEnabled = false, builderPackage = "io.fabric8.kubernetes.api.builder")
44+
@TemplateTransformations({
45+
@TemplateTransformation(value = "/manifest.vm", outputPath = "META-INF/services/io.fabric8.kubernetes.api.model.KubernetesResource", gather = true)
46+
})
47+
@Version("v1")
48+
@Group("")
49+
@Generated("jsonschema2pojo")
50+
public class APIVersions implements Editable<APIVersionsBuilder> , KubernetesResource
51+
{
52+
53+
/**
54+
*
55+
* (Required)
56+
*
57+
*/
58+
@JsonProperty("apiVersion")
59+
private String apiVersion = "v1";
60+
/**
61+
*
62+
* (Required)
63+
*
64+
*/
65+
@JsonProperty("kind")
66+
private String kind = "APIVersions";
67+
@JsonProperty("serverAddressByClientCIDRs")
68+
@JsonInclude(JsonInclude.Include.NON_EMPTY)
69+
private List<ServerAddressByClientCIDR> serverAddressByClientCIDRs = new ArrayList<ServerAddressByClientCIDR>();
70+
@JsonProperty("versions")
71+
@JsonInclude(JsonInclude.Include.NON_EMPTY)
72+
private List<String> versions = new ArrayList<String>();
73+
@JsonIgnore
74+
private Map<String, Object> additionalProperties = new LinkedHashMap<String, Object>();
75+
76+
/**
77+
* No args constructor for use in serialization
78+
*
79+
*/
80+
public APIVersions() {
81+
}
82+
83+
public APIVersions(String apiVersion, String kind, List<ServerAddressByClientCIDR> serverAddressByClientCIDRs, List<String> versions) {
84+
super();
85+
this.apiVersion = apiVersion;
86+
this.kind = kind;
87+
this.serverAddressByClientCIDRs = serverAddressByClientCIDRs;
88+
this.versions = versions;
89+
}
90+
91+
/**
92+
*
93+
* (Required)
94+
*
95+
*/
96+
@JsonProperty("apiVersion")
97+
public String getApiVersion() {
98+
return apiVersion;
99+
}
100+
101+
/**
102+
*
103+
* (Required)
104+
*
105+
*/
106+
@JsonProperty("apiVersion")
107+
public void setApiVersion(String apiVersion) {
108+
this.apiVersion = apiVersion;
109+
}
110+
111+
/**
112+
*
113+
* (Required)
114+
*
115+
*/
116+
@JsonProperty("kind")
117+
public String getKind() {
118+
return kind;
119+
}
120+
121+
/**
122+
*
123+
* (Required)
124+
*
125+
*/
126+
@JsonProperty("kind")
127+
public void setKind(String kind) {
128+
this.kind = kind;
129+
}
130+
131+
@JsonProperty("serverAddressByClientCIDRs")
132+
public List<ServerAddressByClientCIDR> getServerAddressByClientCIDRs() {
133+
return serverAddressByClientCIDRs;
134+
}
135+
136+
@JsonProperty("serverAddressByClientCIDRs")
137+
public void setServerAddressByClientCIDRs(List<ServerAddressByClientCIDR> serverAddressByClientCIDRs) {
138+
this.serverAddressByClientCIDRs = serverAddressByClientCIDRs;
139+
}
140+
141+
@JsonProperty("versions")
142+
public List<String> getVersions() {
143+
return versions;
144+
}
145+
146+
@JsonProperty("versions")
147+
public void setVersions(List<String> versions) {
148+
this.versions = versions;
149+
}
150+
151+
@JsonIgnore
152+
public APIVersionsBuilder edit() {
153+
return new APIVersionsBuilder(this);
154+
}
155+
156+
@JsonIgnore
157+
public APIVersionsBuilder toBuilder() {
158+
return edit();
159+
}
160+
161+
@JsonAnyGetter
162+
public Map<String, Object> getAdditionalProperties() {
163+
return this.additionalProperties;
164+
}
165+
166+
@JsonAnySetter
167+
public void setAdditionalProperty(String name, Object value) {
168+
this.additionalProperties.put(name, value);
169+
}
170+
171+
}

kubernetes-model-generator/kubernetes-model-core/src/generated/java/io/fabric8/kubernetes/api/model/KubeSchema.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ public class KubeSchema {
1919
private APIResourceList aPIResourceList;
2020
private APIService aPIService;
2121
private APIServiceList aPIServiceList;
22+
private APIVersions aPIVersions;
2223
private Binding binding;
2324
private ComponentStatus componentStatus;
2425
private ComponentStatusList componentStatusList;
@@ -87,14 +88,15 @@ public class KubeSchema {
8788
public KubeSchema() {
8889
}
8990

90-
public KubeSchema(APIGroup aPIGroup, APIGroupList aPIGroupList, APIResource aPIResource, APIResourceList aPIResourceList, APIService aPIService, APIServiceList aPIServiceList, 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) {
91+
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) {
9192
super();
9293
this.aPIGroup = aPIGroup;
9394
this.aPIGroupList = aPIGroupList;
9495
this.aPIResource = aPIResource;
9596
this.aPIResourceList = aPIResourceList;
9697
this.aPIService = aPIService;
9798
this.aPIServiceList = aPIServiceList;
99+
this.aPIVersions = aPIVersions;
98100
this.binding = binding;
99101
this.componentStatus = componentStatus;
100102
this.componentStatusList = componentStatusList;
@@ -215,6 +217,16 @@ public void setAPIServiceList(APIServiceList aPIServiceList) {
215217
this.aPIServiceList = aPIServiceList;
216218
}
217219

220+
@JsonProperty("APIVersions")
221+
public APIVersions getAPIVersions() {
222+
return aPIVersions;
223+
}
224+
225+
@JsonProperty("APIVersions")
226+
public void setAPIVersions(APIVersions aPIVersions) {
227+
this.aPIVersions = aPIVersions;
228+
}
229+
218230
@JsonProperty("Binding")
219231
public Binding getBinding() {
220232
return binding;

kubernetes-model-generator/kubernetes-model-core/src/generated/java/io/fabric8/kubernetes/api/model/ValidationSchema.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ public class ValidationSchema {
1919
private APIResourceList aPIResourceList;
2020
private APIService aPIService;
2121
private APIServiceList aPIServiceList;
22+
private APIVersions aPIVersions;
2223
private Binding binding;
2324
private ComponentStatus componentStatus;
2425
private ComponentStatusList componentStatusList;
@@ -87,14 +88,15 @@ public class ValidationSchema {
8788
public ValidationSchema() {
8889
}
8990

90-
public ValidationSchema(APIGroup aPIGroup, APIGroupList aPIGroupList, APIResource aPIResource, APIResourceList aPIResourceList, APIService aPIService, APIServiceList aPIServiceList, 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) {
91+
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) {
9192
super();
9293
this.aPIGroup = aPIGroup;
9394
this.aPIGroupList = aPIGroupList;
9495
this.aPIResource = aPIResource;
9596
this.aPIResourceList = aPIResourceList;
9697
this.aPIService = aPIService;
9798
this.aPIServiceList = aPIServiceList;
99+
this.aPIVersions = aPIVersions;
98100
this.binding = binding;
99101
this.componentStatus = componentStatus;
100102
this.componentStatusList = componentStatusList;
@@ -215,6 +217,16 @@ public void setAPIServiceList(APIServiceList aPIServiceList) {
215217
this.aPIServiceList = aPIServiceList;
216218
}
217219

220+
@JsonProperty("APIVersions")
221+
public APIVersions getAPIVersions() {
222+
return aPIVersions;
223+
}
224+
225+
@JsonProperty("APIVersions")
226+
public void setAPIVersions(APIVersions aPIVersions) {
227+
this.aPIVersions = aPIVersions;
228+
}
229+
218230
@JsonProperty("Binding")
219231
public Binding getBinding() {
220232
return binding;

kubernetes-model-generator/kubernetes-model-core/src/main/resources/schema/kube-schema.json

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -312,6 +312,39 @@
312312
"io.fabric8.kubernetes.api.model.KubernetesResource"
313313
]
314314
},
315+
"kubernetes_apimachinery_pkg_apis_APIVersions": {
316+
"type": "object",
317+
"properties": {
318+
"apiVersion": {
319+
"type": "string",
320+
"default": "v1",
321+
"required": true
322+
},
323+
"kind": {
324+
"type": "string",
325+
"default": "APIVersions",
326+
"required": true
327+
},
328+
"serverAddressByClientCIDRs": {
329+
"type": "array",
330+
"items": {
331+
"$ref": "#/definitions/kubernetes_apimachinery_pkg_apis_ServerAddressByClientCIDR",
332+
"existingJavaType": "io.fabric8.kubernetes.api.model.ServerAddressByClientCIDR"
333+
}
334+
},
335+
"versions": {
336+
"type": "array",
337+
"items": {
338+
"type": "string"
339+
}
340+
}
341+
},
342+
"additionalProperties": true,
343+
"javaType": "io.fabric8.kubernetes.api.model.APIVersions",
344+
"javaInterfaces": [
345+
"io.fabric8.kubernetes.api.model.KubernetesResource"
346+
]
347+
},
315348
"kubernetes_apimachinery_pkg_apis_Condition": {
316349
"type": "object",
317350
"properties": {
@@ -8053,6 +8086,10 @@
80538086
"$ref": "#/definitions/kubernetes_aggregator_APIServiceList",
80548087
"existingJavaType": "io.fabric8.kubernetes.api.model.APIServiceList"
80558088
},
8089+
"APIVersions": {
8090+
"$ref": "#/definitions/kubernetes_apimachinery_pkg_apis_APIVersions",
8091+
"existingJavaType": "io.fabric8.kubernetes.api.model.APIVersions"
8092+
},
80568093
"Binding": {
80578094
"$ref": "#/definitions/kubernetes_core_Binding",
80588095
"existingJavaType": "io.fabric8.kubernetes.api.model.Binding"

0 commit comments

Comments
 (0)