<?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.UrlMapsValidateRequest</code>
 */
class UrlMapsValidateRequest extends \Google\Protobuf\Internal\Message
{
    /**
     * Specifies the load balancer type(s) this validation request is for. Use EXTERNAL_MANAGED for global external Application Load Balancers and regional external Application Load Balancers. Use EXTERNAL for classic Application Load Balancers. Use INTERNAL_MANAGED for internal Application Load Balancers. For more information, refer to Choosing a load balancer. If unspecified, the load balancing scheme will be inferred from the backend service resources this URL map references. If that can not be inferred (for example, this URL map only references backend buckets, or this Url map is for rewrites and redirects only and doesn't reference any backends), EXTERNAL will be used as the default type. If specified, the scheme(s) must not conflict with the load balancing scheme of the backend service resources this Url map references.
     * Check the LoadBalancingSchemes enum for the list of possible values.
     *
     * Generated from protobuf field <code>repeated string load_balancing_schemes = 6308527;</code>
     */
    private $load_balancing_schemes;
    /**
     * Content of the UrlMap to be validated.
     *
     * Generated from protobuf field <code>optional .google.cloud.compute.v1.UrlMap resource = 195806222;</code>
     */
    protected $resource = null;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type array<string>|\Google\Protobuf\Internal\RepeatedField $load_balancing_schemes
     *           Specifies the load balancer type(s) this validation request is for. Use EXTERNAL_MANAGED for global external Application Load Balancers and regional external Application Load Balancers. Use EXTERNAL for classic Application Load Balancers. Use INTERNAL_MANAGED for internal Application Load Balancers. For more information, refer to Choosing a load balancer. If unspecified, the load balancing scheme will be inferred from the backend service resources this URL map references. If that can not be inferred (for example, this URL map only references backend buckets, or this Url map is for rewrites and redirects only and doesn't reference any backends), EXTERNAL will be used as the default type. If specified, the scheme(s) must not conflict with the load balancing scheme of the backend service resources this Url map references.
     *           Check the LoadBalancingSchemes enum for the list of possible values.
     *     @type \Google\Cloud\Compute\V1\UrlMap $resource
     *           Content of the UrlMap to be validated.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Cloud\Compute\V1\Compute::initOnce();
        parent::__construct($data);
    }

    /**
     * Specifies the load balancer type(s) this validation request is for. Use EXTERNAL_MANAGED for global external Application Load Balancers and regional external Application Load Balancers. Use EXTERNAL for classic Application Load Balancers. Use INTERNAL_MANAGED for internal Application Load Balancers. For more information, refer to Choosing a load balancer. If unspecified, the load balancing scheme will be inferred from the backend service resources this URL map references. If that can not be inferred (for example, this URL map only references backend buckets, or this Url map is for rewrites and redirects only and doesn't reference any backends), EXTERNAL will be used as the default type. If specified, the scheme(s) must not conflict with the load balancing scheme of the backend service resources this Url map references.
     * Check the LoadBalancingSchemes enum for the list of possible values.
     *
     * Generated from protobuf field <code>repeated string load_balancing_schemes = 6308527;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getLoadBalancingSchemes()
    {
        return $this->load_balancing_schemes;
    }

    /**
     * Specifies the load balancer type(s) this validation request is for. Use EXTERNAL_MANAGED for global external Application Load Balancers and regional external Application Load Balancers. Use EXTERNAL for classic Application Load Balancers. Use INTERNAL_MANAGED for internal Application Load Balancers. For more information, refer to Choosing a load balancer. If unspecified, the load balancing scheme will be inferred from the backend service resources this URL map references. If that can not be inferred (for example, this URL map only references backend buckets, or this Url map is for rewrites and redirects only and doesn't reference any backends), EXTERNAL will be used as the default type. If specified, the scheme(s) must not conflict with the load balancing scheme of the backend service resources this Url map references.
     * Check the LoadBalancingSchemes enum for the list of possible values.
     *
     * Generated from protobuf field <code>repeated string load_balancing_schemes = 6308527;</code>
     * @param array<string>|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setLoadBalancingSchemes($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
        $this->load_balancing_schemes = $arr;

        return $this;
    }

    /**
     * Content of the UrlMap to be validated.
     *
     * Generated from protobuf field <code>optional .google.cloud.compute.v1.UrlMap resource = 195806222;</code>
     * @return \Google\Cloud\Compute\V1\UrlMap|null
     */
    public function getResource()
    {
        return $this->resource;
    }

    public function hasResource()
    {
        return isset($this->resource);
    }

    public function clearResource()
    {
        unset($this->resource);
    }

    /**
     * Content of the UrlMap to be validated.
     *
     * Generated from protobuf field <code>optional .google.cloud.compute.v1.UrlMap resource = 195806222;</code>
     * @param \Google\Cloud\Compute\V1\UrlMap $var
     * @return $this
     */
    public function setResource($var)
    {
        GPBUtil::checkMessage($var, \Google\Cloud\Compute\V1\UrlMap::class);
        $this->resource = $var;

        return $this;
    }

}

