---
title: Getting Started with Datadog
description: Datadog, the leading service for cloud-scale monitoring.
breadcrumbs: Docs > Infrastructure > Datadog Resource Catalog
---

# gcp_monitoring_uptime_check_config{% #gcp_monitoring_uptime_check_config %}

## `ancestors`{% #ancestors %}

**Type**: `UNORDERED_LIST_STRING`

## `checker_type`{% #checker_type %}

**Type**: `STRING`**Provider name**: `checkerType`**Description**: The type of checkers to use to execute the Uptime check.**Possible values**:

- `CHECKER_TYPE_UNSPECIFIED` - The default checker type. Currently converted to STATIC_IP_CHECKERS on creation, the default conversion behavior may change in the future.
- `STATIC_IP_CHECKERS` - STATIC_IP_CHECKERS are used for uptime checks that perform egress across the public internet. STATIC_IP_CHECKERS use the static IP addresses returned by ListUptimeCheckIps.
- `VPC_CHECKERS` - VPC_CHECKERS are used for uptime checks that perform egress using Service Directory and private network access. When using VPC_CHECKERS, the monitored resource type must be servicedirectory_service.

## `content_matchers`{% #content_matchers %}

**Type**: `UNORDERED_LIST_STRUCT`**Provider name**: `contentMatchers`**Description**: The content that is expected to appear in the data returned by the target server against which the check is run. Currently, only the first entry in the content_matchers list is supported, and additional entries will be ignored. This field is optional and should only be specified if a content match is required as part of the/ Uptime check.

- `content`**Type**: `STRING`**Provider name**: `content`**Description**: String, regex or JSON content to match. Maximum 1024 bytes. An empty content string indicates no content matching is to be performed.
- `json_path_matcher`**Type**: `STRUCT`**Provider name**: `jsonPathMatcher`**Description**: Matcher information for MATCHES_JSON_PATH and NOT_MATCHES_JSON_PATH
  - `json_matcher`**Type**: `STRING`**Provider name**: `jsonMatcher`**Description**: The type of JSONPath match that will be applied to the JSON output (ContentMatcher.content)**Possible values**:
    - `JSON_PATH_MATCHER_OPTION_UNSPECIFIED` - No JSONPath matcher type specified (not valid).
    - `EXACT_MATCH` - Selects 'exact string' matching. The match succeeds if the content at the json_path within the output is exactly the same as the content string.
    - `REGEX_MATCH` - Selects regular-expression matching. The match succeeds if the content at the json_path within the output matches the regular expression specified in the content string.
  - `json_path`**Type**: `STRING`**Provider name**: `jsonPath`**Description**: JSONPath within the response output pointing to the expected ContentMatcher::content to match against.
- `matcher`**Type**: `STRING`**Provider name**: `matcher`**Description**: The type of content matcher that will be applied to the server output, compared to the content string when the check is run.**Possible values**:
  - `CONTENT_MATCHER_OPTION_UNSPECIFIED` - No content matcher type specified (maintained for backward compatibility, but deprecated for future use). Treated as CONTAINS_STRING.
  - `CONTAINS_STRING` - Selects substring matching. The match succeeds if the output contains the content string. This is the default value for checks without a matcher option, or where the value of matcher is CONTENT_MATCHER_OPTION_UNSPECIFIED.
  - `NOT_CONTAINS_STRING` - Selects negation of substring matching. The match succeeds if the output does NOT contain the content string.
  - `MATCHES_REGEX` - Selects regular-expression matching. The match succeeds if the output matches the regular expression specified in the content string. Regex matching is only supported for HTTP/HTTPS checks.
  - `NOT_MATCHES_REGEX` - Selects negation of regular-expression matching. The match succeeds if the output does NOT match the regular expression specified in the content string. Regex matching is only supported for HTTP/HTTPS checks.
  - `MATCHES_JSON_PATH` - Selects JSONPath matching. See JsonPathMatcher for details on when the match succeeds. JSONPath matching is only supported for HTTP/HTTPS checks.
  - `NOT_MATCHES_JSON_PATH` - Selects JSONPath matching. See JsonPathMatcher for details on when the match succeeds. Succeeds when output does NOT match as specified. JSONPath is only supported for HTTP/HTTPS checks.

## `gcp_display_name`{% #gcp_display_name %}

**Type**: `STRING`**Provider name**: `displayName`**Description**: A human-friendly name for the Uptime check configuration. The display name should be unique within a Cloud Monitoring Workspace in order to make it easier to identify; however, uniqueness is not enforced. Required.

## `http_check`{% #http_check %}

**Type**: `STRUCT`**Provider name**: `httpCheck`**Description**: Contains information needed to make an HTTP or HTTPS check.

- `accepted_response_status_codes`**Type**: `UNORDERED_LIST_STRUCT`**Provider name**: `acceptedResponseStatusCodes`**Description**: If present, the check will only pass if the HTTP response status code is in this set of status codes. If empty, the HTTP status code will only pass if the HTTP status code is 200-299.
  - `status_class`**Type**: `STRING`**Provider name**: `statusClass`**Description**: A class of status codes to accept.**Possible values**:
    - `STATUS_CLASS_UNSPECIFIED` - Default value that matches no status codes.
    - `STATUS_CLASS_1XX` - The class of status codes between 100 and 199.
    - `STATUS_CLASS_2XX` - The class of status codes between 200 and 299.
    - `STATUS_CLASS_3XX` - The class of status codes between 300 and 399.
    - `STATUS_CLASS_4XX` - The class of status codes between 400 and 499.
    - `STATUS_CLASS_5XX` - The class of status codes between 500 and 599.
    - `STATUS_CLASS_ANY` - The class of all status codes.
  - `status_value`**Type**: `INT32`**Provider name**: `statusValue`**Description**: A status code to accept.
- `auth_info`**Type**: `STRUCT`**Provider name**: `authInfo`**Description**: The authentication information. Optional when creating an HTTP check; defaults to empty. Do not set both auth_method and auth_info.
  - `password`**Type**: `STRING`**Provider name**: `password`**Description**: The password to use when authenticating with the HTTP server.
  - `username`**Type**: `STRING`**Provider name**: `username`**Description**: The username to use when authenticating with the HTTP server.
- `content_type`**Type**: `STRING`**Provider name**: `contentType`**Description**: The content type header to use for the check. The following configurations result in errors: 1. Content type is specified in both the headers field and the content_type field. 2. Request method is GET and content_type is not TYPE_UNSPECIFIED 3. Request method is POST and content_type is TYPE_UNSPECIFIED. 4. Request method is POST and a "Content-Type" header is provided via headers field. The content_type field should be used instead.**Possible values**:
  - `TYPE_UNSPECIFIED` - No content type specified.
  - `URL_ENCODED` - body is in URL-encoded form. Equivalent to setting the Content-Type to application/x-www-form-urlencoded in the HTTP request.
  - `USER_PROVIDED` - body is in custom_content_type form. Equivalent to setting the Content-Type to the contents of custom_content_type in the HTTP request.
- `custom_content_type`**Type**: `STRING`**Provider name**: `customContentType`**Description**: A user provided content type header to use for the check. The invalid configurations outlined in the content_type field apply to custom_content_type, as well as the following: 1. content_type is URL_ENCODED and custom_content_type is set. 2. content_type is USER_PROVIDED and custom_content_type is not set.
- `mask_headers`**Type**: `BOOLEAN`**Provider name**: `maskHeaders`**Description**: Boolean specifying whether to encrypt the header information. Encryption should be specified for any headers related to authentication that you do not wish to be seen when retrieving the configuration. The server will be responsible for encrypting the headers. On Get/List calls, if mask_headers is set to true then the headers will be obscured with ******.
- `path`**Type**: `STRING`**Provider name**: `path`**Description**: Optional (defaults to "/"). The path to the page against which to run the check. Will be combined with the host (specified within the monitored_resource) and port to construct the full URL. If the provided path does not begin with "/", a "/" will be prepended automatically.
- `ping_config`**Type**: `STRUCT`**Provider name**: `pingConfig`**Description**: Contains information needed to add pings to an HTTP check.
  - `pings_count`**Type**: `INT32`**Provider name**: `pingsCount`**Description**: Number of ICMP pings. A maximum of 3 ICMP pings is currently supported.
- `port`**Type**: `INT32`**Provider name**: `port`**Description**: Optional (defaults to 80 when use_ssl is false, and 443 when use_ssl is true). The TCP port on the HTTP server against which to run the check. Will be combined with host (specified within the monitored_resource) and path to construct the full URL.
- `request_method`**Type**: `STRING`**Provider name**: `requestMethod`**Description**: The HTTP request method to use for the check. If set to METHOD_UNSPECIFIED then request_method defaults to GET.**Possible values**:
  - `METHOD_UNSPECIFIED` - No request method specified.
  - `GET` - GET request.
  - `POST` - POST request.
- `service_agent_authentication`**Type**: `STRUCT`**Provider name**: `serviceAgentAuthentication`**Description**: If specified, Uptime will generate and attach an OIDC JWT token for the Monitoring service agent service account as an Authorization header in the HTTP request when probing.
  - `type`**Type**: `STRING`**Provider name**: `type`**Description**: Type of authentication.**Possible values**:
    - `SERVICE_AGENT_AUTHENTICATION_TYPE_UNSPECIFIED` - Default value, will result in OIDC Authentication.
    - `OIDC_TOKEN` - OIDC Authentication
- `use_ssl`**Type**: `BOOLEAN`**Provider name**: `useSsl`**Description**: If true, use HTTPS instead of HTTP to run the check.
- `validate_ssl`**Type**: `BOOLEAN`**Provider name**: `validateSsl`**Description**: Boolean specifying whether to include SSL certificate validation as a part of the Uptime check. Only applies to checks where monitored_resource is set to uptime_url. If use_ssl is false, setting validate_ssl to true has no effect.

## `internal_checkers`{% #internal_checkers %}

**Type**: `UNORDERED_LIST_STRUCT`**Provider name**: `internalCheckers`**Description**: The internal checkers that this check will egress from. If is_internal is true and this list is empty, the check will egress from all the InternalCheckers configured for the project that owns this UptimeCheckConfig.

- `gcp_display_name`**Type**: `STRING`**Provider name**: `displayName`**Description**: The checker's human-readable name. The display name should be unique within a Cloud Monitoring Metrics Scope in order to make it easier to identify; however, uniqueness is not enforced.
- `gcp_zone`**Type**: `STRING`**Provider name**: `gcpZone`**Description**: The GCP zone the Uptime check should egress from. Only respected for internal Uptime checks, where internal_network is specified.
- `name`**Type**: `STRING`**Provider name**: `name`**Description**: A unique resource name for this InternalChecker. The format is: projects/[PROJECT_ID_OR_NUMBER]/internalCheckers/[INTERNAL_CHECKER_ID] [PROJECT_ID_OR_NUMBER] is the Cloud Monitoring Metrics Scope project for the Uptime check config associated with the internal checker.
- `network`**Type**: `STRING`**Provider name**: `network`**Description**: The GCP VPC network ([https://cloud.google.com/vpc/docs/vpc](https://cloud.google.com/vpc/docs/vpc)) where the internal resource lives (ex: "default").
- `peer_project_id`**Type**: `STRING`**Provider name**: `peerProjectId`**Description**: The GCP project ID where the internal checker lives. Not necessary the same as the Metrics Scope project.
- `state`**Type**: `STRING`**Provider name**: `state`**Description**: The current operational state of the internal checker.**Possible values**:
  - `UNSPECIFIED` - An internal checker should never be in the unspecified state.
  - `CREATING` - The checker is being created, provisioned, and configured. A checker in this state can be returned by ListInternalCheckers or GetInternalChecker, as well as by examining the long running Operation ([https://cloud.google.com/apis/design/design_patterns#long_running_operations](https://cloud.google.com/apis/design/design_patterns#long_running_operations)) that created it.
  - `RUNNING` - The checker is running and available for use. A checker in this state can be returned by ListInternalCheckers or GetInternalChecker as well as by examining the long running Operation ([https://cloud.google.com/apis/design/design_patterns#long_running_operations](https://cloud.google.com/apis/design/design_patterns#long_running_operations)) that created it. If a checker is being torn down, it is neither visible nor usable, so there is no 'deleting' or 'down' state.

## `is_internal`{% #is_internal %}

**Type**: `BOOLEAN`**Provider name**: `isInternal`**Description**: If this is true, then checks are made only from the 'internal_checkers'. If it is false, then checks are made only from the 'selected_regions'. It is an error to provide 'selected_regions' when is_internal is true, or to provide 'internal_checkers' when is_internal is false.

## `labels`{% #labels %}

**Type**: `UNORDERED_LIST_STRING`

## `monitored_resource`{% #monitored_resource %}

**Type**: `STRUCT`**Provider name**: `monitoredResource`**Description**: The monitored resource ([https://cloud.google.com/monitoring/api/resources](https://cloud.google.com/monitoring/api/resources)) associated with the configuration. The following monitored resource types are valid for this field: uptime_url, gce_instance, gae_app, aws_ec2_instance, aws_elb_load_balancer k8s_service servicedirectory_service cloud_run_revision

- `type`**Type**: `STRING`**Provider name**: `type`**Description**: Required. The monitored resource type. This field must match the type field of a MonitoredResourceDescriptor object. For example, the type of a Compute Engine VM instance is gce_instance. For a list of types, see Monitoring resource types ([https://cloud.google.com/monitoring/api/resources](https://cloud.google.com/monitoring/api/resources)) and Logging resource types ([https://cloud.google.com/logging/docs/api/v2/resource-list)](https://cloud.google.com/logging/docs/api/v2/resource-list%29).

## `name`{% #name %}

**Type**: `STRING`**Provider name**: `name`**Description**: Identifier. A unique resource name for this Uptime check configuration. The format is: projects/[PROJECT_ID_OR_NUMBER]/uptimeCheckConfigs/[UPTIME_CHECK_ID] [PROJECT_ID_OR_NUMBER] is the Workspace host project associated with the Uptime check.This field should be omitted when creating the Uptime check configuration; on create, the resource name is assigned by the server and included in the response.

## `organization_id`{% #organization_id %}

**Type**: `STRING`

## `parent`{% #parent %}

**Type**: `STRING`

## `period`{% #period %}

**Type**: `STRING`**Provider name**: `period`**Description**: How often, in seconds, the Uptime check is performed. Currently, the only supported values are 60s (1 minute), 300s (5 minutes), 600s (10 minutes), and 900s (15 minutes). Optional, defaults to 60s.

## `project_id`{% #project_id %}

**Type**: `STRING`

## `project_number`{% #project_number %}

**Type**: `STRING`

## `region_id`{% #region_id %}

**Type**: `STRING`

## `resource_group`{% #resource_group %}

**Type**: `STRUCT`**Provider name**: `resourceGroup`**Description**: The group resource associated with the configuration.

- `group_id`**Type**: `STRING`**Provider name**: `groupId`**Description**: The group of resources being monitored. Should be only the [GROUP_ID], and not the full-path projects/[PROJECT_ID_OR_NUMBER]/groups/[GROUP_ID].
- `resource_type`**Type**: `STRING`**Provider name**: `resourceType`**Description**: The resource type of the group members.**Possible values**:
  - `RESOURCE_TYPE_UNSPECIFIED` - Default value (not valid).
  - `INSTANCE` - A group of instances from Google Cloud Platform (GCP) or Amazon Web Services (AWS).
  - `AWS_ELB_LOAD_BALANCER` - A group of Amazon ELB load balancers.

## `resource_name`{% #resource_name %}

**Type**: `STRING`

## `selected_regions`{% #selected_regions %}

**Type**: `UNORDERED_LIST_STRING`**Provider name**: `selectedRegions`**Description**: The list of regions from which the check will be run. Some regions contain one location, and others contain more than one. If this field is specified, enough regions must be provided to include a minimum of 3 locations. Not specifying this field will result in Uptime checks running from all available regions.

## `synthetic_monitor`{% #synthetic_monitor %}

**Type**: `STRUCT`**Provider name**: `syntheticMonitor`**Description**: Specifies a Synthetic Monitor to invoke.

- `cloud_function_v2`**Type**: `STRUCT`**Provider name**: `cloudFunctionV2`**Description**: Target a Synthetic Monitor GCFv2 instance.
  - `cloud_run_revision`**Type**: `STRUCT`**Provider name**: `cloudRunRevision`**Description**: Output only. The cloud_run_revision Monitored Resource associated with the GCFv2. The Synthetic Monitor execution results (metrics, logs, and spans) are reported against this Monitored Resource. This field is output only.
    - `type`**Type**: `STRING`**Provider name**: `type`**Description**: Required. The monitored resource type. This field must match the type field of a MonitoredResourceDescriptor object. For example, the type of a Compute Engine VM instance is gce_instance. For a list of types, see Monitoring resource types ([https://cloud.google.com/monitoring/api/resources](https://cloud.google.com/monitoring/api/resources)) and Logging resource types ([https://cloud.google.com/logging/docs/api/v2/resource-list)](https://cloud.google.com/logging/docs/api/v2/resource-list%29).
  - `name`**Type**: `STRING`**Provider name**: `name`**Description**: Required. Fully qualified GCFv2 resource name i.e. projects/{project}/locations/{location}/functions/{function} Required.

## `tags`{% #tags %}

**Type**: `UNORDERED_LIST_STRING`

## `tcp_check`{% #tcp_check %}

**Type**: `STRUCT`**Provider name**: `tcpCheck`**Description**: Contains information needed to make a TCP check.

- `ping_config`**Type**: `STRUCT`**Provider name**: `pingConfig`**Description**: Contains information needed to add pings to a TCP check.
  - `pings_count`**Type**: `INT32`**Provider name**: `pingsCount`**Description**: Number of ICMP pings. A maximum of 3 ICMP pings is currently supported.
- `port`**Type**: `INT32`**Provider name**: `port`**Description**: The TCP port on the server against which to run the check. Will be combined with host (specified within the monitored_resource) to construct the full URL. Required.

## `timeout`{% #timeout %}

**Type**: `STRING`**Provider name**: `timeout`**Description**: The maximum amount of time to wait for the request to complete (must be between 1 and 60 seconds). Required.

## `user_labels`{% #user_labels %}

**Type**: `MAP_STRING_STRING`**Provider name**: `userLabels`**Description**: User-supplied key/value data to be used for organizing and identifying the UptimeCheckConfig objects.The field can contain up to 64 entries. Each key and value is limited to 63 Unicode characters or 128 bytes, whichever is smaller. Labels and values can contain only lowercase letters, numerals, underscores, and dashes. Keys must begin with a letter.

## `zone_id`{% #zone_id %}

**Type**: `STRING`
