summaryrefslogtreecommitdiffstats
path: root/components/data_reduction_proxy/proto/client_config.proto
blob: f2c796c12be0d75b744efcdd71299ab15e4bb1e4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

syntax = "proto2";

option optimize_for = LITE_RUNTIME;

package data_reduction_proxy;

// The client configuration information for using the Data Saver service.
message ClientConfig {
  // An opaque per-session key assigned by the server which permits use of the
  // Data Saver HTTP proxy servers.
  optional string session_key = 1;
  // The time at which the secure_session_key is no longer valid. This is
  // enforced by the Data Saver service, and is provided to permit the client
  // to request a new session key prior to expiration.
  optional Timestamp expire_time = 2;
  // The DataSaver proxy configuration that is valid for the session.
  optional ProxyConfig proxy_config = 3;
}

// A Timestamp represents a point in time independent of any time zone
// or calendar, represented as seconds and fractions of seconds at
// nanosecond resolution in UTC Epoch time.
message Timestamp {
  // Represents seconds of UTC time since Unix epoch
  // 1970-01-01T00:00:00Z. Must be from from 0001-01-01T00:00:00Z to
  // 9999-12-31T23:59:59Z inclusive.
  optional int64 seconds = 1;

  // Non-negative fractions of a second at nanosecond resolution. Negative
  // second values with fractions must still have non-negative nanos values
  // that count forward in time. Must be from 0 to 999,999,999
  // inclusive.
  optional int32 nanos = 2;
}

// Data Saver proxy configuration.
message ProxyConfig {
  // Provides proxy server information for HTTP URIs.
  repeated ProxyServer http_proxy_servers = 1;
}

// Configuration information for a specific proxy server.
message ProxyServer {
  // The scheme of the proxy server.
  enum ProxyScheme {
    // The proxy scheme is unspecified.
    UNSPECIFIED = 0;
    // HTTP
    HTTP = 1;
    // HTTPS
    HTTPS = 2;
    // HTTPS over QUIC
    QUIC = 3;
  }

  // The scheme for the proxy server.
  optional ProxyScheme scheme = 1;
  // The host name for the proxy server.
  optional string host = 2;
  // The port number for the proxy server.
  optional int32 port = 3;
}

// Request object to create a client configuration object.
message CreateClientConfigRequest {
}