protected override void ProcessRecord()
        {
            // Sku
            var vSku = new Microsoft.Azure.Management.Compute.Models.Sku();

            // UpgradePolicy
            var vUpgradePolicy = new Microsoft.Azure.Management.Compute.Models.UpgradePolicy();

            // VirtualMachineProfile
            var vVirtualMachineProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMProfile();

            // NetworkProfile
            vVirtualMachineProfile.NetworkProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetNetworkProfile();

            // ExtensionProfile
            vVirtualMachineProfile.ExtensionProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetExtensionProfile();
            vSku.Name           = this.SkuName;
            vSku.Tier           = this.SkuTier;
            vSku.Capacity       = this.SkuCapacity;
            vUpgradePolicy.Mode = this.UpgradePolicyMode;
            vVirtualMachineProfile.OsProfile      = this.OsProfile;
            vVirtualMachineProfile.StorageProfile = this.StorageProfile;
            vVirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations = this.NetworkInterfaceConfiguration;
            vVirtualMachineProfile.ExtensionProfile.Extensions = this.Extension;

            var vVirtualMachineScaleSet = new VirtualMachineScaleSet
            {
                ProvisioningState = this.ProvisioningState,
                OverProvision     = this.OverProvision,
                Location          = this.Location,
                Tags                  = (this.Tag == null) ? null : this.Tag.Cast <DictionaryEntry>().ToDictionary(ht => (string)ht.Key, ht => (string)ht.Value),
                Sku                   = vSku,
                UpgradePolicy         = vUpgradePolicy,
                VirtualMachineProfile = vVirtualMachineProfile,
            };

            WriteObject(vVirtualMachineScaleSet);
        }
Example #2
0
        private void Run()
        {
            // Sku
            Microsoft.Azure.Management.Compute.Models.Sku vSku = null;

            // Plan
            Microsoft.Azure.Management.Compute.Models.Plan vPlan = null;

            // UpgradePolicy
            Microsoft.Azure.Management.Compute.Models.UpgradePolicy vUpgradePolicy = null;

            // VirtualMachineProfile
            Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMProfile vVirtualMachineProfile = null;

            // Identity
            Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetIdentity vIdentity = null;

            if (this.SkuName != null)
            {
                if (vSku == null)
                {
                    vSku = new Microsoft.Azure.Management.Compute.Models.Sku();
                }
                vSku.Name = this.SkuName;
            }

            if (this.SkuTier != null)
            {
                if (vSku == null)
                {
                    vSku = new Microsoft.Azure.Management.Compute.Models.Sku();
                }
                vSku.Tier = this.SkuTier;
            }

            if (this.SkuCapacity != null)
            {
                if (vSku == null)
                {
                    vSku = new Microsoft.Azure.Management.Compute.Models.Sku();
                }
                vSku.Capacity = this.SkuCapacity;
            }

            if (this.PlanName != null)
            {
                if (vPlan == null)
                {
                    vPlan = new Microsoft.Azure.Management.Compute.Models.Plan();
                }
                vPlan.Name = this.PlanName;
            }

            if (this.PlanPublisher != null)
            {
                if (vPlan == null)
                {
                    vPlan = new Microsoft.Azure.Management.Compute.Models.Plan();
                }
                vPlan.Publisher = this.PlanPublisher;
            }

            if (this.PlanProduct != null)
            {
                if (vPlan == null)
                {
                    vPlan = new Microsoft.Azure.Management.Compute.Models.Plan();
                }
                vPlan.Product = this.PlanProduct;
            }

            if (this.PlanPromotionCode != null)
            {
                if (vPlan == null)
                {
                    vPlan = new Microsoft.Azure.Management.Compute.Models.Plan();
                }
                vPlan.PromotionCode = this.PlanPromotionCode;
            }

            if (this.UpgradePolicyMode != null)
            {
                if (vUpgradePolicy == null)
                {
                    vUpgradePolicy = new Microsoft.Azure.Management.Compute.Models.UpgradePolicy();
                }
                vUpgradePolicy.Mode = this.UpgradePolicyMode;
            }

            if (this.RollingUpgradePolicy != null)
            {
                if (vUpgradePolicy == null)
                {
                    vUpgradePolicy = new Microsoft.Azure.Management.Compute.Models.UpgradePolicy();
                }
                vUpgradePolicy.RollingUpgradePolicy = this.RollingUpgradePolicy;
            }

            if (this.AutoOSUpgrade.IsPresent)
            {
                if (vUpgradePolicy == null)
                {
                    vUpgradePolicy = new Microsoft.Azure.Management.Compute.Models.UpgradePolicy();
                }
                vUpgradePolicy.AutomaticOSUpgrade = true;
            }

            if (this.OsProfile != null)
            {
                if (vVirtualMachineProfile == null)
                {
                    vVirtualMachineProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMProfile();
                }
                vVirtualMachineProfile.OsProfile = this.OsProfile;
            }

            if (this.StorageProfile != null)
            {
                if (vVirtualMachineProfile == null)
                {
                    vVirtualMachineProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMProfile();
                }
                vVirtualMachineProfile.StorageProfile = this.StorageProfile;
            }

            if (this.HealthProbeId != null)
            {
                if (vVirtualMachineProfile == null)
                {
                    vVirtualMachineProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMProfile();
                }
                if (vVirtualMachineProfile.NetworkProfile == null)
                {
                    vVirtualMachineProfile.NetworkProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetNetworkProfile();
                }
                if (vVirtualMachineProfile.NetworkProfile.HealthProbe == null)
                {
                    vVirtualMachineProfile.NetworkProfile.HealthProbe = new Microsoft.Azure.Management.Compute.Models.ApiEntityReference();
                }
                vVirtualMachineProfile.NetworkProfile.HealthProbe.Id = this.HealthProbeId;
            }

            if (this.NetworkInterfaceConfiguration != null)
            {
                if (vVirtualMachineProfile == null)
                {
                    vVirtualMachineProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMProfile();
                }
                if (vVirtualMachineProfile.NetworkProfile == null)
                {
                    vVirtualMachineProfile.NetworkProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetNetworkProfile();
                }
                vVirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations = this.NetworkInterfaceConfiguration;
            }

            if (this.BootDiagnostic != null)
            {
                if (vVirtualMachineProfile == null)
                {
                    vVirtualMachineProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMProfile();
                }
                if (vVirtualMachineProfile.DiagnosticsProfile == null)
                {
                    vVirtualMachineProfile.DiagnosticsProfile = new Microsoft.Azure.Management.Compute.Models.DiagnosticsProfile();
                }
                vVirtualMachineProfile.DiagnosticsProfile.BootDiagnostics = this.BootDiagnostic;
            }

            if (this.Extension != null)
            {
                if (vVirtualMachineProfile == null)
                {
                    vVirtualMachineProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMProfile();
                }
                if (vVirtualMachineProfile.ExtensionProfile == null)
                {
                    vVirtualMachineProfile.ExtensionProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetExtensionProfile();
                }
                vVirtualMachineProfile.ExtensionProfile.Extensions = this.Extension;
            }

            if (this.LicenseType != null)
            {
                if (vVirtualMachineProfile == null)
                {
                    vVirtualMachineProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMProfile();
                }
                vVirtualMachineProfile.LicenseType = this.LicenseType;
            }

            if (this.AssignIdentity.IsPresent)
            {
                if (vIdentity == null)
                {
                    vIdentity = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetIdentity();
                }
                vIdentity.Type = ResourceIdentityType.SystemAssigned;
            }


            var vVirtualMachineScaleSet = new PSVirtualMachineScaleSet
            {
                Overprovision        = this.Overprovision,
                SinglePlacementGroup = this.SinglePlacementGroup,
                Zones                 = this.Zone,
                Location              = this.Location,
                Tags                  = (this.Tag == null) ? null : this.Tag.Cast <DictionaryEntry>().ToDictionary(ht => (string)ht.Key, ht => (string)ht.Value),
                Sku                   = vSku,
                Plan                  = vPlan,
                UpgradePolicy         = vUpgradePolicy,
                VirtualMachineProfile = vVirtualMachineProfile,
                Identity              = vIdentity,
            };

            WriteObject(vVirtualMachineScaleSet);
        }
        protected override void ProcessRecord()
        {
            // Sku
            Microsoft.Azure.Management.Compute.Models.Sku vSku = null;

            // UpgradePolicy
            Microsoft.Azure.Management.Compute.Models.UpgradePolicy vUpgradePolicy = null;

            // VirtualMachineProfile
            Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMProfile vVirtualMachineProfile = null;

            if (this.SkuName != null)
            {
                if (vSku == null)
                {
                    vSku = new Microsoft.Azure.Management.Compute.Models.Sku();
                }
                vSku.Name = this.SkuName;
            }

            if (this.SkuTier != null)
            {
                if (vSku == null)
                {
                    vSku = new Microsoft.Azure.Management.Compute.Models.Sku();
                }
                vSku.Tier = this.SkuTier;
            }

            if (this.SkuCapacity != null)
            {
                if (vSku == null)
                {
                    vSku = new Microsoft.Azure.Management.Compute.Models.Sku();
                }
                vSku.Capacity = this.SkuCapacity;
            }

            if (this.UpgradePolicyMode != null)
            {
                if (vUpgradePolicy == null)
                {
                    vUpgradePolicy = new Microsoft.Azure.Management.Compute.Models.UpgradePolicy();
                }
                vUpgradePolicy.Mode = this.UpgradePolicyMode;
            }

            if (this.OsProfile != null)
            {
                if (vVirtualMachineProfile == null)
                {
                    vVirtualMachineProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMProfile();
                }
                vVirtualMachineProfile.OsProfile = this.OsProfile;
            }

            if (this.StorageProfile != null)
            {
                if (vVirtualMachineProfile == null)
                {
                    vVirtualMachineProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMProfile();
                }
                vVirtualMachineProfile.StorageProfile = this.StorageProfile;
            }

            if (this.NetworkInterfaceConfiguration != null)
            {
                if (vVirtualMachineProfile == null)
                {
                    vVirtualMachineProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMProfile();
                }
                if (vVirtualMachineProfile.NetworkProfile == null)
                {
                    vVirtualMachineProfile.NetworkProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetNetworkProfile();
                }
                vVirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations = this.NetworkInterfaceConfiguration;
            }

            if (this.Extension != null)
            {
                if (vVirtualMachineProfile == null)
                {
                    vVirtualMachineProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMProfile();
                }
                if (vVirtualMachineProfile.ExtensionProfile == null)
                {
                    vVirtualMachineProfile.ExtensionProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetExtensionProfile();
                }
                vVirtualMachineProfile.ExtensionProfile.Extensions = this.Extension;
            }


            var vVirtualMachineScaleSet = new VirtualMachineScaleSet
            {
                OverProvision = this.OverProvision,
                Location = this.Location,
                Tags = (this.Tag == null) ? null : this.Tag.Cast<DictionaryEntry>().ToDictionary(ht => (string)ht.Key, ht => (string)ht.Value),
                Sku = vSku,
                UpgradePolicy = vUpgradePolicy,
                VirtualMachineProfile = vVirtualMachineProfile,
            };

            WriteObject(vVirtualMachineScaleSet);
        }
        private void Run()
        {
            // Sku
            Microsoft.Azure.Management.Compute.Models.Sku vSku = null;

            // Plan
            Microsoft.Azure.Management.Compute.Models.Plan vPlan = null;

            // UpgradePolicy
            Microsoft.Azure.Management.Compute.Models.UpgradePolicy vUpgradePolicy = null;

            // VirtualMachineProfile
            Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMProfile vVirtualMachineProfile = null;

            // Identity
            Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetIdentity vIdentity = null;

            if (this.MyInvocation.BoundParameters.ContainsKey("SkuName"))
            {
                if (vSku == null)
                {
                    vSku = new Microsoft.Azure.Management.Compute.Models.Sku();
                }
                vSku.Name = this.SkuName;
            }

            if (this.MyInvocation.BoundParameters.ContainsKey("SkuTier"))
            {
                if (vSku == null)
                {
                    vSku = new Microsoft.Azure.Management.Compute.Models.Sku();
                }
                vSku.Tier = this.SkuTier;
            }

            if (this.MyInvocation.BoundParameters.ContainsKey("SkuCapacity"))
            {
                if (vSku == null)
                {
                    vSku = new Microsoft.Azure.Management.Compute.Models.Sku();
                }
                vSku.Capacity = this.SkuCapacity;
            }

            if (this.MyInvocation.BoundParameters.ContainsKey("PlanName"))
            {
                if (vPlan == null)
                {
                    vPlan = new Microsoft.Azure.Management.Compute.Models.Plan();
                }
                vPlan.Name = this.PlanName;
            }

            if (this.MyInvocation.BoundParameters.ContainsKey("PlanPublisher"))
            {
                if (vPlan == null)
                {
                    vPlan = new Microsoft.Azure.Management.Compute.Models.Plan();
                }
                vPlan.Publisher = this.PlanPublisher;
            }

            if (this.MyInvocation.BoundParameters.ContainsKey("PlanProduct"))
            {
                if (vPlan == null)
                {
                    vPlan = new Microsoft.Azure.Management.Compute.Models.Plan();
                }
                vPlan.Product = this.PlanProduct;
            }

            if (this.MyInvocation.BoundParameters.ContainsKey("PlanPromotionCode"))
            {
                if (vPlan == null)
                {
                    vPlan = new Microsoft.Azure.Management.Compute.Models.Plan();
                }
                vPlan.PromotionCode = this.PlanPromotionCode;
            }

            if (this.MyInvocation.BoundParameters.ContainsKey("UpgradePolicyMode"))
            {
                if (vUpgradePolicy == null)
                {
                    vUpgradePolicy = new Microsoft.Azure.Management.Compute.Models.UpgradePolicy();
                }
                vUpgradePolicy.Mode = this.UpgradePolicyMode;
            }

            if (this.MyInvocation.BoundParameters.ContainsKey("RollingUpgradePolicy"))
            {
                if (vUpgradePolicy == null)
                {
                    vUpgradePolicy = new Microsoft.Azure.Management.Compute.Models.UpgradePolicy();
                }
                vUpgradePolicy.RollingUpgradePolicy = this.RollingUpgradePolicy;
            }

            if (vUpgradePolicy == null)
            {
                vUpgradePolicy = new Microsoft.Azure.Management.Compute.Models.UpgradePolicy();
            }
            vUpgradePolicy.AutomaticOSUpgrade = this.AutoOSUpgrade.IsPresent;

            if (this.MyInvocation.BoundParameters.ContainsKey("DisableAutoRollback"))
            {
                if (vUpgradePolicy == null)
                {
                    vUpgradePolicy = new Microsoft.Azure.Management.Compute.Models.UpgradePolicy();
                }
                if (vUpgradePolicy.AutoOSUpgradePolicy == null)
                {
                    vUpgradePolicy.AutoOSUpgradePolicy = new Microsoft.Azure.Management.Compute.Models.AutoOSUpgradePolicy();
                }
                vUpgradePolicy.AutoOSUpgradePolicy.DisableAutoRollback = this.DisableAutoRollback;
            }

            if (this.MyInvocation.BoundParameters.ContainsKey("OsProfile"))
            {
                if (vVirtualMachineProfile == null)
                {
                    vVirtualMachineProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMProfile();
                }
                vVirtualMachineProfile.OsProfile = this.OsProfile;
            }

            if (this.MyInvocation.BoundParameters.ContainsKey("StorageProfile"))
            {
                if (vVirtualMachineProfile == null)
                {
                    vVirtualMachineProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMProfile();
                }
                vVirtualMachineProfile.StorageProfile = this.StorageProfile;
            }

            if (this.MyInvocation.BoundParameters.ContainsKey("HealthProbeId"))
            {
                if (vVirtualMachineProfile == null)
                {
                    vVirtualMachineProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMProfile();
                }
                if (vVirtualMachineProfile.NetworkProfile == null)
                {
                    vVirtualMachineProfile.NetworkProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetNetworkProfile();
                }
                if (vVirtualMachineProfile.NetworkProfile.HealthProbe == null)
                {
                    vVirtualMachineProfile.NetworkProfile.HealthProbe = new Microsoft.Azure.Management.Compute.Models.ApiEntityReference();
                }
                vVirtualMachineProfile.NetworkProfile.HealthProbe.Id = this.HealthProbeId;
            }

            if (this.MyInvocation.BoundParameters.ContainsKey("NetworkInterfaceConfiguration"))
            {
                if (vVirtualMachineProfile == null)
                {
                    vVirtualMachineProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMProfile();
                }
                if (vVirtualMachineProfile.NetworkProfile == null)
                {
                    vVirtualMachineProfile.NetworkProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetNetworkProfile();
                }
                vVirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations = this.NetworkInterfaceConfiguration;
            }

            if (this.MyInvocation.BoundParameters.ContainsKey("BootDiagnostic"))
            {
                if (vVirtualMachineProfile == null)
                {
                    vVirtualMachineProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMProfile();
                }
                if (vVirtualMachineProfile.DiagnosticsProfile == null)
                {
                    vVirtualMachineProfile.DiagnosticsProfile = new Microsoft.Azure.Management.Compute.Models.DiagnosticsProfile();
                }
                vVirtualMachineProfile.DiagnosticsProfile.BootDiagnostics = this.BootDiagnostic;
            }

            if (this.MyInvocation.BoundParameters.ContainsKey("Extension"))
            {
                if (vVirtualMachineProfile == null)
                {
                    vVirtualMachineProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMProfile();
                }
                if (vVirtualMachineProfile.ExtensionProfile == null)
                {
                    vVirtualMachineProfile.ExtensionProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetExtensionProfile();
                }
                vVirtualMachineProfile.ExtensionProfile.Extensions = this.Extension;
            }

            if (this.MyInvocation.BoundParameters.ContainsKey("LicenseType"))
            {
                if (vVirtualMachineProfile == null)
                {
                    vVirtualMachineProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMProfile();
                }
                vVirtualMachineProfile.LicenseType = this.LicenseType;
            }

            if (this.MyInvocation.BoundParameters.ContainsKey("Priority"))
            {
                if (vVirtualMachineProfile == null)
                {
                    vVirtualMachineProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMProfile();
                }
                vVirtualMachineProfile.Priority = this.Priority;
            }

            if (this.AssignIdentity.IsPresent)
            {
                if (vIdentity == null)
                {
                    vIdentity = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetIdentity();
                }
                vIdentity.Type = ResourceIdentityType.SystemAssigned;
            }

            if (this.MyInvocation.BoundParameters.ContainsKey("IdentityType"))
            {
                if (vIdentity == null)
                {
                    vIdentity = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetIdentity();
                }
                vIdentity.Type = this.IdentityType;
            }

            if (this.MyInvocation.BoundParameters.ContainsKey("IdentityId"))
            {
                if (vIdentity == null)
                {
                    vIdentity = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetIdentity();
                }
                vIdentity.IdentityIds = this.IdentityId;
            }

            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);
        }
Example #5
0
        private void Run()
        {
            // Sku
            Microsoft.Azure.Management.Compute.Models.Sku vSku = null;

            // Plan
            Microsoft.Azure.Management.Compute.Models.Plan vPlan = null;

            // UpgradePolicy
            Microsoft.Azure.Management.Compute.Models.UpgradePolicy vUpgradePolicy = null;

            // VirtualMachineProfile
            Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMProfile vVirtualMachineProfile = null;

            if (this.SkuName != null)
            {
                if (vSku == null)
                {
                    vSku = new Microsoft.Azure.Management.Compute.Models.Sku();
                }
                vSku.Name = this.SkuName;
            }

            if (this.SkuTier != null)
            {
                if (vSku == null)
                {
                    vSku = new Microsoft.Azure.Management.Compute.Models.Sku();
                }
                vSku.Tier = this.SkuTier;
            }

            if (this.SkuCapacity != null)
            {
                if (vSku == null)
                {
                    vSku = new Microsoft.Azure.Management.Compute.Models.Sku();
                }
                vSku.Capacity = this.SkuCapacity;
            }

            if (this.PlanName != null)
            {
                if (vPlan == null)
                {
                    vPlan = new Microsoft.Azure.Management.Compute.Models.Plan();
                }
                vPlan.Name = this.PlanName;
            }

            if (this.PlanPublisher != null)
            {
                if (vPlan == null)
                {
                    vPlan = new Microsoft.Azure.Management.Compute.Models.Plan();
                }
                vPlan.Publisher = this.PlanPublisher;
            }

            if (this.PlanProduct != null)
            {
                if (vPlan == null)
                {
                    vPlan = new Microsoft.Azure.Management.Compute.Models.Plan();
                }
                vPlan.Product = this.PlanProduct;
            }

            if (this.PlanPromotionCode != null)
            {
                if (vPlan == null)
                {
                    vPlan = new Microsoft.Azure.Management.Compute.Models.Plan();
                }
                vPlan.PromotionCode = this.PlanPromotionCode;
            }

            if (this.UpgradePolicyMode != null)
            {
                if (vUpgradePolicy == null)
                {
                    vUpgradePolicy = new Microsoft.Azure.Management.Compute.Models.UpgradePolicy();
                }
                vUpgradePolicy.Mode = this.UpgradePolicyMode;
            }

            if (this.OsProfile != null)
            {
                if (vVirtualMachineProfile == null)
                {
                    vVirtualMachineProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMProfile();
                }
                vVirtualMachineProfile.OsProfile = this.OsProfile;
            }

            if (this.StorageProfile != null)
            {
                if (vVirtualMachineProfile == null)
                {
                    vVirtualMachineProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMProfile();
                }
                vVirtualMachineProfile.StorageProfile = this.StorageProfile;
            }

            if (this.NetworkInterfaceConfiguration != null)
            {
                if (vVirtualMachineProfile == null)
                {
                    vVirtualMachineProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMProfile();
                }
                if (vVirtualMachineProfile.NetworkProfile == null)
                {
                    vVirtualMachineProfile.NetworkProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetNetworkProfile();
                }
                vVirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations = this.NetworkInterfaceConfiguration;
            }

            if (this.Extension != null)
            {
                if (vVirtualMachineProfile == null)
                {
                    vVirtualMachineProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMProfile();
                }
                if (vVirtualMachineProfile.ExtensionProfile == null)
                {
                    vVirtualMachineProfile.ExtensionProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetExtensionProfile();
                }
                vVirtualMachineProfile.ExtensionProfile.Extensions = this.Extension;
            }


            var vVirtualMachineScaleSet = new VirtualMachineScaleSet
            {
                Overprovision        = this.Overprovision,
                SinglePlacementGroup = this.SinglePlacementGroup,
                Location             = this.Location,
                Tags                  = (this.Tag == null) ? null : this.Tag.Cast <DictionaryEntry>().ToDictionary(ht => (string)ht.Key, ht => (string)ht.Value),
                Sku                   = vSku,
                Plan                  = vPlan,
                UpgradePolicy         = vUpgradePolicy,
                VirtualMachineProfile = vVirtualMachineProfile,
            };

            WriteObject(vVirtualMachineScaleSet);
        }
 /// <summary>
 /// Initializes a new instance of the VirtualMachineScaleSetVM class.
 /// </summary>
 /// <param name="location">Resource location</param>
 /// <param name="id">Resource Id</param>
 /// <param name="name">Resource name</param>
 /// <param name="type">Resource type</param>
 /// <param name="tags">Resource tags</param>
 /// <param name="instanceId">The virtual machine instance ID.</param>
 /// <param name="sku">The virtual machine SKU.</param>
 /// <param name="latestModelApplied">Specifies whether the latest model
 /// has been applied to the virtual machine.</param>
 /// <param name="vmId">Azure VM unique ID.</param>
 /// <param name="instanceView">The virtual machine instance
 /// view.</param>
 /// <param name="hardwareProfile">Specifies the hardware settings for
 /// the virtual machine.</param>
 /// <param name="storageProfile">Specifies the storage settings for the
 /// virtual machine disks.</param>
 /// <param name="additionalCapabilities">Specifies additional
 /// capabilities enabled or disabled on the virtual machine in the
 /// scale set. For instance: whether the virtual machine has the
 /// capability to support attaching managed data disks with
 /// UltraSSD_LRS storage account type.</param>
 /// <param name="osProfile">Specifies the operating system settings for
 /// the virtual machine.</param>
 /// <param name="securityProfile">Specifies the Security related
 /// profile settings for the virtual machine.</param>
 /// <param name="networkProfile">Specifies the network interfaces of
 /// the virtual machine.</param>
 /// <param name="networkProfileConfiguration">Specifies the network
 /// profile configuration of the virtual machine.</param>
 /// <param name="diagnosticsProfile">Specifies the boot diagnostic
 /// settings state. &lt;br&gt;&lt;br&gt;Minimum api-version:
 /// 2015-06-15.</param>
 /// <param name="availabilitySet">Specifies information about the
 /// availability set that the virtual machine should be assigned to.
 /// Virtual machines specified in the same availability set are
 /// allocated to different nodes to maximize availability. For more
 /// information about availability sets, see [Availability sets
 /// overview](https://docs.microsoft.com/azure/virtual-machines/availability-set-overview).
 /// &lt;br&gt;&lt;br&gt; For more information on Azure planned
 /// maintenance, see [Maintenance and updates for Virtual Machines in
 /// Azure](https://docs.microsoft.com/azure/virtual-machines/maintenance-and-updates)
 /// &lt;br&gt;&lt;br&gt; Currently, a VM can only be added to
 /// availability set at creation time. An existing VM cannot be added
 /// to an availability set.</param>
 /// <param name="provisioningState">The provisioning state, which only
 /// appears in the response.</param>
 /// <param name="licenseType">Specifies that the image or disk that is
 /// being used was licensed on-premises. &lt;br&gt;&lt;br&gt; Possible
 /// values for Windows Server operating system are:
 /// &lt;br&gt;&lt;br&gt; Windows_Client &lt;br&gt;&lt;br&gt;
 /// Windows_Server &lt;br&gt;&lt;br&gt; Possible values for Linux
 /// Server operating system are: &lt;br&gt;&lt;br&gt; RHEL_BYOS (for
 /// RHEL) &lt;br&gt;&lt;br&gt; SLES_BYOS (for SUSE)
 /// &lt;br&gt;&lt;br&gt; For more information, see [Azure Hybrid Use
 /// Benefit for Windows
 /// Server](https://docs.microsoft.com/azure/virtual-machines/windows/hybrid-use-benefit-licensing)
 /// &lt;br&gt;&lt;br&gt; [Azure Hybrid Use Benefit for Linux
 /// Server](https://docs.microsoft.com/azure/virtual-machines/linux/azure-hybrid-benefit-linux)
 /// &lt;br&gt;&lt;br&gt; Minimum api-version: 2015-06-15</param>
 /// <param name="modelDefinitionApplied">Specifies whether the model
 /// applied to the virtual machine is the model of the virtual machine
 /// scale set or the customized model for the virtual machine.</param>
 /// <param name="protectionPolicy">Specifies the protection policy of
 /// the virtual machine.</param>
 /// <param name="userData">UserData for the VM, which must be base-64
 /// encoded. Customer should not pass any secrets in here.
 /// &lt;br&gt;&lt;br&gt;Minimum api-version: 2021-03-01</param>
 /// <param name="plan">Specifies information about the marketplace
 /// image used to create the virtual machine. This element is only used
 /// for marketplace images. Before you can use a marketplace image from
 /// an API, you must enable the image for programmatic use.  In the
 /// Azure portal, find the marketplace image that you want to use and
 /// then click **Want to deploy programmatically, Get Started -&gt;**.
 /// Enter any required information and then click **Save**.</param>
 /// <param name="resources">The virtual machine child extension
 /// resources.</param>
 /// <param name="zones">The virtual machine zones.</param>
 public VirtualMachineScaleSetVM(string location, string id = default(string), string name = default(string), string type = default(string), IDictionary <string, string> tags = default(IDictionary <string, string>), string instanceId = default(string), Sku sku = default(Sku), bool?latestModelApplied = default(bool?), string vmId = default(string), VirtualMachineScaleSetVMInstanceView instanceView = default(VirtualMachineScaleSetVMInstanceView), HardwareProfile hardwareProfile = default(HardwareProfile), StorageProfile storageProfile = default(StorageProfile), AdditionalCapabilities additionalCapabilities = default(AdditionalCapabilities), OSProfile osProfile = default(OSProfile), SecurityProfile securityProfile = default(SecurityProfile), NetworkProfile networkProfile = default(NetworkProfile), VirtualMachineScaleSetVMNetworkProfileConfiguration networkProfileConfiguration = default(VirtualMachineScaleSetVMNetworkProfileConfiguration), DiagnosticsProfile diagnosticsProfile = default(DiagnosticsProfile), SubResource availabilitySet = default(SubResource), string provisioningState = default(string), string licenseType = default(string), string modelDefinitionApplied = default(string), VirtualMachineScaleSetVMProtectionPolicy protectionPolicy = default(VirtualMachineScaleSetVMProtectionPolicy), string userData = default(string), Plan plan = default(Plan), IList <VirtualMachineExtension> resources = default(IList <VirtualMachineExtension>), IList <string> zones = default(IList <string>))
     : base(location, id, name, type, tags)
 {
     InstanceId                  = instanceId;
     Sku                         = sku;
     LatestModelApplied          = latestModelApplied;
     VmId                        = vmId;
     InstanceView                = instanceView;
     HardwareProfile             = hardwareProfile;
     StorageProfile              = storageProfile;
     AdditionalCapabilities      = additionalCapabilities;
     OsProfile                   = osProfile;
     SecurityProfile             = securityProfile;
     NetworkProfile              = networkProfile;
     NetworkProfileConfiguration = networkProfileConfiguration;
     DiagnosticsProfile          = diagnosticsProfile;
     AvailabilitySet             = availabilitySet;
     ProvisioningState           = provisioningState;
     LicenseType                 = licenseType;
     ModelDefinitionApplied      = modelDefinitionApplied;
     ProtectionPolicy            = protectionPolicy;
     UserData                    = userData;
     Plan                        = plan;
     Resources                   = resources;
     Zones                       = zones;
     CustomInit();
 }
 /// <summary>
 /// Initializes a new instance of the VirtualMachineScaleSet class.
 /// </summary>
 /// <param name="location">Resource location</param>
 /// <param name="id">Resource Id</param>
 /// <param name="name">Resource name</param>
 /// <param name="type">Resource type</param>
 /// <param name="tags">Resource tags</param>
 /// <param name="sku">The virtual machine scale set sku.</param>
 /// <param name="plan">Specifies information about the marketplace
 /// image used to create the virtual machine. This element is only used
 /// for marketplace images. Before you can use a marketplace image from
 /// an API, you must enable the image for programmatic use.  In the
 /// Azure portal, find the marketplace image that you want to use and
 /// then click **Want to deploy programmatically, Get Started -&gt;**.
 /// Enter any required information and then click **Save**.</param>
 /// <param name="upgradePolicy">The upgrade policy.</param>
 /// <param name="automaticRepairsPolicy">Policy for automatic
 /// repairs.</param>
 /// <param name="virtualMachineProfile">The virtual machine
 /// profile.</param>
 /// <param name="provisioningState">The provisioning state, which only
 /// appears in the response.</param>
 /// <param name="overprovision">Specifies whether the Virtual Machine
 /// Scale Set should be overprovisioned.</param>
 /// <param name="doNotRunExtensionsOnOverprovisionedVMs">When
 /// Overprovision is enabled, extensions are launched only on the
 /// requested number of VMs which are finally kept. This property will
 /// hence ensure that the extensions do not run on the extra
 /// overprovisioned VMs.</param>
 /// <param name="uniqueId">Specifies the ID which uniquely identifies a
 /// Virtual Machine Scale Set.</param>
 /// <param name="singlePlacementGroup">When true this limits the scale
 /// set to a single placement group, of max size 100 virtual machines.
 /// NOTE: If singlePlacementGroup is true, it may be modified to false.
 /// However, if singlePlacementGroup is false, it may not be modified
 /// to true.</param>
 /// <param name="zoneBalance">Whether to force strictly even Virtual
 /// Machine distribution cross x-zones in case there is zone outage.
 /// zoneBalance property can only be set if the zones property of the
 /// scale set contains more than one zone. If there are no zones or
 /// only one zone specified, then zoneBalance property should not be
 /// set.</param>
 /// <param name="platformFaultDomainCount">Fault Domain count for each
 /// placement group.</param>
 /// <param name="proximityPlacementGroup">Specifies information about
 /// the proximity placement group that the virtual machine scale set
 /// should be assigned to. &lt;br&gt;&lt;br&gt;Minimum api-version:
 /// 2018-04-01.</param>
 /// <param name="hostGroup">Specifies information about the dedicated
 /// host group that the virtual machine scale set resides in.
 /// &lt;br&gt;&lt;br&gt;Minimum api-version: 2020-06-01.</param>
 /// <param name="additionalCapabilities">Specifies additional
 /// capabilities enabled or disabled on the Virtual Machines in the
 /// Virtual Machine Scale Set. For instance: whether the Virtual
 /// Machines have the capability to support attaching managed data
 /// disks with UltraSSD_LRS storage account type.</param>
 /// <param name="scaleInPolicy">Specifies the policies applied when
 /// scaling in Virtual Machines in the Virtual Machine Scale
 /// Set.</param>
 /// <param name="orchestrationMode">Specifies the orchestration mode
 /// for the virtual machine scale set. Possible values include:
 /// 'Uniform', 'Flexible'</param>
 /// <param name="spotRestorePolicy">Specifies the Spot Restore
 /// properties for the virtual machine scale set.</param>
 /// <param name="timeCreated">Specifies the time at which the Virtual
 /// Machine Scale Set resource was created.&lt;br&gt;&lt;br&gt;Minimum
 /// api-version: 2021-11-01.</param>
 /// <param name="identity">The identity of the virtual machine scale
 /// set, if configured.</param>
 /// <param name="zones">The virtual machine scale set zones. NOTE:
 /// Availability zones can only be set when you create the scale
 /// set</param>
 /// <param name="extendedLocation">The extended location of the Virtual
 /// Machine Scale Set.</param>
 public VirtualMachineScaleSet(string location, string id = default(string), string name = default(string), string type = default(string), IDictionary <string, string> tags = default(IDictionary <string, string>), Sku sku = default(Sku), Plan plan = default(Plan), UpgradePolicy upgradePolicy = default(UpgradePolicy), AutomaticRepairsPolicy automaticRepairsPolicy = default(AutomaticRepairsPolicy), VirtualMachineScaleSetVMProfile virtualMachineProfile = default(VirtualMachineScaleSetVMProfile), string provisioningState = default(string), bool?overprovision = default(bool?), bool?doNotRunExtensionsOnOverprovisionedVMs = default(bool?), string uniqueId = default(string), bool?singlePlacementGroup = default(bool?), bool?zoneBalance = default(bool?), int?platformFaultDomainCount = default(int?), SubResource proximityPlacementGroup = default(SubResource), SubResource hostGroup = default(SubResource), AdditionalCapabilities additionalCapabilities = default(AdditionalCapabilities), ScaleInPolicy scaleInPolicy = default(ScaleInPolicy), string orchestrationMode = default(string), SpotRestorePolicy spotRestorePolicy = default(SpotRestorePolicy), System.DateTime?timeCreated = default(System.DateTime?), VirtualMachineScaleSetIdentity identity = default(VirtualMachineScaleSetIdentity), IList <string> zones = default(IList <string>), ExtendedLocation extendedLocation = default(ExtendedLocation))
     : base(location, id, name, type, tags)
 {
     Sku                    = sku;
     Plan                   = plan;
     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;
     SpotRestorePolicy        = spotRestorePolicy;
     TimeCreated              = timeCreated;
     Identity                 = identity;
     Zones            = zones;
     ExtendedLocation = extendedLocation;
     CustomInit();
 }
Example #8
0
 /// <summary>
 /// Initializes a new instance of the VirtualMachineScaleSet class.
 /// </summary>
 /// <param name="location">Resource location</param>
 /// <param name="id">Resource Id</param>
 /// <param name="name">Resource name</param>
 /// <param name="type">Resource type</param>
 /// <param name="tags">Resource tags</param>
 /// <param name="sku">The virtual machine scale set sku.</param>
 /// <param name="plan">Specifies information about the marketplace
 /// image used to create the virtual machine. This element is only used
 /// for marketplace images. Before you can use a marketplace image from
 /// an API, you must enable the image for programmatic use.  In the
 /// Azure portal, find the marketplace image that you want to use and
 /// then click **Want to deploy programmatically, Get Started -&gt;**.
 /// Enter any required information and then click **Save**.</param>
 /// <param name="upgradePolicy">The upgrade policy.</param>
 /// <param name="automaticRepairsPolicy">Policy for automatic
 /// repairs.</param>
 /// <param name="virtualMachineProfile">The virtual machine
 /// profile.</param>
 /// <param name="provisioningState">The provisioning state, which only
 /// appears in the response.</param>
 /// <param name="overprovision">Specifies whether the Virtual Machine
 /// Scale Set should be overprovisioned.</param>
 /// <param name="doNotRunExtensionsOnOverprovisionedVMs">When
 /// Overprovision is enabled, extensions are launched only on the
 /// requested number of VMs which are finally kept. This property will
 /// hence ensure that the extensions do not run on the extra
 /// overprovisioned VMs.</param>
 /// <param name="uniqueId">Specifies the ID which uniquely identifies a
 /// Virtual Machine Scale Set.</param>
 /// <param name="singlePlacementGroup">When true this limits the scale
 /// set to a single placement group, of max size 100 virtual machines.
 /// NOTE: If singlePlacementGroup is true, it may be modified to false.
 /// However, if singlePlacementGroup is false, it may not be modified
 /// to true.</param>
 /// <param name="zoneBalance">Whether to force strictly even Virtual
 /// Machine distribution cross x-zones in case there is zone
 /// outage.</param>
 /// <param name="platformFaultDomainCount">Fault Domain count for each
 /// placement group.</param>
 /// <param name="proximityPlacementGroup">Specifies information about
 /// the proximity placement group that the virtual machine scale set
 /// should be assigned to. &lt;br&gt;&lt;br&gt;Minimum api-version:
 /// 2018-04-01.</param>
 /// <param name="hostGroup">Specifies information about the dedicated
 /// host group that the virtual machine scale set resides in.
 /// &lt;br&gt;&lt;br&gt;Minimum api-version: 2020-06-01.</param>
 /// <param name="additionalCapabilities">Specifies additional
 /// capabilities enabled or disabled on the Virtual Machines in the
 /// Virtual Machine Scale Set. For instance: whether the Virtual
 /// Machines have the capability to support attaching managed data
 /// disks with UltraSSD_LRS storage account type.</param>
 /// <param name="scaleInPolicy">Specifies the scale-in policy that
 /// decides which virtual machines are chosen for removal when a
 /// Virtual Machine Scale Set is scaled-in.</param>
 /// <param name="identity">The identity of the virtual machine scale
 /// set, if configured.</param>
 public VirtualMachineScaleSet(string location, string id, string name, string type, IDictionary <string, string> tags, Sku sku, Plan plan, UpgradePolicy upgradePolicy, AutomaticRepairsPolicy automaticRepairsPolicy, VirtualMachineScaleSetVMProfile virtualMachineProfile, string provisioningState, bool?overprovision, bool?doNotRunExtensionsOnOverprovisionedVMs, string uniqueId, bool?singlePlacementGroup, bool?zoneBalance, int?platformFaultDomainCount, SubResource proximityPlacementGroup, SubResource hostGroup, AdditionalCapabilities additionalCapabilities, ScaleInPolicy scaleInPolicy, VirtualMachineScaleSetIdentity identity)
     : base(location, id, name, type, tags)
 {
     Sku                    = sku;
     Plan                   = plan;
     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;
     Identity                 = identity;
     CustomInit();
 }