grafana.SyntheticMonitoringCheck

Explore with Pulumi AI

Synthetic Monitoring checks are tests that run on selected probes at defined intervals and report metrics and logs back to your Grafana Cloud account. The target for checks can be a domain name, a server, or a website, depending on what information you would like to gather about your endpoint. You can define multiple checks for a single endpoint to check different capabilities.

Example Usage

DNS Basic

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Grafana = Lbrlabs.PulumiPackage.Grafana;
using Grafana = Pulumi.Grafana;

return await Deployment.RunAsync(() => 
{
    var main = Grafana.GetSyntheticMonitoringProbes.Invoke();

    var dns = new Grafana.SyntheticMonitoringCheck("dns", new()
    {
        Job = "DNS Defaults",
        Target = "grafana.com",
        Enabled = false,
        Probes = new[]
        {
            main.Apply(getSyntheticMonitoringProbesResult => getSyntheticMonitoringProbesResult.Probes?.Atlanta),
        },
        Labels = 
        {
            { "foo", "bar" },
        },
        Settings = new Grafana.Inputs.SyntheticMonitoringCheckSettingsArgs
        {
            Dns = null,
        },
    });

});
package main

import (
	"github.com/lbrlabs/pulumi-grafana/sdk/go/grafana"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		main, err := grafana.GetSyntheticMonitoringProbes(ctx, nil, nil)
		if err != nil {
			return err
		}
		_, err = grafana.NewSyntheticMonitoringCheck(ctx, "dns", &grafana.SyntheticMonitoringCheckArgs{
			Job:     pulumi.String("DNS Defaults"),
			Target:  pulumi.String("grafana.com"),
			Enabled: pulumi.Bool(false),
			Probes: pulumi.IntArray{
				*pulumi.Int(main.Probes.Atlanta),
			},
			Labels: pulumi.StringMap{
				"foo": pulumi.String("bar"),
			},
			Settings: &grafana.SyntheticMonitoringCheckSettingsArgs{
				Dns: nil,
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.grafana.GrafanaFunctions;
import com.pulumi.grafana.inputs.GetSyntheticMonitoringProbesArgs;
import com.pulumi.grafana.SyntheticMonitoringCheck;
import com.pulumi.grafana.SyntheticMonitoringCheckArgs;
import com.pulumi.grafana.inputs.SyntheticMonitoringCheckSettingsArgs;
import com.pulumi.grafana.inputs.SyntheticMonitoringCheckSettingsDnsArgs;
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) {
        final var main = GrafanaFunctions.getSyntheticMonitoringProbes();

        var dns = new SyntheticMonitoringCheck("dns", SyntheticMonitoringCheckArgs.builder()        
            .job("DNS Defaults")
            .target("grafana.com")
            .enabled(false)
            .probes(main.applyValue(getSyntheticMonitoringProbesResult -> getSyntheticMonitoringProbesResult.probes().Atlanta()))
            .labels(Map.of("foo", "bar"))
            .settings(SyntheticMonitoringCheckSettingsArgs.builder()
                .dns()
                .build())
            .build());

    }
}
import pulumi
import lbrlabs_pulumi_grafana as grafana
import pulumi_grafana as grafana

main = grafana.get_synthetic_monitoring_probes()
dns = grafana.SyntheticMonitoringCheck("dns",
    job="DNS Defaults",
    target="grafana.com",
    enabled=False,
    probes=[main.probes["Atlanta"]],
    labels={
        "foo": "bar",
    },
    settings=grafana.SyntheticMonitoringCheckSettingsArgs(
        dns=grafana.SyntheticMonitoringCheckSettingsDnsArgs(),
    ))
import * as pulumi from "@pulumi/pulumi";
import * as grafana from "@lbrlabs/pulumi-grafana";
import * as grafana from "@pulumi/grafana";

const main = grafana.getSyntheticMonitoringProbes({});
const dns = new grafana.SyntheticMonitoringCheck("dns", {
    job: "DNS Defaults",
    target: "grafana.com",
    enabled: false,
    probes: [main.then(main => main.probes?.Atlanta)],
    labels: {
        foo: "bar",
    },
    settings: {
        dns: {},
    },
});
resources:
  dns:
    type: grafana:SyntheticMonitoringCheck
    properties:
      job: DNS Defaults
      target: grafana.com
      enabled: false
      probes:
        - ${main.probes.Atlanta}
      labels:
        foo: bar
      settings:
        dns: {}
variables:
  main:
    fn::invoke:
      Function: grafana:getSyntheticMonitoringProbes
      Arguments: {}

DNS Complex

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Grafana = Lbrlabs.PulumiPackage.Grafana;
using Grafana = Pulumi.Grafana;

return await Deployment.RunAsync(() => 
{
    var main = Grafana.GetSyntheticMonitoringProbes.Invoke();

    var dns = new Grafana.SyntheticMonitoringCheck("dns", new()
    {
        Job = "DNS Updated",
        Target = "grafana.net",
        Enabled = false,
        Probes = new[]
        {
            main.Apply(getSyntheticMonitoringProbesResult => getSyntheticMonitoringProbesResult.Probes?.Frankfurt),
            main.Apply(getSyntheticMonitoringProbesResult => getSyntheticMonitoringProbesResult.Probes?.London),
        },
        Labels = 
        {
            { "foo", "baz" },
        },
        Settings = new Grafana.Inputs.SyntheticMonitoringCheckSettingsArgs
        {
            Dns = new Grafana.Inputs.SyntheticMonitoringCheckSettingsDnsArgs
            {
                IpVersion = "Any",
                Server = "8.8.4.4",
                Port = 8600,
                RecordType = "CNAME",
                Protocol = "TCP",
                ValidRCodes = new[]
                {
                    "NOERROR",
                    "NOTAUTH",
                },
                ValidateAnswerRrs = new Grafana.Inputs.SyntheticMonitoringCheckSettingsDnsValidateAnswerRrsArgs
                {
                    FailIfMatchesRegexps = new[]
                    {
                        ".+-bad-stuff*",
                    },
                    FailIfNotMatchesRegexps = new[]
                    {
                        ".+-good-stuff*",
                    },
                },
                ValidateAuthorityRrs = new Grafana.Inputs.SyntheticMonitoringCheckSettingsDnsValidateAuthorityRrsArgs
                {
                    FailIfMatchesRegexps = new[]
                    {
                        ".+-bad-stuff*",
                    },
                    FailIfNotMatchesRegexps = new[]
                    {
                        ".+-good-stuff*",
                    },
                },
                ValidateAdditionalRrs = new[]
                {
                    new Grafana.Inputs.SyntheticMonitoringCheckSettingsDnsValidateAdditionalRrArgs
                    {
                        FailIfMatchesRegexps = new[]
                        {
                            ".+-bad-stuff*",
                        },
                        FailIfNotMatchesRegexps = new[]
                        {
                            ".+-good-stuff*",
                        },
                    },
                },
            },
        },
    });

});
package main

import (
	"github.com/lbrlabs/pulumi-grafana/sdk/go/grafana"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		main, err := grafana.GetSyntheticMonitoringProbes(ctx, nil, nil)
		if err != nil {
			return err
		}
		_, err = grafana.NewSyntheticMonitoringCheck(ctx, "dns", &grafana.SyntheticMonitoringCheckArgs{
			Job:     pulumi.String("DNS Updated"),
			Target:  pulumi.String("grafana.net"),
			Enabled: pulumi.Bool(false),
			Probes: pulumi.IntArray{
				*pulumi.Int(main.Probes.Frankfurt),
				*pulumi.Int(main.Probes.London),
			},
			Labels: pulumi.StringMap{
				"foo": pulumi.String("baz"),
			},
			Settings: &grafana.SyntheticMonitoringCheckSettingsArgs{
				Dns: &grafana.SyntheticMonitoringCheckSettingsDnsArgs{
					IpVersion:  pulumi.String("Any"),
					Server:     pulumi.String("8.8.4.4"),
					Port:       pulumi.Int(8600),
					RecordType: pulumi.String("CNAME"),
					Protocol:   pulumi.String("TCP"),
					ValidRCodes: pulumi.StringArray{
						pulumi.String("NOERROR"),
						pulumi.String("NOTAUTH"),
					},
					ValidateAnswerRrs: &grafana.SyntheticMonitoringCheckSettingsDnsValidateAnswerRrsArgs{
						FailIfMatchesRegexps: pulumi.StringArray{
							pulumi.String(".+-bad-stuff*"),
						},
						FailIfNotMatchesRegexps: pulumi.StringArray{
							pulumi.String(".+-good-stuff*"),
						},
					},
					ValidateAuthorityRrs: &grafana.SyntheticMonitoringCheckSettingsDnsValidateAuthorityRrsArgs{
						FailIfMatchesRegexps: pulumi.StringArray{
							pulumi.String(".+-bad-stuff*"),
						},
						FailIfNotMatchesRegexps: pulumi.StringArray{
							pulumi.String(".+-good-stuff*"),
						},
					},
					ValidateAdditionalRrs: grafana.SyntheticMonitoringCheckSettingsDnsValidateAdditionalRrArray{
						&grafana.SyntheticMonitoringCheckSettingsDnsValidateAdditionalRrArgs{
							FailIfMatchesRegexps: pulumi.StringArray{
								pulumi.String(".+-bad-stuff*"),
							},
							FailIfNotMatchesRegexps: pulumi.StringArray{
								pulumi.String(".+-good-stuff*"),
							},
						},
					},
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.grafana.GrafanaFunctions;
import com.pulumi.grafana.inputs.GetSyntheticMonitoringProbesArgs;
import com.pulumi.grafana.SyntheticMonitoringCheck;
import com.pulumi.grafana.SyntheticMonitoringCheckArgs;
import com.pulumi.grafana.inputs.SyntheticMonitoringCheckSettingsArgs;
import com.pulumi.grafana.inputs.SyntheticMonitoringCheckSettingsDnsArgs;
import com.pulumi.grafana.inputs.SyntheticMonitoringCheckSettingsDnsValidateAnswerRrsArgs;
import com.pulumi.grafana.inputs.SyntheticMonitoringCheckSettingsDnsValidateAuthorityRrsArgs;
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) {
        final var main = GrafanaFunctions.getSyntheticMonitoringProbes();

        var dns = new SyntheticMonitoringCheck("dns", SyntheticMonitoringCheckArgs.builder()        
            .job("DNS Updated")
            .target("grafana.net")
            .enabled(false)
            .probes(            
                main.applyValue(getSyntheticMonitoringProbesResult -> getSyntheticMonitoringProbesResult.probes().Frankfurt()),
                main.applyValue(getSyntheticMonitoringProbesResult -> getSyntheticMonitoringProbesResult.probes().London()))
            .labels(Map.of("foo", "baz"))
            .settings(SyntheticMonitoringCheckSettingsArgs.builder()
                .dns(SyntheticMonitoringCheckSettingsDnsArgs.builder()
                    .ipVersion("Any")
                    .server("8.8.4.4")
                    .port(8600)
                    .recordType("CNAME")
                    .protocol("TCP")
                    .validRCodes(                    
                        "NOERROR",
                        "NOTAUTH")
                    .validateAnswerRrs(SyntheticMonitoringCheckSettingsDnsValidateAnswerRrsArgs.builder()
                        .failIfMatchesRegexps(".+-bad-stuff*")
                        .failIfNotMatchesRegexps(".+-good-stuff*")
                        .build())
                    .validateAuthorityRrs(SyntheticMonitoringCheckSettingsDnsValidateAuthorityRrsArgs.builder()
                        .failIfMatchesRegexps(".+-bad-stuff*")
                        .failIfNotMatchesRegexps(".+-good-stuff*")
                        .build())
                    .validateAdditionalRrs(SyntheticMonitoringCheckSettingsDnsValidateAdditionalRrArgs.builder()
                        .failIfMatchesRegexps(".+-bad-stuff*")
                        .failIfNotMatchesRegexps(".+-good-stuff*")
                        .build())
                    .build())
                .build())
            .build());

    }
}
import pulumi
import lbrlabs_pulumi_grafana as grafana
import pulumi_grafana as grafana

main = grafana.get_synthetic_monitoring_probes()
dns = grafana.SyntheticMonitoringCheck("dns",
    job="DNS Updated",
    target="grafana.net",
    enabled=False,
    probes=[
        main.probes["Frankfurt"],
        main.probes["London"],
    ],
    labels={
        "foo": "baz",
    },
    settings=grafana.SyntheticMonitoringCheckSettingsArgs(
        dns=grafana.SyntheticMonitoringCheckSettingsDnsArgs(
            ip_version="Any",
            server="8.8.4.4",
            port=8600,
            record_type="CNAME",
            protocol="TCP",
            valid_r_codes=[
                "NOERROR",
                "NOTAUTH",
            ],
            validate_answer_rrs=grafana.SyntheticMonitoringCheckSettingsDnsValidateAnswerRrsArgs(
                fail_if_matches_regexps=[".+-bad-stuff*"],
                fail_if_not_matches_regexps=[".+-good-stuff*"],
            ),
            validate_authority_rrs=grafana.SyntheticMonitoringCheckSettingsDnsValidateAuthorityRrsArgs(
                fail_if_matches_regexps=[".+-bad-stuff*"],
                fail_if_not_matches_regexps=[".+-good-stuff*"],
            ),
            validate_additional_rrs=[grafana.SyntheticMonitoringCheckSettingsDnsValidateAdditionalRrArgs(
                fail_if_matches_regexps=[".+-bad-stuff*"],
                fail_if_not_matches_regexps=[".+-good-stuff*"],
            )],
        ),
    ))
import * as pulumi from "@pulumi/pulumi";
import * as grafana from "@lbrlabs/pulumi-grafana";
import * as grafana from "@pulumi/grafana";

const main = grafana.getSyntheticMonitoringProbes({});
const dns = new grafana.SyntheticMonitoringCheck("dns", {
    job: "DNS Updated",
    target: "grafana.net",
    enabled: false,
    probes: [
        main.then(main => main.probes?.Frankfurt),
        main.then(main => main.probes?.London),
    ],
    labels: {
        foo: "baz",
    },
    settings: {
        dns: {
            ipVersion: "Any",
            server: "8.8.4.4",
            port: 8600,
            recordType: "CNAME",
            protocol: "TCP",
            validRCodes: [
                "NOERROR",
                "NOTAUTH",
            ],
            validateAnswerRrs: {
                failIfMatchesRegexps: [".+-bad-stuff*"],
                failIfNotMatchesRegexps: [".+-good-stuff*"],
            },
            validateAuthorityRrs: {
                failIfMatchesRegexps: [".+-bad-stuff*"],
                failIfNotMatchesRegexps: [".+-good-stuff*"],
            },
            validateAdditionalRrs: [{
                failIfMatchesRegexps: [".+-bad-stuff*"],
                failIfNotMatchesRegexps: [".+-good-stuff*"],
            }],
        },
    },
});
resources:
  dns:
    type: grafana:SyntheticMonitoringCheck
    properties:
      job: DNS Updated
      target: grafana.net
      enabled: false
      probes:
        - ${main.probes.Frankfurt}
        - ${main.probes.London}
      labels:
        foo: baz
      settings:
        dns:
          ipVersion: Any
          server: 8.8.4.4
          port: 8600
          recordType: CNAME
          protocol: TCP
          validRCodes:
            - NOERROR
            - NOTAUTH
          validateAnswerRrs:
            failIfMatchesRegexps:
              - .+-bad-stuff*
            failIfNotMatchesRegexps:
              - .+-good-stuff*
          validateAuthorityRrs:
            failIfMatchesRegexps:
              - .+-bad-stuff*
            failIfNotMatchesRegexps:
              - .+-good-stuff*
          validateAdditionalRrs:
            - failIfMatchesRegexps:
                - .+-bad-stuff*
              failIfNotMatchesRegexps:
                - .+-good-stuff*
variables:
  main:
    fn::invoke:
      Function: grafana:getSyntheticMonitoringProbes
      Arguments: {}

HTTP Basic

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Grafana = Lbrlabs.PulumiPackage.Grafana;
using Grafana = Pulumi.Grafana;

return await Deployment.RunAsync(() => 
{
    var main = Grafana.GetSyntheticMonitoringProbes.Invoke();

    var http = new Grafana.SyntheticMonitoringCheck("http", new()
    {
        Job = "HTTP Defaults",
        Target = "https://grafana.com",
        Enabled = false,
        Probes = new[]
        {
            main.Apply(getSyntheticMonitoringProbesResult => getSyntheticMonitoringProbesResult.Probes?.Atlanta),
        },
        Labels = 
        {
            { "foo", "bar" },
        },
        Settings = new Grafana.Inputs.SyntheticMonitoringCheckSettingsArgs
        {
            Http = null,
        },
    });

});
package main

import (
	"github.com/lbrlabs/pulumi-grafana/sdk/go/grafana"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		main, err := grafana.GetSyntheticMonitoringProbes(ctx, nil, nil)
		if err != nil {
			return err
		}
		_, err = grafana.NewSyntheticMonitoringCheck(ctx, "http", &grafana.SyntheticMonitoringCheckArgs{
			Job:     pulumi.String("HTTP Defaults"),
			Target:  pulumi.String("https://grafana.com"),
			Enabled: pulumi.Bool(false),
			Probes: pulumi.IntArray{
				*pulumi.Int(main.Probes.Atlanta),
			},
			Labels: pulumi.StringMap{
				"foo": pulumi.String("bar"),
			},
			Settings: &grafana.SyntheticMonitoringCheckSettingsArgs{
				Http: nil,
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.grafana.GrafanaFunctions;
import com.pulumi.grafana.inputs.GetSyntheticMonitoringProbesArgs;
import com.pulumi.grafana.SyntheticMonitoringCheck;
import com.pulumi.grafana.SyntheticMonitoringCheckArgs;
import com.pulumi.grafana.inputs.SyntheticMonitoringCheckSettingsArgs;
import com.pulumi.grafana.inputs.SyntheticMonitoringCheckSettingsHttpArgs;
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) {
        final var main = GrafanaFunctions.getSyntheticMonitoringProbes();

        var http = new SyntheticMonitoringCheck("http", SyntheticMonitoringCheckArgs.builder()        
            .job("HTTP Defaults")
            .target("https://grafana.com")
            .enabled(false)
            .probes(main.applyValue(getSyntheticMonitoringProbesResult -> getSyntheticMonitoringProbesResult.probes().Atlanta()))
            .labels(Map.of("foo", "bar"))
            .settings(SyntheticMonitoringCheckSettingsArgs.builder()
                .http()
                .build())
            .build());

    }
}
import pulumi
import lbrlabs_pulumi_grafana as grafana
import pulumi_grafana as grafana

main = grafana.get_synthetic_monitoring_probes()
http = grafana.SyntheticMonitoringCheck("http",
    job="HTTP Defaults",
    target="https://grafana.com",
    enabled=False,
    probes=[main.probes["Atlanta"]],
    labels={
        "foo": "bar",
    },
    settings=grafana.SyntheticMonitoringCheckSettingsArgs(
        http=grafana.SyntheticMonitoringCheckSettingsHttpArgs(),
    ))
import * as pulumi from "@pulumi/pulumi";
import * as grafana from "@lbrlabs/pulumi-grafana";
import * as grafana from "@pulumi/grafana";

const main = grafana.getSyntheticMonitoringProbes({});
const http = new grafana.SyntheticMonitoringCheck("http", {
    job: "HTTP Defaults",
    target: "https://grafana.com",
    enabled: false,
    probes: [main.then(main => main.probes?.Atlanta)],
    labels: {
        foo: "bar",
    },
    settings: {
        http: {},
    },
});
resources:
  http:
    type: grafana:SyntheticMonitoringCheck
    properties:
      job: HTTP Defaults
      target: https://grafana.com
      enabled: false
      probes:
        - ${main.probes.Atlanta}
      labels:
        foo: bar
      settings:
        http: {}
variables:
  main:
    fn::invoke:
      Function: grafana:getSyntheticMonitoringProbes
      Arguments: {}

HTTP Complex

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Grafana = Lbrlabs.PulumiPackage.Grafana;
using Grafana = Pulumi.Grafana;

return await Deployment.RunAsync(() => 
{
    var main = Grafana.GetSyntheticMonitoringProbes.Invoke();

    var http = new Grafana.SyntheticMonitoringCheck("http", new()
    {
        Job = "HTTP Defaults",
        Target = "https://grafana.org",
        Enabled = false,
        Probes = new[]
        {
            main.Apply(getSyntheticMonitoringProbesResult => getSyntheticMonitoringProbesResult.Probes?.Bangalore),
            main.Apply(getSyntheticMonitoringProbesResult => getSyntheticMonitoringProbesResult.Probes?.Mumbai),
        },
        Labels = 
        {
            { "foo", "bar" },
        },
        Settings = new Grafana.Inputs.SyntheticMonitoringCheckSettingsArgs
        {
            Http = new Grafana.Inputs.SyntheticMonitoringCheckSettingsHttpArgs
            {
                IpVersion = "V6",
                Method = "TRACE",
                Body = "and spirit",
                NoFollowRedirects = true,
                BearerToken = "asdfjkl;",
                ProxyUrl = "https://almost-there",
                FailIfSsl = true,
                FailIfNotSsl = true,
                CacheBustingQueryParamName = "pineapple",
                TlsConfig = new Grafana.Inputs.SyntheticMonitoringCheckSettingsHttpTlsConfigArgs
                {
                    ServerName = "grafana.org",
                    ClientCert = @"-----BEGIN CERTIFICATE-----
MIIEljCCAn4CCQCKJPUQQxeO0zANBgkqhkiG9w0BAQsFADANMQswCQYDVQQGEwJT
RTAeFw0yMTA1MjkxOTIyNTdaFw0yNDAzMTgxOTIyNTdaMA0xCzAJBgNVBAYTAlNF
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnmbazDNUT0rSI4BpGZK+
0AJ+9FDkIYWJUtRLJoxw8CF+AobMFploYA2L2Myt80cTA1w8FrewjC8qlqdnrPWr
h1ely2zsUljgi1/niH0ndjFzliL7UkinXQiAsTtYOrOQmzyd/o5PNdu7dz0m7stD
BN/Sz5TlXZnA1/eJbqV/kqMau6b1MaBx8SbRfUG9+cSmUobFJwuktDrPuwJhcEkl
iDmhEqu1GuZzmKvzPacLTVia1vSlmCTCu89NiHI8iGiiLtqNrapup7f8j5m3a3SL
a+vXhplFj2piNl7Nc0dfuVgtEliTI+qUL2/+4A7gzRWZpHy21/LxMMXmBhdJW9En
FWkev97VZLgb5TR3+qpSWmXcodjPy4dibvwsOMpdd+Q4AYulwvlDw5idRPVgGvk7
qq03+w9ppZ5Fugws9k2CD9F/75JX2mCbRpkuPe8XXZ7bqrMaQgQMLOrs68HuiiCk
FTklglq4DMKxnf/Y/T/MgIa9Q1o28YSevh6A7FnfPGARj2H2T4rToi+bC1Vf7qNB
Z18bDpz99tRUTbyiRUSBMWLCGhU6c4HAqUrfrkpperOKFBQ3i38a79838oFdXHBW
6rx1t5cC3XwtEoUyeBKAygez8G1LDXbN3607MxVhAjhHKtPkYvuBfysSNU6JrR0z
UV1IURJANt2UMuKgSEkG/IMCAwEAATANBgkqhkiG9w0BAQsFAAOCAgEAcipMhp/w
yzfPy61faVAw9SPaMNRlnW9FCDC3N9CGOjo2knjXpObPzyzsJiUURTjrA9eFMpRA
e2Rgn2j+nvm2XdLAlC4Kh8jqv/wCL0X6BTQMdN5aOhXdSiXtpXOMvXYY/dQ4ebRZ
XeRCVWQD79JbV6/uyx0nCV3FVcU7L1P4UjxroefVr0soLPMirgxHmOxLnkoVgdcB
tqufP5kJx9CIeJXPx3QQsk1XfEtxtUvuw4ZaZkQnNUqvGl7V+AZpur5Eqfv3zBi8
QxxL7qGkARNssNWH2Ju+tqpM/UZRnjlFrDR4SXUgT0coTduBalUY6qHkciHmRpiP
tf3SgpDeiCSOV2iVFGdaR1mz3muWoAYWFstcWN3a3HjjVugIi23yLN8Gv8CNeoH4
prulinFCLrFgAh8SLAF8mOAZanT06LH8jOIFYrdUxH+ZeRBR0rLoFjUF+JB7UKD9
5TA+B4EBzQ1tMbGFU1DX79MjAejq0IV0Nzq+GMfBvLHxEf4+Oz8nqhDXQcJ6TdtY
l3Lyw5zBvOL80SBK+Mr0UP7d9U3VXgbGHCYVJU6Ot1TwiGwahtWALRALA3TWeGkq
7kyD1H+nm+9lfKhuyBRQnRGBVyze2lAp7oxwshJuhBwEXosXFxq1Cy6QhPN77r6N
vuhxvtppolNnyOgGxwG4zquqq2V5/+vKjKY=
-----END CERTIFICATE-----
",
                },
                Headers = new[]
                {
                    "Content-Type: multipart/form-data; boundary=something",
                },
                BasicAuth = new Grafana.Inputs.SyntheticMonitoringCheckSettingsHttpBasicAuthArgs
                {
                    Username = "open",
                    Password = "sesame",
                },
                ValidStatusCodes = new[]
                {
                    200,
                    201,
                },
                ValidHttpVersions = new[]
                {
                    "HTTP/1.0",
                    "HTTP/1.1",
                    "HTTP/2",
                },
                FailIfBodyMatchesRegexps = new[]
                {
                    "*bad stuff*",
                },
                FailIfBodyNotMatchesRegexps = new[]
                {
                    "*good stuff*",
                },
                FailIfHeaderMatchesRegexps = new[]
                {
                    new Grafana.Inputs.SyntheticMonitoringCheckSettingsHttpFailIfHeaderMatchesRegexpArgs
                    {
                        Header = "Content-Type",
                        Regexp = "application/soap*",
                        AllowMissing = true,
                    },
                },
            },
        },
    });

});
package main

import (
	"github.com/lbrlabs/pulumi-grafana/sdk/go/grafana"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		main, err := grafana.GetSyntheticMonitoringProbes(ctx, nil, nil)
		if err != nil {
			return err
		}
		_, err = grafana.NewSyntheticMonitoringCheck(ctx, "http", &grafana.SyntheticMonitoringCheckArgs{
			Job:     pulumi.String("HTTP Defaults"),
			Target:  pulumi.String("https://grafana.org"),
			Enabled: pulumi.Bool(false),
			Probes: pulumi.IntArray{
				*pulumi.Int(main.Probes.Bangalore),
				*pulumi.Int(main.Probes.Mumbai),
			},
			Labels: pulumi.StringMap{
				"foo": pulumi.String("bar"),
			},
			Settings: &grafana.SyntheticMonitoringCheckSettingsArgs{
				Http: &grafana.SyntheticMonitoringCheckSettingsHttpArgs{
					IpVersion:                  pulumi.String("V6"),
					Method:                     pulumi.String("TRACE"),
					Body:                       pulumi.String("and spirit"),
					NoFollowRedirects:          pulumi.Bool(true),
					BearerToken:                pulumi.String("asdfjkl;"),
					ProxyUrl:                   pulumi.String("https://almost-there"),
					FailIfSsl:                  pulumi.Bool(true),
					FailIfNotSsl:               pulumi.Bool(true),
					CacheBustingQueryParamName: pulumi.String("pineapple"),
					TlsConfig: &grafana.SyntheticMonitoringCheckSettingsHttpTlsConfigArgs{
						ServerName: pulumi.String("grafana.org"),
						ClientCert: pulumi.String("-----BEGIN CERTIFICATE-----\nMIIEljCCAn4CCQCKJPUQQxeO0zANBgkqhkiG9w0BAQsFADANMQswCQYDVQQGEwJT\nRTAeFw0yMTA1MjkxOTIyNTdaFw0yNDAzMTgxOTIyNTdaMA0xCzAJBgNVBAYTAlNF\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnmbazDNUT0rSI4BpGZK+\n0AJ+9FDkIYWJUtRLJoxw8CF+AobMFploYA2L2Myt80cTA1w8FrewjC8qlqdnrPWr\nh1ely2zsUljgi1/niH0ndjFzliL7UkinXQiAsTtYOrOQmzyd/o5PNdu7dz0m7stD\nBN/Sz5TlXZnA1/eJbqV/kqMau6b1MaBx8SbRfUG9+cSmUobFJwuktDrPuwJhcEkl\niDmhEqu1GuZzmKvzPacLTVia1vSlmCTCu89NiHI8iGiiLtqNrapup7f8j5m3a3SL\na+vXhplFj2piNl7Nc0dfuVgtEliTI+qUL2/+4A7gzRWZpHy21/LxMMXmBhdJW9En\nFWkev97VZLgb5TR3+qpSWmXcodjPy4dibvwsOMpdd+Q4AYulwvlDw5idRPVgGvk7\nqq03+w9ppZ5Fugws9k2CD9F/75JX2mCbRpkuPe8XXZ7bqrMaQgQMLOrs68HuiiCk\nFTklglq4DMKxnf/Y/T/MgIa9Q1o28YSevh6A7FnfPGARj2H2T4rToi+bC1Vf7qNB\nZ18bDpz99tRUTbyiRUSBMWLCGhU6c4HAqUrfrkpperOKFBQ3i38a79838oFdXHBW\n6rx1t5cC3XwtEoUyeBKAygez8G1LDXbN3607MxVhAjhHKtPkYvuBfysSNU6JrR0z\nUV1IURJANt2UMuKgSEkG/IMCAwEAATANBgkqhkiG9w0BAQsFAAOCAgEAcipMhp/w\nyzfPy61faVAw9SPaMNRlnW9FCDC3N9CGOjo2knjXpObPzyzsJiUURTjrA9eFMpRA\ne2Rgn2j+nvm2XdLAlC4Kh8jqv/wCL0X6BTQMdN5aOhXdSiXtpXOMvXYY/dQ4ebRZ\nXeRCVWQD79JbV6/uyx0nCV3FVcU7L1P4UjxroefVr0soLPMirgxHmOxLnkoVgdcB\ntqufP5kJx9CIeJXPx3QQsk1XfEtxtUvuw4ZaZkQnNUqvGl7V+AZpur5Eqfv3zBi8\nQxxL7qGkARNssNWH2Ju+tqpM/UZRnjlFrDR4SXUgT0coTduBalUY6qHkciHmRpiP\ntf3SgpDeiCSOV2iVFGdaR1mz3muWoAYWFstcWN3a3HjjVugIi23yLN8Gv8CNeoH4\nprulinFCLrFgAh8SLAF8mOAZanT06LH8jOIFYrdUxH+ZeRBR0rLoFjUF+JB7UKD9\n5TA+B4EBzQ1tMbGFU1DX79MjAejq0IV0Nzq+GMfBvLHxEf4+Oz8nqhDXQcJ6TdtY\nl3Lyw5zBvOL80SBK+Mr0UP7d9U3VXgbGHCYVJU6Ot1TwiGwahtWALRALA3TWeGkq\n7kyD1H+nm+9lfKhuyBRQnRGBVyze2lAp7oxwshJuhBwEXosXFxq1Cy6QhPN77r6N\nvuhxvtppolNnyOgGxwG4zquqq2V5/+vKjKY=\n-----END CERTIFICATE-----\n"),
					},
					Headers: pulumi.StringArray{
						pulumi.String("Content-Type: multipart/form-data; boundary=something"),
					},
					BasicAuth: &grafana.SyntheticMonitoringCheckSettingsHttpBasicAuthArgs{
						Username: pulumi.String("open"),
						Password: pulumi.String("sesame"),
					},
					ValidStatusCodes: pulumi.IntArray{
						pulumi.Int(200),
						pulumi.Int(201),
					},
					ValidHttpVersions: pulumi.StringArray{
						pulumi.String("HTTP/1.0"),
						pulumi.String("HTTP/1.1"),
						pulumi.String("HTTP/2"),
					},
					FailIfBodyMatchesRegexps: pulumi.StringArray{
						pulumi.String("*bad stuff*"),
					},
					FailIfBodyNotMatchesRegexps: pulumi.StringArray{
						pulumi.String("*good stuff*"),
					},
					FailIfHeaderMatchesRegexps: grafana.SyntheticMonitoringCheckSettingsHttpFailIfHeaderMatchesRegexpArray{
						&grafana.SyntheticMonitoringCheckSettingsHttpFailIfHeaderMatchesRegexpArgs{
							Header:       pulumi.String("Content-Type"),
							Regexp:       pulumi.String("application/soap*"),
							AllowMissing: pulumi.Bool(true),
						},
					},
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.grafana.GrafanaFunctions;
import com.pulumi.grafana.inputs.GetSyntheticMonitoringProbesArgs;
import com.pulumi.grafana.SyntheticMonitoringCheck;
import com.pulumi.grafana.SyntheticMonitoringCheckArgs;
import com.pulumi.grafana.inputs.SyntheticMonitoringCheckSettingsArgs;
import com.pulumi.grafana.inputs.SyntheticMonitoringCheckSettingsHttpArgs;
import com.pulumi.grafana.inputs.SyntheticMonitoringCheckSettingsHttpTlsConfigArgs;
import com.pulumi.grafana.inputs.SyntheticMonitoringCheckSettingsHttpBasicAuthArgs;
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) {
        final var main = GrafanaFunctions.getSyntheticMonitoringProbes();

        var http = new SyntheticMonitoringCheck("http", SyntheticMonitoringCheckArgs.builder()        
            .job("HTTP Defaults")
            .target("https://grafana.org")
            .enabled(false)
            .probes(            
                main.applyValue(getSyntheticMonitoringProbesResult -> getSyntheticMonitoringProbesResult.probes().Bangalore()),
                main.applyValue(getSyntheticMonitoringProbesResult -> getSyntheticMonitoringProbesResult.probes().Mumbai()))
            .labels(Map.of("foo", "bar"))
            .settings(SyntheticMonitoringCheckSettingsArgs.builder()
                .http(SyntheticMonitoringCheckSettingsHttpArgs.builder()
                    .ipVersion("V6")
                    .method("TRACE")
                    .body("and spirit")
                    .noFollowRedirects(true)
                    .bearerToken("asdfjkl;")
                    .proxyUrl("https://almost-there")
                    .failIfSsl(true)
                    .failIfNotSsl(true)
                    .cacheBustingQueryParamName("pineapple")
                    .tlsConfig(SyntheticMonitoringCheckSettingsHttpTlsConfigArgs.builder()
                        .serverName("grafana.org")
                        .clientCert("""
-----BEGIN CERTIFICATE-----
MIIEljCCAn4CCQCKJPUQQxeO0zANBgkqhkiG9w0BAQsFADANMQswCQYDVQQGEwJT
RTAeFw0yMTA1MjkxOTIyNTdaFw0yNDAzMTgxOTIyNTdaMA0xCzAJBgNVBAYTAlNF
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnmbazDNUT0rSI4BpGZK+
0AJ+9FDkIYWJUtRLJoxw8CF+AobMFploYA2L2Myt80cTA1w8FrewjC8qlqdnrPWr
h1ely2zsUljgi1/niH0ndjFzliL7UkinXQiAsTtYOrOQmzyd/o5PNdu7dz0m7stD
BN/Sz5TlXZnA1/eJbqV/kqMau6b1MaBx8SbRfUG9+cSmUobFJwuktDrPuwJhcEkl
iDmhEqu1GuZzmKvzPacLTVia1vSlmCTCu89NiHI8iGiiLtqNrapup7f8j5m3a3SL
a+vXhplFj2piNl7Nc0dfuVgtEliTI+qUL2/+4A7gzRWZpHy21/LxMMXmBhdJW9En
FWkev97VZLgb5TR3+qpSWmXcodjPy4dibvwsOMpdd+Q4AYulwvlDw5idRPVgGvk7
qq03+w9ppZ5Fugws9k2CD9F/75JX2mCbRpkuPe8XXZ7bqrMaQgQMLOrs68HuiiCk
FTklglq4DMKxnf/Y/T/MgIa9Q1o28YSevh6A7FnfPGARj2H2T4rToi+bC1Vf7qNB
Z18bDpz99tRUTbyiRUSBMWLCGhU6c4HAqUrfrkpperOKFBQ3i38a79838oFdXHBW
6rx1t5cC3XwtEoUyeBKAygez8G1LDXbN3607MxVhAjhHKtPkYvuBfysSNU6JrR0z
UV1IURJANt2UMuKgSEkG/IMCAwEAATANBgkqhkiG9w0BAQsFAAOCAgEAcipMhp/w
yzfPy61faVAw9SPaMNRlnW9FCDC3N9CGOjo2knjXpObPzyzsJiUURTjrA9eFMpRA
e2Rgn2j+nvm2XdLAlC4Kh8jqv/wCL0X6BTQMdN5aOhXdSiXtpXOMvXYY/dQ4ebRZ
XeRCVWQD79JbV6/uyx0nCV3FVcU7L1P4UjxroefVr0soLPMirgxHmOxLnkoVgdcB
tqufP5kJx9CIeJXPx3QQsk1XfEtxtUvuw4ZaZkQnNUqvGl7V+AZpur5Eqfv3zBi8
QxxL7qGkARNssNWH2Ju+tqpM/UZRnjlFrDR4SXUgT0coTduBalUY6qHkciHmRpiP
tf3SgpDeiCSOV2iVFGdaR1mz3muWoAYWFstcWN3a3HjjVugIi23yLN8Gv8CNeoH4
prulinFCLrFgAh8SLAF8mOAZanT06LH8jOIFYrdUxH+ZeRBR0rLoFjUF+JB7UKD9
5TA+B4EBzQ1tMbGFU1DX79MjAejq0IV0Nzq+GMfBvLHxEf4+Oz8nqhDXQcJ6TdtY
l3Lyw5zBvOL80SBK+Mr0UP7d9U3VXgbGHCYVJU6Ot1TwiGwahtWALRALA3TWeGkq
7kyD1H+nm+9lfKhuyBRQnRGBVyze2lAp7oxwshJuhBwEXosXFxq1Cy6QhPN77r6N
vuhxvtppolNnyOgGxwG4zquqq2V5/+vKjKY=
-----END CERTIFICATE-----
                        """)
                        .build())
                    .headers("Content-Type: multipart/form-data; boundary=something")
                    .basicAuth(SyntheticMonitoringCheckSettingsHttpBasicAuthArgs.builder()
                        .username("open")
                        .password("sesame")
                        .build())
                    .validStatusCodes(                    
                        200,
                        201)
                    .validHttpVersions(                    
                        "HTTP/1.0",
                        "HTTP/1.1",
                        "HTTP/2")
                    .failIfBodyMatchesRegexps("*bad stuff*")
                    .failIfBodyNotMatchesRegexps("*good stuff*")
                    .failIfHeaderMatchesRegexps(SyntheticMonitoringCheckSettingsHttpFailIfHeaderMatchesRegexpArgs.builder()
                        .header("Content-Type")
                        .regexp("application/soap*")
                        .allowMissing(true)
                        .build())
                    .build())
                .build())
            .build());

    }
}
import pulumi
import lbrlabs_pulumi_grafana as grafana
import pulumi_grafana as grafana

main = grafana.get_synthetic_monitoring_probes()
http = grafana.SyntheticMonitoringCheck("http",
    job="HTTP Defaults",
    target="https://grafana.org",
    enabled=False,
    probes=[
        main.probes["Bangalore"],
        main.probes["Mumbai"],
    ],
    labels={
        "foo": "bar",
    },
    settings=grafana.SyntheticMonitoringCheckSettingsArgs(
        http=grafana.SyntheticMonitoringCheckSettingsHttpArgs(
            ip_version="V6",
            method="TRACE",
            body="and spirit",
            no_follow_redirects=True,
            bearer_token="asdfjkl;",
            proxy_url="https://almost-there",
            fail_if_ssl=True,
            fail_if_not_ssl=True,
            cache_busting_query_param_name="pineapple",
            tls_config=grafana.SyntheticMonitoringCheckSettingsHttpTlsConfigArgs(
                server_name="grafana.org",
                client_cert="""-----BEGIN CERTIFICATE-----
MIIEljCCAn4CCQCKJPUQQxeO0zANBgkqhkiG9w0BAQsFADANMQswCQYDVQQGEwJT
RTAeFw0yMTA1MjkxOTIyNTdaFw0yNDAzMTgxOTIyNTdaMA0xCzAJBgNVBAYTAlNF
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnmbazDNUT0rSI4BpGZK+
0AJ+9FDkIYWJUtRLJoxw8CF+AobMFploYA2L2Myt80cTA1w8FrewjC8qlqdnrPWr
h1ely2zsUljgi1/niH0ndjFzliL7UkinXQiAsTtYOrOQmzyd/o5PNdu7dz0m7stD
BN/Sz5TlXZnA1/eJbqV/kqMau6b1MaBx8SbRfUG9+cSmUobFJwuktDrPuwJhcEkl
iDmhEqu1GuZzmKvzPacLTVia1vSlmCTCu89NiHI8iGiiLtqNrapup7f8j5m3a3SL
a+vXhplFj2piNl7Nc0dfuVgtEliTI+qUL2/+4A7gzRWZpHy21/LxMMXmBhdJW9En
FWkev97VZLgb5TR3+qpSWmXcodjPy4dibvwsOMpdd+Q4AYulwvlDw5idRPVgGvk7
qq03+w9ppZ5Fugws9k2CD9F/75JX2mCbRpkuPe8XXZ7bqrMaQgQMLOrs68HuiiCk
FTklglq4DMKxnf/Y/T/MgIa9Q1o28YSevh6A7FnfPGARj2H2T4rToi+bC1Vf7qNB
Z18bDpz99tRUTbyiRUSBMWLCGhU6c4HAqUrfrkpperOKFBQ3i38a79838oFdXHBW
6rx1t5cC3XwtEoUyeBKAygez8G1LDXbN3607MxVhAjhHKtPkYvuBfysSNU6JrR0z
UV1IURJANt2UMuKgSEkG/IMCAwEAATANBgkqhkiG9w0BAQsFAAOCAgEAcipMhp/w
yzfPy61faVAw9SPaMNRlnW9FCDC3N9CGOjo2knjXpObPzyzsJiUURTjrA9eFMpRA
e2Rgn2j+nvm2XdLAlC4Kh8jqv/wCL0X6BTQMdN5aOhXdSiXtpXOMvXYY/dQ4ebRZ
XeRCVWQD79JbV6/uyx0nCV3FVcU7L1P4UjxroefVr0soLPMirgxHmOxLnkoVgdcB
tqufP5kJx9CIeJXPx3QQsk1XfEtxtUvuw4ZaZkQnNUqvGl7V+AZpur5Eqfv3zBi8
QxxL7qGkARNssNWH2Ju+tqpM/UZRnjlFrDR4SXUgT0coTduBalUY6qHkciHmRpiP
tf3SgpDeiCSOV2iVFGdaR1mz3muWoAYWFstcWN3a3HjjVugIi23yLN8Gv8CNeoH4
prulinFCLrFgAh8SLAF8mOAZanT06LH8jOIFYrdUxH+ZeRBR0rLoFjUF+JB7UKD9
5TA+B4EBzQ1tMbGFU1DX79MjAejq0IV0Nzq+GMfBvLHxEf4+Oz8nqhDXQcJ6TdtY
l3Lyw5zBvOL80SBK+Mr0UP7d9U3VXgbGHCYVJU6Ot1TwiGwahtWALRALA3TWeGkq
7kyD1H+nm+9lfKhuyBRQnRGBVyze2lAp7oxwshJuhBwEXosXFxq1Cy6QhPN77r6N
vuhxvtppolNnyOgGxwG4zquqq2V5/+vKjKY=
-----END CERTIFICATE-----
""",
            ),
            headers=["Content-Type: multipart/form-data; boundary=something"],
            basic_auth=grafana.SyntheticMonitoringCheckSettingsHttpBasicAuthArgs(
                username="open",
                password="sesame",
            ),
            valid_status_codes=[
                200,
                201,
            ],
            valid_http_versions=[
                "HTTP/1.0",
                "HTTP/1.1",
                "HTTP/2",
            ],
            fail_if_body_matches_regexps=["*bad stuff*"],
            fail_if_body_not_matches_regexps=["*good stuff*"],
            fail_if_header_matches_regexps=[grafana.SyntheticMonitoringCheckSettingsHttpFailIfHeaderMatchesRegexpArgs(
                header="Content-Type",
                regexp="application/soap*",
                allow_missing=True,
            )],
        ),
    ))
import * as pulumi from "@pulumi/pulumi";
import * as grafana from "@lbrlabs/pulumi-grafana";
import * as grafana from "@pulumi/grafana";

const main = grafana.getSyntheticMonitoringProbes({});
const http = new grafana.SyntheticMonitoringCheck("http", {
    job: "HTTP Defaults",
    target: "https://grafana.org",
    enabled: false,
    probes: [
        main.then(main => main.probes?.Bangalore),
        main.then(main => main.probes?.Mumbai),
    ],
    labels: {
        foo: "bar",
    },
    settings: {
        http: {
            ipVersion: "V6",
            method: "TRACE",
            body: "and spirit",
            noFollowRedirects: true,
            bearerToken: "asdfjkl;",
            proxyUrl: "https://almost-there",
            failIfSsl: true,
            failIfNotSsl: true,
            cacheBustingQueryParamName: "pineapple",
            tlsConfig: {
                serverName: "grafana.org",
                clientCert: `-----BEGIN CERTIFICATE-----
MIIEljCCAn4CCQCKJPUQQxeO0zANBgkqhkiG9w0BAQsFADANMQswCQYDVQQGEwJT
RTAeFw0yMTA1MjkxOTIyNTdaFw0yNDAzMTgxOTIyNTdaMA0xCzAJBgNVBAYTAlNF
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnmbazDNUT0rSI4BpGZK+
0AJ+9FDkIYWJUtRLJoxw8CF+AobMFploYA2L2Myt80cTA1w8FrewjC8qlqdnrPWr
h1ely2zsUljgi1/niH0ndjFzliL7UkinXQiAsTtYOrOQmzyd/o5PNdu7dz0m7stD
BN/Sz5TlXZnA1/eJbqV/kqMau6b1MaBx8SbRfUG9+cSmUobFJwuktDrPuwJhcEkl
iDmhEqu1GuZzmKvzPacLTVia1vSlmCTCu89NiHI8iGiiLtqNrapup7f8j5m3a3SL
a+vXhplFj2piNl7Nc0dfuVgtEliTI+qUL2/+4A7gzRWZpHy21/LxMMXmBhdJW9En
FWkev97VZLgb5TR3+qpSWmXcodjPy4dibvwsOMpdd+Q4AYulwvlDw5idRPVgGvk7
qq03+w9ppZ5Fugws9k2CD9F/75JX2mCbRpkuPe8XXZ7bqrMaQgQMLOrs68HuiiCk
FTklglq4DMKxnf/Y/T/MgIa9Q1o28YSevh6A7FnfPGARj2H2T4rToi+bC1Vf7qNB
Z18bDpz99tRUTbyiRUSBMWLCGhU6c4HAqUrfrkpperOKFBQ3i38a79838oFdXHBW
6rx1t5cC3XwtEoUyeBKAygez8G1LDXbN3607MxVhAjhHKtPkYvuBfysSNU6JrR0z
UV1IURJANt2UMuKgSEkG/IMCAwEAATANBgkqhkiG9w0BAQsFAAOCAgEAcipMhp/w
yzfPy61faVAw9SPaMNRlnW9FCDC3N9CGOjo2knjXpObPzyzsJiUURTjrA9eFMpRA
e2Rgn2j+nvm2XdLAlC4Kh8jqv/wCL0X6BTQMdN5aOhXdSiXtpXOMvXYY/dQ4ebRZ
XeRCVWQD79JbV6/uyx0nCV3FVcU7L1P4UjxroefVr0soLPMirgxHmOxLnkoVgdcB
tqufP5kJx9CIeJXPx3QQsk1XfEtxtUvuw4ZaZkQnNUqvGl7V+AZpur5Eqfv3zBi8
QxxL7qGkARNssNWH2Ju+tqpM/UZRnjlFrDR4SXUgT0coTduBalUY6qHkciHmRpiP
tf3SgpDeiCSOV2iVFGdaR1mz3muWoAYWFstcWN3a3HjjVugIi23yLN8Gv8CNeoH4
prulinFCLrFgAh8SLAF8mOAZanT06LH8jOIFYrdUxH+ZeRBR0rLoFjUF+JB7UKD9
5TA+B4EBzQ1tMbGFU1DX79MjAejq0IV0Nzq+GMfBvLHxEf4+Oz8nqhDXQcJ6TdtY
l3Lyw5zBvOL80SBK+Mr0UP7d9U3VXgbGHCYVJU6Ot1TwiGwahtWALRALA3TWeGkq
7kyD1H+nm+9lfKhuyBRQnRGBVyze2lAp7oxwshJuhBwEXosXFxq1Cy6QhPN77r6N
vuhxvtppolNnyOgGxwG4zquqq2V5/+vKjKY=
-----END CERTIFICATE-----
`,
            },
            headers: ["Content-Type: multipart/form-data; boundary=something"],
            basicAuth: {
                username: "open",
                password: "sesame",
            },
            validStatusCodes: [
                200,
                201,
            ],
            validHttpVersions: [
                "HTTP/1.0",
                "HTTP/1.1",
                "HTTP/2",
            ],
            failIfBodyMatchesRegexps: ["*bad stuff*"],
            failIfBodyNotMatchesRegexps: ["*good stuff*"],
            failIfHeaderMatchesRegexps: [{
                header: "Content-Type",
                regexp: "application/soap*",
                allowMissing: true,
            }],
        },
    },
});
resources:
  http:
    type: grafana:SyntheticMonitoringCheck
    properties:
      job: HTTP Defaults
      target: https://grafana.org
      enabled: false
      probes:
        - ${main.probes.Bangalore}
        - ${main.probes.Mumbai}
      labels:
        foo: bar
      settings:
        http:
          ipVersion: V6
          method: TRACE
          body: and spirit
          noFollowRedirects: true
          bearerToken: asdfjkl;
          proxyUrl: https://almost-there
          failIfSsl: true
          failIfNotSsl: true
          cacheBustingQueryParamName: pineapple
          tlsConfig:
            serverName: grafana.org
            clientCert: |
              -----BEGIN CERTIFICATE-----
              MIIEljCCAn4CCQCKJPUQQxeO0zANBgkqhkiG9w0BAQsFADANMQswCQYDVQQGEwJT
              RTAeFw0yMTA1MjkxOTIyNTdaFw0yNDAzMTgxOTIyNTdaMA0xCzAJBgNVBAYTAlNF
              MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnmbazDNUT0rSI4BpGZK+
              0AJ+9FDkIYWJUtRLJoxw8CF+AobMFploYA2L2Myt80cTA1w8FrewjC8qlqdnrPWr
              h1ely2zsUljgi1/niH0ndjFzliL7UkinXQiAsTtYOrOQmzyd/o5PNdu7dz0m7stD
              BN/Sz5TlXZnA1/eJbqV/kqMau6b1MaBx8SbRfUG9+cSmUobFJwuktDrPuwJhcEkl
              iDmhEqu1GuZzmKvzPacLTVia1vSlmCTCu89NiHI8iGiiLtqNrapup7f8j5m3a3SL
              a+vXhplFj2piNl7Nc0dfuVgtEliTI+qUL2/+4A7gzRWZpHy21/LxMMXmBhdJW9En
              FWkev97VZLgb5TR3+qpSWmXcodjPy4dibvwsOMpdd+Q4AYulwvlDw5idRPVgGvk7
              qq03+w9ppZ5Fugws9k2CD9F/75JX2mCbRpkuPe8XXZ7bqrMaQgQMLOrs68HuiiCk
              FTklglq4DMKxnf/Y/T/MgIa9Q1o28YSevh6A7FnfPGARj2H2T4rToi+bC1Vf7qNB
              Z18bDpz99tRUTbyiRUSBMWLCGhU6c4HAqUrfrkpperOKFBQ3i38a79838oFdXHBW
              6rx1t5cC3XwtEoUyeBKAygez8G1LDXbN3607MxVhAjhHKtPkYvuBfysSNU6JrR0z
              UV1IURJANt2UMuKgSEkG/IMCAwEAATANBgkqhkiG9w0BAQsFAAOCAgEAcipMhp/w
              yzfPy61faVAw9SPaMNRlnW9FCDC3N9CGOjo2knjXpObPzyzsJiUURTjrA9eFMpRA
              e2Rgn2j+nvm2XdLAlC4Kh8jqv/wCL0X6BTQMdN5aOhXdSiXtpXOMvXYY/dQ4ebRZ
              XeRCVWQD79JbV6/uyx0nCV3FVcU7L1P4UjxroefVr0soLPMirgxHmOxLnkoVgdcB
              tqufP5kJx9CIeJXPx3QQsk1XfEtxtUvuw4ZaZkQnNUqvGl7V+AZpur5Eqfv3zBi8
              QxxL7qGkARNssNWH2Ju+tqpM/UZRnjlFrDR4SXUgT0coTduBalUY6qHkciHmRpiP
              tf3SgpDeiCSOV2iVFGdaR1mz3muWoAYWFstcWN3a3HjjVugIi23yLN8Gv8CNeoH4
              prulinFCLrFgAh8SLAF8mOAZanT06LH8jOIFYrdUxH+ZeRBR0rLoFjUF+JB7UKD9
              5TA+B4EBzQ1tMbGFU1DX79MjAejq0IV0Nzq+GMfBvLHxEf4+Oz8nqhDXQcJ6TdtY
              l3Lyw5zBvOL80SBK+Mr0UP7d9U3VXgbGHCYVJU6Ot1TwiGwahtWALRALA3TWeGkq
              7kyD1H+nm+9lfKhuyBRQnRGBVyze2lAp7oxwshJuhBwEXosXFxq1Cy6QhPN77r6N
              vuhxvtppolNnyOgGxwG4zquqq2V5/+vKjKY=
              -----END CERTIFICATE-----              
          headers:
            - 'Content-Type: multipart/form-data; boundary=something'
          basicAuth:
            username: open
            password: sesame
          validStatusCodes:
            - 200
            - 201
          validHttpVersions:
            - HTTP/1.0
            - HTTP/1.1
            - HTTP/2
          failIfBodyMatchesRegexps:
            - '*bad stuff*'
          failIfBodyNotMatchesRegexps:
            - '*good stuff*'
          failIfHeaderMatchesRegexps:
            - header: Content-Type
              regexp: application/soap*
              allowMissing: true
variables:
  main:
    fn::invoke:
      Function: grafana:getSyntheticMonitoringProbes
      Arguments: {}

Ping Basic

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Grafana = Lbrlabs.PulumiPackage.Grafana;
using Grafana = Pulumi.Grafana;

return await Deployment.RunAsync(() => 
{
    var main = Grafana.GetSyntheticMonitoringProbes.Invoke();

    var ping = new Grafana.SyntheticMonitoringCheck("ping", new()
    {
        Job = "Ping Defaults",
        Target = "grafana.com",
        Enabled = false,
        Probes = new[]
        {
            main.Apply(getSyntheticMonitoringProbesResult => getSyntheticMonitoringProbesResult.Probes?.Atlanta),
        },
        Labels = 
        {
            { "foo", "bar" },
        },
        Settings = new Grafana.Inputs.SyntheticMonitoringCheckSettingsArgs
        {
            Ping = null,
        },
    });

});
package main

import (
	"github.com/lbrlabs/pulumi-grafana/sdk/go/grafana"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		main, err := grafana.GetSyntheticMonitoringProbes(ctx, nil, nil)
		if err != nil {
			return err
		}
		_, err = grafana.NewSyntheticMonitoringCheck(ctx, "ping", &grafana.SyntheticMonitoringCheckArgs{
			Job:     pulumi.String("Ping Defaults"),
			Target:  pulumi.String("grafana.com"),
			Enabled: pulumi.Bool(false),
			Probes: pulumi.IntArray{
				*pulumi.Int(main.Probes.Atlanta),
			},
			Labels: pulumi.StringMap{
				"foo": pulumi.String("bar"),
			},
			Settings: &grafana.SyntheticMonitoringCheckSettingsArgs{
				Ping: nil,
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.grafana.GrafanaFunctions;
import com.pulumi.grafana.inputs.GetSyntheticMonitoringProbesArgs;
import com.pulumi.grafana.SyntheticMonitoringCheck;
import com.pulumi.grafana.SyntheticMonitoringCheckArgs;
import com.pulumi.grafana.inputs.SyntheticMonitoringCheckSettingsArgs;
import com.pulumi.grafana.inputs.SyntheticMonitoringCheckSettingsPingArgs;
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) {
        final var main = GrafanaFunctions.getSyntheticMonitoringProbes();

        var ping = new SyntheticMonitoringCheck("ping", SyntheticMonitoringCheckArgs.builder()        
            .job("Ping Defaults")
            .target("grafana.com")
            .enabled(false)
            .probes(main.applyValue(getSyntheticMonitoringProbesResult -> getSyntheticMonitoringProbesResult.probes().Atlanta()))
            .labels(Map.of("foo", "bar"))
            .settings(SyntheticMonitoringCheckSettingsArgs.builder()
                .ping()
                .build())
            .build());

    }
}
import pulumi
import lbrlabs_pulumi_grafana as grafana
import pulumi_grafana as grafana

main = grafana.get_synthetic_monitoring_probes()
ping = grafana.SyntheticMonitoringCheck("ping",
    job="Ping Defaults",
    target="grafana.com",
    enabled=False,
    probes=[main.probes["Atlanta"]],
    labels={
        "foo": "bar",
    },
    settings=grafana.SyntheticMonitoringCheckSettingsArgs(
        ping=grafana.SyntheticMonitoringCheckSettingsPingArgs(),
    ))
import * as pulumi from "@pulumi/pulumi";
import * as grafana from "@lbrlabs/pulumi-grafana";
import * as grafana from "@pulumi/grafana";

const main = grafana.getSyntheticMonitoringProbes({});
const ping = new grafana.SyntheticMonitoringCheck("ping", {
    job: "Ping Defaults",
    target: "grafana.com",
    enabled: false,
    probes: [main.then(main => main.probes?.Atlanta)],
    labels: {
        foo: "bar",
    },
    settings: {
        ping: {},
    },
});
resources:
  ping:
    type: grafana:SyntheticMonitoringCheck
    properties:
      job: Ping Defaults
      target: grafana.com
      enabled: false
      probes:
        - ${main.probes.Atlanta}
      labels:
        foo: bar
      settings:
        ping: {}
variables:
  main:
    fn::invoke:
      Function: grafana:getSyntheticMonitoringProbes
      Arguments: {}

Ping Complex

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Grafana = Lbrlabs.PulumiPackage.Grafana;
using Grafana = Pulumi.Grafana;

return await Deployment.RunAsync(() => 
{
    var main = Grafana.GetSyntheticMonitoringProbes.Invoke();

    var ping = new Grafana.SyntheticMonitoringCheck("ping", new()
    {
        Job = "Ping Updated",
        Target = "grafana.net",
        Enabled = false,
        Probes = new[]
        {
            main.Apply(getSyntheticMonitoringProbesResult => getSyntheticMonitoringProbesResult.Probes?.Frankfurt),
            main.Apply(getSyntheticMonitoringProbesResult => getSyntheticMonitoringProbesResult.Probes?.London),
        },
        Labels = 
        {
            { "foo", "baz" },
        },
        Settings = new Grafana.Inputs.SyntheticMonitoringCheckSettingsArgs
        {
            Ping = new Grafana.Inputs.SyntheticMonitoringCheckSettingsPingArgs
            {
                IpVersion = "Any",
                PayloadSize = 20,
                DontFragment = true,
            },
        },
    });

});
package main

import (
	"github.com/lbrlabs/pulumi-grafana/sdk/go/grafana"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		main, err := grafana.GetSyntheticMonitoringProbes(ctx, nil, nil)
		if err != nil {
			return err
		}
		_, err = grafana.NewSyntheticMonitoringCheck(ctx, "ping", &grafana.SyntheticMonitoringCheckArgs{
			Job:     pulumi.String("Ping Updated"),
			Target:  pulumi.String("grafana.net"),
			Enabled: pulumi.Bool(false),
			Probes: pulumi.IntArray{
				*pulumi.Int(main.Probes.Frankfurt),
				*pulumi.Int(main.Probes.London),
			},
			Labels: pulumi.StringMap{
				"foo": pulumi.String("baz"),
			},
			Settings: &grafana.SyntheticMonitoringCheckSettingsArgs{
				Ping: &grafana.SyntheticMonitoringCheckSettingsPingArgs{
					IpVersion:    pulumi.String("Any"),
					PayloadSize:  pulumi.Int(20),
					DontFragment: pulumi.Bool(true),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.grafana.GrafanaFunctions;
import com.pulumi.grafana.inputs.GetSyntheticMonitoringProbesArgs;
import com.pulumi.grafana.SyntheticMonitoringCheck;
import com.pulumi.grafana.SyntheticMonitoringCheckArgs;
import com.pulumi.grafana.inputs.SyntheticMonitoringCheckSettingsArgs;
import com.pulumi.grafana.inputs.SyntheticMonitoringCheckSettingsPingArgs;
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) {
        final var main = GrafanaFunctions.getSyntheticMonitoringProbes();

        var ping = new SyntheticMonitoringCheck("ping", SyntheticMonitoringCheckArgs.builder()        
            .job("Ping Updated")
            .target("grafana.net")
            .enabled(false)
            .probes(            
                main.applyValue(getSyntheticMonitoringProbesResult -> getSyntheticMonitoringProbesResult.probes().Frankfurt()),
                main.applyValue(getSyntheticMonitoringProbesResult -> getSyntheticMonitoringProbesResult.probes().London()))
            .labels(Map.of("foo", "baz"))
            .settings(SyntheticMonitoringCheckSettingsArgs.builder()
                .ping(SyntheticMonitoringCheckSettingsPingArgs.builder()
                    .ipVersion("Any")
                    .payloadSize(20)
                    .dontFragment(true)
                    .build())
                .build())
            .build());

    }
}
import pulumi
import lbrlabs_pulumi_grafana as grafana
import pulumi_grafana as grafana

main = grafana.get_synthetic_monitoring_probes()
ping = grafana.SyntheticMonitoringCheck("ping",
    job="Ping Updated",
    target="grafana.net",
    enabled=False,
    probes=[
        main.probes["Frankfurt"],
        main.probes["London"],
    ],
    labels={
        "foo": "baz",
    },
    settings=grafana.SyntheticMonitoringCheckSettingsArgs(
        ping=grafana.SyntheticMonitoringCheckSettingsPingArgs(
            ip_version="Any",
            payload_size=20,
            dont_fragment=True,
        ),
    ))
import * as pulumi from "@pulumi/pulumi";
import * as grafana from "@lbrlabs/pulumi-grafana";
import * as grafana from "@pulumi/grafana";

const main = grafana.getSyntheticMonitoringProbes({});
const ping = new grafana.SyntheticMonitoringCheck("ping", {
    job: "Ping Updated",
    target: "grafana.net",
    enabled: false,
    probes: [
        main.then(main => main.probes?.Frankfurt),
        main.then(main => main.probes?.London),
    ],
    labels: {
        foo: "baz",
    },
    settings: {
        ping: {
            ipVersion: "Any",
            payloadSize: 20,
            dontFragment: true,
        },
    },
});
resources:
  ping:
    type: grafana:SyntheticMonitoringCheck
    properties:
      job: Ping Updated
      target: grafana.net
      enabled: false
      probes:
        - ${main.probes.Frankfurt}
        - ${main.probes.London}
      labels:
        foo: baz
      settings:
        ping:
          ipVersion: Any
          payloadSize: 20
          dontFragment: true
variables:
  main:
    fn::invoke:
      Function: grafana:getSyntheticMonitoringProbes
      Arguments: {}

TCP Basic

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Grafana = Lbrlabs.PulumiPackage.Grafana;
using Grafana = Pulumi.Grafana;

return await Deployment.RunAsync(() => 
{
    var main = Grafana.GetSyntheticMonitoringProbes.Invoke();

    var tcp = new Grafana.SyntheticMonitoringCheck("tcp", new()
    {
        Job = "TCP Defaults",
        Target = "grafana.com:80",
        Enabled = false,
        Probes = new[]
        {
            main.Apply(getSyntheticMonitoringProbesResult => getSyntheticMonitoringProbesResult.Probes?.Atlanta),
        },
        Labels = 
        {
            { "foo", "bar" },
        },
        Settings = new Grafana.Inputs.SyntheticMonitoringCheckSettingsArgs
        {
            Tcp = null,
        },
    });

});
package main

import (
	"github.com/lbrlabs/pulumi-grafana/sdk/go/grafana"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		main, err := grafana.GetSyntheticMonitoringProbes(ctx, nil, nil)
		if err != nil {
			return err
		}
		_, err = grafana.NewSyntheticMonitoringCheck(ctx, "tcp", &grafana.SyntheticMonitoringCheckArgs{
			Job:     pulumi.String("TCP Defaults"),
			Target:  pulumi.String("grafana.com:80"),
			Enabled: pulumi.Bool(false),
			Probes: pulumi.IntArray{
				*pulumi.Int(main.Probes.Atlanta),
			},
			Labels: pulumi.StringMap{
				"foo": pulumi.String("bar"),
			},
			Settings: &grafana.SyntheticMonitoringCheckSettingsArgs{
				Tcp: nil,
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.grafana.GrafanaFunctions;
import com.pulumi.grafana.inputs.GetSyntheticMonitoringProbesArgs;
import com.pulumi.grafana.SyntheticMonitoringCheck;
import com.pulumi.grafana.SyntheticMonitoringCheckArgs;
import com.pulumi.grafana.inputs.SyntheticMonitoringCheckSettingsArgs;
import com.pulumi.grafana.inputs.SyntheticMonitoringCheckSettingsTcpArgs;
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) {
        final var main = GrafanaFunctions.getSyntheticMonitoringProbes();

        var tcp = new SyntheticMonitoringCheck("tcp", SyntheticMonitoringCheckArgs.builder()        
            .job("TCP Defaults")
            .target("grafana.com:80")
            .enabled(false)
            .probes(main.applyValue(getSyntheticMonitoringProbesResult -> getSyntheticMonitoringProbesResult.probes().Atlanta()))
            .labels(Map.of("foo", "bar"))
            .settings(SyntheticMonitoringCheckSettingsArgs.builder()
                .tcp()
                .build())
            .build());

    }
}
import pulumi
import lbrlabs_pulumi_grafana as grafana
import pulumi_grafana as grafana

main = grafana.get_synthetic_monitoring_probes()
tcp = grafana.SyntheticMonitoringCheck("tcp",
    job="TCP Defaults",
    target="grafana.com:80",
    enabled=False,
    probes=[main.probes["Atlanta"]],
    labels={
        "foo": "bar",
    },
    settings=grafana.SyntheticMonitoringCheckSettingsArgs(
        tcp=grafana.SyntheticMonitoringCheckSettingsTcpArgs(),
    ))
import * as pulumi from "@pulumi/pulumi";
import * as grafana from "@lbrlabs/pulumi-grafana";
import * as grafana from "@pulumi/grafana";

const main = grafana.getSyntheticMonitoringProbes({});
const tcp = new grafana.SyntheticMonitoringCheck("tcp", {
    job: "TCP Defaults",
    target: "grafana.com:80",
    enabled: false,
    probes: [main.then(main => main.probes?.Atlanta)],
    labels: {
        foo: "bar",
    },
    settings: {
        tcp: {},
    },
});
resources:
  tcp:
    type: grafana:SyntheticMonitoringCheck
    properties:
      job: TCP Defaults
      target: grafana.com:80
      enabled: false
      probes:
        - ${main.probes.Atlanta}
      labels:
        foo: bar
      settings:
        tcp: {}
variables:
  main:
    fn::invoke:
      Function: grafana:getSyntheticMonitoringProbes
      Arguments: {}

TCP Complex

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Grafana = Lbrlabs.PulumiPackage.Grafana;
using Grafana = Pulumi.Grafana;

return await Deployment.RunAsync(() => 
{
    var main = Grafana.GetSyntheticMonitoringProbes.Invoke();

    var tcp = new Grafana.SyntheticMonitoringCheck("tcp", new()
    {
        Job = "TCP Defaults",
        Target = "grafana.com:443",
        Enabled = false,
        Probes = new[]
        {
            main.Apply(getSyntheticMonitoringProbesResult => getSyntheticMonitoringProbesResult.Probes?.Frankfurt),
            main.Apply(getSyntheticMonitoringProbesResult => getSyntheticMonitoringProbesResult.Probes?.London),
        },
        Labels = 
        {
            { "foo", "baz" },
        },
        Settings = new Grafana.Inputs.SyntheticMonitoringCheckSettingsArgs
        {
            Tcp = new Grafana.Inputs.SyntheticMonitoringCheckSettingsTcpArgs
            {
                IpVersion = "V6",
                Tls = true,
                QueryResponses = new[]
                {
                    new Grafana.Inputs.SyntheticMonitoringCheckSettingsTcpQueryResponseArgs
                    {
                        Send = "howdy",
                        Expect = "hi",
                    },
                    new Grafana.Inputs.SyntheticMonitoringCheckSettingsTcpQueryResponseArgs
                    {
                        Send = "like this",
                        Expect = "like that",
                        StartTls = true,
                    },
                },
                TlsConfig = new Grafana.Inputs.SyntheticMonitoringCheckSettingsTcpTlsConfigArgs
                {
                    ServerName = "grafana.com",
                    CaCert = @"-----BEGIN CERTIFICATE-----
MIIEljCCAn4CCQCKJPUQQxeO0zANBgkqhkiG9w0BAQsFADANMQswCQYDVQQGEwJT
RTAeFw0yMTA1MjkxOTIyNTdaFw0yNDAzMTgxOTIyNTdaMA0xCzAJBgNVBAYTAlNF
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnmbazDNUT0rSI4BpGZK+
0AJ+9FDkIYWJUtRLJoxw8CF+AobMFploYA2L2Myt80cTA1w8FrewjC8qlqdnrPWr
h1ely2zsUljgi1/niH0ndjFzliL7UkinXQiAsTtYOrOQmzyd/o5PNdu7dz0m7stD
BN/Sz5TlXZnA1/eJbqV/kqMau6b1MaBx8SbRfUG9+cSmUobFJwuktDrPuwJhcEkl
iDmhEqu1GuZzmKvzPacLTVia1vSlmCTCu89NiHI8iGiiLtqNrapup7f8j5m3a3SL
a+vXhplFj2piNl7Nc0dfuVgtEliTI+qUL2/+4A7gzRWZpHy21/LxMMXmBhdJW9En
FWkev97VZLgb5TR3+qpSWmXcodjPy4dibvwsOMpdd+Q4AYulwvlDw5idRPVgGvk7
qq03+w9ppZ5Fugws9k2CD9F/75JX2mCbRpkuPe8XXZ7bqrMaQgQMLOrs68HuiiCk
FTklglq4DMKxnf/Y/T/MgIa9Q1o28YSevh6A7FnfPGARj2H2T4rToi+bC1Vf7qNB
Z18bDpz99tRUTbyiRUSBMWLCGhU6c4HAqUrfrkpperOKFBQ3i38a79838oFdXHBW
6rx1t5cC3XwtEoUyeBKAygez8G1LDXbN3607MxVhAjhHKtPkYvuBfysSNU6JrR0z
UV1IURJANt2UMuKgSEkG/IMCAwEAATANBgkqhkiG9w0BAQsFAAOCAgEAcipMhp/w
yzfPy61faVAw9SPaMNRlnW9FCDC3N9CGOjo2knjXpObPzyzsJiUURTjrA9eFMpRA
e2Rgn2j+nvm2XdLAlC4Kh8jqv/wCL0X6BTQMdN5aOhXdSiXtpXOMvXYY/dQ4ebRZ
XeRCVWQD79JbV6/uyx0nCV3FVcU7L1P4UjxroefVr0soLPMirgxHmOxLnkoVgdcB
tqufP5kJx9CIeJXPx3QQsk1XfEtxtUvuw4ZaZkQnNUqvGl7V+AZpur5Eqfv3zBi8
QxxL7qGkARNssNWH2Ju+tqpM/UZRnjlFrDR4SXUgT0coTduBalUY6qHkciHmRpiP
tf3SgpDeiCSOV2iVFGdaR1mz3muWoAYWFstcWN3a3HjjVugIi23yLN8Gv8CNeoH4
prulinFCLrFgAh8SLAF8mOAZanT06LH8jOIFYrdUxH+ZeRBR0rLoFjUF+JB7UKD9
5TA+B4EBzQ1tMbGFU1DX79MjAejq0IV0Nzq+GMfBvLHxEf4+Oz8nqhDXQcJ6TdtY
l3Lyw5zBvOL80SBK+Mr0UP7d9U3VXgbGHCYVJU6Ot1TwiGwahtWALRALA3TWeGkq
7kyD1H+nm+9lfKhuyBRQnRGBVyze2lAp7oxwshJuhBwEXosXFxq1Cy6QhPN77r6N
vuhxvtppolNnyOgGxwG4zquqq2V5/+vKjKY=
-----END CERTIFICATE-----
",
                },
            },
        },
    });

});
package main

import (
	"github.com/lbrlabs/pulumi-grafana/sdk/go/grafana"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		main, err := grafana.GetSyntheticMonitoringProbes(ctx, nil, nil)
		if err != nil {
			return err
		}
		_, err = grafana.NewSyntheticMonitoringCheck(ctx, "tcp", &grafana.SyntheticMonitoringCheckArgs{
			Job:     pulumi.String("TCP Defaults"),
			Target:  pulumi.String("grafana.com:443"),
			Enabled: pulumi.Bool(false),
			Probes: pulumi.IntArray{
				*pulumi.Int(main.Probes.Frankfurt),
				*pulumi.Int(main.Probes.London),
			},
			Labels: pulumi.StringMap{
				"foo": pulumi.String("baz"),
			},
			Settings: &grafana.SyntheticMonitoringCheckSettingsArgs{
				Tcp: &grafana.SyntheticMonitoringCheckSettingsTcpArgs{
					IpVersion: pulumi.String("V6"),
					Tls:       pulumi.Bool(true),
					QueryResponses: grafana.SyntheticMonitoringCheckSettingsTcpQueryResponseArray{
						&grafana.SyntheticMonitoringCheckSettingsTcpQueryResponseArgs{
							Send:   pulumi.String("howdy"),
							Expect: pulumi.String("hi"),
						},
						&grafana.SyntheticMonitoringCheckSettingsTcpQueryResponseArgs{
							Send:     pulumi.String("like this"),
							Expect:   pulumi.String("like that"),
							StartTls: pulumi.Bool(true),
						},
					},
					TlsConfig: &grafana.SyntheticMonitoringCheckSettingsTcpTlsConfigArgs{
						ServerName: pulumi.String("grafana.com"),
						CaCert:     pulumi.String("-----BEGIN CERTIFICATE-----\nMIIEljCCAn4CCQCKJPUQQxeO0zANBgkqhkiG9w0BAQsFADANMQswCQYDVQQGEwJT\nRTAeFw0yMTA1MjkxOTIyNTdaFw0yNDAzMTgxOTIyNTdaMA0xCzAJBgNVBAYTAlNF\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnmbazDNUT0rSI4BpGZK+\n0AJ+9FDkIYWJUtRLJoxw8CF+AobMFploYA2L2Myt80cTA1w8FrewjC8qlqdnrPWr\nh1ely2zsUljgi1/niH0ndjFzliL7UkinXQiAsTtYOrOQmzyd/o5PNdu7dz0m7stD\nBN/Sz5TlXZnA1/eJbqV/kqMau6b1MaBx8SbRfUG9+cSmUobFJwuktDrPuwJhcEkl\niDmhEqu1GuZzmKvzPacLTVia1vSlmCTCu89NiHI8iGiiLtqNrapup7f8j5m3a3SL\na+vXhplFj2piNl7Nc0dfuVgtEliTI+qUL2/+4A7gzRWZpHy21/LxMMXmBhdJW9En\nFWkev97VZLgb5TR3+qpSWmXcodjPy4dibvwsOMpdd+Q4AYulwvlDw5idRPVgGvk7\nqq03+w9ppZ5Fugws9k2CD9F/75JX2mCbRpkuPe8XXZ7bqrMaQgQMLOrs68HuiiCk\nFTklglq4DMKxnf/Y/T/MgIa9Q1o28YSevh6A7FnfPGARj2H2T4rToi+bC1Vf7qNB\nZ18bDpz99tRUTbyiRUSBMWLCGhU6c4HAqUrfrkpperOKFBQ3i38a79838oFdXHBW\n6rx1t5cC3XwtEoUyeBKAygez8G1LDXbN3607MxVhAjhHKtPkYvuBfysSNU6JrR0z\nUV1IURJANt2UMuKgSEkG/IMCAwEAATANBgkqhkiG9w0BAQsFAAOCAgEAcipMhp/w\nyzfPy61faVAw9SPaMNRlnW9FCDC3N9CGOjo2knjXpObPzyzsJiUURTjrA9eFMpRA\ne2Rgn2j+nvm2XdLAlC4Kh8jqv/wCL0X6BTQMdN5aOhXdSiXtpXOMvXYY/dQ4ebRZ\nXeRCVWQD79JbV6/uyx0nCV3FVcU7L1P4UjxroefVr0soLPMirgxHmOxLnkoVgdcB\ntqufP5kJx9CIeJXPx3QQsk1XfEtxtUvuw4ZaZkQnNUqvGl7V+AZpur5Eqfv3zBi8\nQxxL7qGkARNssNWH2Ju+tqpM/UZRnjlFrDR4SXUgT0coTduBalUY6qHkciHmRpiP\ntf3SgpDeiCSOV2iVFGdaR1mz3muWoAYWFstcWN3a3HjjVugIi23yLN8Gv8CNeoH4\nprulinFCLrFgAh8SLAF8mOAZanT06LH8jOIFYrdUxH+ZeRBR0rLoFjUF+JB7UKD9\n5TA+B4EBzQ1tMbGFU1DX79MjAejq0IV0Nzq+GMfBvLHxEf4+Oz8nqhDXQcJ6TdtY\nl3Lyw5zBvOL80SBK+Mr0UP7d9U3VXgbGHCYVJU6Ot1TwiGwahtWALRALA3TWeGkq\n7kyD1H+nm+9lfKhuyBRQnRGBVyze2lAp7oxwshJuhBwEXosXFxq1Cy6QhPN77r6N\nvuhxvtppolNnyOgGxwG4zquqq2V5/+vKjKY=\n-----END CERTIFICATE-----\n"),
					},
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.grafana.GrafanaFunctions;
import com.pulumi.grafana.inputs.GetSyntheticMonitoringProbesArgs;
import com.pulumi.grafana.SyntheticMonitoringCheck;
import com.pulumi.grafana.SyntheticMonitoringCheckArgs;
import com.pulumi.grafana.inputs.SyntheticMonitoringCheckSettingsArgs;
import com.pulumi.grafana.inputs.SyntheticMonitoringCheckSettingsTcpArgs;
import com.pulumi.grafana.inputs.SyntheticMonitoringCheckSettingsTcpTlsConfigArgs;
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) {
        final var main = GrafanaFunctions.getSyntheticMonitoringProbes();

        var tcp = new SyntheticMonitoringCheck("tcp", SyntheticMonitoringCheckArgs.builder()        
            .job("TCP Defaults")
            .target("grafana.com:443")
            .enabled(false)
            .probes(            
                main.applyValue(getSyntheticMonitoringProbesResult -> getSyntheticMonitoringProbesResult.probes().Frankfurt()),
                main.applyValue(getSyntheticMonitoringProbesResult -> getSyntheticMonitoringProbesResult.probes().London()))
            .labels(Map.of("foo", "baz"))
            .settings(SyntheticMonitoringCheckSettingsArgs.builder()
                .tcp(SyntheticMonitoringCheckSettingsTcpArgs.builder()
                    .ipVersion("V6")
                    .tls(true)
                    .queryResponses(                    
                        SyntheticMonitoringCheckSettingsTcpQueryResponseArgs.builder()
                            .send("howdy")
                            .expect("hi")
                            .build(),
                        SyntheticMonitoringCheckSettingsTcpQueryResponseArgs.builder()
                            .send("like this")
                            .expect("like that")
                            .startTls(true)
                            .build())
                    .tlsConfig(SyntheticMonitoringCheckSettingsTcpTlsConfigArgs.builder()
                        .serverName("grafana.com")
                        .caCert("""
-----BEGIN CERTIFICATE-----
MIIEljCCAn4CCQCKJPUQQxeO0zANBgkqhkiG9w0BAQsFADANMQswCQYDVQQGEwJT
RTAeFw0yMTA1MjkxOTIyNTdaFw0yNDAzMTgxOTIyNTdaMA0xCzAJBgNVBAYTAlNF
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnmbazDNUT0rSI4BpGZK+
0AJ+9FDkIYWJUtRLJoxw8CF+AobMFploYA2L2Myt80cTA1w8FrewjC8qlqdnrPWr
h1ely2zsUljgi1/niH0ndjFzliL7UkinXQiAsTtYOrOQmzyd/o5PNdu7dz0m7stD
BN/Sz5TlXZnA1/eJbqV/kqMau6b1MaBx8SbRfUG9+cSmUobFJwuktDrPuwJhcEkl
iDmhEqu1GuZzmKvzPacLTVia1vSlmCTCu89NiHI8iGiiLtqNrapup7f8j5m3a3SL
a+vXhplFj2piNl7Nc0dfuVgtEliTI+qUL2/+4A7gzRWZpHy21/LxMMXmBhdJW9En
FWkev97VZLgb5TR3+qpSWmXcodjPy4dibvwsOMpdd+Q4AYulwvlDw5idRPVgGvk7
qq03+w9ppZ5Fugws9k2CD9F/75JX2mCbRpkuPe8XXZ7bqrMaQgQMLOrs68HuiiCk
FTklglq4DMKxnf/Y/T/MgIa9Q1o28YSevh6A7FnfPGARj2H2T4rToi+bC1Vf7qNB
Z18bDpz99tRUTbyiRUSBMWLCGhU6c4HAqUrfrkpperOKFBQ3i38a79838oFdXHBW
6rx1t5cC3XwtEoUyeBKAygez8G1LDXbN3607MxVhAjhHKtPkYvuBfysSNU6JrR0z
UV1IURJANt2UMuKgSEkG/IMCAwEAATANBgkqhkiG9w0BAQsFAAOCAgEAcipMhp/w
yzfPy61faVAw9SPaMNRlnW9FCDC3N9CGOjo2knjXpObPzyzsJiUURTjrA9eFMpRA
e2Rgn2j+nvm2XdLAlC4Kh8jqv/wCL0X6BTQMdN5aOhXdSiXtpXOMvXYY/dQ4ebRZ
XeRCVWQD79JbV6/uyx0nCV3FVcU7L1P4UjxroefVr0soLPMirgxHmOxLnkoVgdcB
tqufP5kJx9CIeJXPx3QQsk1XfEtxtUvuw4ZaZkQnNUqvGl7V+AZpur5Eqfv3zBi8
QxxL7qGkARNssNWH2Ju+tqpM/UZRnjlFrDR4SXUgT0coTduBalUY6qHkciHmRpiP
tf3SgpDeiCSOV2iVFGdaR1mz3muWoAYWFstcWN3a3HjjVugIi23yLN8Gv8CNeoH4
prulinFCLrFgAh8SLAF8mOAZanT06LH8jOIFYrdUxH+ZeRBR0rLoFjUF+JB7UKD9
5TA+B4EBzQ1tMbGFU1DX79MjAejq0IV0Nzq+GMfBvLHxEf4+Oz8nqhDXQcJ6TdtY
l3Lyw5zBvOL80SBK+Mr0UP7d9U3VXgbGHCYVJU6Ot1TwiGwahtWALRALA3TWeGkq
7kyD1H+nm+9lfKhuyBRQnRGBVyze2lAp7oxwshJuhBwEXosXFxq1Cy6QhPN77r6N
vuhxvtppolNnyOgGxwG4zquqq2V5/+vKjKY=
-----END CERTIFICATE-----
                        """)
                        .build())
                    .build())
                .build())
            .build());

    }
}
import pulumi
import lbrlabs_pulumi_grafana as grafana
import pulumi_grafana as grafana

main = grafana.get_synthetic_monitoring_probes()
tcp = grafana.SyntheticMonitoringCheck("tcp",
    job="TCP Defaults",
    target="grafana.com:443",
    enabled=False,
    probes=[
        main.probes["Frankfurt"],
        main.probes["London"],
    ],
    labels={
        "foo": "baz",
    },
    settings=grafana.SyntheticMonitoringCheckSettingsArgs(
        tcp=grafana.SyntheticMonitoringCheckSettingsTcpArgs(
            ip_version="V6",
            tls=True,
            query_responses=[
                grafana.SyntheticMonitoringCheckSettingsTcpQueryResponseArgs(
                    send="howdy",
                    expect="hi",
                ),
                grafana.SyntheticMonitoringCheckSettingsTcpQueryResponseArgs(
                    send="like this",
                    expect="like that",
                    start_tls=True,
                ),
            ],
            tls_config=grafana.SyntheticMonitoringCheckSettingsTcpTlsConfigArgs(
                server_name="grafana.com",
                ca_cert="""-----BEGIN CERTIFICATE-----
MIIEljCCAn4CCQCKJPUQQxeO0zANBgkqhkiG9w0BAQsFADANMQswCQYDVQQGEwJT
RTAeFw0yMTA1MjkxOTIyNTdaFw0yNDAzMTgxOTIyNTdaMA0xCzAJBgNVBAYTAlNF
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnmbazDNUT0rSI4BpGZK+
0AJ+9FDkIYWJUtRLJoxw8CF+AobMFploYA2L2Myt80cTA1w8FrewjC8qlqdnrPWr
h1ely2zsUljgi1/niH0ndjFzliL7UkinXQiAsTtYOrOQmzyd/o5PNdu7dz0m7stD
BN/Sz5TlXZnA1/eJbqV/kqMau6b1MaBx8SbRfUG9+cSmUobFJwuktDrPuwJhcEkl
iDmhEqu1GuZzmKvzPacLTVia1vSlmCTCu89NiHI8iGiiLtqNrapup7f8j5m3a3SL
a+vXhplFj2piNl7Nc0dfuVgtEliTI+qUL2/+4A7gzRWZpHy21/LxMMXmBhdJW9En
FWkev97VZLgb5TR3+qpSWmXcodjPy4dibvwsOMpdd+Q4AYulwvlDw5idRPVgGvk7
qq03+w9ppZ5Fugws9k2CD9F/75JX2mCbRpkuPe8XXZ7bqrMaQgQMLOrs68HuiiCk
FTklglq4DMKxnf/Y/T/MgIa9Q1o28YSevh6A7FnfPGARj2H2T4rToi+bC1Vf7qNB
Z18bDpz99tRUTbyiRUSBMWLCGhU6c4HAqUrfrkpperOKFBQ3i38a79838oFdXHBW
6rx1t5cC3XwtEoUyeBKAygez8G1LDXbN3607MxVhAjhHKtPkYvuBfysSNU6JrR0z
UV1IURJANt2UMuKgSEkG/IMCAwEAATANBgkqhkiG9w0BAQsFAAOCAgEAcipMhp/w
yzfPy61faVAw9SPaMNRlnW9FCDC3N9CGOjo2knjXpObPzyzsJiUURTjrA9eFMpRA
e2Rgn2j+nvm2XdLAlC4Kh8jqv/wCL0X6BTQMdN5aOhXdSiXtpXOMvXYY/dQ4ebRZ
XeRCVWQD79JbV6/uyx0nCV3FVcU7L1P4UjxroefVr0soLPMirgxHmOxLnkoVgdcB
tqufP5kJx9CIeJXPx3QQsk1XfEtxtUvuw4ZaZkQnNUqvGl7V+AZpur5Eqfv3zBi8
QxxL7qGkARNssNWH2Ju+tqpM/UZRnjlFrDR4SXUgT0coTduBalUY6qHkciHmRpiP
tf3SgpDeiCSOV2iVFGdaR1mz3muWoAYWFstcWN3a3HjjVugIi23yLN8Gv8CNeoH4
prulinFCLrFgAh8SLAF8mOAZanT06LH8jOIFYrdUxH+ZeRBR0rLoFjUF+JB7UKD9
5TA+B4EBzQ1tMbGFU1DX79MjAejq0IV0Nzq+GMfBvLHxEf4+Oz8nqhDXQcJ6TdtY
l3Lyw5zBvOL80SBK+Mr0UP7d9U3VXgbGHCYVJU6Ot1TwiGwahtWALRALA3TWeGkq
7kyD1H+nm+9lfKhuyBRQnRGBVyze2lAp7oxwshJuhBwEXosXFxq1Cy6QhPN77r6N
vuhxvtppolNnyOgGxwG4zquqq2V5/+vKjKY=
-----END CERTIFICATE-----
""",
            ),
        ),
    ))
import * as pulumi from "@pulumi/pulumi";
import * as grafana from "@lbrlabs/pulumi-grafana";
import * as grafana from "@pulumi/grafana";

const main = grafana.getSyntheticMonitoringProbes({});
const tcp = new grafana.SyntheticMonitoringCheck("tcp", {
    job: "TCP Defaults",
    target: "grafana.com:443",
    enabled: false,
    probes: [
        main.then(main => main.probes?.Frankfurt),
        main.then(main => main.probes?.London),
    ],
    labels: {
        foo: "baz",
    },
    settings: {
        tcp: {
            ipVersion: "V6",
            tls: true,
            queryResponses: [
                {
                    send: "howdy",
                    expect: "hi",
                },
                {
                    send: "like this",
                    expect: "like that",
                    startTls: true,
                },
            ],
            tlsConfig: {
                serverName: "grafana.com",
                caCert: `-----BEGIN CERTIFICATE-----
MIIEljCCAn4CCQCKJPUQQxeO0zANBgkqhkiG9w0BAQsFADANMQswCQYDVQQGEwJT
RTAeFw0yMTA1MjkxOTIyNTdaFw0yNDAzMTgxOTIyNTdaMA0xCzAJBgNVBAYTAlNF
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnmbazDNUT0rSI4BpGZK+
0AJ+9FDkIYWJUtRLJoxw8CF+AobMFploYA2L2Myt80cTA1w8FrewjC8qlqdnrPWr
h1ely2zsUljgi1/niH0ndjFzliL7UkinXQiAsTtYOrOQmzyd/o5PNdu7dz0m7stD
BN/Sz5TlXZnA1/eJbqV/kqMau6b1MaBx8SbRfUG9+cSmUobFJwuktDrPuwJhcEkl
iDmhEqu1GuZzmKvzPacLTVia1vSlmCTCu89NiHI8iGiiLtqNrapup7f8j5m3a3SL
a+vXhplFj2piNl7Nc0dfuVgtEliTI+qUL2/+4A7gzRWZpHy21/LxMMXmBhdJW9En
FWkev97VZLgb5TR3+qpSWmXcodjPy4dibvwsOMpdd+Q4AYulwvlDw5idRPVgGvk7
qq03+w9ppZ5Fugws9k2CD9F/75JX2mCbRpkuPe8XXZ7bqrMaQgQMLOrs68HuiiCk
FTklglq4DMKxnf/Y/T/MgIa9Q1o28YSevh6A7FnfPGARj2H2T4rToi+bC1Vf7qNB
Z18bDpz99tRUTbyiRUSBMWLCGhU6c4HAqUrfrkpperOKFBQ3i38a79838oFdXHBW
6rx1t5cC3XwtEoUyeBKAygez8G1LDXbN3607MxVhAjhHKtPkYvuBfysSNU6JrR0z
UV1IURJANt2UMuKgSEkG/IMCAwEAATANBgkqhkiG9w0BAQsFAAOCAgEAcipMhp/w
yzfPy61faVAw9SPaMNRlnW9FCDC3N9CGOjo2knjXpObPzyzsJiUURTjrA9eFMpRA
e2Rgn2j+nvm2XdLAlC4Kh8jqv/wCL0X6BTQMdN5aOhXdSiXtpXOMvXYY/dQ4ebRZ
XeRCVWQD79JbV6/uyx0nCV3FVcU7L1P4UjxroefVr0soLPMirgxHmOxLnkoVgdcB
tqufP5kJx9CIeJXPx3QQsk1XfEtxtUvuw4ZaZkQnNUqvGl7V+AZpur5Eqfv3zBi8
QxxL7qGkARNssNWH2Ju+tqpM/UZRnjlFrDR4SXUgT0coTduBalUY6qHkciHmRpiP
tf3SgpDeiCSOV2iVFGdaR1mz3muWoAYWFstcWN3a3HjjVugIi23yLN8Gv8CNeoH4
prulinFCLrFgAh8SLAF8mOAZanT06LH8jOIFYrdUxH+ZeRBR0rLoFjUF+JB7UKD9
5TA+B4EBzQ1tMbGFU1DX79MjAejq0IV0Nzq+GMfBvLHxEf4+Oz8nqhDXQcJ6TdtY
l3Lyw5zBvOL80SBK+Mr0UP7d9U3VXgbGHCYVJU6Ot1TwiGwahtWALRALA3TWeGkq
7kyD1H+nm+9lfKhuyBRQnRGBVyze2lAp7oxwshJuhBwEXosXFxq1Cy6QhPN77r6N
vuhxvtppolNnyOgGxwG4zquqq2V5/+vKjKY=
-----END CERTIFICATE-----
`,
            },
        },
    },
});
resources:
  tcp:
    type: grafana:SyntheticMonitoringCheck
    properties:
      job: TCP Defaults
      target: grafana.com:443
      enabled: false
      probes:
        - ${main.probes.Frankfurt}
        - ${main.probes.London}
      labels:
        foo: baz
      settings:
        tcp:
          ipVersion: V6
          tls: true
          queryResponses:
            - send: howdy
              expect: hi
            - send: like this
              expect: like that
              startTls: true
          tlsConfig:
            serverName: grafana.com
            caCert: |
              -----BEGIN CERTIFICATE-----
              MIIEljCCAn4CCQCKJPUQQxeO0zANBgkqhkiG9w0BAQsFADANMQswCQYDVQQGEwJT
              RTAeFw0yMTA1MjkxOTIyNTdaFw0yNDAzMTgxOTIyNTdaMA0xCzAJBgNVBAYTAlNF
              MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnmbazDNUT0rSI4BpGZK+
              0AJ+9FDkIYWJUtRLJoxw8CF+AobMFploYA2L2Myt80cTA1w8FrewjC8qlqdnrPWr
              h1ely2zsUljgi1/niH0ndjFzliL7UkinXQiAsTtYOrOQmzyd/o5PNdu7dz0m7stD
              BN/Sz5TlXZnA1/eJbqV/kqMau6b1MaBx8SbRfUG9+cSmUobFJwuktDrPuwJhcEkl
              iDmhEqu1GuZzmKvzPacLTVia1vSlmCTCu89NiHI8iGiiLtqNrapup7f8j5m3a3SL
              a+vXhplFj2piNl7Nc0dfuVgtEliTI+qUL2/+4A7gzRWZpHy21/LxMMXmBhdJW9En
              FWkev97VZLgb5TR3+qpSWmXcodjPy4dibvwsOMpdd+Q4AYulwvlDw5idRPVgGvk7
              qq03+w9ppZ5Fugws9k2CD9F/75JX2mCbRpkuPe8XXZ7bqrMaQgQMLOrs68HuiiCk
              FTklglq4DMKxnf/Y/T/MgIa9Q1o28YSevh6A7FnfPGARj2H2T4rToi+bC1Vf7qNB
              Z18bDpz99tRUTbyiRUSBMWLCGhU6c4HAqUrfrkpperOKFBQ3i38a79838oFdXHBW
              6rx1t5cC3XwtEoUyeBKAygez8G1LDXbN3607MxVhAjhHKtPkYvuBfysSNU6JrR0z
              UV1IURJANt2UMuKgSEkG/IMCAwEAATANBgkqhkiG9w0BAQsFAAOCAgEAcipMhp/w
              yzfPy61faVAw9SPaMNRlnW9FCDC3N9CGOjo2knjXpObPzyzsJiUURTjrA9eFMpRA
              e2Rgn2j+nvm2XdLAlC4Kh8jqv/wCL0X6BTQMdN5aOhXdSiXtpXOMvXYY/dQ4ebRZ
              XeRCVWQD79JbV6/uyx0nCV3FVcU7L1P4UjxroefVr0soLPMirgxHmOxLnkoVgdcB
              tqufP5kJx9CIeJXPx3QQsk1XfEtxtUvuw4ZaZkQnNUqvGl7V+AZpur5Eqfv3zBi8
              QxxL7qGkARNssNWH2Ju+tqpM/UZRnjlFrDR4SXUgT0coTduBalUY6qHkciHmRpiP
              tf3SgpDeiCSOV2iVFGdaR1mz3muWoAYWFstcWN3a3HjjVugIi23yLN8Gv8CNeoH4
              prulinFCLrFgAh8SLAF8mOAZanT06LH8jOIFYrdUxH+ZeRBR0rLoFjUF+JB7UKD9
              5TA+B4EBzQ1tMbGFU1DX79MjAejq0IV0Nzq+GMfBvLHxEf4+Oz8nqhDXQcJ6TdtY
              l3Lyw5zBvOL80SBK+Mr0UP7d9U3VXgbGHCYVJU6Ot1TwiGwahtWALRALA3TWeGkq
              7kyD1H+nm+9lfKhuyBRQnRGBVyze2lAp7oxwshJuhBwEXosXFxq1Cy6QhPN77r6N
              vuhxvtppolNnyOgGxwG4zquqq2V5/+vKjKY=
              -----END CERTIFICATE-----              
variables:
  main:
    fn::invoke:
      Function: grafana:getSyntheticMonitoringProbes
      Arguments: {}

Traceroute Basic

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Grafana = Lbrlabs.PulumiPackage.Grafana;
using Grafana = Pulumi.Grafana;

return await Deployment.RunAsync(() => 
{
    var main = Grafana.GetSyntheticMonitoringProbes.Invoke();

    var traceroute = new Grafana.SyntheticMonitoringCheck("traceroute", new()
    {
        Job = "Traceroute defaults",
        Target = "grafana.com",
        Enabled = false,
        Frequency = 120000,
        Timeout = 30000,
        Probes = new[]
        {
            main.Apply(getSyntheticMonitoringProbesResult => getSyntheticMonitoringProbesResult.Probes?.Atlanta),
        },
        Labels = 
        {
            { "foo", "bar" },
        },
        Settings = new Grafana.Inputs.SyntheticMonitoringCheckSettingsArgs
        {
            Traceroute = null,
        },
    });

});
package main

import (
	"github.com/lbrlabs/pulumi-grafana/sdk/go/grafana"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		main, err := grafana.GetSyntheticMonitoringProbes(ctx, nil, nil)
		if err != nil {
			return err
		}
		_, err = grafana.NewSyntheticMonitoringCheck(ctx, "traceroute", &grafana.SyntheticMonitoringCheckArgs{
			Job:       pulumi.String("Traceroute defaults"),
			Target:    pulumi.String("grafana.com"),
			Enabled:   pulumi.Bool(false),
			Frequency: pulumi.Int(120000),
			Timeout:   pulumi.Int(30000),
			Probes: pulumi.IntArray{
				*pulumi.Int(main.Probes.Atlanta),
			},
			Labels: pulumi.StringMap{
				"foo": pulumi.String("bar"),
			},
			Settings: &grafana.SyntheticMonitoringCheckSettingsArgs{
				Traceroute: nil,
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.grafana.GrafanaFunctions;
import com.pulumi.grafana.inputs.GetSyntheticMonitoringProbesArgs;
import com.pulumi.grafana.SyntheticMonitoringCheck;
import com.pulumi.grafana.SyntheticMonitoringCheckArgs;
import com.pulumi.grafana.inputs.SyntheticMonitoringCheckSettingsArgs;
import com.pulumi.grafana.inputs.SyntheticMonitoringCheckSettingsTracerouteArgs;
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) {
        final var main = GrafanaFunctions.getSyntheticMonitoringProbes();

        var traceroute = new SyntheticMonitoringCheck("traceroute", SyntheticMonitoringCheckArgs.builder()        
            .job("Traceroute defaults")
            .target("grafana.com")
            .enabled(false)
            .frequency(120000)
            .timeout(30000)
            .probes(main.applyValue(getSyntheticMonitoringProbesResult -> getSyntheticMonitoringProbesResult.probes().Atlanta()))
            .labels(Map.of("foo", "bar"))
            .settings(SyntheticMonitoringCheckSettingsArgs.builder()
                .traceroute()
                .build())
            .build());

    }
}
import pulumi
import lbrlabs_pulumi_grafana as grafana
import pulumi_grafana as grafana

main = grafana.get_synthetic_monitoring_probes()
traceroute = grafana.SyntheticMonitoringCheck("traceroute",
    job="Traceroute defaults",
    target="grafana.com",
    enabled=False,
    frequency=120000,
    timeout=30000,
    probes=[main.probes["Atlanta"]],
    labels={
        "foo": "bar",
    },
    settings=grafana.SyntheticMonitoringCheckSettingsArgs(
        traceroute=grafana.SyntheticMonitoringCheckSettingsTracerouteArgs(),
    ))
import * as pulumi from "@pulumi/pulumi";
import * as grafana from "@lbrlabs/pulumi-grafana";
import * as grafana from "@pulumi/grafana";

const main = grafana.getSyntheticMonitoringProbes({});
const traceroute = new grafana.SyntheticMonitoringCheck("traceroute", {
    job: "Traceroute defaults",
    target: "grafana.com",
    enabled: false,
    frequency: 120000,
    timeout: 30000,
    probes: [main.then(main => main.probes?.Atlanta)],
    labels: {
        foo: "bar",
    },
    settings: {
        traceroute: {},
    },
});
resources:
  traceroute:
    type: grafana:SyntheticMonitoringCheck
    properties:
      job: Traceroute defaults
      target: grafana.com
      enabled: false
      frequency: 120000
      timeout: 30000
      probes:
        - ${main.probes.Atlanta}
      labels:
        foo: bar
      settings:
        traceroute: {}
variables:
  main:
    fn::invoke:
      Function: grafana:getSyntheticMonitoringProbes
      Arguments: {}

Traceroute Complex

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Grafana = Lbrlabs.PulumiPackage.Grafana;
using Grafana = Pulumi.Grafana;

return await Deployment.RunAsync(() => 
{
    var main = Grafana.GetSyntheticMonitoringProbes.Invoke();

    var traceroute = new Grafana.SyntheticMonitoringCheck("traceroute", new()
    {
        Job = "Traceroute complex",
        Target = "grafana.net",
        Enabled = false,
        Frequency = 120000,
        Timeout = 30000,
        Probes = new[]
        {
            main.Apply(getSyntheticMonitoringProbesResult => getSyntheticMonitoringProbesResult.Probes?.Frankfurt),
            main.Apply(getSyntheticMonitoringProbesResult => getSyntheticMonitoringProbesResult.Probes?.London),
        },
        Labels = 
        {
            { "foo", "baz" },
        },
        Settings = new Grafana.Inputs.SyntheticMonitoringCheckSettingsArgs
        {
            Traceroute = new Grafana.Inputs.SyntheticMonitoringCheckSettingsTracerouteArgs
            {
                MaxHops = 25,
                MaxUnknownHops = 10,
                PtrLookup = false,
            },
        },
    });

});
package main

import (
	"github.com/lbrlabs/pulumi-grafana/sdk/go/grafana"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		main, err := grafana.GetSyntheticMonitoringProbes(ctx, nil, nil)
		if err != nil {
			return err
		}
		_, err = grafana.NewSyntheticMonitoringCheck(ctx, "traceroute", &grafana.SyntheticMonitoringCheckArgs{
			Job:       pulumi.String("Traceroute complex"),
			Target:    pulumi.String("grafana.net"),
			Enabled:   pulumi.Bool(false),
			Frequency: pulumi.Int(120000),
			Timeout:   pulumi.Int(30000),
			Probes: pulumi.IntArray{
				*pulumi.Int(main.Probes.Frankfurt),
				*pulumi.Int(main.Probes.London),
			},
			Labels: pulumi.StringMap{
				"foo": pulumi.String("baz"),
			},
			Settings: &grafana.SyntheticMonitoringCheckSettingsArgs{
				Traceroute: &grafana.SyntheticMonitoringCheckSettingsTracerouteArgs{
					MaxHops:        pulumi.Int(25),
					MaxUnknownHops: pulumi.Int(10),
					PtrLookup:      pulumi.Bool(false),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.grafana.GrafanaFunctions;
import com.pulumi.grafana.inputs.GetSyntheticMonitoringProbesArgs;
import com.pulumi.grafana.SyntheticMonitoringCheck;
import com.pulumi.grafana.SyntheticMonitoringCheckArgs;
import com.pulumi.grafana.inputs.SyntheticMonitoringCheckSettingsArgs;
import com.pulumi.grafana.inputs.SyntheticMonitoringCheckSettingsTracerouteArgs;
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) {
        final var main = GrafanaFunctions.getSyntheticMonitoringProbes();

        var traceroute = new SyntheticMonitoringCheck("traceroute", SyntheticMonitoringCheckArgs.builder()        
            .job("Traceroute complex")
            .target("grafana.net")
            .enabled(false)
            .frequency(120000)
            .timeout(30000)
            .probes(            
                main.applyValue(getSyntheticMonitoringProbesResult -> getSyntheticMonitoringProbesResult.probes().Frankfurt()),
                main.applyValue(getSyntheticMonitoringProbesResult -> getSyntheticMonitoringProbesResult.probes().London()))
            .labels(Map.of("foo", "baz"))
            .settings(SyntheticMonitoringCheckSettingsArgs.builder()
                .traceroute(SyntheticMonitoringCheckSettingsTracerouteArgs.builder()
                    .maxHops(25)
                    .maxUnknownHops(10)
                    .ptrLookup(false)
                    .build())
                .build())
            .build());

    }
}
import pulumi
import lbrlabs_pulumi_grafana as grafana
import pulumi_grafana as grafana

main = grafana.get_synthetic_monitoring_probes()
traceroute = grafana.SyntheticMonitoringCheck("traceroute",
    job="Traceroute complex",
    target="grafana.net",
    enabled=False,
    frequency=120000,
    timeout=30000,
    probes=[
        main.probes["Frankfurt"],
        main.probes["London"],
    ],
    labels={
        "foo": "baz",
    },
    settings=grafana.SyntheticMonitoringCheckSettingsArgs(
        traceroute=grafana.SyntheticMonitoringCheckSettingsTracerouteArgs(
            max_hops=25,
            max_unknown_hops=10,
            ptr_lookup=False,
        ),
    ))
import * as pulumi from "@pulumi/pulumi";
import * as grafana from "@lbrlabs/pulumi-grafana";
import * as grafana from "@pulumi/grafana";

const main = grafana.getSyntheticMonitoringProbes({});
const traceroute = new grafana.SyntheticMonitoringCheck("traceroute", {
    job: "Traceroute complex",
    target: "grafana.net",
    enabled: false,
    frequency: 120000,
    timeout: 30000,
    probes: [
        main.then(main => main.probes?.Frankfurt),
        main.then(main => main.probes?.London),
    ],
    labels: {
        foo: "baz",
    },
    settings: {
        traceroute: {
            maxHops: 25,
            maxUnknownHops: 10,
            ptrLookup: false,
        },
    },
});
resources:
  traceroute:
    type: grafana:SyntheticMonitoringCheck
    properties:
      job: Traceroute complex
      target: grafana.net
      enabled: false
      frequency: 120000
      timeout: 30000
      probes:
        - ${main.probes.Frankfurt}
        - ${main.probes.London}
      labels:
        foo: baz
      settings:
        traceroute:
          maxHops: 25
          maxUnknownHops: 10
          ptrLookup: false
variables:
  main:
    fn::invoke:
      Function: grafana:getSyntheticMonitoringProbes
      Arguments: {}

Create SyntheticMonitoringCheck Resource

new SyntheticMonitoringCheck(name: string, args: SyntheticMonitoringCheckArgs, opts?: CustomResourceOptions);
@overload
def SyntheticMonitoringCheck(resource_name: str,
                             opts: Optional[ResourceOptions] = None,
                             alert_sensitivity: Optional[str] = None,
                             basic_metrics_only: Optional[bool] = None,
                             enabled: Optional[bool] = None,
                             frequency: Optional[int] = None,
                             job: Optional[str] = None,
                             labels: Optional[Mapping[str, str]] = None,
                             probes: Optional[Sequence[int]] = None,
                             settings: Optional[SyntheticMonitoringCheckSettingsArgs] = None,
                             target: Optional[str] = None,
                             timeout: Optional[int] = None)
@overload
def SyntheticMonitoringCheck(resource_name: str,
                             args: SyntheticMonitoringCheckArgs,
                             opts: Optional[ResourceOptions] = None)
func NewSyntheticMonitoringCheck(ctx *Context, name string, args SyntheticMonitoringCheckArgs, opts ...ResourceOption) (*SyntheticMonitoringCheck, error)
public SyntheticMonitoringCheck(string name, SyntheticMonitoringCheckArgs args, CustomResourceOptions? opts = null)
public SyntheticMonitoringCheck(String name, SyntheticMonitoringCheckArgs args)
public SyntheticMonitoringCheck(String name, SyntheticMonitoringCheckArgs args, CustomResourceOptions options)
type: grafana:SyntheticMonitoringCheck
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.

name string
The unique name of the resource.
args SyntheticMonitoringCheckArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
resource_name str
The unique name of the resource.
args SyntheticMonitoringCheckArgs
The arguments to resource properties.
opts ResourceOptions
Bag of options to control resource's behavior.
ctx Context
Context object for the current deployment.
name string
The unique name of the resource.
args SyntheticMonitoringCheckArgs
The arguments to resource properties.
opts ResourceOption
Bag of options to control resource's behavior.
name string
The unique name of the resource.
args SyntheticMonitoringCheckArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
name String
The unique name of the resource.
args SyntheticMonitoringCheckArgs
The arguments to resource properties.
options CustomResourceOptions
Bag of options to control resource's behavior.

SyntheticMonitoringCheck Resource Properties

To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

Inputs

The SyntheticMonitoringCheck resource accepts the following input properties:

Job string

Name used for job label.

Probes List<int>

List of probe location IDs where this target will be checked from.

Settings Lbrlabs.PulumiPackage.Grafana.Inputs.SyntheticMonitoringCheckSettingsArgs

Check settings. Should contain exactly one nested block.

Target string

Hostname to ping.

AlertSensitivity string

Can be set to none, low, medium, or high to correspond to the check alert levels. Defaults to none.

BasicMetricsOnly bool

Metrics are reduced by default. Set this to false if you'd like to publish all metrics. We maintain a full list of metrics collected for each. Defaults to true.

Enabled bool

Whether to enable the check. Defaults to true.

Frequency int

How often the check runs in milliseconds (the value is not truly a "frequency" but a "period"). The minimum acceptable value is 1 second (1000 ms), and the maximum is 120 seconds (120000 ms). Defaults to 60000.

Labels Dictionary<string, string>

Custom labels to be included with collected metrics and logs. The maximum number of labels that can be specified per check is 5. These are applied, along with the probe-specific labels, to the outgoing metrics. The names and values of the labels cannot be empty, and the maximum length is 32 bytes.

Timeout int

Specifies the maximum running time for the check in milliseconds. The minimum acceptable value is 1 second (1000 ms), and the maximum 10 seconds (10000 ms). Defaults to 3000.

Job string

Name used for job label.

Probes []int

List of probe location IDs where this target will be checked from.

Settings SyntheticMonitoringCheckSettingsArgs

Check settings. Should contain exactly one nested block.

Target string

Hostname to ping.

AlertSensitivity string

Can be set to none, low, medium, or high to correspond to the check alert levels. Defaults to none.

BasicMetricsOnly bool

Metrics are reduced by default. Set this to false if you'd like to publish all metrics. We maintain a full list of metrics collected for each. Defaults to true.

Enabled bool

Whether to enable the check. Defaults to true.

Frequency int

How often the check runs in milliseconds (the value is not truly a "frequency" but a "period"). The minimum acceptable value is 1 second (1000 ms), and the maximum is 120 seconds (120000 ms). Defaults to 60000.

Labels map[string]string

Custom labels to be included with collected metrics and logs. The maximum number of labels that can be specified per check is 5. These are applied, along with the probe-specific labels, to the outgoing metrics. The names and values of the labels cannot be empty, and the maximum length is 32 bytes.

Timeout int

Specifies the maximum running time for the check in milliseconds. The minimum acceptable value is 1 second (1000 ms), and the maximum 10 seconds (10000 ms). Defaults to 3000.

job String

Name used for job label.

probes List<Integer>

List of probe location IDs where this target will be checked from.

settings SyntheticMonitoringCheckSettingsArgs

Check settings. Should contain exactly one nested block.

target String

Hostname to ping.

alertSensitivity String

Can be set to none, low, medium, or high to correspond to the check alert levels. Defaults to none.

basicMetricsOnly Boolean

Metrics are reduced by default. Set this to false if you'd like to publish all metrics. We maintain a full list of metrics collected for each. Defaults to true.

enabled Boolean

Whether to enable the check. Defaults to true.

frequency Integer

How often the check runs in milliseconds (the value is not truly a "frequency" but a "period"). The minimum acceptable value is 1 second (1000 ms), and the maximum is 120 seconds (120000 ms). Defaults to 60000.

labels Map<String,String>

Custom labels to be included with collected metrics and logs. The maximum number of labels that can be specified per check is 5. These are applied, along with the probe-specific labels, to the outgoing metrics. The names and values of the labels cannot be empty, and the maximum length is 32 bytes.

timeout Integer

Specifies the maximum running time for the check in milliseconds. The minimum acceptable value is 1 second (1000 ms), and the maximum 10 seconds (10000 ms). Defaults to 3000.

job string

Name used for job label.

probes number[]

List of probe location IDs where this target will be checked from.

settings SyntheticMonitoringCheckSettingsArgs

Check settings. Should contain exactly one nested block.

target string

Hostname to ping.

alertSensitivity string

Can be set to none, low, medium, or high to correspond to the check alert levels. Defaults to none.

basicMetricsOnly boolean

Metrics are reduced by default. Set this to false if you'd like to publish all metrics. We maintain a full list of metrics collected for each. Defaults to true.

enabled boolean

Whether to enable the check. Defaults to true.

frequency number

How often the check runs in milliseconds (the value is not truly a "frequency" but a "period"). The minimum acceptable value is 1 second (1000 ms), and the maximum is 120 seconds (120000 ms). Defaults to 60000.

labels {[key: string]: string}

Custom labels to be included with collected metrics and logs. The maximum number of labels that can be specified per check is 5. These are applied, along with the probe-specific labels, to the outgoing metrics. The names and values of the labels cannot be empty, and the maximum length is 32 bytes.

timeout number

Specifies the maximum running time for the check in milliseconds. The minimum acceptable value is 1 second (1000 ms), and the maximum 10 seconds (10000 ms). Defaults to 3000.

job str

Name used for job label.

probes Sequence[int]

List of probe location IDs where this target will be checked from.

settings SyntheticMonitoringCheckSettingsArgs

Check settings. Should contain exactly one nested block.

target str

Hostname to ping.

alert_sensitivity str

Can be set to none, low, medium, or high to correspond to the check alert levels. Defaults to none.

basic_metrics_only bool

Metrics are reduced by default. Set this to false if you'd like to publish all metrics. We maintain a full list of metrics collected for each. Defaults to true.

enabled bool

Whether to enable the check. Defaults to true.

frequency int

How often the check runs in milliseconds (the value is not truly a "frequency" but a "period"). The minimum acceptable value is 1 second (1000 ms), and the maximum is 120 seconds (120000 ms). Defaults to 60000.

labels Mapping[str, str]

Custom labels to be included with collected metrics and logs. The maximum number of labels that can be specified per check is 5. These are applied, along with the probe-specific labels, to the outgoing metrics. The names and values of the labels cannot be empty, and the maximum length is 32 bytes.

timeout int

Specifies the maximum running time for the check in milliseconds. The minimum acceptable value is 1 second (1000 ms), and the maximum 10 seconds (10000 ms). Defaults to 3000.

job String

Name used for job label.

probes List<Number>

List of probe location IDs where this target will be checked from.

settings Property Map

Check settings. Should contain exactly one nested block.

target String

Hostname to ping.

alertSensitivity String

Can be set to none, low, medium, or high to correspond to the check alert levels. Defaults to none.

basicMetricsOnly Boolean

Metrics are reduced by default. Set this to false if you'd like to publish all metrics. We maintain a full list of metrics collected for each. Defaults to true.

enabled Boolean

Whether to enable the check. Defaults to true.

frequency Number

How often the check runs in milliseconds (the value is not truly a "frequency" but a "period"). The minimum acceptable value is 1 second (1000 ms), and the maximum is 120 seconds (120000 ms). Defaults to 60000.

labels Map<String>

Custom labels to be included with collected metrics and logs. The maximum number of labels that can be specified per check is 5. These are applied, along with the probe-specific labels, to the outgoing metrics. The names and values of the labels cannot be empty, and the maximum length is 32 bytes.

timeout Number

Specifies the maximum running time for the check in milliseconds. The minimum acceptable value is 1 second (1000 ms), and the maximum 10 seconds (10000 ms). Defaults to 3000.

Outputs

All input properties are implicitly available as output properties. Additionally, the SyntheticMonitoringCheck resource produces the following output properties:

Id string

The provider-assigned unique ID for this managed resource.

TenantId int

The tenant ID of the check.

Id string

The provider-assigned unique ID for this managed resource.

TenantId int

The tenant ID of the check.

id String

The provider-assigned unique ID for this managed resource.

tenantId Integer

The tenant ID of the check.

id string

The provider-assigned unique ID for this managed resource.

tenantId number

The tenant ID of the check.

id str

The provider-assigned unique ID for this managed resource.

tenant_id int

The tenant ID of the check.

id String

The provider-assigned unique ID for this managed resource.

tenantId Number

The tenant ID of the check.

Look up Existing SyntheticMonitoringCheck Resource

Get an existing SyntheticMonitoringCheck resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

public static get(name: string, id: Input<ID>, state?: SyntheticMonitoringCheckState, opts?: CustomResourceOptions): SyntheticMonitoringCheck
@staticmethod
def get(resource_name: str,
        id: str,
        opts: Optional[ResourceOptions] = None,
        alert_sensitivity: Optional[str] = None,
        basic_metrics_only: Optional[bool] = None,
        enabled: Optional[bool] = None,
        frequency: Optional[int] = None,
        job: Optional[str] = None,
        labels: Optional[Mapping[str, str]] = None,
        probes: Optional[Sequence[int]] = None,
        settings: Optional[SyntheticMonitoringCheckSettingsArgs] = None,
        target: Optional[str] = None,
        tenant_id: Optional[int] = None,
        timeout: Optional[int] = None) -> SyntheticMonitoringCheck
func GetSyntheticMonitoringCheck(ctx *Context, name string, id IDInput, state *SyntheticMonitoringCheckState, opts ...ResourceOption) (*SyntheticMonitoringCheck, error)
public static SyntheticMonitoringCheck Get(string name, Input<string> id, SyntheticMonitoringCheckState? state, CustomResourceOptions? opts = null)
public static SyntheticMonitoringCheck get(String name, Output<String> id, SyntheticMonitoringCheckState state, CustomResourceOptions options)
Resource lookup is not supported in YAML
name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
resource_name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
The following state arguments are supported:
AlertSensitivity string

Can be set to none, low, medium, or high to correspond to the check alert levels. Defaults to none.

BasicMetricsOnly bool

Metrics are reduced by default. Set this to false if you'd like to publish all metrics. We maintain a full list of metrics collected for each. Defaults to true.

Enabled bool

Whether to enable the check. Defaults to true.

Frequency int

How often the check runs in milliseconds (the value is not truly a "frequency" but a "period"). The minimum acceptable value is 1 second (1000 ms), and the maximum is 120 seconds (120000 ms). Defaults to 60000.

Job string

Name used for job label.

Labels Dictionary<string, string>

Custom labels to be included with collected metrics and logs. The maximum number of labels that can be specified per check is 5. These are applied, along with the probe-specific labels, to the outgoing metrics. The names and values of the labels cannot be empty, and the maximum length is 32 bytes.

Probes List<int>

List of probe location IDs where this target will be checked from.

Settings Lbrlabs.PulumiPackage.Grafana.Inputs.SyntheticMonitoringCheckSettingsArgs

Check settings. Should contain exactly one nested block.

Target string

Hostname to ping.

TenantId int

The tenant ID of the check.

Timeout int

Specifies the maximum running time for the check in milliseconds. The minimum acceptable value is 1 second (1000 ms), and the maximum 10 seconds (10000 ms). Defaults to 3000.

AlertSensitivity string

Can be set to none, low, medium, or high to correspond to the check alert levels. Defaults to none.

BasicMetricsOnly bool

Metrics are reduced by default. Set this to false if you'd like to publish all metrics. We maintain a full list of metrics collected for each. Defaults to true.

Enabled bool

Whether to enable the check. Defaults to true.

Frequency int

How often the check runs in milliseconds (the value is not truly a "frequency" but a "period"). The minimum acceptable value is 1 second (1000 ms), and the maximum is 120 seconds (120000 ms). Defaults to 60000.

Job string

Name used for job label.

Labels map[string]string

Custom labels to be included with collected metrics and logs. The maximum number of labels that can be specified per check is 5. These are applied, along with the probe-specific labels, to the outgoing metrics. The names and values of the labels cannot be empty, and the maximum length is 32 bytes.

Probes []int

List of probe location IDs where this target will be checked from.

Settings SyntheticMonitoringCheckSettingsArgs

Check settings. Should contain exactly one nested block.

Target string

Hostname to ping.

TenantId int

The tenant ID of the check.

Timeout int

Specifies the maximum running time for the check in milliseconds. The minimum acceptable value is 1 second (1000 ms), and the maximum 10 seconds (10000 ms). Defaults to 3000.

alertSensitivity String

Can be set to none, low, medium, or high to correspond to the check alert levels. Defaults to none.

basicMetricsOnly Boolean

Metrics are reduced by default. Set this to false if you'd like to publish all metrics. We maintain a full list of metrics collected for each. Defaults to true.

enabled Boolean

Whether to enable the check. Defaults to true.

frequency Integer

How often the check runs in milliseconds (the value is not truly a "frequency" but a "period"). The minimum acceptable value is 1 second (1000 ms), and the maximum is 120 seconds (120000 ms). Defaults to 60000.

job String

Name used for job label.

labels Map<String,String>

Custom labels to be included with collected metrics and logs. The maximum number of labels that can be specified per check is 5. These are applied, along with the probe-specific labels, to the outgoing metrics. The names and values of the labels cannot be empty, and the maximum length is 32 bytes.

probes List<Integer>

List of probe location IDs where this target will be checked from.

settings SyntheticMonitoringCheckSettingsArgs

Check settings. Should contain exactly one nested block.

target String

Hostname to ping.

tenantId Integer

The tenant ID of the check.

timeout Integer

Specifies the maximum running time for the check in milliseconds. The minimum acceptable value is 1 second (1000 ms), and the maximum 10 seconds (10000 ms). Defaults to 3000.

alertSensitivity string

Can be set to none, low, medium, or high to correspond to the check alert levels. Defaults to none.

basicMetricsOnly boolean

Metrics are reduced by default. Set this to false if you'd like to publish all metrics. We maintain a full list of metrics collected for each. Defaults to true.

enabled boolean

Whether to enable the check. Defaults to true.

frequency number

How often the check runs in milliseconds (the value is not truly a "frequency" but a "period"). The minimum acceptable value is 1 second (1000 ms), and the maximum is 120 seconds (120000 ms). Defaults to 60000.

job string

Name used for job label.

labels {[key: string]: string}

Custom labels to be included with collected metrics and logs. The maximum number of labels that can be specified per check is 5. These are applied, along with the probe-specific labels, to the outgoing metrics. The names and values of the labels cannot be empty, and the maximum length is 32 bytes.

probes number[]

List of probe location IDs where this target will be checked from.

settings SyntheticMonitoringCheckSettingsArgs

Check settings. Should contain exactly one nested block.

target string

Hostname to ping.

tenantId number

The tenant ID of the check.

timeout number

Specifies the maximum running time for the check in milliseconds. The minimum acceptable value is 1 second (1000 ms), and the maximum 10 seconds (10000 ms). Defaults to 3000.

alert_sensitivity str

Can be set to none, low, medium, or high to correspond to the check alert levels. Defaults to none.

basic_metrics_only bool

Metrics are reduced by default. Set this to false if you'd like to publish all metrics. We maintain a full list of metrics collected for each. Defaults to true.

enabled bool

Whether to enable the check. Defaults to true.

frequency int

How often the check runs in milliseconds (the value is not truly a "frequency" but a "period"). The minimum acceptable value is 1 second (1000 ms), and the maximum is 120 seconds (120000 ms). Defaults to 60000.

job str

Name used for job label.

labels Mapping[str, str]

Custom labels to be included with collected metrics and logs. The maximum number of labels that can be specified per check is 5. These are applied, along with the probe-specific labels, to the outgoing metrics. The names and values of the labels cannot be empty, and the maximum length is 32 bytes.

probes Sequence[int]

List of probe location IDs where this target will be checked from.

settings SyntheticMonitoringCheckSettingsArgs

Check settings. Should contain exactly one nested block.

target str

Hostname to ping.

tenant_id int

The tenant ID of the check.

timeout int

Specifies the maximum running time for the check in milliseconds. The minimum acceptable value is 1 second (1000 ms), and the maximum 10 seconds (10000 ms). Defaults to 3000.

alertSensitivity String

Can be set to none, low, medium, or high to correspond to the check alert levels. Defaults to none.

basicMetricsOnly Boolean

Metrics are reduced by default. Set this to false if you'd like to publish all metrics. We maintain a full list of metrics collected for each. Defaults to true.

enabled Boolean

Whether to enable the check. Defaults to true.

frequency Number

How often the check runs in milliseconds (the value is not truly a "frequency" but a "period"). The minimum acceptable value is 1 second (1000 ms), and the maximum is 120 seconds (120000 ms). Defaults to 60000.

job String

Name used for job label.

labels Map<String>

Custom labels to be included with collected metrics and logs. The maximum number of labels that can be specified per check is 5. These are applied, along with the probe-specific labels, to the outgoing metrics. The names and values of the labels cannot be empty, and the maximum length is 32 bytes.

probes List<Number>

List of probe location IDs where this target will be checked from.

settings Property Map

Check settings. Should contain exactly one nested block.

target String

Hostname to ping.

tenantId Number

The tenant ID of the check.

timeout Number

Specifies the maximum running time for the check in milliseconds. The minimum acceptable value is 1 second (1000 ms), and the maximum 10 seconds (10000 ms). Defaults to 3000.

Supporting Types

SyntheticMonitoringCheckSettings

Dns Lbrlabs.PulumiPackage.Grafana.Inputs.SyntheticMonitoringCheckSettingsDns

Settings for DNS check. The target must be a valid hostname (or IP address for PTR records).

Http Lbrlabs.PulumiPackage.Grafana.Inputs.SyntheticMonitoringCheckSettingsHttp

Settings for HTTP check. The target must be a URL (http or https).

Ping Lbrlabs.PulumiPackage.Grafana.Inputs.SyntheticMonitoringCheckSettingsPing

Settings for ping (ICMP) check. The target must be a valid hostname or IP address.

Tcp Lbrlabs.PulumiPackage.Grafana.Inputs.SyntheticMonitoringCheckSettingsTcp

Settings for TCP check. The target must be of the form <host>:<port>, where the host portion must be a valid hostname or IP address.

Traceroute Lbrlabs.PulumiPackage.Grafana.Inputs.SyntheticMonitoringCheckSettingsTraceroute

Settings for traceroute check. The target must be a valid hostname or IP address

Dns SyntheticMonitoringCheckSettingsDns

Settings for DNS check. The target must be a valid hostname (or IP address for PTR records).

Http SyntheticMonitoringCheckSettingsHttp

Settings for HTTP check. The target must be a URL (http or https).

Ping SyntheticMonitoringCheckSettingsPing

Settings for ping (ICMP) check. The target must be a valid hostname or IP address.

Tcp SyntheticMonitoringCheckSettingsTcp

Settings for TCP check. The target must be of the form <host>:<port>, where the host portion must be a valid hostname or IP address.

Traceroute SyntheticMonitoringCheckSettingsTraceroute

Settings for traceroute check. The target must be a valid hostname or IP address

dns SyntheticMonitoringCheckSettingsDns

Settings for DNS check. The target must be a valid hostname (or IP address for PTR records).

http SyntheticMonitoringCheckSettingsHttp

Settings for HTTP check. The target must be a URL (http or https).

ping SyntheticMonitoringCheckSettingsPing

Settings for ping (ICMP) check. The target must be a valid hostname or IP address.

tcp SyntheticMonitoringCheckSettingsTcp

Settings for TCP check. The target must be of the form <host>:<port>, where the host portion must be a valid hostname or IP address.

traceroute SyntheticMonitoringCheckSettingsTraceroute

Settings for traceroute check. The target must be a valid hostname or IP address

dns SyntheticMonitoringCheckSettingsDns

Settings for DNS check. The target must be a valid hostname (or IP address for PTR records).

http SyntheticMonitoringCheckSettingsHttp

Settings for HTTP check. The target must be a URL (http or https).

ping SyntheticMonitoringCheckSettingsPing

Settings for ping (ICMP) check. The target must be a valid hostname or IP address.

tcp SyntheticMonitoringCheckSettingsTcp

Settings for TCP check. The target must be of the form <host>:<port>, where the host portion must be a valid hostname or IP address.

traceroute SyntheticMonitoringCheckSettingsTraceroute

Settings for traceroute check. The target must be a valid hostname or IP address

dns SyntheticMonitoringCheckSettingsDns

Settings for DNS check. The target must be a valid hostname (or IP address for PTR records).

http SyntheticMonitoringCheckSettingsHttp

Settings for HTTP check. The target must be a URL (http or https).

ping SyntheticMonitoringCheckSettingsPing

Settings for ping (ICMP) check. The target must be a valid hostname or IP address.

tcp SyntheticMonitoringCheckSettingsTcp

Settings for TCP check. The target must be of the form <host>:<port>, where the host portion must be a valid hostname or IP address.

traceroute SyntheticMonitoringCheckSettingsTraceroute

Settings for traceroute check. The target must be a valid hostname or IP address

dns Property Map

Settings for DNS check. The target must be a valid hostname (or IP address for PTR records).

http Property Map

Settings for HTTP check. The target must be a URL (http or https).

ping Property Map

Settings for ping (ICMP) check. The target must be a valid hostname or IP address.

tcp Property Map

Settings for TCP check. The target must be of the form <host>:<port>, where the host portion must be a valid hostname or IP address.

traceroute Property Map

Settings for traceroute check. The target must be a valid hostname or IP address

SyntheticMonitoringCheckSettingsDns

SyntheticMonitoringCheckSettingsDnsValidateAdditionalRr

SyntheticMonitoringCheckSettingsDnsValidateAnswerRrs

SyntheticMonitoringCheckSettingsDnsValidateAuthorityRrs

SyntheticMonitoringCheckSettingsHttp

SyntheticMonitoringCheckSettingsHttpBasicAuth

Password string
Username string
Password string
Username string
password String
username String
password string
username string
password String
username String

SyntheticMonitoringCheckSettingsHttpFailIfHeaderMatchesRegexp

Header string
Regexp string
AllowMissing bool
Header string
Regexp string
AllowMissing bool
header String
regexp String
allowMissing Boolean
header string
regexp string
allowMissing boolean
header String
regexp String
allowMissing Boolean

SyntheticMonitoringCheckSettingsHttpFailIfHeaderNotMatchesRegexp

Header string
Regexp string
AllowMissing bool
Header string
Regexp string
AllowMissing bool
header String
regexp String
allowMissing Boolean
header string
regexp string
allowMissing boolean
header String
regexp String
allowMissing Boolean

SyntheticMonitoringCheckSettingsHttpTlsConfig

caCert String
clientCert String
clientKey String
insecureSkipVerify Boolean
serverName String
caCert string
clientCert string
clientKey string
insecureSkipVerify boolean
serverName string
caCert String
clientCert String
clientKey String
insecureSkipVerify Boolean
serverName String

SyntheticMonitoringCheckSettingsPing

SyntheticMonitoringCheckSettingsTcp

SyntheticMonitoringCheckSettingsTcpQueryResponse

Expect string
Send string
StartTls bool
Expect string
Send string
StartTls bool
expect String
send String
startTls Boolean
expect string
send string
startTls boolean
expect str
send str
start_tls bool
expect String
send String
startTls Boolean

SyntheticMonitoringCheckSettingsTcpTlsConfig

caCert String
clientCert String
clientKey String
insecureSkipVerify Boolean
serverName String
caCert string
clientCert string
clientKey string
insecureSkipVerify boolean
serverName string
caCert String
clientCert String
clientKey String
insecureSkipVerify Boolean
serverName String

SyntheticMonitoringCheckSettingsTraceroute

maxHops Integer
maxUnknownHops Integer
ptrLookup Boolean
maxHops number
maxUnknownHops number
ptrLookup boolean
maxHops Number
maxUnknownHops Number
ptrLookup Boolean

Import

 $ pulumi import grafana:index/syntheticMonitoringCheck:SyntheticMonitoringCheck check {{check-id}}

Package Details

Repository
grafana lbrlabs/pulumi-grafana
License
Apache-2.0
Notes

This Pulumi package is based on the grafana Terraform Provider.