<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/cloud/compute/v1/compute.proto

namespace Google\Cloud\Compute\V1;

use Google\Protobuf\Internal\GPBType;
use Google\Protobuf\Internal\RepeatedField;
use Google\Protobuf\Internal\GPBUtil;

/**
 *
 * Generated from protobuf message <code>google.cloud.compute.v1.RouterNatRuleAction</code>
 */
class RouterNatRuleAction extends \Google\Protobuf\Internal\Message
{
    /**
     * 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.
     *
     * Generated from protobuf field <code>repeated string source_nat_active_ips = 210378229;</code>
     */
    private $source_nat_active_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.
     *
     * Generated from protobuf field <code>repeated string source_nat_drain_ips = 340812451;</code>
     */
    private $source_nat_drain_ips;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type array<string>|\Google\Protobuf\Internal\RepeatedField $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.
     *     @type array<string>|\Google\Protobuf\Internal\RepeatedField $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.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Cloud\Compute\V1\Compute::initOnce();
        parent::__construct($data);
    }

    /**
     * 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.
     *
     * Generated from protobuf field <code>repeated string source_nat_active_ips = 210378229;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getSourceNatActiveIps()
    {
        return $this->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.
     *
     * Generated from protobuf field <code>repeated string source_nat_active_ips = 210378229;</code>
     * @param array<string>|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setSourceNatActiveIps($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
        $this->source_nat_active_ips = $arr;

        return $this;
    }

    /**
     * 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.
     *
     * Generated from protobuf field <code>repeated string source_nat_drain_ips = 340812451;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getSourceNatDrainIps()
    {
        return $this->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.
     *
     * Generated from protobuf field <code>repeated string source_nat_drain_ips = 340812451;</code>
     * @param array<string>|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setSourceNatDrainIps($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
        $this->source_nat_drain_ips = $arr;

        return $this;
    }

}

