| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| package org.jclouds.azurecompute.domain; |
| |
| import org.jclouds.javax.annotation.Nullable; |
| |
| import com.google.auto.value.AutoValue; |
| |
| /** |
| * A Role Size that is available in a given subscription. |
| * |
| * @see <a href="https://msdn.microsoft.com/en-us/library/azure/dn469422.aspx" >api</a> |
| */ |
| @AutoValue |
| public abstract class RoleSize { |
| |
| public enum Type { |
| |
| BASIC_A0("Basic_A0"), |
| BASIC_A1("Basic_A1"), |
| BASIC_A2("Basic_A2"), |
| BASIC_A3("Basic_A3"), |
| BASIC_A4("Basic_A4"), |
| A0("A0"), |
| A1("A1"), |
| A2("A2"), |
| A3("A3"), |
| A4("A4"), |
| A5("A5"), |
| A6("A6"), |
| A7("A7"), |
| A8("A8"), |
| A9("A9"), |
| A10("A10"), |
| A11("A11"), |
| STANDARD_A0("Standard_A0"), |
| STANDARD_A1("Standard_A1"), |
| STANDARD_A2("Standard_A2"), |
| STANDARD_A3("Standard_A3"), |
| STANDARD_A4("Standard_A4"), |
| STANDARD_A5("Standard_A5"), |
| STANDARD_A6("Standard_A6"), |
| STANDARD_A7("Standard_A7"), |
| STANDARD_A8("Standard_A8"), |
| STANDARD_A9("Standard_A9"), |
| STANDARD_D1("Standard_D1"), |
| STANDARD_D2("Standard_D2"), |
| STANDARD_D3("Standard_D3"), |
| STANDARD_D4("Standard_D4"), |
| STANDARD_D11("Standard_D11"), |
| STANDARD_D12("Standard_D12"), |
| STANDARD_D13("Standard_D13"), |
| STANDARD_D14("Standard_D14"), |
| STANDARD_G1("Standard_G1"), |
| STANDARD_G2("Standard_G2"), |
| STANDARD_G3("Standard_G3"), |
| STANDARD_G4("Standard_G4"), |
| STANDARD_G5("Standard_G5"), |
| EXTRASMALL("ExtraSmall"), |
| SMALL("Small"), |
| MEDIUM("Medium"), |
| LARGE("Large"), |
| EXTRALARGE("ExtraLarge"), |
| UNRECOGNIZED("UNRECOGNIZED"); |
| |
| private final String text; |
| |
| Type(final String text) { |
| this.text = text; |
| } |
| |
| public String getText() { |
| return this.text; |
| } |
| |
| public static Type fromString(final String text) { |
| if (text != null) { |
| for (Type type : Type.values()) { |
| if (text.equalsIgnoreCase(type.text)) { |
| return type; |
| } |
| } |
| } |
| return UNRECOGNIZED; |
| } |
| } |
| |
| RoleSize() { |
| } // For AutoValue only! |
| |
| /** |
| * The name of the role size. |
| */ |
| public abstract Type name(); |
| |
| /** |
| * The description of the role size. |
| */ |
| @Nullable |
| public abstract String label(); |
| |
| /** |
| * The number of cores that are available in the role size. |
| */ |
| public abstract Integer cores(); |
| |
| /** |
| * The amount of memory that is available in the role size. |
| */ |
| public abstract Integer memoryInMb(); |
| |
| /** |
| * Indicates whether the role size supports web roles or worker roles. |
| */ |
| public abstract Boolean supportedByWebWorkerRoles(); |
| |
| /** |
| * Indicates whether the role size supports Virtual Machines. |
| */ |
| public abstract Boolean supportedByVirtualMachines(); |
| |
| /** |
| * The maximum number of data disks that can be attached to the role. |
| */ |
| public abstract Integer maxDataDiskCount(); |
| |
| /** |
| * The size of the resource disk for a web role or worker role. |
| */ |
| public abstract Integer webWorkerResourceDiskSizeInMb(); |
| |
| /** |
| * The size of the resource disk for a Virtual Machine. |
| */ |
| public abstract Integer virtualMachineResourceDiskSizeInMb(); |
| |
| public static RoleSize create(final Type name, final String label, final Integer cores, |
| final Integer memoryInMb, final Boolean supportedByWebWorkerRoles, |
| final Boolean supportedByVirtualMachines, final Integer maxDataDiskCount, |
| final Integer webWorkerResourceDiskSizeInMb, final Integer virtualMachineResourceDiskSizeInMb) { |
| |
| return new AutoValue_RoleSize(name, label, cores, memoryInMb, |
| supportedByWebWorkerRoles, supportedByVirtualMachines, maxDataDiskCount, webWorkerResourceDiskSizeInMb, |
| virtualMachineResourceDiskSizeInMb); |
| } |
| |
| } |