Skip to content

Commit b14d5fc

Browse files
authored
feat(iaas): disable simplify oneOf (#788)
1 parent 1d0a089 commit b14d5fc

8 files changed

Lines changed: 618 additions & 73 deletions

File tree

CHANGELOG.md

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,24 @@
11
## Release (YYYY-MM-DD)
22
- `alb`: [v0.6.0](services/alb/CHANGELOG.md#v060)
33
- **Breaking change:** Remove `v2beta` API
4-
- `iaas`: [v1.3.0](services/iaas/CHANGELOG.md#v130)
5-
- new example for managing `VPCs` with the `v2alpha1api`
6-
- `v1api`
7-
- **Braking Change:** remove deprecated operations: `updateImageScopeLocal`, `updateImageScopePublic`
8-
- **Feature:** add attribute `vtpm` (new model `ServerVTPM`) to model `Server`
9-
- **Feature:** add attribute `availabilityZone` to model `Snapshot`
10-
- `v2alpha1api`
11-
- **Feature:** add operations and models to manage `VPCs`
12-
- `v2api`
13-
- **Feature:** add attribute `vpcNetworkRangeId` to models `NetworkIPv4` `NetworkIPv6`
14-
- **Feature:** add attribute `vpcId` to model `Network`,
15-
- **Feature:** add attribute `vtpm` (new model `ServerVTPM`) to model `Server`,
16-
- **Feature:** add attribute `availabilityZone` to model `Snapshot`,
4+
- `iaas`:
5+
- [v1.4.0](services/iaas/CHANGELOG.md#v140)
6+
- `v2alpha1api`:
7+
- **Breaking Change:** `NetworkRangeIPv4Request` was moved into the oneOf class `CreateVPCNetworkRangePayload`. Changes parameter in method `createVPCNetworkRange`.
8+
- **Breaking Change:** `V1UpdateVPCNetworkRangeIPv4` was moved into the oneOf class `UpdateVPCNetworkRangePayload`. Changes parameter in method `updateVPCNetworkRange`.
9+
- [v1.3.0](services/iaas/CHANGELOG.md#v130)
10+
- new example for managing `VPCs` with the `v2alpha1api`
11+
- `v1api`
12+
- **Braking Change:** remove deprecated operations: `updateImageScopeLocal`, `updateImageScopePublic`
13+
- **Feature:** add attribute `vtpm` (new model `ServerVTPM`) to model `Server`
14+
- **Feature:** add attribute `availabilityZone` to model `Snapshot`
15+
- `v2alpha1api`
16+
- **Feature:** add operations and models to manage `VPCs`
17+
- `v2api`
18+
- **Feature:** add attribute `vpcNetworkRangeId` to models `NetworkIPv4` `NetworkIPv6`
19+
- **Feature:** add attribute `vpcId` to model `Network`,
20+
- **Feature:** add attribute `vtpm` (new model `ServerVTPM`) to model `Server`,
21+
- **Feature:** add attribute `availabilityZone` to model `Snapshot`,
1722

1823
## Release (2026-04-28)
1924
- `alb`: [v0.5.0](services/alb/CHANGELOG.md#v050)

examples/iaas/src/main/java/cloud/stackit/sdk/iaas/examples/IaaSVPCExample.java

Lines changed: 11 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,7 @@
22

33
import cloud.stackit.sdk.core.exception.ApiException;
44
import cloud.stackit.sdk.iaas.v2alpha1api.api.IaasApi;
5-
import cloud.stackit.sdk.iaas.v2alpha1api.model.AddVPCRoutingTablePayload;
6-
import cloud.stackit.sdk.iaas.v2alpha1api.model.AddVPCStaticRoutePayload;
7-
import cloud.stackit.sdk.iaas.v2alpha1api.model.AddVPCStaticRoutePayloadDestination;
8-
import cloud.stackit.sdk.iaas.v2alpha1api.model.AddVPCStaticRoutePayloadNexthop;
9-
import cloud.stackit.sdk.iaas.v2alpha1api.model.CreateVPCPayload;
10-
import cloud.stackit.sdk.iaas.v2alpha1api.model.CreateVPCRegionPayload;
11-
import cloud.stackit.sdk.iaas.v2alpha1api.model.DestinationCIDRv4;
12-
import cloud.stackit.sdk.iaas.v2alpha1api.model.NetworkRangeIPv4Request;
13-
import cloud.stackit.sdk.iaas.v2alpha1api.model.NexthopInternet;
14-
import cloud.stackit.sdk.iaas.v2alpha1api.model.RegionalVPC;
15-
import cloud.stackit.sdk.iaas.v2alpha1api.model.Route;
16-
import cloud.stackit.sdk.iaas.v2alpha1api.model.VPC;
17-
import cloud.stackit.sdk.iaas.v2alpha1api.model.VPCNetworkRange;
18-
import cloud.stackit.sdk.iaas.v2alpha1api.model.VPCRoutingTable;
5+
import cloud.stackit.sdk.iaas.v2alpha1api.model.*;
196
import cloud.stackit.sdk.resourcemanager.v0api.api.ResourceManagerApi;
207
import cloud.stackit.sdk.resourcemanager.v0api.model.CreateProjectPayload;
218
import cloud.stackit.sdk.resourcemanager.v0api.model.Member;
@@ -238,15 +225,16 @@ public static void main(String[] args) throws IOException {
238225
r.project.getProjectId(),
239226
r.vpc.getId(),
240227
region,
241-
new NetworkRangeIPv4Request()
242-
.ipVersion(NetworkRangeIPv4Request.IpVersionEnum.IPV4)
243-
.prefix("192.168.1.0/24")
244-
.description("example-network-range")
245-
.defaultPrefixLen(26L)
246-
.maxPrefixLen(29L)
247-
.minPrefixLen(16L)
248-
.addNameserversItem("10.0.0.1")
249-
.addNameserversItem("10.0.0.8"));
228+
new CreateVPCNetworkRangePayload(
229+
new NetworkRangeIPv4Request()
230+
.ipVersion(NetworkRangeIPv4Request.IpVersionEnum.IPV4)
231+
.prefix("192.168.1.0/24")
232+
.description("example-network-range")
233+
.defaultPrefixLen(26L)
234+
.maxPrefixLen(29L)
235+
.minPrefixLen(16L)
236+
.addNameserversItem("10.0.0.1")
237+
.addNameserversItem("10.0.0.8")));
250238
while (true) {
251239
try {
252240
String status =

services/iaas/CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
## v1.4.0
2+
- `v2alpha1api`:
3+
- **Breaking Change:** `NetworkRangeIPv4Request` was moved into the oneOf class `CreateVPCNetworkRangePayload`. Changes parameter in method `createVPCNetworkRange`.
4+
- **Breaking Change:** `V1UpdateVPCNetworkRangeIPv4` was moved into the oneOf class `UpdateVPCNetworkRangePayload`. Changes parameter in method `updateVPCNetworkRange`.
5+
16
## v1.3.0
27
- new example for managing `VPCs` with the `v2alpha1api`
38
- `v1api`

services/iaas/VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.3.0
1+
1.4.0

services/iaas/src/main/java/cloud/stackit/sdk/iaas/v2alpha1api/JSON.java

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,33 @@ public static GsonBuilder createGson() {
129129
getDiscriminatorValue(readElement, "type"));
130130
}
131131
})
132+
.registerTypeSelector(
133+
cloud.stackit.sdk.iaas.v2alpha1api.model
134+
.CreateVPCNetworkRangePayload.class,
135+
new TypeSelector<
136+
cloud.stackit.sdk.iaas.v2alpha1api.model
137+
.CreateVPCNetworkRangePayload>() {
138+
@Override
139+
public Class<
140+
? extends
141+
cloud.stackit.sdk.iaas.v2alpha1api.model
142+
.CreateVPCNetworkRangePayload>
143+
getClassForElement(JsonElement readElement) {
144+
Map<String, Class> classByDiscriminatorValue =
145+
new HashMap<String, Class>();
146+
classByDiscriminatorValue.put(
147+
"ipv4",
148+
cloud.stackit.sdk.iaas.v2alpha1api.model
149+
.NetworkRangeIPv4Request.class);
150+
classByDiscriminatorValue.put(
151+
"CreateVPCNetworkRangePayload",
152+
cloud.stackit.sdk.iaas.v2alpha1api.model
153+
.CreateVPCNetworkRangePayload.class);
154+
return getClassByDiscriminator(
155+
classByDiscriminatorValue,
156+
getDiscriminatorValue(readElement, "ipVersion"));
157+
}
158+
})
132159
.registerTypeSelector(
133160
cloud.stackit.sdk.iaas.v2alpha1api.model.RouteDestination.class,
134161
new TypeSelector<
@@ -196,6 +223,33 @@ public static GsonBuilder createGson() {
196223
getDiscriminatorValue(readElement, "type"));
197224
}
198225
})
226+
.registerTypeSelector(
227+
cloud.stackit.sdk.iaas.v2alpha1api.model
228+
.UpdateVPCNetworkRangePayload.class,
229+
new TypeSelector<
230+
cloud.stackit.sdk.iaas.v2alpha1api.model
231+
.UpdateVPCNetworkRangePayload>() {
232+
@Override
233+
public Class<
234+
? extends
235+
cloud.stackit.sdk.iaas.v2alpha1api.model
236+
.UpdateVPCNetworkRangePayload>
237+
getClassForElement(JsonElement readElement) {
238+
Map<String, Class> classByDiscriminatorValue =
239+
new HashMap<String, Class>();
240+
classByDiscriminatorValue.put(
241+
"ipv4",
242+
cloud.stackit.sdk.iaas.v2alpha1api.model
243+
.V1UpdateVPCNetworkRangeIPv4.class);
244+
classByDiscriminatorValue.put(
245+
"UpdateVPCNetworkRangePayload",
246+
cloud.stackit.sdk.iaas.v2alpha1api.model
247+
.UpdateVPCNetworkRangePayload.class);
248+
return getClassByDiscriminator(
249+
classByDiscriminatorValue,
250+
getDiscriminatorValue(readElement, "ipVersion"));
251+
}
252+
})
199253
.registerTypeSelector(
200254
cloud.stackit.sdk.iaas.v2alpha1api.model.VPCNetworkRange.class,
201255
new TypeSelector<
@@ -304,6 +358,9 @@ private static Class getClassByDiscriminator(
304358
gsonBuilder.registerTypeAdapterFactory(
305359
new cloud.stackit.sdk.iaas.v2alpha1api.model.CreateNetworkPayload
306360
.CustomTypeAdapterFactory());
361+
gsonBuilder.registerTypeAdapterFactory(
362+
new cloud.stackit.sdk.iaas.v2alpha1api.model.CreateVPCNetworkRangePayload
363+
.CustomTypeAdapterFactory());
307364
gsonBuilder.registerTypeAdapterFactory(
308365
new cloud.stackit.sdk.iaas.v2alpha1api.model.CreateVPCPayload
309366
.CustomTypeAdapterFactory());
@@ -388,6 +445,9 @@ private static Class getClassByDiscriminator(
388445
gsonBuilder.registerTypeAdapterFactory(
389446
new cloud.stackit.sdk.iaas.v2alpha1api.model.UpdateRoutingTableOfAreaPayload
390447
.CustomTypeAdapterFactory());
448+
gsonBuilder.registerTypeAdapterFactory(
449+
new cloud.stackit.sdk.iaas.v2alpha1api.model.UpdateVPCNetworkRangePayload
450+
.CustomTypeAdapterFactory());
391451
gsonBuilder.registerTypeAdapterFactory(
392452
new cloud.stackit.sdk.iaas.v2alpha1api.model.UpdateVPCRegionPayload
393453
.CustomTypeAdapterFactory());

0 commit comments

Comments
 (0)