def __init__(__self__, *, source_nat_active_ips: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]=None, source_nat_active_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]=None, source_nat_drain_ips: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]=None, source_nat_drain_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]=None):
    '\n        :param pulumi.Input[Sequence[pulumi.Input[str]]] source_nat_active_ips: A list of URLs of the IP resources used for this NAT rule. These IP addresses must be valid static external IP addresses assigned to the project. This field is used for public NAT.\n        :param pulumi.Input[Sequence[pulumi.Input[str]]] source_nat_active_ranges: A list of URLs of the subnetworks used as source ranges for this NAT Rule. These subnetworks must have purpose set to PRIVATE_NAT. This field is used for private NAT.\n        :param pulumi.Input[Sequence[pulumi.Input[str]]] source_nat_drain_ips: A list of URLs of the IP resources to be drained. These IPs must be valid static external IPs that have been assigned to the NAT. These IPs should be used for updating/patching a NAT rule only. This field is used for public NAT.\n        :param pulumi.Input[Sequence[pulumi.Input[str]]] source_nat_drain_ranges: A list of URLs of subnetworks representing source ranges to be drained. This is only supported on patch/update, and these subnetworks must have previously been used as active ranges in this NAT Rule. This field is used for private NAT.\n        '
    if (source_nat_active_ips is not None):
        pulumi.set(__self__, 'source_nat_active_ips', source_nat_active_ips)
    if (source_nat_active_ranges is not None):
        pulumi.set(__self__, 'source_nat_active_ranges', source_nat_active_ranges)
    if (source_nat_drain_ips is not None):
        pulumi.set(__self__, 'source_nat_drain_ips', source_nat_drain_ips)
    if (source_nat_drain_ranges is not None):
        pulumi.set(__self__, 'source_nat_drain_ranges', source_nat_drain_ranges)
:param pulumi.Input[Sequence[pulumi.Input[str]]] source_nat_active_ips: A list of URLs of the IP resources used for this NAT rule. These IP addresses must be valid static external IP addresses assigned to the project. This field is used for public NAT.
:param pulumi.Input[Sequence[pulumi.Input[str]]] source_nat_active_ranges: A list of URLs of the subnetworks used as source ranges for this NAT Rule. These subnetworks must have purpose set to PRIVATE_NAT. This field is used for private NAT.
:param pulumi.Input[Sequence[pulumi.Input[str]]] source_nat_drain_ips: A list of URLs of the IP resources to be drained. These IPs must be valid static external IPs that have been assigned to the NAT. These IPs should be used for updating/patching a NAT rule only. This field is used for public NAT.
:param pulumi.Input[Sequence[pulumi.Input[str]]] source_nat_drain_ranges: A list of URLs of subnetworks representing source ranges to be drained. This is only supported on patch/update, and these subnetworks must have previously been used as active ranges in this NAT Rule. This field is used for private NAT.
def __init__(__self__, *, source_nat_active_ips: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]=None, source_nat_active_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]=None, source_nat_drain_ips: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]=None, source_nat_drain_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]=None):
    '\n        :param pulumi.Input[Sequence[pulumi.Input[str]]] source_nat_active_ips: A list of URLs of the IP resources used for this NAT rule. These IP addresses must be valid static external IP addresses assigned to the project. This field is used for public NAT.\n        :param pulumi.Input[Sequence[pulumi.Input[str]]] source_nat_active_ranges: A list of URLs of the subnetworks used as source ranges for this NAT Rule. These subnetworks must have purpose set to PRIVATE_NAT. This field is used for private NAT.\n        :param pulumi.Input[Sequence[pulumi.Input[str]]] source_nat_drain_ips: A list of URLs of the IP resources to be drained. These IPs must be valid static external IPs that have been assigned to the NAT. These IPs should be used for updating/patching a NAT rule only. This field is used for public NAT.\n        :param pulumi.Input[Sequence[pulumi.Input[str]]] source_nat_drain_ranges: A list of URLs of subnetworks representing source ranges to be drained. This is only supported on patch/update, and these subnetworks must have previously been used as active ranges in this NAT Rule. This field is used for private NAT.\n        '
    if (source_nat_active_ips is not None):
        pulumi.set(__self__, 'source_nat_active_ips', source_nat_active_ips)
    if (source_nat_active_ranges is not None):
        pulumi.set(__self__, 'source_nat_active_ranges', source_nat_active_ranges)
    if (source_nat_drain_ips is not None):
        pulumi.set(__self__, 'source_nat_drain_ips', source_nat_drain_ips)
    if (source_nat_drain_ranges is not None):
        pulumi.set(__self__, 'source_nat_drain_ranges', source_nat_drain_ranges)