<?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;
    /**
     * 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;
    /**
     * 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 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 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;
    }

    /**
     * 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;
    }

    /**
     * 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;
    }

}

