protected void SetOSType(VirtualMachineScaleSetVMProfile vmProfile) { if (vmProfile.StorageProfile != null && vmProfile.StorageProfile.OsDisk != null && vmProfile.StorageProfile.OsDisk.OsType != null) { this.CurrentOSType = vmProfile.StorageProfile.OsDisk.OsType.Value; } else if (vmProfile.OsProfile != null && vmProfile.OsProfile.LinuxConfiguration != null) { this.CurrentOSType = OperatingSystemTypes.Linux; } else { this.CurrentOSType = OperatingSystemTypes.Windows; } }
private void CreateVmss() { VirtualMachineScaleSetExtensionProfile vmExtProfile; VirtualMachineScaleSetOSProfile osProfile; VirtualMachineScaleSetStorageProfile storageProfile; VirtualMachineScaleSetNetworkProfile networkProfile; GetProfiles(out vmExtProfile, out osProfile, out storageProfile, out networkProfile); var virtualMachineScaleSetProfile = new VirtualMachineScaleSetVMProfile() { ExtensionProfile = vmExtProfile, OsProfile = osProfile, StorageProfile = storageProfile, NetworkProfile = networkProfile }; virtualMachineScaleSetProfile.Validate(); var vmssTask = ComputeClient.VirtualMachineScaleSets.CreateOrUpdateAsync( this.ResourceGroupName, this.NodeType, new VirtualMachineScaleSet() { Location = GetLocation(), Sku = new Sku(this.VmSku, this.Tier, this.Capacity), Overprovision = false, Tags = GetServiceFabricTags(), UpgradePolicy = new UpgradePolicy() { Mode = UpgradeMode.Automatic }, VirtualMachineProfile = virtualMachineScaleSetProfile }); WriteClusterAndVmssVerboseWhenUpdate(new List <Task>() { vmssTask }, false, this.NodeType); }
internal VirtualMachineScaleSetData(ResourceIdentifier id, string name, ResourceType type, IDictionary <string, string> tags, Location location, Models.Sku sku, Models.Plan plan, ResourceIdentity identity, IList <string> zones, ExtendedLocation extendedLocation, UpgradePolicy upgradePolicy, AutomaticRepairsPolicy automaticRepairsPolicy, VirtualMachineScaleSetVMProfile virtualMachineProfile, string provisioningState, bool?overprovision, bool?doNotRunExtensionsOnOverprovisionedVMs, string uniqueId, bool?singlePlacementGroup, bool?zoneBalance, int?platformFaultDomainCount, WritableSubResource proximityPlacementGroup, WritableSubResource hostGroup, AdditionalCapabilities additionalCapabilities, ScaleInPolicy scaleInPolicy, OrchestrationMode?orchestrationMode) : base(id, name, type, tags, location) { Sku = sku; Plan = plan; Identity = identity; Zones = zones; ExtendedLocation = extendedLocation; UpgradePolicy = upgradePolicy; AutomaticRepairsPolicy = automaticRepairsPolicy; VirtualMachineProfile = virtualMachineProfile; ProvisioningState = provisioningState; Overprovision = overprovision; DoNotRunExtensionsOnOverprovisionedVMs = doNotRunExtensionsOnOverprovisionedVMs; UniqueId = uniqueId; SinglePlacementGroup = singlePlacementGroup; ZoneBalance = zoneBalance; PlatformFaultDomainCount = platformFaultDomainCount; ProximityPlacementGroup = proximityPlacementGroup; HostGroup = hostGroup; AdditionalCapabilities = additionalCapabilities; ScaleInPolicy = scaleInPolicy; OrchestrationMode = orchestrationMode; }
private void Run() { // Sku Sku vSku = null; // Plan Plan vPlan = null; // UpgradePolicy UpgradePolicy vUpgradePolicy = null; // VirtualMachineProfile VirtualMachineScaleSetVMProfile vVirtualMachineProfile = null; // Identity VirtualMachineScaleSetIdentity vIdentity = null; if (this.MyInvocation.BoundParameters.ContainsKey("SkuName")) { if (vSku == null) { vSku = new Sku(); } vSku.Name = this.SkuName; } if (this.MyInvocation.BoundParameters.ContainsKey("SkuTier")) { if (vSku == null) { vSku = new Sku(); } vSku.Tier = this.SkuTier; } if (this.MyInvocation.BoundParameters.ContainsKey("SkuCapacity")) { if (vSku == null) { vSku = new Sku(); } vSku.Capacity = this.SkuCapacity; } if (this.MyInvocation.BoundParameters.ContainsKey("PlanName")) { if (vPlan == null) { vPlan = new Plan(); } vPlan.Name = this.PlanName; } if (this.MyInvocation.BoundParameters.ContainsKey("PlanPublisher")) { if (vPlan == null) { vPlan = new Plan(); } vPlan.Publisher = this.PlanPublisher; } if (this.MyInvocation.BoundParameters.ContainsKey("PlanProduct")) { if (vPlan == null) { vPlan = new Plan(); } vPlan.Product = this.PlanProduct; } if (this.MyInvocation.BoundParameters.ContainsKey("PlanPromotionCode")) { if (vPlan == null) { vPlan = new Plan(); } vPlan.PromotionCode = this.PlanPromotionCode; } if (this.MyInvocation.BoundParameters.ContainsKey("UpgradePolicyMode")) { if (vUpgradePolicy == null) { vUpgradePolicy = new UpgradePolicy(); } vUpgradePolicy.Mode = this.UpgradePolicyMode; } if (this.MyInvocation.BoundParameters.ContainsKey("RollingUpgradePolicy")) { if (vUpgradePolicy == null) { vUpgradePolicy = new UpgradePolicy(); } vUpgradePolicy.RollingUpgradePolicy = this.RollingUpgradePolicy; } if (vUpgradePolicy == null) { vUpgradePolicy = new UpgradePolicy(); } if (vUpgradePolicy.AutomaticOSUpgradePolicy == null) { vUpgradePolicy.AutomaticOSUpgradePolicy = new AutomaticOSUpgradePolicy(); } vUpgradePolicy.AutomaticOSUpgradePolicy.EnableAutomaticOSUpgrade = this.AutoOSUpgrade.IsPresent; if (this.MyInvocation.BoundParameters.ContainsKey("DisableAutoRollback")) { if (vUpgradePolicy == null) { vUpgradePolicy = new UpgradePolicy(); } if (vUpgradePolicy.AutomaticOSUpgradePolicy == null) { vUpgradePolicy.AutomaticOSUpgradePolicy = new AutomaticOSUpgradePolicy(); } vUpgradePolicy.AutomaticOSUpgradePolicy.DisableAutomaticRollback = this.DisableAutoRollback; } if (this.MyInvocation.BoundParameters.ContainsKey("OsProfile")) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new VirtualMachineScaleSetVMProfile(); } vVirtualMachineProfile.OsProfile = this.OsProfile; } if (this.MyInvocation.BoundParameters.ContainsKey("StorageProfile")) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new VirtualMachineScaleSetVMProfile(); } vVirtualMachineProfile.StorageProfile = this.StorageProfile; } if (this.EnableUltraSSD.IsPresent) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new VirtualMachineScaleSetVMProfile(); } if (vVirtualMachineProfile.AdditionalCapabilities == null) { vVirtualMachineProfile.AdditionalCapabilities = new AdditionalCapabilities(true); } } if (this.MyInvocation.BoundParameters.ContainsKey("HealthProbeId")) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new VirtualMachineScaleSetVMProfile(); } if (vVirtualMachineProfile.NetworkProfile == null) { vVirtualMachineProfile.NetworkProfile = new VirtualMachineScaleSetNetworkProfile(); } if (vVirtualMachineProfile.NetworkProfile.HealthProbe == null) { vVirtualMachineProfile.NetworkProfile.HealthProbe = new ApiEntityReference(); } vVirtualMachineProfile.NetworkProfile.HealthProbe.Id = this.HealthProbeId; } if (this.MyInvocation.BoundParameters.ContainsKey("NetworkInterfaceConfiguration")) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new VirtualMachineScaleSetVMProfile(); } if (vVirtualMachineProfile.NetworkProfile == null) { vVirtualMachineProfile.NetworkProfile = new VirtualMachineScaleSetNetworkProfile(); } vVirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations = this.NetworkInterfaceConfiguration; } if (this.MyInvocation.BoundParameters.ContainsKey("BootDiagnostic")) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new VirtualMachineScaleSetVMProfile(); } if (vVirtualMachineProfile.DiagnosticsProfile == null) { vVirtualMachineProfile.DiagnosticsProfile = new DiagnosticsProfile(); } vVirtualMachineProfile.DiagnosticsProfile.BootDiagnostics = this.BootDiagnostic; } if (this.MyInvocation.BoundParameters.ContainsKey("Extension")) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new VirtualMachineScaleSetVMProfile(); } if (vVirtualMachineProfile.ExtensionProfile == null) { vVirtualMachineProfile.ExtensionProfile = new VirtualMachineScaleSetExtensionProfile(); } vVirtualMachineProfile.ExtensionProfile.Extensions = this.Extension; } if (this.MyInvocation.BoundParameters.ContainsKey("LicenseType")) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new VirtualMachineScaleSetVMProfile(); } vVirtualMachineProfile.LicenseType = this.LicenseType; } if (this.MyInvocation.BoundParameters.ContainsKey("Priority")) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new VirtualMachineScaleSetVMProfile(); } vVirtualMachineProfile.Priority = this.Priority; } if (this.MyInvocation.BoundParameters.ContainsKey("EvictionPolicy")) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new VirtualMachineScaleSetVMProfile(); } vVirtualMachineProfile.EvictionPolicy = this.EvictionPolicy; } if (this.AssignIdentity.IsPresent) { if (vIdentity == null) { vIdentity = new VirtualMachineScaleSetIdentity(); } vIdentity.Type = ResourceIdentityType.SystemAssigned; } if (this.MyInvocation.BoundParameters.ContainsKey("IdentityType")) { if (vIdentity == null) { vIdentity = new VirtualMachineScaleSetIdentity(); } vIdentity.Type = this.IdentityType; } if (this.MyInvocation.BoundParameters.ContainsKey("IdentityId")) { if (vIdentity == null) { vIdentity = new VirtualMachineScaleSetIdentity(); } vIdentity.UserAssignedIdentities = new Dictionary <string, VirtualMachineScaleSetIdentityUserAssignedIdentitiesValue>(); foreach (var id in this.IdentityId) { vIdentity.UserAssignedIdentities.Add(id, new VirtualMachineScaleSetIdentityUserAssignedIdentitiesValue()); } } var vVirtualMachineScaleSet = new PSVirtualMachineScaleSet { Overprovision = this.MyInvocation.BoundParameters.ContainsKey("Overprovision") ? this.Overprovision : (bool?)null, SinglePlacementGroup = this.MyInvocation.BoundParameters.ContainsKey("SinglePlacementGroup") ? this.SinglePlacementGroup : (bool?)null, ZoneBalance = this.ZoneBalance.IsPresent ? true : (bool?)null, PlatformFaultDomainCount = this.MyInvocation.BoundParameters.ContainsKey("PlatformFaultDomainCount") ? this.PlatformFaultDomainCount : (int?)null, Zones = this.MyInvocation.BoundParameters.ContainsKey("Zone") ? this.Zone : null, Location = this.MyInvocation.BoundParameters.ContainsKey("Location") ? this.Location : null, Tags = this.MyInvocation.BoundParameters.ContainsKey("Tag") ? this.Tag.Cast <DictionaryEntry>().ToDictionary(ht => (string)ht.Key, ht => (string)ht.Value) : null, Sku = vSku, Plan = vPlan, UpgradePolicy = vUpgradePolicy, VirtualMachineProfile = vVirtualMachineProfile, Identity = vIdentity, }; WriteObject(vVirtualMachineScaleSet); }
internal static VirtualMachineScaleSetData DeserializeVirtualMachineScaleSetData(JsonElement element) { Optional <Sku> sku = default; Optional <Plan> plan = default; Optional <ResourceIdentity> identity = default; Optional <IList <string> > zones = default; Optional <ExtendedLocation> extendedLocation = default; IDictionary <string, string> tags = default; Location location = default; ResourceIdentifier id = default; string name = default; ResourceType type = default; Optional <UpgradePolicy> upgradePolicy = default; Optional <AutomaticRepairsPolicy> automaticRepairsPolicy = default; Optional <VirtualMachineScaleSetVMProfile> virtualMachineProfile = default; Optional <string> provisioningState = default; Optional <bool> overprovision = default; Optional <bool> doNotRunExtensionsOnOverprovisionedVMs = default; Optional <string> uniqueId = default; Optional <bool> singlePlacementGroup = default; Optional <bool> zoneBalance = default; Optional <int> platformFaultDomainCount = default; Optional <Models.SubResource> proximityPlacementGroup = default; Optional <Models.SubResource> hostGroup = default; Optional <AdditionalCapabilities> additionalCapabilities = default; Optional <ScaleInPolicy> scaleInPolicy = default; Optional <OrchestrationMode> orchestrationMode = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("sku")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } sku = Sku.DeserializeSku(property.Value); continue; } if (property.NameEquals("plan")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } plan = Plan.DeserializePlan(property.Value); continue; } if (property.NameEquals("identity")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } identity = JsonSerializer.Deserialize <ResourceIdentity>(property.Value.ToString()); continue; } if (property.NameEquals("zones")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } List <string> array = new List <string>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(item.GetString()); } zones = array; continue; } if (property.NameEquals("extendedLocation")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } extendedLocation = ExtendedLocation.DeserializeExtendedLocation(property.Value); continue; } if (property.NameEquals("tags")) { Dictionary <string, string> dictionary = new Dictionary <string, string>(); foreach (var property0 in property.Value.EnumerateObject()) { dictionary.Add(property0.Name, property0.Value.GetString()); } tags = dictionary; continue; } if (property.NameEquals("location")) { location = property.Value.GetString(); continue; } if (property.NameEquals("id")) { id = property.Value.GetString(); continue; } if (property.NameEquals("name")) { name = property.Value.GetString(); continue; } if (property.NameEquals("type")) { type = property.Value.GetString(); continue; } if (property.NameEquals("properties")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } foreach (var property0 in property.Value.EnumerateObject()) { if (property0.NameEquals("upgradePolicy")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } upgradePolicy = UpgradePolicy.DeserializeUpgradePolicy(property0.Value); continue; } if (property0.NameEquals("automaticRepairsPolicy")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } automaticRepairsPolicy = AutomaticRepairsPolicy.DeserializeAutomaticRepairsPolicy(property0.Value); continue; } if (property0.NameEquals("virtualMachineProfile")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } virtualMachineProfile = VirtualMachineScaleSetVMProfile.DeserializeVirtualMachineScaleSetVMProfile(property0.Value); continue; } if (property0.NameEquals("provisioningState")) { provisioningState = property0.Value.GetString(); continue; } if (property0.NameEquals("overprovision")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } overprovision = property0.Value.GetBoolean(); continue; } if (property0.NameEquals("doNotRunExtensionsOnOverprovisionedVMs")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } doNotRunExtensionsOnOverprovisionedVMs = property0.Value.GetBoolean(); continue; } if (property0.NameEquals("uniqueId")) { uniqueId = property0.Value.GetString(); continue; } if (property0.NameEquals("singlePlacementGroup")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } singlePlacementGroup = property0.Value.GetBoolean(); continue; } if (property0.NameEquals("zoneBalance")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } zoneBalance = property0.Value.GetBoolean(); continue; } if (property0.NameEquals("platformFaultDomainCount")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } platformFaultDomainCount = property0.Value.GetInt32(); continue; } if (property0.NameEquals("proximityPlacementGroup")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } proximityPlacementGroup = Models.SubResource.DeserializeSubResource(property0.Value); continue; } if (property0.NameEquals("hostGroup")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } hostGroup = Models.SubResource.DeserializeSubResource(property0.Value); continue; } if (property0.NameEquals("additionalCapabilities")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } additionalCapabilities = AdditionalCapabilities.DeserializeAdditionalCapabilities(property0.Value); continue; } if (property0.NameEquals("scaleInPolicy")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } scaleInPolicy = ScaleInPolicy.DeserializeScaleInPolicy(property0.Value); continue; } if (property0.NameEquals("orchestrationMode")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } orchestrationMode = new OrchestrationMode(property0.Value.GetString()); continue; } } continue; } } return(new VirtualMachineScaleSetData(id, name, type, tags, location, sku.Value, plan.Value, identity, Optional.ToList(zones), extendedLocation.Value, upgradePolicy.Value, automaticRepairsPolicy.Value, virtualMachineProfile.Value, provisioningState.Value, Optional.ToNullable(overprovision), Optional.ToNullable(doNotRunExtensionsOnOverprovisionedVMs), uniqueId.Value, Optional.ToNullable(singlePlacementGroup), Optional.ToNullable(zoneBalance), Optional.ToNullable(platformFaultDomainCount), proximityPlacementGroup.Value, hostGroup.Value, additionalCapabilities.Value, scaleInPolicy.Value, Optional.ToNullable(orchestrationMode))); }
private void Run() { // Sku Sku vSku = null; // Plan Plan vPlan = null; // UpgradePolicy UpgradePolicy vUpgradePolicy = null; // AutomaticRepairsPolicy AutomaticRepairsPolicy vAutomaticRepairsPolicy = null; // VirtualMachineProfile VirtualMachineScaleSetVMProfile vVirtualMachineProfile = null; // ProximityPlacementGroup SubResource vProximityPlacementGroup = null; // AdditionalCapabilities AdditionalCapabilities vAdditionalCapabilities = null; // ScaleInPolicy ScaleInPolicy vScaleInPolicy = null; // Identity VirtualMachineScaleSetIdentity vIdentity = null; if (this.IsParameterBound(c => c.SkuName)) { if (vSku == null) { vSku = new Sku(); } vSku.Name = this.SkuName; } if (this.IsParameterBound(c => c.SkuTier)) { if (vSku == null) { vSku = new Sku(); } vSku.Tier = this.SkuTier; } if (this.IsParameterBound(c => c.SkuCapacity)) { if (vSku == null) { vSku = new Sku(); } vSku.Capacity = this.SkuCapacity; } if (this.IsParameterBound(c => c.PlanName)) { if (vPlan == null) { vPlan = new Plan(); } vPlan.Name = this.PlanName; } if (this.IsParameterBound(c => c.PlanPublisher)) { if (vPlan == null) { vPlan = new Plan(); } vPlan.Publisher = this.PlanPublisher; } if (this.IsParameterBound(c => c.PlanProduct)) { if (vPlan == null) { vPlan = new Plan(); } vPlan.Product = this.PlanProduct; } if (this.IsParameterBound(c => c.PlanPromotionCode)) { if (vPlan == null) { vPlan = new Plan(); } vPlan.PromotionCode = this.PlanPromotionCode; } if (this.IsParameterBound(c => c.UpgradePolicyMode)) { if (vUpgradePolicy == null) { vUpgradePolicy = new UpgradePolicy(); } vUpgradePolicy.Mode = this.UpgradePolicyMode; } if (this.IsParameterBound(c => c.RollingUpgradePolicy)) { if (vUpgradePolicy == null) { vUpgradePolicy = new UpgradePolicy(); } vUpgradePolicy.RollingUpgradePolicy = this.RollingUpgradePolicy; } if (vUpgradePolicy == null) { vUpgradePolicy = new UpgradePolicy(); } if (vUpgradePolicy.AutomaticOSUpgradePolicy == null) { vUpgradePolicy.AutomaticOSUpgradePolicy = new AutomaticOSUpgradePolicy(); } vUpgradePolicy.AutomaticOSUpgradePolicy.EnableAutomaticOSUpgrade = this.AutoOSUpgrade.IsPresent; if (vAutomaticRepairsPolicy == null) { vAutomaticRepairsPolicy = new AutomaticRepairsPolicy(); } vAutomaticRepairsPolicy.Enabled = this.EnableAutomaticRepair.IsPresent; if (this.IsParameterBound(c => c.AutomaticRepairGracePeriod)) { if (vAutomaticRepairsPolicy == null) { vAutomaticRepairsPolicy = new AutomaticRepairsPolicy(); } vAutomaticRepairsPolicy.GracePeriod = this.AutomaticRepairGracePeriod; } if (this.IsParameterBound(c => c.AutomaticRepairMaxInstanceRepairsPercent)) { if (vAutomaticRepairsPolicy == null) { vAutomaticRepairsPolicy = new AutomaticRepairsPolicy(); } vAutomaticRepairsPolicy.MaxInstanceRepairsPercent = this.AutomaticRepairMaxInstanceRepairsPercent; } if (this.IsParameterBound(c => c.DisableAutoRollback)) { if (vUpgradePolicy == null) { vUpgradePolicy = new UpgradePolicy(); } if (vUpgradePolicy.AutomaticOSUpgradePolicy == null) { vUpgradePolicy.AutomaticOSUpgradePolicy = new AutomaticOSUpgradePolicy(); } vUpgradePolicy.AutomaticOSUpgradePolicy.DisableAutomaticRollback = this.DisableAutoRollback; } if (this.IsParameterBound(c => c.OsProfile)) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new VirtualMachineScaleSetVMProfile(); } vVirtualMachineProfile.OsProfile = this.OsProfile; } if (this.IsParameterBound(c => c.StorageProfile)) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new VirtualMachineScaleSetVMProfile(); } vVirtualMachineProfile.StorageProfile = this.StorageProfile; } if (this.IsParameterBound(c => c.HealthProbeId)) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new VirtualMachineScaleSetVMProfile(); } if (vVirtualMachineProfile.NetworkProfile == null) { vVirtualMachineProfile.NetworkProfile = new VirtualMachineScaleSetNetworkProfile(); } if (vVirtualMachineProfile.NetworkProfile.HealthProbe == null) { vVirtualMachineProfile.NetworkProfile.HealthProbe = new ApiEntityReference(); } vVirtualMachineProfile.NetworkProfile.HealthProbe.Id = this.HealthProbeId; } if (this.IsParameterBound(c => c.NetworkInterfaceConfiguration)) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new VirtualMachineScaleSetVMProfile(); } if (vVirtualMachineProfile.NetworkProfile == null) { vVirtualMachineProfile.NetworkProfile = new VirtualMachineScaleSetNetworkProfile(); } vVirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations = this.NetworkInterfaceConfiguration; } if (this.IsParameterBound(c => c.BootDiagnostic)) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new VirtualMachineScaleSetVMProfile(); } if (vVirtualMachineProfile.DiagnosticsProfile == null) { vVirtualMachineProfile.DiagnosticsProfile = new DiagnosticsProfile(); } vVirtualMachineProfile.DiagnosticsProfile.BootDiagnostics = this.BootDiagnostic; } if (this.IsParameterBound(c => c.Extension)) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new VirtualMachineScaleSetVMProfile(); } if (vVirtualMachineProfile.ExtensionProfile == null) { vVirtualMachineProfile.ExtensionProfile = new VirtualMachineScaleSetExtensionProfile(); } vVirtualMachineProfile.ExtensionProfile.Extensions = this.Extension; } if (this.IsParameterBound(c => c.LicenseType)) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new VirtualMachineScaleSetVMProfile(); } vVirtualMachineProfile.LicenseType = this.LicenseType; } if (this.IsParameterBound(c => c.Priority)) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new VirtualMachineScaleSetVMProfile(); } vVirtualMachineProfile.Priority = this.Priority; } if (this.IsParameterBound(c => c.EvictionPolicy)) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new VirtualMachineScaleSetVMProfile(); } vVirtualMachineProfile.EvictionPolicy = this.EvictionPolicy; } if (this.IsParameterBound(c => c.MaxPrice)) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new VirtualMachineScaleSetVMProfile(); } if (vVirtualMachineProfile.BillingProfile == null) { vVirtualMachineProfile.BillingProfile = new BillingProfile(); } vVirtualMachineProfile.BillingProfile.MaxPrice = this.MaxPrice; } if (this.TerminateScheduledEvents.IsPresent) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new VirtualMachineScaleSetVMProfile(); } if (vVirtualMachineProfile.ScheduledEventsProfile == null) { vVirtualMachineProfile.ScheduledEventsProfile = new ScheduledEventsProfile(); } if (vVirtualMachineProfile.ScheduledEventsProfile.TerminateNotificationProfile == null) { vVirtualMachineProfile.ScheduledEventsProfile.TerminateNotificationProfile = new TerminateNotificationProfile(); } vVirtualMachineProfile.ScheduledEventsProfile.TerminateNotificationProfile.Enable = this.TerminateScheduledEvents.IsPresent; } if (this.IsParameterBound(c => c.TerminateScheduledEventNotBeforeTimeoutInMinutes)) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new VirtualMachineScaleSetVMProfile(); } if (vVirtualMachineProfile.ScheduledEventsProfile == null) { vVirtualMachineProfile.ScheduledEventsProfile = new ScheduledEventsProfile(); } if (vVirtualMachineProfile.ScheduledEventsProfile.TerminateNotificationProfile == null) { vVirtualMachineProfile.ScheduledEventsProfile.TerminateNotificationProfile = new TerminateNotificationProfile(); } vVirtualMachineProfile.ScheduledEventsProfile.TerminateNotificationProfile.NotBeforeTimeout = XmlConvert.ToString(new TimeSpan(0, this.TerminateScheduledEventNotBeforeTimeoutInMinutes, 0)); } if (this.IsParameterBound(c => c.ProximityPlacementGroupId)) { if (vProximityPlacementGroup == null) { vProximityPlacementGroup = new SubResource(); } vProximityPlacementGroup.Id = this.ProximityPlacementGroupId; } if (this.EnableUltraSSD.IsPresent) { if (vAdditionalCapabilities == null) { vAdditionalCapabilities = new AdditionalCapabilities(true); } } if (this.IsParameterBound(c => c.ScaleInPolicy)) { if (vScaleInPolicy == null) { vScaleInPolicy = new ScaleInPolicy(); } vScaleInPolicy.Rules = this.ScaleInPolicy; } if (this.AssignIdentity.IsPresent) { if (vIdentity == null) { vIdentity = new VirtualMachineScaleSetIdentity(); } vIdentity.Type = ResourceIdentityType.SystemAssigned; } if (this.IsParameterBound(c => c.IdentityType)) { if (vIdentity == null) { vIdentity = new VirtualMachineScaleSetIdentity(); } vIdentity.Type = this.IdentityType; } if (this.IsParameterBound(c => c.IdentityId)) { if (vIdentity == null) { vIdentity = new VirtualMachineScaleSetIdentity(); } vIdentity.UserAssignedIdentities = new Dictionary <string, VirtualMachineScaleSetIdentityUserAssignedIdentitiesValue>(); foreach (var id in this.IdentityId) { vIdentity.UserAssignedIdentities.Add(id, new VirtualMachineScaleSetIdentityUserAssignedIdentitiesValue()); } } var vVirtualMachineScaleSet = new PSVirtualMachineScaleSet { Overprovision = this.IsParameterBound(c => c.Overprovision) ? this.Overprovision : (bool?)null, DoNotRunExtensionsOnOverprovisionedVMs = this.SkipExtensionsOnOverprovisionedVMs.IsPresent ? true : (bool?)null, SinglePlacementGroup = this.IsParameterBound(c => c.SinglePlacementGroup) ? this.SinglePlacementGroup : (bool?)null, ZoneBalance = this.ZoneBalance.IsPresent ? true : (bool?)null, PlatformFaultDomainCount = this.IsParameterBound(c => c.PlatformFaultDomainCount) ? this.PlatformFaultDomainCount : (int?)null, Zones = this.IsParameterBound(c => c.Zone) ? this.Zone : null, Location = this.IsParameterBound(c => c.Location) ? this.Location : null, Tags = this.IsParameterBound(c => c.Tag) ? this.Tag.Cast <DictionaryEntry>().ToDictionary(ht => (string)ht.Key, ht => (string)ht.Value) : null, Sku = vSku, Plan = vPlan, UpgradePolicy = vUpgradePolicy, AutomaticRepairsPolicy = vAutomaticRepairsPolicy, VirtualMachineProfile = vVirtualMachineProfile, ProximityPlacementGroup = vProximityPlacementGroup, AdditionalCapabilities = vAdditionalCapabilities, ScaleInPolicy = vScaleInPolicy, Identity = vIdentity, }; WriteObject(vVirtualMachineScaleSet); }