/// <summary>
 /// Initializes a new instance of the NodeTypeUpdateParameters class.
 /// </summary>
 /// <param name="vmInstanceCount">The number of nodes in the node type.
 /// This count should match the capacity property in the corresponding
 /// VirtualMachineScaleSet resource.</param>
 /// <param name="placementProperties">The placement tags applied to
 /// nodes in the node type, which can be used to indicate where certain
 /// services (workload) should run.</param>
 /// <param name="capacities">The capacity tags applied to the nodes in
 /// the node type, the cluster resource manager uses these tags to
 /// understand how much resource a node has.</param>
 /// <param name="applicationPorts">The range of ports from which
 /// cluster assigned port to Service Fabric applications.</param>
 /// <param name="ephemeralPorts">The range of ephemeral ports that
 /// nodes in this node type should be configured with.</param>
 /// <param name="vmSecrets">virtual machine secretes.</param>
 /// <param name="vmExtensions">virtual machine extensions.</param>
 /// <param name="tags">Node type update parameters</param>
 public NodeTypeUpdateParameters(int?vmInstanceCount = default(int?), IDictionary <string, string> placementProperties = default(IDictionary <string, string>), IDictionary <string, string> capacities = default(IDictionary <string, string>), EndpointRangeDescription applicationPorts = default(EndpointRangeDescription), EndpointRangeDescription ephemeralPorts = default(EndpointRangeDescription), IList <VaultSecretGroup> vmSecrets = default(IList <VaultSecretGroup>), IList <VMSSExtension> vmExtensions = default(IList <VMSSExtension>), IDictionary <string, string> tags = default(IDictionary <string, string>))
 {
     VmInstanceCount     = vmInstanceCount;
     PlacementProperties = placementProperties;
     Capacities          = capacities;
     ApplicationPorts    = applicationPorts;
     EphemeralPorts      = ephemeralPorts;
     VmSecrets           = vmSecrets;
     VmExtensions        = vmExtensions;
     Tags = tags;
     CustomInit();
 }
 /// <summary>
 /// Initializes a new instance of the NodeTypeDescription class.
 /// </summary>
 /// <param name="name">The name of the node type.</param>
 /// <param name="clientConnectionEndpointPort">The TCP cluster
 /// management endpoint port.</param>
 /// <param name="httpGatewayEndpointPort">The HTTP cluster management
 /// endpoint port.</param>
 /// <param name="isPrimary">The node type on which system services will
 /// run. Only one node type should be marked as primary. Primary node
 /// type cannot be deleted or changed for existing clusters.</param>
 /// <param name="vmInstanceCount">The number of nodes in the node type.
 /// This count should match the capacity property in the corresponding
 /// VirtualMachineScaleSet resource.</param>
 /// <param name="placementProperties">The placement tags applied to
 /// nodes in the node type, which can be used to indicate where certain
 /// services (workload) should run.</param>
 /// <param name="capacities">The capacity tags applied to the nodes in
 /// the node type, the cluster resource manager uses these tags to
 /// understand how much resource a node has.</param>
 /// <param name="durabilityLevel">The durability level of the node
 /// type. Learn about
 /// [DurabilityLevel](https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-cluster-capacity).
 ///
 /// - Bronze - No privileges. This is the default.
 /// - Silver - The infrastructure jobs can be paused for a duration of
 /// 10 minutes per UD.
 /// - Gold - The infrastructure jobs can be paused for a duration of 2
 /// hours per UD. Gold durability can be enabled only on full node VM
 /// skus like D15_V2, G5 etc.
 /// . Possible values include: 'Bronze', 'Silver', 'Gold'</param>
 /// <param name="applicationPorts">The range of ports from which
 /// cluster assigned port to Service Fabric applications.</param>
 /// <param name="ephemeralPorts">The range of empheral ports that nodes
 /// in this node type should be configured with.</param>
 /// <param name="reverseProxyEndpointPort">The endpoint used by reverse
 /// proxy.</param>
 public NodeTypeDescription(string name, int clientConnectionEndpointPort, int httpGatewayEndpointPort, bool isPrimary, int vmInstanceCount, IDictionary <string, string> placementProperties = default(IDictionary <string, string>), IDictionary <string, string> capacities = default(IDictionary <string, string>), string durabilityLevel = default(string), EndpointRangeDescription applicationPorts = default(EndpointRangeDescription), EndpointRangeDescription ephemeralPorts = default(EndpointRangeDescription), int?reverseProxyEndpointPort = default(int?))
 {
     Name = name;
     PlacementProperties          = placementProperties;
     Capacities                   = capacities;
     ClientConnectionEndpointPort = clientConnectionEndpointPort;
     HttpGatewayEndpointPort      = httpGatewayEndpointPort;
     DurabilityLevel              = durabilityLevel;
     ApplicationPorts             = applicationPorts;
     EphemeralPorts               = ephemeralPorts;
     IsPrimary                = isPrimary;
     VmInstanceCount          = vmInstanceCount;
     ReverseProxyEndpointPort = reverseProxyEndpointPort;
     CustomInit();
 }
 /// <summary>
 /// Initializes a new instance of the NodeType class.
 /// </summary>
 /// <param name="isPrimary">The node type on which system services will
 /// run. Only one node type should be marked as primary. Primary node
 /// type cannot be deleted or changed for existing clusters.</param>
 /// <param name="vmInstanceCount">The number of nodes in the node type.
 /// This count should match the capacity property in the corresponding
 /// VirtualMachineScaleSet resource.</param>
 /// <param name="dataDiskSizeGB">Disk size for each vm in the node type
 /// in GBs.</param>
 /// <param name="id">Azure resource identifier.</param>
 /// <param name="name">Azure resource name.</param>
 /// <param name="type">Azure resource type.</param>
 /// <param name="tags">Azure resource tags.</param>
 /// <param name="placementProperties">The placement tags applied to
 /// nodes in the node type, which can be used to indicate where certain
 /// services (workload) should run.</param>
 /// <param name="capacities">The capacity tags applied to the nodes in
 /// the node type, the cluster resource manager uses these tags to
 /// understand how much resource a node has.</param>
 /// <param name="applicationPorts">The range of ports from which
 /// cluster assigned port to Service Fabric applications.</param>
 /// <param name="ephemeralPorts">The range of ephemeral ports that
 /// nodes in this node type should be configured with.</param>
 /// <param name="vmSize">The size of virtual machines in the pool. All
 /// virtual machines in a pool are the same size. For example,
 /// Standard_D3.</param>
 /// <param name="vmImagePublisher">The publisher of the Azure Virtual
 /// Machines Marketplace image. For example, Canonical or
 /// MicrosoftWindowsServer.</param>
 /// <param name="vmImageOffer">The offer type of the Azure Virtual
 /// Machines Marketplace image. For example, UbuntuServer or
 /// WindowsServer.</param>
 /// <param name="vmImageSku">The SKU of the Azure Virtual Machines
 /// Marketplace image. For example, 14.04.0-LTS or
 /// 2012-R2-Datacenter.</param>
 /// <param name="vmImageVersion">The version of the Azure Virtual
 /// Machines Marketplace image. A value of 'latest' can be specified to
 /// select the latest version of an image. If omitted, the default is
 /// 'latest'.</param>
 /// <param name="vmSecrets">virtual machine secretes.</param>
 /// <param name="vmExtensions">virtual machine extensions.</param>
 /// <param name="provisioningState">The provisioning state of the
 /// managed cluster resource. Possible values include: 'None',
 /// 'Creating', 'Created', 'Updating', 'Succeeded', 'Failed',
 /// 'Canceled', 'Deleting', 'Deleted', 'Other'</param>
 public NodeType(bool isPrimary, int vmInstanceCount, int dataDiskSizeGB, string id = default(string), string name = default(string), string type = default(string), IDictionary <string, string> tags = default(IDictionary <string, string>), IDictionary <string, string> placementProperties = default(IDictionary <string, string>), IDictionary <string, string> capacities = default(IDictionary <string, string>), EndpointRangeDescription applicationPorts = default(EndpointRangeDescription), EndpointRangeDescription ephemeralPorts = default(EndpointRangeDescription), string vmSize = default(string), string vmImagePublisher = default(string), string vmImageOffer = default(string), string vmImageSku = default(string), string vmImageVersion = default(string), IList <VaultSecretGroup> vmSecrets = default(IList <VaultSecretGroup>), IList <VMSSExtension> vmExtensions = default(IList <VMSSExtension>), string provisioningState = default(string))
     : base(id, name, type, tags)
 {
     IsPrimary           = isPrimary;
     VmInstanceCount     = vmInstanceCount;
     DataDiskSizeGB      = dataDiskSizeGB;
     PlacementProperties = placementProperties;
     Capacities          = capacities;
     ApplicationPorts    = applicationPorts;
     EphemeralPorts      = ephemeralPorts;
     VmSize            = vmSize;
     VmImagePublisher  = vmImagePublisher;
     VmImageOffer      = vmImageOffer;
     VmImageSku        = vmImageSku;
     VmImageVersion    = vmImageVersion;
     VmSecrets         = vmSecrets;
     VmExtensions      = vmExtensions;
     ProvisioningState = provisioningState;
     CustomInit();
 }