From 64fc6cfde5c2a48e7bf0808a2fd3b6648e26e7db Mon Sep 17 00:00:00 2001 From: Rohan Kumar Date: Thu, 16 Jul 2020 19:47:28 +0530 Subject: [PATCH] Fix #2287: Add support for V1 and V1Beta1 CustomResourceDefinition Introduced a new api entrypoint called `client.apiextensions()` which would route to `apiextensions/v1` and `apiextensions/v1beta1` CustomResourceDefinitions --- CHANGELOG.md | 3 + .../client/ApiextensionsAPIGroupClient.java | 40 + ...ApiextensionsAPIGroupExtensionAdapter.java | 37 + .../client/DefaultKubernetesClient.java | 11 +- .../kubernetes/client/KubernetesClient.java | 14 +- .../client/V1ApiextensionAPIGroupDSL.java | 26 + .../client/V1ApiextensionsAPIGroupClient.java | 38 + ...ApiextensionsAPIGroupExtensionAdapter.java | 35 + .../V1beta1ApiextensionAPIGroupDSL.java | 26 + .../V1beta1ApiextensionsAPIGroupClient.java | 38 + ...ApiextensionsAPIGroupExtensionAdapter.java | 35 + .../client/dsl/ApiextensionsAPIGroupDSL.java | 25 + .../base/CustomResourceDefinitionContext.java | 2 +- .../CustomResourceOperationContext.java | 2 +- ...ustomResourceDefinitionOperationsImpl.java | 60 - .../client/osgi/ManagedKubernetesClient.java | 12 +- ...fabric8.kubernetes.client.ExtensionAdapter | 3 + .../CustomResourceOperationsImplTest.java | 4 +- .../kubernetes/client/internal/UtilsTest.java | 2 +- .../client/utils/SerializationTest.java | 4 +- .../kubernetes/examples/CRDExample.java | 6 +- .../kubernetes/examples/CRDLoadExample.java | 4 +- .../ListCustomResourceDefinitions.java | 4 +- .../examples/RawCustomResourceExample.java | 2 +- .../cmd/generate/generate.go | 45 +- .../{ => v1}/JSONSchemaPropsOrArraySerDe.java | 2 +- .../{ => v1}/JSONSchemaPropsOrBoolSerDe.java | 2 +- .../JSONSchemaPropsOrStringArraySerDe.java | 2 +- .../v1beta1/JSONSchemaPropsOrArraySerDe.java | 65 + .../v1beta1/JSONSchemaPropsOrBoolSerDe.java | 60 + .../JSONSchemaPropsOrStringArraySerDe.java | 64 + .../main/resources/schema/kube-schema.json | 1104 ++++++++++++-- .../resources/schema/validation-schema.json | 1279 ++++++++++++++--- .../v1/CustomResourceDefinitionTest.java | 95 ++ .../{ => v1}/JSONSchemaPropsOrArrayTest.java | 13 +- .../{ => v1}/JSONSchemaPropsOrBoolTest.java | 13 +- .../JSONSchemaPropsOrStringArrayTest.java | 13 +- .../CustomResourceDefinitionTest.java | 6 +- .../v1beta1/JSONSchemaPropsOrArrayTest.java | 90 ++ .../v1beta1/JSONSchemaPropsOrBoolTest.java | 95 ++ .../JSONSchemaPropsOrStringArrayTest.java | 101 ++ .../valid-v1-crd-jsonschemapropsorarray.json | 154 ++ ...d-v1-crd-jsonschemapropsorstringarray.json | 152 ++ .../src/test/resources/valid-v1-crd.json | 150 ++ .../internal/KubernetesDeserializer.java | 3 +- .../pkg/schemagen/generate.go | 6 + .../client/mock/CustomResourceCrudTest.java | 2 +- .../mock/CustomResourceDefinitionTest.java | 18 +- .../client/mock/CustomResourceTest.java | 6 +- .../client/mock/PropagationPolicyTest.java | 2 +- ...ypedClusterScopeCustomResourceApiTest.java | 4 +- .../mock/TypedCustomResourceApiTest.java | 4 +- .../mock/V1CustomResourceDefinitionTest.java | 133 ++ .../src/test/resources/crd-v1-list.yml | 47 + .../client/DefaultOpenShiftClient.java | 11 +- .../client/osgi/ManagedOpenShiftClient.java | 11 +- 56 files changed, 3678 insertions(+), 507 deletions(-) create mode 100644 kubernetes-client/src/main/java/io/fabric8/kubernetes/client/ApiextensionsAPIGroupClient.java create mode 100644 kubernetes-client/src/main/java/io/fabric8/kubernetes/client/ApiextensionsAPIGroupExtensionAdapter.java create mode 100644 kubernetes-client/src/main/java/io/fabric8/kubernetes/client/V1ApiextensionAPIGroupDSL.java create mode 100644 kubernetes-client/src/main/java/io/fabric8/kubernetes/client/V1ApiextensionsAPIGroupClient.java create mode 100644 kubernetes-client/src/main/java/io/fabric8/kubernetes/client/V1ApiextensionsAPIGroupExtensionAdapter.java create mode 100644 kubernetes-client/src/main/java/io/fabric8/kubernetes/client/V1beta1ApiextensionAPIGroupDSL.java create mode 100644 kubernetes-client/src/main/java/io/fabric8/kubernetes/client/V1beta1ApiextensionsAPIGroupClient.java create mode 100644 kubernetes-client/src/main/java/io/fabric8/kubernetes/client/V1beta1ApiextensionsAPIGroupExtensionAdapter.java create mode 100644 kubernetes-client/src/main/java/io/fabric8/kubernetes/client/dsl/ApiextensionsAPIGroupDSL.java delete mode 100644 kubernetes-client/src/main/java/io/fabric8/kubernetes/client/dsl/internal/apiextensions/v1beta1/CustomResourceDefinitionOperationsImpl.java rename kubernetes-model-generator/kubernetes-model-apiextensions/src/main/java/io/fabric8/kubernetes/api/model/apiextensions/{ => v1}/JSONSchemaPropsOrArraySerDe.java (97%) rename kubernetes-model-generator/kubernetes-model-apiextensions/src/main/java/io/fabric8/kubernetes/api/model/apiextensions/{ => v1}/JSONSchemaPropsOrBoolSerDe.java (97%) rename kubernetes-model-generator/kubernetes-model-apiextensions/src/main/java/io/fabric8/kubernetes/api/model/apiextensions/{ => v1}/JSONSchemaPropsOrStringArraySerDe.java (97%) create mode 100644 kubernetes-model-generator/kubernetes-model-apiextensions/src/main/java/io/fabric8/kubernetes/api/model/apiextensions/v1beta1/JSONSchemaPropsOrArraySerDe.java create mode 100644 kubernetes-model-generator/kubernetes-model-apiextensions/src/main/java/io/fabric8/kubernetes/api/model/apiextensions/v1beta1/JSONSchemaPropsOrBoolSerDe.java create mode 100644 kubernetes-model-generator/kubernetes-model-apiextensions/src/main/java/io/fabric8/kubernetes/api/model/apiextensions/v1beta1/JSONSchemaPropsOrStringArraySerDe.java create mode 100644 kubernetes-model-generator/kubernetes-model-apiextensions/src/test/java/io/fabric8/kubernetes/api/model/apiextensions/v1/CustomResourceDefinitionTest.java rename kubernetes-model-generator/kubernetes-model-apiextensions/src/test/java/io/fabric8/kubernetes/api/model/apiextensions/{ => v1}/JSONSchemaPropsOrArrayTest.java (98%) rename kubernetes-model-generator/kubernetes-model-apiextensions/src/test/java/io/fabric8/kubernetes/api/model/apiextensions/{ => v1}/JSONSchemaPropsOrBoolTest.java (98%) rename kubernetes-model-generator/kubernetes-model-apiextensions/src/test/java/io/fabric8/kubernetes/api/model/apiextensions/{ => v1}/JSONSchemaPropsOrStringArrayTest.java (98%) rename kubernetes-model-generator/kubernetes-model-apiextensions/src/test/java/io/fabric8/kubernetes/api/model/apiextensions/{ => v1beta1}/CustomResourceDefinitionTest.java (95%) create mode 100644 kubernetes-model-generator/kubernetes-model-apiextensions/src/test/java/io/fabric8/kubernetes/api/model/apiextensions/v1beta1/JSONSchemaPropsOrArrayTest.java create mode 100644 kubernetes-model-generator/kubernetes-model-apiextensions/src/test/java/io/fabric8/kubernetes/api/model/apiextensions/v1beta1/JSONSchemaPropsOrBoolTest.java create mode 100644 kubernetes-model-generator/kubernetes-model-apiextensions/src/test/java/io/fabric8/kubernetes/api/model/apiextensions/v1beta1/JSONSchemaPropsOrStringArrayTest.java create mode 100644 kubernetes-model-generator/kubernetes-model-apiextensions/src/test/resources/valid-v1-crd-jsonschemapropsorarray.json create mode 100644 kubernetes-model-generator/kubernetes-model-apiextensions/src/test/resources/valid-v1-crd-jsonschemapropsorstringarray.json create mode 100644 kubernetes-model-generator/kubernetes-model-apiextensions/src/test/resources/valid-v1-crd.json create mode 100644 kubernetes-tests/src/test/java/io/fabric8/kubernetes/client/mock/V1CustomResourceDefinitionTest.java create mode 100644 kubernetes-tests/src/test/resources/crd-v1-list.yml diff --git a/CHANGELOG.md b/CHANGELOG.md index d28b33b8036..dd9dbb28267 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,8 +6,11 @@ #### Improvements #### Dependency Upgrade +* Fix #2355: bump jandex from 2.1.3.Final to 2.2.0.Final +* Fix #2353: bump workflow action-setup-* versions + kubernetes to 1.18.6 #### New Features +* Fix #2287: Add support for V1 and V1Beta1 CustomResourceDefinition ### 4.10.3 (2020-07-14) #### Bugs diff --git a/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/ApiextensionsAPIGroupClient.java b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/ApiextensionsAPIGroupClient.java new file mode 100644 index 00000000000..f4a92bc8040 --- /dev/null +++ b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/ApiextensionsAPIGroupClient.java @@ -0,0 +1,40 @@ +/** + * Copyright (C) 2015 Red Hat, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.fabric8.kubernetes.client; + +import io.fabric8.kubernetes.client.dsl.ApiextensionsAPIGroupDSL; +import okhttp3.OkHttpClient; + +public class ApiextensionsAPIGroupClient extends BaseClient implements ApiextensionsAPIGroupDSL { + public ApiextensionsAPIGroupClient() { + super(); + } + + public ApiextensionsAPIGroupClient(OkHttpClient httpClient, final Config config) { + super(httpClient, config); + } + + + @Override + public V1ApiextensionAPIGroupDSL v1() { + return adapt(V1ApiextensionsAPIGroupClient.class); + } + + @Override + public V1beta1ApiextensionAPIGroupDSL v1beta1() { + return adapt(V1beta1ApiextensionsAPIGroupClient.class); + } +} diff --git a/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/ApiextensionsAPIGroupExtensionAdapter.java b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/ApiextensionsAPIGroupExtensionAdapter.java new file mode 100644 index 00000000000..e3b05fe06a5 --- /dev/null +++ b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/ApiextensionsAPIGroupExtensionAdapter.java @@ -0,0 +1,37 @@ +/** + * Copyright (C) 2015 Red Hat, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.fabric8.kubernetes.client; + +import okhttp3.OkHttpClient; + +public class ApiextensionsAPIGroupExtensionAdapter extends APIGroupExtensionAdapter { + + @Override + protected String getAPIGroupName() { + return "apiextension"; + } + + @Override + public Class getExtensionType() { + return ApiextensionsAPIGroupClient.class; + } + + @Override + protected ApiextensionsAPIGroupClient newInstance(Client client) { + return new ApiextensionsAPIGroupClient(client.adapt(OkHttpClient.class), client.getConfiguration()); + } + +} diff --git a/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/DefaultKubernetesClient.java b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/DefaultKubernetesClient.java index c725a93e225..e508a499642 100644 --- a/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/DefaultKubernetesClient.java +++ b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/DefaultKubernetesClient.java @@ -25,9 +25,9 @@ import io.fabric8.kubernetes.api.model.HasMetadata; import io.fabric8.kubernetes.api.model.KubernetesListBuilder; import io.fabric8.kubernetes.api.model.KubernetesResourceList; -import io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinition; -import io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionList; -import io.fabric8.kubernetes.api.model.apiextensions.DoneableCustomResourceDefinition; +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinition; +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionList; +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.DoneableCustomResourceDefinition; import io.fabric8.kubernetes.api.model.ConfigMap; import io.fabric8.kubernetes.api.model.ConfigMapList; import io.fabric8.kubernetes.api.model.DoneableConfigMap; @@ -288,6 +288,11 @@ public NonNamespaceOperation, D extends Doneable> MixedOperation> customResources(CustomResourceDefinitionContext crdContext, Class resourceType, Class listClass, Class doneClass) { return new CustomResourceOperationsImpl<>(new CustomResourceOperationContext().withOkhttpClient(httpClient).withConfig(getConfiguration()) diff --git a/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/KubernetesClient.java b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/KubernetesClient.java index 0e61c5ae5ef..773220ab17e 100644 --- a/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/KubernetesClient.java +++ b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/KubernetesClient.java @@ -73,9 +73,9 @@ import io.fabric8.kubernetes.api.model.coordination.v1.Lease; import io.fabric8.kubernetes.api.model.coordination.v1.LeaseList; import io.fabric8.kubernetes.client.dsl.*; -import io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinition; -import io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionList; -import io.fabric8.kubernetes.api.model.apiextensions.DoneableCustomResourceDefinition; +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinition; +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionList; +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.DoneableCustomResourceDefinition; import io.fabric8.kubernetes.client.dsl.base.CustomResourceDefinitionContext; import io.fabric8.kubernetes.client.dsl.internal.RawCustomResourceOperationsImpl; import io.fabric8.kubernetes.client.extended.leaderelection.LeaderElectorBuilder; @@ -98,6 +98,14 @@ public interface KubernetesClient extends Client { */ NonNamespaceOperation> customResourceDefinitions(); + /** + * API entrypoint for apiextensions resources. Currently support both + * v1 and v1beta1 + * + * @return ApiextensionsAPIGroupDSL which routes to v1 or v1beta1 + */ + ApiextensionsAPIGroupDSL apiextensions(); + /** * Typed API for managing CustomResources. You would need to provide POJOs for * CustomResource into this and with it you would be able to instantiate a client diff --git a/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/V1ApiextensionAPIGroupDSL.java b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/V1ApiextensionAPIGroupDSL.java new file mode 100644 index 00000000000..c2e4033cd25 --- /dev/null +++ b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/V1ApiextensionAPIGroupDSL.java @@ -0,0 +1,26 @@ +/** + * Copyright (C) 2015 Red Hat, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.fabric8.kubernetes.client; + +import io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinition; +import io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionList; +import io.fabric8.kubernetes.api.model.apiextensions.v1.DoneableCustomResourceDefinition; +import io.fabric8.kubernetes.client.dsl.MixedOperation; +import io.fabric8.kubernetes.client.dsl.Resource; + +public interface V1ApiextensionAPIGroupDSL extends Client { + MixedOperation> customResourceDefinitions(); +} diff --git a/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/V1ApiextensionsAPIGroupClient.java b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/V1ApiextensionsAPIGroupClient.java new file mode 100644 index 00000000000..ec917750448 --- /dev/null +++ b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/V1ApiextensionsAPIGroupClient.java @@ -0,0 +1,38 @@ +/** + * Copyright (C) 2015 Red Hat, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.fabric8.kubernetes.client; + +import io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinition; +import io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionList; +import io.fabric8.kubernetes.api.model.apiextensions.v1.DoneableCustomResourceDefinition; +import io.fabric8.kubernetes.client.dsl.MixedOperation; +import io.fabric8.kubernetes.client.dsl.Resource; +import io.fabric8.kubernetes.client.dsl.internal.apiextensions.v1.CustomResourceDefinitionOperationsImpl; +import okhttp3.OkHttpClient; + +public class V1ApiextensionsAPIGroupClient extends BaseClient implements V1ApiextensionAPIGroupDSL { + public V1ApiextensionsAPIGroupClient() { + super(); + } + + public V1ApiextensionsAPIGroupClient(OkHttpClient httpClient, final Config config) { + super(httpClient, config); + } + + public MixedOperation> customResourceDefinitions() { + return new CustomResourceDefinitionOperationsImpl(httpClient, getConfiguration()); + } +} diff --git a/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/V1ApiextensionsAPIGroupExtensionAdapter.java b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/V1ApiextensionsAPIGroupExtensionAdapter.java new file mode 100644 index 00000000000..0a3df11dfdf --- /dev/null +++ b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/V1ApiextensionsAPIGroupExtensionAdapter.java @@ -0,0 +1,35 @@ +/** + * Copyright (C) 2015 Red Hat, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.fabric8.kubernetes.client; + +import okhttp3.OkHttpClient; + +public class V1ApiextensionsAPIGroupExtensionAdapter extends APIGroupExtensionAdapter { + @Override + protected String getAPIGroupName() { + return "apiextensions/v1"; + } + + @Override + public Class getExtensionType() { + return V1ApiextensionsAPIGroupClient.class; + } + + @Override + protected V1ApiextensionsAPIGroupClient newInstance(Client client) { + return new V1ApiextensionsAPIGroupClient(client.adapt(OkHttpClient.class), client.getConfiguration()); + } +} diff --git a/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/V1beta1ApiextensionAPIGroupDSL.java b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/V1beta1ApiextensionAPIGroupDSL.java new file mode 100644 index 00000000000..2f86d0e6518 --- /dev/null +++ b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/V1beta1ApiextensionAPIGroupDSL.java @@ -0,0 +1,26 @@ +/** + * Copyright (C) 2015 Red Hat, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.fabric8.kubernetes.client; + +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinition; +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionList; +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.DoneableCustomResourceDefinition; +import io.fabric8.kubernetes.client.dsl.MixedOperation; +import io.fabric8.kubernetes.client.dsl.Resource; + +public interface V1beta1ApiextensionAPIGroupDSL extends Client { + MixedOperation> customResourceDefinitions(); +} diff --git a/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/V1beta1ApiextensionsAPIGroupClient.java b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/V1beta1ApiextensionsAPIGroupClient.java new file mode 100644 index 00000000000..ffdc044f285 --- /dev/null +++ b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/V1beta1ApiextensionsAPIGroupClient.java @@ -0,0 +1,38 @@ +/** + * Copyright (C) 2015 Red Hat, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.fabric8.kubernetes.client; + +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinition; +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionList; +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.DoneableCustomResourceDefinition; +import io.fabric8.kubernetes.client.dsl.MixedOperation; +import io.fabric8.kubernetes.client.dsl.Resource; +import io.fabric8.kubernetes.client.dsl.internal.apiextensions.v1beta1.CustomResourceDefinitionOperationsImpl; +import okhttp3.OkHttpClient; + +public class V1beta1ApiextensionsAPIGroupClient extends BaseClient implements V1beta1ApiextensionAPIGroupDSL { + public V1beta1ApiextensionsAPIGroupClient() { + super(); + } + + public V1beta1ApiextensionsAPIGroupClient(OkHttpClient httpClient, final Config config) { + super(httpClient, config); + } + + public MixedOperation> customResourceDefinitions() { + return new CustomResourceDefinitionOperationsImpl(httpClient, getConfiguration()); + } +} diff --git a/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/V1beta1ApiextensionsAPIGroupExtensionAdapter.java b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/V1beta1ApiextensionsAPIGroupExtensionAdapter.java new file mode 100644 index 00000000000..1055924946c --- /dev/null +++ b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/V1beta1ApiextensionsAPIGroupExtensionAdapter.java @@ -0,0 +1,35 @@ +/** + * Copyright (C) 2015 Red Hat, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.fabric8.kubernetes.client; + +import okhttp3.OkHttpClient; + +public class V1beta1ApiextensionsAPIGroupExtensionAdapter extends APIGroupExtensionAdapter { + @Override + protected String getAPIGroupName() { + return "apiextensions/v1beta1"; + } + + @Override + public Class getExtensionType() { + return V1beta1ApiextensionsAPIGroupClient.class; + } + + @Override + protected V1beta1ApiextensionsAPIGroupClient newInstance(Client client) { + return new V1beta1ApiextensionsAPIGroupClient(client.adapt(OkHttpClient.class), client.getConfiguration()); + } +} diff --git a/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/dsl/ApiextensionsAPIGroupDSL.java b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/dsl/ApiextensionsAPIGroupDSL.java new file mode 100644 index 00000000000..3b6e0be77dc --- /dev/null +++ b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/dsl/ApiextensionsAPIGroupDSL.java @@ -0,0 +1,25 @@ +/** + * Copyright (C) 2015 Red Hat, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.fabric8.kubernetes.client.dsl; + +import io.fabric8.kubernetes.client.Client; +import io.fabric8.kubernetes.client.V1ApiextensionAPIGroupDSL; +import io.fabric8.kubernetes.client.V1beta1ApiextensionAPIGroupDSL; + +public interface ApiextensionsAPIGroupDSL extends Client { + V1ApiextensionAPIGroupDSL v1(); + V1beta1ApiextensionAPIGroupDSL v1beta1(); +} diff --git a/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/dsl/base/CustomResourceDefinitionContext.java b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/dsl/base/CustomResourceDefinitionContext.java index b4748dac003..071ed16a9ca 100644 --- a/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/dsl/base/CustomResourceDefinitionContext.java +++ b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/dsl/base/CustomResourceDefinitionContext.java @@ -15,7 +15,7 @@ */ package io.fabric8.kubernetes.client.dsl.base; -import io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinition; +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinition; public class CustomResourceDefinitionContext { private String name; diff --git a/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/dsl/internal/CustomResourceOperationContext.java b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/dsl/internal/CustomResourceOperationContext.java index 044314d6e0d..011d3373214 100644 --- a/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/dsl/internal/CustomResourceOperationContext.java +++ b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/dsl/internal/CustomResourceOperationContext.java @@ -18,7 +18,7 @@ import java.util.Map; import io.fabric8.kubernetes.api.model.DeletionPropagation; -import io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinition; +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinition; import io.fabric8.kubernetes.client.Config; import io.fabric8.kubernetes.client.dsl.base.CustomResourceDefinitionContext; import io.fabric8.kubernetes.client.dsl.base.OperationContext; diff --git a/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/dsl/internal/apiextensions/v1beta1/CustomResourceDefinitionOperationsImpl.java b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/dsl/internal/apiextensions/v1beta1/CustomResourceDefinitionOperationsImpl.java deleted file mode 100644 index 3a938556028..00000000000 --- a/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/dsl/internal/apiextensions/v1beta1/CustomResourceDefinitionOperationsImpl.java +++ /dev/null @@ -1,60 +0,0 @@ -/** - * Copyright (C) 2015 Red Hat, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.fabric8.kubernetes.client.dsl.internal.apiextensions.v1beta1; - -import io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinition; -import io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionList; -import io.fabric8.kubernetes.api.model.apiextensions.DoneableCustomResourceDefinition; -import io.fabric8.kubernetes.client.Config; -import io.fabric8.kubernetes.client.dsl.Resource; -import io.fabric8.kubernetes.client.dsl.base.HasMetadataOperation; -import io.fabric8.kubernetes.client.dsl.base.OperationContext; -import okhttp3.OkHttpClient; - -/** - */ -public class CustomResourceDefinitionOperationsImpl extends HasMetadataOperation> { - - - public CustomResourceDefinitionOperationsImpl(OkHttpClient client, Config config) { - this(client, config, null); - } - - public CustomResourceDefinitionOperationsImpl(OkHttpClient client, Config config, String namespace) { - this(new OperationContext().withOkhttpClient(client).withConfig(config).withNamespace(namespace).withPropagationPolicy(DEFAULT_PROPAGATION_POLICY)); - } - - public CustomResourceDefinitionOperationsImpl(OperationContext context) { - super(context.withApiGroupName("apiextensions.k8s.io") - .withApiGroupVersion("v1beta1") - .withPlural("customresourcedefinitions")); - this.type = CustomResourceDefinition.class; - this.listType = CustomResourceDefinitionList.class; - this.doneableType = DoneableCustomResourceDefinition.class; - } - - @Override - public CustomResourceDefinitionOperationsImpl newInstance(OperationContext context) { - return new CustomResourceDefinitionOperationsImpl(context); - } - - @Override - public boolean isResourceNamespaced() { - return false; - } - -} diff --git a/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/osgi/ManagedKubernetesClient.java b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/osgi/ManagedKubernetesClient.java index 2c04f04eda6..853e83ac374 100644 --- a/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/osgi/ManagedKubernetesClient.java +++ b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/osgi/ManagedKubernetesClient.java @@ -69,9 +69,9 @@ import io.fabric8.kubernetes.api.model.ServiceAccount; import io.fabric8.kubernetes.api.model.ServiceAccountList; import io.fabric8.kubernetes.api.model.ServiceList; -import io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinition; -import io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionList; -import io.fabric8.kubernetes.api.model.apiextensions.DoneableCustomResourceDefinition; +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinition; +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionList; +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.DoneableCustomResourceDefinition; import io.fabric8.kubernetes.api.model.coordination.v1.DoneableLease; import io.fabric8.kubernetes.api.model.coordination.v1.Lease; import io.fabric8.kubernetes.api.model.coordination.v1.LeaseList; @@ -89,6 +89,7 @@ import io.fabric8.kubernetes.client.RequestConfig; import io.fabric8.kubernetes.client.Handlers; import io.fabric8.kubernetes.client.VersionInfo; +import io.fabric8.kubernetes.client.dsl.ApiextensionsAPIGroupDSL; import io.fabric8.kubernetes.client.dsl.AppsAPIGroupDSL; import io.fabric8.kubernetes.client.dsl.AutoscalingAPIGroupDSL; import io.fabric8.kubernetes.client.dsl.BatchAPIGroupDSL; @@ -425,6 +426,11 @@ public NonNamespaceOperation, D extends Doneable> MixedOperation> customResources(CustomResourceDefinitionContext crdContext, Class resourceType, Class listClass, Class doneClass) { return delegate.customResources(crdContext, resourceType, listClass, doneClass); diff --git a/kubernetes-client/src/main/resources/META-INF/services/io.fabric8.kubernetes.client.ExtensionAdapter b/kubernetes-client/src/main/resources/META-INF/services/io.fabric8.kubernetes.client.ExtensionAdapter index 87b9eeb3ca7..e4de37b85fe 100644 --- a/kubernetes-client/src/main/resources/META-INF/services/io.fabric8.kubernetes.client.ExtensionAdapter +++ b/kubernetes-client/src/main/resources/META-INF/services/io.fabric8.kubernetes.client.ExtensionAdapter @@ -19,6 +19,7 @@ io.fabric8.kubernetes.client.AdmissionRegistrationAPIGroupExtensionAdapter io.fabric8.kubernetes.client.V1AdmissionRegistrationAPIGroupExtensionAdapter io.fabric8.kubernetes.client.V1beta1AdmissionRegistrationAPIGroupExtensionAdapter io.fabric8.kubernetes.client.AutoscalingAPIGroupExtensionAdapter +io.fabric8.kubernetes.client.ApiextensionsAPIGroupExtensionAdapter io.fabric8.kubernetes.client.V1AutoscalingAPIGroupExtensionAdapter io.fabric8.kubernetes.client.V2beta1AutoscalingAPIGroupExtensionAdapter io.fabric8.kubernetes.client.V2beta2AutoscalingAPIGroupExtensionAdapter @@ -32,3 +33,5 @@ io.fabric8.kubernetes.client.SchedulingAPIGroupExtensionAdapter io.fabric8.kubernetes.client.SettingsAPIGroupExtensionAdapter io.fabric8.kubernetes.client.StorageAPIGroupExtensionAdapter io.fabric8.kubernetes.client.V1APIGroupExtensionAdapter +io.fabric8.kubernetes.client.V1ApiextensionsAPIGroupExtensionAdapter +io.fabric8.kubernetes.client.V1beta1ApiextensionsAPIGroupExtensionAdapter diff --git a/kubernetes-client/src/test/java/io/fabric8/kubernetes/client/dsl/internal/CustomResourceOperationsImplTest.java b/kubernetes-client/src/test/java/io/fabric8/kubernetes/client/dsl/internal/CustomResourceOperationsImplTest.java index 3410d42dfc5..b92176af4c5 100644 --- a/kubernetes-client/src/test/java/io/fabric8/kubernetes/client/dsl/internal/CustomResourceOperationsImplTest.java +++ b/kubernetes-client/src/test/java/io/fabric8/kubernetes/client/dsl/internal/CustomResourceOperationsImplTest.java @@ -18,8 +18,8 @@ import java.io.IOException; import io.fabric8.kubernetes.api.model.KubernetesResource; -import io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinition; -import io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionBuilder; +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinition; +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionBuilder; import io.fabric8.kubernetes.client.CustomResource; import io.fabric8.kubernetes.client.CustomResourceList; import io.fabric8.kubernetes.client.dsl.base.CustomResourceDefinitionContext; diff --git a/kubernetes-client/src/test/java/io/fabric8/kubernetes/client/internal/UtilsTest.java b/kubernetes-client/src/test/java/io/fabric8/kubernetes/client/internal/UtilsTest.java index 48c0bfbb193..ac41bf725a1 100644 --- a/kubernetes-client/src/test/java/io/fabric8/kubernetes/client/internal/UtilsTest.java +++ b/kubernetes-client/src/test/java/io/fabric8/kubernetes/client/internal/UtilsTest.java @@ -35,7 +35,7 @@ import io.fabric8.kubernetes.api.model.ServiceAccount; import io.fabric8.kubernetes.api.model.admissionregistration.v1.MutatingWebhookConfiguration; import io.fabric8.kubernetes.api.model.admissionregistration.v1.ValidatingWebhookConfiguration; -import io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinition; +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinition; import io.fabric8.kubernetes.api.model.apps.ControllerRevision; import io.fabric8.kubernetes.api.model.apps.DaemonSet; import io.fabric8.kubernetes.api.model.apps.Deployment; diff --git a/kubernetes-client/src/test/java/io/fabric8/kubernetes/client/utils/SerializationTest.java b/kubernetes-client/src/test/java/io/fabric8/kubernetes/client/utils/SerializationTest.java index 549509bf612..02469e3eda9 100644 --- a/kubernetes-client/src/test/java/io/fabric8/kubernetes/client/utils/SerializationTest.java +++ b/kubernetes-client/src/test/java/io/fabric8/kubernetes/client/utils/SerializationTest.java @@ -18,8 +18,8 @@ import io.fabric8.kubernetes.api.model.KubernetesList; import io.fabric8.kubernetes.api.model.KubernetesResource; import io.fabric8.kubernetes.api.model.Service; -import io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinition; -import io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps; +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinition; +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaProps; import io.fabric8.kubernetes.api.model.apps.Deployment; import org.junit.jupiter.api.Disabled; diff --git a/kubernetes-examples/src/main/java/io/fabric8/kubernetes/examples/CRDExample.java b/kubernetes-examples/src/main/java/io/fabric8/kubernetes/examples/CRDExample.java index 3cd2f87831f..51d1d5f3b70 100644 --- a/kubernetes-examples/src/main/java/io/fabric8/kubernetes/examples/CRDExample.java +++ b/kubernetes-examples/src/main/java/io/fabric8/kubernetes/examples/CRDExample.java @@ -17,9 +17,9 @@ import io.fabric8.kubernetes.api.model.ObjectMeta; import io.fabric8.kubernetes.api.model.RootPaths; -import io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinition; -import io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionBuilder; -import io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionList; +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinition; +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionBuilder; +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionList; import io.fabric8.kubernetes.client.CustomResourceList; import io.fabric8.kubernetes.client.DefaultKubernetesClient; import io.fabric8.kubernetes.client.KubernetesClient; diff --git a/kubernetes-examples/src/main/java/io/fabric8/kubernetes/examples/CRDLoadExample.java b/kubernetes-examples/src/main/java/io/fabric8/kubernetes/examples/CRDLoadExample.java index 77dd9f1858e..5017d8e1edf 100644 --- a/kubernetes-examples/src/main/java/io/fabric8/kubernetes/examples/CRDLoadExample.java +++ b/kubernetes-examples/src/main/java/io/fabric8/kubernetes/examples/CRDLoadExample.java @@ -15,8 +15,8 @@ */ package io.fabric8.kubernetes.examples; -import io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinition; -import io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionList; +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinition; +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionList; import io.fabric8.kubernetes.client.DefaultKubernetesClient; import io.fabric8.kubernetes.client.KubernetesClient; import org.slf4j.Logger; diff --git a/kubernetes-examples/src/main/java/io/fabric8/kubernetes/examples/ListCustomResourceDefinitions.java b/kubernetes-examples/src/main/java/io/fabric8/kubernetes/examples/ListCustomResourceDefinitions.java index e6958f3323a..b62aadee3c1 100644 --- a/kubernetes-examples/src/main/java/io/fabric8/kubernetes/examples/ListCustomResourceDefinitions.java +++ b/kubernetes-examples/src/main/java/io/fabric8/kubernetes/examples/ListCustomResourceDefinitions.java @@ -15,8 +15,8 @@ */ package io.fabric8.kubernetes.examples; -import io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinition; -import io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionList; +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinition; +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionList; import io.fabric8.kubernetes.client.DefaultKubernetesClient; import io.fabric8.kubernetes.client.KubernetesClient; import io.fabric8.kubernetes.client.KubernetesClientException; diff --git a/kubernetes-examples/src/main/java/io/fabric8/kubernetes/examples/RawCustomResourceExample.java b/kubernetes-examples/src/main/java/io/fabric8/kubernetes/examples/RawCustomResourceExample.java index a1165e9b441..17afc13a13b 100644 --- a/kubernetes-examples/src/main/java/io/fabric8/kubernetes/examples/RawCustomResourceExample.java +++ b/kubernetes-examples/src/main/java/io/fabric8/kubernetes/examples/RawCustomResourceExample.java @@ -15,7 +15,7 @@ */ package io.fabric8.kubernetes.examples; -import io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinition; +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinition; import io.fabric8.kubernetes.client.DefaultKubernetesClient; import io.fabric8.kubernetes.client.KubernetesClient; import io.fabric8.kubernetes.client.KubernetesClientException; diff --git a/kubernetes-model-generator/kubernetes-model-apiextensions/cmd/generate/generate.go b/kubernetes-model-generator/kubernetes-model-apiextensions/cmd/generate/generate.go index e37284cf663..b1dd5277af4 100644 --- a/kubernetes-model-generator/kubernetes-model-apiextensions/cmd/generate/generate.go +++ b/kubernetes-model-generator/kubernetes-model-apiextensions/cmd/generate/generate.go @@ -27,6 +27,7 @@ import ( kapi "k8s.io/api/core/v1" apiextensions "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1" + v1apiextensions "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" "log" "reflect" @@ -67,6 +68,16 @@ type Schema struct { // Added JSONSchemaPropsorStringArray here because of // https://github.com/joelittlejohn/jsonschema2pojo/issues/866 JSONSchemaPropsOrStringArray apiextensions.JSONSchemaPropsOrStringArray + + V1CustomResourceDefinition v1apiextensions.CustomResourceDefinition + V1CustomResourceDefinitionList v1apiextensions.CustomResourceDefinitionList + V1CustomResourceDefinitionSpec v1apiextensions.CustomResourceDefinitionSpec + V1CustomResourceDefinitionNames v1apiextensions.CustomResourceDefinitionNames + V1CustomResourceDefinitionCondition v1apiextensions.CustomResourceDefinitionCondition + V1CustomResourceDefinitionStatus v1apiextensions.CustomResourceDefinitionStatus + // Added JSONSchemaPropsorStringArray here because of + // https://github.com/joelittlejohn/jsonschema2pojo/issues/866 + V1JSONSchemaPropsOrStringArray v1apiextensions.JSONSchemaPropsOrStringArray } func main() { @@ -76,7 +87,8 @@ func main() { {"k8s.io/apimachinery/pkg/version", "", "io.fabric8.kubernetes.api.model.version", "kubernetes_apimachinery_pkg_version_"}, {"k8s.io/apimachinery/pkg/apis/meta/v1", "", "io.fabric8.kubernetes.api.model", "kubernetes_apimachinery_"}, {"k8s.io/api/core/v1", "", "io.fabric8.kubernetes.api.model", "kubernetes_core_"}, - {"k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1", "", "io.fabric8.kubernetes.api.model.apiextensions", "kubernetes_apiextensions_"}, + {"k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1", "", "io.fabric8.kubernetes.api.model.apiextensions.v1beta1", "kubernetes_apiextensions_v1beta1_"}, + {"k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1", "", "io.fabric8.kubernetes.api.model.apiextensions.v1", "kubernetes_apiextensions_v1_"}, } typeMap := map[reflect.Type]reflect.Type{ @@ -87,6 +99,7 @@ func main() { // overwriting some times manualTypeMapping := map[reflect.Type]string{ reflect.TypeOf(apiextensions.JSON{}): "com.fasterxml.jackson.databind.JsonNode", + reflect.TypeOf(v1apiextensions.JSON{}): "com.fasterxml.jackson.databind.JsonNode", } schema, err := schemagen.GenerateSchema(reflect.TypeOf(Schema{}), packages, typeMap, manualTypeMapping, "apiextensions") if err != nil { @@ -95,17 +108,29 @@ func main() { } serdes := map[string]*schemagen.JavaSerDeDescriptor{ - "kubernetes_apiextensions_JSONSchemaPropsOrBool": &schemagen.JavaSerDeDescriptor{ - Serializer: "JSONSchemaPropsOrBoolSerDe.Serializer.class", - Deserializer: "JSONSchemaPropsOrBoolSerDe.Deserializer.class", + "kubernetes_apiextensions_v1beta1_JSONSchemaPropsOrBool": &schemagen.JavaSerDeDescriptor{ + Serializer: "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaPropsOrBoolSerDe.Serializer.class", + Deserializer: "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaPropsOrBoolSerDe.Deserializer.class", + }, + "kubernetes_apiextensions_v1beta1_JSONSchemaPropsOrArray": &schemagen.JavaSerDeDescriptor{ + Serializer: "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaPropsOrArraySerDe.Serializer.class", + Deserializer: "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaPropsOrArraySerDe.Deserializer.class", + }, + "kubernetes_apiextensions_v1beta1_JSONSchemaPropsOrStringArray": &schemagen.JavaSerDeDescriptor{ + Serializer: "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaPropsOrStringArraySerDe.Serializer.class", + Deserializer: "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaPropsOrStringArraySerDe.Deserializer.class", + }, + "kubernetes_apiextensions_v1_JSONSchemaPropsOrBool": &schemagen.JavaSerDeDescriptor{ + Serializer: "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaPropsOrBoolSerDe.Serializer.class", + Deserializer: "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaPropsOrBoolSerDe.Deserializer.class", }, - "kubernetes_apiextensions_JSONSchemaPropsOrArray": &schemagen.JavaSerDeDescriptor{ - Serializer: "JSONSchemaPropsOrArraySerDe.Serializer.class", - Deserializer: "JSONSchemaPropsOrArraySerDe.Deserializer.class", + "kubernetes_apiextensions_v1_JSONSchemaPropsOrArray": &schemagen.JavaSerDeDescriptor{ + Serializer: "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaPropsOrArraySerDe.Serializer.class", + Deserializer: "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaPropsOrArraySerDe.Deserializer.class", }, - "kubernetes_apiextensions_JSONSchemaPropsOrStringArray": &schemagen.JavaSerDeDescriptor{ - Serializer: "JSONSchemaPropsOrStringArraySerDe.Serializer.class", - Deserializer: "JSONSchemaPropsOrStringArraySerDe.Deserializer.class", + "kubernetes_apiextensions_v1_JSONSchemaPropsOrStringArray": &schemagen.JavaSerDeDescriptor{ + Serializer: "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaPropsOrStringArraySerDe.Serializer.class", + Deserializer: "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaPropsOrStringArraySerDe.Deserializer.class", }, } diff --git a/kubernetes-model-generator/kubernetes-model-apiextensions/src/main/java/io/fabric8/kubernetes/api/model/apiextensions/JSONSchemaPropsOrArraySerDe.java b/kubernetes-model-generator/kubernetes-model-apiextensions/src/main/java/io/fabric8/kubernetes/api/model/apiextensions/v1/JSONSchemaPropsOrArraySerDe.java similarity index 97% rename from kubernetes-model-generator/kubernetes-model-apiextensions/src/main/java/io/fabric8/kubernetes/api/model/apiextensions/JSONSchemaPropsOrArraySerDe.java rename to kubernetes-model-generator/kubernetes-model-apiextensions/src/main/java/io/fabric8/kubernetes/api/model/apiextensions/v1/JSONSchemaPropsOrArraySerDe.java index 77ddebdbdbb..6ce79b81d3a 100644 --- a/kubernetes-model-generator/kubernetes-model-apiextensions/src/main/java/io/fabric8/kubernetes/api/model/apiextensions/JSONSchemaPropsOrArraySerDe.java +++ b/kubernetes-model-generator/kubernetes-model-apiextensions/src/main/java/io/fabric8/kubernetes/api/model/apiextensions/v1/JSONSchemaPropsOrArraySerDe.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package io.fabric8.kubernetes.api.model.apiextensions; +package io.fabric8.kubernetes.api.model.apiextensions.v1; import java.io.IOException; import java.util.List; diff --git a/kubernetes-model-generator/kubernetes-model-apiextensions/src/main/java/io/fabric8/kubernetes/api/model/apiextensions/JSONSchemaPropsOrBoolSerDe.java b/kubernetes-model-generator/kubernetes-model-apiextensions/src/main/java/io/fabric8/kubernetes/api/model/apiextensions/v1/JSONSchemaPropsOrBoolSerDe.java similarity index 97% rename from kubernetes-model-generator/kubernetes-model-apiextensions/src/main/java/io/fabric8/kubernetes/api/model/apiextensions/JSONSchemaPropsOrBoolSerDe.java rename to kubernetes-model-generator/kubernetes-model-apiextensions/src/main/java/io/fabric8/kubernetes/api/model/apiextensions/v1/JSONSchemaPropsOrBoolSerDe.java index 63689253186..bd427a22e8c 100644 --- a/kubernetes-model-generator/kubernetes-model-apiextensions/src/main/java/io/fabric8/kubernetes/api/model/apiextensions/JSONSchemaPropsOrBoolSerDe.java +++ b/kubernetes-model-generator/kubernetes-model-apiextensions/src/main/java/io/fabric8/kubernetes/api/model/apiextensions/v1/JSONSchemaPropsOrBoolSerDe.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package io.fabric8.kubernetes.api.model.apiextensions; +package io.fabric8.kubernetes.api.model.apiextensions.v1; import java.io.IOException; diff --git a/kubernetes-model-generator/kubernetes-model-apiextensions/src/main/java/io/fabric8/kubernetes/api/model/apiextensions/JSONSchemaPropsOrStringArraySerDe.java b/kubernetes-model-generator/kubernetes-model-apiextensions/src/main/java/io/fabric8/kubernetes/api/model/apiextensions/v1/JSONSchemaPropsOrStringArraySerDe.java similarity index 97% rename from kubernetes-model-generator/kubernetes-model-apiextensions/src/main/java/io/fabric8/kubernetes/api/model/apiextensions/JSONSchemaPropsOrStringArraySerDe.java rename to kubernetes-model-generator/kubernetes-model-apiextensions/src/main/java/io/fabric8/kubernetes/api/model/apiextensions/v1/JSONSchemaPropsOrStringArraySerDe.java index f950bb473a9..557b4ff30b6 100644 --- a/kubernetes-model-generator/kubernetes-model-apiextensions/src/main/java/io/fabric8/kubernetes/api/model/apiextensions/JSONSchemaPropsOrStringArraySerDe.java +++ b/kubernetes-model-generator/kubernetes-model-apiextensions/src/main/java/io/fabric8/kubernetes/api/model/apiextensions/v1/JSONSchemaPropsOrStringArraySerDe.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package io.fabric8.kubernetes.api.model.apiextensions; +package io.fabric8.kubernetes.api.model.apiextensions.v1; import java.io.IOException; import java.util.List; diff --git a/kubernetes-model-generator/kubernetes-model-apiextensions/src/main/java/io/fabric8/kubernetes/api/model/apiextensions/v1beta1/JSONSchemaPropsOrArraySerDe.java b/kubernetes-model-generator/kubernetes-model-apiextensions/src/main/java/io/fabric8/kubernetes/api/model/apiextensions/v1beta1/JSONSchemaPropsOrArraySerDe.java new file mode 100644 index 00000000000..c9e5724ae42 --- /dev/null +++ b/kubernetes-model-generator/kubernetes-model-apiextensions/src/main/java/io/fabric8/kubernetes/api/model/apiextensions/v1beta1/JSONSchemaPropsOrArraySerDe.java @@ -0,0 +1,65 @@ +/** + * Copyright (C) 2015 Red Hat, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.fabric8.kubernetes.api.model.apiextensions.v1beta1; + +import java.io.IOException; +import java.util.List; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +public class JSONSchemaPropsOrArraySerDe { + + private JSONSchemaPropsOrArraySerDe() { + } + + public static class Serializer extends JsonSerializer { + @Override + public void serialize(JSONSchemaPropsOrArray jsonSchemaPropsOrArray, + JsonGenerator jsonGenerator, + SerializerProvider serializerProvider) throws IOException { + if (jsonSchemaPropsOrArray.getJSONSchemas() != null && !jsonSchemaPropsOrArray.getJSONSchemas().isEmpty()) { + jsonGenerator.writeStartArray(); + for (JSONSchemaProps schema : jsonSchemaPropsOrArray.getJSONSchemas()) { + jsonGenerator.writeObject(schema); + } + jsonGenerator.writeEndArray(); + } else { + jsonGenerator.writeObject(jsonSchemaPropsOrArray.getSchema()); + } + } + } + + public static class Deserializer extends JsonDeserializer { + + @Override + public JSONSchemaPropsOrArray deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException { + JSONSchemaPropsOrArrayBuilder builder = new JSONSchemaPropsOrArrayBuilder(); + if (jsonParser.isExpectedStartObjectToken()) { + builder.withSchema( + jsonParser.readValueAs(JSONSchemaProps.class)); + } else if (jsonParser.isExpectedStartArrayToken()) { + builder.withJSONSchemas(jsonParser.>readValueAs(new TypeReference>() {})); + } + return builder.build(); + } + } +} diff --git a/kubernetes-model-generator/kubernetes-model-apiextensions/src/main/java/io/fabric8/kubernetes/api/model/apiextensions/v1beta1/JSONSchemaPropsOrBoolSerDe.java b/kubernetes-model-generator/kubernetes-model-apiextensions/src/main/java/io/fabric8/kubernetes/api/model/apiextensions/v1beta1/JSONSchemaPropsOrBoolSerDe.java new file mode 100644 index 00000000000..f5431d8497d --- /dev/null +++ b/kubernetes-model-generator/kubernetes-model-apiextensions/src/main/java/io/fabric8/kubernetes/api/model/apiextensions/v1beta1/JSONSchemaPropsOrBoolSerDe.java @@ -0,0 +1,60 @@ +/** + * Copyright (C) 2015 Red Hat, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.fabric8.kubernetes.api.model.apiextensions.v1beta1; + +import java.io.IOException; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +public class JSONSchemaPropsOrBoolSerDe { + + private JSONSchemaPropsOrBoolSerDe() { + } + + public static class Serializer extends JsonSerializer { + @Override + public void serialize(JSONSchemaPropsOrBool jsonSchemaPropsOrBool, + JsonGenerator jsonGenerator, + SerializerProvider serializerProvider) throws IOException { + if (jsonSchemaPropsOrBool.getSchema() != null) { + jsonGenerator.writeObject(jsonSchemaPropsOrBool.getSchema()); + } else { + jsonGenerator.writeBoolean(jsonSchemaPropsOrBool.getAllows()); + } + } + } + + public static class Deserializer extends JsonDeserializer { + + @Override + public JSONSchemaPropsOrBool deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException { + JSONSchemaPropsOrBoolBuilder builder = new JSONSchemaPropsOrBoolBuilder(); + if (jsonParser.isExpectedStartObjectToken()) { + builder.withSchema( + jsonParser.readValueAs(JSONSchemaProps.class)); + builder.withAllows(true); + } else { + builder.withAllows(jsonParser.getBooleanValue()); + } + return builder.build(); + } + } +} diff --git a/kubernetes-model-generator/kubernetes-model-apiextensions/src/main/java/io/fabric8/kubernetes/api/model/apiextensions/v1beta1/JSONSchemaPropsOrStringArraySerDe.java b/kubernetes-model-generator/kubernetes-model-apiextensions/src/main/java/io/fabric8/kubernetes/api/model/apiextensions/v1beta1/JSONSchemaPropsOrStringArraySerDe.java new file mode 100644 index 00000000000..adad269a2c7 --- /dev/null +++ b/kubernetes-model-generator/kubernetes-model-apiextensions/src/main/java/io/fabric8/kubernetes/api/model/apiextensions/v1beta1/JSONSchemaPropsOrStringArraySerDe.java @@ -0,0 +1,64 @@ +/** + * Copyright (C) 2015 Red Hat, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.fabric8.kubernetes.api.model.apiextensions.v1beta1; + +import java.io.IOException; +import java.util.List; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +public class JSONSchemaPropsOrStringArraySerDe { + private JSONSchemaPropsOrStringArraySerDe() { + } + + public static class Serializer extends JsonSerializer { + @Override + public void serialize(JSONSchemaPropsOrStringArray jsonSchemaPropsOrStringArray, + JsonGenerator jsonGenerator, + SerializerProvider serializerProvider) throws IOException { + if (jsonSchemaPropsOrStringArray.getProperty() != null && !jsonSchemaPropsOrStringArray.getProperty().isEmpty()) { + jsonGenerator.writeStartArray(); + for (String property : jsonSchemaPropsOrStringArray.getProperty()) { + jsonGenerator.writeObject(property); + } + jsonGenerator.writeEndArray(); + } else { + jsonGenerator.writeObject(jsonSchemaPropsOrStringArray.getSchema()); + } + } + } + + public static class Deserializer extends JsonDeserializer { + + @Override + public JSONSchemaPropsOrStringArray deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException { + JSONSchemaPropsOrStringArrayBuilder builder = new JSONSchemaPropsOrStringArrayBuilder(); + if (jsonParser.isExpectedStartObjectToken()) { + builder.withSchema( + jsonParser.readValueAs(JSONSchemaProps.class)); + } else if (jsonParser.isExpectedStartArrayToken()) { + builder.withProperty(jsonParser.>readValueAs(new TypeReference>() {})); + } + return builder.build(); + } + } +} diff --git a/kubernetes-model-generator/kubernetes-model-apiextensions/src/main/resources/schema/kube-schema.json b/kubernetes-model-generator/kubernetes-model-apiextensions/src/main/resources/schema/kube-schema.json index 2a04daf015a..8500d8942eb 100644 --- a/kubernetes-model-generator/kubernetes-model-apiextensions/src/main/resources/schema/kube-schema.json +++ b/kubernetes-model-generator/kubernetes-model-apiextensions/src/main/resources/schema/kube-schema.json @@ -18,7 +18,801 @@ "io.fabric8.kubernetes.api.model.KubernetesResource" ] }, - "kubernetes_apiextensions_CustomResourceColumnDefinition": { + "kubernetes_apiextensions_v1_CustomResourceColumnDefinition": { + "type": "object", + "description": "", + "properties": { + "description": { + "type": "string", + "description": "" + }, + "format": { + "type": "string", + "description": "" + }, + "jsonPath": { + "type": "string", + "description": "" + }, + "name": { + "type": "string", + "description": "" + }, + "priority": { + "type": "integer", + "description": "" + }, + "type": { + "type": "string", + "description": "" + } + }, + "additionalProperties": true, + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceColumnDefinition", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.KubernetesResource" + ] + }, + "kubernetes_apiextensions_v1_CustomResourceConversion": { + "type": "object", + "description": "", + "properties": { + "strategy": { + "type": "string", + "description": "" + }, + "webhook": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_WebhookConversion", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.WebhookConversion" + } + }, + "additionalProperties": true, + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceConversion", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.KubernetesResource" + ] + }, + "kubernetes_apiextensions_v1_CustomResourceDefinition": { + "type": "object", + "description": "", + "properties": { + "apiVersion": { + "type": "string", + "description": "", + "default": "apiextensions.k8s.io/v1", + "required": true + }, + "kind": { + "type": "string", + "description": "", + "default": "CustomResourceDefinition", + "required": true + }, + "metadata": { + "$ref": "#/definitions/kubernetes_apimachinery_ObjectMeta", + "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta" + }, + "spec": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_CustomResourceDefinitionSpec", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionSpec" + }, + "status": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_CustomResourceDefinitionStatus", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionStatus" + } + }, + "additionalProperties": true, + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinition", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.HasMetadata" + ] + }, + "kubernetes_apiextensions_v1_CustomResourceDefinitionCondition": { + "type": "object", + "description": "", + "properties": { + "lastTransitionTime": { + "$ref": "#/definitions/kubernetes_apimachinery_Time", + "javaType": "String" + }, + "message": { + "type": "string", + "description": "" + }, + "reason": { + "type": "string", + "description": "" + }, + "status": { + "type": "string", + "description": "" + }, + "type": { + "type": "string", + "description": "" + } + }, + "additionalProperties": true, + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionCondition", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.KubernetesResource" + ] + }, + "kubernetes_apiextensions_v1_CustomResourceDefinitionList": { + "type": "object", + "description": "", + "properties": { + "apiVersion": { + "type": "string", + "description": "", + "default": "apiextensions.k8s.io/v1", + "required": true + }, + "items": { + "type": "array", + "description": "", + "items": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_CustomResourceDefinition", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinition" + } + }, + "kind": { + "type": "string", + "description": "", + "default": "CustomResourceDefinitionList", + "required": true + }, + "metadata": { + "$ref": "#/definitions/kubernetes_apimachinery_ListMeta", + "javaType": "io.fabric8.kubernetes.api.model.ListMeta" + } + }, + "additionalProperties": true, + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionList", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.KubernetesResource", + "io.fabric8.kubernetes.api.model.KubernetesResourceList\u003cio.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinition\u003e" + ] + }, + "kubernetes_apiextensions_v1_CustomResourceDefinitionNames": { + "type": "object", + "description": "", + "properties": { + "categories": { + "type": "array", + "description": "", + "javaOmitEmpty": true, + "items": { + "type": "string", + "description": "" + } + }, + "kind": { + "type": "string", + "description": "" + }, + "listKind": { + "type": "string", + "description": "" + }, + "plural": { + "type": "string", + "description": "" + }, + "shortNames": { + "type": "array", + "description": "", + "javaOmitEmpty": true, + "items": { + "type": "string", + "description": "" + } + }, + "singular": { + "type": "string", + "description": "" + } + }, + "additionalProperties": true, + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionNames", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.KubernetesResource" + ] + }, + "kubernetes_apiextensions_v1_CustomResourceDefinitionSpec": { + "type": "object", + "description": "", + "properties": { + "conversion": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_CustomResourceConversion", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceConversion" + }, + "group": { + "type": "string", + "description": "" + }, + "names": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_CustomResourceDefinitionNames", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionNames" + }, + "preserveUnknownFields": { + "type": "boolean", + "description": "" + }, + "scope": { + "type": "string", + "description": "" + }, + "versions": { + "type": "array", + "description": "", + "items": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_CustomResourceDefinitionVersion", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionVersion" + } + } + }, + "additionalProperties": true, + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionSpec", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.KubernetesResource" + ] + }, + "kubernetes_apiextensions_v1_CustomResourceDefinitionStatus": { + "type": "object", + "description": "", + "properties": { + "acceptedNames": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_CustomResourceDefinitionNames", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionNames" + }, + "conditions": { + "type": "array", + "description": "", + "items": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_CustomResourceDefinitionCondition", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionCondition" + } + }, + "storedVersions": { + "type": "array", + "description": "", + "items": { + "type": "string", + "description": "" + } + } + }, + "additionalProperties": true, + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionStatus", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.KubernetesResource" + ] + }, + "kubernetes_apiextensions_v1_CustomResourceDefinitionVersion": { + "type": "object", + "description": "", + "properties": { + "additionalPrinterColumns": { + "type": "array", + "description": "", + "javaOmitEmpty": true, + "items": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_CustomResourceColumnDefinition", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceColumnDefinition" + } + }, + "name": { + "type": "string", + "description": "" + }, + "schema": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_CustomResourceValidation", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceValidation" + }, + "served": { + "type": "boolean", + "description": "" + }, + "storage": { + "type": "boolean", + "description": "" + }, + "subresources": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_CustomResourceSubresources", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceSubresources" + } + }, + "additionalProperties": true, + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionVersion", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.KubernetesResource" + ] + }, + "kubernetes_apiextensions_v1_CustomResourceSubresourceScale": { + "type": "object", + "description": "", + "properties": { + "labelSelectorPath": { + "type": "string", + "description": "" + }, + "specReplicasPath": { + "type": "string", + "description": "" + }, + "statusReplicasPath": { + "type": "string", + "description": "" + } + }, + "additionalProperties": true, + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceSubresourceScale", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.KubernetesResource" + ] + }, + "kubernetes_apiextensions_v1_CustomResourceSubresourceStatus": { + "type": "object", + "description": "", + "additionalProperties": true, + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceSubresourceStatus", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.KubernetesResource" + ] + }, + "kubernetes_apiextensions_v1_CustomResourceSubresources": { + "type": "object", + "description": "", + "properties": { + "scale": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_CustomResourceSubresourceScale", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceSubresourceScale" + }, + "status": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_CustomResourceSubresourceStatus", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceSubresourceStatus" + } + }, + "additionalProperties": true, + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceSubresources", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.KubernetesResource" + ] + }, + "kubernetes_apiextensions_v1_CustomResourceValidation": { + "type": "object", + "description": "", + "properties": { + "openAPIV3Schema": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps" + } + }, + "additionalProperties": true, + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceValidation", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.KubernetesResource" + ] + }, + "kubernetes_apiextensions_v1_ExternalDocumentation": { + "type": "object", + "description": "", + "properties": { + "description": { + "type": "string", + "description": "" + }, + "url": { + "type": "string", + "description": "" + } + }, + "additionalProperties": true, + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.ExternalDocumentation", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.KubernetesResource" + ] + }, + "kubernetes_apiextensions_v1_JSON": { + "type": "object", + "description": "", + "properties": { + "Raw": { + "type": "string", + "description": "" + } + }, + "additionalProperties": true, + "javaType": "com.fasterxml.jackson.databind.JsonNode", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.KubernetesResource" + ] + }, + "kubernetes_apiextensions_v1_JSONSchemaProps": { + "type": "object", + "description": "", + "properties": { + "$ref": { + "type": "string", + "description": "" + }, + "$schema": { + "type": "string", + "description": "" + }, + "additionalItems": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaPropsOrBool", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaPropsOrBool" + }, + "additionalProperties": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaPropsOrBool", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaPropsOrBool" + }, + "allOf": { + "type": "array", + "description": "", + "javaOmitEmpty": true, + "items": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps" + } + }, + "anyOf": { + "type": "array", + "description": "", + "javaOmitEmpty": true, + "items": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps" + } + }, + "default": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSON", + "javaType": "com.fasterxml.jackson.databind.JsonNode" + }, + "definitions": { + "type": "object", + "description": "", + "additionalProperties": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps" + }, + "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps\u003e" + }, + "dependencies": { + "type": "object", + "description": "", + "additionalProperties": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaPropsOrStringArray", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaPropsOrStringArray" + }, + "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaPropsOrStringArray\u003e" + }, + "description": { + "type": "string", + "description": "" + }, + "enum": { + "type": "array", + "description": "", + "javaOmitEmpty": true, + "items": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSON", + "javaType": "com.fasterxml.jackson.databind.JsonNode" + } + }, + "example": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSON", + "javaType": "com.fasterxml.jackson.databind.JsonNode" + }, + "exclusiveMaximum": { + "type": "boolean", + "description": "" + }, + "exclusiveMinimum": { + "type": "boolean", + "description": "" + }, + "externalDocs": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_ExternalDocumentation", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.ExternalDocumentation" + }, + "format": { + "type": "string", + "description": "" + }, + "id": { + "type": "string", + "description": "" + }, + "items": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaPropsOrArray", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaPropsOrArray" + }, + "maxItems": { + "type": "integer", + "description": "", + "javaType": "Long" + }, + "maxLength": { + "type": "integer", + "description": "", + "javaType": "Long" + }, + "maxProperties": { + "type": "integer", + "description": "", + "javaType": "Long" + }, + "maximum": { + "type": "number", + "description": "" + }, + "minItems": { + "type": "integer", + "description": "", + "javaType": "Long" + }, + "minLength": { + "type": "integer", + "description": "", + "javaType": "Long" + }, + "minProperties": { + "type": "integer", + "description": "", + "javaType": "Long" + }, + "minimum": { + "type": "number", + "description": "" + }, + "multipleOf": { + "type": "number", + "description": "" + }, + "not": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps" + }, + "nullable": { + "type": "boolean", + "description": "" + }, + "oneOf": { + "type": "array", + "description": "", + "javaOmitEmpty": true, + "items": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps" + } + }, + "pattern": { + "type": "string", + "description": "" + }, + "patternProperties": { + "type": "object", + "description": "", + "additionalProperties": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps" + }, + "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps\u003e" + }, + "properties": { + "type": "object", + "description": "", + "additionalProperties": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps" + }, + "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps\u003e" + }, + "required": { + "type": "array", + "description": "", + "javaOmitEmpty": true, + "items": { + "type": "string", + "description": "" + } + }, + "title": { + "type": "string", + "description": "" + }, + "type": { + "type": "string", + "description": "" + }, + "uniqueItems": { + "type": "boolean", + "description": "" + }, + "x-kubernetes-embedded-resource": { + "type": "boolean", + "description": "" + }, + "x-kubernetes-int-or-string": { + "type": "boolean", + "description": "" + }, + "x-kubernetes-list-map-keys": { + "type": "array", + "description": "", + "javaOmitEmpty": true, + "items": { + "type": "string", + "description": "" + } + }, + "x-kubernetes-list-type": { + "type": "string", + "description": "" + }, + "x-kubernetes-map-type": { + "type": "string", + "description": "" + }, + "x-kubernetes-preserve-unknown-fields": { + "type": "boolean", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.KubernetesResource" + ] + }, + "kubernetes_apiextensions_v1_JSONSchemaPropsOrArray": { + "type": "object", + "description": "", + "properties": { + "JSONSchemas": { + "type": "array", + "description": "", + "items": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps" + } + }, + "Schema": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps" + } + }, + "additionalProperties": true, + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaPropsOrArray", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.KubernetesResource" + ], + "serializer": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaPropsOrArraySerDe.Serializer.class", + "deserializer": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaPropsOrArraySerDe.Deserializer.class" + }, + "kubernetes_apiextensions_v1_JSONSchemaPropsOrBool": { + "type": "object", + "description": "", + "properties": { + "Allows": { + "type": "boolean", + "description": "" + }, + "Schema": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps" + } + }, + "additionalProperties": true, + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaPropsOrBool", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.KubernetesResource" + ], + "serializer": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaPropsOrBoolSerDe.Serializer.class", + "deserializer": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaPropsOrBoolSerDe.Deserializer.class" + }, + "kubernetes_apiextensions_v1_JSONSchemaPropsOrStringArray": { + "type": "object", + "description": "", + "properties": { + "Property": { + "type": "array", + "description": "", + "items": { + "type": "string", + "description": "" + } + }, + "Schema": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps" + } + }, + "additionalProperties": true, + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaPropsOrStringArray", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.KubernetesResource" + ], + "serializer": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaPropsOrStringArraySerDe.Serializer.class", + "deserializer": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaPropsOrStringArraySerDe.Deserializer.class" + }, + "kubernetes_apiextensions_v1_ServiceReference": { + "type": "object", + "description": "", + "properties": { + "name": { + "type": "string", + "description": "" + }, + "namespace": { + "type": "string", + "description": "" + }, + "path": { + "type": "string", + "description": "" + }, + "port": { + "type": "integer", + "description": "" + } + }, + "additionalProperties": true, + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.ServiceReference", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.KubernetesResource" + ] + }, + "kubernetes_apiextensions_v1_WebhookClientConfig": { + "type": "object", + "description": "", + "properties": { + "caBundle": { + "type": "string", + "description": "" + }, + "service": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_ServiceReference", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.ServiceReference" + }, + "url": { + "type": "string", + "description": "" + } + }, + "additionalProperties": true, + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.WebhookClientConfig", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.KubernetesResource" + ] + }, + "kubernetes_apiextensions_v1_WebhookConversion": { + "type": "object", + "description": "", + "properties": { + "clientConfig": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_WebhookClientConfig", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.WebhookClientConfig" + }, + "conversionReviewVersions": { + "type": "array", + "description": "", + "items": { + "type": "string", + "description": "" + } + } + }, + "additionalProperties": true, + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.WebhookConversion", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.KubernetesResource" + ] + }, + "kubernetes_apiextensions_v1beta1_CustomResourceColumnDefinition": { "type": "object", "description": "", "properties": { @@ -48,12 +842,12 @@ } }, "additionalProperties": true, - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceColumnDefinition", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceColumnDefinition", "javaInterfaces": [ "io.fabric8.kubernetes.api.model.KubernetesResource" ] }, - "kubernetes_apiextensions_CustomResourceConversion": { + "kubernetes_apiextensions_v1beta1_CustomResourceConversion": { "type": "object", "description": "", "properties": { @@ -71,24 +865,24 @@ "description": "" }, "webhookClientConfig": { - "$ref": "#/definitions/kubernetes_apiextensions_WebhookClientConfig", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.WebhookClientConfig" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_WebhookClientConfig", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.WebhookClientConfig" } }, "additionalProperties": true, - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceConversion", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceConversion", "javaInterfaces": [ "io.fabric8.kubernetes.api.model.KubernetesResource" ] }, - "kubernetes_apiextensions_CustomResourceDefinition": { + "kubernetes_apiextensions_v1beta1_CustomResourceDefinition": { "type": "object", "description": "", "properties": { "apiVersion": { "type": "string", "description": "", - "default": "apiextensions/v1beta1", + "default": "apiextensions.k8s.io/v1beta1", "required": true }, "kind": { @@ -102,21 +896,21 @@ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta" }, "spec": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceDefinitionSpec", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionSpec" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceDefinitionSpec", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionSpec" }, "status": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceDefinitionStatus", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionStatus" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceDefinitionStatus", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionStatus" } }, "additionalProperties": true, - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinition", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinition", "javaInterfaces": [ "io.fabric8.kubernetes.api.model.HasMetadata" ] }, - "kubernetes_apiextensions_CustomResourceDefinitionCondition": { + "kubernetes_apiextensions_v1beta1_CustomResourceDefinitionCondition": { "type": "object", "description": "", "properties": { @@ -142,27 +936,27 @@ } }, "additionalProperties": true, - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionCondition", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionCondition", "javaInterfaces": [ "io.fabric8.kubernetes.api.model.KubernetesResource" ] }, - "kubernetes_apiextensions_CustomResourceDefinitionList": { + "kubernetes_apiextensions_v1beta1_CustomResourceDefinitionList": { "type": "object", "description": "", "properties": { "apiVersion": { "type": "string", "description": "", - "default": "apiextensions/v1beta1", + "default": "apiextensions.k8s.io/v1beta1", "required": true }, "items": { "type": "array", "description": "", "items": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceDefinition", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinition" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceDefinition", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinition" } }, "kind": { @@ -177,13 +971,13 @@ } }, "additionalProperties": true, - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionList", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionList", "javaInterfaces": [ "io.fabric8.kubernetes.api.model.KubernetesResource", - "io.fabric8.kubernetes.api.model.KubernetesResourceList\u003cio.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinition\u003e" + "io.fabric8.kubernetes.api.model.KubernetesResourceList\u003cio.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinition\u003e" ] }, - "kubernetes_apiextensions_CustomResourceDefinitionNames": { + "kubernetes_apiextensions_v1beta1_CustomResourceDefinitionNames": { "type": "object", "description": "", "properties": { @@ -223,12 +1017,12 @@ } }, "additionalProperties": true, - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionNames", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionNames", "javaInterfaces": [ "io.fabric8.kubernetes.api.model.KubernetesResource" ] }, - "kubernetes_apiextensions_CustomResourceDefinitionSpec": { + "kubernetes_apiextensions_v1beta1_CustomResourceDefinitionSpec": { "type": "object", "description": "", "properties": { @@ -237,21 +1031,21 @@ "description": "", "javaOmitEmpty": true, "items": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceColumnDefinition", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceColumnDefinition" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceColumnDefinition", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceColumnDefinition" } }, "conversion": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceConversion", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceConversion" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceConversion", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceConversion" }, "group": { "type": "string", "description": "" }, "names": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceDefinitionNames", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionNames" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceDefinitionNames", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionNames" }, "preserveUnknownFields": { "type": "boolean", @@ -262,12 +1056,12 @@ "description": "" }, "subresources": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceSubresources", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceSubresources" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceSubresources", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceSubresources" }, "validation": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceValidation", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceValidation" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceValidation", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceValidation" }, "version": { "type": "string", @@ -278,31 +1072,31 @@ "description": "", "javaOmitEmpty": true, "items": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceDefinitionVersion", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionVersion" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceDefinitionVersion", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionVersion" } } }, "additionalProperties": true, - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionSpec", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionSpec", "javaInterfaces": [ "io.fabric8.kubernetes.api.model.KubernetesResource" ] }, - "kubernetes_apiextensions_CustomResourceDefinitionStatus": { + "kubernetes_apiextensions_v1beta1_CustomResourceDefinitionStatus": { "type": "object", "description": "", "properties": { "acceptedNames": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceDefinitionNames", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionNames" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceDefinitionNames", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionNames" }, "conditions": { "type": "array", "description": "", "items": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceDefinitionCondition", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionCondition" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceDefinitionCondition", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionCondition" } }, "storedVersions": { @@ -315,12 +1109,12 @@ } }, "additionalProperties": true, - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionStatus", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionStatus", "javaInterfaces": [ "io.fabric8.kubernetes.api.model.KubernetesResource" ] }, - "kubernetes_apiextensions_CustomResourceDefinitionVersion": { + "kubernetes_apiextensions_v1beta1_CustomResourceDefinitionVersion": { "type": "object", "description": "", "properties": { @@ -329,8 +1123,8 @@ "description": "", "javaOmitEmpty": true, "items": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceColumnDefinition", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceColumnDefinition" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceColumnDefinition", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceColumnDefinition" } }, "name": { @@ -338,8 +1132,8 @@ "description": "" }, "schema": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceValidation", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceValidation" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceValidation", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceValidation" }, "served": { "type": "boolean", @@ -350,17 +1144,17 @@ "description": "" }, "subresources": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceSubresources", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceSubresources" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceSubresources", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceSubresources" } }, "additionalProperties": true, - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionVersion", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionVersion", "javaInterfaces": [ "io.fabric8.kubernetes.api.model.KubernetesResource" ] }, - "kubernetes_apiextensions_CustomResourceSubresourceScale": { + "kubernetes_apiextensions_v1beta1_CustomResourceSubresourceScale": { "type": "object", "description": "", "properties": { @@ -378,55 +1172,55 @@ } }, "additionalProperties": true, - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceSubresourceScale", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceSubresourceScale", "javaInterfaces": [ "io.fabric8.kubernetes.api.model.KubernetesResource" ] }, - "kubernetes_apiextensions_CustomResourceSubresourceStatus": { + "kubernetes_apiextensions_v1beta1_CustomResourceSubresourceStatus": { "type": "object", "description": "", "additionalProperties": true, - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceSubresourceStatus", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceSubresourceStatus", "javaInterfaces": [ "io.fabric8.kubernetes.api.model.KubernetesResource" ] }, - "kubernetes_apiextensions_CustomResourceSubresources": { + "kubernetes_apiextensions_v1beta1_CustomResourceSubresources": { "type": "object", "description": "", "properties": { "scale": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceSubresourceScale", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceSubresourceScale" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceSubresourceScale", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceSubresourceScale" }, "status": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceSubresourceStatus", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceSubresourceStatus" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceSubresourceStatus", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceSubresourceStatus" } }, "additionalProperties": true, - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceSubresources", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceSubresources", "javaInterfaces": [ "io.fabric8.kubernetes.api.model.KubernetesResource" ] }, - "kubernetes_apiextensions_CustomResourceValidation": { + "kubernetes_apiextensions_v1beta1_CustomResourceValidation": { "type": "object", "description": "", "properties": { "openAPIV3Schema": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaProps", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaProps" } }, "additionalProperties": true, - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceValidation", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceValidation", "javaInterfaces": [ "io.fabric8.kubernetes.api.model.KubernetesResource" ] }, - "kubernetes_apiextensions_ExternalDocumentation": { + "kubernetes_apiextensions_v1beta1_ExternalDocumentation": { "type": "object", "description": "", "properties": { @@ -440,12 +1234,12 @@ } }, "additionalProperties": true, - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.ExternalDocumentation", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.ExternalDocumentation", "javaInterfaces": [ "io.fabric8.kubernetes.api.model.KubernetesResource" ] }, - "kubernetes_apiextensions_JSON": { + "kubernetes_apiextensions_v1beta1_JSON": { "type": "object", "description": "", "properties": { @@ -460,7 +1254,7 @@ "io.fabric8.kubernetes.api.model.KubernetesResource" ] }, - "kubernetes_apiextensions_JSONSchemaProps": { + "kubernetes_apiextensions_v1beta1_JSONSchemaProps": { "type": "object", "description": "", "properties": { @@ -473,20 +1267,20 @@ "description": "" }, "additionalItems": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaPropsOrBool", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaPropsOrBool" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_JSONSchemaPropsOrBool", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaPropsOrBool" }, "additionalProperties": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaPropsOrBool", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaPropsOrBool" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_JSONSchemaPropsOrBool", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaPropsOrBool" }, "allOf": { "type": "array", "description": "", "javaOmitEmpty": true, "items": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaProps", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaProps" } }, "anyOf": { @@ -494,31 +1288,31 @@ "description": "", "javaOmitEmpty": true, "items": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaProps", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaProps" } }, "default": { - "$ref": "#/definitions/kubernetes_apiextensions_JSON", + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_JSON", "javaType": "com.fasterxml.jackson.databind.JsonNode" }, "definitions": { "type": "object", "description": "", "additionalProperties": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaProps", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaProps" }, - "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps\u003e" + "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaProps\u003e" }, "dependencies": { "type": "object", "description": "", "additionalProperties": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaPropsOrStringArray", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaPropsOrStringArray" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_JSONSchemaPropsOrStringArray", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaPropsOrStringArray" }, - "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaPropsOrStringArray\u003e" + "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaPropsOrStringArray\u003e" }, "description": { "type": "string", @@ -529,12 +1323,12 @@ "description": "", "javaOmitEmpty": true, "items": { - "$ref": "#/definitions/kubernetes_apiextensions_JSON", + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_JSON", "javaType": "com.fasterxml.jackson.databind.JsonNode" } }, "example": { - "$ref": "#/definitions/kubernetes_apiextensions_JSON", + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_JSON", "javaType": "com.fasterxml.jackson.databind.JsonNode" }, "exclusiveMaximum": { @@ -546,8 +1340,8 @@ "description": "" }, "externalDocs": { - "$ref": "#/definitions/kubernetes_apiextensions_ExternalDocumentation", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.ExternalDocumentation" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_ExternalDocumentation", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.ExternalDocumentation" }, "format": { "type": "string", @@ -558,8 +1352,8 @@ "description": "" }, "items": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaPropsOrArray", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaPropsOrArray" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_JSONSchemaPropsOrArray", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaPropsOrArray" }, "maxItems": { "type": "integer", @@ -604,8 +1398,8 @@ "description": "" }, "not": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaProps", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaProps" }, "nullable": { "type": "boolean", @@ -616,8 +1410,8 @@ "description": "", "javaOmitEmpty": true, "items": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaProps", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaProps" } }, "pattern": { @@ -628,19 +1422,19 @@ "type": "object", "description": "", "additionalProperties": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaProps", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaProps" }, - "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps\u003e" + "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaProps\u003e" }, "properties": { "type": "object", "description": "", "additionalProperties": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaProps", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaProps" }, - "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps\u003e" + "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaProps\u003e" }, "required": { "type": "array", @@ -694,12 +1488,12 @@ } }, "additionalProperties": false, - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaProps", "javaInterfaces": [ "io.fabric8.kubernetes.api.model.KubernetesResource" ] }, - "kubernetes_apiextensions_JSONSchemaPropsOrArray": { + "kubernetes_apiextensions_v1beta1_JSONSchemaPropsOrArray": { "type": "object", "description": "", "properties": { @@ -707,24 +1501,24 @@ "type": "array", "description": "", "items": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaProps", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaProps" } }, "Schema": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaProps", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaProps" } }, "additionalProperties": true, - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaPropsOrArray", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaPropsOrArray", "javaInterfaces": [ "io.fabric8.kubernetes.api.model.KubernetesResource" ], - "serializer": "JSONSchemaPropsOrArraySerDe.Serializer.class", - "deserializer": "JSONSchemaPropsOrArraySerDe.Deserializer.class" + "serializer": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaPropsOrArraySerDe.Serializer.class", + "deserializer": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaPropsOrArraySerDe.Deserializer.class" }, - "kubernetes_apiextensions_JSONSchemaPropsOrBool": { + "kubernetes_apiextensions_v1beta1_JSONSchemaPropsOrBool": { "type": "object", "description": "", "properties": { @@ -733,19 +1527,19 @@ "description": "" }, "Schema": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaProps", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaProps" } }, "additionalProperties": true, - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaPropsOrBool", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaPropsOrBool", "javaInterfaces": [ "io.fabric8.kubernetes.api.model.KubernetesResource" ], - "serializer": "JSONSchemaPropsOrBoolSerDe.Serializer.class", - "deserializer": "JSONSchemaPropsOrBoolSerDe.Deserializer.class" + "serializer": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaPropsOrBoolSerDe.Serializer.class", + "deserializer": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaPropsOrBoolSerDe.Deserializer.class" }, - "kubernetes_apiextensions_JSONSchemaPropsOrStringArray": { + "kubernetes_apiextensions_v1beta1_JSONSchemaPropsOrStringArray": { "type": "object", "description": "", "properties": { @@ -758,19 +1552,19 @@ } }, "Schema": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaProps", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaProps" } }, "additionalProperties": true, - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaPropsOrStringArray", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaPropsOrStringArray", "javaInterfaces": [ "io.fabric8.kubernetes.api.model.KubernetesResource" ], - "serializer": "JSONSchemaPropsOrStringArraySerDe.Serializer.class", - "deserializer": "JSONSchemaPropsOrStringArraySerDe.Deserializer.class" + "serializer": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaPropsOrStringArraySerDe.Serializer.class", + "deserializer": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaPropsOrStringArraySerDe.Deserializer.class" }, - "kubernetes_apiextensions_ServiceReference": { + "kubernetes_apiextensions_v1beta1_ServiceReference": { "type": "object", "description": "", "properties": { @@ -792,12 +1586,12 @@ } }, "additionalProperties": true, - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.ServiceReference", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.ServiceReference", "javaInterfaces": [ "io.fabric8.kubernetes.api.model.KubernetesResource" ] }, - "kubernetes_apiextensions_WebhookClientConfig": { + "kubernetes_apiextensions_v1beta1_WebhookClientConfig": { "type": "object", "description": "", "properties": { @@ -806,8 +1600,8 @@ "description": "" }, "service": { - "$ref": "#/definitions/kubernetes_apiextensions_ServiceReference", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.ServiceReference" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_ServiceReference", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.ServiceReference" }, "url": { "type": "string", @@ -815,7 +1609,7 @@ } }, "additionalProperties": true, - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.WebhookClientConfig", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.WebhookClientConfig", "javaInterfaces": [ "io.fabric8.kubernetes.api.model.KubernetesResource" ] @@ -1744,28 +2538,28 @@ "javaType": "io.fabric8.kubernetes.api.model.CreateOptions" }, "CustomResourceDefinition": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceDefinition", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinition" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceDefinition", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinition" }, "CustomResourceDefinitionCondition": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceDefinitionCondition", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionCondition" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceDefinitionCondition", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionCondition" }, "CustomResourceDefinitionList": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceDefinitionList", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionList" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceDefinitionList", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionList" }, "CustomResourceDefinitionNames": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceDefinitionNames", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionNames" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceDefinitionNames", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionNames" }, "CustomResourceDefinitionSpec": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceDefinitionSpec", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionSpec" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceDefinitionSpec", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionSpec" }, "CustomResourceDefinitionStatus": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceDefinitionStatus", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionStatus" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceDefinitionStatus", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionStatus" }, "DeleteOptions": { "$ref": "#/definitions/kubernetes_apimachinery_DeleteOptions", @@ -1780,8 +2574,8 @@ "javaType": "io.fabric8.kubernetes.api.model.version.Info" }, "JSONSchemaPropsOrStringArray": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaPropsOrStringArray", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaPropsOrStringArray" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_JSONSchemaPropsOrStringArray", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaPropsOrStringArray" }, "ListOptions": { "$ref": "#/definitions/kubernetes_apimachinery_ListOptions", @@ -1826,6 +2620,34 @@ "UpdateOptions": { "$ref": "#/definitions/kubernetes_apimachinery_UpdateOptions", "javaType": "io.fabric8.kubernetes.api.model.UpdateOptions" + }, + "V1CustomResourceDefinition": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_CustomResourceDefinition", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinition" + }, + "V1CustomResourceDefinitionCondition": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_CustomResourceDefinitionCondition", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionCondition" + }, + "V1CustomResourceDefinitionList": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_CustomResourceDefinitionList", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionList" + }, + "V1CustomResourceDefinitionNames": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_CustomResourceDefinitionNames", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionNames" + }, + "V1CustomResourceDefinitionSpec": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_CustomResourceDefinitionSpec", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionSpec" + }, + "V1CustomResourceDefinitionStatus": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_CustomResourceDefinitionStatus", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionStatus" + }, + "V1JSONSchemaPropsOrStringArray": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaPropsOrStringArray", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaPropsOrStringArray" } }, "additionalProperties": true diff --git a/kubernetes-model-generator/kubernetes-model-apiextensions/src/main/resources/schema/validation-schema.json b/kubernetes-model-generator/kubernetes-model-apiextensions/src/main/resources/schema/validation-schema.json index 726fa10b7cd..e780db304f0 100644 --- a/kubernetes-model-generator/kubernetes-model-apiextensions/src/main/resources/schema/validation-schema.json +++ b/kubernetes-model-generator/kubernetes-model-apiextensions/src/main/resources/schema/validation-schema.json @@ -18,7 +18,801 @@ "io.fabric8.kubernetes.api.model.KubernetesResource" ] }, - "kubernetes_apiextensions_CustomResourceColumnDefinition": { + "kubernetes_apiextensions_v1_CustomResourceColumnDefinition": { + "type": "object", + "description": "", + "properties": { + "description": { + "type": "string", + "description": "" + }, + "format": { + "type": "string", + "description": "" + }, + "jsonPath": { + "type": "string", + "description": "" + }, + "name": { + "type": "string", + "description": "" + }, + "priority": { + "type": "integer", + "description": "" + }, + "type": { + "type": "string", + "description": "" + } + }, + "additionalProperties": true, + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceColumnDefinition", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.KubernetesResource" + ] + }, + "kubernetes_apiextensions_v1_CustomResourceConversion": { + "type": "object", + "description": "", + "properties": { + "strategy": { + "type": "string", + "description": "" + }, + "webhook": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_WebhookConversion", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.WebhookConversion" + } + }, + "additionalProperties": true, + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceConversion", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.KubernetesResource" + ] + }, + "kubernetes_apiextensions_v1_CustomResourceDefinition": { + "type": "object", + "description": "", + "properties": { + "apiVersion": { + "type": "string", + "description": "", + "default": "apiextensions.k8s.io/v1", + "required": true + }, + "kind": { + "type": "string", + "description": "", + "default": "CustomResourceDefinition", + "required": true + }, + "metadata": { + "$ref": "#/definitions/kubernetes_apimachinery_ObjectMeta", + "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta" + }, + "spec": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_CustomResourceDefinitionSpec", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionSpec" + }, + "status": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_CustomResourceDefinitionStatus", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionStatus" + } + }, + "additionalProperties": true, + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinition", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.HasMetadata" + ] + }, + "kubernetes_apiextensions_v1_CustomResourceDefinitionCondition": { + "type": "object", + "description": "", + "properties": { + "lastTransitionTime": { + "$ref": "#/definitions/kubernetes_apimachinery_Time", + "javaType": "String" + }, + "message": { + "type": "string", + "description": "" + }, + "reason": { + "type": "string", + "description": "" + }, + "status": { + "type": "string", + "description": "" + }, + "type": { + "type": "string", + "description": "" + } + }, + "additionalProperties": true, + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionCondition", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.KubernetesResource" + ] + }, + "kubernetes_apiextensions_v1_CustomResourceDefinitionList": { + "type": "object", + "description": "", + "properties": { + "apiVersion": { + "type": "string", + "description": "", + "default": "apiextensions.k8s.io/v1", + "required": true + }, + "items": { + "type": "array", + "description": "", + "items": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_CustomResourceDefinition", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinition" + } + }, + "kind": { + "type": "string", + "description": "", + "default": "CustomResourceDefinitionList", + "required": true + }, + "metadata": { + "$ref": "#/definitions/kubernetes_apimachinery_ListMeta", + "javaType": "io.fabric8.kubernetes.api.model.ListMeta" + } + }, + "additionalProperties": true, + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionList", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.KubernetesResource", + "io.fabric8.kubernetes.api.model.KubernetesResourceList\u003cio.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinition\u003e" + ] + }, + "kubernetes_apiextensions_v1_CustomResourceDefinitionNames": { + "type": "object", + "description": "", + "properties": { + "categories": { + "type": "array", + "description": "", + "javaOmitEmpty": true, + "items": { + "type": "string", + "description": "" + } + }, + "kind": { + "type": "string", + "description": "" + }, + "listKind": { + "type": "string", + "description": "" + }, + "plural": { + "type": "string", + "description": "" + }, + "shortNames": { + "type": "array", + "description": "", + "javaOmitEmpty": true, + "items": { + "type": "string", + "description": "" + } + }, + "singular": { + "type": "string", + "description": "" + } + }, + "additionalProperties": true, + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionNames", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.KubernetesResource" + ] + }, + "kubernetes_apiextensions_v1_CustomResourceDefinitionSpec": { + "type": "object", + "description": "", + "properties": { + "conversion": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_CustomResourceConversion", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceConversion" + }, + "group": { + "type": "string", + "description": "" + }, + "names": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_CustomResourceDefinitionNames", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionNames" + }, + "preserveUnknownFields": { + "type": "boolean", + "description": "" + }, + "scope": { + "type": "string", + "description": "" + }, + "versions": { + "type": "array", + "description": "", + "items": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_CustomResourceDefinitionVersion", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionVersion" + } + } + }, + "additionalProperties": true, + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionSpec", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.KubernetesResource" + ] + }, + "kubernetes_apiextensions_v1_CustomResourceDefinitionStatus": { + "type": "object", + "description": "", + "properties": { + "acceptedNames": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_CustomResourceDefinitionNames", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionNames" + }, + "conditions": { + "type": "array", + "description": "", + "items": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_CustomResourceDefinitionCondition", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionCondition" + } + }, + "storedVersions": { + "type": "array", + "description": "", + "items": { + "type": "string", + "description": "" + } + } + }, + "additionalProperties": true, + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionStatus", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.KubernetesResource" + ] + }, + "kubernetes_apiextensions_v1_CustomResourceDefinitionVersion": { + "type": "object", + "description": "", + "properties": { + "additionalPrinterColumns": { + "type": "array", + "description": "", + "javaOmitEmpty": true, + "items": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_CustomResourceColumnDefinition", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceColumnDefinition" + } + }, + "name": { + "type": "string", + "description": "" + }, + "schema": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_CustomResourceValidation", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceValidation" + }, + "served": { + "type": "boolean", + "description": "" + }, + "storage": { + "type": "boolean", + "description": "" + }, + "subresources": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_CustomResourceSubresources", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceSubresources" + } + }, + "additionalProperties": true, + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionVersion", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.KubernetesResource" + ] + }, + "kubernetes_apiextensions_v1_CustomResourceSubresourceScale": { + "type": "object", + "description": "", + "properties": { + "labelSelectorPath": { + "type": "string", + "description": "" + }, + "specReplicasPath": { + "type": "string", + "description": "" + }, + "statusReplicasPath": { + "type": "string", + "description": "" + } + }, + "additionalProperties": true, + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceSubresourceScale", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.KubernetesResource" + ] + }, + "kubernetes_apiextensions_v1_CustomResourceSubresourceStatus": { + "type": "object", + "description": "", + "additionalProperties": true, + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceSubresourceStatus", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.KubernetesResource" + ] + }, + "kubernetes_apiextensions_v1_CustomResourceSubresources": { + "type": "object", + "description": "", + "properties": { + "scale": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_CustomResourceSubresourceScale", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceSubresourceScale" + }, + "status": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_CustomResourceSubresourceStatus", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceSubresourceStatus" + } + }, + "additionalProperties": true, + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceSubresources", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.KubernetesResource" + ] + }, + "kubernetes_apiextensions_v1_CustomResourceValidation": { + "type": "object", + "description": "", + "properties": { + "openAPIV3Schema": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps" + } + }, + "additionalProperties": true, + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceValidation", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.KubernetesResource" + ] + }, + "kubernetes_apiextensions_v1_ExternalDocumentation": { + "type": "object", + "description": "", + "properties": { + "description": { + "type": "string", + "description": "" + }, + "url": { + "type": "string", + "description": "" + } + }, + "additionalProperties": true, + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.ExternalDocumentation", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.KubernetesResource" + ] + }, + "kubernetes_apiextensions_v1_JSON": { + "type": "object", + "description": "", + "properties": { + "Raw": { + "type": "string", + "description": "" + } + }, + "additionalProperties": true, + "javaType": "com.fasterxml.jackson.databind.JsonNode", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.KubernetesResource" + ] + }, + "kubernetes_apiextensions_v1_JSONSchemaProps": { + "type": "object", + "description": "", + "properties": { + "$ref": { + "type": "string", + "description": "" + }, + "$schema": { + "type": "string", + "description": "" + }, + "additionalItems": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaPropsOrBool", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaPropsOrBool" + }, + "additionalProperties": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaPropsOrBool", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaPropsOrBool" + }, + "allOf": { + "type": "array", + "description": "", + "javaOmitEmpty": true, + "items": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps" + } + }, + "anyOf": { + "type": "array", + "description": "", + "javaOmitEmpty": true, + "items": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps" + } + }, + "default": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSON", + "javaType": "com.fasterxml.jackson.databind.JsonNode" + }, + "definitions": { + "type": "object", + "description": "", + "additionalProperties": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps" + }, + "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps\u003e" + }, + "dependencies": { + "type": "object", + "description": "", + "additionalProperties": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaPropsOrStringArray", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaPropsOrStringArray" + }, + "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaPropsOrStringArray\u003e" + }, + "description": { + "type": "string", + "description": "" + }, + "enum": { + "type": "array", + "description": "", + "javaOmitEmpty": true, + "items": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSON", + "javaType": "com.fasterxml.jackson.databind.JsonNode" + } + }, + "example": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSON", + "javaType": "com.fasterxml.jackson.databind.JsonNode" + }, + "exclusiveMaximum": { + "type": "boolean", + "description": "" + }, + "exclusiveMinimum": { + "type": "boolean", + "description": "" + }, + "externalDocs": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_ExternalDocumentation", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.ExternalDocumentation" + }, + "format": { + "type": "string", + "description": "" + }, + "id": { + "type": "string", + "description": "" + }, + "items": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaPropsOrArray", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaPropsOrArray" + }, + "maxItems": { + "type": "integer", + "description": "", + "javaType": "Long" + }, + "maxLength": { + "type": "integer", + "description": "", + "javaType": "Long" + }, + "maxProperties": { + "type": "integer", + "description": "", + "javaType": "Long" + }, + "maximum": { + "type": "number", + "description": "" + }, + "minItems": { + "type": "integer", + "description": "", + "javaType": "Long" + }, + "minLength": { + "type": "integer", + "description": "", + "javaType": "Long" + }, + "minProperties": { + "type": "integer", + "description": "", + "javaType": "Long" + }, + "minimum": { + "type": "number", + "description": "" + }, + "multipleOf": { + "type": "number", + "description": "" + }, + "not": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps" + }, + "nullable": { + "type": "boolean", + "description": "" + }, + "oneOf": { + "type": "array", + "description": "", + "javaOmitEmpty": true, + "items": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps" + } + }, + "pattern": { + "type": "string", + "description": "" + }, + "patternProperties": { + "type": "object", + "description": "", + "additionalProperties": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps" + }, + "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps\u003e" + }, + "properties": { + "type": "object", + "description": "", + "additionalProperties": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps" + }, + "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps\u003e" + }, + "required": { + "type": "array", + "description": "", + "javaOmitEmpty": true, + "items": { + "type": "string", + "description": "" + } + }, + "title": { + "type": "string", + "description": "" + }, + "type": { + "type": "string", + "description": "" + }, + "uniqueItems": { + "type": "boolean", + "description": "" + }, + "x-kubernetes-embedded-resource": { + "type": "boolean", + "description": "" + }, + "x-kubernetes-int-or-string": { + "type": "boolean", + "description": "" + }, + "x-kubernetes-list-map-keys": { + "type": "array", + "description": "", + "javaOmitEmpty": true, + "items": { + "type": "string", + "description": "" + } + }, + "x-kubernetes-list-type": { + "type": "string", + "description": "" + }, + "x-kubernetes-map-type": { + "type": "string", + "description": "" + }, + "x-kubernetes-preserve-unknown-fields": { + "type": "boolean", + "description": "" + } + }, + "additionalProperties": false, + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.KubernetesResource" + ] + }, + "kubernetes_apiextensions_v1_JSONSchemaPropsOrArray": { + "type": "object", + "description": "", + "properties": { + "JSONSchemas": { + "type": "array", + "description": "", + "items": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps" + } + }, + "Schema": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps" + } + }, + "additionalProperties": true, + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaPropsOrArray", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.KubernetesResource" + ], + "serializer": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaPropsOrArraySerDe.Serializer.class", + "deserializer": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaPropsOrArraySerDe.Deserializer.class" + }, + "kubernetes_apiextensions_v1_JSONSchemaPropsOrBool": { + "type": "object", + "description": "", + "properties": { + "Allows": { + "type": "boolean", + "description": "" + }, + "Schema": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps" + } + }, + "additionalProperties": true, + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaPropsOrBool", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.KubernetesResource" + ], + "serializer": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaPropsOrBoolSerDe.Serializer.class", + "deserializer": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaPropsOrBoolSerDe.Deserializer.class" + }, + "kubernetes_apiextensions_v1_JSONSchemaPropsOrStringArray": { + "type": "object", + "description": "", + "properties": { + "Property": { + "type": "array", + "description": "", + "items": { + "type": "string", + "description": "" + } + }, + "Schema": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps" + } + }, + "additionalProperties": true, + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaPropsOrStringArray", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.KubernetesResource" + ], + "serializer": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaPropsOrStringArraySerDe.Serializer.class", + "deserializer": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaPropsOrStringArraySerDe.Deserializer.class" + }, + "kubernetes_apiextensions_v1_ServiceReference": { + "type": "object", + "description": "", + "properties": { + "name": { + "type": "string", + "description": "" + }, + "namespace": { + "type": "string", + "description": "" + }, + "path": { + "type": "string", + "description": "" + }, + "port": { + "type": "integer", + "description": "" + } + }, + "additionalProperties": true, + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.ServiceReference", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.KubernetesResource" + ] + }, + "kubernetes_apiextensions_v1_WebhookClientConfig": { + "type": "object", + "description": "", + "properties": { + "caBundle": { + "type": "string", + "description": "" + }, + "service": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_ServiceReference", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.ServiceReference" + }, + "url": { + "type": "string", + "description": "" + } + }, + "additionalProperties": true, + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.WebhookClientConfig", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.KubernetesResource" + ] + }, + "kubernetes_apiextensions_v1_WebhookConversion": { + "type": "object", + "description": "", + "properties": { + "clientConfig": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_WebhookClientConfig", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.WebhookClientConfig" + }, + "conversionReviewVersions": { + "type": "array", + "description": "", + "items": { + "type": "string", + "description": "" + } + } + }, + "additionalProperties": true, + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.WebhookConversion", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.KubernetesResource" + ] + }, + "kubernetes_apiextensions_v1beta1_CustomResourceColumnDefinition": { "type": "object", "description": "", "properties": { @@ -48,12 +842,12 @@ } }, "additionalProperties": true, - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceColumnDefinition", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceColumnDefinition", "javaInterfaces": [ "io.fabric8.kubernetes.api.model.KubernetesResource" ] }, - "kubernetes_apiextensions_CustomResourceConversion": { + "kubernetes_apiextensions_v1beta1_CustomResourceConversion": { "type": "object", "description": "", "properties": { @@ -71,24 +865,24 @@ "description": "" }, "webhookClientConfig": { - "$ref": "#/definitions/kubernetes_apiextensions_WebhookClientConfig", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.WebhookClientConfig" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_WebhookClientConfig", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.WebhookClientConfig" } }, "additionalProperties": true, - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceConversion", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceConversion", "javaInterfaces": [ "io.fabric8.kubernetes.api.model.KubernetesResource" ] }, - "kubernetes_apiextensions_CustomResourceDefinition": { + "kubernetes_apiextensions_v1beta1_CustomResourceDefinition": { "type": "object", "description": "", "properties": { "apiVersion": { "type": "string", "description": "", - "default": "apiextensions/v1beta1", + "default": "apiextensions.k8s.io/v1beta1", "required": true }, "kind": { @@ -102,21 +896,21 @@ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta" }, "spec": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceDefinitionSpec", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionSpec" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceDefinitionSpec", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionSpec" }, "status": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceDefinitionStatus", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionStatus" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceDefinitionStatus", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionStatus" } }, "additionalProperties": true, - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinition", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinition", "javaInterfaces": [ "io.fabric8.kubernetes.api.model.HasMetadata" ] }, - "kubernetes_apiextensions_CustomResourceDefinitionCondition": { + "kubernetes_apiextensions_v1beta1_CustomResourceDefinitionCondition": { "type": "object", "description": "", "properties": { @@ -142,27 +936,27 @@ } }, "additionalProperties": true, - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionCondition", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionCondition", "javaInterfaces": [ "io.fabric8.kubernetes.api.model.KubernetesResource" ] }, - "kubernetes_apiextensions_CustomResourceDefinitionList": { + "kubernetes_apiextensions_v1beta1_CustomResourceDefinitionList": { "type": "object", "description": "", "properties": { "apiVersion": { "type": "string", "description": "", - "default": "apiextensions/v1beta1", + "default": "apiextensions.k8s.io/v1beta1", "required": true }, "items": { "type": "array", "description": "", "items": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceDefinition", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinition" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceDefinition", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinition" } }, "kind": { @@ -177,13 +971,13 @@ } }, "additionalProperties": true, - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionList", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionList", "javaInterfaces": [ "io.fabric8.kubernetes.api.model.KubernetesResource", - "io.fabric8.kubernetes.api.model.KubernetesResourceList\u003cio.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinition\u003e" + "io.fabric8.kubernetes.api.model.KubernetesResourceList\u003cio.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinition\u003e" ] }, - "kubernetes_apiextensions_CustomResourceDefinitionNames": { + "kubernetes_apiextensions_v1beta1_CustomResourceDefinitionNames": { "type": "object", "description": "", "properties": { @@ -223,12 +1017,12 @@ } }, "additionalProperties": true, - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionNames", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionNames", "javaInterfaces": [ "io.fabric8.kubernetes.api.model.KubernetesResource" ] }, - "kubernetes_apiextensions_CustomResourceDefinitionSpec": { + "kubernetes_apiextensions_v1beta1_CustomResourceDefinitionSpec": { "type": "object", "description": "", "properties": { @@ -237,21 +1031,21 @@ "description": "", "javaOmitEmpty": true, "items": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceColumnDefinition", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceColumnDefinition" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceColumnDefinition", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceColumnDefinition" } }, "conversion": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceConversion", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceConversion" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceConversion", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceConversion" }, "group": { "type": "string", "description": "" }, "names": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceDefinitionNames", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionNames" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceDefinitionNames", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionNames" }, "preserveUnknownFields": { "type": "boolean", @@ -262,12 +1056,12 @@ "description": "" }, "subresources": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceSubresources", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceSubresources" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceSubresources", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceSubresources" }, "validation": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceValidation", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceValidation" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceValidation", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceValidation" }, "version": { "type": "string", @@ -278,31 +1072,31 @@ "description": "", "javaOmitEmpty": true, "items": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceDefinitionVersion", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionVersion" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceDefinitionVersion", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionVersion" } } }, "additionalProperties": true, - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionSpec", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionSpec", "javaInterfaces": [ "io.fabric8.kubernetes.api.model.KubernetesResource" ] }, - "kubernetes_apiextensions_CustomResourceDefinitionStatus": { + "kubernetes_apiextensions_v1beta1_CustomResourceDefinitionStatus": { "type": "object", "description": "", "properties": { "acceptedNames": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceDefinitionNames", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionNames" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceDefinitionNames", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionNames" }, "conditions": { "type": "array", "description": "", "items": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceDefinitionCondition", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionCondition" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceDefinitionCondition", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionCondition" } }, "storedVersions": { @@ -315,12 +1109,12 @@ } }, "additionalProperties": true, - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionStatus", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionStatus", "javaInterfaces": [ "io.fabric8.kubernetes.api.model.KubernetesResource" ] }, - "kubernetes_apiextensions_CustomResourceDefinitionVersion": { + "kubernetes_apiextensions_v1beta1_CustomResourceDefinitionVersion": { "type": "object", "description": "", "properties": { @@ -329,8 +1123,8 @@ "description": "", "javaOmitEmpty": true, "items": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceColumnDefinition", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceColumnDefinition" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceColumnDefinition", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceColumnDefinition" } }, "name": { @@ -338,8 +1132,8 @@ "description": "" }, "schema": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceValidation", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceValidation" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceValidation", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceValidation" }, "served": { "type": "boolean", @@ -350,17 +1144,17 @@ "description": "" }, "subresources": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceSubresources", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceSubresources" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceSubresources", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceSubresources" } }, "additionalProperties": true, - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionVersion", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionVersion", "javaInterfaces": [ "io.fabric8.kubernetes.api.model.KubernetesResource" ] }, - "kubernetes_apiextensions_CustomResourceSubresourceScale": { + "kubernetes_apiextensions_v1beta1_CustomResourceSubresourceScale": { "type": "object", "description": "", "properties": { @@ -378,55 +1172,55 @@ } }, "additionalProperties": true, - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceSubresourceScale", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceSubresourceScale", "javaInterfaces": [ "io.fabric8.kubernetes.api.model.KubernetesResource" ] }, - "kubernetes_apiextensions_CustomResourceSubresourceStatus": { + "kubernetes_apiextensions_v1beta1_CustomResourceSubresourceStatus": { "type": "object", "description": "", "additionalProperties": true, - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceSubresourceStatus", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceSubresourceStatus", "javaInterfaces": [ "io.fabric8.kubernetes.api.model.KubernetesResource" ] }, - "kubernetes_apiextensions_CustomResourceSubresources": { + "kubernetes_apiextensions_v1beta1_CustomResourceSubresources": { "type": "object", "description": "", "properties": { "scale": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceSubresourceScale", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceSubresourceScale" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceSubresourceScale", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceSubresourceScale" }, "status": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceSubresourceStatus", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceSubresourceStatus" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceSubresourceStatus", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceSubresourceStatus" } }, "additionalProperties": true, - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceSubresources", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceSubresources", "javaInterfaces": [ "io.fabric8.kubernetes.api.model.KubernetesResource" ] }, - "kubernetes_apiextensions_CustomResourceValidation": { + "kubernetes_apiextensions_v1beta1_CustomResourceValidation": { "type": "object", "description": "", "properties": { "openAPIV3Schema": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaProps", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaProps" } }, "additionalProperties": true, - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceValidation", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceValidation", "javaInterfaces": [ "io.fabric8.kubernetes.api.model.KubernetesResource" ] }, - "kubernetes_apiextensions_ExternalDocumentation": { + "kubernetes_apiextensions_v1beta1_ExternalDocumentation": { "type": "object", "description": "", "properties": { @@ -440,12 +1234,12 @@ } }, "additionalProperties": true, - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.ExternalDocumentation", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.ExternalDocumentation", "javaInterfaces": [ "io.fabric8.kubernetes.api.model.KubernetesResource" ] }, - "kubernetes_apiextensions_JSON": { + "kubernetes_apiextensions_v1beta1_JSON": { "type": "object", "description": "", "properties": { @@ -460,7 +1254,7 @@ "io.fabric8.kubernetes.api.model.KubernetesResource" ] }, - "kubernetes_apiextensions_JSONSchemaProps": { + "kubernetes_apiextensions_v1beta1_JSONSchemaProps": { "type": "object", "description": "", "properties": { @@ -473,20 +1267,20 @@ "description": "" }, "additionalItems": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaPropsOrBool", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaPropsOrBool" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_JSONSchemaPropsOrBool", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaPropsOrBool" }, "additionalProperties": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaPropsOrBool", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaPropsOrBool" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_JSONSchemaPropsOrBool", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaPropsOrBool" }, "allOf": { "type": "array", "description": "", "javaOmitEmpty": true, "items": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaProps", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaProps" } }, "anyOf": { @@ -494,31 +1288,31 @@ "description": "", "javaOmitEmpty": true, "items": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaProps", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaProps" } }, "default": { - "$ref": "#/definitions/kubernetes_apiextensions_JSON", + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_JSON", "javaType": "com.fasterxml.jackson.databind.JsonNode" }, "definitions": { "type": "object", "description": "", "additionalProperties": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaProps", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaProps" }, - "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps\u003e" + "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaProps\u003e" }, "dependencies": { "type": "object", "description": "", "additionalProperties": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaPropsOrStringArray", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaPropsOrStringArray" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_JSONSchemaPropsOrStringArray", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaPropsOrStringArray" }, - "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaPropsOrStringArray\u003e" + "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaPropsOrStringArray\u003e" }, "description": { "type": "string", @@ -529,12 +1323,12 @@ "description": "", "javaOmitEmpty": true, "items": { - "$ref": "#/definitions/kubernetes_apiextensions_JSON", + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_JSON", "javaType": "com.fasterxml.jackson.databind.JsonNode" } }, "example": { - "$ref": "#/definitions/kubernetes_apiextensions_JSON", + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_JSON", "javaType": "com.fasterxml.jackson.databind.JsonNode" }, "exclusiveMaximum": { @@ -546,8 +1340,8 @@ "description": "" }, "externalDocs": { - "$ref": "#/definitions/kubernetes_apiextensions_ExternalDocumentation", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.ExternalDocumentation" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_ExternalDocumentation", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.ExternalDocumentation" }, "format": { "type": "string", @@ -558,8 +1352,8 @@ "description": "" }, "items": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaPropsOrArray", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaPropsOrArray" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_JSONSchemaPropsOrArray", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaPropsOrArray" }, "maxItems": { "type": "integer", @@ -604,8 +1398,8 @@ "description": "" }, "not": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaProps", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaProps" }, "nullable": { "type": "boolean", @@ -616,8 +1410,8 @@ "description": "", "javaOmitEmpty": true, "items": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaProps", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaProps" } }, "pattern": { @@ -628,19 +1422,19 @@ "type": "object", "description": "", "additionalProperties": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaProps", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaProps" }, - "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps\u003e" + "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaProps\u003e" }, "properties": { "type": "object", "description": "", "additionalProperties": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaProps", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaProps" }, - "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps\u003e" + "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaProps\u003e" }, "required": { "type": "array", @@ -694,12 +1488,12 @@ } }, "additionalProperties": false, - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaProps", "javaInterfaces": [ "io.fabric8.kubernetes.api.model.KubernetesResource" ] }, - "kubernetes_apiextensions_JSONSchemaPropsOrArray": { + "kubernetes_apiextensions_v1beta1_JSONSchemaPropsOrArray": { "type": "object", "description": "", "properties": { @@ -707,24 +1501,24 @@ "type": "array", "description": "", "items": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaProps", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaProps" } }, "Schema": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaProps", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaProps" } }, "additionalProperties": true, - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaPropsOrArray", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaPropsOrArray", "javaInterfaces": [ "io.fabric8.kubernetes.api.model.KubernetesResource" ], - "serializer": "JSONSchemaPropsOrArraySerDe.Serializer.class", - "deserializer": "JSONSchemaPropsOrArraySerDe.Deserializer.class" + "serializer": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaPropsOrArraySerDe.Serializer.class", + "deserializer": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaPropsOrArraySerDe.Deserializer.class" }, - "kubernetes_apiextensions_JSONSchemaPropsOrBool": { + "kubernetes_apiextensions_v1beta1_JSONSchemaPropsOrBool": { "type": "object", "description": "", "properties": { @@ -733,19 +1527,19 @@ "description": "" }, "Schema": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaProps", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaProps" } }, "additionalProperties": true, - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaPropsOrBool", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaPropsOrBool", "javaInterfaces": [ "io.fabric8.kubernetes.api.model.KubernetesResource" ], - "serializer": "JSONSchemaPropsOrBoolSerDe.Serializer.class", - "deserializer": "JSONSchemaPropsOrBoolSerDe.Deserializer.class" + "serializer": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaPropsOrBoolSerDe.Serializer.class", + "deserializer": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaPropsOrBoolSerDe.Deserializer.class" }, - "kubernetes_apiextensions_JSONSchemaPropsOrStringArray": { + "kubernetes_apiextensions_v1beta1_JSONSchemaPropsOrStringArray": { "type": "object", "description": "", "properties": { @@ -758,19 +1552,19 @@ } }, "Schema": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaProps", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaProps" } }, "additionalProperties": true, - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaPropsOrStringArray", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaPropsOrStringArray", "javaInterfaces": [ "io.fabric8.kubernetes.api.model.KubernetesResource" ], - "serializer": "JSONSchemaPropsOrStringArraySerDe.Serializer.class", - "deserializer": "JSONSchemaPropsOrStringArraySerDe.Deserializer.class" + "serializer": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaPropsOrStringArraySerDe.Serializer.class", + "deserializer": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaPropsOrStringArraySerDe.Deserializer.class" }, - "kubernetes_apiextensions_ServiceReference": { + "kubernetes_apiextensions_v1beta1_ServiceReference": { "type": "object", "description": "", "properties": { @@ -792,12 +1586,12 @@ } }, "additionalProperties": true, - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.ServiceReference", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.ServiceReference", "javaInterfaces": [ "io.fabric8.kubernetes.api.model.KubernetesResource" ] }, - "kubernetes_apiextensions_WebhookClientConfig": { + "kubernetes_apiextensions_v1beta1_WebhookClientConfig": { "type": "object", "description": "", "properties": { @@ -806,8 +1600,8 @@ "description": "" }, "service": { - "$ref": "#/definitions/kubernetes_apiextensions_ServiceReference", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.ServiceReference" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_ServiceReference", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.ServiceReference" }, "url": { "type": "string", @@ -815,7 +1609,7 @@ } }, "additionalProperties": true, - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.WebhookClientConfig", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.WebhookClientConfig", "javaInterfaces": [ "io.fabric8.kubernetes.api.model.KubernetesResource" ] @@ -1744,28 +2538,28 @@ "javaType": "io.fabric8.kubernetes.api.model.CreateOptions" }, "CustomResourceDefinition": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceDefinition", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinition" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceDefinition", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinition" }, "CustomResourceDefinitionCondition": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceDefinitionCondition", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionCondition" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceDefinitionCondition", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionCondition" }, "CustomResourceDefinitionList": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceDefinitionList", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionList" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceDefinitionList", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionList" }, "CustomResourceDefinitionNames": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceDefinitionNames", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionNames" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceDefinitionNames", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionNames" }, "CustomResourceDefinitionSpec": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceDefinitionSpec", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionSpec" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceDefinitionSpec", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionSpec" }, "CustomResourceDefinitionStatus": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceDefinitionStatus", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionStatus" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceDefinitionStatus", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionStatus" }, "DeleteOptions": { "$ref": "#/definitions/kubernetes_apimachinery_DeleteOptions", @@ -1780,8 +2574,8 @@ "javaType": "io.fabric8.kubernetes.api.model.version.Info" }, "JSONSchemaPropsOrStringArray": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaPropsOrStringArray", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaPropsOrStringArray" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_JSONSchemaPropsOrStringArray", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaPropsOrStringArray" }, "ListOptions": { "$ref": "#/definitions/kubernetes_apimachinery_ListOptions", @@ -1826,6 +2620,34 @@ "UpdateOptions": { "$ref": "#/definitions/kubernetes_apimachinery_UpdateOptions", "javaType": "io.fabric8.kubernetes.api.model.UpdateOptions" + }, + "V1CustomResourceDefinition": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_CustomResourceDefinition", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinition" + }, + "V1CustomResourceDefinitionCondition": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_CustomResourceDefinitionCondition", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionCondition" + }, + "V1CustomResourceDefinitionList": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_CustomResourceDefinitionList", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionList" + }, + "V1CustomResourceDefinitionNames": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_CustomResourceDefinitionNames", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionNames" + }, + "V1CustomResourceDefinitionSpec": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_CustomResourceDefinitionSpec", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionSpec" + }, + "V1CustomResourceDefinitionStatus": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_CustomResourceDefinitionStatus", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionStatus" + }, + "V1JSONSchemaPropsOrStringArray": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaPropsOrStringArray", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaPropsOrStringArray" } }, "additionalProperties": true, @@ -1972,8 +2794,8 @@ "description": "" }, "webhookClientConfig": { - "$ref": "#/definitions/kubernetes_apiextensions_WebhookClientConfig", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.WebhookClientConfig" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_WebhookClientConfig", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.WebhookClientConfig" } }, "additionalProperties": true @@ -1983,7 +2805,7 @@ "apiVersion": { "type": "string", "description": "", - "default": "apiextensions/v1beta1", + "default": "apiextensions.k8s.io/v1beta1", "required": true }, "kind": { @@ -1997,12 +2819,12 @@ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta" }, "spec": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceDefinitionSpec", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionSpec" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceDefinitionSpec", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionSpec" }, "status": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceDefinitionStatus", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionStatus" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceDefinitionStatus", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionStatus" } }, "additionalProperties": true @@ -2037,15 +2859,15 @@ "apiVersion": { "type": "string", "description": "", - "default": "apiextensions/v1beta1", + "default": "apiextensions.k8s.io/v1beta1", "required": true }, "items": { "type": "array", "description": "", "items": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceDefinition", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinition" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceDefinition", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinition" } }, "kind": { @@ -2107,21 +2929,21 @@ "description": "", "javaOmitEmpty": true, "items": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceColumnDefinition", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceColumnDefinition" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceColumnDefinition", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceColumnDefinition" } }, "conversion": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceConversion", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceConversion" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceConversion", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceConversion" }, "group": { "type": "string", "description": "" }, "names": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceDefinitionNames", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionNames" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceDefinitionNames", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionNames" }, "preserveUnknownFields": { "type": "boolean", @@ -2132,12 +2954,12 @@ "description": "" }, "subresources": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceSubresources", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceSubresources" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceSubresources", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceSubresources" }, "validation": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceValidation", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceValidation" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceValidation", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceValidation" }, "version": { "type": "string", @@ -2148,8 +2970,8 @@ "description": "", "javaOmitEmpty": true, "items": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceDefinitionVersion", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionVersion" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceDefinitionVersion", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionVersion" } } }, @@ -2158,15 +2980,15 @@ "customresourcedefinitionstatus": { "properties": { "acceptedNames": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceDefinitionNames", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionNames" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceDefinitionNames", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionNames" }, "conditions": { "type": "array", "description": "", "items": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceDefinitionCondition", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionCondition" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceDefinitionCondition", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionCondition" } }, "storedVersions": { @@ -2187,8 +3009,8 @@ "description": "", "javaOmitEmpty": true, "items": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceColumnDefinition", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceColumnDefinition" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceColumnDefinition", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceColumnDefinition" } }, "name": { @@ -2196,8 +3018,8 @@ "description": "" }, "schema": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceValidation", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceValidation" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceValidation", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceValidation" }, "served": { "type": "boolean", @@ -2208,8 +3030,8 @@ "description": "" }, "subresources": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceSubresources", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceSubresources" + "$ref": "#/definitions/kubernetes_apiextensions_v1beta1_CustomResourceSubresources", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceSubresources" } }, "additionalProperties": true @@ -2217,12 +3039,12 @@ "customresourcesubresources": { "properties": { "scale": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceSubresourceScale", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceSubresourceScale" + "$ref": "#/definitions/kubernetes_apiextensions_v1_CustomResourceSubresourceScale", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceSubresourceScale" }, "status": { - "$ref": "#/definitions/kubernetes_apiextensions_CustomResourceSubresourceStatus", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.CustomResourceSubresourceStatus" + "$ref": "#/definitions/kubernetes_apiextensions_v1_CustomResourceSubresourceStatus", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceSubresourceStatus" } }, "additionalProperties": true @@ -2250,8 +3072,8 @@ "customresourcevalidation": { "properties": { "openAPIV3Schema": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaProps", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps" + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps" } }, "additionalProperties": true @@ -2413,20 +3235,20 @@ "description": "" }, "additionalItems": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaPropsOrBool", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaPropsOrBool" + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaPropsOrBool", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaPropsOrBool" }, "additionalProperties": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaPropsOrBool", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaPropsOrBool" + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaPropsOrBool", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaPropsOrBool" }, "allOf": { "type": "array", "description": "", "javaOmitEmpty": true, "items": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaProps", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps" + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps" } }, "anyOf": { @@ -2434,31 +3256,31 @@ "description": "", "javaOmitEmpty": true, "items": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaProps", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps" + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps" } }, "default": { - "$ref": "#/definitions/kubernetes_apiextensions_JSON", + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSON", "javaType": "com.fasterxml.jackson.databind.JsonNode" }, "definitions": { "type": "object", "description": "", "additionalProperties": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaProps", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps" + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps" }, - "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps\u003e" + "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps\u003e" }, "dependencies": { "type": "object", "description": "", "additionalProperties": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaPropsOrStringArray", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaPropsOrStringArray" + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaPropsOrStringArray", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaPropsOrStringArray" }, - "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaPropsOrStringArray\u003e" + "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaPropsOrStringArray\u003e" }, "description": { "type": "string", @@ -2469,12 +3291,12 @@ "description": "", "javaOmitEmpty": true, "items": { - "$ref": "#/definitions/kubernetes_apiextensions_JSON", + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSON", "javaType": "com.fasterxml.jackson.databind.JsonNode" } }, "example": { - "$ref": "#/definitions/kubernetes_apiextensions_JSON", + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSON", "javaType": "com.fasterxml.jackson.databind.JsonNode" }, "exclusiveMaximum": { @@ -2486,8 +3308,8 @@ "description": "" }, "externalDocs": { - "$ref": "#/definitions/kubernetes_apiextensions_ExternalDocumentation", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.ExternalDocumentation" + "$ref": "#/definitions/kubernetes_apiextensions_v1_ExternalDocumentation", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.ExternalDocumentation" }, "format": { "type": "string", @@ -2498,8 +3320,8 @@ "description": "" }, "items": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaPropsOrArray", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaPropsOrArray" + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaPropsOrArray", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaPropsOrArray" }, "maxItems": { "type": "integer", @@ -2544,8 +3366,8 @@ "description": "" }, "not": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaProps", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps" + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps" }, "nullable": { "type": "boolean", @@ -2556,8 +3378,8 @@ "description": "", "javaOmitEmpty": true, "items": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaProps", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps" + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps" } }, "pattern": { @@ -2568,19 +3390,19 @@ "type": "object", "description": "", "additionalProperties": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaProps", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps" + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps" }, - "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps\u003e" + "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps\u003e" }, "properties": { "type": "object", "description": "", "additionalProperties": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaProps", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps" + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps" }, - "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps\u003e" + "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps\u003e" }, "required": { "type": "array", @@ -2641,13 +3463,13 @@ "type": "array", "description": "", "items": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaProps", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps" + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps" } }, "Schema": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaProps", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps" + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps" } }, "additionalProperties": true @@ -2659,8 +3481,8 @@ "description": "" }, "Schema": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaProps", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps" + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps" } }, "additionalProperties": true @@ -2676,8 +3498,8 @@ } }, "Schema": { - "$ref": "#/definitions/kubernetes_apiextensions_JSONSchemaProps", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps" + "$ref": "#/definitions/kubernetes_apiextensions_v1_JSONSchemaProps", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps" } }, "additionalProperties": true @@ -3233,8 +4055,8 @@ "description": "" }, "service": { - "$ref": "#/definitions/kubernetes_apiextensions_ServiceReference", - "javaType": "io.fabric8.kubernetes.api.model.apiextensions.ServiceReference" + "$ref": "#/definitions/kubernetes_apiextensions_v1_ServiceReference", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.ServiceReference" }, "url": { "type": "string", @@ -3242,6 +4064,23 @@ } }, "additionalProperties": true + }, + "webhookconversion": { + "properties": { + "clientConfig": { + "$ref": "#/definitions/kubernetes_apiextensions_v1_WebhookClientConfig", + "javaType": "io.fabric8.kubernetes.api.model.apiextensions.v1.WebhookClientConfig" + }, + "conversionReviewVersions": { + "type": "array", + "description": "", + "items": { + "type": "string", + "description": "" + } + } + }, + "additionalProperties": true } } } diff --git a/kubernetes-model-generator/kubernetes-model-apiextensions/src/test/java/io/fabric8/kubernetes/api/model/apiextensions/v1/CustomResourceDefinitionTest.java b/kubernetes-model-generator/kubernetes-model-apiextensions/src/test/java/io/fabric8/kubernetes/api/model/apiextensions/v1/CustomResourceDefinitionTest.java new file mode 100644 index 00000000000..ca1d8eded2f --- /dev/null +++ b/kubernetes-model-generator/kubernetes-model-apiextensions/src/test/java/io/fabric8/kubernetes/api/model/apiextensions/v1/CustomResourceDefinitionTest.java @@ -0,0 +1,95 @@ +package io.fabric8.kubernetes.api.model.apiextensions.v1; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import io.fabric8.kubernetes.model.util.Helper; +import org.junit.jupiter.api.Test; + +import static net.javacrumbs.jsonunit.core.Option.IGNORING_ARRAY_ORDER; +import static net.javacrumbs.jsonunit.core.Option.IGNORING_EXTRA_FIELDS; +import static net.javacrumbs.jsonunit.core.Option.TREATING_NULL_AS_ABSENT; +import static net.javacrumbs.jsonunit.fluent.JsonFluentAssert.assertThatJson; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +public class CustomResourceDefinitionTest { + private final ObjectMapper objectMapper = new ObjectMapper(); + + @Test + public void testBuilder() { + CustomResourceDefinition crd = new io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionBuilder() + .withApiVersion("apiextensions.k8s.io/v1") + .withNewMetadata() + .withName("itests.examples.fabric8.io") + .endMetadata() + .withNewSpec() + .withGroup("examples.fabric8.io") + .addNewVersion() + .withName("v1") + .withServed(true) + .withStorage(true) + .endVersion() + .withScope("Namespaced") + .withNewNames() + .withPlural("itests") + .withSingular("itest") + .withKind("Itest") + .withShortNames("it") + .endNames() + .endSpec() + .build(); + + assertEquals("itests.examples.fabric8.io", crd.getMetadata().getName()); + assertEquals("examples.fabric8.io", crd.getSpec().getGroup()); + assertEquals("v1", crd.getSpec().getVersions().get(0).getName()); + assertEquals("Namespaced", crd.getSpec().getScope()); + } + + @Test + void testLoadFromJsonSchemaPropsOrBool() throws JsonProcessingException { + // Given + final String originalJson = Helper.loadJson("/valid-v1-crd.json"); + + // when + final CustomResourceDefinition customResourceDefinition = objectMapper.readValue(originalJson, CustomResourceDefinition.class); + final String serializedJson = objectMapper.writeValueAsString(customResourceDefinition); + + // then + assertThatJson(serializedJson).when(IGNORING_ARRAY_ORDER, TREATING_NULL_AS_ABSENT, IGNORING_EXTRA_FIELDS) + .isEqualTo(originalJson); + } + + @Test + void testLoadFromJsonSchemaPropsOrArray() throws JsonProcessingException { + // Given + String jsonString = Helper.loadJson("/valid-crd-jsonschemapropsorarray.json"); + + // When + CustomResourceDefinition result = objectMapper.readValue(jsonString, CustomResourceDefinition.class); + final String serializedJson = objectMapper.writeValueAsString(result); + + // Then + assertNotNull(result); + + // then + assertThatJson(serializedJson).when(IGNORING_ARRAY_ORDER, TREATING_NULL_AS_ABSENT, IGNORING_EXTRA_FIELDS) + .isEqualTo(jsonString); + } + + @Test + void testLoadFromJsonSchemaPropsOrStringArray() throws JsonProcessingException { + // Given + String jsonString = Helper.loadJson("/valid-crd-jsonschemapropsorstringarray.json"); + + // When + CustomResourceDefinition result = objectMapper.readValue(jsonString, CustomResourceDefinition.class); + final String serializedJson = objectMapper.writeValueAsString(result); + + // Then + assertNotNull(result); + + // then + assertThatJson(serializedJson).when(IGNORING_ARRAY_ORDER, TREATING_NULL_AS_ABSENT, IGNORING_EXTRA_FIELDS) + .isEqualTo(jsonString); + } +} diff --git a/kubernetes-model-generator/kubernetes-model-apiextensions/src/test/java/io/fabric8/kubernetes/api/model/apiextensions/JSONSchemaPropsOrArrayTest.java b/kubernetes-model-generator/kubernetes-model-apiextensions/src/test/java/io/fabric8/kubernetes/api/model/apiextensions/v1/JSONSchemaPropsOrArrayTest.java similarity index 98% rename from kubernetes-model-generator/kubernetes-model-apiextensions/src/test/java/io/fabric8/kubernetes/api/model/apiextensions/JSONSchemaPropsOrArrayTest.java rename to kubernetes-model-generator/kubernetes-model-apiextensions/src/test/java/io/fabric8/kubernetes/api/model/apiextensions/v1/JSONSchemaPropsOrArrayTest.java index af50892ce47..d9e02538132 100644 --- a/kubernetes-model-generator/kubernetes-model-apiextensions/src/test/java/io/fabric8/kubernetes/api/model/apiextensions/JSONSchemaPropsOrArrayTest.java +++ b/kubernetes-model-generator/kubernetes-model-apiextensions/src/test/java/io/fabric8/kubernetes/api/model/apiextensions/v1/JSONSchemaPropsOrArrayTest.java @@ -14,7 +14,12 @@ * limitations under the License. */ -package io.fabric8.kubernetes.api.model.apiextensions; +package io.fabric8.kubernetes.api.model.apiextensions.v1; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import java.io.BufferedReader; import java.io.IOException; @@ -23,12 +28,6 @@ import java.nio.charset.StandardCharsets; import java.util.stream.Collectors; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - class JSONSchemaPropsOrArrayTest { @Test void itDeserializesAdditionalPropertiesTrue() throws IOException { diff --git a/kubernetes-model-generator/kubernetes-model-apiextensions/src/test/java/io/fabric8/kubernetes/api/model/apiextensions/JSONSchemaPropsOrBoolTest.java b/kubernetes-model-generator/kubernetes-model-apiextensions/src/test/java/io/fabric8/kubernetes/api/model/apiextensions/v1/JSONSchemaPropsOrBoolTest.java similarity index 98% rename from kubernetes-model-generator/kubernetes-model-apiextensions/src/test/java/io/fabric8/kubernetes/api/model/apiextensions/JSONSchemaPropsOrBoolTest.java rename to kubernetes-model-generator/kubernetes-model-apiextensions/src/test/java/io/fabric8/kubernetes/api/model/apiextensions/v1/JSONSchemaPropsOrBoolTest.java index 300ed0c9a1b..33a37737ba3 100644 --- a/kubernetes-model-generator/kubernetes-model-apiextensions/src/test/java/io/fabric8/kubernetes/api/model/apiextensions/JSONSchemaPropsOrBoolTest.java +++ b/kubernetes-model-generator/kubernetes-model-apiextensions/src/test/java/io/fabric8/kubernetes/api/model/apiextensions/v1/JSONSchemaPropsOrBoolTest.java @@ -14,7 +14,12 @@ * limitations under the License. */ -package io.fabric8.kubernetes.api.model.apiextensions; +package io.fabric8.kubernetes.api.model.apiextensions.v1; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import java.io.BufferedReader; import java.io.IOException; @@ -23,12 +28,6 @@ import java.nio.charset.StandardCharsets; import java.util.stream.Collectors; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - class JSONSchemaPropsOrBoolTest { @Test diff --git a/kubernetes-model-generator/kubernetes-model-apiextensions/src/test/java/io/fabric8/kubernetes/api/model/apiextensions/JSONSchemaPropsOrStringArrayTest.java b/kubernetes-model-generator/kubernetes-model-apiextensions/src/test/java/io/fabric8/kubernetes/api/model/apiextensions/v1/JSONSchemaPropsOrStringArrayTest.java similarity index 98% rename from kubernetes-model-generator/kubernetes-model-apiextensions/src/test/java/io/fabric8/kubernetes/api/model/apiextensions/JSONSchemaPropsOrStringArrayTest.java rename to kubernetes-model-generator/kubernetes-model-apiextensions/src/test/java/io/fabric8/kubernetes/api/model/apiextensions/v1/JSONSchemaPropsOrStringArrayTest.java index 3dbea3cb26f..195bda98959 100644 --- a/kubernetes-model-generator/kubernetes-model-apiextensions/src/test/java/io/fabric8/kubernetes/api/model/apiextensions/JSONSchemaPropsOrStringArrayTest.java +++ b/kubernetes-model-generator/kubernetes-model-apiextensions/src/test/java/io/fabric8/kubernetes/api/model/apiextensions/v1/JSONSchemaPropsOrStringArrayTest.java @@ -13,7 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package io.fabric8.kubernetes.api.model.apiextensions; +package io.fabric8.kubernetes.api.model.apiextensions.v1; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import java.io.BufferedReader; import java.io.IOException; @@ -22,12 +27,6 @@ import java.nio.charset.StandardCharsets; import java.util.stream.Collectors; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - class JSONSchemaPropsOrStringArrayTest { @Test void itDeserializesAdditionalPropertiesTrue() throws IOException { diff --git a/kubernetes-model-generator/kubernetes-model-apiextensions/src/test/java/io/fabric8/kubernetes/api/model/apiextensions/CustomResourceDefinitionTest.java b/kubernetes-model-generator/kubernetes-model-apiextensions/src/test/java/io/fabric8/kubernetes/api/model/apiextensions/v1beta1/CustomResourceDefinitionTest.java similarity index 95% rename from kubernetes-model-generator/kubernetes-model-apiextensions/src/test/java/io/fabric8/kubernetes/api/model/apiextensions/CustomResourceDefinitionTest.java rename to kubernetes-model-generator/kubernetes-model-apiextensions/src/test/java/io/fabric8/kubernetes/api/model/apiextensions/v1beta1/CustomResourceDefinitionTest.java index adb30ed6f41..d8482cf635e 100644 --- a/kubernetes-model-generator/kubernetes-model-apiextensions/src/test/java/io/fabric8/kubernetes/api/model/apiextensions/CustomResourceDefinitionTest.java +++ b/kubernetes-model-generator/kubernetes-model-apiextensions/src/test/java/io/fabric8/kubernetes/api/model/apiextensions/v1beta1/CustomResourceDefinitionTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package io.fabric8.kubernetes.api.model.apiextensions; +package io.fabric8.kubernetes.api.model.apiextensions.v1beta1; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; @@ -34,7 +34,7 @@ class CustomResourceDefinitionTest { @Test public void testBuilder() { - CustomResourceDefinition crd = new io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionBuilder() + CustomResourceDefinition crd = new io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionBuilder() .withApiVersion("apiextensions.k8s.io/v1beta1") .withNewMetadata() .withName("itests.examples.fabric8.io") @@ -42,7 +42,7 @@ public void testBuilder() { .withNewSpec() .withGroup("examples.fabric8.io") .withVersion("v1") - .addAllToVersions(Collections.singletonList(new io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionVersionBuilder() + .addAllToVersions(Collections.singletonList(new io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionVersionBuilder() .withName("v1") .withServed(true) .withStorage(true) diff --git a/kubernetes-model-generator/kubernetes-model-apiextensions/src/test/java/io/fabric8/kubernetes/api/model/apiextensions/v1beta1/JSONSchemaPropsOrArrayTest.java b/kubernetes-model-generator/kubernetes-model-apiextensions/src/test/java/io/fabric8/kubernetes/api/model/apiextensions/v1beta1/JSONSchemaPropsOrArrayTest.java new file mode 100644 index 00000000000..91972c9637c --- /dev/null +++ b/kubernetes-model-generator/kubernetes-model-apiextensions/src/test/java/io/fabric8/kubernetes/api/model/apiextensions/v1beta1/JSONSchemaPropsOrArrayTest.java @@ -0,0 +1,90 @@ +/** + * Copyright (C) 2015 Red Hat, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.fabric8.kubernetes.api.model.apiextensions.v1beta1; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; +import java.util.stream.Collectors; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +class JSONSchemaPropsOrArrayTest { + @Test + void itDeserializesAdditionalPropertiesTrue() throws IOException { + InputStream resourceAsStream = getClass().getResourceAsStream("/items_array.json"); + JSONSchemaProps props = new ObjectMapper().readValue(resourceAsStream, JSONSchemaProps.class); + + Assertions.assertEquals(props, new JSONSchemaPropsBuilder() + .withType("object") + .withItems(new JSONSchemaPropsOrArrayBuilder() + .withJSONSchemas( + new JSONSchemaPropsBuilder().withType("object").build(), + new JSONSchemaPropsBuilder().withType("string").build()) + .build()) + .build()); + } + + @Test + void itSerializesAdditionalPropertiesTrue() throws JsonProcessingException { + String expectedJson = new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("/items_array.json"), StandardCharsets.UTF_8)) + .lines() + .collect(Collectors.joining("\n")); + + String outputJson = new ObjectMapper().writeValueAsString(new JSONSchemaPropsBuilder() + .withType("object") + .withItems(new JSONSchemaPropsOrArrayBuilder() + .withJSONSchemas( + new JSONSchemaPropsBuilder().withType("object").build(), + new JSONSchemaPropsBuilder().withType("string").build()) + .build()) + .build()); + + Assertions.assertEquals(expectedJson, outputJson); + } + + @Test + void itDeserializesAdditionalPropertiesTyped() throws IOException { + InputStream resourceAsStream = getClass().getResourceAsStream("/items_typed.json"); + JSONSchemaProps props = new ObjectMapper().readValue(resourceAsStream, JSONSchemaProps.class); + + Assertions.assertEquals(props, new JSONSchemaPropsBuilder() + .withType("object") + .withItems(new JSONSchemaPropsOrArrayBuilder().withSchema(new JSONSchemaPropsBuilder().withType("object").build()).build()) + .build()); + } + + @Test + void itSerializesAdditionalPropertiesTyped() throws JsonProcessingException { + String expectedJson = new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("/items_typed.json"), StandardCharsets.UTF_8)) + .lines() + .collect(Collectors.joining("\n")); + + String outputJson = new ObjectMapper().writeValueAsString(new JSONSchemaPropsBuilder() + .withType("object") + .withItems(new JSONSchemaPropsOrArrayBuilder().withSchema(new JSONSchemaPropsBuilder().withType("object").build()).build()) + .build()); + + Assertions.assertEquals(expectedJson, outputJson); + } +} diff --git a/kubernetes-model-generator/kubernetes-model-apiextensions/src/test/java/io/fabric8/kubernetes/api/model/apiextensions/v1beta1/JSONSchemaPropsOrBoolTest.java b/kubernetes-model-generator/kubernetes-model-apiextensions/src/test/java/io/fabric8/kubernetes/api/model/apiextensions/v1beta1/JSONSchemaPropsOrBoolTest.java new file mode 100644 index 00000000000..0e156e95d9c --- /dev/null +++ b/kubernetes-model-generator/kubernetes-model-apiextensions/src/test/java/io/fabric8/kubernetes/api/model/apiextensions/v1beta1/JSONSchemaPropsOrBoolTest.java @@ -0,0 +1,95 @@ +/** + * Copyright (C) 2015 Red Hat, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.fabric8.kubernetes.api.model.apiextensions.v1beta1; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; +import java.util.stream.Collectors; + +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaProps; +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaPropsBuilder; +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaPropsOrBoolBuilder; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +class JSONSchemaPropsOrBoolTest { + + @Test + void itDeserializesAdditionalPropertiesTrue() throws IOException { + InputStream resourceAsStream = getClass().getResourceAsStream("/additionalproperties_true.json"); + JSONSchemaProps props = new ObjectMapper().readValue(resourceAsStream, JSONSchemaProps.class); + + Assertions.assertEquals(props, new JSONSchemaPropsBuilder() + .withType("object") + .withAdditionalProperties(new JSONSchemaPropsOrBoolBuilder() + .withAllows(true) + .build()) + .build()); + } + + @Test + void itSerializesAdditionalPropertiesTrue() throws JsonProcessingException { + String expectedJson = new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("/additionalproperties_true.json"), StandardCharsets.UTF_8)) + .lines() + .collect(Collectors.joining("\n")); + + String outputJson = new ObjectMapper().writeValueAsString(new JSONSchemaPropsBuilder() + .withType("object") + .withAdditionalProperties(new JSONSchemaPropsOrBoolBuilder() + .withAllows(true) + .build()) + .build()); + + Assertions.assertEquals(expectedJson, outputJson); + } + + @Test + void itDeserializesAdditionalPropertiesTyped() throws IOException { + InputStream resourceAsStream = getClass().getResourceAsStream("/additionalproperties_typed.json"); + JSONSchemaProps props = new ObjectMapper().readValue(resourceAsStream, JSONSchemaProps.class); + + Assertions.assertEquals(props, new JSONSchemaPropsBuilder() + .withType("object") + .withAdditionalProperties(new JSONSchemaPropsOrBoolBuilder() + .withAllows(true) + .withNewSchema().withType("string").endSchema() + .build()) + .build()); + } + + @Test + void itSerializesAdditionalPropertiesTyped() throws JsonProcessingException { + String expectedJson = new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("/additionalproperties_typed.json"), StandardCharsets.UTF_8)) + .lines() + .collect(Collectors.joining("\n")); + + String outputJson = new ObjectMapper().writeValueAsString(new JSONSchemaPropsBuilder() + .withType("object") + .withAdditionalProperties(new JSONSchemaPropsOrBoolBuilder() + .withNewSchema().withType("string").endSchema() + .build()) + .build()); + + Assertions.assertEquals(expectedJson, outputJson); + } +} diff --git a/kubernetes-model-generator/kubernetes-model-apiextensions/src/test/java/io/fabric8/kubernetes/api/model/apiextensions/v1beta1/JSONSchemaPropsOrStringArrayTest.java b/kubernetes-model-generator/kubernetes-model-apiextensions/src/test/java/io/fabric8/kubernetes/api/model/apiextensions/v1beta1/JSONSchemaPropsOrStringArrayTest.java new file mode 100644 index 00000000000..3093e77c209 --- /dev/null +++ b/kubernetes-model-generator/kubernetes-model-apiextensions/src/test/java/io/fabric8/kubernetes/api/model/apiextensions/v1beta1/JSONSchemaPropsOrStringArrayTest.java @@ -0,0 +1,101 @@ +/** + * Copyright (C) 2015 Red Hat, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.fabric8.kubernetes.api.model.apiextensions.v1beta1; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; +import java.util.stream.Collectors; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +class JSONSchemaPropsOrStringArrayTest { + @Test + void itDeserializesAdditionalPropertiesTrue() throws IOException { + InputStream resourceAsStream = getClass().getResourceAsStream("/dependencies_array.json"); + JSONSchemaProps props = new ObjectMapper().readValue(resourceAsStream, JSONSchemaProps.class); + + Assertions.assertEquals(props, new JSONSchemaPropsBuilder() + .withType("object") + .addToDependencies( + "foo", + new JSONSchemaPropsOrStringArrayBuilder() + .withProperty("a", "b") + .build()) + .build()); + } + + @Test + void itSerializesAdditionalPropertiesTrue() throws JsonProcessingException { + String expectedJson = new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("/dependencies_array.json"), StandardCharsets.UTF_8)) + .lines() + .collect(Collectors.joining("\n")); + + String outputJson = new ObjectMapper().writeValueAsString(new JSONSchemaPropsBuilder() + .withType("object") + .addToDependencies( + "foo", + new JSONSchemaPropsOrStringArrayBuilder() + .withProperty("a", "b") + .build()) + .build()); + + Assertions.assertEquals(expectedJson, outputJson); + } + + @Test + void itDeserializesAdditionalPropertiesTyped() throws IOException { + InputStream resourceAsStream = getClass().getResourceAsStream("/dependencies_typed.json"); + JSONSchemaProps props = new ObjectMapper().readValue(resourceAsStream, JSONSchemaProps.class); + + Assertions.assertEquals(props, new JSONSchemaPropsBuilder() + .withType("object") + .addToDependencies( + "foo", + new JSONSchemaPropsOrStringArrayBuilder() + .withNewSchema() + .withType("object") + .endSchema() + .build()) + .build()); + } + + @Test + void itSerializesAdditionalPropertiesTyped() throws JsonProcessingException { + String expectedJson = new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("/dependencies_typed.json"), StandardCharsets.UTF_8)) + .lines() + .collect(Collectors.joining("\n")); + + String outputJson = new ObjectMapper().writeValueAsString(new JSONSchemaPropsBuilder() + .withType("object") + .addToDependencies( + "foo", + new JSONSchemaPropsOrStringArrayBuilder() + .withNewSchema() + .withType("object") + .endSchema() + .build()) + .build()); + + Assertions.assertEquals(expectedJson, outputJson); + } +} diff --git a/kubernetes-model-generator/kubernetes-model-apiextensions/src/test/resources/valid-v1-crd-jsonschemapropsorarray.json b/kubernetes-model-generator/kubernetes-model-apiextensions/src/test/resources/valid-v1-crd-jsonschemapropsorarray.json new file mode 100644 index 00000000000..0cb3d74ceec --- /dev/null +++ b/kubernetes-model-generator/kubernetes-model-apiextensions/src/test/resources/valid-v1-crd-jsonschemapropsorarray.json @@ -0,0 +1,154 @@ +{ + "apiVersion": "apiextensions.k8s.io/v1beta1", + "kind": "CustomResourceDefinition", + "metadata": { + "name": "kafkatopics.kafka.test" + }, + "spec": { + "group": "kafka.test", + "names": { + "kind": "KafkaTopic", + "listKind": "KafkaTopicList", + "plural": "kafkatopics", + "singular": "kafkatopic" + }, + "scope": "Namespaced", + "subresources": { + "status": {} + }, + "version": "v1beta1", + "versions": [ + { + "name": "v1beta1", + "served": true, + "storage": true, + "schema": { + "openAPIV3Schema": { + "description": "KafkaTopic is the Schema for the kafkatopics API", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation\nof an object. Servers should convert recognized schemas to the latest\ninternal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this\nobject represents. Servers may infer this from the endpoint the client\nsubmits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "type": "object" + }, + "spec": { + "description": "KafkaTopicSpec defines the desired state of KafkaTopic", + "properties": { + "configs": { + "items": [{ + "type": "string", + "description": "Topic specific config" + } + ], + "description": "Topic specific configuration properties", + "type": "object" + }, + "name": { + "description": "The actual name of the topic. The CR will be rejected\nif a topic with this name already exists on the cluster.", + "type": "string" + }, + "partitions": { + "description": "Number of partitions", + "format": "int32", + "minimum": 0.0, + "type": "integer" + }, + "replicationFactor": { + "description": "Replication factor", + "minimum": 0.0, + "format": "int16", + "type": "integer" + }, + "tls": { + "description": "TLS settings to be used in order to connect to the cluster", + "properties": { + "clientCertificate": { + "description": "Client certificate", + "properties": { + "certificate": { + "description": "The name of the key from the secret holding the\nclient certificate", + "type": "string" + }, + "key": { + "description": "The name of the key from the secret holding the\nprivate key", + "type": "string" + }, + "secretName": { + "description": "The name of the secret holding the client certificate", + "type": "string" + } + }, + "required": [ + "certificate", + "key", + "secretName" + ], + "type": "object" + }, + "rootCA": { + "description": "Root CA", + "properties": { + "certificate": { + "description": "The name of the key from the secret holding the\nCA certificate", + "type": "string" + }, + "secretName": { + "description": "The name of the secret holding the CA", + "type": "string" + } + }, + "required": [ + "certificate", + "secretName" + ], + "type": "object" + } + }, + "required": [ + "clientCertificate", + "rootCA" + ], + "type": "object" + } + }, + "required": [ + "name", + "partitions", + "replicationFactor" + ], + "type": "object" + }, + "status": { + "description": "KafkaTopicStatus defines the observed state of KafkaTopic", + "properties": { + "lastUpdate": { + "format": "date-time", + "type": "string" + }, + "reason": { + "type": "string" + }, + "status": { + "enum": [ + "Success", + "Failure" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + } + } + ] + } +} diff --git a/kubernetes-model-generator/kubernetes-model-apiextensions/src/test/resources/valid-v1-crd-jsonschemapropsorstringarray.json b/kubernetes-model-generator/kubernetes-model-apiextensions/src/test/resources/valid-v1-crd-jsonschemapropsorstringarray.json new file mode 100644 index 00000000000..833c5226c1b --- /dev/null +++ b/kubernetes-model-generator/kubernetes-model-apiextensions/src/test/resources/valid-v1-crd-jsonschemapropsorstringarray.json @@ -0,0 +1,152 @@ +{ + "apiVersion": "apiextensions.k8s.io/v1beta1", + "kind": "CustomResourceDefinition", + "metadata": { + "name": "kafkatopics.kafka.test" + }, + "spec": { + "group": "kafka.test", + "names": { + "kind": "KafkaTopic", + "listKind": "KafkaTopicList", + "plural": "kafkatopics", + "singular": "kafkatopic" + }, + "scope": "Namespaced", + "subresources": { + "status": {} + }, + "version": "v1beta1", + "versions": [ + { + "name": "v1beta1", + "served": true, + "storage": true, + "schema": { + "openAPIV3Schema": { + "description": "KafkaTopic is the Schema for the kafkatopics API", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation\nof an object. Servers should convert recognized schemas to the latest\ninternal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this\nobject represents. Servers may infer this from the endpoint the client\nsubmits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "type": "object" + }, + "spec": { + "description": "KafkaTopicSpec defines the desired state of KafkaTopic", + "properties": { + "configs": { + "dependencies": { + "test-array": ["one", "two", "three"] + }, + "description": "Topic specific configuration properties", + "type": "object" + }, + "name": { + "description": "The actual name of the topic. The CR will be rejected\nif a topic with this name already exists on the cluster.", + "type": "string" + }, + "partitions": { + "description": "Number of partitions", + "format": "int32", + "minimum": 0.0, + "type": "integer" + }, + "replicationFactor": { + "description": "Replication factor", + "minimum": 0.0, + "format": "int16", + "type": "integer" + }, + "tls": { + "description": "TLS settings to be used in order to connect to the cluster", + "properties": { + "clientCertificate": { + "description": "Client certificate", + "properties": { + "certificate": { + "description": "The name of the key from the secret holding the\nclient certificate", + "type": "string" + }, + "key": { + "description": "The name of the key from the secret holding the\nprivate key", + "type": "string" + }, + "secretName": { + "description": "The name of the secret holding the client certificate", + "type": "string" + } + }, + "required": [ + "certificate", + "key", + "secretName" + ], + "type": "object" + }, + "rootCA": { + "description": "Root CA", + "properties": { + "certificate": { + "description": "The name of the key from the secret holding the\nCA certificate", + "type": "string" + }, + "secretName": { + "description": "The name of the secret holding the CA", + "type": "string" + } + }, + "required": [ + "certificate", + "secretName" + ], + "type": "object" + } + }, + "required": [ + "clientCertificate", + "rootCA" + ], + "type": "object" + } + }, + "required": [ + "name", + "partitions", + "replicationFactor" + ], + "type": "object" + }, + "status": { + "description": "KafkaTopicStatus defines the observed state of KafkaTopic", + "properties": { + "lastUpdate": { + "format": "date-time", + "type": "string" + }, + "reason": { + "type": "string" + }, + "status": { + "enum": [ + "Success", + "Failure" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + } + } + ] + } +} diff --git a/kubernetes-model-generator/kubernetes-model-apiextensions/src/test/resources/valid-v1-crd.json b/kubernetes-model-generator/kubernetes-model-apiextensions/src/test/resources/valid-v1-crd.json new file mode 100644 index 00000000000..f142dda34ef --- /dev/null +++ b/kubernetes-model-generator/kubernetes-model-apiextensions/src/test/resources/valid-v1-crd.json @@ -0,0 +1,150 @@ +{ + "apiVersion": "apiextensions.k8s.io/v1beta1", + "kind": "CustomResourceDefinition", + "metadata": { + "name": "kafkatopics.kafka.test" + }, + "spec": { + "group": "kafka.test", + "names": { + "kind": "KafkaTopic", + "listKind": "KafkaTopicList", + "plural": "kafkatopics", + "singular": "kafkatopic" + }, + "scope": "Namespaced", + "subresources": { + "status": {} + }, + "version": "v1beta1", + "versions": [ + { + "name": "v1beta1", + "served": true, + "storage": true, + "schema": { + "openAPIV3Schema": { + "description": "KafkaTopic is the Schema for the kafkatopics API", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation\nof an object. Servers should convert recognized schemas to the latest\ninternal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this\nobject represents. Servers may infer this from the endpoint the client\nsubmits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "type": "object" + }, + "spec": { + "description": "KafkaTopicSpec defines the desired state of KafkaTopic", + "properties": { + "configs": { + "additionalProperties": true, + "description": "Topic specific configuration properties", + "type": "object" + }, + "name": { + "description": "The actual name of the topic. The CR will be rejected\nif a topic with this name already exists on the cluster.", + "type": "string" + }, + "partitions": { + "description": "Number of partitions", + "format": "int32", + "minimum": 0.0, + "type": "integer" + }, + "replicationFactor": { + "description": "Replication factor", + "minimum": 0.0, + "format": "int16", + "type": "integer" + }, + "tls": { + "description": "TLS settings to be used in order to connect to the cluster", + "properties": { + "clientCertificate": { + "description": "Client certificate", + "properties": { + "certificate": { + "description": "The name of the key from the secret holding the\nclient certificate", + "type": "string" + }, + "key": { + "description": "The name of the key from the secret holding the\nprivate key", + "type": "string" + }, + "secretName": { + "description": "The name of the secret holding the client certificate", + "type": "string" + } + }, + "required": [ + "certificate", + "key", + "secretName" + ], + "type": "object" + }, + "rootCA": { + "description": "Root CA", + "properties": { + "certificate": { + "description": "The name of the key from the secret holding the\nCA certificate", + "type": "string" + }, + "secretName": { + "description": "The name of the secret holding the CA", + "type": "string" + } + }, + "required": [ + "certificate", + "secretName" + ], + "type": "object" + } + }, + "required": [ + "clientCertificate", + "rootCA" + ], + "type": "object" + } + }, + "required": [ + "name", + "partitions", + "replicationFactor" + ], + "type": "object" + }, + "status": { + "description": "KafkaTopicStatus defines the observed state of KafkaTopic", + "properties": { + "lastUpdate": { + "format": "date-time", + "type": "string" + }, + "reason": { + "type": "string" + }, + "status": { + "enum": [ + "Success", + "Failure" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + } + } + ] + } +} diff --git a/kubernetes-model-generator/kubernetes-model-core/src/main/java/io/fabric8/kubernetes/internal/KubernetesDeserializer.java b/kubernetes-model-generator/kubernetes-model-core/src/main/java/io/fabric8/kubernetes/internal/KubernetesDeserializer.java index f4a07fafe6c..5d7d65610d2 100644 --- a/kubernetes-model-generator/kubernetes-model-core/src/main/java/io/fabric8/kubernetes/internal/KubernetesDeserializer.java +++ b/kubernetes-model-generator/kubernetes-model-core/src/main/java/io/fabric8/kubernetes/internal/KubernetesDeserializer.java @@ -131,7 +131,8 @@ static class Mapping { "io.fabric8.kubernetes.api.model.admission", "io.fabric8.kubernetes.api.model.admissionregistration.v1.", "io.fabric8.kubernetes.api.model.admissionregistration.v1beta1.", - "io.fabric8.kubernetes.api.model.apiextensions.", + "io.fabric8.kubernetes.api.model.apiextensions.v1.", + "io.fabric8.kubernetes.api.model.apiextensions.v1beta1.", "io.fabric8.kubernetes.api.model.apps.", "io.fabric8.kubernetes.api.model.authentication.", "io.fabric8.kubernetes.api.model.authorization.", diff --git a/kubernetes-model-generator/pkg/schemagen/generate.go b/kubernetes-model-generator/pkg/schemagen/generate.go index b0e9d55d9b4..4c045c75731 100644 --- a/kubernetes-model-generator/pkg/schemagen/generate.go +++ b/kubernetes-model-generator/pkg/schemagen/generate.go @@ -483,6 +483,12 @@ func (g *schemaGenerator) getStructProperties(t reflect.Type) map[string]JSONPro if ok && pkgDesc.ApiGroup != "" { apiGroup = pkgDesc.ApiGroup } + /* + * ApiGroup for apiextensions is apiextensions.k8s.io + */ + if apiGroup == "apiextensions" { + apiGroup = "apiextensions.k8s.io" + } /* * Skip appending apiGroup in apiVersion for case of core and meta resources since diff --git a/kubernetes-tests/src/test/java/io/fabric8/kubernetes/client/mock/CustomResourceCrudTest.java b/kubernetes-tests/src/test/java/io/fabric8/kubernetes/client/mock/CustomResourceCrudTest.java index 70c8cf15f64..6ac1201822e 100644 --- a/kubernetes-tests/src/test/java/io/fabric8/kubernetes/client/mock/CustomResourceCrudTest.java +++ b/kubernetes-tests/src/test/java/io/fabric8/kubernetes/client/mock/CustomResourceCrudTest.java @@ -29,7 +29,7 @@ import org.junit.jupiter.migrationsupport.rules.EnableRuleMigrationSupport; import io.fabric8.kubernetes.api.model.ObjectMetaBuilder; -import io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinition; +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinition; import io.fabric8.kubernetes.client.KubernetesClient; import io.fabric8.kubernetes.client.dsl.MixedOperation; import io.fabric8.kubernetes.client.dsl.Resource; diff --git a/kubernetes-tests/src/test/java/io/fabric8/kubernetes/client/mock/CustomResourceDefinitionTest.java b/kubernetes-tests/src/test/java/io/fabric8/kubernetes/client/mock/CustomResourceDefinitionTest.java index 2b0ddc97018..0260aa9ead3 100644 --- a/kubernetes-tests/src/test/java/io/fabric8/kubernetes/client/mock/CustomResourceDefinitionTest.java +++ b/kubernetes-tests/src/test/java/io/fabric8/kubernetes/client/mock/CustomResourceDefinitionTest.java @@ -18,10 +18,10 @@ import com.fasterxml.jackson.databind.ObjectMapper; import io.fabric8.kubernetes.api.model.HasMetadata; import io.fabric8.kubernetes.api.model.KubernetesListBuilder; -import io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinition; -import io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionBuilder; -import io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionList; -import io.fabric8.kubernetes.api.model.apiextensions.JSONSchemaProps; +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinition; +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionBuilder; +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionList; +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.JSONSchemaProps; import io.fabric8.kubernetes.client.KubernetesClient; import io.fabric8.kubernetes.client.server.mock.KubernetesServer; import org.junit.Rule; @@ -78,7 +78,7 @@ void testLoad() { @Test void testLoadWithJsonSchemaPropsOrBool() { KubernetesClient client = server.getClient(); - CustomResourceDefinition customResourceDefinition = client.customResourceDefinitions().load(getClass().getResourceAsStream("/kafka-crd.yml")).get(); + CustomResourceDefinition customResourceDefinition = client.apiextensions().v1beta1().customResourceDefinitions().load(getClass().getResourceAsStream("/kafka-crd.yml")).get(); assertNotNull(customResourceDefinition); assertEquals("kafkatopics.kafka.test", customResourceDefinition.getMetadata().getName()); } @@ -88,7 +88,7 @@ void testGet() { server.expect().get().withPath("/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions/sparkclusters.radanalytics.io").andReturn(200, customResourceDefinition).once(); KubernetesClient client = server.getClient(); - CustomResourceDefinition crd = client.customResourceDefinitions().withName("sparkclusters.radanalytics.io").get(); + CustomResourceDefinition crd = client.apiextensions().v1beta1().customResourceDefinitions().withName("sparkclusters.radanalytics.io").get(); assertNotNull(crd); assertEquals("sparkclusters.radanalytics.io", crd.getMetadata().getName()); } @@ -98,7 +98,7 @@ void testCreate() { server.expect().post().withPath("/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions").andReturn(200, customResourceDefinition).once(); KubernetesClient client = server.getClient(); - CustomResourceDefinition crd = client.customResourceDefinitions().createOrReplace(customResourceDefinition); + CustomResourceDefinition crd = client.apiextensions().v1beta1().customResourceDefinitions().createOrReplace(customResourceDefinition); assertNotNull(crd); assertEquals("sparkclusters.radanalytics.io", crd.getMetadata().getName()); // Assertion to test behavior in https://github.com/fabric8io/kubernetes-client/issues/1486 @@ -110,7 +110,7 @@ void testList() { server.expect().get().withPath("/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions").andReturn(200, new KubernetesListBuilder().withItems(customResourceDefinition).build()).once(); KubernetesClient client = server.getClient(); - CustomResourceDefinitionList crdList = client.customResourceDefinitions().list(); + CustomResourceDefinitionList crdList = client.apiextensions().v1beta1().customResourceDefinitions().list(); assertNotNull(crdList); assertEquals(1, crdList.getItems().size()); assertEquals("sparkclusters.radanalytics.io", crdList.getItems().get(0).getMetadata().getName()); @@ -121,7 +121,7 @@ void testDelete() { server.expect().delete().withPath("/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions/sparkclusters.radanalytics.io").andReturn(200, customResourceDefinition).once(); KubernetesClient client = server.getClient(); - Boolean deleted = client.customResourceDefinitions().withName("sparkclusters.radanalytics.io").delete(); + Boolean deleted = client.apiextensions().v1beta1().customResourceDefinitions().withName("sparkclusters.radanalytics.io").delete(); assertTrue(deleted); } diff --git a/kubernetes-tests/src/test/java/io/fabric8/kubernetes/client/mock/CustomResourceTest.java b/kubernetes-tests/src/test/java/io/fabric8/kubernetes/client/mock/CustomResourceTest.java index 5fead107cba..d67f86056fc 100644 --- a/kubernetes-tests/src/test/java/io/fabric8/kubernetes/client/mock/CustomResourceTest.java +++ b/kubernetes-tests/src/test/java/io/fabric8/kubernetes/client/mock/CustomResourceTest.java @@ -44,9 +44,9 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.migrationsupport.rules.EnableRuleMigrationSupport; -import io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinition; -import io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionList; -import io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionListBuilder; +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinition; +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionList; +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionListBuilder; import io.fabric8.kubernetes.client.KubernetesClient; import io.fabric8.kubernetes.client.KubernetesClientException; import io.fabric8.kubernetes.client.dsl.base.CustomResourceDefinitionContext; diff --git a/kubernetes-tests/src/test/java/io/fabric8/kubernetes/client/mock/PropagationPolicyTest.java b/kubernetes-tests/src/test/java/io/fabric8/kubernetes/client/mock/PropagationPolicyTest.java index 8a29cdd1929..3929df9ec01 100644 --- a/kubernetes-tests/src/test/java/io/fabric8/kubernetes/client/mock/PropagationPolicyTest.java +++ b/kubernetes-tests/src/test/java/io/fabric8/kubernetes/client/mock/PropagationPolicyTest.java @@ -23,7 +23,7 @@ import io.fabric8.kubernetes.api.model.ReplicationControllerBuilder; import io.fabric8.kubernetes.api.model.SecretBuilder; import io.fabric8.kubernetes.api.model.ServiceBuilder; -import io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionBuilder; +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionBuilder; import io.fabric8.kubernetes.api.model.apps.DeploymentBuilder; import io.fabric8.kubernetes.api.model.apps.StatefulSetBuilder; import io.fabric8.kubernetes.api.model.batch.JobBuilder; diff --git a/kubernetes-tests/src/test/java/io/fabric8/kubernetes/client/mock/TypedClusterScopeCustomResourceApiTest.java b/kubernetes-tests/src/test/java/io/fabric8/kubernetes/client/mock/TypedClusterScopeCustomResourceApiTest.java index 76c64ce9437..bddb2030f16 100644 --- a/kubernetes-tests/src/test/java/io/fabric8/kubernetes/client/mock/TypedClusterScopeCustomResourceApiTest.java +++ b/kubernetes-tests/src/test/java/io/fabric8/kubernetes/client/mock/TypedClusterScopeCustomResourceApiTest.java @@ -17,8 +17,8 @@ import io.fabric8.kubernetes.api.model.DeletionPropagation; import io.fabric8.kubernetes.api.model.ObjectMetaBuilder; -import io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinition; -import io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionBuilder; +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinition; +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionBuilder; import io.fabric8.kubernetes.client.dsl.MixedOperation; import io.fabric8.kubernetes.client.dsl.Resource; import io.fabric8.kubernetes.client.dsl.base.CustomResourceDefinitionContext; diff --git a/kubernetes-tests/src/test/java/io/fabric8/kubernetes/client/mock/TypedCustomResourceApiTest.java b/kubernetes-tests/src/test/java/io/fabric8/kubernetes/client/mock/TypedCustomResourceApiTest.java index 5a4bb0440d7..feed9effe2f 100644 --- a/kubernetes-tests/src/test/java/io/fabric8/kubernetes/client/mock/TypedCustomResourceApiTest.java +++ b/kubernetes-tests/src/test/java/io/fabric8/kubernetes/client/mock/TypedCustomResourceApiTest.java @@ -17,8 +17,8 @@ import io.fabric8.kubernetes.api.model.DeletionPropagation; import io.fabric8.kubernetes.api.model.ObjectMetaBuilder; -import io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinition; -import io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionBuilder; +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinition; +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionBuilder; import io.fabric8.kubernetes.client.dsl.MixedOperation; import io.fabric8.kubernetes.client.dsl.Resource; import io.fabric8.kubernetes.client.dsl.base.CustomResourceDefinitionContext; diff --git a/kubernetes-tests/src/test/java/io/fabric8/kubernetes/client/mock/V1CustomResourceDefinitionTest.java b/kubernetes-tests/src/test/java/io/fabric8/kubernetes/client/mock/V1CustomResourceDefinitionTest.java new file mode 100644 index 00000000000..0d85910e809 --- /dev/null +++ b/kubernetes-tests/src/test/java/io/fabric8/kubernetes/client/mock/V1CustomResourceDefinitionTest.java @@ -0,0 +1,133 @@ +/** + * Copyright (C) 2015 Red Hat, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.fabric8.kubernetes.client.mock; + +import com.fasterxml.jackson.databind.ObjectMapper; +import io.fabric8.kubernetes.api.model.HasMetadata; +import io.fabric8.kubernetes.api.model.KubernetesListBuilder; +import io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinition; +import io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionBuilder; +import io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionList; +import io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps; +import io.fabric8.kubernetes.client.KubernetesClient; +import io.fabric8.kubernetes.client.server.mock.KubernetesServer; +import org.junit.Rule; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.migrationsupport.rules.EnableRuleMigrationSupport; + +import java.io.IOException; +import java.net.HttpURLConnection; +import java.net.URL; +import java.util.List; + +import static junit.framework.TestCase.assertNull; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + +@EnableRuleMigrationSupport +public class V1CustomResourceDefinitionTest { + @Rule + public KubernetesServer server = new KubernetesServer(); + + private CustomResourceDefinition customResourceDefinition; + + @BeforeEach + void setupCrd() throws IOException { + customResourceDefinition = new CustomResourceDefinitionBuilder() + .withNewMetadata() + .withName("sparkclusters.radanalytics.io") + .endMetadata() + .withNewSpec() + .withGroup("radanalytics.io") + .addNewVersion() + .withName("v1") + .withServed(true) + .withStorage(true) + .withNewSchema() + .withNewOpenAPIV3SchemaLike(readSchema()) + .endOpenAPIV3Schema() + .endSchema() + .endVersion() + .withScope("Namespaced") + .withNewNames() + .withPlural("sparkclusters") + .withSingular("sparkcluster") + .withKind("SparkCluster") + .addNewShortName("sc") + .endNames() + .endSpec() + .build(); + } + + @Test + void testLoad() { + KubernetesClient client = server.getClient(); + List crdList = client.load(getClass().getResourceAsStream("/crd-v1-list.yml")).get(); + assertNotNull(crdList); + assertEquals(1, crdList.size()); + } + + @Test + void testGet() { + server.expect().get().withPath("/apis/apiextensions.k8s.io/v1/customresourcedefinitions/sparkclusters.radanalytics.io").andReturn(HttpURLConnection.HTTP_OK, customResourceDefinition).once(); + KubernetesClient client = server.getClient(); + + CustomResourceDefinition crd = client.apiextensions().v1().customResourceDefinitions().withName("sparkclusters.radanalytics.io").get(); + assertNotNull(crd); + assertEquals("sparkclusters.radanalytics.io", crd.getMetadata().getName()); + } + + @Test + void testCreate() { + server.expect().post().withPath("/apis/apiextensions.k8s.io/v1/customresourcedefinitions").andReturn(HttpURLConnection.HTTP_OK, customResourceDefinition).once(); + KubernetesClient client = server.getClient(); + + CustomResourceDefinition crd = client.apiextensions().v1().customResourceDefinitions().createOrReplace(customResourceDefinition); + assertNotNull(crd); + assertEquals("sparkclusters.radanalytics.io", crd.getMetadata().getName()); + // Assertion to test behavior in https://github.com/fabric8io/kubernetes-client/issues/1486 + assertNull(crd.getSpec().getVersions().get(0).getSchema().getOpenAPIV3Schema().getDependencies()); + } + + @Test + void testList() { + server.expect().get().withPath("/apis/apiextensions.k8s.io/v1/customresourcedefinitions").andReturn(HttpURLConnection.HTTP_OK, new KubernetesListBuilder().withItems(customResourceDefinition).build()).once(); + KubernetesClient client = server.getClient(); + + CustomResourceDefinitionList crdList = client.apiextensions().v1().customResourceDefinitions().list(); + assertNotNull(crdList); + assertEquals(1, crdList.getItems().size()); + assertEquals("sparkclusters.radanalytics.io", crdList.getItems().get(0).getMetadata().getName()); + } + + @Test + void testDelete() { + server.expect().delete().withPath("/apis/apiextensions.k8s.io/v1/customresourcedefinitions/sparkclusters.radanalytics.io").andReturn(HttpURLConnection.HTTP_OK, customResourceDefinition).once(); + KubernetesClient client = server.getClient(); + + Boolean deleted = client.apiextensions().v1().customResourceDefinitions().withName("sparkclusters.radanalytics.io").delete(); + assertTrue(deleted); + } + + JSONSchemaProps readSchema() throws IOException { + ObjectMapper mapper = new ObjectMapper(); + final URL resource = getClass().getResource("/test-crd-validation-schema.json"); + + return mapper.readValue(resource, JSONSchemaProps.class); + } +} diff --git a/kubernetes-tests/src/test/resources/crd-v1-list.yml b/kubernetes-tests/src/test/resources/crd-v1-list.yml new file mode 100644 index 00000000000..f122137a057 --- /dev/null +++ b/kubernetes-tests/src/test/resources/crd-v1-list.yml @@ -0,0 +1,47 @@ +# +# Copyright (C) 2015 Red Hat, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + name: crontabs.stable.example.com +spec: + group: stable.example.com + versions: + - name: v1 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + properties: + spec: + type: object + properties: + cronSpec: + type: string + image: + type: string + replicas: + type: integer + scope: Namespaced + names: + plural: crontabs + singular: crontab + kind: CronTab + shortNames: + - ct diff --git a/openshift-client/src/main/java/io/fabric8/openshift/client/DefaultOpenShiftClient.java b/openshift-client/src/main/java/io/fabric8/openshift/client/DefaultOpenShiftClient.java index 09697cd549b..1ce7c24f6e5 100644 --- a/openshift-client/src/main/java/io/fabric8/openshift/client/DefaultOpenShiftClient.java +++ b/openshift-client/src/main/java/io/fabric8/openshift/client/DefaultOpenShiftClient.java @@ -34,9 +34,9 @@ import io.fabric8.kubernetes.api.model.DoneableService; import io.fabric8.kubernetes.api.model.DoneableServiceAccount; import io.fabric8.kubernetes.api.model.Secret; -import io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinition; -import io.fabric8.kubernetes.api.model.apiextensions.CustomResourceDefinitionList; -import io.fabric8.kubernetes.api.model.apiextensions.DoneableCustomResourceDefinition; +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinition; +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionList; +import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.DoneableCustomResourceDefinition; import io.fabric8.kubernetes.api.model.coordination.v1.DoneableLease; import io.fabric8.kubernetes.api.model.coordination.v1.Lease; import io.fabric8.kubernetes.api.model.coordination.v1.LeaseList; @@ -379,6 +379,11 @@ public NonNamespaceOperation