<?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;

/**
 * Represents a match condition that incoming traffic is evaluated against.
 * Exactly one field must be specified.
 *
 * Generated from protobuf message <code>google.cloud.compute.v1.FirewallPolicyRuleMatcher</code>
 */
class FirewallPolicyRuleMatcher extends \Google\Protobuf\Internal\Message
{
    /**
     * Address groups which should be matched against the traffic destination.
     * Maximum number of destination address groups is 10.
     *
     * Generated from protobuf field <code>repeated string dest_address_groups = 468760508;</code>
     */
    private $dest_address_groups;
    /**
     * Fully Qualified Domain Name (FQDN) which should be matched against
     * traffic destination.
     * Maximum number of destination fqdn allowed is 100.
     *
     * Generated from protobuf field <code>repeated string dest_fqdns = 370712737;</code>
     */
    private $dest_fqdns;
    /**
     * CIDR IP address range.
     * Maximum number of destination CIDR IP ranges allowed is 5000.
     *
     * Generated from protobuf field <code>repeated string dest_ip_ranges = 337357713;</code>
     */
    private $dest_ip_ranges;
    /**
     * Network context of the traffic destination. Allowed values are:
     *      - UNSPECIFIED
     *      - INTERNET
     *      - NON_INTERNET
     * Check the DestNetworkContext enum for the list of possible values.
     *
     * Generated from protobuf field <code>optional string dest_network_context = 76347649;</code>
     */
    protected $dest_network_context = null;
    /**
     * Network type of the traffic destination. Allowed values are:
     *      - UNSPECIFIED
     *      - INTERNET
     *      - NON_INTERNET
     * Check the DestNetworkType enum for the list of possible values.
     *
     * Generated from protobuf field <code>optional string dest_network_type = 409853224;</code>
     */
    protected $dest_network_type = null;
    /**
     * Region codes whose IP addresses will be used to match for destination
     * of traffic. Should be specified as 2 letter country code defined as per
     * ISO 3166 alpha-2 country codes. ex."US"
     * Maximum number of dest region codes allowed is 5000.
     *
     * Generated from protobuf field <code>repeated string dest_region_codes = 199120280;</code>
     */
    private $dest_region_codes;
    /**
     * Names of Network Threat Intelligence lists.
     * The IPs in these lists will be matched against traffic destination.
     *
     * Generated from protobuf field <code>repeated string dest_threat_intelligences = 119896492;</code>
     */
    private $dest_threat_intelligences;
    /**
     * Pairs of IP protocols and ports that the rule should match.
     *
     * Generated from protobuf field <code>repeated .google.cloud.compute.v1.FirewallPolicyRuleMatcherLayer4Config layer4_configs = 373534261;</code>
     */
    private $layer4_configs;
    /**
     * Address groups which should be matched against the traffic source.
     * Maximum number of source address groups is 10.
     *
     * Generated from protobuf field <code>repeated string src_address_groups = 436423738;</code>
     */
    private $src_address_groups;
    /**
     * Fully Qualified Domain Name (FQDN) which should be matched against
     * traffic source.
     * Maximum number of source fqdn allowed is 100.
     *
     * Generated from protobuf field <code>repeated string src_fqdns = 435906147;</code>
     */
    private $src_fqdns;
    /**
     * CIDR IP address range.
     * Maximum number of source CIDR IP ranges allowed is 5000.
     *
     * Generated from protobuf field <code>repeated string src_ip_ranges = 432128083;</code>
     */
    private $src_ip_ranges;
    /**
     * Network context of the traffic source. Allowed values are:
     *      - UNSPECIFIED
     *      - INTERNET
     *      - INTRA_VPC
     *      - NON_INTERNET
     *      - VPC_NETWORKS
     * Check the SrcNetworkContext enum for the list of possible values.
     *
     * Generated from protobuf field <code>optional string src_network_context = 147649603;</code>
     */
    protected $src_network_context = null;
    /**
     * Network type of the traffic source. Allowed values are:
     *      - UNSPECIFIED
     *      - INTERNET
     *      - INTRA_VPC
     *      - NON_INTERNET
     *      - VPC_NETWORKS
     * Check the SrcNetworkType enum for the list of possible values.
     *
     * Generated from protobuf field <code>optional string src_network_type = 309819686;</code>
     */
    protected $src_network_type = null;
    /**
     * Networks of the traffic source. It can be either a full or partial url.
     *
     * Generated from protobuf field <code>repeated string src_networks = 247119872;</code>
     */
    private $src_networks;
    /**
     * Region codes whose IP addresses will be used to match for source
     * of traffic. Should be specified as 2 letter country code defined as per
     * ISO 3166 alpha-2 country codes. ex."US"
     * Maximum number of source region codes allowed is 5000.
     *
     * Generated from protobuf field <code>repeated string src_region_codes = 99086742;</code>
     */
    private $src_region_codes;
    /**
     * List of secure tag values, which should be matched at the source
     * of the traffic.
     * For INGRESS rule, if all the srcSecureTag are INEFFECTIVE,
     * and there is no srcIpRange, this rule will be ignored.
     * Maximum number of source tag values allowed is 256.
     *
     * Generated from protobuf field <code>repeated .google.cloud.compute.v1.FirewallPolicyRuleSecureTag src_secure_tags = 508791302;</code>
     */
    private $src_secure_tags;
    /**
     * Names of Network Threat Intelligence lists.
     * The IPs in these lists will be matched against traffic source.
     *
     * Generated from protobuf field <code>repeated string src_threat_intelligences = 323631018;</code>
     */
    private $src_threat_intelligences;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type array<string>|\Google\Protobuf\Internal\RepeatedField $dest_address_groups
     *           Address groups which should be matched against the traffic destination.
     *           Maximum number of destination address groups is 10.
     *     @type array<string>|\Google\Protobuf\Internal\RepeatedField $dest_fqdns
     *           Fully Qualified Domain Name (FQDN) which should be matched against
     *           traffic destination.
     *           Maximum number of destination fqdn allowed is 100.
     *     @type array<string>|\Google\Protobuf\Internal\RepeatedField $dest_ip_ranges
     *           CIDR IP address range.
     *           Maximum number of destination CIDR IP ranges allowed is 5000.
     *     @type string $dest_network_context
     *           Network context of the traffic destination. Allowed values are:
     *                - UNSPECIFIED
     *                - INTERNET
     *                - NON_INTERNET
     *           Check the DestNetworkContext enum for the list of possible values.
     *     @type string $dest_network_type
     *           Network type of the traffic destination. Allowed values are:
     *                - UNSPECIFIED
     *                - INTERNET
     *                - NON_INTERNET
     *           Check the DestNetworkType enum for the list of possible values.
     *     @type array<string>|\Google\Protobuf\Internal\RepeatedField $dest_region_codes
     *           Region codes whose IP addresses will be used to match for destination
     *           of traffic. Should be specified as 2 letter country code defined as per
     *           ISO 3166 alpha-2 country codes. ex."US"
     *           Maximum number of dest region codes allowed is 5000.
     *     @type array<string>|\Google\Protobuf\Internal\RepeatedField $dest_threat_intelligences
     *           Names of Network Threat Intelligence lists.
     *           The IPs in these lists will be matched against traffic destination.
     *     @type array<\Google\Cloud\Compute\V1\FirewallPolicyRuleMatcherLayer4Config>|\Google\Protobuf\Internal\RepeatedField $layer4_configs
     *           Pairs of IP protocols and ports that the rule should match.
     *     @type array<string>|\Google\Protobuf\Internal\RepeatedField $src_address_groups
     *           Address groups which should be matched against the traffic source.
     *           Maximum number of source address groups is 10.
     *     @type array<string>|\Google\Protobuf\Internal\RepeatedField $src_fqdns
     *           Fully Qualified Domain Name (FQDN) which should be matched against
     *           traffic source.
     *           Maximum number of source fqdn allowed is 100.
     *     @type array<string>|\Google\Protobuf\Internal\RepeatedField $src_ip_ranges
     *           CIDR IP address range.
     *           Maximum number of source CIDR IP ranges allowed is 5000.
     *     @type string $src_network_context
     *           Network context of the traffic source. Allowed values are:
     *                - UNSPECIFIED
     *                - INTERNET
     *                - INTRA_VPC
     *                - NON_INTERNET
     *                - VPC_NETWORKS
     *           Check the SrcNetworkContext enum for the list of possible values.
     *     @type string $src_network_type
     *           Network type of the traffic source. Allowed values are:
     *                - UNSPECIFIED
     *                - INTERNET
     *                - INTRA_VPC
     *                - NON_INTERNET
     *                - VPC_NETWORKS
     *           Check the SrcNetworkType enum for the list of possible values.
     *     @type array<string>|\Google\Protobuf\Internal\RepeatedField $src_networks
     *           Networks of the traffic source. It can be either a full or partial url.
     *     @type array<string>|\Google\Protobuf\Internal\RepeatedField $src_region_codes
     *           Region codes whose IP addresses will be used to match for source
     *           of traffic. Should be specified as 2 letter country code defined as per
     *           ISO 3166 alpha-2 country codes. ex."US"
     *           Maximum number of source region codes allowed is 5000.
     *     @type array<\Google\Cloud\Compute\V1\FirewallPolicyRuleSecureTag>|\Google\Protobuf\Internal\RepeatedField $src_secure_tags
     *           List of secure tag values, which should be matched at the source
     *           of the traffic.
     *           For INGRESS rule, if all the srcSecureTag are INEFFECTIVE,
     *           and there is no srcIpRange, this rule will be ignored.
     *           Maximum number of source tag values allowed is 256.
     *     @type array<string>|\Google\Protobuf\Internal\RepeatedField $src_threat_intelligences
     *           Names of Network Threat Intelligence lists.
     *           The IPs in these lists will be matched against traffic source.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Cloud\Compute\V1\Compute::initOnce();
        parent::__construct($data);
    }

    /**
     * Address groups which should be matched against the traffic destination.
     * Maximum number of destination address groups is 10.
     *
     * Generated from protobuf field <code>repeated string dest_address_groups = 468760508;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getDestAddressGroups()
    {
        return $this->dest_address_groups;
    }

    /**
     * Address groups which should be matched against the traffic destination.
     * Maximum number of destination address groups is 10.
     *
     * Generated from protobuf field <code>repeated string dest_address_groups = 468760508;</code>
     * @param array<string>|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setDestAddressGroups($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
        $this->dest_address_groups = $arr;

        return $this;
    }

    /**
     * Fully Qualified Domain Name (FQDN) which should be matched against
     * traffic destination.
     * Maximum number of destination fqdn allowed is 100.
     *
     * Generated from protobuf field <code>repeated string dest_fqdns = 370712737;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getDestFqdns()
    {
        return $this->dest_fqdns;
    }

    /**
     * Fully Qualified Domain Name (FQDN) which should be matched against
     * traffic destination.
     * Maximum number of destination fqdn allowed is 100.
     *
     * Generated from protobuf field <code>repeated string dest_fqdns = 370712737;</code>
     * @param array<string>|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setDestFqdns($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
        $this->dest_fqdns = $arr;

        return $this;
    }

    /**
     * CIDR IP address range.
     * Maximum number of destination CIDR IP ranges allowed is 5000.
     *
     * Generated from protobuf field <code>repeated string dest_ip_ranges = 337357713;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getDestIpRanges()
    {
        return $this->dest_ip_ranges;
    }

    /**
     * CIDR IP address range.
     * Maximum number of destination CIDR IP ranges allowed is 5000.
     *
     * Generated from protobuf field <code>repeated string dest_ip_ranges = 337357713;</code>
     * @param array<string>|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setDestIpRanges($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
        $this->dest_ip_ranges = $arr;

        return $this;
    }

    /**
     * Network context of the traffic destination. Allowed values are:
     *      - UNSPECIFIED
     *      - INTERNET
     *      - NON_INTERNET
     * Check the DestNetworkContext enum for the list of possible values.
     *
     * Generated from protobuf field <code>optional string dest_network_context = 76347649;</code>
     * @return string
     */
    public function getDestNetworkContext()
    {
        return isset($this->dest_network_context) ? $this->dest_network_context : '';
    }

    public function hasDestNetworkContext()
    {
        return isset($this->dest_network_context);
    }

    public function clearDestNetworkContext()
    {
        unset($this->dest_network_context);
    }

    /**
     * Network context of the traffic destination. Allowed values are:
     *      - UNSPECIFIED
     *      - INTERNET
     *      - NON_INTERNET
     * Check the DestNetworkContext enum for the list of possible values.
     *
     * Generated from protobuf field <code>optional string dest_network_context = 76347649;</code>
     * @param string $var
     * @return $this
     */
    public function setDestNetworkContext($var)
    {
        GPBUtil::checkString($var, True);
        $this->dest_network_context = $var;

        return $this;
    }

    /**
     * Network type of the traffic destination. Allowed values are:
     *      - UNSPECIFIED
     *      - INTERNET
     *      - NON_INTERNET
     * Check the DestNetworkType enum for the list of possible values.
     *
     * Generated from protobuf field <code>optional string dest_network_type = 409853224;</code>
     * @return string
     */
    public function getDestNetworkType()
    {
        return isset($this->dest_network_type) ? $this->dest_network_type : '';
    }

    public function hasDestNetworkType()
    {
        return isset($this->dest_network_type);
    }

    public function clearDestNetworkType()
    {
        unset($this->dest_network_type);
    }

    /**
     * Network type of the traffic destination. Allowed values are:
     *      - UNSPECIFIED
     *      - INTERNET
     *      - NON_INTERNET
     * Check the DestNetworkType enum for the list of possible values.
     *
     * Generated from protobuf field <code>optional string dest_network_type = 409853224;</code>
     * @param string $var
     * @return $this
     */
    public function setDestNetworkType($var)
    {
        GPBUtil::checkString($var, True);
        $this->dest_network_type = $var;

        return $this;
    }

    /**
     * Region codes whose IP addresses will be used to match for destination
     * of traffic. Should be specified as 2 letter country code defined as per
     * ISO 3166 alpha-2 country codes. ex."US"
     * Maximum number of dest region codes allowed is 5000.
     *
     * Generated from protobuf field <code>repeated string dest_region_codes = 199120280;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getDestRegionCodes()
    {
        return $this->dest_region_codes;
    }

    /**
     * Region codes whose IP addresses will be used to match for destination
     * of traffic. Should be specified as 2 letter country code defined as per
     * ISO 3166 alpha-2 country codes. ex."US"
     * Maximum number of dest region codes allowed is 5000.
     *
     * Generated from protobuf field <code>repeated string dest_region_codes = 199120280;</code>
     * @param array<string>|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setDestRegionCodes($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
        $this->dest_region_codes = $arr;

        return $this;
    }

    /**
     * Names of Network Threat Intelligence lists.
     * The IPs in these lists will be matched against traffic destination.
     *
     * Generated from protobuf field <code>repeated string dest_threat_intelligences = 119896492;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getDestThreatIntelligences()
    {
        return $this->dest_threat_intelligences;
    }

    /**
     * Names of Network Threat Intelligence lists.
     * The IPs in these lists will be matched against traffic destination.
     *
     * Generated from protobuf field <code>repeated string dest_threat_intelligences = 119896492;</code>
     * @param array<string>|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setDestThreatIntelligences($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
        $this->dest_threat_intelligences = $arr;

        return $this;
    }

    /**
     * Pairs of IP protocols and ports that the rule should match.
     *
     * Generated from protobuf field <code>repeated .google.cloud.compute.v1.FirewallPolicyRuleMatcherLayer4Config layer4_configs = 373534261;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getLayer4Configs()
    {
        return $this->layer4_configs;
    }

    /**
     * Pairs of IP protocols and ports that the rule should match.
     *
     * Generated from protobuf field <code>repeated .google.cloud.compute.v1.FirewallPolicyRuleMatcherLayer4Config layer4_configs = 373534261;</code>
     * @param array<\Google\Cloud\Compute\V1\FirewallPolicyRuleMatcherLayer4Config>|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setLayer4Configs($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Compute\V1\FirewallPolicyRuleMatcherLayer4Config::class);
        $this->layer4_configs = $arr;

        return $this;
    }

    /**
     * Address groups which should be matched against the traffic source.
     * Maximum number of source address groups is 10.
     *
     * Generated from protobuf field <code>repeated string src_address_groups = 436423738;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getSrcAddressGroups()
    {
        return $this->src_address_groups;
    }

    /**
     * Address groups which should be matched against the traffic source.
     * Maximum number of source address groups is 10.
     *
     * Generated from protobuf field <code>repeated string src_address_groups = 436423738;</code>
     * @param array<string>|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setSrcAddressGroups($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
        $this->src_address_groups = $arr;

        return $this;
    }

    /**
     * Fully Qualified Domain Name (FQDN) which should be matched against
     * traffic source.
     * Maximum number of source fqdn allowed is 100.
     *
     * Generated from protobuf field <code>repeated string src_fqdns = 435906147;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getSrcFqdns()
    {
        return $this->src_fqdns;
    }

    /**
     * Fully Qualified Domain Name (FQDN) which should be matched against
     * traffic source.
     * Maximum number of source fqdn allowed is 100.
     *
     * Generated from protobuf field <code>repeated string src_fqdns = 435906147;</code>
     * @param array<string>|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setSrcFqdns($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
        $this->src_fqdns = $arr;

        return $this;
    }

    /**
     * CIDR IP address range.
     * Maximum number of source CIDR IP ranges allowed is 5000.
     *
     * Generated from protobuf field <code>repeated string src_ip_ranges = 432128083;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getSrcIpRanges()
    {
        return $this->src_ip_ranges;
    }

    /**
     * CIDR IP address range.
     * Maximum number of source CIDR IP ranges allowed is 5000.
     *
     * Generated from protobuf field <code>repeated string src_ip_ranges = 432128083;</code>
     * @param array<string>|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setSrcIpRanges($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
        $this->src_ip_ranges = $arr;

        return $this;
    }

    /**
     * Network context of the traffic source. Allowed values are:
     *      - UNSPECIFIED
     *      - INTERNET
     *      - INTRA_VPC
     *      - NON_INTERNET
     *      - VPC_NETWORKS
     * Check the SrcNetworkContext enum for the list of possible values.
     *
     * Generated from protobuf field <code>optional string src_network_context = 147649603;</code>
     * @return string
     */
    public function getSrcNetworkContext()
    {
        return isset($this->src_network_context) ? $this->src_network_context : '';
    }

    public function hasSrcNetworkContext()
    {
        return isset($this->src_network_context);
    }

    public function clearSrcNetworkContext()
    {
        unset($this->src_network_context);
    }

    /**
     * Network context of the traffic source. Allowed values are:
     *      - UNSPECIFIED
     *      - INTERNET
     *      - INTRA_VPC
     *      - NON_INTERNET
     *      - VPC_NETWORKS
     * Check the SrcNetworkContext enum for the list of possible values.
     *
     * Generated from protobuf field <code>optional string src_network_context = 147649603;</code>
     * @param string $var
     * @return $this
     */
    public function setSrcNetworkContext($var)
    {
        GPBUtil::checkString($var, True);
        $this->src_network_context = $var;

        return $this;
    }

    /**
     * Network type of the traffic source. Allowed values are:
     *      - UNSPECIFIED
     *      - INTERNET
     *      - INTRA_VPC
     *      - NON_INTERNET
     *      - VPC_NETWORKS
     * Check the SrcNetworkType enum for the list of possible values.
     *
     * Generated from protobuf field <code>optional string src_network_type = 309819686;</code>
     * @return string
     */
    public function getSrcNetworkType()
    {
        return isset($this->src_network_type) ? $this->src_network_type : '';
    }

    public function hasSrcNetworkType()
    {
        return isset($this->src_network_type);
    }

    public function clearSrcNetworkType()
    {
        unset($this->src_network_type);
    }

    /**
     * Network type of the traffic source. Allowed values are:
     *      - UNSPECIFIED
     *      - INTERNET
     *      - INTRA_VPC
     *      - NON_INTERNET
     *      - VPC_NETWORKS
     * Check the SrcNetworkType enum for the list of possible values.
     *
     * Generated from protobuf field <code>optional string src_network_type = 309819686;</code>
     * @param string $var
     * @return $this
     */
    public function setSrcNetworkType($var)
    {
        GPBUtil::checkString($var, True);
        $this->src_network_type = $var;

        return $this;
    }

    /**
     * Networks of the traffic source. It can be either a full or partial url.
     *
     * Generated from protobuf field <code>repeated string src_networks = 247119872;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getSrcNetworks()
    {
        return $this->src_networks;
    }

    /**
     * Networks of the traffic source. It can be either a full or partial url.
     *
     * Generated from protobuf field <code>repeated string src_networks = 247119872;</code>
     * @param array<string>|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setSrcNetworks($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
        $this->src_networks = $arr;

        return $this;
    }

    /**
     * Region codes whose IP addresses will be used to match for source
     * of traffic. Should be specified as 2 letter country code defined as per
     * ISO 3166 alpha-2 country codes. ex."US"
     * Maximum number of source region codes allowed is 5000.
     *
     * Generated from protobuf field <code>repeated string src_region_codes = 99086742;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getSrcRegionCodes()
    {
        return $this->src_region_codes;
    }

    /**
     * Region codes whose IP addresses will be used to match for source
     * of traffic. Should be specified as 2 letter country code defined as per
     * ISO 3166 alpha-2 country codes. ex."US"
     * Maximum number of source region codes allowed is 5000.
     *
     * Generated from protobuf field <code>repeated string src_region_codes = 99086742;</code>
     * @param array<string>|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setSrcRegionCodes($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
        $this->src_region_codes = $arr;

        return $this;
    }

    /**
     * List of secure tag values, which should be matched at the source
     * of the traffic.
     * For INGRESS rule, if all the srcSecureTag are INEFFECTIVE,
     * and there is no srcIpRange, this rule will be ignored.
     * Maximum number of source tag values allowed is 256.
     *
     * Generated from protobuf field <code>repeated .google.cloud.compute.v1.FirewallPolicyRuleSecureTag src_secure_tags = 508791302;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getSrcSecureTags()
    {
        return $this->src_secure_tags;
    }

    /**
     * List of secure tag values, which should be matched at the source
     * of the traffic.
     * For INGRESS rule, if all the srcSecureTag are INEFFECTIVE,
     * and there is no srcIpRange, this rule will be ignored.
     * Maximum number of source tag values allowed is 256.
     *
     * Generated from protobuf field <code>repeated .google.cloud.compute.v1.FirewallPolicyRuleSecureTag src_secure_tags = 508791302;</code>
     * @param array<\Google\Cloud\Compute\V1\FirewallPolicyRuleSecureTag>|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setSrcSecureTags($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Compute\V1\FirewallPolicyRuleSecureTag::class);
        $this->src_secure_tags = $arr;

        return $this;
    }

    /**
     * Names of Network Threat Intelligence lists.
     * The IPs in these lists will be matched against traffic source.
     *
     * Generated from protobuf field <code>repeated string src_threat_intelligences = 323631018;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getSrcThreatIntelligences()
    {
        return $this->src_threat_intelligences;
    }

    /**
     * Names of Network Threat Intelligence lists.
     * The IPs in these lists will be matched against traffic source.
     *
     * Generated from protobuf field <code>repeated string src_threat_intelligences = 323631018;</code>
     * @param array<string>|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setSrcThreatIntelligences($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
        $this->src_threat_intelligences = $arr;

        return $this;
    }

}

