diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/CHANGELOG.md b/sdk/compute/azure-resourcemanager-compute-recommender/CHANGELOG.md index b793a7183f70..5c5afd8a8037 100644 --- a/sdk/compute/azure-resourcemanager-compute-recommender/CHANGELOG.md +++ b/sdk/compute/azure-resourcemanager-compute-recommender/CHANGELOG.md @@ -1,14 +1,52 @@ # Release History -## 1.0.0-beta.2 (Unreleased) +## 1.0.0-beta.2 (2026-08-03) + +- Azure Resource Manager Compute Recommender client library for Java. This package contains Microsoft Azure SDK for Compute Recommender Management SDK. The Compute Recommender Resource Provider Client. Package api-version 2026-05-05-preview. For documentation on how to use this package, please see [Azure Management Libraries for Java](https://aka.ms/azsdk/java/mgmt). ### Features Added -### Breaking Changes +* `models.SkuMixPlacementBase` was added + +* `models.SkuMixPlacementItem` was added + +* `models.SkuMixPlacementResponse` was added + +* `models.SkuMixPlacementProperties` was added + +* `models.SkuMixPlacementPartialFulfillmentReason` was added + +* `models.SkuMixPlacementCapacityProfile` was added + +* `models.SkuMixPlacementPriority` was added + +* `models.SkuMixPlacementRequest` was added + +* `models.SkuMixPlacementInstanceDescription` was added + +* `models.SkuMixPlacementSpotPriorityProfile` was added + +* `models.SkuMixPlacementCapacityType` was added + +* `models.SkuMixPlacementZoneAllocationPolicy` was added + +* `models.SkuMixPlacementAllocationStrategy` was added + +* `models.SkuMixPlacementScores` was added + +* `models.SkuMixPlacementDeploymentChoice` was added + +* `models.SkuMixPlacementVMSize` was added + +* `models.SkuMixPlacementZonePreference` was added + +* `models.SkuMixPlacementOSType` was added + +* `models.SkuMixPlacementZonalDistributionStrategy` was added -### Bugs Fixed +#### `ComputeRecommenderManager` was modified -### Other Changes +* `skuMixPlacementScores()` was added ## 1.0.0-beta.1 (2025-09-24) diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/README.md b/sdk/compute/azure-resourcemanager-compute-recommender/README.md index c599819b71a0..47534b3dae3a 100644 --- a/sdk/compute/azure-resourcemanager-compute-recommender/README.md +++ b/sdk/compute/azure-resourcemanager-compute-recommender/README.md @@ -2,7 +2,7 @@ Azure Resource Manager Compute Recommender client library for Java. -This package contains Microsoft Azure SDK for Compute Recommender Management SDK. The Compute Recommender Resource Provider Client. Package api-version 2025-06-05. For documentation on how to use this package, please see [Azure Management Libraries for Java](https://aka.ms/azsdk/java/mgmt). +This package contains Microsoft Azure SDK for Compute Recommender Management SDK. The Compute Recommender Resource Provider Client. Package api-version 2026-05-05-preview. For documentation on how to use this package, please see [Azure Management Libraries for Java](https://aka.ms/azsdk/java/mgmt). ## We'd love to hear your feedback @@ -32,7 +32,7 @@ Various documentation is available to help you get started com.azure.resourcemanager azure-resourcemanager-compute-recommender - 1.0.0-beta.1 + 1.0.0-beta.2 ``` [//]: # ({x-version-update-end}) diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/SAMPLE.md b/sdk/compute/azure-resourcemanager-compute-recommender/SAMPLE.md index dfd3fdb30736..11b3fc3a5f45 100644 --- a/sdk/compute/azure-resourcemanager-compute-recommender/SAMPLE.md +++ b/sdk/compute/azure-resourcemanager-compute-recommender/SAMPLE.md @@ -5,6 +5,11 @@ - [List](#operations_list) +## SkuMixPlacementScores + +- [Get](#skumixplacementscores_get) +- [Post](#skumixplacementscores_post) + ## SpotPlacementScores - [Get](#spotplacementscores_get) @@ -17,7 +22,7 @@ */ public final class OperationsListSamples { /* - * x-ms-original-file: 2025-06-05/Operations_List_MinimumSet_Gen.json + * x-ms-original-file: 2026-05-05-preview/Operations_List_MinimumSet_Gen.json */ /** * Sample code: Operations_List_MinimumSet_Gen. @@ -30,7 +35,7 @@ public final class OperationsListSamples { } /* - * x-ms-original-file: 2025-06-05/Operations_List_MaximumSet_Gen.json + * x-ms-original-file: 2026-05-05-preview/Operations_List_MaximumSet_Gen.json */ /** * Sample code: Operations_List_MaximumSet_Gen. @@ -44,6 +49,76 @@ public final class OperationsListSamples { } ``` +### SkuMixPlacementScores_Get + +```java +/** + * Samples for SkuMixPlacementScores Get. + */ +public final class SkuMixPlacementScoresGetSamples { + /* + * x-ms-original-file: 2026-05-05-preview/GetSkuMixPlacementScores.json + */ + /** + * Sample code: Gets the metadata of SkuMixPlacement Scores. + * + * @param manager Entry point to ComputeRecommenderManager. + */ + public static void getsTheMetadataOfSkuMixPlacementScores( + com.azure.resourcemanager.compute.recommender.ComputeRecommenderManager manager) { + manager.skuMixPlacementScores().getWithResponse("eastus", com.azure.core.util.Context.NONE); + } +} +``` + +### SkuMixPlacementScores_Post + +```java +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementAllocationStrategy; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementCapacityProfile; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementCapacityType; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementInstanceDescription; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementOSType; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementPriority; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementRequest; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementVMSize; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementZonalDistributionStrategy; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementZoneAllocationPolicy; +import java.util.Arrays; + +/** + * Samples for SkuMixPlacementScores Post. + */ +public final class SkuMixPlacementScoresPostSamples { + /* + * x-ms-original-file: 2026-05-05-preview/GenerateSkuMixPlacementScores.json + */ + /** + * Sample code: Generates SkuMixPlacement scores for VM SKU mix placement with explicit VM sizes. + * + * @param manager Entry point to ComputeRecommenderManager. + */ + public static void generatesSkuMixPlacementScoresForVMSKUMixPlacementWithExplicitVMSizes( + com.azure.resourcemanager.compute.recommender.ComputeRecommenderManager manager) { + manager.skuMixPlacementScores() + .postWithResponse("eastus", + new SkuMixPlacementRequest().withZones(Arrays.asList("1", "2", "3")) + .withCapacityProfile(new SkuMixPlacementCapacityProfile().withCapacity(10) + .withCapacityType(SkuMixPlacementCapacityType.VM) + .withPriority(SkuMixPlacementPriority.REGULAR) + .withAllocationStrategy(SkuMixPlacementAllocationStrategy.LOWEST_PRICE) + .withOsType(SkuMixPlacementOSType.LINUX) + .withZoneAllocationPolicy(new SkuMixPlacementZoneAllocationPolicy() + .withDistributionStrategy(SkuMixPlacementZonalDistributionStrategy.BEST_EFFORT_BALANCED))) + .withInstanceDescription(new SkuMixPlacementInstanceDescription() + .withVmSizes(Arrays.asList(new SkuMixPlacementVMSize().withName("Standard_D2s_v3"), + new SkuMixPlacementVMSize().withName("Standard_D4s_v3"), + new SkuMixPlacementVMSize().withName("Standard_D8s_v3")))), + com.azure.core.util.Context.NONE); + } +} +``` + ### SpotPlacementScores_Get ```java @@ -52,7 +127,7 @@ public final class OperationsListSamples { */ public final class SpotPlacementScoresGetSamples { /* - * x-ms-original-file: 2025-06-05/GetSpotPlacementScores.json + * x-ms-original-file: 2026-05-05-preview/GetSpotPlacementScores.json */ /** * Sample code: Gets the metadata of Spot Placement Scores. @@ -78,7 +153,7 @@ import java.util.Arrays; */ public final class SpotPlacementScoresPostSamples { /* - * x-ms-original-file: 2025-06-05/GenerateSpotPlacementScores.json + * x-ms-original-file: 2026-05-05-preview/GenerateSpotPlacementScores.json */ /** * Sample code: Returns spot VM placement scores for given configurations. diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/pom.xml b/sdk/compute/azure-resourcemanager-compute-recommender/pom.xml index 7ed2df3d1525..6e3b63419742 100644 --- a/sdk/compute/azure-resourcemanager-compute-recommender/pom.xml +++ b/sdk/compute/azure-resourcemanager-compute-recommender/pom.xml @@ -3,7 +3,7 @@ ~ Licensed under the MIT License. ~ Code generated by Microsoft (R) TypeSpec Code Generator. --> - + 4.0.0 com.azure @@ -18,7 +18,7 @@ jar Microsoft Azure SDK for Compute Recommender Management - This package contains Microsoft Azure SDK for Compute Recommender Management SDK. For documentation on how to use this package, please see https://aka.ms/azsdk/java/mgmt. The Compute Recommender Resource Provider Client. Package api-version 2025-06-05. + This package contains Microsoft Azure SDK for Compute Recommender Management SDK. For documentation on how to use this package, please see https://aka.ms/azsdk/java/mgmt. The Compute Recommender Resource Provider Client. Package api-version 2026-05-05-preview. https://github.com/Azure/azure-sdk-for-java diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/ComputeRecommenderManager.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/ComputeRecommenderManager.java index 1e7115edb1ac..5c195d546d14 100644 --- a/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/ComputeRecommenderManager.java +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/ComputeRecommenderManager.java @@ -27,8 +27,10 @@ import com.azure.resourcemanager.compute.recommender.fluent.ComputeRecommenderManagementClient; import com.azure.resourcemanager.compute.recommender.implementation.ComputeRecommenderManagementClientBuilder; import com.azure.resourcemanager.compute.recommender.implementation.OperationsImpl; +import com.azure.resourcemanager.compute.recommender.implementation.SkuMixPlacementScoresImpl; import com.azure.resourcemanager.compute.recommender.implementation.SpotPlacementScoresImpl; import com.azure.resourcemanager.compute.recommender.models.Operations; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementScores; import com.azure.resourcemanager.compute.recommender.models.SpotPlacementScores; import java.time.Duration; import java.time.temporal.ChronoUnit; @@ -45,6 +47,8 @@ public final class ComputeRecommenderManager { private Operations operations; + private SkuMixPlacementScores skuMixPlacementScores; + private SpotPlacementScores spotPlacementScores; private final ComputeRecommenderManagementClient clientObject; @@ -274,6 +278,18 @@ public Operations operations() { return operations; } + /** + * Gets the resource collection API of SkuMixPlacementScores. + * + * @return Resource collection API of SkuMixPlacementScores. + */ + public SkuMixPlacementScores skuMixPlacementScores() { + if (this.skuMixPlacementScores == null) { + this.skuMixPlacementScores = new SkuMixPlacementScoresImpl(clientObject.getSkuMixPlacementScores(), this); + } + return skuMixPlacementScores; + } + /** * Gets the resource collection API of SpotPlacementScores. * diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/fluent/ComputeRecommenderManagementClient.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/fluent/ComputeRecommenderManagementClient.java index b7eb1caa1219..40284a94e3fe 100644 --- a/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/fluent/ComputeRecommenderManagementClient.java +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/fluent/ComputeRecommenderManagementClient.java @@ -53,6 +53,13 @@ public interface ComputeRecommenderManagementClient { */ OperationsClient getOperations(); + /** + * Gets the SkuMixPlacementScoresClient object to access its operations. + * + * @return the SkuMixPlacementScoresClient object. + */ + SkuMixPlacementScoresClient getSkuMixPlacementScores(); + /** * Gets the SpotPlacementScoresClient object to access its operations. * diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/fluent/SkuMixPlacementScoresClient.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/fluent/SkuMixPlacementScoresClient.java new file mode 100644 index 000000000000..139dca8580ea --- /dev/null +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/fluent/SkuMixPlacementScoresClient.java @@ -0,0 +1,71 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.resourcemanager.compute.recommender.fluent; + +import com.azure.core.annotation.ReturnType; +import com.azure.core.annotation.ServiceMethod; +import com.azure.core.http.rest.Response; +import com.azure.core.util.Context; +import com.azure.resourcemanager.compute.recommender.fluent.models.SkuMixPlacementBaseInner; +import com.azure.resourcemanager.compute.recommender.fluent.models.SkuMixPlacementResponseInner; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementRequest; + +/** + * An instance of this class provides access to all the operations defined in SkuMixPlacementScoresClient. + */ +public interface SkuMixPlacementScoresClient { + /** + * Gets SkuMixPlacement scoring metadata. + * + * @param location The name of the Azure region. + * @param context The context to associate with this operation. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return skuMixPlacement scoring metadata along with {@link Response}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + Response getWithResponse(String location, Context context); + + /** + * Gets SkuMixPlacement scoring metadata. + * + * @param location The name of the Azure region. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return skuMixPlacement scoring metadata. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + SkuMixPlacementBaseInner get(String location); + + /** + * Generates placement scores for VM SKU mix placement. + * + * @param location The name of the Azure region. + * @param skuMixPlacementRequest SkuMixPlacement request object supplied in the body of the generate operation. + * @param context The context to associate with this operation. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return sku Mix Placement API response along with {@link Response}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + Response postWithResponse(String location, + SkuMixPlacementRequest skuMixPlacementRequest, Context context); + + /** + * Generates placement scores for VM SKU mix placement. + * + * @param location The name of the Azure region. + * @param skuMixPlacementRequest SkuMixPlacement request object supplied in the body of the generate operation. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return sku Mix Placement API response. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + SkuMixPlacementResponseInner post(String location, SkuMixPlacementRequest skuMixPlacementRequest); +} diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/fluent/models/SkuMixPlacementBaseInner.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/fluent/models/SkuMixPlacementBaseInner.java new file mode 100644 index 000000000000..1b5c35305b1f --- /dev/null +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/fluent/models/SkuMixPlacementBaseInner.java @@ -0,0 +1,144 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.resourcemanager.compute.recommender.fluent.models; + +import com.azure.core.annotation.Immutable; +import com.azure.core.management.ProxyResource; +import com.azure.core.management.SystemData; +import com.azure.json.JsonReader; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementProperties; +import java.io.IOException; + +/** + * Contains metadata of the SkuMixPlacement scoring resource. + */ +@Immutable +public final class SkuMixPlacementBaseInner extends ProxyResource { + /* + * The resource-specific properties for this resource. + */ + private SkuMixPlacementProperties properties; + + /* + * Azure Resource Manager metadata containing createdBy and modifiedBy information. + */ + private SystemData systemData; + + /* + * The type of the resource. + */ + private String type; + + /* + * The name of the resource. + */ + private String name; + + /* + * Fully qualified resource Id for the resource. + */ + private String id; + + /** + * Creates an instance of SkuMixPlacementBaseInner class. + */ + private SkuMixPlacementBaseInner() { + } + + /** + * Get the properties property: The resource-specific properties for this resource. + * + * @return the properties value. + */ + public SkuMixPlacementProperties properties() { + return this.properties; + } + + /** + * Get the systemData property: Azure Resource Manager metadata containing createdBy and modifiedBy information. + * + * @return the systemData value. + */ + public SystemData systemData() { + return this.systemData; + } + + /** + * Get the type property: The type of the resource. + * + * @return the type value. + */ + @Override + public String type() { + return this.type; + } + + /** + * Get the name property: The name of the resource. + * + * @return the name value. + */ + @Override + public String name() { + return this.name; + } + + /** + * Get the id property: Fully qualified resource Id for the resource. + * + * @return the id value. + */ + @Override + public String id() { + return this.id; + } + + /** + * {@inheritDoc} + */ + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeJsonField("properties", this.properties); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of SkuMixPlacementBaseInner from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of SkuMixPlacementBaseInner if the JsonReader was pointing to an instance of it, or null if + * it was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the SkuMixPlacementBaseInner. + */ + public static SkuMixPlacementBaseInner fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + SkuMixPlacementBaseInner deserializedSkuMixPlacementBaseInner = new SkuMixPlacementBaseInner(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("id".equals(fieldName)) { + deserializedSkuMixPlacementBaseInner.id = reader.getString(); + } else if ("name".equals(fieldName)) { + deserializedSkuMixPlacementBaseInner.name = reader.getString(); + } else if ("type".equals(fieldName)) { + deserializedSkuMixPlacementBaseInner.type = reader.getString(); + } else if ("properties".equals(fieldName)) { + deserializedSkuMixPlacementBaseInner.properties = SkuMixPlacementProperties.fromJson(reader); + } else if ("systemData".equals(fieldName)) { + deserializedSkuMixPlacementBaseInner.systemData = SystemData.fromJson(reader); + } else { + reader.skipChildren(); + } + } + + return deserializedSkuMixPlacementBaseInner; + }); + } +} diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/fluent/models/SkuMixPlacementResponseInner.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/fluent/models/SkuMixPlacementResponseInner.java new file mode 100644 index 000000000000..de5537203235 --- /dev/null +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/fluent/models/SkuMixPlacementResponseInner.java @@ -0,0 +1,124 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.resourcemanager.compute.recommender.fluent.models; + +import com.azure.core.annotation.Immutable; +import com.azure.core.util.CoreUtils; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementDeploymentChoice; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementPartialFulfillmentReason; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.time.format.DateTimeFormatter; +import java.util.List; + +/** + * Sku Mix Placement API response. + */ +@Immutable +public final class SkuMixPlacementResponseInner implements JsonSerializable { + /* + * List of placement choice recommendations. + */ + private List placementChoices; + + /* + * Date/time until which the recommendations are valid. Callers should request fresh recommendations after this + * time. + */ + private OffsetDateTime validUntil; + + /* + * Indicates whether the response is a complete or partial fulfillment. + */ + private SkuMixPlacementPartialFulfillmentReason partialFulfillmentReason; + + /** + * Creates an instance of SkuMixPlacementResponseInner class. + */ + private SkuMixPlacementResponseInner() { + } + + /** + * Get the placementChoices property: List of placement choice recommendations. + * + * @return the placementChoices value. + */ + public List placementChoices() { + return this.placementChoices; + } + + /** + * Get the validUntil property: Date/time until which the recommendations are valid. Callers should request fresh + * recommendations after this time. + * + * @return the validUntil value. + */ + public OffsetDateTime validUntil() { + return this.validUntil; + } + + /** + * Get the partialFulfillmentReason property: Indicates whether the response is a complete or partial fulfillment. + * + * @return the partialFulfillmentReason value. + */ + public SkuMixPlacementPartialFulfillmentReason partialFulfillmentReason() { + return this.partialFulfillmentReason; + } + + /** + * {@inheritDoc} + */ + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeArrayField("placementChoices", this.placementChoices, + (writer, element) -> writer.writeJson(element)); + jsonWriter.writeStringField("partialFulfillmentReason", + this.partialFulfillmentReason == null ? null : this.partialFulfillmentReason.toString()); + jsonWriter.writeStringField("validUntil", + this.validUntil == null ? null : DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(this.validUntil)); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of SkuMixPlacementResponseInner from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of SkuMixPlacementResponseInner if the JsonReader was pointing to an instance of it, or null + * if it was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the SkuMixPlacementResponseInner. + */ + public static SkuMixPlacementResponseInner fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + SkuMixPlacementResponseInner deserializedSkuMixPlacementResponseInner = new SkuMixPlacementResponseInner(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("placementChoices".equals(fieldName)) { + List placementChoices + = reader.readArray(reader1 -> SkuMixPlacementDeploymentChoice.fromJson(reader1)); + deserializedSkuMixPlacementResponseInner.placementChoices = placementChoices; + } else if ("partialFulfillmentReason".equals(fieldName)) { + deserializedSkuMixPlacementResponseInner.partialFulfillmentReason + = SkuMixPlacementPartialFulfillmentReason.fromString(reader.getString()); + } else if ("validUntil".equals(fieldName)) { + deserializedSkuMixPlacementResponseInner.validUntil = reader + .getNullable(nonNullReader -> CoreUtils.parseBestOffsetDateTime(nonNullReader.getString())); + } else { + reader.skipChildren(); + } + } + + return deserializedSkuMixPlacementResponseInner; + }); + } +} diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/implementation/ComputeRecommenderManagementClientImpl.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/implementation/ComputeRecommenderManagementClientImpl.java index 0b91bc17b803..a69b47e071c8 100644 --- a/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/implementation/ComputeRecommenderManagementClientImpl.java +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/implementation/ComputeRecommenderManagementClientImpl.java @@ -28,6 +28,7 @@ import com.azure.core.util.serializer.SerializerEncoding; import com.azure.resourcemanager.compute.recommender.fluent.ComputeRecommenderManagementClient; import com.azure.resourcemanager.compute.recommender.fluent.OperationsClient; +import com.azure.resourcemanager.compute.recommender.fluent.SkuMixPlacementScoresClient; import com.azure.resourcemanager.compute.recommender.fluent.SpotPlacementScoresClient; import java.io.IOException; import java.lang.reflect.Type; @@ -141,6 +142,20 @@ public OperationsClient getOperations() { return this.operations; } + /** + * The SkuMixPlacementScoresClient object to access its operations. + */ + private final SkuMixPlacementScoresClient skuMixPlacementScores; + + /** + * Gets the SkuMixPlacementScoresClient object to access its operations. + * + * @return the SkuMixPlacementScoresClient object. + */ + public SkuMixPlacementScoresClient getSkuMixPlacementScores() { + return this.skuMixPlacementScores; + } + /** * The SpotPlacementScoresClient object to access its operations. */ @@ -172,8 +187,9 @@ public SpotPlacementScoresClient getSpotPlacementScores() { this.defaultPollInterval = defaultPollInterval; this.endpoint = endpoint; this.subscriptionId = subscriptionId; - this.apiVersion = "2025-06-05"; + this.apiVersion = "2026-05-05-preview"; this.operations = new OperationsClientImpl(this); + this.skuMixPlacementScores = new SkuMixPlacementScoresClientImpl(this); this.spotPlacementScores = new SpotPlacementScoresClientImpl(this); } diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/implementation/SkuMixPlacementBaseImpl.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/implementation/SkuMixPlacementBaseImpl.java new file mode 100644 index 000000000000..cc40e2d10bf3 --- /dev/null +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/implementation/SkuMixPlacementBaseImpl.java @@ -0,0 +1,50 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.resourcemanager.compute.recommender.implementation; + +import com.azure.core.management.SystemData; +import com.azure.resourcemanager.compute.recommender.fluent.models.SkuMixPlacementBaseInner; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementBase; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementProperties; + +public final class SkuMixPlacementBaseImpl implements SkuMixPlacementBase { + private SkuMixPlacementBaseInner innerObject; + + private final com.azure.resourcemanager.compute.recommender.ComputeRecommenderManager serviceManager; + + SkuMixPlacementBaseImpl(SkuMixPlacementBaseInner innerObject, + com.azure.resourcemanager.compute.recommender.ComputeRecommenderManager serviceManager) { + this.innerObject = innerObject; + this.serviceManager = serviceManager; + } + + public String id() { + return this.innerModel().id(); + } + + public String name() { + return this.innerModel().name(); + } + + public String type() { + return this.innerModel().type(); + } + + public SkuMixPlacementProperties properties() { + return this.innerModel().properties(); + } + + public SystemData systemData() { + return this.innerModel().systemData(); + } + + public SkuMixPlacementBaseInner innerModel() { + return this.innerObject; + } + + private com.azure.resourcemanager.compute.recommender.ComputeRecommenderManager manager() { + return this.serviceManager; + } +} diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/implementation/SkuMixPlacementResponseImpl.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/implementation/SkuMixPlacementResponseImpl.java new file mode 100644 index 000000000000..ae6936a5d971 --- /dev/null +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/implementation/SkuMixPlacementResponseImpl.java @@ -0,0 +1,50 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.resourcemanager.compute.recommender.implementation; + +import com.azure.resourcemanager.compute.recommender.fluent.models.SkuMixPlacementResponseInner; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementDeploymentChoice; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementPartialFulfillmentReason; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementResponse; +import java.time.OffsetDateTime; +import java.util.Collections; +import java.util.List; + +public final class SkuMixPlacementResponseImpl implements SkuMixPlacementResponse { + private SkuMixPlacementResponseInner innerObject; + + private final com.azure.resourcemanager.compute.recommender.ComputeRecommenderManager serviceManager; + + SkuMixPlacementResponseImpl(SkuMixPlacementResponseInner innerObject, + com.azure.resourcemanager.compute.recommender.ComputeRecommenderManager serviceManager) { + this.innerObject = innerObject; + this.serviceManager = serviceManager; + } + + public List placementChoices() { + List inner = this.innerModel().placementChoices(); + if (inner != null) { + return Collections.unmodifiableList(inner); + } else { + return Collections.emptyList(); + } + } + + public OffsetDateTime validUntil() { + return this.innerModel().validUntil(); + } + + public SkuMixPlacementPartialFulfillmentReason partialFulfillmentReason() { + return this.innerModel().partialFulfillmentReason(); + } + + public SkuMixPlacementResponseInner innerModel() { + return this.innerObject; + } + + private com.azure.resourcemanager.compute.recommender.ComputeRecommenderManager manager() { + return this.serviceManager; + } +} diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/implementation/SkuMixPlacementScoresClientImpl.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/implementation/SkuMixPlacementScoresClientImpl.java new file mode 100644 index 000000000000..28bab860bc47 --- /dev/null +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/implementation/SkuMixPlacementScoresClientImpl.java @@ -0,0 +1,233 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.resourcemanager.compute.recommender.implementation; + +import com.azure.core.annotation.BodyParam; +import com.azure.core.annotation.ExpectedResponses; +import com.azure.core.annotation.Get; +import com.azure.core.annotation.HeaderParam; +import com.azure.core.annotation.Headers; +import com.azure.core.annotation.Host; +import com.azure.core.annotation.HostParam; +import com.azure.core.annotation.PathParam; +import com.azure.core.annotation.Post; +import com.azure.core.annotation.QueryParam; +import com.azure.core.annotation.ReturnType; +import com.azure.core.annotation.ServiceInterface; +import com.azure.core.annotation.ServiceMethod; +import com.azure.core.annotation.UnexpectedResponseExceptionType; +import com.azure.core.http.rest.Response; +import com.azure.core.http.rest.RestProxy; +import com.azure.core.management.exception.ManagementException; +import com.azure.core.util.Context; +import com.azure.core.util.FluxUtil; +import com.azure.resourcemanager.compute.recommender.fluent.SkuMixPlacementScoresClient; +import com.azure.resourcemanager.compute.recommender.fluent.models.SkuMixPlacementBaseInner; +import com.azure.resourcemanager.compute.recommender.fluent.models.SkuMixPlacementResponseInner; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementRequest; +import reactor.core.publisher.Mono; + +/** + * An instance of this class provides access to all the operations defined in SkuMixPlacementScoresClient. + */ +public final class SkuMixPlacementScoresClientImpl implements SkuMixPlacementScoresClient { + /** + * The proxy service used to perform REST calls. + */ + private final SkuMixPlacementScoresService service; + + /** + * The service client containing this operation class. + */ + private final ComputeRecommenderManagementClientImpl client; + + /** + * Initializes an instance of SkuMixPlacementScoresClientImpl. + * + * @param client the instance of the service client containing this operation class. + */ + SkuMixPlacementScoresClientImpl(ComputeRecommenderManagementClientImpl client) { + this.service = RestProxy.create(SkuMixPlacementScoresService.class, client.getHttpPipeline(), + client.getSerializerAdapter()); + this.client = client; + } + + /** + * The interface defining all the services for ComputeRecommenderManagementClientSkuMixPlacementScores to be used by + * the proxy service to perform REST calls. + */ + @Host("{endpoint}") + @ServiceInterface(name = "ComputeRecommenderManagementClientSkuMixPlacementScores") + public interface SkuMixPlacementScoresService { + @Headers({ "Content-Type: application/json" }) + @Get("/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/skuMixPlacementScores/recommendations") + @ExpectedResponses({ 200 }) + @UnexpectedResponseExceptionType(ManagementException.class) + Mono> get(@HostParam("endpoint") String endpoint, + @QueryParam("api-version") String apiVersion, @PathParam("subscriptionId") String subscriptionId, + @PathParam("location") String location, @HeaderParam("Accept") String accept, Context context); + + @Headers({ "Content-Type: application/json" }) + @Get("/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/skuMixPlacementScores/recommendations") + @ExpectedResponses({ 200 }) + @UnexpectedResponseExceptionType(ManagementException.class) + Response getSync(@HostParam("endpoint") String endpoint, + @QueryParam("api-version") String apiVersion, @PathParam("subscriptionId") String subscriptionId, + @PathParam("location") String location, @HeaderParam("Accept") String accept, Context context); + + @Post("/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/skuMixPlacementScores/recommendations/generate") + @ExpectedResponses({ 200 }) + @UnexpectedResponseExceptionType(ManagementException.class) + Mono> post(@HostParam("endpoint") String endpoint, + @QueryParam("api-version") String apiVersion, @PathParam("subscriptionId") String subscriptionId, + @PathParam("location") String location, @HeaderParam("Content-Type") String contentType, + @HeaderParam("Accept") String accept, + @BodyParam("application/json") SkuMixPlacementRequest skuMixPlacementRequest, Context context); + + @Post("/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/skuMixPlacementScores/recommendations/generate") + @ExpectedResponses({ 200 }) + @UnexpectedResponseExceptionType(ManagementException.class) + Response postSync(@HostParam("endpoint") String endpoint, + @QueryParam("api-version") String apiVersion, @PathParam("subscriptionId") String subscriptionId, + @PathParam("location") String location, @HeaderParam("Content-Type") String contentType, + @HeaderParam("Accept") String accept, + @BodyParam("application/json") SkuMixPlacementRequest skuMixPlacementRequest, Context context); + } + + /** + * Gets SkuMixPlacement scoring metadata. + * + * @param location The name of the Azure region. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws ManagementException thrown if the request is rejected by server. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return skuMixPlacement scoring metadata along with {@link Response} on successful completion of {@link Mono}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + private Mono> getWithResponseAsync(String location) { + final String accept = "application/json"; + return FluxUtil + .withContext(context -> service.get(this.client.getEndpoint(), this.client.getApiVersion(), + this.client.getSubscriptionId(), location, accept, context)) + .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly())); + } + + /** + * Gets SkuMixPlacement scoring metadata. + * + * @param location The name of the Azure region. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws ManagementException thrown if the request is rejected by server. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return skuMixPlacement scoring metadata on successful completion of {@link Mono}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + private Mono getAsync(String location) { + return getWithResponseAsync(location).flatMap(res -> Mono.justOrEmpty(res.getValue())); + } + + /** + * Gets SkuMixPlacement scoring metadata. + * + * @param location The name of the Azure region. + * @param context The context to associate with this operation. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws ManagementException thrown if the request is rejected by server. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return skuMixPlacement scoring metadata along with {@link Response}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Response getWithResponse(String location, Context context) { + final String accept = "application/json"; + return service.getSync(this.client.getEndpoint(), this.client.getApiVersion(), this.client.getSubscriptionId(), + location, accept, context); + } + + /** + * Gets SkuMixPlacement scoring metadata. + * + * @param location The name of the Azure region. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws ManagementException thrown if the request is rejected by server. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return skuMixPlacement scoring metadata. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public SkuMixPlacementBaseInner get(String location) { + return getWithResponse(location, Context.NONE).getValue(); + } + + /** + * Generates placement scores for VM SKU mix placement. + * + * @param location The name of the Azure region. + * @param skuMixPlacementRequest SkuMixPlacement request object supplied in the body of the generate operation. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws ManagementException thrown if the request is rejected by server. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return sku Mix Placement API response along with {@link Response} on successful completion of {@link Mono}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + private Mono> postWithResponseAsync(String location, + SkuMixPlacementRequest skuMixPlacementRequest) { + final String contentType = "application/json"; + final String accept = "application/json"; + return FluxUtil + .withContext(context -> service.post(this.client.getEndpoint(), this.client.getApiVersion(), + this.client.getSubscriptionId(), location, contentType, accept, skuMixPlacementRequest, context)) + .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly())); + } + + /** + * Generates placement scores for VM SKU mix placement. + * + * @param location The name of the Azure region. + * @param skuMixPlacementRequest SkuMixPlacement request object supplied in the body of the generate operation. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws ManagementException thrown if the request is rejected by server. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return sku Mix Placement API response on successful completion of {@link Mono}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + private Mono postAsync(String location, + SkuMixPlacementRequest skuMixPlacementRequest) { + return postWithResponseAsync(location, skuMixPlacementRequest).flatMap(res -> Mono.justOrEmpty(res.getValue())); + } + + /** + * Generates placement scores for VM SKU mix placement. + * + * @param location The name of the Azure region. + * @param skuMixPlacementRequest SkuMixPlacement request object supplied in the body of the generate operation. + * @param context The context to associate with this operation. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws ManagementException thrown if the request is rejected by server. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return sku Mix Placement API response along with {@link Response}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Response postWithResponse(String location, + SkuMixPlacementRequest skuMixPlacementRequest, Context context) { + final String contentType = "application/json"; + final String accept = "application/json"; + return service.postSync(this.client.getEndpoint(), this.client.getApiVersion(), this.client.getSubscriptionId(), + location, contentType, accept, skuMixPlacementRequest, context); + } + + /** + * Generates placement scores for VM SKU mix placement. + * + * @param location The name of the Azure region. + * @param skuMixPlacementRequest SkuMixPlacement request object supplied in the body of the generate operation. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws ManagementException thrown if the request is rejected by server. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return sku Mix Placement API response. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public SkuMixPlacementResponseInner post(String location, SkuMixPlacementRequest skuMixPlacementRequest) { + return postWithResponse(location, skuMixPlacementRequest, Context.NONE).getValue(); + } +} diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/implementation/SkuMixPlacementScoresImpl.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/implementation/SkuMixPlacementScoresImpl.java new file mode 100644 index 000000000000..0022830317c3 --- /dev/null +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/implementation/SkuMixPlacementScoresImpl.java @@ -0,0 +1,71 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.resourcemanager.compute.recommender.implementation; + +import com.azure.core.http.rest.Response; +import com.azure.core.http.rest.SimpleResponse; +import com.azure.core.util.Context; +import com.azure.core.util.logging.ClientLogger; +import com.azure.resourcemanager.compute.recommender.fluent.SkuMixPlacementScoresClient; +import com.azure.resourcemanager.compute.recommender.fluent.models.SkuMixPlacementBaseInner; +import com.azure.resourcemanager.compute.recommender.fluent.models.SkuMixPlacementResponseInner; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementBase; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementRequest; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementResponse; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementScores; + +public final class SkuMixPlacementScoresImpl implements SkuMixPlacementScores { + private static final ClientLogger LOGGER = new ClientLogger(SkuMixPlacementScoresImpl.class); + + private final SkuMixPlacementScoresClient innerClient; + + private final com.azure.resourcemanager.compute.recommender.ComputeRecommenderManager serviceManager; + + public SkuMixPlacementScoresImpl(SkuMixPlacementScoresClient innerClient, + com.azure.resourcemanager.compute.recommender.ComputeRecommenderManager serviceManager) { + this.innerClient = innerClient; + this.serviceManager = serviceManager; + } + + public Response getWithResponse(String location, Context context) { + Response inner = this.serviceClient().getWithResponse(location, context); + return new SimpleResponse<>(inner.getRequest(), inner.getStatusCode(), inner.getHeaders(), + new SkuMixPlacementBaseImpl(inner.getValue(), this.manager())); + } + + public SkuMixPlacementBase get(String location) { + SkuMixPlacementBaseInner inner = this.serviceClient().get(location); + if (inner != null) { + return new SkuMixPlacementBaseImpl(inner, this.manager()); + } else { + return null; + } + } + + public Response postWithResponse(String location, + SkuMixPlacementRequest skuMixPlacementRequest, Context context) { + Response inner + = this.serviceClient().postWithResponse(location, skuMixPlacementRequest, context); + return new SimpleResponse<>(inner.getRequest(), inner.getStatusCode(), inner.getHeaders(), + new SkuMixPlacementResponseImpl(inner.getValue(), this.manager())); + } + + public SkuMixPlacementResponse post(String location, SkuMixPlacementRequest skuMixPlacementRequest) { + SkuMixPlacementResponseInner inner = this.serviceClient().post(location, skuMixPlacementRequest); + if (inner != null) { + return new SkuMixPlacementResponseImpl(inner, this.manager()); + } else { + return null; + } + } + + private SkuMixPlacementScoresClient serviceClient() { + return this.innerClient; + } + + private com.azure.resourcemanager.compute.recommender.ComputeRecommenderManager manager() { + return this.serviceManager; + } +} diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementAllocationStrategy.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementAllocationStrategy.java new file mode 100644 index 000000000000..96fe6ce03424 --- /dev/null +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementAllocationStrategy.java @@ -0,0 +1,56 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.resourcemanager.compute.recommender.models; + +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * Allocation strategy for determining the optimal SKU split. + */ +public final class SkuMixPlacementAllocationStrategy extends ExpandableStringEnum { + /** + * VMs allocated to optimize for lowest price. + */ + public static final SkuMixPlacementAllocationStrategy LOWEST_PRICE = fromString("LowestPrice"); + + /** + * VMs allocated based on customer-specified rank for each VM size. + */ + public static final SkuMixPlacementAllocationStrategy PRIORITIZED = fromString("Prioritized"); + + /** + * VMs allocated to optimize for lowest eviction rate (Spot only). + */ + public static final SkuMixPlacementAllocationStrategy EVICTION_OPTIMIZED = fromString("EvictionOptimized"); + + /** + * Creates a new instance of SkuMixPlacementAllocationStrategy value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Deprecated + public SkuMixPlacementAllocationStrategy() { + } + + /** + * Creates or finds a SkuMixPlacementAllocationStrategy from its string representation. + * + * @param name a name to look for. + * @return the corresponding SkuMixPlacementAllocationStrategy. + */ + public static SkuMixPlacementAllocationStrategy fromString(String name) { + return fromString(name, SkuMixPlacementAllocationStrategy.class); + } + + /** + * Gets known SkuMixPlacementAllocationStrategy values. + * + * @return known SkuMixPlacementAllocationStrategy values. + */ + public static Collection values() { + return values(SkuMixPlacementAllocationStrategy.class); + } +} diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementBase.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementBase.java new file mode 100644 index 000000000000..2450c2e8eeb3 --- /dev/null +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementBase.java @@ -0,0 +1,55 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.resourcemanager.compute.recommender.models; + +import com.azure.core.management.SystemData; +import com.azure.resourcemanager.compute.recommender.fluent.models.SkuMixPlacementBaseInner; + +/** + * An immutable client-side representation of SkuMixPlacementBase. + */ +public interface SkuMixPlacementBase { + /** + * Gets the id property: Fully qualified resource Id for the resource. + * + * @return the id value. + */ + String id(); + + /** + * Gets the name property: The name of the resource. + * + * @return the name value. + */ + String name(); + + /** + * Gets the type property: The type of the resource. + * + * @return the type value. + */ + String type(); + + /** + * Gets the properties property: The resource-specific properties for this resource. + * + * @return the properties value. + */ + SkuMixPlacementProperties properties(); + + /** + * Gets the systemData property: Azure Resource Manager metadata containing createdBy and modifiedBy information. + * + * @return the systemData value. + */ + SystemData systemData(); + + /** + * Gets the inner com.azure.resourcemanager.compute.recommender.fluent.models.SkuMixPlacementBaseInner object. + * + * @return the inner object. + */ + SkuMixPlacementBaseInner innerModel(); +} diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementCapacityProfile.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementCapacityProfile.java new file mode 100644 index 000000000000..f6cd40ac78cf --- /dev/null +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementCapacityProfile.java @@ -0,0 +1,266 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.resourcemanager.compute.recommender.models; + +import com.azure.core.annotation.Fluent; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * Capacity-related properties for the placement request. + */ +@Fluent +public final class SkuMixPlacementCapacityProfile implements JsonSerializable { + /* + * The capacity to run the workload. For VMs: [1..10,000]. For vCPUs: [1..100,000]. + */ + private int capacity; + + /* + * The unit type for the capacity value. + */ + private SkuMixPlacementCapacityType capacityType; + + /* + * The priority of the VMs to allocate. + */ + private SkuMixPlacementPriority priority; + + /* + * Required when priority is Spot. Contains spot-specific configuration. + */ + private SkuMixPlacementSpotPriorityProfile spotPriorityProfile; + + /* + * The allocation strategy for determining the optimal SKU split. + */ + private SkuMixPlacementAllocationStrategy allocationStrategy; + + /* + * The OS type. Required when allocationStrategy is LowestPrice because pricing varies by OS. + */ + private SkuMixPlacementOSType osType; + + /* + * Zone allocation policy. Default: BestEffortBalanced. + */ + private SkuMixPlacementZoneAllocationPolicy zoneAllocationPolicy; + + /** + * Creates an instance of SkuMixPlacementCapacityProfile class. + */ + public SkuMixPlacementCapacityProfile() { + } + + /** + * Get the capacity property: The capacity to run the workload. For VMs: [1..10,000]. For vCPUs: [1..100,000]. + * + * @return the capacity value. + */ + public int capacity() { + return this.capacity; + } + + /** + * Set the capacity property: The capacity to run the workload. For VMs: [1..10,000]. For vCPUs: [1..100,000]. + * + * @param capacity the capacity value to set. + * @return the SkuMixPlacementCapacityProfile object itself. + */ + public SkuMixPlacementCapacityProfile withCapacity(int capacity) { + this.capacity = capacity; + return this; + } + + /** + * Get the capacityType property: The unit type for the capacity value. + * + * @return the capacityType value. + */ + public SkuMixPlacementCapacityType capacityType() { + return this.capacityType; + } + + /** + * Set the capacityType property: The unit type for the capacity value. + * + * @param capacityType the capacityType value to set. + * @return the SkuMixPlacementCapacityProfile object itself. + */ + public SkuMixPlacementCapacityProfile withCapacityType(SkuMixPlacementCapacityType capacityType) { + this.capacityType = capacityType; + return this; + } + + /** + * Get the priority property: The priority of the VMs to allocate. + * + * @return the priority value. + */ + public SkuMixPlacementPriority priority() { + return this.priority; + } + + /** + * Set the priority property: The priority of the VMs to allocate. + * + * @param priority the priority value to set. + * @return the SkuMixPlacementCapacityProfile object itself. + */ + public SkuMixPlacementCapacityProfile withPriority(SkuMixPlacementPriority priority) { + this.priority = priority; + return this; + } + + /** + * Get the spotPriorityProfile property: Required when priority is Spot. Contains spot-specific configuration. + * + * @return the spotPriorityProfile value. + */ + public SkuMixPlacementSpotPriorityProfile spotPriorityProfile() { + return this.spotPriorityProfile; + } + + /** + * Set the spotPriorityProfile property: Required when priority is Spot. Contains spot-specific configuration. + * + * @param spotPriorityProfile the spotPriorityProfile value to set. + * @return the SkuMixPlacementCapacityProfile object itself. + */ + public SkuMixPlacementCapacityProfile + withSpotPriorityProfile(SkuMixPlacementSpotPriorityProfile spotPriorityProfile) { + this.spotPriorityProfile = spotPriorityProfile; + return this; + } + + /** + * Get the allocationStrategy property: The allocation strategy for determining the optimal SKU split. + * + * @return the allocationStrategy value. + */ + public SkuMixPlacementAllocationStrategy allocationStrategy() { + return this.allocationStrategy; + } + + /** + * Set the allocationStrategy property: The allocation strategy for determining the optimal SKU split. + * + * @param allocationStrategy the allocationStrategy value to set. + * @return the SkuMixPlacementCapacityProfile object itself. + */ + public SkuMixPlacementCapacityProfile withAllocationStrategy(SkuMixPlacementAllocationStrategy allocationStrategy) { + this.allocationStrategy = allocationStrategy; + return this; + } + + /** + * Get the osType property: The OS type. Required when allocationStrategy is LowestPrice because pricing varies by + * OS. + * + * @return the osType value. + */ + public SkuMixPlacementOSType osType() { + return this.osType; + } + + /** + * Set the osType property: The OS type. Required when allocationStrategy is LowestPrice because pricing varies by + * OS. + * + * @param osType the osType value to set. + * @return the SkuMixPlacementCapacityProfile object itself. + */ + public SkuMixPlacementCapacityProfile withOsType(SkuMixPlacementOSType osType) { + this.osType = osType; + return this; + } + + /** + * Get the zoneAllocationPolicy property: Zone allocation policy. Default: BestEffortBalanced. + * + * @return the zoneAllocationPolicy value. + */ + public SkuMixPlacementZoneAllocationPolicy zoneAllocationPolicy() { + return this.zoneAllocationPolicy; + } + + /** + * Set the zoneAllocationPolicy property: Zone allocation policy. Default: BestEffortBalanced. + * + * @param zoneAllocationPolicy the zoneAllocationPolicy value to set. + * @return the SkuMixPlacementCapacityProfile object itself. + */ + public SkuMixPlacementCapacityProfile + withZoneAllocationPolicy(SkuMixPlacementZoneAllocationPolicy zoneAllocationPolicy) { + this.zoneAllocationPolicy = zoneAllocationPolicy; + return this; + } + + /** + * {@inheritDoc} + */ + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeIntField("capacity", this.capacity); + jsonWriter.writeStringField("capacityType", this.capacityType == null ? null : this.capacityType.toString()); + jsonWriter.writeStringField("priority", this.priority == null ? null : this.priority.toString()); + jsonWriter.writeJsonField("spotPriorityProfile", this.spotPriorityProfile); + jsonWriter.writeStringField("allocationStrategy", + this.allocationStrategy == null ? null : this.allocationStrategy.toString()); + jsonWriter.writeStringField("osType", this.osType == null ? null : this.osType.toString()); + jsonWriter.writeJsonField("zoneAllocationPolicy", this.zoneAllocationPolicy); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of SkuMixPlacementCapacityProfile from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of SkuMixPlacementCapacityProfile if the JsonReader was pointing to an instance of it, or + * null if it was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the SkuMixPlacementCapacityProfile. + */ + public static SkuMixPlacementCapacityProfile fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + SkuMixPlacementCapacityProfile deserializedSkuMixPlacementCapacityProfile + = new SkuMixPlacementCapacityProfile(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("capacity".equals(fieldName)) { + deserializedSkuMixPlacementCapacityProfile.capacity = reader.getInt(); + } else if ("capacityType".equals(fieldName)) { + deserializedSkuMixPlacementCapacityProfile.capacityType + = SkuMixPlacementCapacityType.fromString(reader.getString()); + } else if ("priority".equals(fieldName)) { + deserializedSkuMixPlacementCapacityProfile.priority + = SkuMixPlacementPriority.fromString(reader.getString()); + } else if ("spotPriorityProfile".equals(fieldName)) { + deserializedSkuMixPlacementCapacityProfile.spotPriorityProfile + = SkuMixPlacementSpotPriorityProfile.fromJson(reader); + } else if ("allocationStrategy".equals(fieldName)) { + deserializedSkuMixPlacementCapacityProfile.allocationStrategy + = SkuMixPlacementAllocationStrategy.fromString(reader.getString()); + } else if ("osType".equals(fieldName)) { + deserializedSkuMixPlacementCapacityProfile.osType + = SkuMixPlacementOSType.fromString(reader.getString()); + } else if ("zoneAllocationPolicy".equals(fieldName)) { + deserializedSkuMixPlacementCapacityProfile.zoneAllocationPolicy + = SkuMixPlacementZoneAllocationPolicy.fromJson(reader); + } else { + reader.skipChildren(); + } + } + + return deserializedSkuMixPlacementCapacityProfile; + }); + } +} diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementCapacityType.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementCapacityType.java new file mode 100644 index 000000000000..26cd0034e15a --- /dev/null +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementCapacityType.java @@ -0,0 +1,51 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.resourcemanager.compute.recommender.models; + +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * The unit type for the capacity value. + */ +public final class SkuMixPlacementCapacityType extends ExpandableStringEnum { + /** + * Capacity measured in number of VMs. + */ + public static final SkuMixPlacementCapacityType VM = fromString("VM"); + + /** + * Capacity measured in number of vCPUs. + */ + public static final SkuMixPlacementCapacityType VCPU = fromString("VCpu"); + + /** + * Creates a new instance of SkuMixPlacementCapacityType value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Deprecated + public SkuMixPlacementCapacityType() { + } + + /** + * Creates or finds a SkuMixPlacementCapacityType from its string representation. + * + * @param name a name to look for. + * @return the corresponding SkuMixPlacementCapacityType. + */ + public static SkuMixPlacementCapacityType fromString(String name) { + return fromString(name, SkuMixPlacementCapacityType.class); + } + + /** + * Gets known SkuMixPlacementCapacityType values. + * + * @return known SkuMixPlacementCapacityType values. + */ + public static Collection values() { + return values(SkuMixPlacementCapacityType.class); + } +} diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementDeploymentChoice.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementDeploymentChoice.java new file mode 100644 index 000000000000..94abc616613c --- /dev/null +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementDeploymentChoice.java @@ -0,0 +1,113 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.resourcemanager.compute.recommender.models; + +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.util.List; + +/** + * A single deployment choice recommendation. + */ +@Immutable +public final class SkuMixPlacementDeploymentChoice implements JsonSerializable { + /* + * Unique identifier for this deployment choice. + */ + private String id; + + /* + * Placement score from 0 to 9 (inclusive). Higher is better. + */ + private int score; + + /* + * The list of VM size / zone allocations that make up this deployment choice. + */ + private List skuSplit; + + /** + * Creates an instance of SkuMixPlacementDeploymentChoice class. + */ + private SkuMixPlacementDeploymentChoice() { + } + + /** + * Get the id property: Unique identifier for this deployment choice. + * + * @return the id value. + */ + public String id() { + return this.id; + } + + /** + * Get the score property: Placement score from 0 to 9 (inclusive). Higher is better. + * + * @return the score value. + */ + public int score() { + return this.score; + } + + /** + * Get the skuSplit property: The list of VM size / zone allocations that make up this deployment choice. + * + * @return the skuSplit value. + */ + public List skuSplit() { + return this.skuSplit; + } + + /** + * {@inheritDoc} + */ + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("id", this.id); + jsonWriter.writeIntField("score", this.score); + jsonWriter.writeArrayField("skuSplit", this.skuSplit, (writer, element) -> writer.writeJson(element)); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of SkuMixPlacementDeploymentChoice from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of SkuMixPlacementDeploymentChoice if the JsonReader was pointing to an instance of it, or + * null if it was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the SkuMixPlacementDeploymentChoice. + */ + public static SkuMixPlacementDeploymentChoice fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + SkuMixPlacementDeploymentChoice deserializedSkuMixPlacementDeploymentChoice + = new SkuMixPlacementDeploymentChoice(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("id".equals(fieldName)) { + deserializedSkuMixPlacementDeploymentChoice.id = reader.getString(); + } else if ("score".equals(fieldName)) { + deserializedSkuMixPlacementDeploymentChoice.score = reader.getInt(); + } else if ("skuSplit".equals(fieldName)) { + List skuSplit + = reader.readArray(reader1 -> SkuMixPlacementItem.fromJson(reader1)); + deserializedSkuMixPlacementDeploymentChoice.skuSplit = skuSplit; + } else { + reader.skipChildren(); + } + } + + return deserializedSkuMixPlacementDeploymentChoice; + }); + } +} diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementInstanceDescription.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementInstanceDescription.java new file mode 100644 index 000000000000..5973d0f474bd --- /dev/null +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementInstanceDescription.java @@ -0,0 +1,90 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.resourcemanager.compute.recommender.models; + +import com.azure.core.annotation.Fluent; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.util.List; + +/** + * Describes which VM sizes to consider. + */ +@Fluent +public final class SkuMixPlacementInstanceDescription implements JsonSerializable { + /* + * The list of VM sizes to consider for placement. + */ + private List vmSizes; + + /** + * Creates an instance of SkuMixPlacementInstanceDescription class. + */ + public SkuMixPlacementInstanceDescription() { + } + + /** + * Get the vmSizes property: The list of VM sizes to consider for placement. + * + * @return the vmSizes value. + */ + public List vmSizes() { + return this.vmSizes; + } + + /** + * Set the vmSizes property: The list of VM sizes to consider for placement. + * + * @param vmSizes the vmSizes value to set. + * @return the SkuMixPlacementInstanceDescription object itself. + */ + public SkuMixPlacementInstanceDescription withVmSizes(List vmSizes) { + this.vmSizes = vmSizes; + return this; + } + + /** + * {@inheritDoc} + */ + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeArrayField("vmSizes", this.vmSizes, (writer, element) -> writer.writeJson(element)); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of SkuMixPlacementInstanceDescription from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of SkuMixPlacementInstanceDescription if the JsonReader was pointing to an instance of it, or + * null if it was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the SkuMixPlacementInstanceDescription. + */ + public static SkuMixPlacementInstanceDescription fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + SkuMixPlacementInstanceDescription deserializedSkuMixPlacementInstanceDescription + = new SkuMixPlacementInstanceDescription(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("vmSizes".equals(fieldName)) { + List vmSizes + = reader.readArray(reader1 -> SkuMixPlacementVMSize.fromJson(reader1)); + deserializedSkuMixPlacementInstanceDescription.vmSizes = vmSizes; + } else { + reader.skipChildren(); + } + } + + return deserializedSkuMixPlacementInstanceDescription; + }); + } +} diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementItem.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementItem.java new file mode 100644 index 000000000000..7e42d6897925 --- /dev/null +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementItem.java @@ -0,0 +1,143 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.resourcemanager.compute.recommender.models; + +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * A single VM size allocation within a deployment choice. + */ +@Immutable +public final class SkuMixPlacementItem implements JsonSerializable { + /* + * VM size name (e.g. Standard_D2s_v3). + */ + private String name; + + /* + * Priority of this allocation (Regular or Spot). + */ + private SkuMixPlacementPriority priority; + + /* + * Lower range of recommended allocation capacity. + */ + private int capacity; + + /* + * Upper range of recommended allocation capacity. + */ + private Integer capacityMax; + + /* + * Logical zone (e.g. "1", "2", "3"). Omitted or empty for regional deployments. + */ + private String zone; + + /** + * Creates an instance of SkuMixPlacementItem class. + */ + private SkuMixPlacementItem() { + } + + /** + * Get the name property: VM size name (e.g. Standard_D2s_v3). + * + * @return the name value. + */ + public String name() { + return this.name; + } + + /** + * Get the priority property: Priority of this allocation (Regular or Spot). + * + * @return the priority value. + */ + public SkuMixPlacementPriority priority() { + return this.priority; + } + + /** + * Get the capacity property: Lower range of recommended allocation capacity. + * + * @return the capacity value. + */ + public int capacity() { + return this.capacity; + } + + /** + * Get the capacityMax property: Upper range of recommended allocation capacity. + * + * @return the capacityMax value. + */ + public Integer capacityMax() { + return this.capacityMax; + } + + /** + * Get the zone property: Logical zone (e.g. "1", "2", "3"). Omitted or empty for regional deployments. + * + * @return the zone value. + */ + public String zone() { + return this.zone; + } + + /** + * {@inheritDoc} + */ + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("name", this.name); + jsonWriter.writeStringField("priority", this.priority == null ? null : this.priority.toString()); + jsonWriter.writeIntField("capacity", this.capacity); + jsonWriter.writeNumberField("capacityMax", this.capacityMax); + jsonWriter.writeStringField("zone", this.zone); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of SkuMixPlacementItem from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of SkuMixPlacementItem if the JsonReader was pointing to an instance of it, or null if it was + * pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the SkuMixPlacementItem. + */ + public static SkuMixPlacementItem fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + SkuMixPlacementItem deserializedSkuMixPlacementItem = new SkuMixPlacementItem(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("name".equals(fieldName)) { + deserializedSkuMixPlacementItem.name = reader.getString(); + } else if ("priority".equals(fieldName)) { + deserializedSkuMixPlacementItem.priority = SkuMixPlacementPriority.fromString(reader.getString()); + } else if ("capacity".equals(fieldName)) { + deserializedSkuMixPlacementItem.capacity = reader.getInt(); + } else if ("capacityMax".equals(fieldName)) { + deserializedSkuMixPlacementItem.capacityMax = reader.getNullable(JsonReader::getInt); + } else if ("zone".equals(fieldName)) { + deserializedSkuMixPlacementItem.zone = reader.getString(); + } else { + reader.skipChildren(); + } + } + + return deserializedSkuMixPlacementItem; + }); + } +} diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementOSType.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementOSType.java new file mode 100644 index 000000000000..1bec95895bd7 --- /dev/null +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementOSType.java @@ -0,0 +1,51 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.resourcemanager.compute.recommender.models; + +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * The OS type of the VMs. + */ +public final class SkuMixPlacementOSType extends ExpandableStringEnum { + /** + * Windows OS. + */ + public static final SkuMixPlacementOSType WINDOWS = fromString("Windows"); + + /** + * Linux OS. + */ + public static final SkuMixPlacementOSType LINUX = fromString("Linux"); + + /** + * Creates a new instance of SkuMixPlacementOSType value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Deprecated + public SkuMixPlacementOSType() { + } + + /** + * Creates or finds a SkuMixPlacementOSType from its string representation. + * + * @param name a name to look for. + * @return the corresponding SkuMixPlacementOSType. + */ + public static SkuMixPlacementOSType fromString(String name) { + return fromString(name, SkuMixPlacementOSType.class); + } + + /** + * Gets known SkuMixPlacementOSType values. + * + * @return known SkuMixPlacementOSType values. + */ + public static Collection values() { + return values(SkuMixPlacementOSType.class); + } +} diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementPartialFulfillmentReason.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementPartialFulfillmentReason.java new file mode 100644 index 000000000000..497f9567ded2 --- /dev/null +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementPartialFulfillmentReason.java @@ -0,0 +1,58 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.resourcemanager.compute.recommender.models; + +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * Reason for partial fulfillment of the requested capacity. + */ +public final class SkuMixPlacementPartialFulfillmentReason + extends ExpandableStringEnum { + /** + * Full capacity was fulfilled. + */ + public static final SkuMixPlacementPartialFulfillmentReason NONE = fromString("None"); + + /** + * Not enough allocable capacity was available. + */ + public static final SkuMixPlacementPartialFulfillmentReason INSUFFICIENT_CAPACITY + = fromString("InsufficientCapacity"); + + /** + * Not enough quota was available. + */ + public static final SkuMixPlacementPartialFulfillmentReason INSUFFICIENT_QUOTA = fromString("InsufficientQuota"); + + /** + * Creates a new instance of SkuMixPlacementPartialFulfillmentReason value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Deprecated + public SkuMixPlacementPartialFulfillmentReason() { + } + + /** + * Creates or finds a SkuMixPlacementPartialFulfillmentReason from its string representation. + * + * @param name a name to look for. + * @return the corresponding SkuMixPlacementPartialFulfillmentReason. + */ + public static SkuMixPlacementPartialFulfillmentReason fromString(String name) { + return fromString(name, SkuMixPlacementPartialFulfillmentReason.class); + } + + /** + * Gets known SkuMixPlacementPartialFulfillmentReason values. + * + * @return known SkuMixPlacementPartialFulfillmentReason values. + */ + public static Collection values() { + return values(SkuMixPlacementPartialFulfillmentReason.class); + } +} diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementPriority.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementPriority.java new file mode 100644 index 000000000000..727a8667995f --- /dev/null +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementPriority.java @@ -0,0 +1,51 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.resourcemanager.compute.recommender.models; + +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * Priority levels for VM allocation. + */ +public final class SkuMixPlacementPriority extends ExpandableStringEnum { + /** + * Regular priority VMs with guaranteed capacity. + */ + public static final SkuMixPlacementPriority REGULAR = fromString("Regular"); + + /** + * Spot priority VMs with lower cost but potential eviction. + */ + public static final SkuMixPlacementPriority SPOT = fromString("Spot"); + + /** + * Creates a new instance of SkuMixPlacementPriority value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Deprecated + public SkuMixPlacementPriority() { + } + + /** + * Creates or finds a SkuMixPlacementPriority from its string representation. + * + * @param name a name to look for. + * @return the corresponding SkuMixPlacementPriority. + */ + public static SkuMixPlacementPriority fromString(String name) { + return fromString(name, SkuMixPlacementPriority.class); + } + + /** + * Gets known SkuMixPlacementPriority values. + * + * @return known SkuMixPlacementPriority values. + */ + public static Collection values() { + return values(SkuMixPlacementPriority.class); + } +} diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementProperties.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementProperties.java new file mode 100644 index 000000000000..fdab6f914866 --- /dev/null +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementProperties.java @@ -0,0 +1,78 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.resourcemanager.compute.recommender.models; + +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.util.List; + +/** + * Contains properties of the SkuMixPlacement resource. + */ +@Immutable +public final class SkuMixPlacementProperties implements JsonSerializable { + /* + * Describes what resource types are supported by the mix placement scoring service. + */ + private List supportedResourceTypes; + + /** + * Creates an instance of SkuMixPlacementProperties class. + */ + private SkuMixPlacementProperties() { + } + + /** + * Get the supportedResourceTypes property: Describes what resource types are supported by the mix placement scoring + * service. + * + * @return the supportedResourceTypes value. + */ + public List supportedResourceTypes() { + return this.supportedResourceTypes; + } + + /** + * {@inheritDoc} + */ + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeArrayField("supportedResourceTypes", this.supportedResourceTypes, + (writer, element) -> writer.writeString(element)); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of SkuMixPlacementProperties from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of SkuMixPlacementProperties if the JsonReader was pointing to an instance of it, or null if + * it was pointing to JSON null. + * @throws IOException If an error occurs while reading the SkuMixPlacementProperties. + */ + public static SkuMixPlacementProperties fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + SkuMixPlacementProperties deserializedSkuMixPlacementProperties = new SkuMixPlacementProperties(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("supportedResourceTypes".equals(fieldName)) { + List supportedResourceTypes = reader.readArray(reader1 -> reader1.getString()); + deserializedSkuMixPlacementProperties.supportedResourceTypes = supportedResourceTypes; + } else { + reader.skipChildren(); + } + } + + return deserializedSkuMixPlacementProperties; + }); + } +} diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementRequest.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementRequest.java new file mode 100644 index 000000000000..91442781f7e4 --- /dev/null +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementRequest.java @@ -0,0 +1,148 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.resourcemanager.compute.recommender.models; + +import com.azure.core.annotation.Fluent; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.util.List; + +/** + * Sku Mix Placement API request. + */ +@Fluent +public final class SkuMixPlacementRequest implements JsonSerializable { + /* + * Optional logical zones to consider (e.g. ["1","2","3"]). Omitted or empty implies regional deployment. + */ + private List zones; + + /* + * All capacity-related properties. + */ + private SkuMixPlacementCapacityProfile capacityProfile; + + /* + * Describes how the service should choose candidate VM sizes. + */ + private SkuMixPlacementInstanceDescription instanceDescription; + + /** + * Creates an instance of SkuMixPlacementRequest class. + */ + public SkuMixPlacementRequest() { + } + + /** + * Get the zones property: Optional logical zones to consider (e.g. ["1","2","3"]). Omitted or empty implies + * regional deployment. + * + * @return the zones value. + */ + public List zones() { + return this.zones; + } + + /** + * Set the zones property: Optional logical zones to consider (e.g. ["1","2","3"]). Omitted or empty implies + * regional deployment. + * + * @param zones the zones value to set. + * @return the SkuMixPlacementRequest object itself. + */ + public SkuMixPlacementRequest withZones(List zones) { + this.zones = zones; + return this; + } + + /** + * Get the capacityProfile property: All capacity-related properties. + * + * @return the capacityProfile value. + */ + public SkuMixPlacementCapacityProfile capacityProfile() { + return this.capacityProfile; + } + + /** + * Set the capacityProfile property: All capacity-related properties. + * + * @param capacityProfile the capacityProfile value to set. + * @return the SkuMixPlacementRequest object itself. + */ + public SkuMixPlacementRequest withCapacityProfile(SkuMixPlacementCapacityProfile capacityProfile) { + this.capacityProfile = capacityProfile; + return this; + } + + /** + * Get the instanceDescription property: Describes how the service should choose candidate VM sizes. + * + * @return the instanceDescription value. + */ + public SkuMixPlacementInstanceDescription instanceDescription() { + return this.instanceDescription; + } + + /** + * Set the instanceDescription property: Describes how the service should choose candidate VM sizes. + * + * @param instanceDescription the instanceDescription value to set. + * @return the SkuMixPlacementRequest object itself. + */ + public SkuMixPlacementRequest withInstanceDescription(SkuMixPlacementInstanceDescription instanceDescription) { + this.instanceDescription = instanceDescription; + return this; + } + + /** + * {@inheritDoc} + */ + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeJsonField("capacityProfile", this.capacityProfile); + jsonWriter.writeJsonField("instanceDescription", this.instanceDescription); + jsonWriter.writeArrayField("zones", this.zones, (writer, element) -> writer.writeString(element)); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of SkuMixPlacementRequest from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of SkuMixPlacementRequest if the JsonReader was pointing to an instance of it, or null if it + * was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the SkuMixPlacementRequest. + */ + public static SkuMixPlacementRequest fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + SkuMixPlacementRequest deserializedSkuMixPlacementRequest = new SkuMixPlacementRequest(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("capacityProfile".equals(fieldName)) { + deserializedSkuMixPlacementRequest.capacityProfile + = SkuMixPlacementCapacityProfile.fromJson(reader); + } else if ("instanceDescription".equals(fieldName)) { + deserializedSkuMixPlacementRequest.instanceDescription + = SkuMixPlacementInstanceDescription.fromJson(reader); + } else if ("zones".equals(fieldName)) { + List zones = reader.readArray(reader1 -> reader1.getString()); + deserializedSkuMixPlacementRequest.zones = zones; + } else { + reader.skipChildren(); + } + } + + return deserializedSkuMixPlacementRequest; + }); + } +} diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementResponse.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementResponse.java new file mode 100644 index 000000000000..11caa8d27f04 --- /dev/null +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementResponse.java @@ -0,0 +1,43 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.resourcemanager.compute.recommender.models; + +import com.azure.resourcemanager.compute.recommender.fluent.models.SkuMixPlacementResponseInner; +import java.time.OffsetDateTime; +import java.util.List; + +/** + * An immutable client-side representation of SkuMixPlacementResponse. + */ +public interface SkuMixPlacementResponse { + /** + * Gets the placementChoices property: List of placement choice recommendations. + * + * @return the placementChoices value. + */ + List placementChoices(); + + /** + * Gets the validUntil property: Date/time until which the recommendations are valid. Callers should request fresh + * recommendations after this time. + * + * @return the validUntil value. + */ + OffsetDateTime validUntil(); + + /** + * Gets the partialFulfillmentReason property: Indicates whether the response is a complete or partial fulfillment. + * + * @return the partialFulfillmentReason value. + */ + SkuMixPlacementPartialFulfillmentReason partialFulfillmentReason(); + + /** + * Gets the inner com.azure.resourcemanager.compute.recommender.fluent.models.SkuMixPlacementResponseInner object. + * + * @return the inner object. + */ + SkuMixPlacementResponseInner innerModel(); +} diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementScores.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementScores.java new file mode 100644 index 000000000000..e8b1f3cc92bf --- /dev/null +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementScores.java @@ -0,0 +1,62 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.resourcemanager.compute.recommender.models; + +import com.azure.core.http.rest.Response; +import com.azure.core.util.Context; + +/** + * Resource collection API of SkuMixPlacementScores. + */ +public interface SkuMixPlacementScores { + /** + * Gets SkuMixPlacement scoring metadata. + * + * @param location The name of the Azure region. + * @param context The context to associate with this operation. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return skuMixPlacement scoring metadata along with {@link Response}. + */ + Response getWithResponse(String location, Context context); + + /** + * Gets SkuMixPlacement scoring metadata. + * + * @param location The name of the Azure region. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return skuMixPlacement scoring metadata. + */ + SkuMixPlacementBase get(String location); + + /** + * Generates placement scores for VM SKU mix placement. + * + * @param location The name of the Azure region. + * @param skuMixPlacementRequest SkuMixPlacement request object supplied in the body of the generate operation. + * @param context The context to associate with this operation. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return sku Mix Placement API response along with {@link Response}. + */ + Response postWithResponse(String location, SkuMixPlacementRequest skuMixPlacementRequest, + Context context); + + /** + * Generates placement scores for VM SKU mix placement. + * + * @param location The name of the Azure region. + * @param skuMixPlacementRequest SkuMixPlacement request object supplied in the body of the generate operation. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return sku Mix Placement API response. + */ + SkuMixPlacementResponse post(String location, SkuMixPlacementRequest skuMixPlacementRequest); +} diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementSpotPriorityProfile.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementSpotPriorityProfile.java new file mode 100644 index 000000000000..a388d59b26df --- /dev/null +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementSpotPriorityProfile.java @@ -0,0 +1,89 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.resourcemanager.compute.recommender.models; + +import com.azure.core.annotation.Fluent; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * Spot priority configuration. Required when priority is Spot. + */ +@Fluent +public final class SkuMixPlacementSpotPriorityProfile implements JsonSerializable { + /* + * Maximum price per VM the customer is willing to pay. Default: -1 (no price restriction). + */ + private Double maxPricePerVm; + + /** + * Creates an instance of SkuMixPlacementSpotPriorityProfile class. + */ + public SkuMixPlacementSpotPriorityProfile() { + } + + /** + * Get the maxPricePerVm property: Maximum price per VM the customer is willing to pay. Default: -1 (no price + * restriction). + * + * @return the maxPricePerVm value. + */ + public Double maxPricePerVm() { + return this.maxPricePerVm; + } + + /** + * Set the maxPricePerVm property: Maximum price per VM the customer is willing to pay. Default: -1 (no price + * restriction). + * + * @param maxPricePerVm the maxPricePerVm value to set. + * @return the SkuMixPlacementSpotPriorityProfile object itself. + */ + public SkuMixPlacementSpotPriorityProfile withMaxPricePerVm(Double maxPricePerVm) { + this.maxPricePerVm = maxPricePerVm; + return this; + } + + /** + * {@inheritDoc} + */ + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeNumberField("maxPricePerVm", this.maxPricePerVm); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of SkuMixPlacementSpotPriorityProfile from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of SkuMixPlacementSpotPriorityProfile if the JsonReader was pointing to an instance of it, or + * null if it was pointing to JSON null. + * @throws IOException If an error occurs while reading the SkuMixPlacementSpotPriorityProfile. + */ + public static SkuMixPlacementSpotPriorityProfile fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + SkuMixPlacementSpotPriorityProfile deserializedSkuMixPlacementSpotPriorityProfile + = new SkuMixPlacementSpotPriorityProfile(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("maxPricePerVm".equals(fieldName)) { + deserializedSkuMixPlacementSpotPriorityProfile.maxPricePerVm + = reader.getNullable(JsonReader::getDouble); + } else { + reader.skipChildren(); + } + } + + return deserializedSkuMixPlacementSpotPriorityProfile; + }); + } +} diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementVMSize.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementVMSize.java new file mode 100644 index 000000000000..d86516bc9b3b --- /dev/null +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementVMSize.java @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.resourcemanager.compute.recommender.models; + +import com.azure.core.annotation.Fluent; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * A VM size with optional rank for prioritization. + */ +@Fluent +public final class SkuMixPlacementVMSize implements JsonSerializable { + /* + * SKU name (e.g. Standard_D2s_v3). + */ + private String name; + + /* + * Rank of the VM size. Lower = higher priority (starting at 0). Only valid with Prioritized strategy. + */ + private Integer rank; + + /** + * Creates an instance of SkuMixPlacementVMSize class. + */ + public SkuMixPlacementVMSize() { + } + + /** + * Get the name property: SKU name (e.g. Standard_D2s_v3). + * + * @return the name value. + */ + public String name() { + return this.name; + } + + /** + * Set the name property: SKU name (e.g. Standard_D2s_v3). + * + * @param name the name value to set. + * @return the SkuMixPlacementVMSize object itself. + */ + public SkuMixPlacementVMSize withName(String name) { + this.name = name; + return this; + } + + /** + * Get the rank property: Rank of the VM size. Lower = higher priority (starting at 0). Only valid with Prioritized + * strategy. + * + * @return the rank value. + */ + public Integer rank() { + return this.rank; + } + + /** + * Set the rank property: Rank of the VM size. Lower = higher priority (starting at 0). Only valid with Prioritized + * strategy. + * + * @param rank the rank value to set. + * @return the SkuMixPlacementVMSize object itself. + */ + public SkuMixPlacementVMSize withRank(Integer rank) { + this.rank = rank; + return this; + } + + /** + * {@inheritDoc} + */ + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("name", this.name); + jsonWriter.writeNumberField("rank", this.rank); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of SkuMixPlacementVMSize from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of SkuMixPlacementVMSize if the JsonReader was pointing to an instance of it, or null if it + * was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the SkuMixPlacementVMSize. + */ + public static SkuMixPlacementVMSize fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + SkuMixPlacementVMSize deserializedSkuMixPlacementVMSize = new SkuMixPlacementVMSize(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("name".equals(fieldName)) { + deserializedSkuMixPlacementVMSize.name = reader.getString(); + } else if ("rank".equals(fieldName)) { + deserializedSkuMixPlacementVMSize.rank = reader.getNullable(JsonReader::getInt); + } else { + reader.skipChildren(); + } + } + + return deserializedSkuMixPlacementVMSize; + }); + } +} diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementZonalDistributionStrategy.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementZonalDistributionStrategy.java new file mode 100644 index 000000000000..315ba3efc3ba --- /dev/null +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementZonalDistributionStrategy.java @@ -0,0 +1,60 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.resourcemanager.compute.recommender.models; + +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * Strategy for distributing capacity across availability zones. + */ +public final class SkuMixPlacementZonalDistributionStrategy + extends ExpandableStringEnum { + /** + * Capacity distributed across zones on a best-effort balanced basis. + */ + public static final SkuMixPlacementZonalDistributionStrategy BEST_EFFORT_BALANCED + = fromString("BestEffortBalanced"); + + /** + * Zones filled based on zone preferences/rank. Higher priority zones filled first. + */ + public static final SkuMixPlacementZonalDistributionStrategy PRIORITIZED = fromString("Prioritized"); + + /** + * Capacity allocated within a single zone on a best-effort basis; may spill across zones if single-zone capacity is + * insufficient. + */ + public static final SkuMixPlacementZonalDistributionStrategy BEST_EFFORT_SINGLE_ZONE + = fromString("BestEffortSingleZone"); + + /** + * Creates a new instance of SkuMixPlacementZonalDistributionStrategy value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Deprecated + public SkuMixPlacementZonalDistributionStrategy() { + } + + /** + * Creates or finds a SkuMixPlacementZonalDistributionStrategy from its string representation. + * + * @param name a name to look for. + * @return the corresponding SkuMixPlacementZonalDistributionStrategy. + */ + public static SkuMixPlacementZonalDistributionStrategy fromString(String name) { + return fromString(name, SkuMixPlacementZonalDistributionStrategy.class); + } + + /** + * Gets known SkuMixPlacementZonalDistributionStrategy values. + * + * @return known SkuMixPlacementZonalDistributionStrategy values. + */ + public static Collection values() { + return values(SkuMixPlacementZonalDistributionStrategy.class); + } +} diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementZoneAllocationPolicy.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementZoneAllocationPolicy.java new file mode 100644 index 000000000000..d0ca59c27b93 --- /dev/null +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementZoneAllocationPolicy.java @@ -0,0 +1,123 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.resourcemanager.compute.recommender.models; + +import com.azure.core.annotation.Fluent; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.util.List; + +/** + * Zone allocation policy for the placement request. + */ +@Fluent +public final class SkuMixPlacementZoneAllocationPolicy + implements JsonSerializable { + /* + * Distribution strategy for allocating capacity across zones. + */ + private SkuMixPlacementZonalDistributionStrategy distributionStrategy; + + /* + * Per-zone allocation preferences. Used with the Prioritized strategy. + */ + private List zonePreferences; + + /** + * Creates an instance of SkuMixPlacementZoneAllocationPolicy class. + */ + public SkuMixPlacementZoneAllocationPolicy() { + } + + /** + * Get the distributionStrategy property: Distribution strategy for allocating capacity across zones. + * + * @return the distributionStrategy value. + */ + public SkuMixPlacementZonalDistributionStrategy distributionStrategy() { + return this.distributionStrategy; + } + + /** + * Set the distributionStrategy property: Distribution strategy for allocating capacity across zones. + * + * @param distributionStrategy the distributionStrategy value to set. + * @return the SkuMixPlacementZoneAllocationPolicy object itself. + */ + public SkuMixPlacementZoneAllocationPolicy + withDistributionStrategy(SkuMixPlacementZonalDistributionStrategy distributionStrategy) { + this.distributionStrategy = distributionStrategy; + return this; + } + + /** + * Get the zonePreferences property: Per-zone allocation preferences. Used with the Prioritized strategy. + * + * @return the zonePreferences value. + */ + public List zonePreferences() { + return this.zonePreferences; + } + + /** + * Set the zonePreferences property: Per-zone allocation preferences. Used with the Prioritized strategy. + * + * @param zonePreferences the zonePreferences value to set. + * @return the SkuMixPlacementZoneAllocationPolicy object itself. + */ + public SkuMixPlacementZoneAllocationPolicy + withZonePreferences(List zonePreferences) { + this.zonePreferences = zonePreferences; + return this; + } + + /** + * {@inheritDoc} + */ + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("distributionStrategy", + this.distributionStrategy == null ? null : this.distributionStrategy.toString()); + jsonWriter.writeArrayField("zonePreferences", this.zonePreferences, + (writer, element) -> writer.writeJson(element)); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of SkuMixPlacementZoneAllocationPolicy from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of SkuMixPlacementZoneAllocationPolicy if the JsonReader was pointing to an instance of it, + * or null if it was pointing to JSON null. + * @throws IOException If an error occurs while reading the SkuMixPlacementZoneAllocationPolicy. + */ + public static SkuMixPlacementZoneAllocationPolicy fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + SkuMixPlacementZoneAllocationPolicy deserializedSkuMixPlacementZoneAllocationPolicy + = new SkuMixPlacementZoneAllocationPolicy(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("distributionStrategy".equals(fieldName)) { + deserializedSkuMixPlacementZoneAllocationPolicy.distributionStrategy + = SkuMixPlacementZonalDistributionStrategy.fromString(reader.getString()); + } else if ("zonePreferences".equals(fieldName)) { + List zonePreferences + = reader.readArray(reader1 -> SkuMixPlacementZonePreference.fromJson(reader1)); + deserializedSkuMixPlacementZoneAllocationPolicy.zonePreferences = zonePreferences; + } else { + reader.skipChildren(); + } + } + + return deserializedSkuMixPlacementZoneAllocationPolicy; + }); + } +} diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementZonePreference.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementZonePreference.java new file mode 100644 index 000000000000..72469e7186f1 --- /dev/null +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementZonePreference.java @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.resourcemanager.compute.recommender.models; + +import com.azure.core.annotation.Fluent; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * Per-zone allocation preference. + */ +@Fluent +public final class SkuMixPlacementZonePreference implements JsonSerializable { + /* + * Logical zone (e.g. "1", "2", "3"). + */ + private String zone; + + /* + * Rank of the zone. Lower values = higher priority (0 is highest). + */ + private Integer rank; + + /* + * Best-effort limit to avoid allocating more than this count within the zone. Used with the Prioritized strategy. + */ + private Integer targetMaxCapacity; + + /** + * Creates an instance of SkuMixPlacementZonePreference class. + */ + public SkuMixPlacementZonePreference() { + } + + /** + * Get the zone property: Logical zone (e.g. "1", "2", "3"). + * + * @return the zone value. + */ + public String zone() { + return this.zone; + } + + /** + * Set the zone property: Logical zone (e.g. "1", "2", "3"). + * + * @param zone the zone value to set. + * @return the SkuMixPlacementZonePreference object itself. + */ + public SkuMixPlacementZonePreference withZone(String zone) { + this.zone = zone; + return this; + } + + /** + * Get the rank property: Rank of the zone. Lower values = higher priority (0 is highest). + * + * @return the rank value. + */ + public Integer rank() { + return this.rank; + } + + /** + * Set the rank property: Rank of the zone. Lower values = higher priority (0 is highest). + * + * @param rank the rank value to set. + * @return the SkuMixPlacementZonePreference object itself. + */ + public SkuMixPlacementZonePreference withRank(Integer rank) { + this.rank = rank; + return this; + } + + /** + * Get the targetMaxCapacity property: Best-effort limit to avoid allocating more than this count within the zone. + * Used with the Prioritized strategy. + * + * @return the targetMaxCapacity value. + */ + public Integer targetMaxCapacity() { + return this.targetMaxCapacity; + } + + /** + * Set the targetMaxCapacity property: Best-effort limit to avoid allocating more than this count within the zone. + * Used with the Prioritized strategy. + * + * @param targetMaxCapacity the targetMaxCapacity value to set. + * @return the SkuMixPlacementZonePreference object itself. + */ + public SkuMixPlacementZonePreference withTargetMaxCapacity(Integer targetMaxCapacity) { + this.targetMaxCapacity = targetMaxCapacity; + return this; + } + + /** + * {@inheritDoc} + */ + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("zone", this.zone); + jsonWriter.writeNumberField("rank", this.rank); + jsonWriter.writeNumberField("targetMaxCapacity", this.targetMaxCapacity); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of SkuMixPlacementZonePreference from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of SkuMixPlacementZonePreference if the JsonReader was pointing to an instance of it, or null + * if it was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the SkuMixPlacementZonePreference. + */ + public static SkuMixPlacementZonePreference fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + SkuMixPlacementZonePreference deserializedSkuMixPlacementZonePreference + = new SkuMixPlacementZonePreference(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("zone".equals(fieldName)) { + deserializedSkuMixPlacementZonePreference.zone = reader.getString(); + } else if ("rank".equals(fieldName)) { + deserializedSkuMixPlacementZonePreference.rank = reader.getNullable(JsonReader::getInt); + } else if ("targetMaxCapacity".equals(fieldName)) { + deserializedSkuMixPlacementZonePreference.targetMaxCapacity + = reader.getNullable(JsonReader::getInt); + } else { + reader.skipChildren(); + } + } + + return deserializedSkuMixPlacementZonePreference; + }); + } +} diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/main/resources/META-INF/azure-resourcemanager-compute-recommender_metadata.json b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/resources/META-INF/azure-resourcemanager-compute-recommender_metadata.json index d166358885fd..098f68aa4644 100644 --- a/sdk/compute/azure-resourcemanager-compute-recommender/src/main/resources/META-INF/azure-resourcemanager-compute-recommender_metadata.json +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/resources/META-INF/azure-resourcemanager-compute-recommender_metadata.json @@ -1 +1 @@ -{"flavor":"azure","apiVersions":{"Microsoft.Compute":"2025-06-05"},"crossLanguageDefinitions":{"com.azure.resourcemanager.compute.recommender.fluent.ComputeRecommenderManagementClient":"Microsoft.Compute","com.azure.resourcemanager.compute.recommender.fluent.OperationsClient":"Microsoft.Compute.Operations","com.azure.resourcemanager.compute.recommender.fluent.OperationsClient.list":"Azure.ResourceManager.Operations.list","com.azure.resourcemanager.compute.recommender.fluent.SpotPlacementScoresClient":"Microsoft.Compute","com.azure.resourcemanager.compute.recommender.fluent.SpotPlacementScoresClient.get":"Microsoft.Compute.ComputeDiagnosticBases.get","com.azure.resourcemanager.compute.recommender.fluent.SpotPlacementScoresClient.getWithResponse":"Microsoft.Compute.ComputeDiagnosticBases.get","com.azure.resourcemanager.compute.recommender.fluent.SpotPlacementScoresClient.post":"Microsoft.Compute.ComputeDiagnosticBases.post","com.azure.resourcemanager.compute.recommender.fluent.SpotPlacementScoresClient.postWithResponse":"Microsoft.Compute.ComputeDiagnosticBases.post","com.azure.resourcemanager.compute.recommender.fluent.models.ComputeDiagnosticBaseInner":"Microsoft.Compute.ComputeDiagnosticBase","com.azure.resourcemanager.compute.recommender.fluent.models.OperationInner":"Azure.ResourceManager.CommonTypes.Operation","com.azure.resourcemanager.compute.recommender.fluent.models.SpotPlacementScoresResponseInner":"Microsoft.Compute.SpotPlacementScoresResponse","com.azure.resourcemanager.compute.recommender.implementation.ComputeRecommenderManagementClientBuilder":"Microsoft.Compute","com.azure.resourcemanager.compute.recommender.implementation.models.OperationListResult":"Azure.ResourceManager.CommonTypes.OperationListResult","com.azure.resourcemanager.compute.recommender.models.ActionType":"Azure.ResourceManager.CommonTypes.ActionType","com.azure.resourcemanager.compute.recommender.models.DiagnosticProperties":"Microsoft.Compute.DiagnosticProperties","com.azure.resourcemanager.compute.recommender.models.OperationDisplay":"Azure.ResourceManager.CommonTypes.OperationDisplay","com.azure.resourcemanager.compute.recommender.models.Origin":"Azure.ResourceManager.CommonTypes.Origin","com.azure.resourcemanager.compute.recommender.models.PlacementScore":"Microsoft.Compute.PlacementScore","com.azure.resourcemanager.compute.recommender.models.ResourceSize":"Microsoft.Compute.ResourceSize","com.azure.resourcemanager.compute.recommender.models.SpotPlacementScoresInput":"Microsoft.Compute.SpotPlacementScoresInput"},"generatedFiles":["src/main/java/com/azure/resourcemanager/compute/recommender/ComputeRecommenderManager.java","src/main/java/com/azure/resourcemanager/compute/recommender/fluent/ComputeRecommenderManagementClient.java","src/main/java/com/azure/resourcemanager/compute/recommender/fluent/OperationsClient.java","src/main/java/com/azure/resourcemanager/compute/recommender/fluent/SpotPlacementScoresClient.java","src/main/java/com/azure/resourcemanager/compute/recommender/fluent/models/ComputeDiagnosticBaseInner.java","src/main/java/com/azure/resourcemanager/compute/recommender/fluent/models/OperationInner.java","src/main/java/com/azure/resourcemanager/compute/recommender/fluent/models/SpotPlacementScoresResponseInner.java","src/main/java/com/azure/resourcemanager/compute/recommender/fluent/models/package-info.java","src/main/java/com/azure/resourcemanager/compute/recommender/fluent/package-info.java","src/main/java/com/azure/resourcemanager/compute/recommender/implementation/ComputeDiagnosticBaseImpl.java","src/main/java/com/azure/resourcemanager/compute/recommender/implementation/ComputeRecommenderManagementClientBuilder.java","src/main/java/com/azure/resourcemanager/compute/recommender/implementation/ComputeRecommenderManagementClientImpl.java","src/main/java/com/azure/resourcemanager/compute/recommender/implementation/OperationImpl.java","src/main/java/com/azure/resourcemanager/compute/recommender/implementation/OperationsClientImpl.java","src/main/java/com/azure/resourcemanager/compute/recommender/implementation/OperationsImpl.java","src/main/java/com/azure/resourcemanager/compute/recommender/implementation/ResourceManagerUtils.java","src/main/java/com/azure/resourcemanager/compute/recommender/implementation/SpotPlacementScoresClientImpl.java","src/main/java/com/azure/resourcemanager/compute/recommender/implementation/SpotPlacementScoresImpl.java","src/main/java/com/azure/resourcemanager/compute/recommender/implementation/SpotPlacementScoresResponseImpl.java","src/main/java/com/azure/resourcemanager/compute/recommender/implementation/models/OperationListResult.java","src/main/java/com/azure/resourcemanager/compute/recommender/implementation/package-info.java","src/main/java/com/azure/resourcemanager/compute/recommender/models/ActionType.java","src/main/java/com/azure/resourcemanager/compute/recommender/models/ComputeDiagnosticBase.java","src/main/java/com/azure/resourcemanager/compute/recommender/models/DiagnosticProperties.java","src/main/java/com/azure/resourcemanager/compute/recommender/models/Operation.java","src/main/java/com/azure/resourcemanager/compute/recommender/models/OperationDisplay.java","src/main/java/com/azure/resourcemanager/compute/recommender/models/Operations.java","src/main/java/com/azure/resourcemanager/compute/recommender/models/Origin.java","src/main/java/com/azure/resourcemanager/compute/recommender/models/PlacementScore.java","src/main/java/com/azure/resourcemanager/compute/recommender/models/ResourceSize.java","src/main/java/com/azure/resourcemanager/compute/recommender/models/SpotPlacementScores.java","src/main/java/com/azure/resourcemanager/compute/recommender/models/SpotPlacementScoresInput.java","src/main/java/com/azure/resourcemanager/compute/recommender/models/SpotPlacementScoresResponse.java","src/main/java/com/azure/resourcemanager/compute/recommender/models/package-info.java","src/main/java/com/azure/resourcemanager/compute/recommender/package-info.java","src/main/java/module-info.java"]} \ No newline at end of file +{"flavor":"azure","apiVersions":{"Microsoft.Compute":"2026-05-05-preview"},"crossLanguagePackageId":"Microsoft.Compute","crossLanguageVersion":"51800132f656","crossLanguageDefinitions":{"com.azure.resourcemanager.compute.recommender.fluent.ComputeRecommenderManagementClient":"Microsoft.Compute","com.azure.resourcemanager.compute.recommender.fluent.OperationsClient":"Microsoft.Compute.Operations","com.azure.resourcemanager.compute.recommender.fluent.OperationsClient.list":"Azure.ResourceManager.Operations.list","com.azure.resourcemanager.compute.recommender.fluent.SkuMixPlacementScoresClient":"Microsoft.Compute.SkuMixPlacementScores","com.azure.resourcemanager.compute.recommender.fluent.SkuMixPlacementScoresClient.get":"Microsoft.Compute.SkuMixPlacementScores.get","com.azure.resourcemanager.compute.recommender.fluent.SkuMixPlacementScoresClient.getWithResponse":"Microsoft.Compute.SkuMixPlacementScores.get","com.azure.resourcemanager.compute.recommender.fluent.SkuMixPlacementScoresClient.post":"Microsoft.Compute.SkuMixPlacementScores.post","com.azure.resourcemanager.compute.recommender.fluent.SkuMixPlacementScoresClient.postWithResponse":"Microsoft.Compute.SkuMixPlacementScores.post","com.azure.resourcemanager.compute.recommender.fluent.SpotPlacementScoresClient":"Microsoft.Compute","com.azure.resourcemanager.compute.recommender.fluent.SpotPlacementScoresClient.get":"Microsoft.Compute.ComputeDiagnosticBases.get","com.azure.resourcemanager.compute.recommender.fluent.SpotPlacementScoresClient.getWithResponse":"Microsoft.Compute.ComputeDiagnosticBases.get","com.azure.resourcemanager.compute.recommender.fluent.SpotPlacementScoresClient.post":"Microsoft.Compute.ComputeDiagnosticBases.post","com.azure.resourcemanager.compute.recommender.fluent.SpotPlacementScoresClient.postWithResponse":"Microsoft.Compute.ComputeDiagnosticBases.post","com.azure.resourcemanager.compute.recommender.fluent.models.ComputeDiagnosticBaseInner":"Microsoft.Compute.ComputeDiagnosticBase","com.azure.resourcemanager.compute.recommender.fluent.models.OperationInner":"Azure.ResourceManager.CommonTypes.Operation","com.azure.resourcemanager.compute.recommender.fluent.models.SkuMixPlacementBaseInner":"Microsoft.Compute.SkuMixPlacementBase","com.azure.resourcemanager.compute.recommender.fluent.models.SkuMixPlacementResponseInner":"Microsoft.Compute.SkuMixPlacementResponse","com.azure.resourcemanager.compute.recommender.fluent.models.SpotPlacementScoresResponseInner":"Microsoft.Compute.SpotPlacementScoresResponse","com.azure.resourcemanager.compute.recommender.implementation.ComputeRecommenderManagementClientBuilder":"Microsoft.Compute","com.azure.resourcemanager.compute.recommender.implementation.models.OperationListResult":"Azure.ResourceManager.CommonTypes.OperationListResult","com.azure.resourcemanager.compute.recommender.models.ActionType":"Azure.ResourceManager.CommonTypes.ActionType","com.azure.resourcemanager.compute.recommender.models.DiagnosticProperties":"Microsoft.Compute.DiagnosticProperties","com.azure.resourcemanager.compute.recommender.models.OperationDisplay":"Azure.ResourceManager.CommonTypes.OperationDisplay","com.azure.resourcemanager.compute.recommender.models.Origin":"Azure.ResourceManager.CommonTypes.Origin","com.azure.resourcemanager.compute.recommender.models.PlacementScore":"Microsoft.Compute.PlacementScore","com.azure.resourcemanager.compute.recommender.models.ResourceSize":"Microsoft.Compute.ResourceSize","com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementAllocationStrategy":"Microsoft.Compute.SkuMixPlacementAllocationStrategy","com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementCapacityProfile":"Microsoft.Compute.SkuMixPlacementCapacityProfile","com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementCapacityType":"Microsoft.Compute.SkuMixPlacementCapacityType","com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementDeploymentChoice":"Microsoft.Compute.SkuMixPlacementDeploymentChoice","com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementInstanceDescription":"Microsoft.Compute.SkuMixPlacementInstanceDescription","com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementItem":"Microsoft.Compute.SkuMixPlacementItem","com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementOSType":"Microsoft.Compute.SkuMixPlacementOSType","com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementPartialFulfillmentReason":"Microsoft.Compute.SkuMixPlacementPartialFulfillmentReason","com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementPriority":"Microsoft.Compute.SkuMixPlacementPriority","com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementProperties":"Microsoft.Compute.SkuMixPlacementProperties","com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementRequest":"Microsoft.Compute.SkuMixPlacementRequest","com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementSpotPriorityProfile":"Microsoft.Compute.SkuMixPlacementSpotPriorityProfile","com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementVMSize":"Microsoft.Compute.SkuMixPlacementVMSize","com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementZonalDistributionStrategy":"Microsoft.Compute.SkuMixPlacementZonalDistributionStrategy","com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementZoneAllocationPolicy":"Microsoft.Compute.SkuMixPlacementZoneAllocationPolicy","com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementZonePreference":"Microsoft.Compute.SkuMixPlacementZonePreference","com.azure.resourcemanager.compute.recommender.models.SpotPlacementScoresInput":"Microsoft.Compute.SpotPlacementScoresInput"},"generatedFiles":["src/main/java/com/azure/resourcemanager/compute/recommender/ComputeRecommenderManager.java","src/main/java/com/azure/resourcemanager/compute/recommender/fluent/ComputeRecommenderManagementClient.java","src/main/java/com/azure/resourcemanager/compute/recommender/fluent/OperationsClient.java","src/main/java/com/azure/resourcemanager/compute/recommender/fluent/SkuMixPlacementScoresClient.java","src/main/java/com/azure/resourcemanager/compute/recommender/fluent/SpotPlacementScoresClient.java","src/main/java/com/azure/resourcemanager/compute/recommender/fluent/models/ComputeDiagnosticBaseInner.java","src/main/java/com/azure/resourcemanager/compute/recommender/fluent/models/OperationInner.java","src/main/java/com/azure/resourcemanager/compute/recommender/fluent/models/SkuMixPlacementBaseInner.java","src/main/java/com/azure/resourcemanager/compute/recommender/fluent/models/SkuMixPlacementResponseInner.java","src/main/java/com/azure/resourcemanager/compute/recommender/fluent/models/SpotPlacementScoresResponseInner.java","src/main/java/com/azure/resourcemanager/compute/recommender/fluent/models/package-info.java","src/main/java/com/azure/resourcemanager/compute/recommender/fluent/package-info.java","src/main/java/com/azure/resourcemanager/compute/recommender/implementation/ComputeDiagnosticBaseImpl.java","src/main/java/com/azure/resourcemanager/compute/recommender/implementation/ComputeRecommenderManagementClientBuilder.java","src/main/java/com/azure/resourcemanager/compute/recommender/implementation/ComputeRecommenderManagementClientImpl.java","src/main/java/com/azure/resourcemanager/compute/recommender/implementation/OperationImpl.java","src/main/java/com/azure/resourcemanager/compute/recommender/implementation/OperationsClientImpl.java","src/main/java/com/azure/resourcemanager/compute/recommender/implementation/OperationsImpl.java","src/main/java/com/azure/resourcemanager/compute/recommender/implementation/ResourceManagerUtils.java","src/main/java/com/azure/resourcemanager/compute/recommender/implementation/SkuMixPlacementBaseImpl.java","src/main/java/com/azure/resourcemanager/compute/recommender/implementation/SkuMixPlacementResponseImpl.java","src/main/java/com/azure/resourcemanager/compute/recommender/implementation/SkuMixPlacementScoresClientImpl.java","src/main/java/com/azure/resourcemanager/compute/recommender/implementation/SkuMixPlacementScoresImpl.java","src/main/java/com/azure/resourcemanager/compute/recommender/implementation/SpotPlacementScoresClientImpl.java","src/main/java/com/azure/resourcemanager/compute/recommender/implementation/SpotPlacementScoresImpl.java","src/main/java/com/azure/resourcemanager/compute/recommender/implementation/SpotPlacementScoresResponseImpl.java","src/main/java/com/azure/resourcemanager/compute/recommender/implementation/models/OperationListResult.java","src/main/java/com/azure/resourcemanager/compute/recommender/implementation/package-info.java","src/main/java/com/azure/resourcemanager/compute/recommender/models/ActionType.java","src/main/java/com/azure/resourcemanager/compute/recommender/models/ComputeDiagnosticBase.java","src/main/java/com/azure/resourcemanager/compute/recommender/models/DiagnosticProperties.java","src/main/java/com/azure/resourcemanager/compute/recommender/models/Operation.java","src/main/java/com/azure/resourcemanager/compute/recommender/models/OperationDisplay.java","src/main/java/com/azure/resourcemanager/compute/recommender/models/Operations.java","src/main/java/com/azure/resourcemanager/compute/recommender/models/Origin.java","src/main/java/com/azure/resourcemanager/compute/recommender/models/PlacementScore.java","src/main/java/com/azure/resourcemanager/compute/recommender/models/ResourceSize.java","src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementAllocationStrategy.java","src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementBase.java","src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementCapacityProfile.java","src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementCapacityType.java","src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementDeploymentChoice.java","src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementInstanceDescription.java","src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementItem.java","src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementOSType.java","src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementPartialFulfillmentReason.java","src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementPriority.java","src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementProperties.java","src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementRequest.java","src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementResponse.java","src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementScores.java","src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementSpotPriorityProfile.java","src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementVMSize.java","src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementZonalDistributionStrategy.java","src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementZoneAllocationPolicy.java","src/main/java/com/azure/resourcemanager/compute/recommender/models/SkuMixPlacementZonePreference.java","src/main/java/com/azure/resourcemanager/compute/recommender/models/SpotPlacementScores.java","src/main/java/com/azure/resourcemanager/compute/recommender/models/SpotPlacementScoresInput.java","src/main/java/com/azure/resourcemanager/compute/recommender/models/SpotPlacementScoresResponse.java","src/main/java/com/azure/resourcemanager/compute/recommender/models/package-info.java","src/main/java/com/azure/resourcemanager/compute/recommender/package-info.java","src/main/java/module-info.java"]} \ No newline at end of file diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/main/resources/META-INF/native-image/com.azure.resourcemanager/azure-resourcemanager-compute-recommender/proxy-config.json b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/resources/META-INF/native-image/com.azure.resourcemanager/azure-resourcemanager-compute-recommender/proxy-config.json index 0929d1d6d355..7b9be5c542cd 100644 --- a/sdk/compute/azure-resourcemanager-compute-recommender/src/main/resources/META-INF/native-image/com.azure.resourcemanager/azure-resourcemanager-compute-recommender/proxy-config.json +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/main/resources/META-INF/native-image/com.azure.resourcemanager/azure-resourcemanager-compute-recommender/proxy-config.json @@ -1 +1 @@ -[["com.azure.resourcemanager.compute.recommender.implementation.OperationsClientImpl$OperationsService"],["com.azure.resourcemanager.compute.recommender.implementation.SpotPlacementScoresClientImpl$SpotPlacementScoresService"]] \ No newline at end of file +[["com.azure.resourcemanager.compute.recommender.implementation.OperationsClientImpl$OperationsService"],["com.azure.resourcemanager.compute.recommender.implementation.SkuMixPlacementScoresClientImpl$SkuMixPlacementScoresService"],["com.azure.resourcemanager.compute.recommender.implementation.SpotPlacementScoresClientImpl$SpotPlacementScoresService"]] \ No newline at end of file diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/samples/java/com/azure/resourcemanager/compute/recommender/generated/OperationsListSamples.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/samples/java/com/azure/resourcemanager/compute/recommender/generated/OperationsListSamples.java index 17385570f160..730b7ab47262 100644 --- a/sdk/compute/azure-resourcemanager-compute-recommender/src/samples/java/com/azure/resourcemanager/compute/recommender/generated/OperationsListSamples.java +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/samples/java/com/azure/resourcemanager/compute/recommender/generated/OperationsListSamples.java @@ -9,7 +9,7 @@ */ public final class OperationsListSamples { /* - * x-ms-original-file: 2025-06-05/Operations_List_MinimumSet_Gen.json + * x-ms-original-file: 2026-05-05-preview/Operations_List_MinimumSet_Gen.json */ /** * Sample code: Operations_List_MinimumSet_Gen. @@ -22,7 +22,7 @@ public final class OperationsListSamples { } /* - * x-ms-original-file: 2025-06-05/Operations_List_MaximumSet_Gen.json + * x-ms-original-file: 2026-05-05-preview/Operations_List_MaximumSet_Gen.json */ /** * Sample code: Operations_List_MaximumSet_Gen. diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/samples/java/com/azure/resourcemanager/compute/recommender/generated/SkuMixPlacementScoresGetSamples.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/samples/java/com/azure/resourcemanager/compute/recommender/generated/SkuMixPlacementScoresGetSamples.java new file mode 100644 index 000000000000..98ff38f503f8 --- /dev/null +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/samples/java/com/azure/resourcemanager/compute/recommender/generated/SkuMixPlacementScoresGetSamples.java @@ -0,0 +1,23 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.resourcemanager.compute.recommender.generated; + +/** + * Samples for SkuMixPlacementScores Get. + */ +public final class SkuMixPlacementScoresGetSamples { + /* + * x-ms-original-file: 2026-05-05-preview/GetSkuMixPlacementScores.json + */ + /** + * Sample code: Gets the metadata of SkuMixPlacement Scores. + * + * @param manager Entry point to ComputeRecommenderManager. + */ + public static void getsTheMetadataOfSkuMixPlacementScores( + com.azure.resourcemanager.compute.recommender.ComputeRecommenderManager manager) { + manager.skuMixPlacementScores().getWithResponse("eastus", com.azure.core.util.Context.NONE); + } +} diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/samples/java/com/azure/resourcemanager/compute/recommender/generated/SkuMixPlacementScoresPostSamples.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/samples/java/com/azure/resourcemanager/compute/recommender/generated/SkuMixPlacementScoresPostSamples.java new file mode 100644 index 000000000000..4e6dbc7fbb55 --- /dev/null +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/samples/java/com/azure/resourcemanager/compute/recommender/generated/SkuMixPlacementScoresPostSamples.java @@ -0,0 +1,49 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.resourcemanager.compute.recommender.generated; + +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementAllocationStrategy; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementCapacityProfile; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementCapacityType; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementInstanceDescription; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementOSType; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementPriority; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementRequest; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementVMSize; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementZonalDistributionStrategy; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementZoneAllocationPolicy; +import java.util.Arrays; + +/** + * Samples for SkuMixPlacementScores Post. + */ +public final class SkuMixPlacementScoresPostSamples { + /* + * x-ms-original-file: 2026-05-05-preview/GenerateSkuMixPlacementScores.json + */ + /** + * Sample code: Generates SkuMixPlacement scores for VM SKU mix placement with explicit VM sizes. + * + * @param manager Entry point to ComputeRecommenderManager. + */ + public static void generatesSkuMixPlacementScoresForVMSKUMixPlacementWithExplicitVMSizes( + com.azure.resourcemanager.compute.recommender.ComputeRecommenderManager manager) { + manager.skuMixPlacementScores() + .postWithResponse("eastus", + new SkuMixPlacementRequest().withZones(Arrays.asList("1", "2", "3")) + .withCapacityProfile(new SkuMixPlacementCapacityProfile().withCapacity(10) + .withCapacityType(SkuMixPlacementCapacityType.VM) + .withPriority(SkuMixPlacementPriority.REGULAR) + .withAllocationStrategy(SkuMixPlacementAllocationStrategy.LOWEST_PRICE) + .withOsType(SkuMixPlacementOSType.LINUX) + .withZoneAllocationPolicy(new SkuMixPlacementZoneAllocationPolicy() + .withDistributionStrategy(SkuMixPlacementZonalDistributionStrategy.BEST_EFFORT_BALANCED))) + .withInstanceDescription(new SkuMixPlacementInstanceDescription() + .withVmSizes(Arrays.asList(new SkuMixPlacementVMSize().withName("Standard_D2s_v3"), + new SkuMixPlacementVMSize().withName("Standard_D4s_v3"), + new SkuMixPlacementVMSize().withName("Standard_D8s_v3")))), + com.azure.core.util.Context.NONE); + } +} diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/samples/java/com/azure/resourcemanager/compute/recommender/generated/SpotPlacementScoresGetSamples.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/samples/java/com/azure/resourcemanager/compute/recommender/generated/SpotPlacementScoresGetSamples.java index 7ebfc92d36c4..916118828bed 100644 --- a/sdk/compute/azure-resourcemanager-compute-recommender/src/samples/java/com/azure/resourcemanager/compute/recommender/generated/SpotPlacementScoresGetSamples.java +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/samples/java/com/azure/resourcemanager/compute/recommender/generated/SpotPlacementScoresGetSamples.java @@ -9,7 +9,7 @@ */ public final class SpotPlacementScoresGetSamples { /* - * x-ms-original-file: 2025-06-05/GetSpotPlacementScores.json + * x-ms-original-file: 2026-05-05-preview/GetSpotPlacementScores.json */ /** * Sample code: Gets the metadata of Spot Placement Scores. diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/samples/java/com/azure/resourcemanager/compute/recommender/generated/SpotPlacementScoresPostSamples.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/samples/java/com/azure/resourcemanager/compute/recommender/generated/SpotPlacementScoresPostSamples.java index d95a74382d1f..ef3e7897aeda 100644 --- a/sdk/compute/azure-resourcemanager-compute-recommender/src/samples/java/com/azure/resourcemanager/compute/recommender/generated/SpotPlacementScoresPostSamples.java +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/samples/java/com/azure/resourcemanager/compute/recommender/generated/SpotPlacementScoresPostSamples.java @@ -13,7 +13,7 @@ */ public final class SpotPlacementScoresPostSamples { /* - * x-ms-original-file: 2025-06-05/GenerateSpotPlacementScores.json + * x-ms-original-file: 2026-05-05-preview/GenerateSpotPlacementScores.json */ /** * Sample code: Returns spot VM placement scores for given configurations. diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/ComputeDiagnosticBaseInnerTests.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/ComputeDiagnosticBaseInnerTests.java index 944d2e2c674c..7bb7b9c3fc74 100644 --- a/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/ComputeDiagnosticBaseInnerTests.java +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/ComputeDiagnosticBaseInnerTests.java @@ -12,8 +12,8 @@ public final class ComputeDiagnosticBaseInnerTests { @org.junit.jupiter.api.Test public void testDeserialize() throws Exception { ComputeDiagnosticBaseInner model = BinaryData.fromString( - "{\"properties\":{\"supportedResourceTypes\":[\"bpzvgn\",\"zsymglzufcyzkohd\",\"ihanuf\",\"fcbjysagithxqha\"]},\"id\":\"fpikxwczb\",\"name\":\"scnpqxuhivy\",\"type\":\"n\"}") + "{\"properties\":{\"supportedResourceTypes\":[\"ftyhxhurokf\"]},\"id\":\"xolniwpwcukjfk\",\"name\":\"iawxklry\",\"type\":\"lwckbasyypnddhs\"}") .toObject(ComputeDiagnosticBaseInner.class); - Assertions.assertEquals("bpzvgn", model.properties().supportedResourceTypes().get(0)); + Assertions.assertEquals("ftyhxhurokf", model.properties().supportedResourceTypes().get(0)); } } diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/DiagnosticPropertiesTests.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/DiagnosticPropertiesTests.java index 8268666cc60a..5bf939a497d7 100644 --- a/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/DiagnosticPropertiesTests.java +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/DiagnosticPropertiesTests.java @@ -12,7 +12,8 @@ public final class DiagnosticPropertiesTests { @org.junit.jupiter.api.Test public void testDeserialize() throws Exception { DiagnosticProperties model - = BinaryData.fromString("{\"supportedResourceTypes\":[\"ybrk\"]}").toObject(DiagnosticProperties.class); - Assertions.assertEquals("ybrk", model.supportedResourceTypes().get(0)); + = BinaryData.fromString("{\"supportedResourceTypes\":[\"acphejkoty\",\"qgoulznd\",\"i\"]}") + .toObject(DiagnosticProperties.class); + Assertions.assertEquals("acphejkoty", model.supportedResourceTypes().get(0)); } } diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/OperationsListMockTests.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/OperationsListMockTests.java index abd52d016800..59eb51d6de86 100644 --- a/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/OperationsListMockTests.java +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/OperationsListMockTests.java @@ -21,7 +21,7 @@ public final class OperationsListMockTests { @Test public void testList() throws Exception { String responseStr - = "{\"value\":[{\"name\":\"f\",\"isDataAction\":false,\"display\":{\"provider\":\"zgvfcjrwz\",\"resource\":\"xjtfelluwfzit\",\"operation\":\"peqfpjkjl\",\"description\":\"fpdvhpfxxypi\"},\"origin\":\"user,system\",\"actionType\":\"Internal\"}]}"; + = "{\"value\":[{\"name\":\"nohjt\",\"isDataAction\":true,\"display\":{\"provider\":\"soifiyipjxsqw\",\"resource\":\"rjb\",\"operation\":\"orcjxvsnby\",\"description\":\"abnmocpcyshu\"},\"origin\":\"user\",\"actionType\":\"Internal\"}]}"; HttpClient httpClient = response -> Mono.just(new MockHttpResponse(response, 200, responseStr.getBytes(StandardCharsets.UTF_8))); diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/PlacementScoreTests.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/PlacementScoreTests.java index 18bfc05e2b0c..f9415ad15d01 100644 --- a/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/PlacementScoreTests.java +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/PlacementScoreTests.java @@ -12,12 +12,12 @@ public final class PlacementScoreTests { @org.junit.jupiter.api.Test public void testDeserialize() throws Exception { PlacementScore model = BinaryData.fromString( - "{\"sku\":\"hbcryffdfdosyge\",\"region\":\"aojakhmsbzjhcrz\",\"availabilityZone\":\"dphlxaolt\",\"score\":\"trg\",\"isQuotaAvailable\":false}") + "{\"sku\":\"ro\",\"region\":\"qpteeh\",\"availabilityZone\":\"vypyqrimzinpv\",\"score\":\"jdkirsoodqx\",\"isQuotaAvailable\":false}") .toObject(PlacementScore.class); - Assertions.assertEquals("hbcryffdfdosyge", model.sku()); - Assertions.assertEquals("aojakhmsbzjhcrz", model.region()); - Assertions.assertEquals("dphlxaolt", model.availabilityZone()); - Assertions.assertEquals("trg", model.score()); + Assertions.assertEquals("ro", model.sku()); + Assertions.assertEquals("qpteeh", model.region()); + Assertions.assertEquals("vypyqrimzinpv", model.availabilityZone()); + Assertions.assertEquals("jdkirsoodqx", model.score()); Assertions.assertFalse(model.isQuotaAvailable()); } } diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/ResourceSizeTests.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/ResourceSizeTests.java index 1f7b543376f4..d2787c8e54fa 100644 --- a/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/ResourceSizeTests.java +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/ResourceSizeTests.java @@ -11,14 +11,14 @@ public final class ResourceSizeTests { @org.junit.jupiter.api.Test public void testDeserialize() throws Exception { - ResourceSize model = BinaryData.fromString("{\"sku\":\"ahuxinpm\"}").toObject(ResourceSize.class); - Assertions.assertEquals("ahuxinpm", model.sku()); + ResourceSize model = BinaryData.fromString("{\"sku\":\"vqwhbmdgbbjfd\"}").toObject(ResourceSize.class); + Assertions.assertEquals("vqwhbmdgbbjfd", model.sku()); } @org.junit.jupiter.api.Test public void testSerialize() throws Exception { - ResourceSize model = new ResourceSize().withSku("ahuxinpm"); + ResourceSize model = new ResourceSize().withSku("vqwhbmdgbbjfd"); model = BinaryData.fromObject(model).toObject(ResourceSize.class); - Assertions.assertEquals("ahuxinpm", model.sku()); + Assertions.assertEquals("vqwhbmdgbbjfd", model.sku()); } } diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SkuMixPlacementBaseInnerTests.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SkuMixPlacementBaseInnerTests.java new file mode 100644 index 000000000000..020bc830c109 --- /dev/null +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SkuMixPlacementBaseInnerTests.java @@ -0,0 +1,19 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.resourcemanager.compute.recommender.generated; + +import com.azure.core.util.BinaryData; +import com.azure.resourcemanager.compute.recommender.fluent.models.SkuMixPlacementBaseInner; +import org.junit.jupiter.api.Assertions; + +public final class SkuMixPlacementBaseInnerTests { + @org.junit.jupiter.api.Test + public void testDeserialize() throws Exception { + SkuMixPlacementBaseInner model = BinaryData.fromString( + "{\"properties\":{\"supportedResourceTypes\":[\"bpzvgn\",\"zsymglzufcyzkohd\",\"ihanuf\",\"fcbjysagithxqha\"]},\"id\":\"fpikxwczb\",\"name\":\"scnpqxuhivy\",\"type\":\"n\"}") + .toObject(SkuMixPlacementBaseInner.class); + Assertions.assertEquals("bpzvgn", model.properties().supportedResourceTypes().get(0)); + } +} diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SkuMixPlacementCapacityProfileTests.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SkuMixPlacementCapacityProfileTests.java new file mode 100644 index 000000000000..b1ef1f787616 --- /dev/null +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SkuMixPlacementCapacityProfileTests.java @@ -0,0 +1,65 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.resourcemanager.compute.recommender.generated; + +import com.azure.core.util.BinaryData; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementAllocationStrategy; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementCapacityProfile; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementCapacityType; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementOSType; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementPriority; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementSpotPriorityProfile; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementZonalDistributionStrategy; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementZoneAllocationPolicy; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementZonePreference; +import java.util.Arrays; +import org.junit.jupiter.api.Assertions; + +public final class SkuMixPlacementCapacityProfileTests { + @org.junit.jupiter.api.Test + public void testDeserialize() throws Exception { + SkuMixPlacementCapacityProfile model = BinaryData.fromString( + "{\"capacity\":2017964411,\"capacityType\":\"VM\",\"priority\":\"Regular\",\"spotPriorityProfile\":{\"maxPricePerVm\":3.2883493607087533},\"allocationStrategy\":\"Prioritized\",\"osType\":\"Windows\",\"zoneAllocationPolicy\":{\"distributionStrategy\":\"BestEffortSingleZone\",\"zonePreferences\":[{\"zone\":\"ej\",\"rank\":220700122,\"targetMaxCapacity\":672653689}]}}") + .toObject(SkuMixPlacementCapacityProfile.class); + Assertions.assertEquals(2017964411, model.capacity()); + Assertions.assertEquals(SkuMixPlacementCapacityType.VM, model.capacityType()); + Assertions.assertEquals(SkuMixPlacementPriority.REGULAR, model.priority()); + Assertions.assertEquals(3.2883493607087533D, model.spotPriorityProfile().maxPricePerVm()); + Assertions.assertEquals(SkuMixPlacementAllocationStrategy.PRIORITIZED, model.allocationStrategy()); + Assertions.assertEquals(SkuMixPlacementOSType.WINDOWS, model.osType()); + Assertions.assertEquals(SkuMixPlacementZonalDistributionStrategy.BEST_EFFORT_SINGLE_ZONE, + model.zoneAllocationPolicy().distributionStrategy()); + Assertions.assertEquals("ej", model.zoneAllocationPolicy().zonePreferences().get(0).zone()); + Assertions.assertEquals(220700122, model.zoneAllocationPolicy().zonePreferences().get(0).rank()); + Assertions.assertEquals(672653689, model.zoneAllocationPolicy().zonePreferences().get(0).targetMaxCapacity()); + } + + @org.junit.jupiter.api.Test + public void testSerialize() throws Exception { + SkuMixPlacementCapacityProfile model = new SkuMixPlacementCapacityProfile().withCapacity(2017964411) + .withCapacityType(SkuMixPlacementCapacityType.VM) + .withPriority(SkuMixPlacementPriority.REGULAR) + .withSpotPriorityProfile(new SkuMixPlacementSpotPriorityProfile().withMaxPricePerVm(3.2883493607087533D)) + .withAllocationStrategy(SkuMixPlacementAllocationStrategy.PRIORITIZED) + .withOsType(SkuMixPlacementOSType.WINDOWS) + .withZoneAllocationPolicy(new SkuMixPlacementZoneAllocationPolicy() + .withDistributionStrategy(SkuMixPlacementZonalDistributionStrategy.BEST_EFFORT_SINGLE_ZONE) + .withZonePreferences(Arrays.asList(new SkuMixPlacementZonePreference().withZone("ej") + .withRank(220700122) + .withTargetMaxCapacity(672653689)))); + model = BinaryData.fromObject(model).toObject(SkuMixPlacementCapacityProfile.class); + Assertions.assertEquals(2017964411, model.capacity()); + Assertions.assertEquals(SkuMixPlacementCapacityType.VM, model.capacityType()); + Assertions.assertEquals(SkuMixPlacementPriority.REGULAR, model.priority()); + Assertions.assertEquals(3.2883493607087533D, model.spotPriorityProfile().maxPricePerVm()); + Assertions.assertEquals(SkuMixPlacementAllocationStrategy.PRIORITIZED, model.allocationStrategy()); + Assertions.assertEquals(SkuMixPlacementOSType.WINDOWS, model.osType()); + Assertions.assertEquals(SkuMixPlacementZonalDistributionStrategy.BEST_EFFORT_SINGLE_ZONE, + model.zoneAllocationPolicy().distributionStrategy()); + Assertions.assertEquals("ej", model.zoneAllocationPolicy().zonePreferences().get(0).zone()); + Assertions.assertEquals(220700122, model.zoneAllocationPolicy().zonePreferences().get(0).rank()); + Assertions.assertEquals(672653689, model.zoneAllocationPolicy().zonePreferences().get(0).targetMaxCapacity()); + } +} diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SkuMixPlacementDeploymentChoiceTests.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SkuMixPlacementDeploymentChoiceTests.java new file mode 100644 index 000000000000..b9d22e7576be --- /dev/null +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SkuMixPlacementDeploymentChoiceTests.java @@ -0,0 +1,26 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.resourcemanager.compute.recommender.generated; + +import com.azure.core.util.BinaryData; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementDeploymentChoice; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementPriority; +import org.junit.jupiter.api.Assertions; + +public final class SkuMixPlacementDeploymentChoiceTests { + @org.junit.jupiter.api.Test + public void testDeserialize() throws Exception { + SkuMixPlacementDeploymentChoice model = BinaryData.fromString( + "{\"id\":\"dzevndhkrw\",\"score\":7278367,\"skuSplit\":[{\"name\":\"ppdsbdkvwrwj\",\"priority\":\"Regular\",\"capacity\":2141844336,\"capacityMax\":1882901501,\"zone\":\"utjeltmrldhugj\"}]}") + .toObject(SkuMixPlacementDeploymentChoice.class); + Assertions.assertEquals("dzevndhkrw", model.id()); + Assertions.assertEquals(7278367, model.score()); + Assertions.assertEquals("ppdsbdkvwrwj", model.skuSplit().get(0).name()); + Assertions.assertEquals(SkuMixPlacementPriority.REGULAR, model.skuSplit().get(0).priority()); + Assertions.assertEquals(2141844336, model.skuSplit().get(0).capacity()); + Assertions.assertEquals(1882901501, model.skuSplit().get(0).capacityMax()); + Assertions.assertEquals("utjeltmrldhugj", model.skuSplit().get(0).zone()); + } +} diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SkuMixPlacementInstanceDescriptionTests.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SkuMixPlacementInstanceDescriptionTests.java new file mode 100644 index 000000000000..db3172dd0071 --- /dev/null +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SkuMixPlacementInstanceDescriptionTests.java @@ -0,0 +1,33 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.resourcemanager.compute.recommender.generated; + +import com.azure.core.util.BinaryData; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementInstanceDescription; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementVMSize; +import java.util.Arrays; +import org.junit.jupiter.api.Assertions; + +public final class SkuMixPlacementInstanceDescriptionTests { + @org.junit.jupiter.api.Test + public void testDeserialize() throws Exception { + SkuMixPlacementInstanceDescription model = BinaryData.fromString( + "{\"vmSizes\":[{\"name\":\"jbp\",\"rank\":1969463366},{\"name\":\"s\",\"rank\":96730142},{\"name\":\"gvfcj\",\"rank\":1821850933}]}") + .toObject(SkuMixPlacementInstanceDescription.class); + Assertions.assertEquals("jbp", model.vmSizes().get(0).name()); + Assertions.assertEquals(1969463366, model.vmSizes().get(0).rank()); + } + + @org.junit.jupiter.api.Test + public void testSerialize() throws Exception { + SkuMixPlacementInstanceDescription model = new SkuMixPlacementInstanceDescription() + .withVmSizes(Arrays.asList(new SkuMixPlacementVMSize().withName("jbp").withRank(1969463366), + new SkuMixPlacementVMSize().withName("s").withRank(96730142), + new SkuMixPlacementVMSize().withName("gvfcj").withRank(1821850933))); + model = BinaryData.fromObject(model).toObject(SkuMixPlacementInstanceDescription.class); + Assertions.assertEquals("jbp", model.vmSizes().get(0).name()); + Assertions.assertEquals(1969463366, model.vmSizes().get(0).rank()); + } +} diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SkuMixPlacementItemTests.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SkuMixPlacementItemTests.java new file mode 100644 index 000000000000..58ffaaad554e --- /dev/null +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SkuMixPlacementItemTests.java @@ -0,0 +1,24 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.resourcemanager.compute.recommender.generated; + +import com.azure.core.util.BinaryData; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementItem; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementPriority; +import org.junit.jupiter.api.Assertions; + +public final class SkuMixPlacementItemTests { + @org.junit.jupiter.api.Test + public void testDeserialize() throws Exception { + SkuMixPlacementItem model = BinaryData.fromString( + "{\"name\":\"zdatqxhocdg\",\"priority\":\"Spot\",\"capacity\":274751337,\"capacityMax\":885062254,\"zone\":\"huticndvkao\"}") + .toObject(SkuMixPlacementItem.class); + Assertions.assertEquals("zdatqxhocdg", model.name()); + Assertions.assertEquals(SkuMixPlacementPriority.SPOT, model.priority()); + Assertions.assertEquals(274751337, model.capacity()); + Assertions.assertEquals(885062254, model.capacityMax()); + Assertions.assertEquals("huticndvkao", model.zone()); + } +} diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SkuMixPlacementPropertiesTests.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SkuMixPlacementPropertiesTests.java new file mode 100644 index 000000000000..dd5fe092521f --- /dev/null +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SkuMixPlacementPropertiesTests.java @@ -0,0 +1,18 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.resourcemanager.compute.recommender.generated; + +import com.azure.core.util.BinaryData; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementProperties; +import org.junit.jupiter.api.Assertions; + +public final class SkuMixPlacementPropertiesTests { + @org.junit.jupiter.api.Test + public void testDeserialize() throws Exception { + SkuMixPlacementProperties model = BinaryData.fromString("{\"supportedResourceTypes\":[\"ybrk\"]}") + .toObject(SkuMixPlacementProperties.class); + Assertions.assertEquals("ybrk", model.supportedResourceTypes().get(0)); + } +} diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SkuMixPlacementRequestTests.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SkuMixPlacementRequestTests.java new file mode 100644 index 000000000000..348147cde6bb --- /dev/null +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SkuMixPlacementRequestTests.java @@ -0,0 +1,95 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.resourcemanager.compute.recommender.generated; + +import com.azure.core.util.BinaryData; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementAllocationStrategy; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementCapacityProfile; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementCapacityType; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementInstanceDescription; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementOSType; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementPriority; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementRequest; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementSpotPriorityProfile; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementVMSize; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementZonalDistributionStrategy; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementZoneAllocationPolicy; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementZonePreference; +import java.util.Arrays; +import org.junit.jupiter.api.Assertions; + +public final class SkuMixPlacementRequestTests { + @org.junit.jupiter.api.Test + public void testDeserialize() throws Exception { + SkuMixPlacementRequest model = BinaryData.fromString( + "{\"zones\":[\"umjgrtfwvuk\",\"gaudcc\",\"nhsjcnyej\"],\"capacityProfile\":{\"capacity\":1661150390,\"capacityType\":\"VCpu\",\"priority\":\"Spot\",\"spotPriorityProfile\":{\"maxPricePerVm\":67.72184402052227},\"allocationStrategy\":\"Prioritized\",\"osType\":\"Windows\",\"zoneAllocationPolicy\":{\"distributionStrategy\":\"BestEffortBalanced\",\"zonePreferences\":[{\"zone\":\"emkkvnipjox\",\"rank\":1539160915,\"targetMaxCapacity\":275440549},{\"zone\":\"gejspodmailzyde\",\"rank\":1876925756,\"targetMaxCapacity\":1254785420},{\"zone\":\"ahuxinpm\",\"rank\":79874551,\"targetMaxCapacity\":185328444}]}},\"instanceDescription\":{\"vmSizes\":[{\"name\":\"ixjsprozvcputeg\",\"rank\":1903590590},{\"name\":\"mfdatscmdvpj\",\"rank\":1912381604},{\"name\":\"suuv\",\"rank\":838914749}]}}") + .toObject(SkuMixPlacementRequest.class); + Assertions.assertEquals("umjgrtfwvuk", model.zones().get(0)); + Assertions.assertEquals(1661150390, model.capacityProfile().capacity()); + Assertions.assertEquals(SkuMixPlacementCapacityType.VCPU, model.capacityProfile().capacityType()); + Assertions.assertEquals(SkuMixPlacementPriority.SPOT, model.capacityProfile().priority()); + Assertions.assertEquals(67.72184402052227D, model.capacityProfile().spotPriorityProfile().maxPricePerVm()); + Assertions.assertEquals(SkuMixPlacementAllocationStrategy.PRIORITIZED, + model.capacityProfile().allocationStrategy()); + Assertions.assertEquals(SkuMixPlacementOSType.WINDOWS, model.capacityProfile().osType()); + Assertions.assertEquals(SkuMixPlacementZonalDistributionStrategy.BEST_EFFORT_BALANCED, + model.capacityProfile().zoneAllocationPolicy().distributionStrategy()); + Assertions.assertEquals("emkkvnipjox", + model.capacityProfile().zoneAllocationPolicy().zonePreferences().get(0).zone()); + Assertions.assertEquals(1539160915, + model.capacityProfile().zoneAllocationPolicy().zonePreferences().get(0).rank()); + Assertions.assertEquals(275440549, + model.capacityProfile().zoneAllocationPolicy().zonePreferences().get(0).targetMaxCapacity()); + Assertions.assertEquals("ixjsprozvcputeg", model.instanceDescription().vmSizes().get(0).name()); + Assertions.assertEquals(1903590590, model.instanceDescription().vmSizes().get(0).rank()); + } + + @org.junit.jupiter.api.Test + public void testSerialize() throws Exception { + SkuMixPlacementRequest model = new SkuMixPlacementRequest() + .withZones(Arrays.asList("umjgrtfwvuk", "gaudcc", "nhsjcnyej")) + .withCapacityProfile(new SkuMixPlacementCapacityProfile().withCapacity(1661150390) + .withCapacityType(SkuMixPlacementCapacityType.VCPU) + .withPriority(SkuMixPlacementPriority.SPOT) + .withSpotPriorityProfile(new SkuMixPlacementSpotPriorityProfile().withMaxPricePerVm(67.72184402052227D)) + .withAllocationStrategy(SkuMixPlacementAllocationStrategy.PRIORITIZED) + .withOsType(SkuMixPlacementOSType.WINDOWS) + .withZoneAllocationPolicy(new SkuMixPlacementZoneAllocationPolicy() + .withDistributionStrategy(SkuMixPlacementZonalDistributionStrategy.BEST_EFFORT_BALANCED) + .withZonePreferences(Arrays.asList( + new SkuMixPlacementZonePreference().withZone("emkkvnipjox") + .withRank(1539160915) + .withTargetMaxCapacity(275440549), + new SkuMixPlacementZonePreference().withZone("gejspodmailzyde") + .withRank(1876925756) + .withTargetMaxCapacity(1254785420), + new SkuMixPlacementZonePreference().withZone("ahuxinpm") + .withRank(79874551) + .withTargetMaxCapacity(185328444))))) + .withInstanceDescription(new SkuMixPlacementInstanceDescription() + .withVmSizes(Arrays.asList(new SkuMixPlacementVMSize().withName("ixjsprozvcputeg").withRank(1903590590), + new SkuMixPlacementVMSize().withName("mfdatscmdvpj").withRank(1912381604), + new SkuMixPlacementVMSize().withName("suuv").withRank(838914749)))); + model = BinaryData.fromObject(model).toObject(SkuMixPlacementRequest.class); + Assertions.assertEquals("umjgrtfwvuk", model.zones().get(0)); + Assertions.assertEquals(1661150390, model.capacityProfile().capacity()); + Assertions.assertEquals(SkuMixPlacementCapacityType.VCPU, model.capacityProfile().capacityType()); + Assertions.assertEquals(SkuMixPlacementPriority.SPOT, model.capacityProfile().priority()); + Assertions.assertEquals(67.72184402052227D, model.capacityProfile().spotPriorityProfile().maxPricePerVm()); + Assertions.assertEquals(SkuMixPlacementAllocationStrategy.PRIORITIZED, + model.capacityProfile().allocationStrategy()); + Assertions.assertEquals(SkuMixPlacementOSType.WINDOWS, model.capacityProfile().osType()); + Assertions.assertEquals(SkuMixPlacementZonalDistributionStrategy.BEST_EFFORT_BALANCED, + model.capacityProfile().zoneAllocationPolicy().distributionStrategy()); + Assertions.assertEquals("emkkvnipjox", + model.capacityProfile().zoneAllocationPolicy().zonePreferences().get(0).zone()); + Assertions.assertEquals(1539160915, + model.capacityProfile().zoneAllocationPolicy().zonePreferences().get(0).rank()); + Assertions.assertEquals(275440549, + model.capacityProfile().zoneAllocationPolicy().zonePreferences().get(0).targetMaxCapacity()); + Assertions.assertEquals("ixjsprozvcputeg", model.instanceDescription().vmSizes().get(0).name()); + Assertions.assertEquals(1903590590, model.instanceDescription().vmSizes().get(0).rank()); + } +} diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SkuMixPlacementResponseInnerTests.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SkuMixPlacementResponseInnerTests.java new file mode 100644 index 000000000000..d281488704cf --- /dev/null +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SkuMixPlacementResponseInnerTests.java @@ -0,0 +1,31 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.resourcemanager.compute.recommender.generated; + +import com.azure.core.util.BinaryData; +import com.azure.resourcemanager.compute.recommender.fluent.models.SkuMixPlacementResponseInner; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementPartialFulfillmentReason; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementPriority; +import java.time.OffsetDateTime; +import org.junit.jupiter.api.Assertions; + +public final class SkuMixPlacementResponseInnerTests { + @org.junit.jupiter.api.Test + public void testDeserialize() throws Exception { + SkuMixPlacementResponseInner model = BinaryData.fromString( + "{\"placementChoices\":[{\"id\":\"np\",\"score\":1181425969,\"skuSplit\":[{\"name\":\"pjkjlxofpdv\",\"priority\":\"Regular\",\"capacity\":1792293314,\"capacityMax\":1962979170,\"zone\":\"pini\"},{\"name\":\"mayhuybbkpodepoo\",\"priority\":\"Spot\",\"capacity\":895630833,\"capacityMax\":1290742637,\"zone\":\"mihe\"},{\"name\":\"gnarxzxtheo\",\"priority\":\"Regular\",\"capacity\":372211152,\"capacityMax\":116358937,\"zone\":\"evcciqihnhun\"}]},{\"id\":\"bwjzr\",\"score\":1668036347,\"skuSplit\":[{\"name\":\"gxg\",\"priority\":\"Spot\",\"capacity\":2093374464,\"capacityMax\":408868757,\"zone\":\"tzfkufubl\"},{\"name\":\"ofx\",\"priority\":\"Spot\",\"capacity\":556168533,\"capacityMax\":934373346,\"zone\":\"e\"},{\"name\":\"jhqjbasvmsmjqul\",\"priority\":\"Spot\",\"capacity\":951964300,\"capacityMax\":568686899,\"zone\":\"bybkzgcwrwclxx\"}]},{\"id\":\"rljdouskcqv\",\"score\":1685957957,\"skuSplit\":[{\"name\":\"rcjd\",\"priority\":\"Spot\",\"capacity\":1343054120,\"capacityMax\":1034535063,\"zone\":\"bnjbiksqrglssain\"}]},{\"id\":\"p\",\"score\":1191449994,\"skuSplit\":[{\"name\":\"zlljfmppeebvm\",\"priority\":\"Spot\",\"capacity\":1969125414,\"capacityMax\":1742159588,\"zone\":\"yqduujit\"}]}],\"validUntil\":\"2021-06-27T01:31:51Z\",\"partialFulfillmentReason\":\"None\"}") + .toObject(SkuMixPlacementResponseInner.class); + Assertions.assertEquals("np", model.placementChoices().get(0).id()); + Assertions.assertEquals(1181425969, model.placementChoices().get(0).score()); + Assertions.assertEquals("pjkjlxofpdv", model.placementChoices().get(0).skuSplit().get(0).name()); + Assertions.assertEquals(SkuMixPlacementPriority.REGULAR, + model.placementChoices().get(0).skuSplit().get(0).priority()); + Assertions.assertEquals(1792293314, model.placementChoices().get(0).skuSplit().get(0).capacity()); + Assertions.assertEquals(1962979170, model.placementChoices().get(0).skuSplit().get(0).capacityMax()); + Assertions.assertEquals("pini", model.placementChoices().get(0).skuSplit().get(0).zone()); + Assertions.assertEquals(OffsetDateTime.parse("2021-06-27T01:31:51Z"), model.validUntil()); + Assertions.assertEquals(SkuMixPlacementPartialFulfillmentReason.NONE, model.partialFulfillmentReason()); + } +} diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SkuMixPlacementScoresGetWithResponseMockTests.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SkuMixPlacementScoresGetWithResponseMockTests.java new file mode 100644 index 000000000000..77aebd61d6a1 --- /dev/null +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SkuMixPlacementScoresGetWithResponseMockTests.java @@ -0,0 +1,39 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.resourcemanager.compute.recommender.generated; + +import com.azure.core.credential.AccessToken; +import com.azure.core.http.HttpClient; +import com.azure.core.management.profile.AzureProfile; +import com.azure.core.models.AzureCloud; +import com.azure.core.test.http.MockHttpResponse; +import com.azure.resourcemanager.compute.recommender.ComputeRecommenderManager; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementBase; +import java.nio.charset.StandardCharsets; +import java.time.OffsetDateTime; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import reactor.core.publisher.Mono; + +public final class SkuMixPlacementScoresGetWithResponseMockTests { + @Test + public void testGetWithResponse() throws Exception { + String responseStr + = "{\"properties\":{\"supportedResourceTypes\":[\"qidtqajzyu\",\"pku\"]},\"id\":\"krlkhbzhfepg\",\"name\":\"gqexzlocxs\",\"type\":\"paierh\"}"; + + HttpClient httpClient + = response -> Mono.just(new MockHttpResponse(response, 200, responseStr.getBytes(StandardCharsets.UTF_8))); + ComputeRecommenderManager manager = ComputeRecommenderManager.configure() + .withHttpClient(httpClient) + .authenticate(tokenRequestContext -> Mono.just(new AccessToken("this_is_a_token", OffsetDateTime.MAX)), + new AzureProfile("", "", AzureCloud.AZURE_PUBLIC_CLOUD)); + + SkuMixPlacementBase response = manager.skuMixPlacementScores() + .getWithResponse("ljjgpbtoqcjmkl", com.azure.core.util.Context.NONE) + .getValue(); + + Assertions.assertEquals("qidtqajzyu", response.properties().supportedResourceTypes().get(0)); + } +} diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SkuMixPlacementScoresPostWithResponseMockTests.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SkuMixPlacementScoresPostWithResponseMockTests.java new file mode 100644 index 000000000000..bc1c7df8587e --- /dev/null +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SkuMixPlacementScoresPostWithResponseMockTests.java @@ -0,0 +1,91 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.resourcemanager.compute.recommender.generated; + +import com.azure.core.credential.AccessToken; +import com.azure.core.http.HttpClient; +import com.azure.core.management.profile.AzureProfile; +import com.azure.core.models.AzureCloud; +import com.azure.core.test.http.MockHttpResponse; +import com.azure.resourcemanager.compute.recommender.ComputeRecommenderManager; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementAllocationStrategy; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementCapacityProfile; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementCapacityType; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementInstanceDescription; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementOSType; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementPartialFulfillmentReason; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementPriority; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementRequest; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementResponse; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementSpotPriorityProfile; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementVMSize; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementZonalDistributionStrategy; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementZoneAllocationPolicy; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementZonePreference; +import java.nio.charset.StandardCharsets; +import java.time.OffsetDateTime; +import java.util.Arrays; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import reactor.core.publisher.Mono; + +public final class SkuMixPlacementScoresPostWithResponseMockTests { + @Test + public void testPostWithResponse() throws Exception { + String responseStr + = "{\"placementChoices\":[{\"id\":\"nxqbzvddn\",\"score\":648028383,\"skuSplit\":[{\"name\":\"deicbtwnpzao\",\"priority\":\"Spot\",\"capacity\":1330155911,\"capacityMax\":114023042,\"zone\":\"cffcyddglmj\"}]},{\"id\":\"hjq\",\"score\":1652029285,\"skuSplit\":[{\"name\":\"yeicxmqciwqvhk\",\"priority\":\"Spot\",\"capacity\":1053923929,\"capacityMax\":213865408,\"zone\":\"dtopbob\"},{\"name\":\"og\",\"priority\":\"Regular\",\"capacity\":13446913,\"capacityMax\":115410873,\"zone\":\"m\"}]},{\"id\":\"uhrzayvvt\",\"score\":1432651590,\"skuSplit\":[{\"name\":\"dfgiot\",\"priority\":\"Spot\",\"capacity\":1659633182,\"capacityMax\":1205198165,\"zone\":\"xlngx\"},{\"name\":\"efgugnxk\",\"priority\":\"Spot\",\"capacity\":1788312026,\"capacityMax\":435751453,\"zone\":\"dt\"}]},{\"id\":\"hzrvqd\",\"score\":1635198846,\"skuSplit\":[{\"name\":\"hjybigehoqfbo\",\"priority\":\"Regular\",\"capacity\":1382683860,\"capacityMax\":465330089,\"zone\":\"ktzlcuiywg\"}]}],\"validUntil\":\"2021-06-17T20:14:54Z\",\"partialFulfillmentReason\":\"None\"}"; + + HttpClient httpClient + = response -> Mono.just(new MockHttpResponse(response, 200, responseStr.getBytes(StandardCharsets.UTF_8))); + ComputeRecommenderManager manager = ComputeRecommenderManager.configure() + .withHttpClient(httpClient) + .authenticate(tokenRequestContext -> Mono.just(new AccessToken("this_is_a_token", OffsetDateTime.MAX)), + new AzureProfile("", "", AzureCloud.AZURE_PUBLIC_CLOUD)); + + SkuMixPlacementResponse response + = manager.skuMixPlacementScores() + .postWithResponse("bcsglumma", new SkuMixPlacementRequest().withZones(Arrays.asList("aodxo")) + .withCapacityProfile(new SkuMixPlacementCapacityProfile().withCapacity(1341897858) + .withCapacityType(SkuMixPlacementCapacityType.VCPU) + .withPriority(SkuMixPlacementPriority.REGULAR) + .withSpotPriorityProfile( + new SkuMixPlacementSpotPriorityProfile().withMaxPricePerVm(12.013875822180943D)) + .withAllocationStrategy(SkuMixPlacementAllocationStrategy.LOWEST_PRICE) + .withOsType(SkuMixPlacementOSType.LINUX) + .withZoneAllocationPolicy(new SkuMixPlacementZoneAllocationPolicy() + .withDistributionStrategy(SkuMixPlacementZonalDistributionStrategy.BEST_EFFORT_SINGLE_ZONE) + .withZonePreferences(Arrays.asList( + new SkuMixPlacementZonePreference().withZone("imexgstxgcpodgma") + .withRank(37175495) + .withTargetMaxCapacity(526357261), + new SkuMixPlacementZonePreference().withZone("djwzrlov") + .withRank(1769717852) + .withTargetMaxCapacity(1130287748), + new SkuMixPlacementZonePreference().withZone("ijcoejctb") + .withRank(1083194269) + .withTargetMaxCapacity(751291073), + new SkuMixPlacementZonePreference().withZone("sycbkbfk") + .withRank(1619207085) + .withTargetMaxCapacity(2039357898))))) + .withInstanceDescription(new SkuMixPlacementInstanceDescription() + .withVmSizes(Arrays.asList(new SkuMixPlacementVMSize().withName("xxppofm").withRank(159547648), + new SkuMixPlacementVMSize().withName("c").withRank(396023335), + new SkuMixPlacementVMSize().withName("gddtocj").withRank(1680873734), + new SkuMixPlacementVMSize().withName("vpmouexhdzxib").withRank(427127517)))), + com.azure.core.util.Context.NONE) + .getValue(); + + Assertions.assertEquals("nxqbzvddn", response.placementChoices().get(0).id()); + Assertions.assertEquals(648028383, response.placementChoices().get(0).score()); + Assertions.assertEquals("deicbtwnpzao", response.placementChoices().get(0).skuSplit().get(0).name()); + Assertions.assertEquals(SkuMixPlacementPriority.SPOT, + response.placementChoices().get(0).skuSplit().get(0).priority()); + Assertions.assertEquals(1330155911, response.placementChoices().get(0).skuSplit().get(0).capacity()); + Assertions.assertEquals(114023042, response.placementChoices().get(0).skuSplit().get(0).capacityMax()); + Assertions.assertEquals("cffcyddglmj", response.placementChoices().get(0).skuSplit().get(0).zone()); + Assertions.assertEquals(OffsetDateTime.parse("2021-06-17T20:14:54Z"), response.validUntil()); + Assertions.assertEquals(SkuMixPlacementPartialFulfillmentReason.NONE, response.partialFulfillmentReason()); + } +} diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SkuMixPlacementSpotPriorityProfileTests.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SkuMixPlacementSpotPriorityProfileTests.java new file mode 100644 index 000000000000..dfece6633521 --- /dev/null +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SkuMixPlacementSpotPriorityProfileTests.java @@ -0,0 +1,26 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.resourcemanager.compute.recommender.generated; + +import com.azure.core.util.BinaryData; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementSpotPriorityProfile; +import org.junit.jupiter.api.Assertions; + +public final class SkuMixPlacementSpotPriorityProfileTests { + @org.junit.jupiter.api.Test + public void testDeserialize() throws Exception { + SkuMixPlacementSpotPriorityProfile model = BinaryData.fromString("{\"maxPricePerVm\":33.77051911745761}") + .toObject(SkuMixPlacementSpotPriorityProfile.class); + Assertions.assertEquals(33.77051911745761D, model.maxPricePerVm()); + } + + @org.junit.jupiter.api.Test + public void testSerialize() throws Exception { + SkuMixPlacementSpotPriorityProfile model + = new SkuMixPlacementSpotPriorityProfile().withMaxPricePerVm(33.77051911745761D); + model = BinaryData.fromObject(model).toObject(SkuMixPlacementSpotPriorityProfile.class); + Assertions.assertEquals(33.77051911745761D, model.maxPricePerVm()); + } +} diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SkuMixPlacementVMSizeTests.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SkuMixPlacementVMSizeTests.java new file mode 100644 index 000000000000..a53db37f3553 --- /dev/null +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SkuMixPlacementVMSizeTests.java @@ -0,0 +1,27 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.resourcemanager.compute.recommender.generated; + +import com.azure.core.util.BinaryData; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementVMSize; +import org.junit.jupiter.api.Assertions; + +public final class SkuMixPlacementVMSizeTests { + @org.junit.jupiter.api.Test + public void testDeserialize() throws Exception { + SkuMixPlacementVMSize model = BinaryData.fromString("{\"name\":\"oxxjtfelluwf\",\"rank\":1312385221}") + .toObject(SkuMixPlacementVMSize.class); + Assertions.assertEquals("oxxjtfelluwf", model.name()); + Assertions.assertEquals(1312385221, model.rank()); + } + + @org.junit.jupiter.api.Test + public void testSerialize() throws Exception { + SkuMixPlacementVMSize model = new SkuMixPlacementVMSize().withName("oxxjtfelluwf").withRank(1312385221); + model = BinaryData.fromObject(model).toObject(SkuMixPlacementVMSize.class); + Assertions.assertEquals("oxxjtfelluwf", model.name()); + Assertions.assertEquals(1312385221, model.rank()); + } +} diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SkuMixPlacementZoneAllocationPolicyTests.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SkuMixPlacementZoneAllocationPolicyTests.java new file mode 100644 index 000000000000..3bfe89492f38 --- /dev/null +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SkuMixPlacementZoneAllocationPolicyTests.java @@ -0,0 +1,48 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.resourcemanager.compute.recommender.generated; + +import com.azure.core.util.BinaryData; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementZonalDistributionStrategy; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementZoneAllocationPolicy; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementZonePreference; +import java.util.Arrays; +import org.junit.jupiter.api.Assertions; + +public final class SkuMixPlacementZoneAllocationPolicyTests { + @org.junit.jupiter.api.Test + public void testDeserialize() throws Exception { + SkuMixPlacementZoneAllocationPolicy model = BinaryData.fromString( + "{\"distributionStrategy\":\"BestEffortSingleZone\",\"zonePreferences\":[{\"zone\":\"cctazakljlahbc\",\"rank\":1201536256,\"targetMaxCapacity\":529020115},{\"zone\":\"fdosyg\",\"rank\":1094512246,\"targetMaxCapacity\":1678061557},{\"zone\":\"jakhmsbzjh\",\"rank\":1969349443,\"targetMaxCapacity\":1441176241}]}") + .toObject(SkuMixPlacementZoneAllocationPolicy.class); + Assertions.assertEquals(SkuMixPlacementZonalDistributionStrategy.BEST_EFFORT_SINGLE_ZONE, + model.distributionStrategy()); + Assertions.assertEquals("cctazakljlahbc", model.zonePreferences().get(0).zone()); + Assertions.assertEquals(1201536256, model.zonePreferences().get(0).rank()); + Assertions.assertEquals(529020115, model.zonePreferences().get(0).targetMaxCapacity()); + } + + @org.junit.jupiter.api.Test + public void testSerialize() throws Exception { + SkuMixPlacementZoneAllocationPolicy model = new SkuMixPlacementZoneAllocationPolicy() + .withDistributionStrategy(SkuMixPlacementZonalDistributionStrategy.BEST_EFFORT_SINGLE_ZONE) + .withZonePreferences(Arrays.asList( + new SkuMixPlacementZonePreference().withZone("cctazakljlahbc") + .withRank(1201536256) + .withTargetMaxCapacity(529020115), + new SkuMixPlacementZonePreference().withZone("fdosyg") + .withRank(1094512246) + .withTargetMaxCapacity(1678061557), + new SkuMixPlacementZonePreference().withZone("jakhmsbzjh") + .withRank(1969349443) + .withTargetMaxCapacity(1441176241))); + model = BinaryData.fromObject(model).toObject(SkuMixPlacementZoneAllocationPolicy.class); + Assertions.assertEquals(SkuMixPlacementZonalDistributionStrategy.BEST_EFFORT_SINGLE_ZONE, + model.distributionStrategy()); + Assertions.assertEquals("cctazakljlahbc", model.zonePreferences().get(0).zone()); + Assertions.assertEquals(1201536256, model.zonePreferences().get(0).rank()); + Assertions.assertEquals(529020115, model.zonePreferences().get(0).targetMaxCapacity()); + } +} diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SkuMixPlacementZonePreferenceTests.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SkuMixPlacementZonePreferenceTests.java new file mode 100644 index 000000000000..fa2b4bfed3dd --- /dev/null +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SkuMixPlacementZonePreferenceTests.java @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.resourcemanager.compute.recommender.generated; + +import com.azure.core.util.BinaryData; +import com.azure.resourcemanager.compute.recommender.models.SkuMixPlacementZonePreference; +import org.junit.jupiter.api.Assertions; + +public final class SkuMixPlacementZonePreferenceTests { + @org.junit.jupiter.api.Test + public void testDeserialize() throws Exception { + SkuMixPlacementZonePreference model + = BinaryData.fromString("{\"zone\":\"dphlxaolt\",\"rank\":578472109,\"targetMaxCapacity\":545631747}") + .toObject(SkuMixPlacementZonePreference.class); + Assertions.assertEquals("dphlxaolt", model.zone()); + Assertions.assertEquals(578472109, model.rank()); + Assertions.assertEquals(545631747, model.targetMaxCapacity()); + } + + @org.junit.jupiter.api.Test + public void testSerialize() throws Exception { + SkuMixPlacementZonePreference model = new SkuMixPlacementZonePreference().withZone("dphlxaolt") + .withRank(578472109) + .withTargetMaxCapacity(545631747); + model = BinaryData.fromObject(model).toObject(SkuMixPlacementZonePreference.class); + Assertions.assertEquals("dphlxaolt", model.zone()); + Assertions.assertEquals(578472109, model.rank()); + Assertions.assertEquals(545631747, model.targetMaxCapacity()); + } +} diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SpotPlacementScoresGetWithResponseMockTests.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SpotPlacementScoresGetWithResponseMockTests.java index 84f113f0e842..ac0ae609c649 100644 --- a/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SpotPlacementScoresGetWithResponseMockTests.java +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SpotPlacementScoresGetWithResponseMockTests.java @@ -21,7 +21,7 @@ public final class SpotPlacementScoresGetWithResponseMockTests { @Test public void testGetWithResponse() throws Exception { String responseStr - = "{\"properties\":{\"supportedResourceTypes\":[\"ginuvamih\",\"ognarxzxtheotus\",\"vyevcciqi\",\"nhungbw\"]},\"id\":\"rnfygxgispem\",\"name\":\"tzfkufubl\",\"type\":\"ofx\"}"; + = "{\"properties\":{\"supportedResourceTypes\":[\"cgyncocpecf\",\"m\"]},\"id\":\"oo\",\"name\":\"sxlzevgbmqj\",\"type\":\"abcypmivk\"}"; HttpClient httpClient = response -> Mono.just(new MockHttpResponse(response, 200, responseStr.getBytes(StandardCharsets.UTF_8))); @@ -31,8 +31,8 @@ public void testGetWithResponse() throws Exception { new AzureProfile("", "", AzureCloud.AZURE_PUBLIC_CLOUD)); ComputeDiagnosticBase response - = manager.spotPlacementScores().getWithResponse("yhuybbkpod", com.azure.core.util.Context.NONE).getValue(); + = manager.spotPlacementScores().getWithResponse("ndrvynhzg", com.azure.core.util.Context.NONE).getValue(); - Assertions.assertEquals("ginuvamih", response.properties().supportedResourceTypes().get(0)); + Assertions.assertEquals("cgyncocpecf", response.properties().supportedResourceTypes().get(0)); } } diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SpotPlacementScoresInputTests.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SpotPlacementScoresInputTests.java index 00d14cb94a05..8e4c053300bb 100644 --- a/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SpotPlacementScoresInputTests.java +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SpotPlacementScoresInputTests.java @@ -14,27 +14,27 @@ public final class SpotPlacementScoresInputTests { @org.junit.jupiter.api.Test public void testDeserialize() throws Exception { SpotPlacementScoresInput model = BinaryData.fromString( - "{\"desiredLocations\":[\"umjgrtfwvuk\",\"gaudcc\",\"nhsjcnyej\"],\"desiredSizes\":[{\"sku\":\"htnapczwlokjyem\"},{\"sku\":\"vnipjox\"},{\"sku\":\"nchgej\"},{\"sku\":\"odmailzyd\"}],\"desiredCount\":52138230,\"availabilityZones\":true}") + "{\"desiredLocations\":[\"qkgfgibma\",\"gakeqsr\"],\"desiredSizes\":[{\"sku\":\"qqedqytbciqfou\"},{\"sku\":\"mmnkzsmodmgl\"},{\"sku\":\"gpbkwtmut\"},{\"sku\":\"qktapspwgcuert\"}],\"desiredCount\":1634659545,\"availabilityZones\":false}") .toObject(SpotPlacementScoresInput.class); - Assertions.assertEquals("umjgrtfwvuk", model.desiredLocations().get(0)); - Assertions.assertEquals("htnapczwlokjyem", model.desiredSizes().get(0).sku()); - Assertions.assertEquals(52138230, model.desiredCount()); - Assertions.assertTrue(model.availabilityZones()); + Assertions.assertEquals("qkgfgibma", model.desiredLocations().get(0)); + Assertions.assertEquals("qqedqytbciqfou", model.desiredSizes().get(0).sku()); + Assertions.assertEquals(1634659545, model.desiredCount()); + Assertions.assertFalse(model.availabilityZones()); } @org.junit.jupiter.api.Test public void testSerialize() throws Exception { SpotPlacementScoresInput model - = new SpotPlacementScoresInput().withDesiredLocations(Arrays.asList("umjgrtfwvuk", "gaudcc", "nhsjcnyej")) - .withDesiredSizes( - Arrays.asList(new ResourceSize().withSku("htnapczwlokjyem"), new ResourceSize().withSku("vnipjox"), - new ResourceSize().withSku("nchgej"), new ResourceSize().withSku("odmailzyd"))) - .withDesiredCount(52138230) - .withAvailabilityZones(true); + = new SpotPlacementScoresInput().withDesiredLocations(Arrays.asList("qkgfgibma", "gakeqsr")) + .withDesiredSizes(Arrays.asList(new ResourceSize().withSku("qqedqytbciqfou"), + new ResourceSize().withSku("mmnkzsmodmgl"), new ResourceSize().withSku("gpbkwtmut"), + new ResourceSize().withSku("qktapspwgcuert"))) + .withDesiredCount(1634659545) + .withAvailabilityZones(false); model = BinaryData.fromObject(model).toObject(SpotPlacementScoresInput.class); - Assertions.assertEquals("umjgrtfwvuk", model.desiredLocations().get(0)); - Assertions.assertEquals("htnapczwlokjyem", model.desiredSizes().get(0).sku()); - Assertions.assertEquals(52138230, model.desiredCount()); - Assertions.assertTrue(model.availabilityZones()); + Assertions.assertEquals("qkgfgibma", model.desiredLocations().get(0)); + Assertions.assertEquals("qqedqytbciqfou", model.desiredSizes().get(0).sku()); + Assertions.assertEquals(1634659545, model.desiredCount()); + Assertions.assertFalse(model.availabilityZones()); } } diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SpotPlacementScoresPostWithResponseMockTests.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SpotPlacementScoresPostWithResponseMockTests.java index a380f64ee135..b7b1e34631cc 100644 --- a/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SpotPlacementScoresPostWithResponseMockTests.java +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SpotPlacementScoresPostWithResponseMockTests.java @@ -24,7 +24,7 @@ public final class SpotPlacementScoresPostWithResponseMockTests { @Test public void testPostWithResponse() throws Exception { String responseStr - = "{\"desiredLocations\":[\"wrwclxxwrljd\",\"uskcqvkocrcj\",\"kwt\",\"hxbnjbiksqrg\"],\"desiredSizes\":[{\"sku\":\"inqpjwnzll\"},{\"sku\":\"mppeebvmgxs\"},{\"sku\":\"kyqduujit\"}],\"desiredCount\":1447556622,\"availabilityZones\":true,\"placementScores\":[{\"sku\":\"ndhkrw\",\"region\":\"appd\",\"availabilityZone\":\"dkvwrwjfe\",\"score\":\"nhutjeltmrldhugj\",\"isQuotaAvailable\":true},{\"sku\":\"tqxhocdgeab\",\"region\":\"phut\",\"availabilityZone\":\"ndv\",\"score\":\"ozwyiftyhxhuro\",\"isQuotaAvailable\":true}]}"; + = "{\"desiredLocations\":[\"nwsubisnj\",\"mpmngnzscxaqwoo\",\"hcbonqvpkvlr\"],\"desiredSizes\":[{\"sku\":\"ase\"},{\"sku\":\"heoflokeyyienjbd\"}],\"desiredCount\":1289591857,\"availabilityZones\":true,\"placementScores\":[{\"sku\":\"jp\",\"region\":\"masxazjpqyegu\",\"availabilityZone\":\"hb\",\"score\":\"hejjz\",\"isQuotaAvailable\":true},{\"sku\":\"dgwdslfhot\",\"region\":\"cynpwlbjnp\",\"availabilityZone\":\"cftadeh\",\"score\":\"ltyfsop\",\"isQuotaAvailable\":false},{\"sku\":\"esnzwde\",\"region\":\"avo\",\"availabilityZone\":\"zdmohctbqvu\",\"score\":\"xdn\",\"isQuotaAvailable\":false},{\"sku\":\"w\",\"region\":\"jjugwdkcglhslaz\",\"availabilityZone\":\"yggdtjixh\",\"score\":\"uofqwe\",\"isQuotaAvailable\":true}]}"; HttpClient httpClient = response -> Mono.just(new MockHttpResponse(response, 200, responseStr.getBytes(StandardCharsets.UTF_8))); @@ -34,22 +34,21 @@ public void testPostWithResponse() throws Exception { new AzureProfile("", "", AzureCloud.AZURE_PUBLIC_CLOUD)); SpotPlacementScoresResponse response = manager.spotPlacementScores() - .postWithResponse("eofjaeqjh", - new SpotPlacementScoresInput().withDesiredLocations(Arrays.asList("asvm")) - .withDesiredSizes(Arrays.asList(new ResourceSize().withSku("ulngsntn"))) - .withDesiredCount(588307069) - .withAvailabilityZones(false), - com.azure.core.util.Context.NONE) + .postWithResponse("lzu", new SpotPlacementScoresInput().withDesiredLocations(Arrays.asList("fwnfnb")) + .withDesiredSizes( + Arrays.asList(new ResourceSize().withSku("onlebxetqgtzxdpn"), new ResourceSize().withSku("qqwx"))) + .withDesiredCount(19464895) + .withAvailabilityZones(false), com.azure.core.util.Context.NONE) .getValue(); - Assertions.assertEquals("wrwclxxwrljd", response.desiredLocations().get(0)); - Assertions.assertEquals("inqpjwnzll", response.desiredSizes().get(0).sku()); - Assertions.assertEquals(1447556622, response.desiredCount()); + Assertions.assertEquals("nwsubisnj", response.desiredLocations().get(0)); + Assertions.assertEquals("ase", response.desiredSizes().get(0).sku()); + Assertions.assertEquals(1289591857, response.desiredCount()); Assertions.assertTrue(response.availabilityZones()); - Assertions.assertEquals("ndhkrw", response.placementScores().get(0).sku()); - Assertions.assertEquals("appd", response.placementScores().get(0).region()); - Assertions.assertEquals("dkvwrwjfe", response.placementScores().get(0).availabilityZone()); - Assertions.assertEquals("nhutjeltmrldhugj", response.placementScores().get(0).score()); + Assertions.assertEquals("jp", response.placementScores().get(0).sku()); + Assertions.assertEquals("masxazjpqyegu", response.placementScores().get(0).region()); + Assertions.assertEquals("hb", response.placementScores().get(0).availabilityZone()); + Assertions.assertEquals("hejjz", response.placementScores().get(0).score()); Assertions.assertTrue(response.placementScores().get(0).isQuotaAvailable()); } } diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SpotPlacementScoresResponseInnerTests.java b/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SpotPlacementScoresResponseInnerTests.java index b1330ab44460..2be0db7c2624 100644 --- a/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SpotPlacementScoresResponseInnerTests.java +++ b/sdk/compute/azure-resourcemanager-compute-recommender/src/test/java/com/azure/resourcemanager/compute/recommender/generated/SpotPlacementScoresResponseInnerTests.java @@ -12,16 +12,16 @@ public final class SpotPlacementScoresResponseInnerTests { @org.junit.jupiter.api.Test public void testDeserialize() throws Exception { SpotPlacementScoresResponseInner model = BinaryData.fromString( - "{\"desiredLocations\":[\"aqwi\",\"jsprozvcpute\",\"jvwmfda\"],\"desiredSizes\":[{\"sku\":\"dvpjhulsuuvmk\"}],\"desiredCount\":1523765181,\"availabilityZones\":false,\"placementScores\":[{\"sku\":\"dio\",\"region\":\"pslwejdpvw\",\"availabilityZone\":\"oqpsoa\",\"score\":\"tazak\",\"isQuotaAvailable\":true}]}") + "{\"desiredLocations\":[\"bmbexppbhtqqro\",\"fpfpsalgbquxigj\",\"jgzjaoyfhrtx\"],\"desiredSizes\":[{\"sku\":\"rkujy\"}],\"desiredCount\":227199794,\"availabilityZones\":false,\"placementScores\":[{\"sku\":\"qawrlyxwj\",\"region\":\"prbnwbxgjvtbv\",\"availabilityZone\":\"sszdnru\",\"score\":\"guhmuouqfpr\",\"isQuotaAvailable\":true},{\"sku\":\"nguitnwuizgazxu\",\"region\":\"zuckyfi\",\"availabilityZone\":\"fidfvzw\",\"score\":\"uht\",\"isQuotaAvailable\":false},{\"sku\":\"sdkf\",\"region\":\"wxmnteiwao\",\"availabilityZone\":\"km\",\"score\":\"c\",\"isQuotaAvailable\":false},{\"sku\":\"cufufsrpymz\",\"region\":\"nsez\",\"availabilityZone\":\"tbzsgfyccs\",\"score\":\"wmdwzjeiachboo\",\"isQuotaAvailable\":false}]}") .toObject(SpotPlacementScoresResponseInner.class); - Assertions.assertEquals("aqwi", model.desiredLocations().get(0)); - Assertions.assertEquals("dvpjhulsuuvmk", model.desiredSizes().get(0).sku()); - Assertions.assertEquals(1523765181, model.desiredCount()); + Assertions.assertEquals("bmbexppbhtqqro", model.desiredLocations().get(0)); + Assertions.assertEquals("rkujy", model.desiredSizes().get(0).sku()); + Assertions.assertEquals(227199794, model.desiredCount()); Assertions.assertFalse(model.availabilityZones()); - Assertions.assertEquals("dio", model.placementScores().get(0).sku()); - Assertions.assertEquals("pslwejdpvw", model.placementScores().get(0).region()); - Assertions.assertEquals("oqpsoa", model.placementScores().get(0).availabilityZone()); - Assertions.assertEquals("tazak", model.placementScores().get(0).score()); + Assertions.assertEquals("qawrlyxwj", model.placementScores().get(0).sku()); + Assertions.assertEquals("prbnwbxgjvtbv", model.placementScores().get(0).region()); + Assertions.assertEquals("sszdnru", model.placementScores().get(0).availabilityZone()); + Assertions.assertEquals("guhmuouqfpr", model.placementScores().get(0).score()); Assertions.assertTrue(model.placementScores().get(0).isQuotaAvailable()); } } diff --git a/sdk/compute/azure-resourcemanager-compute-recommender/tsp-location.yaml b/sdk/compute/azure-resourcemanager-compute-recommender/tsp-location.yaml index 2dfdabfb0d2f..c2b0d6eea0b7 100644 --- a/sdk/compute/azure-resourcemanager-compute-recommender/tsp-location.yaml +++ b/sdk/compute/azure-resourcemanager-compute-recommender/tsp-location.yaml @@ -1,4 +1,4 @@ -directory: specification/compute/resource-manager/Microsoft.Compute/RecommenderRP -commit: 8d4f7c60f2a1448a1442399aebf1fc17b208a253 +directory: specification/compute/resource-manager/Microsoft.Compute/Recommender +commit: 57e7493ae28af7b6ad02338e7a038f06ed6c2203 repo: Azure/azure-rest-api-specs additionalDirectories: