<?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.NetworkPeeringConnectionStatusTrafficConfiguration</code>
 */
class NetworkPeeringConnectionStatusTrafficConfiguration extends \Google\Protobuf\Internal\Message
{
    /**
     * Whether custom routes are being exported to the peer network.
     *
     * Generated from protobuf field <code>optional bool export_custom_routes_to_peer = 286428404;</code>
     */
    protected $export_custom_routes_to_peer = null;
    /**
     * Whether subnet routes with public IP ranges are being exported to the
     * peer network.
     *
     * Generated from protobuf field <code>optional bool export_subnet_routes_with_public_ip_to_peer = 8358601;</code>
     */
    protected $export_subnet_routes_with_public_ip_to_peer = null;
    /**
     * Whether custom routes are being imported from the peer network.
     *
     * Generated from protobuf field <code>optional bool import_custom_routes_from_peer = 398584470;</code>
     */
    protected $import_custom_routes_from_peer = null;
    /**
     * Whether subnet routes with public IP ranges are being imported
     * from the peer network.
     *
     * Generated from protobuf field <code>optional bool import_subnet_routes_with_public_ip_from_peer = 234712361;</code>
     */
    protected $import_subnet_routes_with_public_ip_from_peer = null;
    /**
     * Which IP version(s) of traffic and routes are being imported or
     * exported between peer networks.
     * Check the StackType enum for the list of possible values.
     *
     * Generated from protobuf field <code>optional string stack_type = 425908881;</code>
     */
    protected $stack_type = null;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type bool $export_custom_routes_to_peer
     *           Whether custom routes are being exported to the peer network.
     *     @type bool $export_subnet_routes_with_public_ip_to_peer
     *           Whether subnet routes with public IP ranges are being exported to the
     *           peer network.
     *     @type bool $import_custom_routes_from_peer
     *           Whether custom routes are being imported from the peer network.
     *     @type bool $import_subnet_routes_with_public_ip_from_peer
     *           Whether subnet routes with public IP ranges are being imported
     *           from the peer network.
     *     @type string $stack_type
     *           Which IP version(s) of traffic and routes are being imported or
     *           exported between peer networks.
     *           Check the StackType enum for the list of possible values.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Cloud\Compute\V1\Compute::initOnce();
        parent::__construct($data);
    }

    /**
     * Whether custom routes are being exported to the peer network.
     *
     * Generated from protobuf field <code>optional bool export_custom_routes_to_peer = 286428404;</code>
     * @return bool
     */
    public function getExportCustomRoutesToPeer()
    {
        return isset($this->export_custom_routes_to_peer) ? $this->export_custom_routes_to_peer : false;
    }

    public function hasExportCustomRoutesToPeer()
    {
        return isset($this->export_custom_routes_to_peer);
    }

    public function clearExportCustomRoutesToPeer()
    {
        unset($this->export_custom_routes_to_peer);
    }

    /**
     * Whether custom routes are being exported to the peer network.
     *
     * Generated from protobuf field <code>optional bool export_custom_routes_to_peer = 286428404;</code>
     * @param bool $var
     * @return $this
     */
    public function setExportCustomRoutesToPeer($var)
    {
        GPBUtil::checkBool($var);
        $this->export_custom_routes_to_peer = $var;

        return $this;
    }

    /**
     * Whether subnet routes with public IP ranges are being exported to the
     * peer network.
     *
     * Generated from protobuf field <code>optional bool export_subnet_routes_with_public_ip_to_peer = 8358601;</code>
     * @return bool
     */
    public function getExportSubnetRoutesWithPublicIpToPeer()
    {
        return isset($this->export_subnet_routes_with_public_ip_to_peer) ? $this->export_subnet_routes_with_public_ip_to_peer : false;
    }

    public function hasExportSubnetRoutesWithPublicIpToPeer()
    {
        return isset($this->export_subnet_routes_with_public_ip_to_peer);
    }

    public function clearExportSubnetRoutesWithPublicIpToPeer()
    {
        unset($this->export_subnet_routes_with_public_ip_to_peer);
    }

    /**
     * Whether subnet routes with public IP ranges are being exported to the
     * peer network.
     *
     * Generated from protobuf field <code>optional bool export_subnet_routes_with_public_ip_to_peer = 8358601;</code>
     * @param bool $var
     * @return $this
     */
    public function setExportSubnetRoutesWithPublicIpToPeer($var)
    {
        GPBUtil::checkBool($var);
        $this->export_subnet_routes_with_public_ip_to_peer = $var;

        return $this;
    }

    /**
     * Whether custom routes are being imported from the peer network.
     *
     * Generated from protobuf field <code>optional bool import_custom_routes_from_peer = 398584470;</code>
     * @return bool
     */
    public function getImportCustomRoutesFromPeer()
    {
        return isset($this->import_custom_routes_from_peer) ? $this->import_custom_routes_from_peer : false;
    }

    public function hasImportCustomRoutesFromPeer()
    {
        return isset($this->import_custom_routes_from_peer);
    }

    public function clearImportCustomRoutesFromPeer()
    {
        unset($this->import_custom_routes_from_peer);
    }

    /**
     * Whether custom routes are being imported from the peer network.
     *
     * Generated from protobuf field <code>optional bool import_custom_routes_from_peer = 398584470;</code>
     * @param bool $var
     * @return $this
     */
    public function setImportCustomRoutesFromPeer($var)
    {
        GPBUtil::checkBool($var);
        $this->import_custom_routes_from_peer = $var;

        return $this;
    }

    /**
     * Whether subnet routes with public IP ranges are being imported
     * from the peer network.
     *
     * Generated from protobuf field <code>optional bool import_subnet_routes_with_public_ip_from_peer = 234712361;</code>
     * @return bool
     */
    public function getImportSubnetRoutesWithPublicIpFromPeer()
    {
        return isset($this->import_subnet_routes_with_public_ip_from_peer) ? $this->import_subnet_routes_with_public_ip_from_peer : false;
    }

    public function hasImportSubnetRoutesWithPublicIpFromPeer()
    {
        return isset($this->import_subnet_routes_with_public_ip_from_peer);
    }

    public function clearImportSubnetRoutesWithPublicIpFromPeer()
    {
        unset($this->import_subnet_routes_with_public_ip_from_peer);
    }

    /**
     * Whether subnet routes with public IP ranges are being imported
     * from the peer network.
     *
     * Generated from protobuf field <code>optional bool import_subnet_routes_with_public_ip_from_peer = 234712361;</code>
     * @param bool $var
     * @return $this
     */
    public function setImportSubnetRoutesWithPublicIpFromPeer($var)
    {
        GPBUtil::checkBool($var);
        $this->import_subnet_routes_with_public_ip_from_peer = $var;

        return $this;
    }

    /**
     * Which IP version(s) of traffic and routes are being imported or
     * exported between peer networks.
     * Check the StackType enum for the list of possible values.
     *
     * Generated from protobuf field <code>optional string stack_type = 425908881;</code>
     * @return string
     */
    public function getStackType()
    {
        return isset($this->stack_type) ? $this->stack_type : '';
    }

    public function hasStackType()
    {
        return isset($this->stack_type);
    }

    public function clearStackType()
    {
        unset($this->stack_type);
    }

    /**
     * Which IP version(s) of traffic and routes are being imported or
     * exported between peer networks.
     * Check the StackType enum for the list of possible values.
     *
     * Generated from protobuf field <code>optional string stack_type = 425908881;</code>
     * @param string $var
     * @return $this
     */
    public function setStackType($var)
    {
        GPBUtil::checkString($var, True);
        $this->stack_type = $var;

        return $this;
    }

}

