<?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.GRPCHealthCheck</code>
 */
class GRPCHealthCheck extends \Google\Protobuf\Internal\Message
{
    /**
     * The gRPC service name for the health check. This field is optional. The
     * value of grpc_service_name has the following meanings by convention:
     * - Empty service_name means the overall status of all services at the
     * backend.
     * - Non-empty service_name means the health of that gRPC service, as defined
     * by the owner of the service.
     * The grpc_service_name can only be ASCII.
     *
     * Generated from protobuf field <code>optional string grpc_service_name = 136533078;</code>
     */
    protected $grpc_service_name = null;
    /**
     * The TCP port number to which the health check prober sends packets. Valid
     * values are 1 through 65535.
     *
     * Generated from protobuf field <code>optional int32 port = 3446913;</code>
     */
    protected $port = null;
    /**
     * Not supported.
     *
     * Generated from protobuf field <code>optional string port_name = 41534345;</code>
     */
    protected $port_name = null;
    /**
     * Specifies how a port is selected for health checking. Can be one of the
     * following values:
     * USE_FIXED_PORT: Specifies a port number explicitly using theport field  in the health check. Supported by backend services
     * for passthrough load balancers and backend services for proxy load
     * balancers. Not supported by target pools. The health check supports all
     * backends supported by the backend service provided the backend can be
     * health checked. For example, GCE_VM_IP network endpoint
     * groups, GCE_VM_IP_PORT network endpoint groups, and instance
     * group backends.
     *  USE_NAMED_PORT: Not supported.
     * USE_SERVING_PORT: Provides an indirect method of specifying
     * the health check port by referring to the backend service. Only supported
     * by backend services for proxy load balancers. Not supported by target
     * pools.  Not supported by backend services for passthrough load balancers.
     * Supports all backends that can be health checked; for example,GCE_VM_IP_PORT network endpoint groups and instance group
     * backends.
     * For GCE_VM_IP_PORT network endpoint group backends, the health
     * check uses the port number specified for each endpoint in the network
     * endpoint group.  For instance group backends, the health check uses the
     * port number determined by looking up the backend service's named port in
     * the instance group's list of named ports.
     * Check the PortSpecification enum for the list of possible values.
     *
     * Generated from protobuf field <code>optional string port_specification = 51590597;</code>
     */
    protected $port_specification = null;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type string $grpc_service_name
     *           The gRPC service name for the health check. This field is optional. The
     *           value of grpc_service_name has the following meanings by convention:
     *           - Empty service_name means the overall status of all services at the
     *           backend.
     *           - Non-empty service_name means the health of that gRPC service, as defined
     *           by the owner of the service.
     *           The grpc_service_name can only be ASCII.
     *     @type int $port
     *           The TCP port number to which the health check prober sends packets. Valid
     *           values are 1 through 65535.
     *     @type string $port_name
     *           Not supported.
     *     @type string $port_specification
     *           Specifies how a port is selected for health checking. Can be one of the
     *           following values:
     *           USE_FIXED_PORT: Specifies a port number explicitly using theport field  in the health check. Supported by backend services
     *           for passthrough load balancers and backend services for proxy load
     *           balancers. Not supported by target pools. The health check supports all
     *           backends supported by the backend service provided the backend can be
     *           health checked. For example, GCE_VM_IP network endpoint
     *           groups, GCE_VM_IP_PORT network endpoint groups, and instance
     *           group backends.
     *            USE_NAMED_PORT: Not supported.
     *           USE_SERVING_PORT: Provides an indirect method of specifying
     *           the health check port by referring to the backend service. Only supported
     *           by backend services for proxy load balancers. Not supported by target
     *           pools.  Not supported by backend services for passthrough load balancers.
     *           Supports all backends that can be health checked; for example,GCE_VM_IP_PORT network endpoint groups and instance group
     *           backends.
     *           For GCE_VM_IP_PORT network endpoint group backends, the health
     *           check uses the port number specified for each endpoint in the network
     *           endpoint group.  For instance group backends, the health check uses the
     *           port number determined by looking up the backend service's named port in
     *           the instance group's list of named ports.
     *           Check the PortSpecification enum for the list of possible values.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Cloud\Compute\V1\Compute::initOnce();
        parent::__construct($data);
    }

    /**
     * The gRPC service name for the health check. This field is optional. The
     * value of grpc_service_name has the following meanings by convention:
     * - Empty service_name means the overall status of all services at the
     * backend.
     * - Non-empty service_name means the health of that gRPC service, as defined
     * by the owner of the service.
     * The grpc_service_name can only be ASCII.
     *
     * Generated from protobuf field <code>optional string grpc_service_name = 136533078;</code>
     * @return string
     */
    public function getGrpcServiceName()
    {
        return isset($this->grpc_service_name) ? $this->grpc_service_name : '';
    }

    public function hasGrpcServiceName()
    {
        return isset($this->grpc_service_name);
    }

    public function clearGrpcServiceName()
    {
        unset($this->grpc_service_name);
    }

    /**
     * The gRPC service name for the health check. This field is optional. The
     * value of grpc_service_name has the following meanings by convention:
     * - Empty service_name means the overall status of all services at the
     * backend.
     * - Non-empty service_name means the health of that gRPC service, as defined
     * by the owner of the service.
     * The grpc_service_name can only be ASCII.
     *
     * Generated from protobuf field <code>optional string grpc_service_name = 136533078;</code>
     * @param string $var
     * @return $this
     */
    public function setGrpcServiceName($var)
    {
        GPBUtil::checkString($var, True);
        $this->grpc_service_name = $var;

        return $this;
    }

    /**
     * The TCP port number to which the health check prober sends packets. Valid
     * values are 1 through 65535.
     *
     * Generated from protobuf field <code>optional int32 port = 3446913;</code>
     * @return int
     */
    public function getPort()
    {
        return isset($this->port) ? $this->port : 0;
    }

    public function hasPort()
    {
        return isset($this->port);
    }

    public function clearPort()
    {
        unset($this->port);
    }

    /**
     * The TCP port number to which the health check prober sends packets. Valid
     * values are 1 through 65535.
     *
     * Generated from protobuf field <code>optional int32 port = 3446913;</code>
     * @param int $var
     * @return $this
     */
    public function setPort($var)
    {
        GPBUtil::checkInt32($var);
        $this->port = $var;

        return $this;
    }

    /**
     * Not supported.
     *
     * Generated from protobuf field <code>optional string port_name = 41534345;</code>
     * @return string
     */
    public function getPortName()
    {
        return isset($this->port_name) ? $this->port_name : '';
    }

    public function hasPortName()
    {
        return isset($this->port_name);
    }

    public function clearPortName()
    {
        unset($this->port_name);
    }

    /**
     * Not supported.
     *
     * Generated from protobuf field <code>optional string port_name = 41534345;</code>
     * @param string $var
     * @return $this
     */
    public function setPortName($var)
    {
        GPBUtil::checkString($var, True);
        $this->port_name = $var;

        return $this;
    }

    /**
     * Specifies how a port is selected for health checking. Can be one of the
     * following values:
     * USE_FIXED_PORT: Specifies a port number explicitly using theport field  in the health check. Supported by backend services
     * for passthrough load balancers and backend services for proxy load
     * balancers. Not supported by target pools. The health check supports all
     * backends supported by the backend service provided the backend can be
     * health checked. For example, GCE_VM_IP network endpoint
     * groups, GCE_VM_IP_PORT network endpoint groups, and instance
     * group backends.
     *  USE_NAMED_PORT: Not supported.
     * USE_SERVING_PORT: Provides an indirect method of specifying
     * the health check port by referring to the backend service. Only supported
     * by backend services for proxy load balancers. Not supported by target
     * pools.  Not supported by backend services for passthrough load balancers.
     * Supports all backends that can be health checked; for example,GCE_VM_IP_PORT network endpoint groups and instance group
     * backends.
     * For GCE_VM_IP_PORT network endpoint group backends, the health
     * check uses the port number specified for each endpoint in the network
     * endpoint group.  For instance group backends, the health check uses the
     * port number determined by looking up the backend service's named port in
     * the instance group's list of named ports.
     * Check the PortSpecification enum for the list of possible values.
     *
     * Generated from protobuf field <code>optional string port_specification = 51590597;</code>
     * @return string
     */
    public function getPortSpecification()
    {
        return isset($this->port_specification) ? $this->port_specification : '';
    }

    public function hasPortSpecification()
    {
        return isset($this->port_specification);
    }

    public function clearPortSpecification()
    {
        unset($this->port_specification);
    }

    /**
     * Specifies how a port is selected for health checking. Can be one of the
     * following values:
     * USE_FIXED_PORT: Specifies a port number explicitly using theport field  in the health check. Supported by backend services
     * for passthrough load balancers and backend services for proxy load
     * balancers. Not supported by target pools. The health check supports all
     * backends supported by the backend service provided the backend can be
     * health checked. For example, GCE_VM_IP network endpoint
     * groups, GCE_VM_IP_PORT network endpoint groups, and instance
     * group backends.
     *  USE_NAMED_PORT: Not supported.
     * USE_SERVING_PORT: Provides an indirect method of specifying
     * the health check port by referring to the backend service. Only supported
     * by backend services for proxy load balancers. Not supported by target
     * pools.  Not supported by backend services for passthrough load balancers.
     * Supports all backends that can be health checked; for example,GCE_VM_IP_PORT network endpoint groups and instance group
     * backends.
     * For GCE_VM_IP_PORT network endpoint group backends, the health
     * check uses the port number specified for each endpoint in the network
     * endpoint group.  For instance group backends, the health check uses the
     * port number determined by looking up the backend service's named port in
     * the instance group's list of named ports.
     * Check the PortSpecification enum for the list of possible values.
     *
     * Generated from protobuf field <code>optional string port_specification = 51590597;</code>
     * @param string $var
     * @return $this
     */
    public function setPortSpecification($var)
    {
        GPBUtil::checkString($var, True);
        $this->port_specification = $var;

        return $this;
    }

}

