Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT License. See License.txt in the project root for license information.
/** * 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.implementation; import com.microsoft.azure.management.apigeneration.LangDefinition; import com.microsoft.azure.management.compute.AvailabilitySetSkuTypes; import com.microsoft.azure.management.compute.ComputeResourceType; import com.microsoft.azure.management.compute.ComputeSku; import com.microsoft.azure.management.compute.ComputeSkuName; import com.microsoft.azure.management.compute.ComputeSkuTier; import com.microsoft.azure.management.compute.DiskSkuTypes; import com.microsoft.azure.management.compute.DiskStorageAccountTypes; import com.microsoft.azure.management.compute.ResourceSkuCapabilities; import com.microsoft.azure.management.compute.ResourceSkuCapacity; import com.microsoft.azure.management.compute.ResourceSkuCosts; import com.microsoft.azure.management.compute.ResourceSkuLocationInfo; import com.microsoft.azure.management.compute.ResourceSkuRestrictions; import com.microsoft.azure.management.compute.VirtualMachineSizeTypes; import com.microsoft.azure.management.resources.fluentcore.arm.AvailabilityZoneId; import com.microsoft.azure.management.resources.fluentcore.arm.Region; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set;
The implementation for ComputeSku.
/** * The implementation for {@link ComputeSku}. */
@LangDefinition final class ComputeSkuImpl implements ComputeSku { private final ResourceSkuInner inner; ComputeSkuImpl(ResourceSkuInner inner) { this.inner = inner; } @Override public ComputeSkuName name() { if (this.inner.name() != null) { return ComputeSkuName.fromString(this.inner.name()); } else { return null; } } @Override public ComputeSkuTier tier() { if (this.inner.tier() != null) { return ComputeSkuTier.fromString(this.inner.tier()); } else { return null; } } @Override public ComputeResourceType resourceType() { if (this.inner.resourceType() != null) { return ComputeResourceType.fromString(this.inner.resourceType()); } else { return null; } } @Override public VirtualMachineSizeTypes virtualMachineSizeType() { if (this.inner.resourceType() != null && this.inner.resourceType().equalsIgnoreCase("virtualMachines") && this.inner.name() != null) { return VirtualMachineSizeTypes.fromString(this.inner.name()); } else { return null; } } @Override public DiskSkuTypes diskSkuType() { if (this.inner.resourceType() != null && (this.inner.resourceType().equalsIgnoreCase("disks") || this.inner.resourceType().equalsIgnoreCase("snapshots")) && this.inner.name() != null) { return DiskSkuTypes.fromStorageAccountType(DiskStorageAccountTypes.fromString(this.inner.name())); } else { return null; } } @Override public AvailabilitySetSkuTypes availabilitySetSkuType() { if (this.inner.resourceType() != null && (this.inner.resourceType().equalsIgnoreCase("availabilitySets")) && this.inner.name() != null) { return AvailabilitySetSkuTypes.fromString(this.inner.name()); } else { return null; } } @Override public List<Region> regions() { List<Region> regions = new ArrayList<>(); if (this.inner.locations() != null) { for (String location : this.inner.locations()) { regions.add(Region.fromName(location)); } } return regions; } @Override public Map<Region, Set<AvailabilityZoneId>> zones() { Map<Region, Set<AvailabilityZoneId>> regionToZones = new HashMap<>(); if (this.inner.locationInfo() != null) { for (ResourceSkuLocationInfo info : this.inner.locationInfo()) { if (info.location() != null) { Region region = Region.fromName(info.location()); if (!regionToZones.containsKey(region)) { regionToZones.put(region, new HashSet<AvailabilityZoneId>()); } Set<AvailabilityZoneId> availabilityZoneIds = new HashSet<>(); if (info.zones() != null) { for (String zone : info.zones()) { availabilityZoneIds.add(AvailabilityZoneId.fromString(zone)); } } regionToZones.get(region).addAll(availabilityZoneIds); } } } return regionToZones; } @Override public ResourceSkuCapacity capacity() { return this.inner.capacity(); } @Override public List<String> apiVersions() { if (this.inner.apiVersions() != null) { return Collections.unmodifiableList(this.inner.apiVersions()); } else { return Collections.unmodifiableList(new ArrayList<String>()); } } @Override public List<ResourceSkuCosts> costs() { if (this.inner.costs() != null) { return Collections.unmodifiableList(this.inner.costs()); } else { return Collections.unmodifiableList(new ArrayList<ResourceSkuCosts>()); } } @Override public List<ResourceSkuCapabilities> capabilities() { if (this.inner.capabilities() != null) { return Collections.unmodifiableList(this.inner.capabilities()); } else { return Collections.unmodifiableList(new ArrayList<ResourceSkuCapabilities>()); } } @Override public List<ResourceSkuRestrictions> restrictions() { if (this.inner.capabilities() != null) { return Collections.unmodifiableList(this.inner.restrictions()); } else { return Collections.unmodifiableList(new ArrayList<ResourceSkuRestrictions>()); } } @Override public ResourceSkuInner inner() { return this.inner; } }