All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.gcp.monitoring.kotlin.UptimeCheckConfigArgs.kt Maven / Gradle / Ivy

Go to download

Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.

There is a newer version: 8.12.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.gcp.monitoring.kotlin

import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.gcp.monitoring.UptimeCheckConfigArgs.builder
import com.pulumi.gcp.monitoring.kotlin.inputs.UptimeCheckConfigContentMatcherArgs
import com.pulumi.gcp.monitoring.kotlin.inputs.UptimeCheckConfigContentMatcherArgsBuilder
import com.pulumi.gcp.monitoring.kotlin.inputs.UptimeCheckConfigHttpCheckArgs
import com.pulumi.gcp.monitoring.kotlin.inputs.UptimeCheckConfigHttpCheckArgsBuilder
import com.pulumi.gcp.monitoring.kotlin.inputs.UptimeCheckConfigMonitoredResourceArgs
import com.pulumi.gcp.monitoring.kotlin.inputs.UptimeCheckConfigMonitoredResourceArgsBuilder
import com.pulumi.gcp.monitoring.kotlin.inputs.UptimeCheckConfigResourceGroupArgs
import com.pulumi.gcp.monitoring.kotlin.inputs.UptimeCheckConfigResourceGroupArgsBuilder
import com.pulumi.gcp.monitoring.kotlin.inputs.UptimeCheckConfigSyntheticMonitorArgs
import com.pulumi.gcp.monitoring.kotlin.inputs.UptimeCheckConfigSyntheticMonitorArgsBuilder
import com.pulumi.gcp.monitoring.kotlin.inputs.UptimeCheckConfigTcpCheckArgs
import com.pulumi.gcp.monitoring.kotlin.inputs.UptimeCheckConfigTcpCheckArgsBuilder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 * This message configures which resources and services to monitor for availability.
 * To get more information about UptimeCheckConfig, see:
 * * [API documentation](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.uptimeCheckConfigs)
 * * How-to Guides
 *     * [Official Documentation](https://cloud.google.com/monitoring/uptime-checks/)
 * ## Example Usage
 * ### Uptime Check Config Http
 * 
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as gcp from "@pulumi/gcp";
 * const http = new gcp.monitoring.UptimeCheckConfig("http", {
 *     displayName: "http-uptime-check",
 *     timeout: "60s",
 *     userLabels: {
 *         "example-key": "example-value",
 *     },
 *     httpCheck: {
 *         path: "some-path",
 *         port: 8010,
 *         requestMethod: "POST",
 *         contentType: "USER_PROVIDED",
 *         customContentType: "application/json",
 *         body: "Zm9vJTI1M0RiYXI=",
 *         pingConfig: {
 *             pingsCount: 1,
 *         },
 *     },
 *     monitoredResource: {
 *         type: "uptime_url",
 *         labels: {
 *             project_id: "my-project-name",
 *             host: "192.168.1.1",
 *         },
 *     },
 *     contentMatchers: [{
 *         content: "\"example\"",
 *         matcher: "MATCHES_JSON_PATH",
 *         jsonPathMatcher: {
 *             jsonPath: "$.path",
 *             jsonMatcher: "EXACT_MATCH",
 *         },
 *     }],
 *     checkerType: "STATIC_IP_CHECKERS",
 * });
 * ```
 * ```python
 * import pulumi
 * import pulumi_gcp as gcp
 * http = gcp.monitoring.UptimeCheckConfig("http",
 *     display_name="http-uptime-check",
 *     timeout="60s",
 *     user_labels={
 *         "example-key": "example-value",
 *     },
 *     http_check=gcp.monitoring.UptimeCheckConfigHttpCheckArgs(
 *         path="some-path",
 *         port=8010,
 *         request_method="POST",
 *         content_type="USER_PROVIDED",
 *         custom_content_type="application/json",
 *         body="Zm9vJTI1M0RiYXI=",
 *         ping_config=gcp.monitoring.UptimeCheckConfigHttpCheckPingConfigArgs(
 *             pings_count=1,
 *         ),
 *     ),
 *     monitored_resource=gcp.monitoring.UptimeCheckConfigMonitoredResourceArgs(
 *         type="uptime_url",
 *         labels={
 *             "project_id": "my-project-name",
 *             "host": "192.168.1.1",
 *         },
 *     ),
 *     content_matchers=[gcp.monitoring.UptimeCheckConfigContentMatcherArgs(
 *         content="\"example\"",
 *         matcher="MATCHES_JSON_PATH",
 *         json_path_matcher=gcp.monitoring.UptimeCheckConfigContentMatcherJsonPathMatcherArgs(
 *             json_path="$.path",
 *             json_matcher="EXACT_MATCH",
 *         ),
 *     )],
 *     checker_type="STATIC_IP_CHECKERS")
 * ```
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using Gcp = Pulumi.Gcp;
 * return await Deployment.RunAsync(() =>
 * {
 *     var http = new Gcp.Monitoring.UptimeCheckConfig("http", new()
 *     {
 *         DisplayName = "http-uptime-check",
 *         Timeout = "60s",
 *         UserLabels =
 *         {
 *             { "example-key", "example-value" },
 *         },
 *         HttpCheck = new Gcp.Monitoring.Inputs.UptimeCheckConfigHttpCheckArgs
 *         {
 *             Path = "some-path",
 *             Port = 8010,
 *             RequestMethod = "POST",
 *             ContentType = "USER_PROVIDED",
 *             CustomContentType = "application/json",
 *             Body = "Zm9vJTI1M0RiYXI=",
 *             PingConfig = new Gcp.Monitoring.Inputs.UptimeCheckConfigHttpCheckPingConfigArgs
 *             {
 *                 PingsCount = 1,
 *             },
 *         },
 *         MonitoredResource = new Gcp.Monitoring.Inputs.UptimeCheckConfigMonitoredResourceArgs
 *         {
 *             Type = "uptime_url",
 *             Labels =
 *             {
 *                 { "project_id", "my-project-name" },
 *                 { "host", "192.168.1.1" },
 *             },
 *         },
 *         ContentMatchers = new[]
 *         {
 *             new Gcp.Monitoring.Inputs.UptimeCheckConfigContentMatcherArgs
 *             {
 *                 Content = "\"example\"",
 *                 Matcher = "MATCHES_JSON_PATH",
 *                 JsonPathMatcher = new Gcp.Monitoring.Inputs.UptimeCheckConfigContentMatcherJsonPathMatcherArgs
 *                 {
 *                     JsonPath = "$.path",
 *                     JsonMatcher = "EXACT_MATCH",
 *                 },
 *             },
 *         },
 *         CheckerType = "STATIC_IP_CHECKERS",
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/monitoring"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := monitoring.NewUptimeCheckConfig(ctx, "http", &monitoring.UptimeCheckConfigArgs{
 * 			DisplayName: pulumi.String("http-uptime-check"),
 * 			Timeout:     pulumi.String("60s"),
 * 			UserLabels: pulumi.StringMap{
 * 				"example-key": pulumi.String("example-value"),
 * 			},
 * 			HttpCheck: &monitoring.UptimeCheckConfigHttpCheckArgs{
 * 				Path:              pulumi.String("some-path"),
 * 				Port:              pulumi.Int(8010),
 * 				RequestMethod:     pulumi.String("POST"),
 * 				ContentType:       pulumi.String("USER_PROVIDED"),
 * 				CustomContentType: pulumi.String("application/json"),
 * 				Body:              pulumi.String("Zm9vJTI1M0RiYXI="),
 * 				PingConfig: &monitoring.UptimeCheckConfigHttpCheckPingConfigArgs{
 * 					PingsCount: pulumi.Int(1),
 * 				},
 * 			},
 * 			MonitoredResource: &monitoring.UptimeCheckConfigMonitoredResourceArgs{
 * 				Type: pulumi.String("uptime_url"),
 * 				Labels: pulumi.StringMap{
 * 					"project_id": pulumi.String("my-project-name"),
 * 					"host":       pulumi.String("192.168.1.1"),
 * 				},
 * 			},
 * 			ContentMatchers: monitoring.UptimeCheckConfigContentMatcherArray{
 * 				&monitoring.UptimeCheckConfigContentMatcherArgs{
 * 					Content: pulumi.String("\"example\""),
 * 					Matcher: pulumi.String("MATCHES_JSON_PATH"),
 * 					JsonPathMatcher: &monitoring.UptimeCheckConfigContentMatcherJsonPathMatcherArgs{
 * 						JsonPath:    pulumi.String("$.path"),
 * 						JsonMatcher: pulumi.String("EXACT_MATCH"),
 * 					},
 * 				},
 * 			},
 * 			CheckerType: pulumi.String("STATIC_IP_CHECKERS"),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.gcp.monitoring.UptimeCheckConfig;
 * import com.pulumi.gcp.monitoring.UptimeCheckConfigArgs;
 * import com.pulumi.gcp.monitoring.inputs.UptimeCheckConfigHttpCheckArgs;
 * import com.pulumi.gcp.monitoring.inputs.UptimeCheckConfigHttpCheckPingConfigArgs;
 * import com.pulumi.gcp.monitoring.inputs.UptimeCheckConfigMonitoredResourceArgs;
 * import com.pulumi.gcp.monitoring.inputs.UptimeCheckConfigContentMatcherArgs;
 * import com.pulumi.gcp.monitoring.inputs.UptimeCheckConfigContentMatcherJsonPathMatcherArgs;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 *     public static void stack(Context ctx) {
 *         var http = new UptimeCheckConfig("http", UptimeCheckConfigArgs.builder()
 *             .displayName("http-uptime-check")
 *             .timeout("60s")
 *             .userLabels(Map.of("example-key", "example-value"))
 *             .httpCheck(UptimeCheckConfigHttpCheckArgs.builder()
 *                 .path("some-path")
 *                 .port("8010")
 *                 .requestMethod("POST")
 *                 .contentType("USER_PROVIDED")
 *                 .customContentType("application/json")
 *                 .body("Zm9vJTI1M0RiYXI=")
 *                 .pingConfig(UptimeCheckConfigHttpCheckPingConfigArgs.builder()
 *                     .pingsCount(1)
 *                     .build())
 *                 .build())
 *             .monitoredResource(UptimeCheckConfigMonitoredResourceArgs.builder()
 *                 .type("uptime_url")
 *                 .labels(Map.ofEntries(
 *                     Map.entry("project_id", "my-project-name"),
 *                     Map.entry("host", "192.168.1.1")
 *                 ))
 *                 .build())
 *             .contentMatchers(UptimeCheckConfigContentMatcherArgs.builder()
 *                 .content("\"example\"")
 *                 .matcher("MATCHES_JSON_PATH")
 *                 .jsonPathMatcher(UptimeCheckConfigContentMatcherJsonPathMatcherArgs.builder()
 *                     .jsonPath("$.path")
 *                     .jsonMatcher("EXACT_MATCH")
 *                     .build())
 *                 .build())
 *             .checkerType("STATIC_IP_CHECKERS")
 *             .build());
 *     }
 * }
 * ```
 * ```yaml
 * resources:
 *   http:
 *     type: gcp:monitoring:UptimeCheckConfig
 *     properties:
 *       displayName: http-uptime-check
 *       timeout: 60s
 *       userLabels:
 *         example-key: example-value
 *       httpCheck:
 *         path: some-path
 *         port: '8010'
 *         requestMethod: POST
 *         contentType: USER_PROVIDED
 *         customContentType: application/json
 *         body: Zm9vJTI1M0RiYXI=
 *         pingConfig:
 *           pingsCount: 1
 *       monitoredResource:
 *         type: uptime_url
 *         labels:
 *           project_id: my-project-name
 *           host: 192.168.1.1
 *       contentMatchers:
 *         - content: '"example"'
 *           matcher: MATCHES_JSON_PATH
 *           jsonPathMatcher:
 *             jsonPath: $.path
 *             jsonMatcher: EXACT_MATCH
 *       checkerType: STATIC_IP_CHECKERS
 * ```
 * 
 * ### Uptime Check Config Status Code
 * 
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as gcp from "@pulumi/gcp";
 * const statusCode = new gcp.monitoring.UptimeCheckConfig("status_code", {
 *     displayName: "http-uptime-check",
 *     timeout: "60s",
 *     httpCheck: {
 *         path: "some-path",
 *         port: 8010,
 *         requestMethod: "POST",
 *         contentType: "URL_ENCODED",
 *         body: "Zm9vJTI1M0RiYXI=",
 *         acceptedResponseStatusCodes: [
 *             {
 *                 statusClass: "STATUS_CLASS_2XX",
 *             },
 *             {
 *                 statusValue: 301,
 *             },
 *             {
 *                 statusValue: 302,
 *             },
 *         ],
 *     },
 *     monitoredResource: {
 *         type: "uptime_url",
 *         labels: {
 *             project_id: "my-project-name",
 *             host: "192.168.1.1",
 *         },
 *     },
 *     contentMatchers: [{
 *         content: "\"example\"",
 *         matcher: "MATCHES_JSON_PATH",
 *         jsonPathMatcher: {
 *             jsonPath: "$.path",
 *             jsonMatcher: "EXACT_MATCH",
 *         },
 *     }],
 *     checkerType: "STATIC_IP_CHECKERS",
 * });
 * ```
 * ```python
 * import pulumi
 * import pulumi_gcp as gcp
 * status_code = gcp.monitoring.UptimeCheckConfig("status_code",
 *     display_name="http-uptime-check",
 *     timeout="60s",
 *     http_check=gcp.monitoring.UptimeCheckConfigHttpCheckArgs(
 *         path="some-path",
 *         port=8010,
 *         request_method="POST",
 *         content_type="URL_ENCODED",
 *         body="Zm9vJTI1M0RiYXI=",
 *         accepted_response_status_codes=[
 *             gcp.monitoring.UptimeCheckConfigHttpCheckAcceptedResponseStatusCodeArgs(
 *                 status_class="STATUS_CLASS_2XX",
 *             ),
 *             gcp.monitoring.UptimeCheckConfigHttpCheckAcceptedResponseStatusCodeArgs(
 *                 status_value=301,
 *             ),
 *             gcp.monitoring.UptimeCheckConfigHttpCheckAcceptedResponseStatusCodeArgs(
 *                 status_value=302,
 *             ),
 *         ],
 *     ),
 *     monitored_resource=gcp.monitoring.UptimeCheckConfigMonitoredResourceArgs(
 *         type="uptime_url",
 *         labels={
 *             "project_id": "my-project-name",
 *             "host": "192.168.1.1",
 *         },
 *     ),
 *     content_matchers=[gcp.monitoring.UptimeCheckConfigContentMatcherArgs(
 *         content="\"example\"",
 *         matcher="MATCHES_JSON_PATH",
 *         json_path_matcher=gcp.monitoring.UptimeCheckConfigContentMatcherJsonPathMatcherArgs(
 *             json_path="$.path",
 *             json_matcher="EXACT_MATCH",
 *         ),
 *     )],
 *     checker_type="STATIC_IP_CHECKERS")
 * ```
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using Gcp = Pulumi.Gcp;
 * return await Deployment.RunAsync(() =>
 * {
 *     var statusCode = new Gcp.Monitoring.UptimeCheckConfig("status_code", new()
 *     {
 *         DisplayName = "http-uptime-check",
 *         Timeout = "60s",
 *         HttpCheck = new Gcp.Monitoring.Inputs.UptimeCheckConfigHttpCheckArgs
 *         {
 *             Path = "some-path",
 *             Port = 8010,
 *             RequestMethod = "POST",
 *             ContentType = "URL_ENCODED",
 *             Body = "Zm9vJTI1M0RiYXI=",
 *             AcceptedResponseStatusCodes = new[]
 *             {
 *                 new Gcp.Monitoring.Inputs.UptimeCheckConfigHttpCheckAcceptedResponseStatusCodeArgs
 *                 {
 *                     StatusClass = "STATUS_CLASS_2XX",
 *                 },
 *                 new Gcp.Monitoring.Inputs.UptimeCheckConfigHttpCheckAcceptedResponseStatusCodeArgs
 *                 {
 *                     StatusValue = 301,
 *                 },
 *                 new Gcp.Monitoring.Inputs.UptimeCheckConfigHttpCheckAcceptedResponseStatusCodeArgs
 *                 {
 *                     StatusValue = 302,
 *                 },
 *             },
 *         },
 *         MonitoredResource = new Gcp.Monitoring.Inputs.UptimeCheckConfigMonitoredResourceArgs
 *         {
 *             Type = "uptime_url",
 *             Labels =
 *             {
 *                 { "project_id", "my-project-name" },
 *                 { "host", "192.168.1.1" },
 *             },
 *         },
 *         ContentMatchers = new[]
 *         {
 *             new Gcp.Monitoring.Inputs.UptimeCheckConfigContentMatcherArgs
 *             {
 *                 Content = "\"example\"",
 *                 Matcher = "MATCHES_JSON_PATH",
 *                 JsonPathMatcher = new Gcp.Monitoring.Inputs.UptimeCheckConfigContentMatcherJsonPathMatcherArgs
 *                 {
 *                     JsonPath = "$.path",
 *                     JsonMatcher = "EXACT_MATCH",
 *                 },
 *             },
 *         },
 *         CheckerType = "STATIC_IP_CHECKERS",
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/monitoring"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := monitoring.NewUptimeCheckConfig(ctx, "status_code", &monitoring.UptimeCheckConfigArgs{
 * 			DisplayName: pulumi.String("http-uptime-check"),
 * 			Timeout:     pulumi.String("60s"),
 * 			HttpCheck: &monitoring.UptimeCheckConfigHttpCheckArgs{
 * 				Path:          pulumi.String("some-path"),
 * 				Port:          pulumi.Int(8010),
 * 				RequestMethod: pulumi.String("POST"),
 * 				ContentType:   pulumi.String("URL_ENCODED"),
 * 				Body:          pulumi.String("Zm9vJTI1M0RiYXI="),
 * 				AcceptedResponseStatusCodes: monitoring.UptimeCheckConfigHttpCheckAcceptedResponseStatusCodeArray{
 * 					&monitoring.UptimeCheckConfigHttpCheckAcceptedResponseStatusCodeArgs{
 * 						StatusClass: pulumi.String("STATUS_CLASS_2XX"),
 * 					},
 * 					&monitoring.UptimeCheckConfigHttpCheckAcceptedResponseStatusCodeArgs{
 * 						StatusValue: pulumi.Int(301),
 * 					},
 * 					&monitoring.UptimeCheckConfigHttpCheckAcceptedResponseStatusCodeArgs{
 * 						StatusValue: pulumi.Int(302),
 * 					},
 * 				},
 * 			},
 * 			MonitoredResource: &monitoring.UptimeCheckConfigMonitoredResourceArgs{
 * 				Type: pulumi.String("uptime_url"),
 * 				Labels: pulumi.StringMap{
 * 					"project_id": pulumi.String("my-project-name"),
 * 					"host":       pulumi.String("192.168.1.1"),
 * 				},
 * 			},
 * 			ContentMatchers: monitoring.UptimeCheckConfigContentMatcherArray{
 * 				&monitoring.UptimeCheckConfigContentMatcherArgs{
 * 					Content: pulumi.String("\"example\""),
 * 					Matcher: pulumi.String("MATCHES_JSON_PATH"),
 * 					JsonPathMatcher: &monitoring.UptimeCheckConfigContentMatcherJsonPathMatcherArgs{
 * 						JsonPath:    pulumi.String("$.path"),
 * 						JsonMatcher: pulumi.String("EXACT_MATCH"),
 * 					},
 * 				},
 * 			},
 * 			CheckerType: pulumi.String("STATIC_IP_CHECKERS"),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.gcp.monitoring.UptimeCheckConfig;
 * import com.pulumi.gcp.monitoring.UptimeCheckConfigArgs;
 * import com.pulumi.gcp.monitoring.inputs.UptimeCheckConfigHttpCheckArgs;
 * import com.pulumi.gcp.monitoring.inputs.UptimeCheckConfigMonitoredResourceArgs;
 * import com.pulumi.gcp.monitoring.inputs.UptimeCheckConfigContentMatcherArgs;
 * import com.pulumi.gcp.monitoring.inputs.UptimeCheckConfigContentMatcherJsonPathMatcherArgs;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 *     public static void stack(Context ctx) {
 *         var statusCode = new UptimeCheckConfig("statusCode", UptimeCheckConfigArgs.builder()
 *             .displayName("http-uptime-check")
 *             .timeout("60s")
 *             .httpCheck(UptimeCheckConfigHttpCheckArgs.builder()
 *                 .path("some-path")
 *                 .port("8010")
 *                 .requestMethod("POST")
 *                 .contentType("URL_ENCODED")
 *                 .body("Zm9vJTI1M0RiYXI=")
 *                 .acceptedResponseStatusCodes(
 *                     UptimeCheckConfigHttpCheckAcceptedResponseStatusCodeArgs.builder()
 *                         .statusClass("STATUS_CLASS_2XX")
 *                         .build(),
 *                     UptimeCheckConfigHttpCheckAcceptedResponseStatusCodeArgs.builder()
 *                         .statusValue(301)
 *                         .build(),
 *                     UptimeCheckConfigHttpCheckAcceptedResponseStatusCodeArgs.builder()
 *                         .statusValue(302)
 *                         .build())
 *                 .build())
 *             .monitoredResource(UptimeCheckConfigMonitoredResourceArgs.builder()
 *                 .type("uptime_url")
 *                 .labels(Map.ofEntries(
 *                     Map.entry("project_id", "my-project-name"),
 *                     Map.entry("host", "192.168.1.1")
 *                 ))
 *                 .build())
 *             .contentMatchers(UptimeCheckConfigContentMatcherArgs.builder()
 *                 .content("\"example\"")
 *                 .matcher("MATCHES_JSON_PATH")
 *                 .jsonPathMatcher(UptimeCheckConfigContentMatcherJsonPathMatcherArgs.builder()
 *                     .jsonPath("$.path")
 *                     .jsonMatcher("EXACT_MATCH")
 *                     .build())
 *                 .build())
 *             .checkerType("STATIC_IP_CHECKERS")
 *             .build());
 *     }
 * }
 * ```
 * ```yaml
 * resources:
 *   statusCode:
 *     type: gcp:monitoring:UptimeCheckConfig
 *     name: status_code
 *     properties:
 *       displayName: http-uptime-check
 *       timeout: 60s
 *       httpCheck:
 *         path: some-path
 *         port: '8010'
 *         requestMethod: POST
 *         contentType: URL_ENCODED
 *         body: Zm9vJTI1M0RiYXI=
 *         acceptedResponseStatusCodes:
 *           - statusClass: STATUS_CLASS_2XX
 *           - statusValue: 301
 *           - statusValue: 302
 *       monitoredResource:
 *         type: uptime_url
 *         labels:
 *           project_id: my-project-name
 *           host: 192.168.1.1
 *       contentMatchers:
 *         - content: '"example"'
 *           matcher: MATCHES_JSON_PATH
 *           jsonPathMatcher:
 *             jsonPath: $.path
 *             jsonMatcher: EXACT_MATCH
 *       checkerType: STATIC_IP_CHECKERS
 * ```
 * 
 * ### Uptime Check Config Https
 * 
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as gcp from "@pulumi/gcp";
 * const https = new gcp.monitoring.UptimeCheckConfig("https", {
 *     displayName: "https-uptime-check",
 *     timeout: "60s",
 *     httpCheck: {
 *         path: "/some-path",
 *         port: 443,
 *         useSsl: true,
 *         validateSsl: true,
 *         serviceAgentAuthentication: {
 *             type: "OIDC_TOKEN",
 *         },
 *     },
 *     monitoredResource: {
 *         type: "uptime_url",
 *         labels: {
 *             project_id: "my-project-name",
 *             host: "192.168.1.1",
 *         },
 *     },
 *     contentMatchers: [{
 *         content: "example",
 *         matcher: "MATCHES_JSON_PATH",
 *         jsonPathMatcher: {
 *             jsonPath: "$.path",
 *             jsonMatcher: "REGEX_MATCH",
 *         },
 *     }],
 * });
 * ```
 * ```python
 * import pulumi
 * import pulumi_gcp as gcp
 * https = gcp.monitoring.UptimeCheckConfig("https",
 *     display_name="https-uptime-check",
 *     timeout="60s",
 *     http_check=gcp.monitoring.UptimeCheckConfigHttpCheckArgs(
 *         path="/some-path",
 *         port=443,
 *         use_ssl=True,
 *         validate_ssl=True,
 *         service_agent_authentication=gcp.monitoring.UptimeCheckConfigHttpCheckServiceAgentAuthenticationArgs(
 *             type="OIDC_TOKEN",
 *         ),
 *     ),
 *     monitored_resource=gcp.monitoring.UptimeCheckConfigMonitoredResourceArgs(
 *         type="uptime_url",
 *         labels={
 *             "project_id": "my-project-name",
 *             "host": "192.168.1.1",
 *         },
 *     ),
 *     content_matchers=[gcp.monitoring.UptimeCheckConfigContentMatcherArgs(
 *         content="example",
 *         matcher="MATCHES_JSON_PATH",
 *         json_path_matcher=gcp.monitoring.UptimeCheckConfigContentMatcherJsonPathMatcherArgs(
 *             json_path="$.path",
 *             json_matcher="REGEX_MATCH",
 *         ),
 *     )])
 * ```
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using Gcp = Pulumi.Gcp;
 * return await Deployment.RunAsync(() =>
 * {
 *     var https = new Gcp.Monitoring.UptimeCheckConfig("https", new()
 *     {
 *         DisplayName = "https-uptime-check",
 *         Timeout = "60s",
 *         HttpCheck = new Gcp.Monitoring.Inputs.UptimeCheckConfigHttpCheckArgs
 *         {
 *             Path = "/some-path",
 *             Port = 443,
 *             UseSsl = true,
 *             ValidateSsl = true,
 *             ServiceAgentAuthentication = new Gcp.Monitoring.Inputs.UptimeCheckConfigHttpCheckServiceAgentAuthenticationArgs
 *             {
 *                 Type = "OIDC_TOKEN",
 *             },
 *         },
 *         MonitoredResource = new Gcp.Monitoring.Inputs.UptimeCheckConfigMonitoredResourceArgs
 *         {
 *             Type = "uptime_url",
 *             Labels =
 *             {
 *                 { "project_id", "my-project-name" },
 *                 { "host", "192.168.1.1" },
 *             },
 *         },
 *         ContentMatchers = new[]
 *         {
 *             new Gcp.Monitoring.Inputs.UptimeCheckConfigContentMatcherArgs
 *             {
 *                 Content = "example",
 *                 Matcher = "MATCHES_JSON_PATH",
 *                 JsonPathMatcher = new Gcp.Monitoring.Inputs.UptimeCheckConfigContentMatcherJsonPathMatcherArgs
 *                 {
 *                     JsonPath = "$.path",
 *                     JsonMatcher = "REGEX_MATCH",
 *                 },
 *             },
 *         },
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/monitoring"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := monitoring.NewUptimeCheckConfig(ctx, "https", &monitoring.UptimeCheckConfigArgs{
 * 			DisplayName: pulumi.String("https-uptime-check"),
 * 			Timeout:     pulumi.String("60s"),
 * 			HttpCheck: &monitoring.UptimeCheckConfigHttpCheckArgs{
 * 				Path:        pulumi.String("/some-path"),
 * 				Port:        pulumi.Int(443),
 * 				UseSsl:      pulumi.Bool(true),
 * 				ValidateSsl: pulumi.Bool(true),
 * 				ServiceAgentAuthentication: &monitoring.UptimeCheckConfigHttpCheckServiceAgentAuthenticationArgs{
 * 					Type: pulumi.String("OIDC_TOKEN"),
 * 				},
 * 			},
 * 			MonitoredResource: &monitoring.UptimeCheckConfigMonitoredResourceArgs{
 * 				Type: pulumi.String("uptime_url"),
 * 				Labels: pulumi.StringMap{
 * 					"project_id": pulumi.String("my-project-name"),
 * 					"host":       pulumi.String("192.168.1.1"),
 * 				},
 * 			},
 * 			ContentMatchers: monitoring.UptimeCheckConfigContentMatcherArray{
 * 				&monitoring.UptimeCheckConfigContentMatcherArgs{
 * 					Content: pulumi.String("example"),
 * 					Matcher: pulumi.String("MATCHES_JSON_PATH"),
 * 					JsonPathMatcher: &monitoring.UptimeCheckConfigContentMatcherJsonPathMatcherArgs{
 * 						JsonPath:    pulumi.String("$.path"),
 * 						JsonMatcher: pulumi.String("REGEX_MATCH"),
 * 					},
 * 				},
 * 			},
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.gcp.monitoring.UptimeCheckConfig;
 * import com.pulumi.gcp.monitoring.UptimeCheckConfigArgs;
 * import com.pulumi.gcp.monitoring.inputs.UptimeCheckConfigHttpCheckArgs;
 * import com.pulumi.gcp.monitoring.inputs.UptimeCheckConfigHttpCheckServiceAgentAuthenticationArgs;
 * import com.pulumi.gcp.monitoring.inputs.UptimeCheckConfigMonitoredResourceArgs;
 * import com.pulumi.gcp.monitoring.inputs.UptimeCheckConfigContentMatcherArgs;
 * import com.pulumi.gcp.monitoring.inputs.UptimeCheckConfigContentMatcherJsonPathMatcherArgs;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 *     public static void stack(Context ctx) {
 *         var https = new UptimeCheckConfig("https", UptimeCheckConfigArgs.builder()
 *             .displayName("https-uptime-check")
 *             .timeout("60s")
 *             .httpCheck(UptimeCheckConfigHttpCheckArgs.builder()
 *                 .path("/some-path")
 *                 .port("443")
 *                 .useSsl(true)
 *                 .validateSsl(true)
 *                 .serviceAgentAuthentication(UptimeCheckConfigHttpCheckServiceAgentAuthenticationArgs.builder()
 *                     .type("OIDC_TOKEN")
 *                     .build())
 *                 .build())
 *             .monitoredResource(UptimeCheckConfigMonitoredResourceArgs.builder()
 *                 .type("uptime_url")
 *                 .labels(Map.ofEntries(
 *                     Map.entry("project_id", "my-project-name"),
 *                     Map.entry("host", "192.168.1.1")
 *                 ))
 *                 .build())
 *             .contentMatchers(UptimeCheckConfigContentMatcherArgs.builder()
 *                 .content("example")
 *                 .matcher("MATCHES_JSON_PATH")
 *                 .jsonPathMatcher(UptimeCheckConfigContentMatcherJsonPathMatcherArgs.builder()
 *                     .jsonPath("$.path")
 *                     .jsonMatcher("REGEX_MATCH")
 *                     .build())
 *                 .build())
 *             .build());
 *     }
 * }
 * ```
 * ```yaml
 * resources:
 *   https:
 *     type: gcp:monitoring:UptimeCheckConfig
 *     properties:
 *       displayName: https-uptime-check
 *       timeout: 60s
 *       httpCheck:
 *         path: /some-path
 *         port: '443'
 *         useSsl: true
 *         validateSsl: true
 *         serviceAgentAuthentication:
 *           type: OIDC_TOKEN
 *       monitoredResource:
 *         type: uptime_url
 *         labels:
 *           project_id: my-project-name
 *           host: 192.168.1.1
 *       contentMatchers:
 *         - content: example
 *           matcher: MATCHES_JSON_PATH
 *           jsonPathMatcher:
 *             jsonPath: $.path
 *             jsonMatcher: REGEX_MATCH
 * ```
 * 
 * ### Uptime Check Tcp
 * 
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as gcp from "@pulumi/gcp";
 * const check = new gcp.monitoring.Group("check", {
 *     displayName: "uptime-check-group",
 *     filter: "resource.metadata.name=has_substring(\"foo\")",
 * });
 * const tcpGroup = new gcp.monitoring.UptimeCheckConfig("tcp_group", {
 *     displayName: "tcp-uptime-check",
 *     timeout: "60s",
 *     tcpCheck: {
 *         port: 888,
 *         pingConfig: {
 *             pingsCount: 2,
 *         },
 *     },
 *     resourceGroup: {
 *         resourceType: "INSTANCE",
 *         groupId: check.name,
 *     },
 * });
 * ```
 * ```python
 * import pulumi
 * import pulumi_gcp as gcp
 * check = gcp.monitoring.Group("check",
 *     display_name="uptime-check-group",
 *     filter="resource.metadata.name=has_substring(\"foo\")")
 * tcp_group = gcp.monitoring.UptimeCheckConfig("tcp_group",
 *     display_name="tcp-uptime-check",
 *     timeout="60s",
 *     tcp_check=gcp.monitoring.UptimeCheckConfigTcpCheckArgs(
 *         port=888,
 *         ping_config=gcp.monitoring.UptimeCheckConfigTcpCheckPingConfigArgs(
 *             pings_count=2,
 *         ),
 *     ),
 *     resource_group=gcp.monitoring.UptimeCheckConfigResourceGroupArgs(
 *         resource_type="INSTANCE",
 *         group_id=check.name,
 *     ))
 * ```
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using Gcp = Pulumi.Gcp;
 * return await Deployment.RunAsync(() =>
 * {
 *     var check = new Gcp.Monitoring.Group("check", new()
 *     {
 *         DisplayName = "uptime-check-group",
 *         Filter = "resource.metadata.name=has_substring(\"foo\")",
 *     });
 *     var tcpGroup = new Gcp.Monitoring.UptimeCheckConfig("tcp_group", new()
 *     {
 *         DisplayName = "tcp-uptime-check",
 *         Timeout = "60s",
 *         TcpCheck = new Gcp.Monitoring.Inputs.UptimeCheckConfigTcpCheckArgs
 *         {
 *             Port = 888,
 *             PingConfig = new Gcp.Monitoring.Inputs.UptimeCheckConfigTcpCheckPingConfigArgs
 *             {
 *                 PingsCount = 2,
 *             },
 *         },
 *         ResourceGroup = new Gcp.Monitoring.Inputs.UptimeCheckConfigResourceGroupArgs
 *         {
 *             ResourceType = "INSTANCE",
 *             GroupId = check.Name,
 *         },
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/monitoring"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		check, err := monitoring.NewGroup(ctx, "check", &monitoring.GroupArgs{
 * 			DisplayName: pulumi.String("uptime-check-group"),
 * 			Filter:      pulumi.String("resource.metadata.name=has_substring(\"foo\")"),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		_, err = monitoring.NewUptimeCheckConfig(ctx, "tcp_group", &monitoring.UptimeCheckConfigArgs{
 * 			DisplayName: pulumi.String("tcp-uptime-check"),
 * 			Timeout:     pulumi.String("60s"),
 * 			TcpCheck: &monitoring.UptimeCheckConfigTcpCheckArgs{
 * 				Port: pulumi.Int(888),
 * 				PingConfig: &monitoring.UptimeCheckConfigTcpCheckPingConfigArgs{
 * 					PingsCount: pulumi.Int(2),
 * 				},
 * 			},
 * 			ResourceGroup: &monitoring.UptimeCheckConfigResourceGroupArgs{
 * 				ResourceType: pulumi.String("INSTANCE"),
 * 				GroupId:      check.Name,
 * 			},
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.gcp.monitoring.Group;
 * import com.pulumi.gcp.monitoring.GroupArgs;
 * import com.pulumi.gcp.monitoring.UptimeCheckConfig;
 * import com.pulumi.gcp.monitoring.UptimeCheckConfigArgs;
 * import com.pulumi.gcp.monitoring.inputs.UptimeCheckConfigTcpCheckArgs;
 * import com.pulumi.gcp.monitoring.inputs.UptimeCheckConfigTcpCheckPingConfigArgs;
 * import com.pulumi.gcp.monitoring.inputs.UptimeCheckConfigResourceGroupArgs;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 *     public static void stack(Context ctx) {
 *         var check = new Group("check", GroupArgs.builder()
 *             .displayName("uptime-check-group")
 *             .filter("resource.metadata.name=has_substring(\"foo\")")
 *             .build());
 *         var tcpGroup = new UptimeCheckConfig("tcpGroup", UptimeCheckConfigArgs.builder()
 *             .displayName("tcp-uptime-check")
 *             .timeout("60s")
 *             .tcpCheck(UptimeCheckConfigTcpCheckArgs.builder()
 *                 .port(888)
 *                 .pingConfig(UptimeCheckConfigTcpCheckPingConfigArgs.builder()
 *                     .pingsCount(2)
 *                     .build())
 *                 .build())
 *             .resourceGroup(UptimeCheckConfigResourceGroupArgs.builder()
 *                 .resourceType("INSTANCE")
 *                 .groupId(check.name())
 *                 .build())
 *             .build());
 *     }
 * }
 * ```
 * ```yaml
 * resources:
 *   tcpGroup:
 *     type: gcp:monitoring:UptimeCheckConfig
 *     name: tcp_group
 *     properties:
 *       displayName: tcp-uptime-check
 *       timeout: 60s
 *       tcpCheck:
 *         port: 888
 *         pingConfig:
 *           pingsCount: 2
 *       resourceGroup:
 *         resourceType: INSTANCE
 *         groupId: ${check.name}
 *   check:
 *     type: gcp:monitoring:Group
 *     properties:
 *       displayName: uptime-check-group
 *       filter: resource.metadata.name=has_substring("foo")
 * ```
 * 
 * ### Uptime Check Config Synthetic Monitor
 * 
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as gcp from "@pulumi/gcp";
 * const bucket = new gcp.storage.Bucket("bucket", {
 *     name: "my-project-name-gcf-source",
 *     location: "US",
 *     uniformBucketLevelAccess: true,
 * });
 * const object = new gcp.storage.BucketObject("object", {
 *     name: "function-source.zip",
 *     bucket: bucket.name,
 *     source: new pulumi.asset.FileAsset("synthetic-fn-source.zip"),
 * });
 * const _function = new gcp.cloudfunctionsv2.Function("function", {
 *     name: "synthetic_function",
 *     location: "us-central1",
 *     buildConfig: {
 *         runtime: "nodejs16",
 *         entryPoint: "SyntheticFunction",
 *         source: {
 *             storageSource: {
 *                 bucket: bucket.name,
 *                 object: object.name,
 *             },
 *         },
 *     },
 *     serviceConfig: {
 *         maxInstanceCount: 1,
 *         availableMemory: "256M",
 *         timeoutSeconds: 60,
 *     },
 * });
 * const syntheticMonitor = new gcp.monitoring.UptimeCheckConfig("synthetic_monitor", {
 *     displayName: "synthetic_monitor",
 *     timeout: "60s",
 *     syntheticMonitor: {
 *         cloudFunctionV2: {
 *             name: _function.id,
 *         },
 *     },
 * });
 * ```
 * ```python
 * import pulumi
 * import pulumi_gcp as gcp
 * bucket = gcp.storage.Bucket("bucket",
 *     name="my-project-name-gcf-source",
 *     location="US",
 *     uniform_bucket_level_access=True)
 * object = gcp.storage.BucketObject("object",
 *     name="function-source.zip",
 *     bucket=bucket.name,
 *     source=pulumi.FileAsset("synthetic-fn-source.zip"))
 * function = gcp.cloudfunctionsv2.Function("function",
 *     name="synthetic_function",
 *     location="us-central1",
 *     build_config=gcp.cloudfunctionsv2.FunctionBuildConfigArgs(
 *         runtime="nodejs16",
 *         entry_point="SyntheticFunction",
 *         source=gcp.cloudfunctionsv2.FunctionBuildConfigSourceArgs(
 *             storage_source=gcp.cloudfunctionsv2.FunctionBuildConfigSourceStorageSourceArgs(
 *                 bucket=bucket.name,
 *                 object=object.name,
 *             ),
 *         ),
 *     ),
 *     service_config=gcp.cloudfunctionsv2.FunctionServiceConfigArgs(
 *         max_instance_count=1,
 *         available_memory="256M",
 *         timeout_seconds=60,
 *     ))
 * synthetic_monitor = gcp.monitoring.UptimeCheckConfig("synthetic_monitor",
 *     display_name="synthetic_monitor",
 *     timeout="60s",
 *     synthetic_monitor=gcp.monitoring.UptimeCheckConfigSyntheticMonitorArgs(
 *         cloud_function_v2=gcp.monitoring.UptimeCheckConfigSyntheticMonitorCloudFunctionV2Args(
 *             name=function.id,
 *         ),
 *     ))
 * ```
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using Gcp = Pulumi.Gcp;
 * return await Deployment.RunAsync(() =>
 * {
 *     var bucket = new Gcp.Storage.Bucket("bucket", new()
 *     {
 *         Name = "my-project-name-gcf-source",
 *         Location = "US",
 *         UniformBucketLevelAccess = true,
 *     });
 *     var @object = new Gcp.Storage.BucketObject("object", new()
 *     {
 *         Name = "function-source.zip",
 *         Bucket = bucket.Name,
 *         Source = new FileAsset("synthetic-fn-source.zip"),
 *     });
 *     var function = new Gcp.CloudFunctionsV2.Function("function", new()
 *     {
 *         Name = "synthetic_function",
 *         Location = "us-central1",
 *         BuildConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigArgs
 *         {
 *             Runtime = "nodejs16",
 *             EntryPoint = "SyntheticFunction",
 *             Source = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceArgs
 *             {
 *                 StorageSource = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceStorageSourceArgs
 *                 {
 *                     Bucket = bucket.Name,
 *                     Object = @object.Name,
 *                 },
 *             },
 *         },
 *         ServiceConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionServiceConfigArgs
 *         {
 *             MaxInstanceCount = 1,
 *             AvailableMemory = "256M",
 *             TimeoutSeconds = 60,
 *         },
 *     });
 *     var syntheticMonitor = new Gcp.Monitoring.UptimeCheckConfig("synthetic_monitor", new()
 *     {
 *         DisplayName = "synthetic_monitor",
 *         Timeout = "60s",
 *         SyntheticMonitor = new Gcp.Monitoring.Inputs.UptimeCheckConfigSyntheticMonitorArgs
 *         {
 *             CloudFunctionV2 = new Gcp.Monitoring.Inputs.UptimeCheckConfigSyntheticMonitorCloudFunctionV2Args
 *             {
 *                 Name = function.Id,
 *             },
 *         },
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/cloudfunctionsv2"
 * 	"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/monitoring"
 * 	"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/storage"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		bucket, err := storage.NewBucket(ctx, "bucket", &storage.BucketArgs{
 * 			Name:                     pulumi.String("my-project-name-gcf-source"),
 * 			Location:                 pulumi.String("US"),
 * 			UniformBucketLevelAccess: pulumi.Bool(true),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		object, err := storage.NewBucketObject(ctx, "object", &storage.BucketObjectArgs{
 * 			Name:   pulumi.String("function-source.zip"),
 * 			Bucket: bucket.Name,
 * 			Source: pulumi.NewFileAsset("synthetic-fn-source.zip"),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		function, err := cloudfunctionsv2.NewFunction(ctx, "function", &cloudfunctionsv2.FunctionArgs{
 * 			Name:     pulumi.String("synthetic_function"),
 * 			Location: pulumi.String("us-central1"),
 * 			BuildConfig: &cloudfunctionsv2.FunctionBuildConfigArgs{
 * 				Runtime:    pulumi.String("nodejs16"),
 * 				EntryPoint: pulumi.String("SyntheticFunction"),
 * 				Source: &cloudfunctionsv2.FunctionBuildConfigSourceArgs{
 * 					StorageSource: &cloudfunctionsv2.FunctionBuildConfigSourceStorageSourceArgs{
 * 						Bucket: bucket.Name,
 * 						Object: object.Name,
 * 					},
 * 				},
 * 			},
 * 			ServiceConfig: &cloudfunctionsv2.FunctionServiceConfigArgs{
 * 				MaxInstanceCount: pulumi.Int(1),
 * 				AvailableMemory:  pulumi.String("256M"),
 * 				TimeoutSeconds:   pulumi.Int(60),
 * 			},
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		_, err = monitoring.NewUptimeCheckConfig(ctx, "synthetic_monitor", &monitoring.UptimeCheckConfigArgs{
 * 			DisplayName: pulumi.String("synthetic_monitor"),
 * 			Timeout:     pulumi.String("60s"),
 * 			SyntheticMonitor: &monitoring.UptimeCheckConfigSyntheticMonitorArgs{
 * 				CloudFunctionV2: &monitoring.UptimeCheckConfigSyntheticMonitorCloudFunctionV2Args{
 * 					Name: function.ID(),
 * 				},
 * 			},
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.gcp.storage.Bucket;
 * import com.pulumi.gcp.storage.BucketArgs;
 * import com.pulumi.gcp.storage.BucketObject;
 * import com.pulumi.gcp.storage.BucketObjectArgs;
 * import com.pulumi.gcp.cloudfunctionsv2.Function;
 * import com.pulumi.gcp.cloudfunctionsv2.FunctionArgs;
 * import com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigArgs;
 * import com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceArgs;
 * import com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceStorageSourceArgs;
 * import com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionServiceConfigArgs;
 * import com.pulumi.gcp.monitoring.UptimeCheckConfig;
 * import com.pulumi.gcp.monitoring.UptimeCheckConfigArgs;
 * import com.pulumi.gcp.monitoring.inputs.UptimeCheckConfigSyntheticMonitorArgs;
 * import com.pulumi.gcp.monitoring.inputs.UptimeCheckConfigSyntheticMonitorCloudFunctionV2Args;
 * import com.pulumi.asset.FileAsset;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 *     public static void stack(Context ctx) {
 *         var bucket = new Bucket("bucket", BucketArgs.builder()
 *             .name("my-project-name-gcf-source")
 *             .location("US")
 *             .uniformBucketLevelAccess(true)
 *             .build());
 *         var object = new BucketObject("object", BucketObjectArgs.builder()
 *             .name("function-source.zip")
 *             .bucket(bucket.name())
 *             .source(new FileAsset("synthetic-fn-source.zip"))
 *             .build());
 *         var function = new Function("function", FunctionArgs.builder()
 *             .name("synthetic_function")
 *             .location("us-central1")
 *             .buildConfig(FunctionBuildConfigArgs.builder()
 *                 .runtime("nodejs16")
 *                 .entryPoint("SyntheticFunction")
 *                 .source(FunctionBuildConfigSourceArgs.builder()
 *                     .storageSource(FunctionBuildConfigSourceStorageSourceArgs.builder()
 *                         .bucket(bucket.name())
 *                         .object(object.name())
 *                         .build())
 *                     .build())
 *                 .build())
 *             .serviceConfig(FunctionServiceConfigArgs.builder()
 *                 .maxInstanceCount(1)
 *                 .availableMemory("256M")
 *                 .timeoutSeconds(60)
 *                 .build())
 *             .build());
 *         var syntheticMonitor = new UptimeCheckConfig("syntheticMonitor", UptimeCheckConfigArgs.builder()
 *             .displayName("synthetic_monitor")
 *             .timeout("60s")
 *             .syntheticMonitor(UptimeCheckConfigSyntheticMonitorArgs.builder()
 *                 .cloudFunctionV2(UptimeCheckConfigSyntheticMonitorCloudFunctionV2Args.builder()
 *                     .name(function.id())
 *                     .build())
 *                 .build())
 *             .build());
 *     }
 * }
 * ```
 * ```yaml
 * resources:
 *   bucket:
 *     type: gcp:storage:Bucket
 *     properties:
 *       name: my-project-name-gcf-source
 *       location: US
 *       uniformBucketLevelAccess: true
 *   object:
 *     type: gcp:storage:BucketObject
 *     properties:
 *       name: function-source.zip
 *       bucket: ${bucket.name}
 *       source:
 *         fn::FileAsset: synthetic-fn-source.zip
 *   function:
 *     type: gcp:cloudfunctionsv2:Function
 *     properties:
 *       name: synthetic_function
 *       location: us-central1
 *       buildConfig:
 *         runtime: nodejs16
 *         entryPoint: SyntheticFunction
 *         source:
 *           storageSource:
 *             bucket: ${bucket.name}
 *             object: ${object.name}
 *       serviceConfig:
 *         maxInstanceCount: 1
 *         availableMemory: 256M
 *         timeoutSeconds: 60
 *   syntheticMonitor:
 *     type: gcp:monitoring:UptimeCheckConfig
 *     name: synthetic_monitor
 *     properties:
 *       displayName: synthetic_monitor
 *       timeout: 60s
 *       syntheticMonitor:
 *         cloudFunctionV2:
 *           name: ${function.id}
 * ```
 * 
 * ## Import
 * UptimeCheckConfig can be imported using any of these accepted formats:
 * * `{{name}}`
 * When using the `pulumi import` command, UptimeCheckConfig can be imported using one of the formats above. For example:
 * ```sh
 * $ pulumi import gcp:monitoring/uptimeCheckConfig:UptimeCheckConfig default {{name}}
 * ```
 * @property checkerType The checker type to use for the check. If the monitored resource type is `servicedirectory_service`, `checker_type` must be set to `VPC_CHECKERS`.
 * Possible values are: `STATIC_IP_CHECKERS`, `VPC_CHECKERS`.
 * @property contentMatchers The expected content on the page the check is run against. Currently, only the first entry in the list is supported, and other entries will be ignored. The server will look for an exact match of the string in the page response's content. This field is optional and should only be specified if a content match is required.
 * Structure is documented below.
 * @property displayName A human-friendly name for the uptime check configuration. The display name should be unique within a Stackdriver Workspace in order to make it easier to identify; however, uniqueness is not enforced.
 * @property httpCheck Contains information needed to make an HTTP or HTTPS check.
 * Structure is documented below.
 * @property monitoredResource The [monitored resource]
 * (https://cloud.google.com/monitoring/api/resources) associated with the
 * configuration. The following monitored resource types are supported for
 * uptime checks:
 * @property period 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 300s.
 * @property project The ID of the project in which the resource belongs.
 * If it is not provided, the provider project is used.
 * @property resourceGroup The group resource associated with the configuration.
 * Structure is documented below.
 * @property selectedRegions 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 to include a minimum of 3 locations must be provided, or an error message is returned. Not specifying this field will result in uptime checks running from all regions.
 * @property syntheticMonitor A Synthetic Monitor deployed to a Cloud Functions V2 instance.
 * Structure is documented below.
 * @property tcpCheck Contains information needed to make a TCP check.
 * Structure is documented below.
 * @property timeout The maximum amount of time to wait for the request to complete (must be between 1 and 60 seconds). See the accepted formats
 * - - -
 * @property userLabels 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.
 */
public data class UptimeCheckConfigArgs(
    public val checkerType: Output? = null,
    public val contentMatchers: Output>? = null,
    public val displayName: Output? = null,
    public val httpCheck: Output? = null,
    public val monitoredResource: Output? = null,
    public val period: Output? = null,
    public val project: Output? = null,
    public val resourceGroup: Output? = null,
    public val selectedRegions: Output>? = null,
    public val syntheticMonitor: Output? = null,
    public val tcpCheck: Output? = null,
    public val timeout: Output? = null,
    public val userLabels: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.gcp.monitoring.UptimeCheckConfigArgs =
        com.pulumi.gcp.monitoring.UptimeCheckConfigArgs.builder()
            .checkerType(checkerType?.applyValue({ args0 -> args0 }))
            .contentMatchers(
                contentMatchers?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .displayName(displayName?.applyValue({ args0 -> args0 }))
            .httpCheck(httpCheck?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .monitoredResource(monitoredResource?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .period(period?.applyValue({ args0 -> args0 }))
            .project(project?.applyValue({ args0 -> args0 }))
            .resourceGroup(resourceGroup?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .selectedRegions(selectedRegions?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .syntheticMonitor(syntheticMonitor?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .tcpCheck(tcpCheck?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .timeout(timeout?.applyValue({ args0 -> args0 }))
            .userLabels(
                userLabels?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.key.to(args0.value)
                    }).toMap()
                }),
            ).build()
}

/**
 * Builder for [UptimeCheckConfigArgs].
 */
@PulumiTagMarker
public class UptimeCheckConfigArgsBuilder internal constructor() {
    private var checkerType: Output? = null

    private var contentMatchers: Output>? = null

    private var displayName: Output? = null

    private var httpCheck: Output? = null

    private var monitoredResource: Output? = null

    private var period: Output? = null

    private var project: Output? = null

    private var resourceGroup: Output? = null

    private var selectedRegions: Output>? = null

    private var syntheticMonitor: Output? = null

    private var tcpCheck: Output? = null

    private var timeout: Output? = null

    private var userLabels: Output>? = null

    /**
     * @param value The checker type to use for the check. If the monitored resource type is `servicedirectory_service`, `checker_type` must be set to `VPC_CHECKERS`.
     * Possible values are: `STATIC_IP_CHECKERS`, `VPC_CHECKERS`.
     */
    @JvmName("sornhxdanrlxidwc")
    public suspend fun checkerType(`value`: Output) {
        this.checkerType = value
    }

    /**
     * @param value The expected content on the page the check is run against. Currently, only the first entry in the list is supported, and other entries will be ignored. The server will look for an exact match of the string in the page response's content. This field is optional and should only be specified if a content match is required.
     * Structure is documented below.
     */
    @JvmName("nbpsssqadtetuppt")
    public suspend fun contentMatchers(`value`: Output>) {
        this.contentMatchers = value
    }

    @JvmName("urxmqoakjywrkcjl")
    public suspend fun contentMatchers(vararg values: Output) {
        this.contentMatchers = Output.all(values.asList())
    }

    /**
     * @param values The expected content on the page the check is run against. Currently, only the first entry in the list is supported, and other entries will be ignored. The server will look for an exact match of the string in the page response's content. This field is optional and should only be specified if a content match is required.
     * Structure is documented below.
     */
    @JvmName("caovagsgmgyuneyy")
    public suspend fun contentMatchers(values: List>) {
        this.contentMatchers = Output.all(values)
    }

    /**
     * @param value A human-friendly name for the uptime check configuration. The display name should be unique within a Stackdriver Workspace in order to make it easier to identify; however, uniqueness is not enforced.
     */
    @JvmName("cdkbexgpocyqbqkd")
    public suspend fun displayName(`value`: Output) {
        this.displayName = value
    }

    /**
     * @param value Contains information needed to make an HTTP or HTTPS check.
     * Structure is documented below.
     */
    @JvmName("lyslnxwxnsputqfl")
    public suspend fun httpCheck(`value`: Output) {
        this.httpCheck = value
    }

    /**
     * @param value The [monitored resource]
     * (https://cloud.google.com/monitoring/api/resources) associated with the
     * configuration. The following monitored resource types are supported for
     * uptime checks:
     */
    @JvmName("qxjujsucdmaiwnxt")
    public suspend fun monitoredResource(`value`: Output) {
        this.monitoredResource = value
    }

    /**
     * @param value 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 300s.
     */
    @JvmName("rfufygalkvbvivfb")
    public suspend fun period(`value`: Output) {
        this.period = value
    }

    /**
     * @param value The ID of the project in which the resource belongs.
     * If it is not provided, the provider project is used.
     */
    @JvmName("casquuoedsoantke")
    public suspend fun project(`value`: Output) {
        this.project = value
    }

    /**
     * @param value The group resource associated with the configuration.
     * Structure is documented below.
     */
    @JvmName("cifpwhhsftbuivou")
    public suspend fun resourceGroup(`value`: Output) {
        this.resourceGroup = value
    }

    /**
     * @param value 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 to include a minimum of 3 locations must be provided, or an error message is returned. Not specifying this field will result in uptime checks running from all regions.
     */
    @JvmName("oegmwvmvcywijpfd")
    public suspend fun selectedRegions(`value`: Output>) {
        this.selectedRegions = value
    }

    @JvmName("arcdnvrqwauseoaq")
    public suspend fun selectedRegions(vararg values: Output) {
        this.selectedRegions = Output.all(values.asList())
    }

    /**
     * @param values 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 to include a minimum of 3 locations must be provided, or an error message is returned. Not specifying this field will result in uptime checks running from all regions.
     */
    @JvmName("uxkgcrijbstsnnyw")
    public suspend fun selectedRegions(values: List>) {
        this.selectedRegions = Output.all(values)
    }

    /**
     * @param value A Synthetic Monitor deployed to a Cloud Functions V2 instance.
     * Structure is documented below.
     */
    @JvmName("llpfjwluxvgufhqf")
    public suspend fun syntheticMonitor(`value`: Output) {
        this.syntheticMonitor = value
    }

    /**
     * @param value Contains information needed to make a TCP check.
     * Structure is documented below.
     */
    @JvmName("bodewnqycwgxqkhv")
    public suspend fun tcpCheck(`value`: Output) {
        this.tcpCheck = value
    }

    /**
     * @param value The maximum amount of time to wait for the request to complete (must be between 1 and 60 seconds). See the accepted formats
     * - - -
     */
    @JvmName("hhhgxsxtssewqrsx")
    public suspend fun timeout(`value`: Output) {
        this.timeout = value
    }

    /**
     * @param value 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.
     */
    @JvmName("iblortljpffakefl")
    public suspend fun userLabels(`value`: Output>) {
        this.userLabels = value
    }

    /**
     * @param value The checker type to use for the check. If the monitored resource type is `servicedirectory_service`, `checker_type` must be set to `VPC_CHECKERS`.
     * Possible values are: `STATIC_IP_CHECKERS`, `VPC_CHECKERS`.
     */
    @JvmName("vugkcusmspnlkdxt")
    public suspend fun checkerType(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.checkerType = mapped
    }

    /**
     * @param value The expected content on the page the check is run against. Currently, only the first entry in the list is supported, and other entries will be ignored. The server will look for an exact match of the string in the page response's content. This field is optional and should only be specified if a content match is required.
     * Structure is documented below.
     */
    @JvmName("nupkuufjgywyxjnd")
    public suspend fun contentMatchers(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.contentMatchers = mapped
    }

    /**
     * @param argument The expected content on the page the check is run against. Currently, only the first entry in the list is supported, and other entries will be ignored. The server will look for an exact match of the string in the page response's content. This field is optional and should only be specified if a content match is required.
     * Structure is documented below.
     */
    @JvmName("tyrgbijgmtequllb")
    public suspend fun contentMatchers(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            UptimeCheckConfigContentMatcherArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.contentMatchers = mapped
    }

    /**
     * @param argument The expected content on the page the check is run against. Currently, only the first entry in the list is supported, and other entries will be ignored. The server will look for an exact match of the string in the page response's content. This field is optional and should only be specified if a content match is required.
     * Structure is documented below.
     */
    @JvmName("gmhpxgullxhxedes")
    public suspend fun contentMatchers(vararg argument: suspend UptimeCheckConfigContentMatcherArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            UptimeCheckConfigContentMatcherArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.contentMatchers = mapped
    }

    /**
     * @param argument The expected content on the page the check is run against. Currently, only the first entry in the list is supported, and other entries will be ignored. The server will look for an exact match of the string in the page response's content. This field is optional and should only be specified if a content match is required.
     * Structure is documented below.
     */
    @JvmName("htbtxsesvpeeuese")
    public suspend fun contentMatchers(argument: suspend UptimeCheckConfigContentMatcherArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            UptimeCheckConfigContentMatcherArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.contentMatchers = mapped
    }

    /**
     * @param values The expected content on the page the check is run against. Currently, only the first entry in the list is supported, and other entries will be ignored. The server will look for an exact match of the string in the page response's content. This field is optional and should only be specified if a content match is required.
     * Structure is documented below.
     */
    @JvmName("vyxsfqtfqnvlbptk")
    public suspend fun contentMatchers(vararg values: UptimeCheckConfigContentMatcherArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.contentMatchers = mapped
    }

    /**
     * @param value A human-friendly name for the uptime check configuration. The display name should be unique within a Stackdriver Workspace in order to make it easier to identify; however, uniqueness is not enforced.
     */
    @JvmName("auokpcpioovrlxsy")
    public suspend fun displayName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.displayName = mapped
    }

    /**
     * @param value Contains information needed to make an HTTP or HTTPS check.
     * Structure is documented below.
     */
    @JvmName("nemyicftrkkulndo")
    public suspend fun httpCheck(`value`: UptimeCheckConfigHttpCheckArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.httpCheck = mapped
    }

    /**
     * @param argument Contains information needed to make an HTTP or HTTPS check.
     * Structure is documented below.
     */
    @JvmName("qnglejkdxekkqrsn")
    public suspend fun httpCheck(argument: suspend UptimeCheckConfigHttpCheckArgsBuilder.() -> Unit) {
        val toBeMapped = UptimeCheckConfigHttpCheckArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.httpCheck = mapped
    }

    /**
     * @param value The [monitored resource]
     * (https://cloud.google.com/monitoring/api/resources) associated with the
     * configuration. The following monitored resource types are supported for
     * uptime checks:
     */
    @JvmName("cwhymbkjrrmfddxp")
    public suspend fun monitoredResource(`value`: UptimeCheckConfigMonitoredResourceArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.monitoredResource = mapped
    }

    /**
     * @param argument The [monitored resource]
     * (https://cloud.google.com/monitoring/api/resources) associated with the
     * configuration. The following monitored resource types are supported for
     * uptime checks:
     */
    @JvmName("ygnccjyxmdnwkwof")
    public suspend fun monitoredResource(argument: suspend UptimeCheckConfigMonitoredResourceArgsBuilder.() -> Unit) {
        val toBeMapped = UptimeCheckConfigMonitoredResourceArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.monitoredResource = mapped
    }

    /**
     * @param value 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 300s.
     */
    @JvmName("ovgiswtnveirbwak")
    public suspend fun period(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.period = mapped
    }

    /**
     * @param value The ID of the project in which the resource belongs.
     * If it is not provided, the provider project is used.
     */
    @JvmName("hlabqafhnnxtloly")
    public suspend fun project(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.project = mapped
    }

    /**
     * @param value The group resource associated with the configuration.
     * Structure is documented below.
     */
    @JvmName("kutdmesxwolglitb")
    public suspend fun resourceGroup(`value`: UptimeCheckConfigResourceGroupArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.resourceGroup = mapped
    }

    /**
     * @param argument The group resource associated with the configuration.
     * Structure is documented below.
     */
    @JvmName("pwpyhmstvyqpspig")
    public suspend fun resourceGroup(argument: suspend UptimeCheckConfigResourceGroupArgsBuilder.() -> Unit) {
        val toBeMapped = UptimeCheckConfigResourceGroupArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.resourceGroup = mapped
    }

    /**
     * @param value 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 to include a minimum of 3 locations must be provided, or an error message is returned. Not specifying this field will result in uptime checks running from all regions.
     */
    @JvmName("wbuyisndryxkyjcv")
    public suspend fun selectedRegions(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.selectedRegions = mapped
    }

    /**
     * @param values 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 to include a minimum of 3 locations must be provided, or an error message is returned. Not specifying this field will result in uptime checks running from all regions.
     */
    @JvmName("vxjdkchxolbkyudv")
    public suspend fun selectedRegions(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.selectedRegions = mapped
    }

    /**
     * @param value A Synthetic Monitor deployed to a Cloud Functions V2 instance.
     * Structure is documented below.
     */
    @JvmName("gsodesqwvbfxjddk")
    public suspend fun syntheticMonitor(`value`: UptimeCheckConfigSyntheticMonitorArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.syntheticMonitor = mapped
    }

    /**
     * @param argument A Synthetic Monitor deployed to a Cloud Functions V2 instance.
     * Structure is documented below.
     */
    @JvmName("ckqfsrbaixuowsyj")
    public suspend fun syntheticMonitor(argument: suspend UptimeCheckConfigSyntheticMonitorArgsBuilder.() -> Unit) {
        val toBeMapped = UptimeCheckConfigSyntheticMonitorArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.syntheticMonitor = mapped
    }

    /**
     * @param value Contains information needed to make a TCP check.
     * Structure is documented below.
     */
    @JvmName("xmpqdrmluqiagwog")
    public suspend fun tcpCheck(`value`: UptimeCheckConfigTcpCheckArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tcpCheck = mapped
    }

    /**
     * @param argument Contains information needed to make a TCP check.
     * Structure is documented below.
     */
    @JvmName("rerobrjebicfrdfa")
    public suspend fun tcpCheck(argument: suspend UptimeCheckConfigTcpCheckArgsBuilder.() -> Unit) {
        val toBeMapped = UptimeCheckConfigTcpCheckArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.tcpCheck = mapped
    }

    /**
     * @param value The maximum amount of time to wait for the request to complete (must be between 1 and 60 seconds). See the accepted formats
     * - - -
     */
    @JvmName("icudgrutqugynwnk")
    public suspend fun timeout(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.timeout = mapped
    }

    /**
     * @param value 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.
     */
    @JvmName("gvebmbqybshxyqwk")
    public suspend fun userLabels(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.userLabels = mapped
    }

    /**
     * @param values 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.
     */
    @JvmName("eqkdkjacywejhojs")
    public fun userLabels(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.userLabels = mapped
    }

    internal fun build(): UptimeCheckConfigArgs = UptimeCheckConfigArgs(
        checkerType = checkerType,
        contentMatchers = contentMatchers,
        displayName = displayName,
        httpCheck = httpCheck,
        monitoredResource = monitoredResource,
        period = period,
        project = project,
        resourceGroup = resourceGroup,
        selectedRegions = selectedRegions,
        syntheticMonitor = syntheticMonitor,
        tcpCheck = tcpCheck,
        timeout = timeout,
        userLabels = userLabels,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy