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 MB of an HTTP or HTTPS check's response (and the first 360*d5c09012SAndroid Build Coastguard Worker // 1 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