v2/doc/google/logging/type/doc_http_request.js

// Copyright 2019 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.

// Note: this file is purely for documentation. Any contents are not expected
// to be loaded as the JS file.

/**
 * A common proto for logging HTTP requests. Only contains semantics
 * defined by the HTTP specification. Product-specific logging
 * information MUST be defined in a separate message.
 *
 * @property {string} requestMethod
 *   The request method. Examples: `"GET"`, `"HEAD"`, `"PUT"`, `"POST"`.
 *
 * @property {string} requestUrl
 *   The scheme (http, https), the host name, the path and the query
 *   portion of the URL that was requested.
 *   Example: `"http://example.com/some/info?color=red"`.
 *
 * @property {number} requestSize
 *   The size of the HTTP request message in bytes, including the request
 *   headers and the request body.
 *
 * @property {number} status
 *   The response code indicating the status of response.
 *   Examples: 200, 404.
 *
 * @property {number} responseSize
 *   The size of the HTTP response message sent back to the client, in bytes,
 *   including the response headers and the response body.
 *
 * @property {string} userAgent
 *   The user agent sent by the client. Example:
 *   `"Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Q312461; .NET
 *   CLR 1.0.3705)"`.
 *
 * @property {string} remoteIp
 *   The IP address (IPv4 or IPv6) of the client that issued the HTTP
 *   request. Examples: `"192.168.1.1"`, `"FE80::0202:B3FF:FE1E:8329"`.
 *
 * @property {string} serverIp
 *   The IP address (IPv4 or IPv6) of the origin server that the request was
 *   sent to.
 *
 * @property {string} referer
 *   The referer URL of the request, as defined in
 *   [HTTP/1.1 Header Field
 *   Definitions](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html).
 *
 * @property {Object} latency
 *   The request processing latency on the server, from the time the request was
 *   received until the response was sent.
 *
 *   This object should have the same structure as [Duration]{@link google.protobuf.Duration}
 *
 * @property {boolean} cacheLookup
 *   Whether or not a cache lookup was attempted.
 *
 * @property {boolean} cacheHit
 *   Whether or not an entity was served from cache
 *   (with or without validation).
 *
 * @property {boolean} cacheValidatedWithOriginServer
 *   Whether or not the response was validated with the origin server before
 *   being served from cache. This field is only meaningful if `cache_hit` is
 *   True.
 *
 * @property {number} cacheFillBytes
 *   The number of HTTP response bytes inserted into cache. Set only when a
 *   cache fill was attempted.
 *
 * @property {string} protocol
 *   Protocol used for the request. Examples: "HTTP/1.1", "HTTP/2", "websocket"
 *
 * @typedef HttpRequest
 * @memberof google.logging.type
 * @see [google.logging.type.HttpRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/logging/type/http_request.proto}
 */
const HttpRequest = {
  // This is for documentation. Actual contents will be loaded by gRPC.
};