diff --git a/CHANGELOG.md b/CHANGELOG.md index 9f35b835..331642fe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,19 +1,24 @@ ## Release (YYYY-MM-DD) - `alb`: [v0.6.0](services/alb/CHANGELOG.md#v060) - **Breaking change:** Remove `v2beta` API -- `iaas`: [v1.3.0](services/iaas/CHANGELOG.md#v130) - - new example for managing `VPCs` with the `v2alpha1api` - - `v1api` - - **Braking Change:** remove deprecated operations: `updateImageScopeLocal`, `updateImageScopePublic` - - **Feature:** add attribute `vtpm` (new model `ServerVTPM`) to model `Server` - - **Feature:** add attribute `availabilityZone` to model `Snapshot` - - `v2alpha1api` - - **Feature:** add operations and models to manage `VPCs` - - `v2api` - - **Feature:** add attribute `vpcNetworkRangeId` to models `NetworkIPv4` `NetworkIPv6` - - **Feature:** add attribute `vpcId` to model `Network`, - - **Feature:** add attribute `vtpm` (new model `ServerVTPM`) to model `Server`, - - **Feature:** add attribute `availabilityZone` to model `Snapshot`, +- `iaas`: + - [v1.4.0](services/iaas/CHANGELOG.md#v140) + - `v2alpha1api`: + - **Breaking Change:** `NetworkRangeIPv4Request` was moved into the oneOf class `CreateVPCNetworkRangePayload`. Changes parameter in method `createVPCNetworkRange`. + - **Breaking Change:** `V1UpdateVPCNetworkRangeIPv4` was moved into the oneOf class `UpdateVPCNetworkRangePayload`. Changes parameter in method `updateVPCNetworkRange`. + - [v1.3.0](services/iaas/CHANGELOG.md#v130) + - new example for managing `VPCs` with the `v2alpha1api` + - `v1api` + - **Braking Change:** remove deprecated operations: `updateImageScopeLocal`, `updateImageScopePublic` + - **Feature:** add attribute `vtpm` (new model `ServerVTPM`) to model `Server` + - **Feature:** add attribute `availabilityZone` to model `Snapshot` + - `v2alpha1api` + - **Feature:** add operations and models to manage `VPCs` + - `v2api` + - **Feature:** add attribute `vpcNetworkRangeId` to models `NetworkIPv4` `NetworkIPv6` + - **Feature:** add attribute `vpcId` to model `Network`, + - **Feature:** add attribute `vtpm` (new model `ServerVTPM`) to model `Server`, + - **Feature:** add attribute `availabilityZone` to model `Snapshot`, ## Release (2026-04-28) - `alb`: [v0.5.0](services/alb/CHANGELOG.md#v050) diff --git a/examples/iaas/src/main/java/cloud/stackit/sdk/iaas/examples/IaaSVPCExample.java b/examples/iaas/src/main/java/cloud/stackit/sdk/iaas/examples/IaaSVPCExample.java index 97d90ac8..b96439b9 100644 --- a/examples/iaas/src/main/java/cloud/stackit/sdk/iaas/examples/IaaSVPCExample.java +++ b/examples/iaas/src/main/java/cloud/stackit/sdk/iaas/examples/IaaSVPCExample.java @@ -2,20 +2,7 @@ import cloud.stackit.sdk.core.exception.ApiException; import cloud.stackit.sdk.iaas.v2alpha1api.api.IaasApi; -import cloud.stackit.sdk.iaas.v2alpha1api.model.AddVPCRoutingTablePayload; -import cloud.stackit.sdk.iaas.v2alpha1api.model.AddVPCStaticRoutePayload; -import cloud.stackit.sdk.iaas.v2alpha1api.model.AddVPCStaticRoutePayloadDestination; -import cloud.stackit.sdk.iaas.v2alpha1api.model.AddVPCStaticRoutePayloadNexthop; -import cloud.stackit.sdk.iaas.v2alpha1api.model.CreateVPCPayload; -import cloud.stackit.sdk.iaas.v2alpha1api.model.CreateVPCRegionPayload; -import cloud.stackit.sdk.iaas.v2alpha1api.model.DestinationCIDRv4; -import cloud.stackit.sdk.iaas.v2alpha1api.model.NetworkRangeIPv4Request; -import cloud.stackit.sdk.iaas.v2alpha1api.model.NexthopInternet; -import cloud.stackit.sdk.iaas.v2alpha1api.model.RegionalVPC; -import cloud.stackit.sdk.iaas.v2alpha1api.model.Route; -import cloud.stackit.sdk.iaas.v2alpha1api.model.VPC; -import cloud.stackit.sdk.iaas.v2alpha1api.model.VPCNetworkRange; -import cloud.stackit.sdk.iaas.v2alpha1api.model.VPCRoutingTable; +import cloud.stackit.sdk.iaas.v2alpha1api.model.*; import cloud.stackit.sdk.resourcemanager.v0api.api.ResourceManagerApi; import cloud.stackit.sdk.resourcemanager.v0api.model.CreateProjectPayload; import cloud.stackit.sdk.resourcemanager.v0api.model.Member; @@ -238,15 +225,16 @@ public static void main(String[] args) throws IOException { r.project.getProjectId(), r.vpc.getId(), region, - new NetworkRangeIPv4Request() - .ipVersion(NetworkRangeIPv4Request.IpVersionEnum.IPV4) - .prefix("192.168.1.0/24") - .description("example-network-range") - .defaultPrefixLen(26L) - .maxPrefixLen(29L) - .minPrefixLen(16L) - .addNameserversItem("10.0.0.1") - .addNameserversItem("10.0.0.8")); + new CreateVPCNetworkRangePayload( + new NetworkRangeIPv4Request() + .ipVersion(NetworkRangeIPv4Request.IpVersionEnum.IPV4) + .prefix("192.168.1.0/24") + .description("example-network-range") + .defaultPrefixLen(26L) + .maxPrefixLen(29L) + .minPrefixLen(16L) + .addNameserversItem("10.0.0.1") + .addNameserversItem("10.0.0.8"))); while (true) { try { String status = diff --git a/services/iaas/CHANGELOG.md b/services/iaas/CHANGELOG.md index c4a929a3..1970a845 100644 --- a/services/iaas/CHANGELOG.md +++ b/services/iaas/CHANGELOG.md @@ -1,3 +1,8 @@ +## v1.4.0 +- `v2alpha1api`: + - **Breaking Change:** `NetworkRangeIPv4Request` was moved into the oneOf class `CreateVPCNetworkRangePayload`. Changes parameter in method `createVPCNetworkRange`. + - **Breaking Change:** `V1UpdateVPCNetworkRangeIPv4` was moved into the oneOf class `UpdateVPCNetworkRangePayload`. Changes parameter in method `updateVPCNetworkRange`. + ## v1.3.0 - new example for managing `VPCs` with the `v2alpha1api` - `v1api` diff --git a/services/iaas/VERSION b/services/iaas/VERSION index f0bb29e7..88c5fb89 100644 --- a/services/iaas/VERSION +++ b/services/iaas/VERSION @@ -1 +1 @@ -1.3.0 +1.4.0 diff --git a/services/iaas/src/main/java/cloud/stackit/sdk/iaas/v2alpha1api/JSON.java b/services/iaas/src/main/java/cloud/stackit/sdk/iaas/v2alpha1api/JSON.java index 6b1bfa7e..232b9ba5 100644 --- a/services/iaas/src/main/java/cloud/stackit/sdk/iaas/v2alpha1api/JSON.java +++ b/services/iaas/src/main/java/cloud/stackit/sdk/iaas/v2alpha1api/JSON.java @@ -129,6 +129,33 @@ public static GsonBuilder createGson() { getDiscriminatorValue(readElement, "type")); } }) + .registerTypeSelector( + cloud.stackit.sdk.iaas.v2alpha1api.model + .CreateVPCNetworkRangePayload.class, + new TypeSelector< + cloud.stackit.sdk.iaas.v2alpha1api.model + .CreateVPCNetworkRangePayload>() { + @Override + public Class< + ? extends + cloud.stackit.sdk.iaas.v2alpha1api.model + .CreateVPCNetworkRangePayload> + getClassForElement(JsonElement readElement) { + Map classByDiscriminatorValue = + new HashMap(); + classByDiscriminatorValue.put( + "ipv4", + cloud.stackit.sdk.iaas.v2alpha1api.model + .NetworkRangeIPv4Request.class); + classByDiscriminatorValue.put( + "CreateVPCNetworkRangePayload", + cloud.stackit.sdk.iaas.v2alpha1api.model + .CreateVPCNetworkRangePayload.class); + return getClassByDiscriminator( + classByDiscriminatorValue, + getDiscriminatorValue(readElement, "ipVersion")); + } + }) .registerTypeSelector( cloud.stackit.sdk.iaas.v2alpha1api.model.RouteDestination.class, new TypeSelector< @@ -196,6 +223,33 @@ public static GsonBuilder createGson() { getDiscriminatorValue(readElement, "type")); } }) + .registerTypeSelector( + cloud.stackit.sdk.iaas.v2alpha1api.model + .UpdateVPCNetworkRangePayload.class, + new TypeSelector< + cloud.stackit.sdk.iaas.v2alpha1api.model + .UpdateVPCNetworkRangePayload>() { + @Override + public Class< + ? extends + cloud.stackit.sdk.iaas.v2alpha1api.model + .UpdateVPCNetworkRangePayload> + getClassForElement(JsonElement readElement) { + Map classByDiscriminatorValue = + new HashMap(); + classByDiscriminatorValue.put( + "ipv4", + cloud.stackit.sdk.iaas.v2alpha1api.model + .V1UpdateVPCNetworkRangeIPv4.class); + classByDiscriminatorValue.put( + "UpdateVPCNetworkRangePayload", + cloud.stackit.sdk.iaas.v2alpha1api.model + .UpdateVPCNetworkRangePayload.class); + return getClassByDiscriminator( + classByDiscriminatorValue, + getDiscriminatorValue(readElement, "ipVersion")); + } + }) .registerTypeSelector( cloud.stackit.sdk.iaas.v2alpha1api.model.VPCNetworkRange.class, new TypeSelector< @@ -304,6 +358,9 @@ private static Class getClassByDiscriminator( gsonBuilder.registerTypeAdapterFactory( new cloud.stackit.sdk.iaas.v2alpha1api.model.CreateNetworkPayload .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new cloud.stackit.sdk.iaas.v2alpha1api.model.CreateVPCNetworkRangePayload + .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new cloud.stackit.sdk.iaas.v2alpha1api.model.CreateVPCPayload .CustomTypeAdapterFactory()); @@ -388,6 +445,9 @@ private static Class getClassByDiscriminator( gsonBuilder.registerTypeAdapterFactory( new cloud.stackit.sdk.iaas.v2alpha1api.model.UpdateRoutingTableOfAreaPayload .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new cloud.stackit.sdk.iaas.v2alpha1api.model.UpdateVPCNetworkRangePayload + .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new cloud.stackit.sdk.iaas.v2alpha1api.model.UpdateVPCRegionPayload .CustomTypeAdapterFactory()); diff --git a/services/iaas/src/main/java/cloud/stackit/sdk/iaas/v2alpha1api/api/DefaultApi.java b/services/iaas/src/main/java/cloud/stackit/sdk/iaas/v2alpha1api/api/DefaultApi.java index f4ab33b0..8ca18c08 100644 --- a/services/iaas/src/main/java/cloud/stackit/sdk/iaas/v2alpha1api/api/DefaultApi.java +++ b/services/iaas/src/main/java/cloud/stackit/sdk/iaas/v2alpha1api/api/DefaultApi.java @@ -23,11 +23,11 @@ import cloud.stackit.sdk.iaas.v2alpha1api.model.AddVPCRoutingTablePayload; import cloud.stackit.sdk.iaas.v2alpha1api.model.AddVPCStaticRoutePayload; import cloud.stackit.sdk.iaas.v2alpha1api.model.CreateNetworkPayload; +import cloud.stackit.sdk.iaas.v2alpha1api.model.CreateVPCNetworkRangePayload; import cloud.stackit.sdk.iaas.v2alpha1api.model.CreateVPCPayload; import cloud.stackit.sdk.iaas.v2alpha1api.model.CreateVPCRegionPayload; import cloud.stackit.sdk.iaas.v2alpha1api.model.Network; import cloud.stackit.sdk.iaas.v2alpha1api.model.NetworkListResponse; -import cloud.stackit.sdk.iaas.v2alpha1api.model.NetworkRangeIPv4Request; import cloud.stackit.sdk.iaas.v2alpha1api.model.PartialUpdateNetworkPayload; import cloud.stackit.sdk.iaas.v2alpha1api.model.PartialUpdateVPCPayload; import cloud.stackit.sdk.iaas.v2alpha1api.model.RegionalVPC; @@ -38,10 +38,10 @@ import cloud.stackit.sdk.iaas.v2alpha1api.model.RoutingTableListResponse; import cloud.stackit.sdk.iaas.v2alpha1api.model.UpdateRouteOfRoutingTablePayload; import cloud.stackit.sdk.iaas.v2alpha1api.model.UpdateRoutingTableOfAreaPayload; +import cloud.stackit.sdk.iaas.v2alpha1api.model.UpdateVPCNetworkRangePayload; import cloud.stackit.sdk.iaas.v2alpha1api.model.UpdateVPCRegionPayload; import cloud.stackit.sdk.iaas.v2alpha1api.model.UpdateVPCRoutingTablePayload; import cloud.stackit.sdk.iaas.v2alpha1api.model.UpdateVPCStaticRoutePayload; -import cloud.stackit.sdk.iaas.v2alpha1api.model.V1UpdateVPCNetworkRangeIPv4; import cloud.stackit.sdk.iaas.v2alpha1api.model.VPC; import cloud.stackit.sdk.iaas.v2alpha1api.model.VPCList; import cloud.stackit.sdk.iaas.v2alpha1api.model.VPCNetworkRange; @@ -1610,7 +1610,8 @@ public okhttp3.Call createVPCAsync( * @param vpcId The unique identifier (ID) of the target STACKIT VPC in the request path. * (required) * @param region The STACKIT Region of the resources. (required) - * @param body Request to add an additional network range to a VPC. (required) + * @param createVPCNetworkRangePayload Request to add an additional network range to a VPC. + * (required) * @param _callback Callback for upload/download progress * @return Call to execute * @throws ApiException If fail to serialize the request body object @@ -1632,7 +1633,7 @@ public okhttp3.Call createVPCNetworkRangeCall( @javax.annotation.Nonnull UUID projectId, @javax.annotation.Nonnull UUID vpcId, @javax.annotation.Nonnull String region, - @javax.annotation.Nonnull NetworkRangeIPv4Request body, + @javax.annotation.Nonnull CreateVPCNetworkRangePayload createVPCNetworkRangePayload, final ApiCallback _callback) throws ApiException { String basePath = null; @@ -1648,7 +1649,7 @@ public okhttp3.Call createVPCNetworkRangeCall( basePath = null; } - Object localVarPostBody = body; + Object localVarPostBody = createVPCNetworkRangePayload; // create path and map variables String localVarPath = @@ -1702,7 +1703,7 @@ private okhttp3.Call createVPCNetworkRangeValidateBeforeCall( @javax.annotation.Nonnull UUID projectId, @javax.annotation.Nonnull UUID vpcId, @javax.annotation.Nonnull String region, - @javax.annotation.Nonnull NetworkRangeIPv4Request body, + @javax.annotation.Nonnull CreateVPCNetworkRangePayload createVPCNetworkRangePayload, final ApiCallback _callback) throws ApiException { // verify the required parameter 'projectId' is set @@ -1723,13 +1724,14 @@ private okhttp3.Call createVPCNetworkRangeValidateBeforeCall( "Missing the required parameter 'region' when calling createVPCNetworkRange(Async)"); } - // verify the required parameter 'body' is set - if (body == null) { + // verify the required parameter 'createVPCNetworkRangePayload' is set + if (createVPCNetworkRangePayload == null) { throw new ApiException( - "Missing the required parameter 'body' when calling createVPCNetworkRange(Async)"); + "Missing the required parameter 'createVPCNetworkRangePayload' when calling createVPCNetworkRange(Async)"); } - return createVPCNetworkRangeCall(projectId, vpcId, region, body, _callback); + return createVPCNetworkRangeCall( + projectId, vpcId, region, createVPCNetworkRangePayload, _callback); } /** @@ -1740,7 +1742,8 @@ private okhttp3.Call createVPCNetworkRangeValidateBeforeCall( * @param vpcId The unique identifier (ID) of the target STACKIT VPC in the request path. * (required) * @param region The STACKIT Region of the resources. (required) - * @param body Request to add an additional network range to a VPC. (required) + * @param createVPCNetworkRangePayload Request to add an additional network range to a VPC. + * (required) * @return VPCNetworkRange * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the * response body @@ -1762,10 +1765,11 @@ public VPCNetworkRange createVPCNetworkRange( @javax.annotation.Nonnull UUID projectId, @javax.annotation.Nonnull UUID vpcId, @javax.annotation.Nonnull String region, - @javax.annotation.Nonnull NetworkRangeIPv4Request body) + @javax.annotation.Nonnull CreateVPCNetworkRangePayload createVPCNetworkRangePayload) throws ApiException { ApiResponse localVarResp = - createVPCNetworkRangeWithHttpInfo(projectId, vpcId, region, body); + createVPCNetworkRangeWithHttpInfo( + projectId, vpcId, region, createVPCNetworkRangePayload); return localVarResp.getData(); } @@ -1777,7 +1781,8 @@ public VPCNetworkRange createVPCNetworkRange( * @param vpcId The unique identifier (ID) of the target STACKIT VPC in the request path. * (required) * @param region The STACKIT Region of the resources. (required) - * @param body Request to add an additional network range to a VPC. (required) + * @param createVPCNetworkRangePayload Request to add an additional network range to a VPC. + * (required) * @return ApiResponse<VPCNetworkRange> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the * response body @@ -1799,10 +1804,11 @@ public ApiResponse createVPCNetworkRangeWithHttpInfo( @javax.annotation.Nonnull UUID projectId, @javax.annotation.Nonnull UUID vpcId, @javax.annotation.Nonnull String region, - @javax.annotation.Nonnull NetworkRangeIPv4Request body) + @javax.annotation.Nonnull CreateVPCNetworkRangePayload createVPCNetworkRangePayload) throws ApiException { okhttp3.Call localVarCall = - createVPCNetworkRangeValidateBeforeCall(projectId, vpcId, region, body, null); + createVPCNetworkRangeValidateBeforeCall( + projectId, vpcId, region, createVPCNetworkRangePayload, null); Type localVarReturnType = new TypeToken() {}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -1815,7 +1821,8 @@ public ApiResponse createVPCNetworkRangeWithHttpInfo( * @param vpcId The unique identifier (ID) of the target STACKIT VPC in the request path. * (required) * @param region The STACKIT Region of the resources. (required) - * @param body Request to add an additional network range to a VPC. (required) + * @param createVPCNetworkRangePayload Request to add an additional network range to a VPC. + * (required) * @param _callback The callback to be executed when the API call finishes * @return The request call * @throws ApiException If fail to process the API call, e.g. serializing the request body @@ -1838,12 +1845,13 @@ public okhttp3.Call createVPCNetworkRangeAsync( @javax.annotation.Nonnull UUID projectId, @javax.annotation.Nonnull UUID vpcId, @javax.annotation.Nonnull String region, - @javax.annotation.Nonnull NetworkRangeIPv4Request body, + @javax.annotation.Nonnull CreateVPCNetworkRangePayload createVPCNetworkRangePayload, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = - createVPCNetworkRangeValidateBeforeCall(projectId, vpcId, region, body, _callback); + createVPCNetworkRangeValidateBeforeCall( + projectId, vpcId, region, createVPCNetworkRangePayload, _callback); Type localVarReturnType = new TypeToken() {}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; @@ -9047,7 +9055,7 @@ public okhttp3.Call updateRoutingTableOfAreaAsync( * (required) * @param region The STACKIT Region of the resources. (required) * @param networkRangeId The identifier (ID) of a STACKIT Network Range. (required) - * @param body Request an update of a network range. (required) + * @param updateVPCNetworkRangePayload Request an update of a network range. (required) * @param _callback Callback for upload/download progress * @return Call to execute * @throws ApiException If fail to serialize the request body object @@ -9070,7 +9078,7 @@ public okhttp3.Call updateVPCNetworkRangeCall( @javax.annotation.Nonnull UUID vpcId, @javax.annotation.Nonnull String region, @javax.annotation.Nonnull UUID networkRangeId, - @javax.annotation.Nonnull V1UpdateVPCNetworkRangeIPv4 body, + @javax.annotation.Nonnull UpdateVPCNetworkRangePayload updateVPCNetworkRangePayload, final ApiCallback _callback) throws ApiException { String basePath = null; @@ -9086,7 +9094,7 @@ public okhttp3.Call updateVPCNetworkRangeCall( basePath = null; } - Object localVarPostBody = body; + Object localVarPostBody = updateVPCNetworkRangePayload; // create path and map variables String localVarPath = @@ -9144,7 +9152,7 @@ private okhttp3.Call updateVPCNetworkRangeValidateBeforeCall( @javax.annotation.Nonnull UUID vpcId, @javax.annotation.Nonnull String region, @javax.annotation.Nonnull UUID networkRangeId, - @javax.annotation.Nonnull V1UpdateVPCNetworkRangeIPv4 body, + @javax.annotation.Nonnull UpdateVPCNetworkRangePayload updateVPCNetworkRangePayload, final ApiCallback _callback) throws ApiException { // verify the required parameter 'projectId' is set @@ -9171,13 +9179,14 @@ private okhttp3.Call updateVPCNetworkRangeValidateBeforeCall( "Missing the required parameter 'networkRangeId' when calling updateVPCNetworkRange(Async)"); } - // verify the required parameter 'body' is set - if (body == null) { + // verify the required parameter 'updateVPCNetworkRangePayload' is set + if (updateVPCNetworkRangePayload == null) { throw new ApiException( - "Missing the required parameter 'body' when calling updateVPCNetworkRange(Async)"); + "Missing the required parameter 'updateVPCNetworkRangePayload' when calling updateVPCNetworkRange(Async)"); } - return updateVPCNetworkRangeCall(projectId, vpcId, region, networkRangeId, body, _callback); + return updateVPCNetworkRangeCall( + projectId, vpcId, region, networkRangeId, updateVPCNetworkRangePayload, _callback); } /** @@ -9188,7 +9197,7 @@ private okhttp3.Call updateVPCNetworkRangeValidateBeforeCall( * (required) * @param region The STACKIT Region of the resources. (required) * @param networkRangeId The identifier (ID) of a STACKIT Network Range. (required) - * @param body Request an update of a network range. (required) + * @param updateVPCNetworkRangePayload Request an update of a network range. (required) * @return VPCNetworkRange * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the * response body @@ -9211,10 +9220,11 @@ public VPCNetworkRange updateVPCNetworkRange( @javax.annotation.Nonnull UUID vpcId, @javax.annotation.Nonnull String region, @javax.annotation.Nonnull UUID networkRangeId, - @javax.annotation.Nonnull V1UpdateVPCNetworkRangeIPv4 body) + @javax.annotation.Nonnull UpdateVPCNetworkRangePayload updateVPCNetworkRangePayload) throws ApiException { ApiResponse localVarResp = - updateVPCNetworkRangeWithHttpInfo(projectId, vpcId, region, networkRangeId, body); + updateVPCNetworkRangeWithHttpInfo( + projectId, vpcId, region, networkRangeId, updateVPCNetworkRangePayload); return localVarResp.getData(); } @@ -9226,7 +9236,7 @@ public VPCNetworkRange updateVPCNetworkRange( * (required) * @param region The STACKIT Region of the resources. (required) * @param networkRangeId The identifier (ID) of a STACKIT Network Range. (required) - * @param body Request an update of a network range. (required) + * @param updateVPCNetworkRangePayload Request an update of a network range. (required) * @return ApiResponse<VPCNetworkRange> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the * response body @@ -9249,11 +9259,16 @@ public ApiResponse updateVPCNetworkRangeWithHttpInfo( @javax.annotation.Nonnull UUID vpcId, @javax.annotation.Nonnull String region, @javax.annotation.Nonnull UUID networkRangeId, - @javax.annotation.Nonnull V1UpdateVPCNetworkRangeIPv4 body) + @javax.annotation.Nonnull UpdateVPCNetworkRangePayload updateVPCNetworkRangePayload) throws ApiException { okhttp3.Call localVarCall = updateVPCNetworkRangeValidateBeforeCall( - projectId, vpcId, region, networkRangeId, body, null); + projectId, + vpcId, + region, + networkRangeId, + updateVPCNetworkRangePayload, + null); Type localVarReturnType = new TypeToken() {}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -9267,7 +9282,7 @@ public ApiResponse updateVPCNetworkRangeWithHttpInfo( * (required) * @param region The STACKIT Region of the resources. (required) * @param networkRangeId The identifier (ID) of a STACKIT Network Range. (required) - * @param body Request an update of a network range. (required) + * @param updateVPCNetworkRangePayload Request an update of a network range. (required) * @param _callback The callback to be executed when the API call finishes * @return The request call * @throws ApiException If fail to process the API call, e.g. serializing the request body @@ -9291,13 +9306,18 @@ public okhttp3.Call updateVPCNetworkRangeAsync( @javax.annotation.Nonnull UUID vpcId, @javax.annotation.Nonnull String region, @javax.annotation.Nonnull UUID networkRangeId, - @javax.annotation.Nonnull V1UpdateVPCNetworkRangeIPv4 body, + @javax.annotation.Nonnull UpdateVPCNetworkRangePayload updateVPCNetworkRangePayload, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = updateVPCNetworkRangeValidateBeforeCall( - projectId, vpcId, region, networkRangeId, body, _callback); + projectId, + vpcId, + region, + networkRangeId, + updateVPCNetworkRangePayload, + _callback); Type localVarReturnType = new TypeToken() {}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; diff --git a/services/iaas/src/main/java/cloud/stackit/sdk/iaas/v2alpha1api/model/CreateVPCNetworkRangePayload.java b/services/iaas/src/main/java/cloud/stackit/sdk/iaas/v2alpha1api/model/CreateVPCNetworkRangePayload.java new file mode 100644 index 00000000..f6f15e65 --- /dev/null +++ b/services/iaas/src/main/java/cloud/stackit/sdk/iaas/v2alpha1api/model/CreateVPCNetworkRangePayload.java @@ -0,0 +1,233 @@ +/* + * STACKIT IaaS API + * This API allows you to create and modify IaaS resources. + * + * The version of the OpenAPI document: 2alpha1 + * Contact: stackit-iaas@mail.schwarz + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package cloud.stackit.sdk.iaas.v2alpha1api.model; + +import cloud.stackit.sdk.iaas.v2alpha1api.JSON; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; +import java.util.logging.Level; +import java.util.logging.Logger; + +@javax.annotation.Generated(value = "JavaGenerator", comments = "Generator version: 7.19.0") +public class CreateVPCNetworkRangePayload extends AbstractOpenApiSchema { + private static final Logger log = + Logger.getLogger(CreateVPCNetworkRangePayload.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!CreateVPCNetworkRangePayload.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'CreateVPCNetworkRangePayload' and its + // subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterNetworkRangeIPv4Request = + gson.getDelegateAdapter(this, TypeToken.get(NetworkRangeIPv4Request.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, CreateVPCNetworkRangePayload value) + throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `NetworkRangeIPv4Request` + if (value.getActualInstance() instanceof NetworkRangeIPv4Request) { + JsonElement element = + adapterNetworkRangeIPv4Request.toJsonTree( + (NetworkRangeIPv4Request) + value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException( + "Failed to serialize as the type doesn't match oneOf schemas: NetworkRangeIPv4Request"); + } + + @Override + public CreateVPCNetworkRangePayload read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + int match = 0; + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize NetworkRangeIPv4Request + try { + // validate the JSON object to see if any exception is thrown + NetworkRangeIPv4Request.validateJsonElement(jsonElement); + actualAdapter = adapterNetworkRangeIPv4Request; + match++; + log.log( + Level.FINER, + "Input data matches schema 'NetworkRangeIPv4Request'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add( + String.format( + java.util.Locale.ROOT, + "Deserialization for NetworkRangeIPv4Request failed with `%s`.", + e.getMessage())); + log.log( + Level.FINER, + "Input data does not match schema 'NetworkRangeIPv4Request'", + e); + } + + if (match == 1) { + CreateVPCNetworkRangePayload ret = + new CreateVPCNetworkRangePayload(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } + + throw new IOException( + String.format( + java.util.Locale.ROOT, + "Failed deserialization for CreateVPCNetworkRangePayload: %d classes match result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", + match, + errorMessages, + jsonElement.toString())); + } + }.nullSafe(); + } + } + + // store a list of schema names defined in oneOf + public static final Map> schemas = new HashMap>(); + + public CreateVPCNetworkRangePayload() { + super("oneOf", Boolean.FALSE); + } + + public CreateVPCNetworkRangePayload(Object o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put("NetworkRangeIPv4Request", NetworkRangeIPv4Request.class); + } + + @Override + public Map> getSchemas() { + return CreateVPCNetworkRangePayload.schemas; + } + + /** + * Set the instance that matches the oneOf child schema, check the instance parameter is valid + * against the oneOf child schemas: NetworkRangeIPv4Request + * + *

It could be an instance of the 'oneOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof NetworkRangeIPv4Request) { + super.setActualInstance(instance); + return; + } + + throw new RuntimeException("Invalid instance type. Must be NetworkRangeIPv4Request"); + } + + /** + * Get the actual instance, which can be the following: NetworkRangeIPv4Request + * + * @return The actual instance (NetworkRangeIPv4Request) + */ + @SuppressWarnings("unchecked") + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `NetworkRangeIPv4Request`. If the actual instance is not + * `NetworkRangeIPv4Request`, the ClassCastException will be thrown. + * + * @return The actual instance of `NetworkRangeIPv4Request` + * @throws ClassCastException if the instance is not `NetworkRangeIPv4Request` + */ + public NetworkRangeIPv4Request getNetworkRangeIPv4Request() throws ClassCastException { + return (NetworkRangeIPv4Request) super.getActualInstance(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to + * CreateVPCNetworkRangePayload + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate oneOf schemas one by one + int validCount = 0; + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with NetworkRangeIPv4Request + try { + NetworkRangeIPv4Request.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add( + String.format( + java.util.Locale.ROOT, + "Deserialization for NetworkRangeIPv4Request failed with `%s`.", + e.getMessage())); + // continue to the next one + } + if (validCount != 1) { + throw new IOException( + String.format( + java.util.Locale.ROOT, + "The JSON string is invalid for CreateVPCNetworkRangePayload with oneOf schemas: NetworkRangeIPv4Request. %d class(es) match the result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", + validCount, + errorMessages, + jsonElement.toString())); + } + } + + /** + * Create an instance of CreateVPCNetworkRangePayload given an JSON string + * + * @param jsonString JSON string + * @return An instance of CreateVPCNetworkRangePayload + * @throws IOException if the JSON string is invalid with respect to + * CreateVPCNetworkRangePayload + */ + public static CreateVPCNetworkRangePayload fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, CreateVPCNetworkRangePayload.class); + } + + /** + * Convert an instance of CreateVPCNetworkRangePayload to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/services/iaas/src/main/java/cloud/stackit/sdk/iaas/v2alpha1api/model/UpdateVPCNetworkRangePayload.java b/services/iaas/src/main/java/cloud/stackit/sdk/iaas/v2alpha1api/model/UpdateVPCNetworkRangePayload.java new file mode 100644 index 00000000..6ca0b84e --- /dev/null +++ b/services/iaas/src/main/java/cloud/stackit/sdk/iaas/v2alpha1api/model/UpdateVPCNetworkRangePayload.java @@ -0,0 +1,234 @@ +/* + * STACKIT IaaS API + * This API allows you to create and modify IaaS resources. + * + * The version of the OpenAPI document: 2alpha1 + * Contact: stackit-iaas@mail.schwarz + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package cloud.stackit.sdk.iaas.v2alpha1api.model; + +import cloud.stackit.sdk.iaas.v2alpha1api.JSON; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; +import java.util.logging.Level; +import java.util.logging.Logger; + +@javax.annotation.Generated(value = "JavaGenerator", comments = "Generator version: 7.19.0") +public class UpdateVPCNetworkRangePayload extends AbstractOpenApiSchema { + private static final Logger log = + Logger.getLogger(UpdateVPCNetworkRangePayload.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!UpdateVPCNetworkRangePayload.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'UpdateVPCNetworkRangePayload' and its + // subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterV1UpdateVPCNetworkRangeIPv4 = + gson.getDelegateAdapter(this, TypeToken.get(V1UpdateVPCNetworkRangeIPv4.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, UpdateVPCNetworkRangePayload value) + throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type + // `V1UpdateVPCNetworkRangeIPv4` + if (value.getActualInstance() instanceof V1UpdateVPCNetworkRangeIPv4) { + JsonElement element = + adapterV1UpdateVPCNetworkRangeIPv4.toJsonTree( + (V1UpdateVPCNetworkRangeIPv4) + value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException( + "Failed to serialize as the type doesn't match oneOf schemas: V1UpdateVPCNetworkRangeIPv4"); + } + + @Override + public UpdateVPCNetworkRangePayload read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + int match = 0; + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize V1UpdateVPCNetworkRangeIPv4 + try { + // validate the JSON object to see if any exception is thrown + V1UpdateVPCNetworkRangeIPv4.validateJsonElement(jsonElement); + actualAdapter = adapterV1UpdateVPCNetworkRangeIPv4; + match++; + log.log( + Level.FINER, + "Input data matches schema 'V1UpdateVPCNetworkRangeIPv4'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add( + String.format( + java.util.Locale.ROOT, + "Deserialization for V1UpdateVPCNetworkRangeIPv4 failed with `%s`.", + e.getMessage())); + log.log( + Level.FINER, + "Input data does not match schema 'V1UpdateVPCNetworkRangeIPv4'", + e); + } + + if (match == 1) { + UpdateVPCNetworkRangePayload ret = + new UpdateVPCNetworkRangePayload(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } + + throw new IOException( + String.format( + java.util.Locale.ROOT, + "Failed deserialization for UpdateVPCNetworkRangePayload: %d classes match result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", + match, + errorMessages, + jsonElement.toString())); + } + }.nullSafe(); + } + } + + // store a list of schema names defined in oneOf + public static final Map> schemas = new HashMap>(); + + public UpdateVPCNetworkRangePayload() { + super("oneOf", Boolean.FALSE); + } + + public UpdateVPCNetworkRangePayload(Object o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put("V1UpdateVPCNetworkRangeIPv4", V1UpdateVPCNetworkRangeIPv4.class); + } + + @Override + public Map> getSchemas() { + return UpdateVPCNetworkRangePayload.schemas; + } + + /** + * Set the instance that matches the oneOf child schema, check the instance parameter is valid + * against the oneOf child schemas: V1UpdateVPCNetworkRangeIPv4 + * + *

It could be an instance of the 'oneOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof V1UpdateVPCNetworkRangeIPv4) { + super.setActualInstance(instance); + return; + } + + throw new RuntimeException("Invalid instance type. Must be V1UpdateVPCNetworkRangeIPv4"); + } + + /** + * Get the actual instance, which can be the following: V1UpdateVPCNetworkRangeIPv4 + * + * @return The actual instance (V1UpdateVPCNetworkRangeIPv4) + */ + @SuppressWarnings("unchecked") + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `V1UpdateVPCNetworkRangeIPv4`. If the actual instance is not + * `V1UpdateVPCNetworkRangeIPv4`, the ClassCastException will be thrown. + * + * @return The actual instance of `V1UpdateVPCNetworkRangeIPv4` + * @throws ClassCastException if the instance is not `V1UpdateVPCNetworkRangeIPv4` + */ + public V1UpdateVPCNetworkRangeIPv4 getV1UpdateVPCNetworkRangeIPv4() throws ClassCastException { + return (V1UpdateVPCNetworkRangeIPv4) super.getActualInstance(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to + * UpdateVPCNetworkRangePayload + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate oneOf schemas one by one + int validCount = 0; + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with V1UpdateVPCNetworkRangeIPv4 + try { + V1UpdateVPCNetworkRangeIPv4.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add( + String.format( + java.util.Locale.ROOT, + "Deserialization for V1UpdateVPCNetworkRangeIPv4 failed with `%s`.", + e.getMessage())); + // continue to the next one + } + if (validCount != 1) { + throw new IOException( + String.format( + java.util.Locale.ROOT, + "The JSON string is invalid for UpdateVPCNetworkRangePayload with oneOf schemas: V1UpdateVPCNetworkRangeIPv4. %d class(es) match the result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", + validCount, + errorMessages, + jsonElement.toString())); + } + } + + /** + * Create an instance of UpdateVPCNetworkRangePayload given an JSON string + * + * @param jsonString JSON string + * @return An instance of UpdateVPCNetworkRangePayload + * @throws IOException if the JSON string is invalid with respect to + * UpdateVPCNetworkRangePayload + */ + public static UpdateVPCNetworkRangePayload fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, UpdateVPCNetworkRangePayload.class); + } + + /** + * Convert an instance of UpdateVPCNetworkRangePayload to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +}