xref: /aosp_15_r20/external/googleapis/google/monitoring/v3/uptime.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
1*d5c09012SAndroid Build Coastguard Worker// Copyright 2023 Google LLC
2*d5c09012SAndroid Build Coastguard Worker//
3*d5c09012SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*d5c09012SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*d5c09012SAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*d5c09012SAndroid Build Coastguard Worker//
7*d5c09012SAndroid Build Coastguard Worker//     http://www.apache.org/licenses/LICENSE-2.0
8*d5c09012SAndroid Build Coastguard Worker//
9*d5c09012SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*d5c09012SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*d5c09012SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*d5c09012SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*d5c09012SAndroid Build Coastguard Worker// limitations under the License.
14*d5c09012SAndroid Build Coastguard Worker
15*d5c09012SAndroid Build Coastguard Workersyntax = "proto3";
16*d5c09012SAndroid Build Coastguard Worker
17*d5c09012SAndroid Build Coastguard Workerpackage google.monitoring.v3;
18*d5c09012SAndroid Build Coastguard Worker
19*d5c09012SAndroid Build Coastguard Workerimport "google/api/field_behavior.proto";
20*d5c09012SAndroid Build Coastguard Workerimport "google/api/monitored_resource.proto";
21*d5c09012SAndroid Build Coastguard Workerimport "google/api/resource.proto";
22*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/duration.proto";
23*d5c09012SAndroid Build Coastguard Worker
24*d5c09012SAndroid Build Coastguard Workeroption csharp_namespace = "Google.Cloud.Monitoring.V3";
25*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/monitoring/apiv3/v2/monitoringpb;monitoringpb";
26*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true;
27*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "UptimeProto";
28*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.monitoring.v3";
29*d5c09012SAndroid Build Coastguard Workeroption php_namespace = "Google\\Cloud\\Monitoring\\V3";
30*d5c09012SAndroid Build Coastguard Workeroption ruby_package = "Google::Cloud::Monitoring::V3";
31*d5c09012SAndroid Build Coastguard Workeroption (google.api.resource_definition) = {
32*d5c09012SAndroid Build Coastguard Worker  type: "cloudfunctions.googleapis.com/Function"
33*d5c09012SAndroid Build Coastguard Worker  pattern: "projects/{project}/locations/{location}/functions/{function}"
34*d5c09012SAndroid Build Coastguard Worker};
35*d5c09012SAndroid Build Coastguard Worker
36*d5c09012SAndroid Build Coastguard Worker// An internal checker allows Uptime checks to run on private/internal GCP
37*d5c09012SAndroid Build Coastguard Worker// resources.
38*d5c09012SAndroid Build Coastguard Workermessage InternalChecker {
39*d5c09012SAndroid Build Coastguard Worker  option deprecated = true;
40*d5c09012SAndroid Build Coastguard Worker
41*d5c09012SAndroid Build Coastguard Worker  // Operational states for an internal checker.
42*d5c09012SAndroid Build Coastguard Worker  enum State {
43*d5c09012SAndroid Build Coastguard Worker    // An internal checker should never be in the unspecified state.
44*d5c09012SAndroid Build Coastguard Worker    UNSPECIFIED = 0;
45*d5c09012SAndroid Build Coastguard Worker
46*d5c09012SAndroid Build Coastguard Worker    // The checker is being created, provisioned, and configured. A checker in
47*d5c09012SAndroid Build Coastguard Worker    // this state can be returned by `ListInternalCheckers` or
48*d5c09012SAndroid Build Coastguard Worker    // `GetInternalChecker`, as well as by examining the [long running
49*d5c09012SAndroid Build Coastguard Worker    // Operation](https://cloud.google.com/apis/design/design_patterns#long_running_operations)
50*d5c09012SAndroid Build Coastguard Worker    // that created it.
51*d5c09012SAndroid Build Coastguard Worker    CREATING = 1;
52*d5c09012SAndroid Build Coastguard Worker
53*d5c09012SAndroid Build Coastguard Worker    // The checker is running and available for use. A checker in this state
54*d5c09012SAndroid Build Coastguard Worker    // can be returned by `ListInternalCheckers` or `GetInternalChecker` as
55*d5c09012SAndroid Build Coastguard Worker    // well as by examining the [long running
56*d5c09012SAndroid Build Coastguard Worker    // Operation](https://cloud.google.com/apis/design/design_patterns#long_running_operations)
57*d5c09012SAndroid Build Coastguard Worker    // that created it.
58*d5c09012SAndroid Build Coastguard Worker    // If a checker is being torn down, it is neither visible nor usable, so
59*d5c09012SAndroid Build Coastguard Worker    // there is no "deleting" or "down" state.
60*d5c09012SAndroid Build Coastguard Worker    RUNNING = 2;
61*d5c09012SAndroid Build Coastguard Worker  }
62*d5c09012SAndroid Build Coastguard Worker
63*d5c09012SAndroid Build Coastguard Worker  // A unique resource name for this InternalChecker. The format is:
64*d5c09012SAndroid Build Coastguard Worker  //
65*d5c09012SAndroid Build Coastguard Worker  //     projects/[PROJECT_ID_OR_NUMBER]/internalCheckers/[INTERNAL_CHECKER_ID]
66*d5c09012SAndroid Build Coastguard Worker  //
67*d5c09012SAndroid Build Coastguard Worker  // `[PROJECT_ID_OR_NUMBER]` is the Cloud Monitoring Metrics Scope project for
68*d5c09012SAndroid Build Coastguard Worker  // the Uptime check config associated with the internal checker.
69*d5c09012SAndroid Build Coastguard Worker  string name = 1;
70*d5c09012SAndroid Build Coastguard Worker
71*d5c09012SAndroid Build Coastguard Worker  // The checker's human-readable name. The display name
72*d5c09012SAndroid Build Coastguard Worker  // should be unique within a Cloud Monitoring Metrics Scope in order to make
73*d5c09012SAndroid Build Coastguard Worker  // it easier to identify; however, uniqueness is not enforced.
74*d5c09012SAndroid Build Coastguard Worker  string display_name = 2;
75*d5c09012SAndroid Build Coastguard Worker
76*d5c09012SAndroid Build Coastguard Worker  // The [GCP VPC network](https://cloud.google.com/vpc/docs/vpc) where the
77*d5c09012SAndroid Build Coastguard Worker  // internal resource lives (ex: "default").
78*d5c09012SAndroid Build Coastguard Worker  string network = 3;
79*d5c09012SAndroid Build Coastguard Worker
80*d5c09012SAndroid Build Coastguard Worker  // The GCP zone the Uptime check should egress from. Only respected for
81*d5c09012SAndroid Build Coastguard Worker  // internal Uptime checks, where internal_network is specified.
82*d5c09012SAndroid Build Coastguard Worker  string gcp_zone = 4;
83*d5c09012SAndroid Build Coastguard Worker
84*d5c09012SAndroid Build Coastguard Worker  // The GCP project ID where the internal checker lives. Not necessary
85*d5c09012SAndroid Build Coastguard Worker  // the same as the Metrics Scope project.
86*d5c09012SAndroid Build Coastguard Worker  string peer_project_id = 6;
87*d5c09012SAndroid Build Coastguard Worker
88*d5c09012SAndroid Build Coastguard Worker  // The current operational state of the internal checker.
89*d5c09012SAndroid Build Coastguard Worker  State state = 7;
90*d5c09012SAndroid Build Coastguard Worker}
91*d5c09012SAndroid Build Coastguard Worker
92*d5c09012SAndroid Build Coastguard Worker// Describes a Synthetic Monitor to be invoked by Uptime.
93*d5c09012SAndroid Build Coastguard Workermessage SyntheticMonitorTarget {
94*d5c09012SAndroid Build Coastguard Worker  // A Synthetic Monitor deployed to a Cloud Functions V2 instance.
95*d5c09012SAndroid Build Coastguard Worker  message CloudFunctionV2Target {
96*d5c09012SAndroid Build Coastguard Worker    // Required. Fully qualified GCFv2 resource name
97*d5c09012SAndroid Build Coastguard Worker    // i.e. `projects/{project}/locations/{location}/functions/{function}`
98*d5c09012SAndroid Build Coastguard Worker    // Required.
99*d5c09012SAndroid Build Coastguard Worker    string name = 1 [
100*d5c09012SAndroid Build Coastguard Worker      (google.api.field_behavior) = REQUIRED,
101*d5c09012SAndroid Build Coastguard Worker      (google.api.resource_reference) = {
102*d5c09012SAndroid Build Coastguard Worker        type: "cloudfunctions.googleapis.com/Function"
103*d5c09012SAndroid Build Coastguard Worker      }
104*d5c09012SAndroid Build Coastguard Worker    ];
105*d5c09012SAndroid Build Coastguard Worker
106*d5c09012SAndroid Build Coastguard Worker    // Output only. The `cloud_run_revision` Monitored Resource associated with
107*d5c09012SAndroid Build Coastguard Worker    // the GCFv2. The Synthetic Monitor execution results (metrics, logs, and
108*d5c09012SAndroid Build Coastguard Worker    // spans) are reported against this Monitored Resource. This field is output
109*d5c09012SAndroid Build Coastguard Worker    // only.
110*d5c09012SAndroid Build Coastguard Worker    google.api.MonitoredResource cloud_run_revision = 2
111*d5c09012SAndroid Build Coastguard Worker        [(google.api.field_behavior) = OUTPUT_ONLY];
112*d5c09012SAndroid Build Coastguard Worker  }
113*d5c09012SAndroid Build Coastguard Worker
114*d5c09012SAndroid Build Coastguard Worker  // Specifies a Synthetic Monitor's execution stack.
115*d5c09012SAndroid Build Coastguard Worker  oneof target {
116*d5c09012SAndroid Build Coastguard Worker    // Target a Synthetic Monitor GCFv2 instance.
117*d5c09012SAndroid Build Coastguard Worker    CloudFunctionV2Target cloud_function_v2 = 1;
118*d5c09012SAndroid Build Coastguard Worker  }
119*d5c09012SAndroid Build Coastguard Worker}
120*d5c09012SAndroid Build Coastguard Worker
121*d5c09012SAndroid Build Coastguard Worker// This message configures which resources and services to monitor for
122*d5c09012SAndroid Build Coastguard Worker// availability.
123*d5c09012SAndroid Build Coastguard Workermessage UptimeCheckConfig {
124*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
125*d5c09012SAndroid Build Coastguard Worker    type: "monitoring.googleapis.com/UptimeCheckConfig"
126*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/uptimeCheckConfigs/{uptime_check_config}"
127*d5c09012SAndroid Build Coastguard Worker    pattern: "organizations/{organization}/uptimeCheckConfigs/{uptime_check_config}"
128*d5c09012SAndroid Build Coastguard Worker    pattern: "folders/{folder}/uptimeCheckConfigs/{uptime_check_config}"
129*d5c09012SAndroid Build Coastguard Worker    pattern: "*"
130*d5c09012SAndroid Build Coastguard Worker  };
131*d5c09012SAndroid Build Coastguard Worker
132*d5c09012SAndroid Build Coastguard Worker  // The resource submessage for group checks. It can be used instead of a
133*d5c09012SAndroid Build Coastguard Worker  // monitored resource, when multiple resources are being monitored.
134*d5c09012SAndroid Build Coastguard Worker  message ResourceGroup {
135*d5c09012SAndroid Build Coastguard Worker    // The group of resources being monitored. Should be only the `[GROUP_ID]`,
136*d5c09012SAndroid Build Coastguard Worker    // and not the full-path
137*d5c09012SAndroid Build Coastguard Worker    // `projects/[PROJECT_ID_OR_NUMBER]/groups/[GROUP_ID]`.
138*d5c09012SAndroid Build Coastguard Worker    string group_id = 1;
139*d5c09012SAndroid Build Coastguard Worker
140*d5c09012SAndroid Build Coastguard Worker    // The resource type of the group members.
141*d5c09012SAndroid Build Coastguard Worker    GroupResourceType resource_type = 2;
142*d5c09012SAndroid Build Coastguard Worker  }
143*d5c09012SAndroid Build Coastguard Worker
144*d5c09012SAndroid Build Coastguard Worker  // Information involved in sending ICMP pings alongside public HTTP/TCP
145*d5c09012SAndroid Build Coastguard Worker  // checks. For HTTP, the pings are performed for each part of the redirect
146*d5c09012SAndroid Build Coastguard Worker  // chain.
147*d5c09012SAndroid Build Coastguard Worker  message PingConfig {
148*d5c09012SAndroid Build Coastguard Worker    // Number of ICMP pings. A maximum of 3 ICMP pings is currently supported.
149*d5c09012SAndroid Build Coastguard Worker    int32 pings_count = 1;
150*d5c09012SAndroid Build Coastguard Worker  }
151*d5c09012SAndroid Build Coastguard Worker
152*d5c09012SAndroid Build Coastguard Worker  // Information involved in an HTTP/HTTPS Uptime check request.
153*d5c09012SAndroid Build Coastguard Worker  message HttpCheck {
154*d5c09012SAndroid Build Coastguard Worker    // The HTTP request method options.
155*d5c09012SAndroid Build Coastguard Worker    enum RequestMethod {
156*d5c09012SAndroid Build Coastguard Worker      // No request method specified.
157*d5c09012SAndroid Build Coastguard Worker      METHOD_UNSPECIFIED = 0;
158*d5c09012SAndroid Build Coastguard Worker
159*d5c09012SAndroid Build Coastguard Worker      // GET request.
160*d5c09012SAndroid Build Coastguard Worker      GET = 1;
161*d5c09012SAndroid Build Coastguard Worker
162*d5c09012SAndroid Build Coastguard Worker      // POST request.
163*d5c09012SAndroid Build Coastguard Worker      POST = 2;
164*d5c09012SAndroid Build Coastguard Worker    }
165*d5c09012SAndroid Build Coastguard Worker
166*d5c09012SAndroid Build Coastguard Worker    // The authentication parameters to provide to the specified resource or
167*d5c09012SAndroid Build Coastguard Worker    // URL that requires a username and password. Currently, only
168*d5c09012SAndroid Build Coastguard Worker    // [Basic HTTP authentication](https://tools.ietf.org/html/rfc7617) is
169*d5c09012SAndroid Build Coastguard Worker    // supported in Uptime checks.
170*d5c09012SAndroid Build Coastguard Worker    message BasicAuthentication {
171*d5c09012SAndroid Build Coastguard Worker      // The username to use when authenticating with the HTTP server.
172*d5c09012SAndroid Build Coastguard Worker      string username = 1;
173*d5c09012SAndroid Build Coastguard Worker
174*d5c09012SAndroid Build Coastguard Worker      // The password to use when authenticating with the HTTP server.
175*d5c09012SAndroid Build Coastguard Worker      string password = 2;
176*d5c09012SAndroid Build Coastguard Worker    }
177*d5c09012SAndroid Build Coastguard Worker
178*d5c09012SAndroid Build Coastguard Worker    // Header options corresponding to the content type of a HTTP request body.
179*d5c09012SAndroid Build Coastguard Worker    enum ContentType {
180*d5c09012SAndroid Build Coastguard Worker      // No content type specified.
181*d5c09012SAndroid Build Coastguard Worker      TYPE_UNSPECIFIED = 0;
182*d5c09012SAndroid Build Coastguard Worker
183*d5c09012SAndroid Build Coastguard Worker      // `body` is in URL-encoded form. Equivalent to setting the `Content-Type`
184*d5c09012SAndroid Build Coastguard Worker      // to `application/x-www-form-urlencoded` in the HTTP request.
185*d5c09012SAndroid Build Coastguard Worker      URL_ENCODED = 1;
186*d5c09012SAndroid Build Coastguard Worker
187*d5c09012SAndroid Build Coastguard Worker      // `body` is in `custom_content_type` form. Equivalent to setting the
188*d5c09012SAndroid Build Coastguard Worker      // `Content-Type` to the contents of `custom_content_type` in the HTTP
189*d5c09012SAndroid Build Coastguard Worker      // request.
190*d5c09012SAndroid Build Coastguard Worker      USER_PROVIDED = 2;
191*d5c09012SAndroid Build Coastguard Worker    }
192*d5c09012SAndroid Build Coastguard Worker
193*d5c09012SAndroid Build Coastguard Worker    // A status to accept. Either a status code class like "2xx", or an integer
194*d5c09012SAndroid Build Coastguard Worker    // status code like "200".
195*d5c09012SAndroid Build Coastguard Worker    message ResponseStatusCode {
196*d5c09012SAndroid Build Coastguard Worker      // An HTTP status code class.
197*d5c09012SAndroid Build Coastguard Worker      enum StatusClass {
198*d5c09012SAndroid Build Coastguard Worker        // Default value that matches no status codes.
199*d5c09012SAndroid Build Coastguard Worker        STATUS_CLASS_UNSPECIFIED = 0;
200*d5c09012SAndroid Build Coastguard Worker
201*d5c09012SAndroid Build Coastguard Worker        // The class of status codes between 100 and 199.
202*d5c09012SAndroid Build Coastguard Worker        STATUS_CLASS_1XX = 100;
203*d5c09012SAndroid Build Coastguard Worker
204*d5c09012SAndroid Build Coastguard Worker        // The class of status codes between 200 and 299.
205*d5c09012SAndroid Build Coastguard Worker        STATUS_CLASS_2XX = 200;
206*d5c09012SAndroid Build Coastguard Worker
207*d5c09012SAndroid Build Coastguard Worker        // The class of status codes between 300 and 399.
208*d5c09012SAndroid Build Coastguard Worker        STATUS_CLASS_3XX = 300;
209*d5c09012SAndroid Build Coastguard Worker
210*d5c09012SAndroid Build Coastguard Worker        // The class of status codes between 400 and 499.
211*d5c09012SAndroid Build Coastguard Worker        STATUS_CLASS_4XX = 400;
212*d5c09012SAndroid Build Coastguard Worker
213*d5c09012SAndroid Build Coastguard Worker        // The class of status codes between 500 and 599.
214*d5c09012SAndroid Build Coastguard Worker        STATUS_CLASS_5XX = 500;
215*d5c09012SAndroid Build Coastguard Worker
216*d5c09012SAndroid Build Coastguard Worker        // The class of all status codes.
217*d5c09012SAndroid Build Coastguard Worker        STATUS_CLASS_ANY = 1000;
218*d5c09012SAndroid Build Coastguard Worker      }
219*d5c09012SAndroid Build Coastguard Worker
220*d5c09012SAndroid Build Coastguard Worker      // Either a specific value or a class of status codes.
221*d5c09012SAndroid Build Coastguard Worker      oneof status_code {
222*d5c09012SAndroid Build Coastguard Worker        // A status code to accept.
223*d5c09012SAndroid Build Coastguard Worker        int32 status_value = 1;
224*d5c09012SAndroid Build Coastguard Worker
225*d5c09012SAndroid Build Coastguard Worker        // A class of status codes to accept.
226*d5c09012SAndroid Build Coastguard Worker        StatusClass status_class = 2;
227*d5c09012SAndroid Build Coastguard Worker      }
228*d5c09012SAndroid Build Coastguard Worker    }
229*d5c09012SAndroid Build Coastguard Worker
230*d5c09012SAndroid Build Coastguard Worker    // Contains information needed for generating an
231*d5c09012SAndroid Build Coastguard Worker    // [OpenID Connect
232*d5c09012SAndroid Build Coastguard Worker    // token](https://developers.google.com/identity/protocols/OpenIDConnect).
233*d5c09012SAndroid Build Coastguard Worker    // The OIDC token will be generated for the Monitoring service agent service
234*d5c09012SAndroid Build Coastguard Worker    // account.
235*d5c09012SAndroid Build Coastguard Worker    message ServiceAgentAuthentication {
236*d5c09012SAndroid Build Coastguard Worker      // Type of authentication.
237*d5c09012SAndroid Build Coastguard Worker      enum ServiceAgentAuthenticationType {
238*d5c09012SAndroid Build Coastguard Worker        // Default value, will result in OIDC Authentication.
239*d5c09012SAndroid Build Coastguard Worker        SERVICE_AGENT_AUTHENTICATION_TYPE_UNSPECIFIED = 0;
240*d5c09012SAndroid Build Coastguard Worker
241*d5c09012SAndroid Build Coastguard Worker        // OIDC Authentication
242*d5c09012SAndroid Build Coastguard Worker        OIDC_TOKEN = 1;
243*d5c09012SAndroid Build Coastguard Worker      }
244*d5c09012SAndroid Build Coastguard Worker
245*d5c09012SAndroid Build Coastguard Worker      // Type of authentication.
246*d5c09012SAndroid Build Coastguard Worker      ServiceAgentAuthenticationType type = 1;
247*d5c09012SAndroid Build Coastguard Worker    }
248*d5c09012SAndroid Build Coastguard Worker
249*d5c09012SAndroid Build Coastguard Worker    // The HTTP request method to use for the check. If set to
250*d5c09012SAndroid Build Coastguard Worker    // `METHOD_UNSPECIFIED` then `request_method` defaults to `GET`.
251*d5c09012SAndroid Build Coastguard Worker    RequestMethod request_method = 8;
252*d5c09012SAndroid Build Coastguard Worker
253*d5c09012SAndroid Build Coastguard Worker    // If `true`, use HTTPS instead of HTTP to run the check.
254*d5c09012SAndroid Build Coastguard Worker    bool use_ssl = 1;
255*d5c09012SAndroid Build Coastguard Worker
256*d5c09012SAndroid Build Coastguard Worker    // Optional (defaults to "/"). The path to the page against which to run
257*d5c09012SAndroid Build Coastguard Worker    // the check. Will be combined with the `host` (specified within the
258*d5c09012SAndroid Build Coastguard Worker    // `monitored_resource`) and `port` to construct the full URL. If the
259*d5c09012SAndroid Build Coastguard Worker    // provided path does not begin with "/", a "/" will be prepended
260*d5c09012SAndroid Build Coastguard Worker    // automatically.
261*d5c09012SAndroid Build Coastguard Worker    string path = 2;
262*d5c09012SAndroid Build Coastguard Worker
263*d5c09012SAndroid Build Coastguard Worker    // Optional (defaults to 80 when `use_ssl` is `false`, and 443 when
264*d5c09012SAndroid Build Coastguard Worker    // `use_ssl` is `true`). The TCP port on the HTTP server against which to
265*d5c09012SAndroid Build Coastguard Worker    // run the check. Will be combined with host (specified within the
266*d5c09012SAndroid Build Coastguard Worker    // `monitored_resource`) and `path` to construct the full URL.
267*d5c09012SAndroid Build Coastguard Worker    int32 port = 3;
268*d5c09012SAndroid Build Coastguard Worker
269*d5c09012SAndroid Build Coastguard Worker    // The authentication information. Optional when creating an HTTP check;
270*d5c09012SAndroid Build Coastguard Worker    // defaults to empty.
271*d5c09012SAndroid Build Coastguard Worker    // Do not set both `auth_method` and `auth_info`.
272*d5c09012SAndroid Build Coastguard Worker    BasicAuthentication auth_info = 4;
273*d5c09012SAndroid Build Coastguard Worker
274*d5c09012SAndroid Build Coastguard Worker    // Boolean specifying whether to encrypt the header information.
275*d5c09012SAndroid Build Coastguard Worker    // Encryption should be specified for any headers related to authentication
276*d5c09012SAndroid Build Coastguard Worker    // that you do not wish to be seen when retrieving the configuration. The
277*d5c09012SAndroid Build Coastguard Worker    // server will be responsible for encrypting the headers.
278*d5c09012SAndroid Build Coastguard Worker    // On Get/List calls, if `mask_headers` is set to `true` then the headers
279*d5c09012SAndroid Build Coastguard Worker    // will be obscured with `******.`
280*d5c09012SAndroid Build Coastguard Worker    bool mask_headers = 5;
281*d5c09012SAndroid Build Coastguard Worker
282*d5c09012SAndroid Build Coastguard Worker    // The list of headers to send as part of the Uptime check request.
283*d5c09012SAndroid Build Coastguard Worker    // If two headers have the same key and different values, they should
284*d5c09012SAndroid Build Coastguard Worker    // be entered as a single header, with the value being a comma-separated
285*d5c09012SAndroid Build Coastguard Worker    // list of all the desired values as described at
286*d5c09012SAndroid Build Coastguard Worker    // https://www.w3.org/Protocols/rfc2616/rfc2616.txt (page 31).
287*d5c09012SAndroid Build Coastguard Worker    // Entering two separate headers with the same key in a Create call will
288*d5c09012SAndroid Build Coastguard Worker    // cause the first to be overwritten by the second.
289*d5c09012SAndroid Build Coastguard Worker    // The maximum number of headers allowed is 100.
290*d5c09012SAndroid Build Coastguard Worker    map<string, string> headers = 6;
291*d5c09012SAndroid Build Coastguard Worker
292*d5c09012SAndroid Build Coastguard Worker    // The content type header to use for the check. The following
293*d5c09012SAndroid Build Coastguard Worker    // configurations result in errors:
294*d5c09012SAndroid Build Coastguard Worker    // 1. Content type is specified in both the `headers` field and the
295*d5c09012SAndroid Build Coastguard Worker    // `content_type` field.
296*d5c09012SAndroid Build Coastguard Worker    // 2. Request method is `GET` and `content_type` is not `TYPE_UNSPECIFIED`
297*d5c09012SAndroid Build Coastguard Worker    // 3. Request method is `POST` and `content_type` is `TYPE_UNSPECIFIED`.
298*d5c09012SAndroid Build Coastguard Worker    // 4. Request method is `POST` and a "Content-Type" header is provided via
299*d5c09012SAndroid Build Coastguard Worker    // `headers` field. The `content_type` field should be used instead.
300*d5c09012SAndroid Build Coastguard Worker    ContentType content_type = 9;
301*d5c09012SAndroid Build Coastguard Worker
302*d5c09012SAndroid Build Coastguard Worker    // A user provided content type header to use for the check. The invalid
303*d5c09012SAndroid Build Coastguard Worker    // configurations outlined in the `content_type` field apply to
304*d5c09012SAndroid Build Coastguard Worker    // `custom_content_type`, as well as the following:
305*d5c09012SAndroid Build Coastguard Worker    // 1. `content_type` is `URL_ENCODED` and `custom_content_type` is set.
306*d5c09012SAndroid Build Coastguard Worker    // 2. `content_type` is `USER_PROVIDED` and `custom_content_type` is not
307*d5c09012SAndroid Build Coastguard Worker    // set.
308*d5c09012SAndroid Build Coastguard Worker    string custom_content_type = 13;
309*d5c09012SAndroid Build Coastguard Worker
310*d5c09012SAndroid Build Coastguard Worker    // Boolean specifying whether to include SSL certificate validation as a
311*d5c09012SAndroid Build Coastguard Worker    // part of the Uptime check. Only applies to checks where
312*d5c09012SAndroid Build Coastguard Worker    // `monitored_resource` is set to `uptime_url`. If `use_ssl` is `false`,
313*d5c09012SAndroid Build Coastguard Worker    // setting `validate_ssl` to `true` has no effect.
314*d5c09012SAndroid Build Coastguard Worker    bool validate_ssl = 7;
315*d5c09012SAndroid Build Coastguard Worker
316*d5c09012SAndroid Build Coastguard Worker    // The request body associated with the HTTP POST request. If `content_type`
317*d5c09012SAndroid Build Coastguard Worker    // is `URL_ENCODED`, the body passed in must be URL-encoded. Users can
318*d5c09012SAndroid Build Coastguard Worker    // provide a `Content-Length` header via the `headers` field or the API will
319*d5c09012SAndroid Build Coastguard Worker    // do so. If the `request_method` is `GET` and `body` is not empty, the API
320*d5c09012SAndroid Build Coastguard Worker    // will return an error. The maximum byte size is 1 megabyte.
321*d5c09012SAndroid Build Coastguard Worker    //
322*d5c09012SAndroid Build Coastguard Worker    // Note: If client libraries aren't used (which performs the conversion
323*d5c09012SAndroid Build Coastguard Worker    // automatically) base64 encode your `body` data since the field is of
324*d5c09012SAndroid Build Coastguard Worker    // `bytes` type.
325*d5c09012SAndroid Build Coastguard Worker    bytes body = 10;
326*d5c09012SAndroid Build Coastguard Worker
327*d5c09012SAndroid Build Coastguard Worker    // If present, the check will only pass if the HTTP response status code is
328*d5c09012SAndroid Build Coastguard Worker    // in this set of status codes. If empty, the HTTP status code will only
329*d5c09012SAndroid Build Coastguard Worker    // pass if the HTTP status code is 200-299.
330*d5c09012SAndroid Build Coastguard Worker    repeated ResponseStatusCode accepted_response_status_codes = 11;
331*d5c09012SAndroid Build Coastguard Worker
332*d5c09012SAndroid Build Coastguard Worker    // Contains information needed to add pings to an HTTP check.
333*d5c09012SAndroid Build Coastguard Worker    PingConfig ping_config = 12;
334*d5c09012SAndroid Build Coastguard Worker
335*d5c09012SAndroid Build Coastguard Worker    // This field is optional and should be set only by users interested in
336*d5c09012SAndroid Build Coastguard Worker    // an authenticated uptime check.
337*d5c09012SAndroid Build Coastguard Worker    // Do not set both `auth_method` and `auth_info`.
338*d5c09012SAndroid Build Coastguard Worker    oneof auth_method {
339*d5c09012SAndroid Build Coastguard Worker      // If specified, Uptime will generate and attach an OIDC JWT token for the
340*d5c09012SAndroid Build Coastguard Worker      // Monitoring service agent service account as an `Authorization` header
341*d5c09012SAndroid Build Coastguard Worker      // in the HTTP request when probing.
342*d5c09012SAndroid Build Coastguard Worker      ServiceAgentAuthentication service_agent_authentication = 14;
343*d5c09012SAndroid Build Coastguard Worker    }
344*d5c09012SAndroid Build Coastguard Worker  }
345*d5c09012SAndroid Build Coastguard Worker
346*d5c09012SAndroid Build Coastguard Worker  // Information required for a TCP Uptime check request.
347*d5c09012SAndroid Build Coastguard Worker  message TcpCheck {
348*d5c09012SAndroid Build Coastguard Worker    // The TCP port on the server against which to run the check. Will be
349*d5c09012SAndroid Build Coastguard Worker    // combined with host (specified within the `monitored_resource`) to
350*d5c09012SAndroid Build Coastguard Worker    // construct the full URL. Required.
351*d5c09012SAndroid Build Coastguard Worker    int32 port = 1;
352*d5c09012SAndroid Build Coastguard Worker
353*d5c09012SAndroid Build Coastguard Worker    // Contains information needed to add pings to a TCP check.
354*d5c09012SAndroid Build Coastguard Worker    PingConfig ping_config = 2;
355*d5c09012SAndroid Build Coastguard Worker  }
356*d5c09012SAndroid Build Coastguard Worker
357*d5c09012SAndroid Build Coastguard Worker  // Optional. Used to perform content matching. This allows matching based on
358*d5c09012SAndroid Build Coastguard Worker  // substrings and regular expressions, together with their negations. Only the
359*d5c09012SAndroid Build Coastguard Worker  // first 4&nbsp;MB of an HTTP or HTTPS check's response (and the first
360*d5c09012SAndroid Build Coastguard Worker  // 1&nbsp;MB of a TCP check's response) are examined for purposes of content
361*d5c09012SAndroid Build Coastguard Worker  // matching.
362*d5c09012SAndroid Build Coastguard Worker  message ContentMatcher {
363*d5c09012SAndroid Build Coastguard Worker    // Options to perform content matching.
364*d5c09012SAndroid Build Coastguard Worker    enum ContentMatcherOption {
365*d5c09012SAndroid Build Coastguard Worker      // No content matcher type specified (maintained for backward
366*d5c09012SAndroid Build Coastguard Worker      // compatibility, but deprecated for future use).
367*d5c09012SAndroid Build Coastguard Worker      // Treated as `CONTAINS_STRING`.
368*d5c09012SAndroid Build Coastguard Worker      CONTENT_MATCHER_OPTION_UNSPECIFIED = 0;
369*d5c09012SAndroid Build Coastguard Worker
370*d5c09012SAndroid Build Coastguard Worker      // Selects substring matching. The match succeeds if the output contains
371*d5c09012SAndroid Build Coastguard Worker      // the `content` string.  This is the default value for checks without
372*d5c09012SAndroid Build Coastguard Worker      // a `matcher` option, or where the value of `matcher` is
373*d5c09012SAndroid Build Coastguard Worker      // `CONTENT_MATCHER_OPTION_UNSPECIFIED`.
374*d5c09012SAndroid Build Coastguard Worker      CONTAINS_STRING = 1;
375*d5c09012SAndroid Build Coastguard Worker
376*d5c09012SAndroid Build Coastguard Worker      // Selects negation of substring matching. The match succeeds if the
377*d5c09012SAndroid Build Coastguard Worker      // output does _NOT_ contain the `content` string.
378*d5c09012SAndroid Build Coastguard Worker      NOT_CONTAINS_STRING = 2;
379*d5c09012SAndroid Build Coastguard Worker
380*d5c09012SAndroid Build Coastguard Worker      // Selects regular-expression matching. The match succeeds if the output
381*d5c09012SAndroid Build Coastguard Worker      // matches the regular expression specified in the `content` string.
382*d5c09012SAndroid Build Coastguard Worker      // Regex matching is only supported for HTTP/HTTPS checks.
383*d5c09012SAndroid Build Coastguard Worker      MATCHES_REGEX = 3;
384*d5c09012SAndroid Build Coastguard Worker
385*d5c09012SAndroid Build Coastguard Worker      // Selects negation of regular-expression matching. The match succeeds if
386*d5c09012SAndroid Build Coastguard Worker      // the output does _NOT_ match the regular expression specified in the
387*d5c09012SAndroid Build Coastguard Worker      // `content` string. Regex matching is only supported for HTTP/HTTPS
388*d5c09012SAndroid Build Coastguard Worker      // checks.
389*d5c09012SAndroid Build Coastguard Worker      NOT_MATCHES_REGEX = 4;
390*d5c09012SAndroid Build Coastguard Worker
391*d5c09012SAndroid Build Coastguard Worker      // Selects JSONPath matching. See `JsonPathMatcher` for details on when
392*d5c09012SAndroid Build Coastguard Worker      // the match succeeds. JSONPath matching is only supported for HTTP/HTTPS
393*d5c09012SAndroid Build Coastguard Worker      // checks.
394*d5c09012SAndroid Build Coastguard Worker      MATCHES_JSON_PATH = 5;
395*d5c09012SAndroid Build Coastguard Worker
396*d5c09012SAndroid Build Coastguard Worker      // Selects JSONPath matching. See `JsonPathMatcher` for details on when
397*d5c09012SAndroid Build Coastguard Worker      // the match succeeds. Succeeds when output does _NOT_ match as specified.
398*d5c09012SAndroid Build Coastguard Worker      // JSONPath is only supported for HTTP/HTTPS checks.
399*d5c09012SAndroid Build Coastguard Worker      NOT_MATCHES_JSON_PATH = 6;
400*d5c09012SAndroid Build Coastguard Worker    }
401*d5c09012SAndroid Build Coastguard Worker
402*d5c09012SAndroid Build Coastguard Worker    // Information needed to perform a JSONPath content match.
403*d5c09012SAndroid Build Coastguard Worker    // Used for `ContentMatcherOption::MATCHES_JSON_PATH` and
404*d5c09012SAndroid Build Coastguard Worker    // `ContentMatcherOption::NOT_MATCHES_JSON_PATH`.
405*d5c09012SAndroid Build Coastguard Worker    message JsonPathMatcher {
406*d5c09012SAndroid Build Coastguard Worker      // Options to perform JSONPath content matching.
407*d5c09012SAndroid Build Coastguard Worker      enum JsonPathMatcherOption {
408*d5c09012SAndroid Build Coastguard Worker        // No JSONPath matcher type specified (not valid).
409*d5c09012SAndroid Build Coastguard Worker        JSON_PATH_MATCHER_OPTION_UNSPECIFIED = 0;
410*d5c09012SAndroid Build Coastguard Worker
411*d5c09012SAndroid Build Coastguard Worker        // Selects 'exact string' matching. The match succeeds if the content at
412*d5c09012SAndroid Build Coastguard Worker        // the `json_path` within the output is exactly the same as the
413*d5c09012SAndroid Build Coastguard Worker        // `content` string.
414*d5c09012SAndroid Build Coastguard Worker        EXACT_MATCH = 1;
415*d5c09012SAndroid Build Coastguard Worker
416*d5c09012SAndroid Build Coastguard Worker        // Selects regular-expression matching. The match succeeds if the
417*d5c09012SAndroid Build Coastguard Worker        // content at the `json_path` within the output matches the regular
418*d5c09012SAndroid Build Coastguard Worker        // expression specified in the `content` string.
419*d5c09012SAndroid Build Coastguard Worker        REGEX_MATCH = 2;
420*d5c09012SAndroid Build Coastguard Worker      }
421*d5c09012SAndroid Build Coastguard Worker
422*d5c09012SAndroid Build Coastguard Worker      // JSONPath within the response output pointing to the expected
423*d5c09012SAndroid Build Coastguard Worker      // `ContentMatcher::content` to match against.
424*d5c09012SAndroid Build Coastguard Worker      string json_path = 1;
425*d5c09012SAndroid Build Coastguard Worker
426*d5c09012SAndroid Build Coastguard Worker      // The type of JSONPath match that will be applied to the JSON output
427*d5c09012SAndroid Build Coastguard Worker      // (`ContentMatcher.content`)
428*d5c09012SAndroid Build Coastguard Worker      JsonPathMatcherOption json_matcher = 2;
429*d5c09012SAndroid Build Coastguard Worker    }
430*d5c09012SAndroid Build Coastguard Worker
431*d5c09012SAndroid Build Coastguard Worker    // String, regex or JSON content to match. Maximum 1024 bytes. An empty
432*d5c09012SAndroid Build Coastguard Worker    // `content` string indicates no content matching is to be performed.
433*d5c09012SAndroid Build Coastguard Worker    string content = 1;
434*d5c09012SAndroid Build Coastguard Worker
435*d5c09012SAndroid Build Coastguard Worker    // The type of content matcher that will be applied to the server output,
436*d5c09012SAndroid Build Coastguard Worker    // compared to the `content` string when the check is run.
437*d5c09012SAndroid Build Coastguard Worker    ContentMatcherOption matcher = 2;
438*d5c09012SAndroid Build Coastguard Worker
439*d5c09012SAndroid Build Coastguard Worker    // Certain `ContentMatcherOption` types require additional information.
440*d5c09012SAndroid Build Coastguard Worker    // `MATCHES_JSON_PATH` or `NOT_MATCHES_JSON_PATH` require a
441*d5c09012SAndroid Build Coastguard Worker    // `JsonPathMatcher`; not used for other options.
442*d5c09012SAndroid Build Coastguard Worker    oneof additional_matcher_info {
443*d5c09012SAndroid Build Coastguard Worker      // Matcher information for `MATCHES_JSON_PATH` and `NOT_MATCHES_JSON_PATH`
444*d5c09012SAndroid Build Coastguard Worker      JsonPathMatcher json_path_matcher = 3;
445*d5c09012SAndroid Build Coastguard Worker    }
446*d5c09012SAndroid Build Coastguard Worker  }
447*d5c09012SAndroid Build Coastguard Worker
448*d5c09012SAndroid Build Coastguard Worker  // What kind of checkers are available to be used by the check.
449*d5c09012SAndroid Build Coastguard Worker  enum CheckerType {
450*d5c09012SAndroid Build Coastguard Worker    // The default checker type. Currently converted to `STATIC_IP_CHECKERS`
451*d5c09012SAndroid Build Coastguard Worker    // on creation, the default conversion behavior may change in the future.
452*d5c09012SAndroid Build Coastguard Worker    CHECKER_TYPE_UNSPECIFIED = 0;
453*d5c09012SAndroid Build Coastguard Worker
454*d5c09012SAndroid Build Coastguard Worker    // `STATIC_IP_CHECKERS` are used for uptime checks that perform egress
455*d5c09012SAndroid Build Coastguard Worker    // across the public internet. `STATIC_IP_CHECKERS` use the static IP
456*d5c09012SAndroid Build Coastguard Worker    // addresses returned by `ListUptimeCheckIps`.
457*d5c09012SAndroid Build Coastguard Worker    STATIC_IP_CHECKERS = 1;
458*d5c09012SAndroid Build Coastguard Worker
459*d5c09012SAndroid Build Coastguard Worker    // `VPC_CHECKERS` are used for uptime checks that perform egress using
460*d5c09012SAndroid Build Coastguard Worker    // Service Directory and private network access. When using `VPC_CHECKERS`,
461*d5c09012SAndroid Build Coastguard Worker    // the monitored resource type must be `servicedirectory_service`.
462*d5c09012SAndroid Build Coastguard Worker    VPC_CHECKERS = 3;
463*d5c09012SAndroid Build Coastguard Worker  }
464*d5c09012SAndroid Build Coastguard Worker
465*d5c09012SAndroid Build Coastguard Worker  // Identifier. A unique resource name for this Uptime check configuration. The
466*d5c09012SAndroid Build Coastguard Worker  // format is:
467*d5c09012SAndroid Build Coastguard Worker  //
468*d5c09012SAndroid Build Coastguard Worker  //      projects/[PROJECT_ID_OR_NUMBER]/uptimeCheckConfigs/[UPTIME_CHECK_ID]
469*d5c09012SAndroid Build Coastguard Worker  //
470*d5c09012SAndroid Build Coastguard Worker  // `[PROJECT_ID_OR_NUMBER]` is the Workspace host project associated with the
471*d5c09012SAndroid Build Coastguard Worker  // Uptime check.
472*d5c09012SAndroid Build Coastguard Worker  //
473*d5c09012SAndroid Build Coastguard Worker  // This field should be omitted when creating the Uptime check configuration;
474*d5c09012SAndroid Build Coastguard Worker  // on create, the resource name is assigned by the server and included in the
475*d5c09012SAndroid Build Coastguard Worker  // response.
476*d5c09012SAndroid Build Coastguard Worker  string name = 1 [(google.api.field_behavior) = IDENTIFIER];
477*d5c09012SAndroid Build Coastguard Worker
478*d5c09012SAndroid Build Coastguard Worker  // A human-friendly name for the Uptime check configuration. The display name
479*d5c09012SAndroid Build Coastguard Worker  // should be unique within a Cloud Monitoring Workspace in order to make it
480*d5c09012SAndroid Build Coastguard Worker  // easier to identify; however, uniqueness is not enforced. Required.
481*d5c09012SAndroid Build Coastguard Worker  string display_name = 2;
482*d5c09012SAndroid Build Coastguard Worker
483*d5c09012SAndroid Build Coastguard Worker  // The resource the check is checking. Required.
484*d5c09012SAndroid Build Coastguard Worker  oneof resource {
485*d5c09012SAndroid Build Coastguard Worker    // The [monitored
486*d5c09012SAndroid Build Coastguard Worker    // resource](https://cloud.google.com/monitoring/api/resources) associated
487*d5c09012SAndroid Build Coastguard Worker    // with the configuration.
488*d5c09012SAndroid Build Coastguard Worker    // The following monitored resource types are valid for this field:
489*d5c09012SAndroid Build Coastguard Worker    //   `uptime_url`,
490*d5c09012SAndroid Build Coastguard Worker    //   `gce_instance`,
491*d5c09012SAndroid Build Coastguard Worker    //   `gae_app`,
492*d5c09012SAndroid Build Coastguard Worker    //   `aws_ec2_instance`,
493*d5c09012SAndroid Build Coastguard Worker    //   `aws_elb_load_balancer`
494*d5c09012SAndroid Build Coastguard Worker    //   `k8s_service`
495*d5c09012SAndroid Build Coastguard Worker    //   `servicedirectory_service`
496*d5c09012SAndroid Build Coastguard Worker    //   `cloud_run_revision`
497*d5c09012SAndroid Build Coastguard Worker    google.api.MonitoredResource monitored_resource = 3;
498*d5c09012SAndroid Build Coastguard Worker
499*d5c09012SAndroid Build Coastguard Worker    // The group resource associated with the configuration.
500*d5c09012SAndroid Build Coastguard Worker    ResourceGroup resource_group = 4;
501*d5c09012SAndroid Build Coastguard Worker
502*d5c09012SAndroid Build Coastguard Worker    // Specifies a Synthetic Monitor to invoke.
503*d5c09012SAndroid Build Coastguard Worker    SyntheticMonitorTarget synthetic_monitor = 21;
504*d5c09012SAndroid Build Coastguard Worker  }
505*d5c09012SAndroid Build Coastguard Worker
506*d5c09012SAndroid Build Coastguard Worker  // The type of Uptime check request.
507*d5c09012SAndroid Build Coastguard Worker  oneof check_request_type {
508*d5c09012SAndroid Build Coastguard Worker    // Contains information needed to make an HTTP or HTTPS check.
509*d5c09012SAndroid Build Coastguard Worker    HttpCheck http_check = 5;
510*d5c09012SAndroid Build Coastguard Worker
511*d5c09012SAndroid Build Coastguard Worker    // Contains information needed to make a TCP check.
512*d5c09012SAndroid Build Coastguard Worker    TcpCheck tcp_check = 6;
513*d5c09012SAndroid Build Coastguard Worker  }
514*d5c09012SAndroid Build Coastguard Worker
515*d5c09012SAndroid Build Coastguard Worker  // How often, in seconds, the Uptime check is performed.
516*d5c09012SAndroid Build Coastguard Worker  // Currently, the only supported values are `60s` (1 minute), `300s`
517*d5c09012SAndroid Build Coastguard Worker  // (5 minutes), `600s` (10 minutes), and `900s` (15 minutes). Optional,
518*d5c09012SAndroid Build Coastguard Worker  // defaults to `60s`.
519*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Duration period = 7;
520*d5c09012SAndroid Build Coastguard Worker
521*d5c09012SAndroid Build Coastguard Worker  // The maximum amount of time to wait for the request to complete (must be
522*d5c09012SAndroid Build Coastguard Worker  // between 1 and 60 seconds). Required.
523*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Duration timeout = 8;
524*d5c09012SAndroid Build Coastguard Worker
525*d5c09012SAndroid Build Coastguard Worker  // The content that is expected to appear in the data returned by the target
526*d5c09012SAndroid Build Coastguard Worker  // server against which the check is run.  Currently, only the first entry
527*d5c09012SAndroid Build Coastguard Worker  // in the `content_matchers` list is supported, and additional entries will
528*d5c09012SAndroid Build Coastguard Worker  // be ignored. This field is optional and should only be specified if a
529*d5c09012SAndroid Build Coastguard Worker  // content match is required as part of the/ Uptime check.
530*d5c09012SAndroid Build Coastguard Worker  repeated ContentMatcher content_matchers = 9;
531*d5c09012SAndroid Build Coastguard Worker
532*d5c09012SAndroid Build Coastguard Worker  // The type of checkers to use to execute the Uptime check.
533*d5c09012SAndroid Build Coastguard Worker  CheckerType checker_type = 17;
534*d5c09012SAndroid Build Coastguard Worker
535*d5c09012SAndroid Build Coastguard Worker  // The list of regions from which the check will be run.
536*d5c09012SAndroid Build Coastguard Worker  // Some regions contain one location, and others contain more than one.
537*d5c09012SAndroid Build Coastguard Worker  // If this field is specified, enough regions must be provided to include a
538*d5c09012SAndroid Build Coastguard Worker  // minimum of 3 locations.  Not specifying this field will result in Uptime
539*d5c09012SAndroid Build Coastguard Worker  // checks running from all available regions.
540*d5c09012SAndroid Build Coastguard Worker  repeated UptimeCheckRegion selected_regions = 10;
541*d5c09012SAndroid Build Coastguard Worker
542*d5c09012SAndroid Build Coastguard Worker  // If this is `true`, then checks are made only from the 'internal_checkers'.
543*d5c09012SAndroid Build Coastguard Worker  // If it is `false`, then checks are made only from the 'selected_regions'.
544*d5c09012SAndroid Build Coastguard Worker  // It is an error to provide 'selected_regions' when is_internal is `true`,
545*d5c09012SAndroid Build Coastguard Worker  // or to provide 'internal_checkers' when is_internal is `false`.
546*d5c09012SAndroid Build Coastguard Worker  bool is_internal = 15 [deprecated = true];
547*d5c09012SAndroid Build Coastguard Worker
548*d5c09012SAndroid Build Coastguard Worker  // The internal checkers that this check will egress from. If `is_internal` is
549*d5c09012SAndroid Build Coastguard Worker  // `true` and this list is empty, the check will egress from all the
550*d5c09012SAndroid Build Coastguard Worker  // InternalCheckers configured for the project that owns this
551*d5c09012SAndroid Build Coastguard Worker  // `UptimeCheckConfig`.
552*d5c09012SAndroid Build Coastguard Worker  repeated InternalChecker internal_checkers = 14 [deprecated = true];
553*d5c09012SAndroid Build Coastguard Worker
554*d5c09012SAndroid Build Coastguard Worker  // User-supplied key/value data to be used for organizing and
555*d5c09012SAndroid Build Coastguard Worker  // identifying the `UptimeCheckConfig` objects.
556*d5c09012SAndroid Build Coastguard Worker  //
557*d5c09012SAndroid Build Coastguard Worker  // The field can contain up to 64 entries. Each key and value is limited to
558*d5c09012SAndroid Build Coastguard Worker  // 63 Unicode characters or 128 bytes, whichever is smaller. Labels and
559*d5c09012SAndroid Build Coastguard Worker  // values can contain only lowercase letters, numerals, underscores, and
560*d5c09012SAndroid Build Coastguard Worker  // dashes. Keys must begin with a letter.
561*d5c09012SAndroid Build Coastguard Worker  map<string, string> user_labels = 20;
562*d5c09012SAndroid Build Coastguard Worker}
563*d5c09012SAndroid Build Coastguard Worker
564*d5c09012SAndroid Build Coastguard Worker// Contains the region, location, and list of IP
565*d5c09012SAndroid Build Coastguard Worker// addresses where checkers in the location run from.
566*d5c09012SAndroid Build Coastguard Workermessage UptimeCheckIp {
567*d5c09012SAndroid Build Coastguard Worker  // A broad region category in which the IP address is located.
568*d5c09012SAndroid Build Coastguard Worker  UptimeCheckRegion region = 1;
569*d5c09012SAndroid Build Coastguard Worker
570*d5c09012SAndroid Build Coastguard Worker  // A more specific location within the region that typically encodes
571*d5c09012SAndroid Build Coastguard Worker  // a particular city/town/metro (and its containing state/province or country)
572*d5c09012SAndroid Build Coastguard Worker  // within the broader umbrella region category.
573*d5c09012SAndroid Build Coastguard Worker  string location = 2;
574*d5c09012SAndroid Build Coastguard Worker
575*d5c09012SAndroid Build Coastguard Worker  // The IP address from which the Uptime check originates. This is a fully
576*d5c09012SAndroid Build Coastguard Worker  // specified IP address (not an IP address range). Most IP addresses, as of
577*d5c09012SAndroid Build Coastguard Worker  // this publication, are in IPv4 format; however, one should not rely on the
578*d5c09012SAndroid Build Coastguard Worker  // IP addresses being in IPv4 format indefinitely, and should support
579*d5c09012SAndroid Build Coastguard Worker  // interpreting this field in either IPv4 or IPv6 format.
580*d5c09012SAndroid Build Coastguard Worker  string ip_address = 3;
581*d5c09012SAndroid Build Coastguard Worker}
582*d5c09012SAndroid Build Coastguard Worker
583*d5c09012SAndroid Build Coastguard Worker// The regions from which an Uptime check can be run.
584*d5c09012SAndroid Build Coastguard Workerenum UptimeCheckRegion {
585*d5c09012SAndroid Build Coastguard Worker  // Default value if no region is specified. Will result in Uptime checks
586*d5c09012SAndroid Build Coastguard Worker  // running from all regions.
587*d5c09012SAndroid Build Coastguard Worker  REGION_UNSPECIFIED = 0;
588*d5c09012SAndroid Build Coastguard Worker
589*d5c09012SAndroid Build Coastguard Worker  // Allows checks to run from locations within the United States of America.
590*d5c09012SAndroid Build Coastguard Worker  USA = 1;
591*d5c09012SAndroid Build Coastguard Worker
592*d5c09012SAndroid Build Coastguard Worker  // Allows checks to run from locations within the continent of Europe.
593*d5c09012SAndroid Build Coastguard Worker  EUROPE = 2;
594*d5c09012SAndroid Build Coastguard Worker
595*d5c09012SAndroid Build Coastguard Worker  // Allows checks to run from locations within the continent of South
596*d5c09012SAndroid Build Coastguard Worker  // America.
597*d5c09012SAndroid Build Coastguard Worker  SOUTH_AMERICA = 3;
598*d5c09012SAndroid Build Coastguard Worker
599*d5c09012SAndroid Build Coastguard Worker  // Allows checks to run from locations within the Asia Pacific area (ex:
600*d5c09012SAndroid Build Coastguard Worker  // Singapore).
601*d5c09012SAndroid Build Coastguard Worker  ASIA_PACIFIC = 4;
602*d5c09012SAndroid Build Coastguard Worker
603*d5c09012SAndroid Build Coastguard Worker  // Allows checks to run from locations within the western United States of
604*d5c09012SAndroid Build Coastguard Worker  // America
605*d5c09012SAndroid Build Coastguard Worker  USA_OREGON = 5;
606*d5c09012SAndroid Build Coastguard Worker
607*d5c09012SAndroid Build Coastguard Worker  // Allows checks to run from locations within the central United States of
608*d5c09012SAndroid Build Coastguard Worker  // America
609*d5c09012SAndroid Build Coastguard Worker  USA_IOWA = 6;
610*d5c09012SAndroid Build Coastguard Worker
611*d5c09012SAndroid Build Coastguard Worker  // Allows checks to run from locations within the eastern United States of
612*d5c09012SAndroid Build Coastguard Worker  // America
613*d5c09012SAndroid Build Coastguard Worker  USA_VIRGINIA = 7;
614*d5c09012SAndroid Build Coastguard Worker}
615*d5c09012SAndroid Build Coastguard Worker
616*d5c09012SAndroid Build Coastguard Worker// The supported resource types that can be used as values of
617*d5c09012SAndroid Build Coastguard Worker// `group_resource.resource_type`.
618*d5c09012SAndroid Build Coastguard Worker// `INSTANCE` includes `gce_instance` and `aws_ec2_instance` resource types.
619*d5c09012SAndroid Build Coastguard Worker// The resource types `gae_app` and `uptime_url` are not valid here because
620*d5c09012SAndroid Build Coastguard Worker// group checks on App Engine modules and URLs are not allowed.
621*d5c09012SAndroid Build Coastguard Workerenum GroupResourceType {
622*d5c09012SAndroid Build Coastguard Worker  // Default value (not valid).
623*d5c09012SAndroid Build Coastguard Worker  RESOURCE_TYPE_UNSPECIFIED = 0;
624*d5c09012SAndroid Build Coastguard Worker
625*d5c09012SAndroid Build Coastguard Worker  // A group of instances from Google Cloud Platform (GCP) or
626*d5c09012SAndroid Build Coastguard Worker  // Amazon Web Services (AWS).
627*d5c09012SAndroid Build Coastguard Worker  INSTANCE = 1;
628*d5c09012SAndroid Build Coastguard Worker
629*d5c09012SAndroid Build Coastguard Worker  // A group of Amazon ELB load balancers.
630*d5c09012SAndroid Build Coastguard Worker  AWS_ELB_LOAD_BALANCER = 2;
631*d5c09012SAndroid Build Coastguard Worker}
632