// Copyright 2023 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// Generated by the C++ microgenerator.
// If you make any local changes, they will be lost.
// file:///workspace/generator/discovery/compute_public_google_rest_v1.json
// revision: 20231110

syntax = "proto3";

package google.cloud.cpp.compute.v1;

message GRPCHealthCheck {
  // 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.
  optional string grpc_service_name = 1 [json_name = "grpcServiceName"];

  // The TCP port number to which the health check prober sends packets. Valid
  // values are 1 through 65535.
  optional int32 port = 2 [json_name = "port"];

  // Not supported.
  optional string port_name = 3 [json_name = "portName"];

  // 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
  // the port field in the health check. Supported by backend services for
  // pass-through 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 pass-through 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.
  // USE_FIXED_PORT: The port number in the health check's port is used for
  // health checking. Applies to network endpoint group and instance group
  // backends.
  // USE_NAMED_PORT: Not supported.
  // USE_SERVING_PORT: For network endpoint group backends, the health check
  // uses the port number specified on each endpoint in the network endpoint
  // group. For instance group backends, the health check uses the port number
  // specified for the backend service's named port defined in the instance
  // group's named ports.
  optional string port_specification = 4 [json_name = "portSpecification"];
}

message HTTP2HealthCheck {
  // The value of the host header in the HTTP/2 health check request. If left
  // empty (default value), the host header is set to the destination IP address
  // to which health check packets are sent. The destination IP address depends
  // on the type of load balancer. For details, see:
  // https://cloud.google.com/load-balancing/docs/health-check-concepts#hc-packet-dest
  optional string host = 1 [json_name = "host"];

  // The TCP port number to which the health check prober sends packets. The
  // default value is 443. Valid values are 1 through 65535.
  optional int32 port = 2 [json_name = "port"];

  // Not supported.
  optional string port_name = 3 [json_name = "portName"];

  // 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
  // the port field in the health check. Supported by backend services for
  // pass-through 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 pass-through 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.
  // USE_FIXED_PORT: The port number in the health check's port is used for
  // health checking. Applies to network endpoint group and instance group
  // backends.
  // USE_NAMED_PORT: Not supported.
  // USE_SERVING_PORT: For network endpoint group backends, the health check
  // uses the port number specified on each endpoint in the network endpoint
  // group. For instance group backends, the health check uses the port number
  // specified for the backend service's named port defined in the instance
  // group's named ports.
  optional string port_specification = 4 [json_name = "portSpecification"];

  // Specifies the type of proxy header to append before sending data to the
  // backend, either NONE or PROXY_V1. The default is NONE.
  // NONE:
  // PROXY_V1:
  optional string proxy_header = 5 [json_name = "proxyHeader"];

  // The request path of the HTTP/2 health check request. The default value is
  // /.
  optional string request_path = 6 [json_name = "requestPath"];

  // Creates a content-based HTTP/2 health check. In addition to the required
  // HTTP 200 (OK) status code, you can configure the health check to pass only
  // when the backend sends this specific ASCII response string within the first
  // 1024 bytes of the HTTP response body. For details, see:
  // https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-http
  optional string response = 7 [json_name = "response"];
}

message HTTPHealthCheck {
  // The value of the host header in the HTTP health check request. If left
  // empty (default value), the host header is set to the destination IP address
  // to which health check packets are sent. The destination IP address depends
  // on the type of load balancer. For details, see:
  // https://cloud.google.com/load-balancing/docs/health-check-concepts#hc-packet-dest
  optional string host = 1 [json_name = "host"];

  // The TCP port number to which the health check prober sends packets. The
  // default value is 80. Valid values are 1 through 65535.
  optional int32 port = 2 [json_name = "port"];

  // Not supported.
  optional string port_name = 3 [json_name = "portName"];

  // 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
  // the port field in the health check. Supported by backend services for
  // pass-through load balancers and backend services for proxy load balancers.
  // Also supported in legacy HTTP health checks for 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 pass-through 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.
  // USE_FIXED_PORT: The port number in the health check's port is used for
  // health checking. Applies to network endpoint group and instance group
  // backends.
  // USE_NAMED_PORT: Not supported.
  // USE_SERVING_PORT: For network endpoint group backends, the health check
  // uses the port number specified on each endpoint in the network endpoint
  // group. For instance group backends, the health check uses the port number
  // specified for the backend service's named port defined in the instance
  // group's named ports.
  optional string port_specification = 4 [json_name = "portSpecification"];

  // Specifies the type of proxy header to append before sending data to the
  // backend, either NONE or PROXY_V1. The default is NONE.
  // NONE:
  // PROXY_V1:
  optional string proxy_header = 5 [json_name = "proxyHeader"];

  // The request path of the HTTP health check request. The default value is /.
  optional string request_path = 6 [json_name = "requestPath"];

  // Creates a content-based HTTP health check. In addition to the required HTTP
  // 200 (OK) status code, you can configure the health check to pass only when
  // the backend sends this specific ASCII response string within the first 1024
  // bytes of the HTTP response body. For details, see:
  // https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-http
  optional string response = 7 [json_name = "response"];
}

message HTTPSHealthCheck {
  // The value of the host header in the HTTPS health check request. If left
  // empty (default value), the host header is set to the destination IP address
  // to which health check packets are sent. The destination IP address depends
  // on the type of load balancer. For details, see:
  // https://cloud.google.com/load-balancing/docs/health-check-concepts#hc-packet-dest
  optional string host = 1 [json_name = "host"];

  // The TCP port number to which the health check prober sends packets. The
  // default value is 443. Valid values are 1 through 65535.
  optional int32 port = 2 [json_name = "port"];

  // Not supported.
  optional string port_name = 3 [json_name = "portName"];

  // 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
  // the port field in the health check. Supported by backend services for
  // pass-through 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 pass-through 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.
  // USE_FIXED_PORT: The port number in the health check's port is used for
  // health checking. Applies to network endpoint group and instance group
  // backends.
  // USE_NAMED_PORT: Not supported.
  // USE_SERVING_PORT: For network endpoint group backends, the health check
  // uses the port number specified on each endpoint in the network endpoint
  // group. For instance group backends, the health check uses the port number
  // specified for the backend service's named port defined in the instance
  // group's named ports.
  optional string port_specification = 4 [json_name = "portSpecification"];

  // Specifies the type of proxy header to append before sending data to the
  // backend, either NONE or PROXY_V1. The default is NONE.
  // NONE:
  // PROXY_V1:
  optional string proxy_header = 5 [json_name = "proxyHeader"];

  // The request path of the HTTPS health check request. The default value is /.
  optional string request_path = 6 [json_name = "requestPath"];

  // Creates a content-based HTTPS health check. In addition to the required
  // HTTP 200 (OK) status code, you can configure the health check to pass only
  // when the backend sends this specific ASCII response string within the first
  // 1024 bytes of the HTTP response body. For details, see:
  // https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-http
  optional string response = 7 [json_name = "response"];
}

// Represents a health check resource. Google Compute Engine has two health
// check resources: *
// [Regional](/compute/docs/reference/rest/v1/regionHealthChecks) *
// [Global](/compute/docs/reference/rest/v1/healthChecks) These health check
// resources can be used for load balancing and for autohealing VMs in a managed
// instance group (MIG). **Load balancing** The following load balancer can use
// either regional or global health check: * Internal TCP/UDP load balancer The
// following load balancers require regional health check: * Internal HTTP(S)
// load balancer * Backend service-based network load balancer Traffic Director
// and the following load balancers require global health check: * External
// HTTP(S) load balancer * TCP proxy load balancer * SSL proxy load balancer The
// following load balancer require [legacy HTTP health
// checks](/compute/docs/reference/rest/v1/httpHealthChecks): * Target
// pool-based network load balancer **Autohealing in MIGs** The health checks
// that you use for autohealing VMs in a MIG can be either regional or global.
// For more information, see Set up an application health check and autohealing.
// For more information, see Health checks overview.
message HealthCheck {
  // How often (in seconds) to send a health check. The default value is 5
  // seconds.
  optional int32 check_interval_sec = 1 [json_name = "checkIntervalSec"];

  // [Output Only] Creation timestamp in 3339 text format.
  optional string creation_timestamp = 2 [json_name = "creationTimestamp"];

  // An optional description of this resource. Provide this property when you
  // create the resource.
  optional string description = 3 [json_name = "description"];

  optional GRPCHealthCheck grpc_health_check = 4
      [json_name = "grpcHealthCheck"];

  // A so-far unhealthy instance will be marked healthy after this many
  // consecutive successes. The default value is 2.
  optional int32 healthy_threshold = 5 [json_name = "healthyThreshold"];

  optional HTTP2HealthCheck http2_health_check = 6
      [json_name = "http2HealthCheck"];

  optional HTTPHealthCheck http_health_check = 7
      [json_name = "httpHealthCheck"];

  optional HTTPSHealthCheck https_health_check = 8
      [json_name = "httpsHealthCheck"];

  // [Output Only] The unique identifier for the resource. This identifier is
  // defined by the server.
  optional string id = 9 [json_name = "id"];

  // Type of the resource.
  optional string kind = 10 [json_name = "kind"];

  // Configure logging on this health check.
  optional HealthCheckLogConfig log_config = 11 [json_name = "logConfig"];

  // Name of the resource. Provided by the client when the resource is created.
  // The name must be 1-63 characters long, and comply with RFC1035. For
  // example, a name that is 1-63 characters long, matches the regular
  // expression `[a-z]([-a-z0-9]*[a-z0-9])?`, and otherwise complies with
  // RFC1035. This regular expression describes a name where the first character
  // is a lowercase letter, and all following characters are a dash, lowercase
  // letter, or digit, except the last character, which isn't a dash.
  optional string name = 12 [json_name = "name"];

  // [Output Only] Region where the health check resides. Not applicable to
  // global health checks.
  optional string region = 13 [json_name = "region"];

  // [Output Only] Server-defined URL for the resource.
  optional string self_link = 14 [json_name = "selfLink"];

  optional SSLHealthCheck ssl_health_check = 15 [json_name = "sslHealthCheck"];

  optional TCPHealthCheck tcp_health_check = 16 [json_name = "tcpHealthCheck"];

  // How long (in seconds) to wait before claiming failure. The default value is
  // 5 seconds. It is invalid for timeoutSec to have greater value than
  // checkIntervalSec.
  optional int32 timeout_sec = 17 [json_name = "timeoutSec"];

  // Specifies the type of the healthCheck, either TCP, SSL, HTTP, HTTPS, HTTP2
  // or GRPC. Exactly one of the protocol-specific health check fields must be
  // specified, which must match type field.
  // GRPC:
  // HTTP:
  // HTTP2:
  // HTTPS:
  // INVALID:
  // SSL:
  // TCP:
  optional string type = 18 [json_name = "type"];

  // A so-far healthy instance will be marked unhealthy after this many
  // consecutive failures. The default value is 2.
  optional int32 unhealthy_threshold = 19 [json_name = "unhealthyThreshold"];
}

// Contains a list of HealthCheck resources.
message HealthCheckList {
  // [Output Only] Unique identifier for the resource; defined by the server.
  optional string id = 1 [json_name = "id"];

  // A list of HealthCheck resources.
  repeated HealthCheck items = 2 [json_name = "items"];

  // Type of resource.
  optional string kind = 3 [json_name = "kind"];

  // [Output Only] This token allows you to get the next page of results for
  // list requests. If the number of results is larger than maxResults, use the
  // nextPageToken as a value for the query parameter pageToken in the next list
  // request. Subsequent list requests will have their own nextPageToken to
  // continue paging through the results.
  optional string next_page_token = 4 [json_name = "nextPageToken"];

  // [Output Only] Server-defined URL for this resource.
  optional string self_link = 5 [json_name = "selfLink"];

  message Warning {
    // [Output Only] A warning code, if applicable. For example, Compute Engine
    // returns NO_RESULTS_ON_PAGE if there are no results in the response.
    // CLEANUP_FAILED: Warning about failed cleanup of transient changes made by
    // a failed operation.
    // DEPRECATED_RESOURCE_USED: A link to a deprecated resource was created.
    // DEPRECATED_TYPE_USED: When deploying and at least one of the resources
    // has a type marked as deprecated
    // DISK_SIZE_LARGER_THAN_IMAGE_SIZE: The user created a boot disk that is
    // larger than image size.
    // EXPERIMENTAL_TYPE_USED: When deploying and at least one of the resources
    // has a type marked as experimental
    // EXTERNAL_API_WARNING: Warning that is present in an external api call
    // FIELD_VALUE_OVERRIDEN: Warning that value of a field has been overridden.
    // Deprecated unused field.
    // INJECTED_KERNELS_DEPRECATED: The operation involved use of an injected
    // kernel, which is deprecated.
    // INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB: A WEIGHTED_MAGLEV backend
    // service is associated with a health check that is not of type
    // HTTP/HTTPS/HTTP2.
    // LARGE_DEPLOYMENT_WARNING: When deploying a deployment with a exceedingly
    // large number of resources
    // LIST_OVERHEAD_QUOTA_EXCEED: Resource can't be retrieved due to list
    // overhead quota exceed which captures the amount of resources filtered out
    // by user-defined list filter.
    // MISSING_TYPE_DEPENDENCY: A resource depends on a missing type
    // NEXT_HOP_ADDRESS_NOT_ASSIGNED: The route's nextHopIp address is not
    // assigned to an instance on the network.
    // NEXT_HOP_CANNOT_IP_FORWARD: The route's next hop instance cannot ip
    // forward.
    // NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE: The route's nextHopInstance URL
    // refers to an instance that does not have an ipv6 interface on the same
    // network as the route.
    // NEXT_HOP_INSTANCE_NOT_FOUND: The route's nextHopInstance URL refers to an
    // instance that does not exist.
    // NEXT_HOP_INSTANCE_NOT_ON_NETWORK: The route's nextHopInstance URL refers
    // to an instance that is not on the same network as the route.
    // NEXT_HOP_NOT_RUNNING: The route's next hop instance does not have a
    // status of RUNNING.
    // NOT_CRITICAL_ERROR: Error which is not critical. We decided to continue
    // the process despite the mentioned error.
    // NO_RESULTS_ON_PAGE: No results are present on a particular list page.
    // PARTIAL_SUCCESS: Success is reported, but some results may be missing due
    // to errors
    // REQUIRED_TOS_AGREEMENT: The user attempted to use a resource that
    // requires a TOS they have not accepted.
    // RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: Warning that a resource is in
    // use.
    // RESOURCE_NOT_DELETED: One or more of the resources set to auto-delete
    // could not be deleted because they were in use.
    // SCHEMA_VALIDATION_IGNORED: When a resource schema validation is ignored.
    // SINGLE_INSTANCE_PROPERTY_TEMPLATE: Instance template used in instance
    // group manager is valid as such, but its application does not make a lot
    // of sense, because it allows only single instance in instance group.
    // UNDECLARED_PROPERTIES: When undeclared properties in the schema are
    // present
    // UNREACHABLE: A given scope cannot be reached.
    optional string code = 1 [json_name = "code"];

    message DataItem {
      // [Output Only] A key that provides more detail on the warning being
      // returned. For example, for warnings where there are no results in a
      // list request for a particular zone, this key might be scope and the key
      // value might be the zone name. Other examples might be a key indicating
      // a deprecated resource and a suggested replacement, or a warning about
      // invalid network settings (for example, if an instance attempts to
      // perform IP forwarding but is not enabled for IP forwarding).
      optional string key = 1 [json_name = "key"];

      // [Output Only] A warning data value corresponding to the key.
      optional string value = 2 [json_name = "value"];
    }

    // [Output Only] Metadata about this warning in key: value format. For
    // example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
    repeated DataItem data = 2 [json_name = "data"];

    // [Output Only] A human-readable description of the warning code.
    optional string message = 3 [json_name = "message"];
  }

  // [Output Only] Informational warning message.
  optional Warning warning = 6 [json_name = "warning"];
}

// Configuration of logging on a health check. If logging is enabled, logs will
// be exported to Stackdriver.
message HealthCheckLogConfig {
  // Indicates whether or not to export logs. This is false by default, which
  // means no health check logging will be done.
  optional bool enable = 1 [json_name = "enable"];
}

message SSLHealthCheck {
  // The TCP port number to which the health check prober sends packets. The
  // default value is 443. Valid values are 1 through 65535.
  optional int32 port = 1 [json_name = "port"];

  // Not supported.
  optional string port_name = 2 [json_name = "portName"];

  // 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
  // the port field in the health check. Supported by backend services for
  // pass-through 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 pass-through 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.
  // USE_FIXED_PORT: The port number in the health check's port is used for
  // health checking. Applies to network endpoint group and instance group
  // backends.
  // USE_NAMED_PORT: Not supported.
  // USE_SERVING_PORT: For network endpoint group backends, the health check
  // uses the port number specified on each endpoint in the network endpoint
  // group. For instance group backends, the health check uses the port number
  // specified for the backend service's named port defined in the instance
  // group's named ports.
  optional string port_specification = 3 [json_name = "portSpecification"];

  // Specifies the type of proxy header to append before sending data to the
  // backend, either NONE or PROXY_V1. The default is NONE.
  // NONE:
  // PROXY_V1:
  optional string proxy_header = 4 [json_name = "proxyHeader"];

  // Instructs the health check prober to send this exact ASCII string, up to
  // 1024 bytes in length, after establishing the TCP connection and SSL
  // handshake.
  optional string request = 5 [json_name = "request"];

  // Creates a content-based SSL health check. In addition to establishing a TCP
  // connection and the TLS handshake, you can configure the health check to
  // pass only when the backend sends this exact response ASCII string, up to
  // 1024 bytes in length. For details, see:
  // https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-ssl-tcp
  optional string response = 6 [json_name = "response"];
}

message TCPHealthCheck {
  // The TCP port number to which the health check prober sends packets. The
  // default value is 80. Valid values are 1 through 65535.
  optional int32 port = 1 [json_name = "port"];

  // Not supported.
  optional string port_name = 2 [json_name = "portName"];

  // 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
  // the port field in the health check. Supported by backend services for
  // pass-through 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 pass-through 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.
  // USE_FIXED_PORT: The port number in the health check's port is used for
  // health checking. Applies to network endpoint group and instance group
  // backends.
  // USE_NAMED_PORT: Not supported.
  // USE_SERVING_PORT: For network endpoint group backends, the health check
  // uses the port number specified on each endpoint in the network endpoint
  // group. For instance group backends, the health check uses the port number
  // specified for the backend service's named port defined in the instance
  // group's named ports.
  optional string port_specification = 3 [json_name = "portSpecification"];

  // Specifies the type of proxy header to append before sending data to the
  // backend, either NONE or PROXY_V1. The default is NONE.
  // NONE:
  // PROXY_V1:
  optional string proxy_header = 4 [json_name = "proxyHeader"];

  // Instructs the health check prober to send this exact ASCII string, up to
  // 1024 bytes in length, after establishing the TCP connection.
  optional string request = 5 [json_name = "request"];

  // Creates a content-based TCP health check. In addition to establishing a TCP
  // connection, you can configure the health check to pass only when the
  // backend sends this exact response ASCII string, up to 1024 bytes in length.
  // For details, see:
  // https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-ssl-tcp
  optional string response = 6 [json_name = "response"];
}
