/**
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for
* license information.
*/
package com.microsoft.azure.management.compute;
import java.util.Collection;
import com.microsoft.azure.management.resources.fluentcore.arm.ExpandableStringEnum;
/**
* Possible power states of a virtual machine.
*/
public final class PowerState extends ExpandableStringEnum<PowerState> {
/**
* Static value PowerState/running for PowerState.
*/
public static final PowerState RUNNING = fromString("PowerState/running");
/**
* Static value PowerState/deallocating for PowerState.
*/
public static final PowerState DEALLOCATING = fromString("PowerState/deallocating");
/**
* Static value PowerState/deallocated for PowerState.
*/
public static final PowerState DEALLOCATED = fromString("PowerState/deallocated");
/**
* Static value PowerState/starting for PowerState.
*/
public static final PowerState STARTING = fromString("PowerState/starting");
/**
* Static value PowerState/stopped for PowerState.
*/
public static final PowerState STOPPED = fromString("PowerState/stopped");
/**
* Static value PowerState/stopping for PowerState.
*/
public static final PowerState STOPPING = fromString("PowerState/stopping");
/**
* Static value PowerState/unknown for PowerState.
*/
public static final PowerState UNKNOWN = fromString("PowerState/unknown");
/**
* Creates an instance of PowerState from the virtual machine instance view status entry corresponding
* to the power state.
*
* @param virtualMachineInstanceView the virtual machine instance view
* @return the PowerState
*/
public static PowerState fromInstanceView(VirtualMachineInstanceView virtualMachineInstanceView) {
if (virtualMachineInstanceView != null && virtualMachineInstanceView.statuses() != null) {
for (InstanceViewStatus status : virtualMachineInstanceView.statuses()) {
if (status.code() != null && status.code().toLowerCase().startsWith("powerstate")) {
return fromString(status.code());
}
}
}
return null;
}
/**
* @return all known power states
*/
public static Collection<PowerState> values() {
return values(PowerState.class);
}
/**
* Finds or creates a PowerState value.
* @param name the value of the power state
* @return a PowerState instance
*/
public static PowerState fromString(String name) {
return fromString(name, PowerState.class);
}
}