All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.azure.resourcemanager.compute.models.UpgradePolicy Maven / Gradle / Ivy

Go to download

This package contains Microsoft Azure Compute Management SDK. For documentation on how to use this package, please see https://aka.ms/azsdk/java/mgmt

There is a newer version: 2.44.0
Show newest version
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
// Code generated by Microsoft (R) AutoRest Code Generator.

package com.azure.resourcemanager.compute.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;

/**
 * Describes an upgrade policy - automatic, manual, or rolling.
 */
@Fluent
public final class UpgradePolicy implements JsonSerializable {
    /*
     * Specifies the mode of an upgrade to virtual machines in the scale set.

Possible values are:

**Manual** - You control the application of updates to virtual machines in the scale set. You do this by using * the manualUpgrade action.

**Automatic** - All virtual machines in the scale set are automatically * updated at the same time. */ private UpgradeMode mode; /* * The configuration parameters used while performing a rolling upgrade. */ private RollingUpgradePolicy rollingUpgradePolicy; /* * Configuration parameters used for performing automatic OS Upgrade. */ private AutomaticOSUpgradePolicy automaticOSUpgradePolicy; /** * Creates an instance of UpgradePolicy class. */ public UpgradePolicy() { } /** * Get the mode property: Specifies the mode of an upgrade to virtual machines in the scale set.<br /><br * /> Possible values are:<br /><br /> **Manual** - You control the application of updates to virtual * machines in the scale set. You do this by using the manualUpgrade action.<br /><br /> **Automatic** - * All virtual machines in the scale set are automatically updated at the same time. * * @return the mode value. */ public UpgradeMode mode() { return this.mode; } /** * Set the mode property: Specifies the mode of an upgrade to virtual machines in the scale set.<br /><br * /> Possible values are:<br /><br /> **Manual** - You control the application of updates to virtual * machines in the scale set. You do this by using the manualUpgrade action.<br /><br /> **Automatic** - * All virtual machines in the scale set are automatically updated at the same time. * * @param mode the mode value to set. * @return the UpgradePolicy object itself. */ public UpgradePolicy withMode(UpgradeMode mode) { this.mode = mode; return this; } /** * Get the rollingUpgradePolicy property: The configuration parameters used while performing a rolling upgrade. * * @return the rollingUpgradePolicy value. */ public RollingUpgradePolicy rollingUpgradePolicy() { return this.rollingUpgradePolicy; } /** * Set the rollingUpgradePolicy property: The configuration parameters used while performing a rolling upgrade. * * @param rollingUpgradePolicy the rollingUpgradePolicy value to set. * @return the UpgradePolicy object itself. */ public UpgradePolicy withRollingUpgradePolicy(RollingUpgradePolicy rollingUpgradePolicy) { this.rollingUpgradePolicy = rollingUpgradePolicy; return this; } /** * Get the automaticOSUpgradePolicy property: Configuration parameters used for performing automatic OS Upgrade. * * @return the automaticOSUpgradePolicy value. */ public AutomaticOSUpgradePolicy automaticOSUpgradePolicy() { return this.automaticOSUpgradePolicy; } /** * Set the automaticOSUpgradePolicy property: Configuration parameters used for performing automatic OS Upgrade. * * @param automaticOSUpgradePolicy the automaticOSUpgradePolicy value to set. * @return the UpgradePolicy object itself. */ public UpgradePolicy withAutomaticOSUpgradePolicy(AutomaticOSUpgradePolicy automaticOSUpgradePolicy) { this.automaticOSUpgradePolicy = automaticOSUpgradePolicy; return this; } /** * Validates the instance. * * @throws IllegalArgumentException thrown if the instance is not valid. */ public void validate() { if (rollingUpgradePolicy() != null) { rollingUpgradePolicy().validate(); } if (automaticOSUpgradePolicy() != null) { automaticOSUpgradePolicy().validate(); } } /** * {@inheritDoc} */ @Override public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { jsonWriter.writeStartObject(); jsonWriter.writeStringField("mode", this.mode == null ? null : this.mode.toString()); jsonWriter.writeJsonField("rollingUpgradePolicy", this.rollingUpgradePolicy); jsonWriter.writeJsonField("automaticOSUpgradePolicy", this.automaticOSUpgradePolicy); return jsonWriter.writeEndObject(); } /** * Reads an instance of UpgradePolicy from the JsonReader. * * @param jsonReader The JsonReader being read. * @return An instance of UpgradePolicy 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 UpgradePolicy. */ public static UpgradePolicy fromJson(JsonReader jsonReader) throws IOException { return jsonReader.readObject(reader -> { UpgradePolicy deserializedUpgradePolicy = new UpgradePolicy(); while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); if ("mode".equals(fieldName)) { deserializedUpgradePolicy.mode = UpgradeMode.fromString(reader.getString()); } else if ("rollingUpgradePolicy".equals(fieldName)) { deserializedUpgradePolicy.rollingUpgradePolicy = RollingUpgradePolicy.fromJson(reader); } else if ("automaticOSUpgradePolicy".equals(fieldName)) { deserializedUpgradePolicy.automaticOSUpgradePolicy = AutomaticOSUpgradePolicy.fromJson(reader); } else { reader.skipChildren(); } } return deserializedUpgradePolicy; }); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy