/// <summary>
 /// Initializes a new instance of the InboundNatPoolInner class.
 /// </summary>
 /// <param name="protocol">Possible values include: 'Udp', 'Tcp',
 /// 'All'</param>
 /// <param name="frontendPortRangeStart">The first port number in the
 /// range of external ports that will be used to provide Inbound Nat to
 /// NICs associated with a load balancer. Acceptable values range
 /// between 1 and 65534.</param>
 /// <param name="frontendPortRangeEnd">The last port number in the
 /// range of external ports that will be used to provide Inbound Nat to
 /// NICs associated with a load balancer. Acceptable values range
 /// between 1 and 65535.</param>
 /// <param name="backendPort">The port used for internal connections on
 /// the endpoint. Acceptable values are between 1 and 65535.</param>
 /// <param name="frontendIPConfiguration">A reference to frontend IP
 /// addresses.</param>
 /// <param name="idleTimeoutInMinutes">The timeout for the TCP idle
 /// connection. The value can be set between 4 and 30 minutes. The
 /// default value is 4 minutes. This element is only used when the
 /// protocol is set to TCP.</param>
 /// <param name="enableFloatingIP">Configures a virtual machine's
 /// endpoint for the floating IP capability required to configure a SQL
 /// AlwaysOn Availability Group. This setting is required when using
 /// the SQL AlwaysOn Availability Groups in SQL server. This setting
 /// can't be changed after you create the endpoint.</param>
 /// <param name="provisioningState">Gets the provisioning state of the
 /// PublicIP resource. Possible values are: 'Updating', 'Deleting', and
 /// 'Failed'.</param>
 /// <param name="name">The name of the resource that is unique within a
 /// resource group. This name can be used to access the
 /// resource.</param>
 /// <param name="etag">A unique read-only string that changes whenever
 /// the resource is updated.</param>
 public InboundNatPoolInner(TransportProtocol protocol, int frontendPortRangeStart, int frontendPortRangeEnd, int backendPort, string id = default(string), Management.ResourceManager.Fluent.SubResource frontendIPConfiguration = default(Management.ResourceManager.Fluent.SubResource), int?idleTimeoutInMinutes = default(int?), bool?enableFloatingIP = default(bool?), string provisioningState = default(string), string name = default(string), string etag = default(string))
     : base(id)
 {
     FrontendIPConfiguration = frontendIPConfiguration;
     Protocol = protocol;
     FrontendPortRangeStart = frontendPortRangeStart;
     FrontendPortRangeEnd   = frontendPortRangeEnd;
     BackendPort            = backendPort;
     IdleTimeoutInMinutes   = idleTimeoutInMinutes;
     EnableFloatingIP       = enableFloatingIP;
     ProvisioningState      = provisioningState;
     Name = name;
     Etag = etag;
     CustomInit();
 }
 /// <summary>
 /// Initializes a new instance of the InboundNatRuleInner class.
 /// </summary>
 /// <param name="frontendIPConfiguration">A reference to frontend IP
 /// addresses.</param>
 /// <param name="backendIPConfiguration">A reference to a private IP
 /// address defined on a network interface of a VM. Traffic sent to the
 /// frontend port of each of the frontend IP configurations is
 /// forwarded to the backend IP.</param>
 /// <param name="protocol">Possible values include: 'Udp', 'Tcp',
 /// 'All'</param>
 /// <param name="frontendPort">The port for the external endpoint. Port
 /// numbers for each rule must be unique within the Load Balancer.
 /// Acceptable values range from 1 to 65534.</param>
 /// <param name="backendPort">The port used for the internal endpoint.
 /// Acceptable values range from 1 to 65535.</param>
 /// <param name="idleTimeoutInMinutes">The timeout for the TCP idle
 /// connection. The value can be set between 4 and 30 minutes. The
 /// default value is 4 minutes. This element is only used when the
 /// protocol is set to TCP.</param>
 /// <param name="enableFloatingIP">Configures a virtual machine's
 /// endpoint for the floating IP capability required to configure a SQL
 /// AlwaysOn Availability Group. This setting is required when using
 /// the SQL AlwaysOn Availability Groups in SQL server. This setting
 /// can't be changed after you create the endpoint.</param>
 /// <param name="provisioningState">Gets the provisioning state of the
 /// public IP resource. Possible values are: 'Updating', 'Deleting',
 /// and 'Failed'.</param>
 /// <param name="name">Gets name of the resource that is unique within
 /// a resource group. This name can be used to access the
 /// resource.</param>
 /// <param name="etag">A unique read-only string that changes whenever
 /// the resource is updated.</param>
 public InboundNatRuleInner(string id = default(string), Management.ResourceManager.Fluent.SubResource frontendIPConfiguration = default(Management.ResourceManager.Fluent.SubResource), NetworkInterfaceIPConfigurationInner backendIPConfiguration = default(NetworkInterfaceIPConfigurationInner), TransportProtocol protocol = default(TransportProtocol), int?frontendPort = default(int?), int?backendPort = default(int?), int?idleTimeoutInMinutes = default(int?), bool?enableFloatingIP = default(bool?), string provisioningState = default(string), string name = default(string), string etag = default(string))
     : base(id)
 {
     FrontendIPConfiguration = frontendIPConfiguration;
     BackendIPConfiguration  = backendIPConfiguration;
     Protocol             = protocol;
     FrontendPort         = frontendPort;
     BackendPort          = backendPort;
     IdleTimeoutInMinutes = idleTimeoutInMinutes;
     EnableFloatingIP     = enableFloatingIP;
     ProvisioningState    = provisioningState;
     Name = name;
     Etag = etag;
     CustomInit();
 }
 /// <summary>
 /// Initializes a new instance of the LoadBalancingRuleInner class.
 /// </summary>
 /// <param name="protocol">Possible values include: 'Udp', 'Tcp',
 /// 'All'</param>
 /// <param name="frontendPort">The port for the external endpoint. Port
 /// numbers for each rule must be unique within the Load Balancer.
 /// Acceptable values are between 0 and 65534. Note that value 0
 /// enables "Any Port"</param>
 /// <param name="frontendIPConfiguration">A reference to frontend IP
 /// addresses.</param>
 /// <param name="backendAddressPool">A reference to a pool of DIPs.
 /// Inbound traffic is randomly load balanced across IPs in the backend
 /// IPs.</param>
 /// <param name="probe">The reference of the load balancer probe used
 /// by the load balancing rule.</param>
 /// <param name="loadDistribution">The load distribution policy for
 /// this rule. Possible values are 'Default', 'SourceIP', and
 /// 'SourceIPProtocol'. Possible values include: 'Default', 'SourceIP',
 /// 'SourceIPProtocol'</param>
 /// <param name="backendPort">The port used for internal connections on
 /// the endpoint. Acceptable values are between 0 and 65535. Note that
 /// value 0 enables "Any Port"</param>
 /// <param name="idleTimeoutInMinutes">The timeout for the TCP idle
 /// connection. The value can be set between 4 and 30 minutes. The
 /// default value is 4 minutes. This element is only used when the
 /// protocol is set to TCP.</param>
 /// <param name="enableFloatingIP">Configures a virtual machine's
 /// endpoint for the floating IP capability required to configure a SQL
 /// AlwaysOn Availability Group. This setting is required when using
 /// the SQL AlwaysOn Availability Groups in SQL server. This setting
 /// can't be changed after you create the endpoint.</param>
 /// <param name="disableOutboundSnat">Configures SNAT for the VMs in
 /// the backend pool to use the publicIP address specified in the
 /// frontend of the load balancing rule.</param>
 /// <param name="provisioningState">Gets the provisioning state of the
 /// PublicIP resource. Possible values are: 'Updating', 'Deleting', and
 /// 'Failed'.</param>
 /// <param name="name">The name of the resource that is unique within a
 /// resource group. This name can be used to access the
 /// resource.</param>
 /// <param name="etag">A unique read-only string that changes whenever
 /// the resource is updated.</param>
 public LoadBalancingRuleInner(TransportProtocol protocol, int frontendPort, string id = default(string), Management.ResourceManager.Fluent.SubResource frontendIPConfiguration = default(Management.ResourceManager.Fluent.SubResource), Management.ResourceManager.Fluent.SubResource backendAddressPool = default(Management.ResourceManager.Fluent.SubResource), Management.ResourceManager.Fluent.SubResource probe = default(Management.ResourceManager.Fluent.SubResource), LoadDistribution loadDistribution = default(LoadDistribution), int?backendPort = default(int?), int?idleTimeoutInMinutes = default(int?), bool?enableFloatingIP = default(bool?), bool?disableOutboundSnat = default(bool?), string provisioningState = default(string), string name = default(string), string etag = default(string))
     : base(id)
 {
     FrontendIPConfiguration = frontendIPConfiguration;
     BackendAddressPool      = backendAddressPool;
     Probe                = probe;
     Protocol             = protocol;
     LoadDistribution     = loadDistribution;
     FrontendPort         = frontendPort;
     BackendPort          = backendPort;
     IdleTimeoutInMinutes = idleTimeoutInMinutes;
     EnableFloatingIP     = enableFloatingIP;
     DisableOutboundSnat  = disableOutboundSnat;
     ProvisioningState    = provisioningState;
     Name = name;
     Etag = etag;
     CustomInit();
 }