1. Packages
  2. Harness Provider
  3. API Docs
  4. platform
  5. MonitoredService
Harness v0.5.4 published on Wednesday, Feb 12, 2025 by Pulumi

harness.platform.MonitoredService

Explore with Pulumi AI

harness logo
Harness v0.5.4 published on Wednesday, Feb 12, 2025 by Pulumi

    Resource for creating a monitored service.

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as harness from "@pulumi/harness";
    
    //Sample template for Elastic Search Log Health Source
    const example = new harness.platform.MonitoredService("example", {
        orgId: "org_id",
        projectId: "project_id",
        identifier: "identifier",
        request: {
            name: "name",
            type: "Application",
            description: "description",
            serviceRef: "service_ref",
            environmentRef: "environment_ref",
            tags: [
                "foo:bar",
                "bar:foo",
            ],
            healthSources: [{
                name: "name",
                identifier: "identifier",
                type: "ElasticSearch",
                version: "v2",
                spec: JSON.stringify({
                    connectorRef: "connectorRef",
                    queryDefinitions: [
                        {
                            name: "error_4xx",
                            identifier: "error_4xx_id",
                            query: "Bad Request",
                            index: "index",
                            groupName: "Logs_Group",
                            queryParams: {
                                index: "index",
                                serviceInstanceField: "serviceInstanceIdentifier",
                                timeStampIdentifier: "timeStampIdentifier",
                                timeStampFormat: "timeStampFormat",
                                messageIdentifier: "messageIdentifier",
                            },
                        },
                        {
                            name: "error_5xx",
                            identifier: "error_5xx_id",
                            query: "Internal Server Error",
                            index: "index2",
                            groupName: "Logs_Group",
                            queryParams: {
                                index: "index",
                                serviceInstanceField: "serviceInstanceIdentifier",
                                timeStampIdentifier: "timeStampIdentifier",
                                timeStampFormat: "timeStampFormat",
                                messageIdentifier: "messageIdentifier",
                            },
                        },
                    ],
                }),
            }],
            changeSources: [
                {
                    name: "BAC",
                    identifier: "BAC",
                    type: "PagerDuty",
                    enabled: true,
                    spec: JSON.stringify({
                        connectorRef: "account.pd",
                        pagerDutyServiceId: "P0N21OB",
                    }),
                    category: "Alert",
                },
                {
                    name: "FH",
                    identifier: "FH",
                    type: "CustomIncident",
                    enabled: true,
                    spec: JSON.stringify({
                        name: "FH",
                        webhookUrl: "https://harness.io/cv/api/account/sampleAcc/org/sampleOrg/project/sampleProj/webhook/custom-change?monitoredServiceIdentifier=checkout_prod&changeSourceIdentifier=FH",
                        webhookCurlCommand: "curl -X POST -H 'content-type: application/json' -H 'X-Api-Key: sample_api_key' --url 'https://harness.io/cv/api/account/sampleAcc/org/sampleOrg/project/sampleProj/webhook/custom-change?monitoredServiceIdentifier=checkout_prod&changeSourceIdentifier=FH' -d '{ \"eventIdentifier\": \"<string>\" (optional), \"user\": \"user@harness.io\", \"startTime\": timeInMs, \"endTime\": timeInMs, \"eventDetail\": { \"description\": \"<String>\", \"changeEventDetailsLink\": \"urlString\" (optional), \"externalLinkToEntity\": \"urlString\" (optional), \"name\": \"changeEventName\" } }'",
                        type: "Alert",
                    }),
                    category: "Alert",
                },
                {
                    name: "customff",
                    identifier: "customff",
                    type: "CustomFF",
                    enabled: true,
                    category: "FeatureFlag",
                    spec: JSON.stringify({
                        type: "FeatureFlag",
                    }),
                },
                {
                    name: "customdeploy",
                    identifier: "customdeploy",
                    type: "CustomDeploy",
                    enabled: true,
                    category: "Deployment",
                    spec: JSON.stringify({
                        type: "Deployment",
                    }),
                },
                {
                    name: "customincident",
                    identifier: "customincident",
                    type: "CustomIncident",
                    enabled: true,
                    category: "Alert",
                    spec: JSON.stringify({
                        type: "Alert",
                        authorizationToken: "abc",
                    }),
                },
            ],
            notificationRuleRefs: [
                {
                    notificationRuleRef: "notification_rule_ref",
                    enabled: true,
                },
                {
                    notificationRuleRef: "notification_rule_ref1",
                    enabled: false,
                },
            ],
        },
    });
    //Sample template for Sumologic Metrics Health Source
    const example1 = new harness.platform.MonitoredService("example1", {
        orgId: "org_id",
        projectId: "project_id",
        identifier: "identifier",
        request: {
            name: "name",
            type: "Application",
            description: "description",
            serviceRef: "service_ref",
            environmentRef: "environment_ref",
            tags: [
                "foo:bar",
                "bar:foo",
            ],
            healthSources: [{
                name: "sumologicmetrics",
                identifier: "sumo_metric_identifier",
                type: "SumologicMetrics",
                version: "v2",
                spec: JSON.stringify({
                    connectorRef: "connectorRef",
                    queryDefinitions: [
                        {
                            name: "metric_cpu",
                            identifier: "metric_cpu",
                            query: "metric=cpu",
                            groupName: "g1",
                            queryParams: {
                                serviceInstanceField: "_sourcehost",
                            },
                            riskProfile: {
                                riskCategory: "Performance_Other",
                                thresholdTypes: ["ACT_WHEN_HIGHER"],
                            },
                            liveMonitoringEnabled: "true",
                            continuousVerificationEnabled: "true",
                            sliEnabled: "false",
                            metricThresholds: [
                                {
                                    type: "IgnoreThreshold",
                                    spec: {
                                        action: "Ignore",
                                    },
                                    criteria: {
                                        type: "Absolute",
                                        spec: {
                                            greaterThan: 100,
                                        },
                                    },
                                    metricType: "Custom",
                                    metricName: "metric_cpu",
                                },
                                {
                                    type: "FailImmediately",
                                    spec: {
                                        action: "FailAfterOccurrence",
                                        spec: {
                                            count: 2,
                                        },
                                    },
                                    criteria: {
                                        type: "Absolute",
                                        spec: {
                                            greaterThan: 100,
                                        },
                                    },
                                    metricType: "Custom",
                                    metricName: "metric_cpu",
                                },
                            ],
                        },
                        {
                            name: "name2",
                            identifier: "identifier2",
                            groupName: "g2",
                            query: "metric=memory",
                            queryParams: {
                                serviceInstanceField: "_sourcehost",
                            },
                            riskProfile: {
                                riskCategory: "Performance_Other",
                                thresholdTypes: ["ACT_WHEN_HIGHER"],
                            },
                            liveMonitoringEnabled: "false",
                            continuousVerificationEnabled: "false",
                            sliEnabled: "false",
                        },
                    ],
                }),
            }],
        },
    });
    //Sample template for Sumologic Log Health Source
    const example2 = new harness.platform.MonitoredService("example2", {
        orgId: "org_id",
        projectId: "project_id",
        identifier: "identifier",
        request: {
            name: "name",
            type: "Application",
            description: "description",
            serviceRef: "service_ref",
            environmentRef: "environment_ref",
            tags: [
                "foo:bar",
                "bar:foo",
            ],
            healthSources: [{
                name: "sumologic",
                identifier: "sumo_metric_identifier",
                type: "SumologicLogs",
                version: "v2",
                spec: JSON.stringify({
                    connectorRef: "connectorRef",
                    queryDefinitions: [
                        {
                            name: "log1",
                            identifier: "log1",
                            query: "*",
                            groupName: "Logs Group",
                            queryParams: {
                                serviceInstanceField: "_sourcehost",
                            },
                        },
                        {
                            name: "log2",
                            identifier: "identifier2",
                            groupName: "g2",
                            query: "error",
                            queryParams: {
                                serviceInstanceField: "_sourcehost",
                            },
                        },
                    ],
                }),
            }],
        },
    });
    //Sample template for Splunk Signal FX Health Source
    const example3 = new harness.platform.MonitoredService("example3", {
        orgId: "org_id",
        projectId: "project_id",
        identifier: "identifier",
        request: {
            name: "name",
            type: "Application",
            description: "description",
            serviceRef: "service_ref",
            environmentRef: "environment_ref",
            tags: [
                "foo:bar",
                "bar:foo",
            ],
            healthSources: [{
                name: "signalfxmetrics",
                identifier: "signalfxmetrics",
                type: "SplunkSignalFXMetrics",
                version: "v2",
                spec: JSON.stringify({
                    connectorRef: "connectorRef",
                    queryDefinitions: [
                        {
                            name: "metric_infra_cpu",
                            identifier: "metric_infra_cpu",
                            query: "***",
                            groupName: "g",
                            riskProfile: {
                                riskCategory: "Errors",
                                thresholdTypes: [
                                    "ACT_WHEN_HIGHER",
                                    "ACT_WHEN_LOWER",
                                ],
                            },
                            liveMonitoringEnabled: "true",
                            continuousVerificationEnabled: "true",
                            sliEnabled: "false",
                        },
                        {
                            name: "name2",
                            identifier: "identifier2",
                            groupName: "g2",
                            query: "*",
                            riskProfile: {
                                riskCategory: "Performance_Other",
                                thresholdTypes: ["ACT_WHEN_HIGHER"],
                            },
                            liveMonitoringEnabled: "true",
                            continuousVerificationEnabled: "false",
                            sliEnabled: "false",
                            metricThresholds: [
                                {
                                    type: "IgnoreThreshold",
                                    spec: {
                                        action: "Ignore",
                                    },
                                    criteria: {
                                        type: "Absolute",
                                        spec: {
                                            greaterThan: 100,
                                        },
                                    },
                                    metrictype: "Custom",
                                    metricName: "identifier2",
                                },
                                {
                                    type: "FailImmediately",
                                    spec: {
                                        action: "FailAfterOccurrence",
                                        spec: {
                                            count: 2,
                                        },
                                    },
                                    criteria: {
                                        type: "Absolute",
                                        spec: {
                                            greaterThan: 100,
                                        },
                                    },
                                    metricType: "Custom",
                                    metricName: "identifier2",
                                },
                            ],
                        },
                    ],
                }),
            }],
        },
    });
    //Sample template for Grafana Loki Log Health Source
    const example4 = new harness.platform.MonitoredService("example4", {
        orgId: "org_id",
        projectId: "project_id",
        identifier: "identifier",
        request: {
            name: "name",
            type: "Application",
            description: "description",
            serviceRef: "service_ref",
            environmentRef: "environment_ref",
            tags: [
                "foo:bar",
                "bar:foo",
            ],
            healthSources: [{
                name: "Test",
                identifier: "Test",
                type: "GrafanaLokiLogs",
                version: "v2",
                spec: JSON.stringify({
                    connectorRef: "connectorRef",
                    queryDefinitions: [
                        {
                            name: "Demo",
                            identifier: "Demo",
                            query: "{job=~\".+\"}",
                            groupName: "Log_Group",
                            queryParams: {
                                serviceInstanceField: "job",
                            },
                        },
                        {
                            name: "log2",
                            identifier: "identifier2",
                            groupName: "g2",
                            query: "error",
                            queryParams: {
                                serviceInstanceField: "_sourcehost",
                            },
                            liveMonitoringEnabled: "false",
                            continuousVerificationEnabled: "false",
                            sliEnabled: "false",
                        },
                    ],
                }),
            }],
        },
    });
    //Sample template for Azure Metrics Health Source
    const example5 = new harness.platform.MonitoredService("example5", {
        orgId: "org_id",
        projectId: "project_id",
        identifier: "identifier",
        request: {
            name: "name",
            type: "Application",
            description: "description",
            serviceRef: "service_ref",
            environmentRef: "environment_ref",
            tags: [
                "foo:bar",
                "bar:foo",
            ],
            healthSources: [{
                name: "azure metrics verify step",
                identifier: "azure_metrics_verify_step",
                type: "AzureMetrics",
                version: "v2",
                spec: JSON.stringify({
                    connectorRef: "connectorRef",
                    queryDefinitions: [
                        {
                            name: "metric",
                            identifier: "metric",
                            query: "default",
                            groupName: "g1",
                            queryParams: {
                                serviceInstanceField: "host",
                                index: "/subscriptions/12d2db62-5aa9-471d-84bb-faa489b3e319/resourceGroups/srm-test/providers/Microsoft.ContainerService/managedClusters/srm-test",
                                healthSourceMetricName: "cpuUsagePercentage",
                                healthSourceMetricNamespace: "insights.container/nodes",
                                aggregationType: "average",
                            },
                            riskProfile: {
                                riskCategory: "Performance_Other",
                                thresholdTypes: ["ACT_WHEN_HIGHER"],
                            },
                            liveMonitoringEnabled: "true",
                            continuousVerificationEnabled: "true",
                            sliEnabled: "false",
                            metricThresholds: [
                                {
                                    type: "IgnoreThreshold",
                                    spec: {
                                        action: "Ignore",
                                    },
                                    criteria: {
                                        type: "Absolute",
                                        spec: {
                                            greaterThan: 100,
                                        },
                                    },
                                    metrictype: "Custom",
                                    metricName: "metric",
                                },
                                {
                                    type: "FailImmediately",
                                    spec: {
                                        action: "FailAfterOccurrence",
                                        spec: {
                                            count: 2,
                                        },
                                    },
                                    criteria: {
                                        type: "Absolute",
                                        spec: {
                                            greaterThan: 100,
                                        },
                                    },
                                    metricType: "Custom",
                                    metricName: "metric",
                                },
                            ],
                        },
                        {
                            name: "name2",
                            identifier: "identifier2",
                            groupName: "g2",
                            queryParams: {
                                serviceInstanceField: "host",
                                index: "/subscriptions/12d2db62-5aa9-471d-84bb-faa489b3e319/resourceGroups/srm-test/providers/Microsoft.ContainerService/managedClusters/srm-test",
                                healthSourceMetricName: "cpuUsagePercentage",
                                healthSourceMetricNamespace: "insights.container/nodes",
                                aggregationType: "average",
                            },
                            riskProfile: {
                                riskCategory: "Performance_Other",
                                thresholdTypes: ["ACT_WHEN_HIGHER"],
                            },
                            liveMonitoringEnabled: "false",
                            continuousVerificationEnabled: "false",
                            sliEnabled: "false",
                        },
                    ],
                }),
            }],
        },
    });
    //Sample template for Azure Log Health Source
    const example6 = new harness.platform.MonitoredService("example6", {
        orgId: "org_id",
        projectId: "project_id",
        identifier: "identifier",
        request: {
            name: "name",
            type: "Application",
            description: "description",
            serviceRef: "service_ref",
            environmentRef: "environment_ref",
            tags: [
                "foo:bar",
                "bar:foo",
            ],
            healthSources: [{
                name: "Demo azure",
                identifier: "Demo_azure",
                type: "AzureLogs",
                version: "v2",
                spec: JSON.stringify({
                    connectorRef: "connectorRef",
                    queryDefinitions: [{
                        name: "name2",
                        identifier: "identifier2",
                        groupName: "g2",
                        query: "*",
                        queryParams: {
                            serviceInstanceField: "Name",
                            timeStampIdentifier: "StartedTime",
                            messageIdentifier: "Image",
                            index: "/subscriptions/12d2db62-5aa9-471d-84bb-faa489b3e319/resourceGroups/srm-test/providers/Microsoft.ContainerService/managedClusters/srm-test",
                        },
                        liveMonitoringEnabled: "false",
                        continuousVerificationEnabled: "false",
                    }],
                }),
            }],
        },
    });
    //Sample template for Prometheus Metrics Health Source
    const example7 = new harness.platform.MonitoredService("example7", {
        orgId: "org_id",
        projectId: "project_id",
        identifier: "identifier",
        request: {
            name: "name",
            type: "Application",
            description: "description",
            serviceRef: "service_ref",
            environmentRef: "environment_ref",
            tags: [
                "foo:bar",
                "bar:foo",
            ],
            healthSources: [{
                name: "prometheus metrics verify step",
                identifier: "prometheus_metrics",
                type: "Prometheus",
                spec: JSON.stringify({
                    connectorRef: "connectorRef",
                    metricDefinitions: [{
                        identifier: "Prometheus_Metric",
                        metricName: "Prometheus Metric",
                        riskProfile: {
                            riskCategory: "Performance_Other",
                            thresholdTypes: ["ACT_WHEN_HIGHER"],
                        },
                        analysis: {
                            liveMonitoring: {
                                enabled: true,
                            },
                            deploymentVerification: {
                                enabled: true,
                                serviceInstanceFieldName: "pod_name",
                            },
                        },
                        query: "count(up{group=\"cv\",group=\"cv\"})",
                        groupName: "met",
                        isManualQuery: true,
                    }],
                    metricPacks: [{
                        identifier: "Custom",
                        metricThresholds: [
                            {
                                type: "IgnoreThreshold",
                                spec: {
                                    action: "Ignore",
                                },
                                criteria: {
                                    type: "Absolute",
                                    spec: {
                                        greaterThan: 100,
                                    },
                                },
                                metrictype: "Custom",
                                metricName: "Prometheus Metric",
                            },
                            {
                                type: "FailImmediately",
                                spec: {
                                    action: "FailAfterOccurrence",
                                    spec: {
                                        count: 2,
                                    },
                                },
                                criteria: {
                                    type: "Absolute",
                                    spec: {
                                        greaterThan: 100,
                                    },
                                },
                                metricType: "Custom",
                                metricName: "Prometheus Metric",
                            },
                        ],
                    }],
                }),
            }],
        },
    });
    //Sample template for Datadog Metrics Health Source
    const example8 = new harness.platform.MonitoredService("example8", {
        orgId: "org_id",
        projectId: "project_id",
        identifier: "identifier",
        request: {
            name: "name",
            type: "Application",
            description: "description",
            serviceRef: "service_ref",
            environmentRef: "environment_ref",
            tags: [
                "foo:bar",
                "bar:foo",
            ],
            healthSources: [{
                name: "ddm",
                identifier: "ddm",
                type: "DatadogMetrics",
                spec: JSON.stringify({
                    connectorRef: "connectorRef",
                    feature: "Datadog Cloud Metrics",
                    metricDefinitions: [
                        {
                            metricName: "metric",
                            metricPath: "M1",
                            identifier: "metric",
                            query: `avg:kubernetes.cpu.limits{*}.rollup(avg, 60);
    avg:kubernetes.cpu.limits{*}.rollup(avg, 30);
    (a+b)/10`,
                            isManualQuery: true,
                            isCustomCreatedMetric: true,
                            riskProfile: {
                                riskCategory: "Performance_Other",
                                thresholdTypes: ["ACT_WHEN_HIGHER"],
                            },
                            analysis: {
                                liveMonitoring: {
                                    enabled: true,
                                },
                                deploymentVerification: {
                                    enabled: true,
                                    serviceInstanceFieldName: "pod",
                                },
                            },
                        },
                        {
                            metricName: "dashboard_metric_cpu",
                            identifier: "metric_cpu",
                            query: `avg:kubernetes.cpu.limits{*}.rollup(avg, 60);
    avg:kubernetes.cpu.limits{*}.rollup(avg, 30);
    (a+b)/10`,
                            isManualQuery: false,
                            dashboardName: "dashboard",
                            metricPath: "M1",
                            groupingQuery: "avg:kubernetes.cpu.limits{*} by {host}.rollup(avg, 60)",
                            metric: "kubernetes.cpu.limits",
                            aggregation: "avg",
                            isCustomCreatedMetric: true,
                            riskProfile: {
                                riskCategory: "Performance_Other",
                                thresholdTypes: ["ACT_WHEN_HIGHER"],
                            },
                            analysis: {
                                liveMonitoring: {
                                    enabled: true,
                                },
                                deploymentVerification: {
                                    enabled: true,
                                    serviceInstanceFieldName: "pod",
                                },
                            },
                        },
                    ],
                    metricPacks: [{
                        identifier: "Custom",
                        metricThresholds: [
                            {
                                type: "IgnoreThreshold",
                                spec: {
                                    action: "Ignore",
                                },
                                criteria: {
                                    type: "Absolute",
                                    spec: {
                                        greaterThan: 100,
                                    },
                                },
                                metrictype: "Custom",
                                metricName: "metric",
                            },
                            {
                                type: "FailImmediately",
                                spec: {
                                    action: "FailAfterOccurrence",
                                    spec: {
                                        count: 2,
                                    },
                                },
                                criteria: {
                                    type: "Absolute",
                                    spec: {
                                        greaterThan: 100,
                                    },
                                },
                                metricType: "Custom",
                                metricName: "metric",
                            },
                        ],
                    }],
                }),
            }],
        },
    });
    //Sample template for New Relic Metrics Health Source
    const example9 = new harness.platform.MonitoredService("example9", {
        orgId: "org_id",
        projectId: "project_id",
        identifier: "identifier",
        request: {
            name: "name",
            type: "Application",
            description: "description",
            serviceRef: "service_ref",
            environmentRef: "environment_ref",
            tags: [
                "foo:bar",
                "bar:foo",
            ],
            healthSources: [{
                name: "name",
                identifier: "identifier",
                type: "NewRelic",
                spec: JSON.stringify({
                    connectorRef: "account.Newrelicautomation_do_not_delete",
                    feature: "apm",
                    applicationId: "107019083",
                    applicationName: "My Application",
                    metricData: {
                        Performance: true,
                    },
                    metricPacks: [{
                        identifier: "Performance",
                    }],
                    newRelicMetricDefinitions: [{
                        identifier: "New_Relic_Metric",
                        metricName: "New Relic Metric",
                        riskProfile: {
                            riskCategory: "Performance_Other",
                            thresholdTypes: ["ACT_WHEN_HIGHER"],
                        },
                        analysis: {
                            deploymentVerification: {
                                enabled: true,
                            },
                        },
                        groupName: "group1",
                        nrql: "SELECT count(apm.service.instance.count) FROM Metric WHERE appName LIKE 'My Application' TIMESERIES",
                        responseMapping: {
                            metricValueJsonPath: "$.['timeSeries'].[*].['results'].[*].['count']",
                            timestampJsonPath: "$.['timeSeries'].[*].['beginTimeSeconds']",
                        },
                    }],
                    metricPacks: [{
                        identifier: "Custom",
                        metricThresholds: [
                            {
                                type: "IgnoreThreshold",
                                spec: {
                                    action: "Ignore",
                                },
                                criteria: {
                                    type: "Absolute",
                                    spec: {
                                        greaterThan: 100,
                                    },
                                },
                                metricType: "Custom",
                                metricName: "New Relic Metric",
                            },
                            {
                                type: "FailImmediately",
                                spec: {
                                    action: "FailAfterOccurrence",
                                    spec: {
                                        count: 2,
                                    },
                                },
                                criteria: {
                                    type: "Absolute",
                                    spec: {
                                        greaterThan: 100,
                                    },
                                },
                                metricType: "Custom",
                                metricName: "New Relic Metric",
                            },
                        ],
                    }],
                }),
            }],
        },
    });
    
    import pulumi
    import json
    import pulumi_harness as harness
    
    #Sample template for Elastic Search Log Health Source
    example = harness.platform.MonitoredService("example",
        org_id="org_id",
        project_id="project_id",
        identifier="identifier",
        request={
            "name": "name",
            "type": "Application",
            "description": "description",
            "service_ref": "service_ref",
            "environment_ref": "environment_ref",
            "tags": [
                "foo:bar",
                "bar:foo",
            ],
            "health_sources": [{
                "name": "name",
                "identifier": "identifier",
                "type": "ElasticSearch",
                "version": "v2",
                "spec": json.dumps({
                    "connectorRef": "connectorRef",
                    "queryDefinitions": [
                        {
                            "name": "error_4xx",
                            "identifier": "error_4xx_id",
                            "query": "Bad Request",
                            "index": "index",
                            "groupName": "Logs_Group",
                            "queryParams": {
                                "index": "index",
                                "serviceInstanceField": "serviceInstanceIdentifier",
                                "timeStampIdentifier": "timeStampIdentifier",
                                "timeStampFormat": "timeStampFormat",
                                "messageIdentifier": "messageIdentifier",
                            },
                        },
                        {
                            "name": "error_5xx",
                            "identifier": "error_5xx_id",
                            "query": "Internal Server Error",
                            "index": "index2",
                            "groupName": "Logs_Group",
                            "queryParams": {
                                "index": "index",
                                "serviceInstanceField": "serviceInstanceIdentifier",
                                "timeStampIdentifier": "timeStampIdentifier",
                                "timeStampFormat": "timeStampFormat",
                                "messageIdentifier": "messageIdentifier",
                            },
                        },
                    ],
                }),
            }],
            "change_sources": [
                {
                    "name": "BAC",
                    "identifier": "BAC",
                    "type": "PagerDuty",
                    "enabled": True,
                    "spec": json.dumps({
                        "connectorRef": "account.pd",
                        "pagerDutyServiceId": "P0N21OB",
                    }),
                    "category": "Alert",
                },
                {
                    "name": "FH",
                    "identifier": "FH",
                    "type": "CustomIncident",
                    "enabled": True,
                    "spec": json.dumps({
                        "name": "FH",
                        "webhookUrl": "https://harness.io/cv/api/account/sampleAcc/org/sampleOrg/project/sampleProj/webhook/custom-change?monitoredServiceIdentifier=checkout_prod&changeSourceIdentifier=FH",
                        "webhookCurlCommand": "curl -X POST -H 'content-type: application/json' -H 'X-Api-Key: sample_api_key' --url 'https://harness.io/cv/api/account/sampleAcc/org/sampleOrg/project/sampleProj/webhook/custom-change?monitoredServiceIdentifier=checkout_prod&changeSourceIdentifier=FH' -d '{ \"eventIdentifier\": \"<string>\" (optional), \"user\": \"user@harness.io\", \"startTime\": timeInMs, \"endTime\": timeInMs, \"eventDetail\": { \"description\": \"<String>\", \"changeEventDetailsLink\": \"urlString\" (optional), \"externalLinkToEntity\": \"urlString\" (optional), \"name\": \"changeEventName\" } }'",
                        "type": "Alert",
                    }),
                    "category": "Alert",
                },
                {
                    "name": "customff",
                    "identifier": "customff",
                    "type": "CustomFF",
                    "enabled": True,
                    "category": "FeatureFlag",
                    "spec": json.dumps({
                        "type": "FeatureFlag",
                    }),
                },
                {
                    "name": "customdeploy",
                    "identifier": "customdeploy",
                    "type": "CustomDeploy",
                    "enabled": True,
                    "category": "Deployment",
                    "spec": json.dumps({
                        "type": "Deployment",
                    }),
                },
                {
                    "name": "customincident",
                    "identifier": "customincident",
                    "type": "CustomIncident",
                    "enabled": True,
                    "category": "Alert",
                    "spec": json.dumps({
                        "type": "Alert",
                        "authorizationToken": "abc",
                    }),
                },
            ],
            "notification_rule_refs": [
                {
                    "notification_rule_ref": "notification_rule_ref",
                    "enabled": True,
                },
                {
                    "notification_rule_ref": "notification_rule_ref1",
                    "enabled": False,
                },
            ],
        })
    #Sample template for Sumologic Metrics Health Source
    example1 = harness.platform.MonitoredService("example1",
        org_id="org_id",
        project_id="project_id",
        identifier="identifier",
        request={
            "name": "name",
            "type": "Application",
            "description": "description",
            "service_ref": "service_ref",
            "environment_ref": "environment_ref",
            "tags": [
                "foo:bar",
                "bar:foo",
            ],
            "health_sources": [{
                "name": "sumologicmetrics",
                "identifier": "sumo_metric_identifier",
                "type": "SumologicMetrics",
                "version": "v2",
                "spec": json.dumps({
                    "connectorRef": "connectorRef",
                    "queryDefinitions": [
                        {
                            "name": "metric_cpu",
                            "identifier": "metric_cpu",
                            "query": "metric=cpu",
                            "groupName": "g1",
                            "queryParams": {
                                "serviceInstanceField": "_sourcehost",
                            },
                            "riskProfile": {
                                "riskCategory": "Performance_Other",
                                "thresholdTypes": ["ACT_WHEN_HIGHER"],
                            },
                            "liveMonitoringEnabled": "true",
                            "continuousVerificationEnabled": "true",
                            "sliEnabled": "false",
                            "metricThresholds": [
                                {
                                    "type": "IgnoreThreshold",
                                    "spec": {
                                        "action": "Ignore",
                                    },
                                    "criteria": {
                                        "type": "Absolute",
                                        "spec": {
                                            "greaterThan": 100,
                                        },
                                    },
                                    "metricType": "Custom",
                                    "metricName": "metric_cpu",
                                },
                                {
                                    "type": "FailImmediately",
                                    "spec": {
                                        "action": "FailAfterOccurrence",
                                        "spec": {
                                            "count": 2,
                                        },
                                    },
                                    "criteria": {
                                        "type": "Absolute",
                                        "spec": {
                                            "greaterThan": 100,
                                        },
                                    },
                                    "metricType": "Custom",
                                    "metricName": "metric_cpu",
                                },
                            ],
                        },
                        {
                            "name": "name2",
                            "identifier": "identifier2",
                            "groupName": "g2",
                            "query": "metric=memory",
                            "queryParams": {
                                "serviceInstanceField": "_sourcehost",
                            },
                            "riskProfile": {
                                "riskCategory": "Performance_Other",
                                "thresholdTypes": ["ACT_WHEN_HIGHER"],
                            },
                            "liveMonitoringEnabled": "false",
                            "continuousVerificationEnabled": "false",
                            "sliEnabled": "false",
                        },
                    ],
                }),
            }],
        })
    #Sample template for Sumologic Log Health Source
    example2 = harness.platform.MonitoredService("example2",
        org_id="org_id",
        project_id="project_id",
        identifier="identifier",
        request={
            "name": "name",
            "type": "Application",
            "description": "description",
            "service_ref": "service_ref",
            "environment_ref": "environment_ref",
            "tags": [
                "foo:bar",
                "bar:foo",
            ],
            "health_sources": [{
                "name": "sumologic",
                "identifier": "sumo_metric_identifier",
                "type": "SumologicLogs",
                "version": "v2",
                "spec": json.dumps({
                    "connectorRef": "connectorRef",
                    "queryDefinitions": [
                        {
                            "name": "log1",
                            "identifier": "log1",
                            "query": "*",
                            "groupName": "Logs Group",
                            "queryParams": {
                                "serviceInstanceField": "_sourcehost",
                            },
                        },
                        {
                            "name": "log2",
                            "identifier": "identifier2",
                            "groupName": "g2",
                            "query": "error",
                            "queryParams": {
                                "serviceInstanceField": "_sourcehost",
                            },
                        },
                    ],
                }),
            }],
        })
    #Sample template for Splunk Signal FX Health Source
    example3 = harness.platform.MonitoredService("example3",
        org_id="org_id",
        project_id="project_id",
        identifier="identifier",
        request={
            "name": "name",
            "type": "Application",
            "description": "description",
            "service_ref": "service_ref",
            "environment_ref": "environment_ref",
            "tags": [
                "foo:bar",
                "bar:foo",
            ],
            "health_sources": [{
                "name": "signalfxmetrics",
                "identifier": "signalfxmetrics",
                "type": "SplunkSignalFXMetrics",
                "version": "v2",
                "spec": json.dumps({
                    "connectorRef": "connectorRef",
                    "queryDefinitions": [
                        {
                            "name": "metric_infra_cpu",
                            "identifier": "metric_infra_cpu",
                            "query": "***",
                            "groupName": "g",
                            "riskProfile": {
                                "riskCategory": "Errors",
                                "thresholdTypes": [
                                    "ACT_WHEN_HIGHER",
                                    "ACT_WHEN_LOWER",
                                ],
                            },
                            "liveMonitoringEnabled": "true",
                            "continuousVerificationEnabled": "true",
                            "sliEnabled": "false",
                        },
                        {
                            "name": "name2",
                            "identifier": "identifier2",
                            "groupName": "g2",
                            "query": "*",
                            "riskProfile": {
                                "riskCategory": "Performance_Other",
                                "thresholdTypes": ["ACT_WHEN_HIGHER"],
                            },
                            "liveMonitoringEnabled": "true",
                            "continuousVerificationEnabled": "false",
                            "sliEnabled": "false",
                            "metricThresholds": [
                                {
                                    "type": "IgnoreThreshold",
                                    "spec": {
                                        "action": "Ignore",
                                    },
                                    "criteria": {
                                        "type": "Absolute",
                                        "spec": {
                                            "greaterThan": 100,
                                        },
                                    },
                                    "metrictype": "Custom",
                                    "metricName": "identifier2",
                                },
                                {
                                    "type": "FailImmediately",
                                    "spec": {
                                        "action": "FailAfterOccurrence",
                                        "spec": {
                                            "count": 2,
                                        },
                                    },
                                    "criteria": {
                                        "type": "Absolute",
                                        "spec": {
                                            "greaterThan": 100,
                                        },
                                    },
                                    "metricType": "Custom",
                                    "metricName": "identifier2",
                                },
                            ],
                        },
                    ],
                }),
            }],
        })
    #Sample template for Grafana Loki Log Health Source
    example4 = harness.platform.MonitoredService("example4",
        org_id="org_id",
        project_id="project_id",
        identifier="identifier",
        request={
            "name": "name",
            "type": "Application",
            "description": "description",
            "service_ref": "service_ref",
            "environment_ref": "environment_ref",
            "tags": [
                "foo:bar",
                "bar:foo",
            ],
            "health_sources": [{
                "name": "Test",
                "identifier": "Test",
                "type": "GrafanaLokiLogs",
                "version": "v2",
                "spec": json.dumps({
                    "connectorRef": "connectorRef",
                    "queryDefinitions": [
                        {
                            "name": "Demo",
                            "identifier": "Demo",
                            "query": "{job=~\".+\"}",
                            "groupName": "Log_Group",
                            "queryParams": {
                                "serviceInstanceField": "job",
                            },
                        },
                        {
                            "name": "log2",
                            "identifier": "identifier2",
                            "groupName": "g2",
                            "query": "error",
                            "queryParams": {
                                "serviceInstanceField": "_sourcehost",
                            },
                            "liveMonitoringEnabled": "false",
                            "continuousVerificationEnabled": "false",
                            "sliEnabled": "false",
                        },
                    ],
                }),
            }],
        })
    #Sample template for Azure Metrics Health Source
    example5 = harness.platform.MonitoredService("example5",
        org_id="org_id",
        project_id="project_id",
        identifier="identifier",
        request={
            "name": "name",
            "type": "Application",
            "description": "description",
            "service_ref": "service_ref",
            "environment_ref": "environment_ref",
            "tags": [
                "foo:bar",
                "bar:foo",
            ],
            "health_sources": [{
                "name": "azure metrics verify step",
                "identifier": "azure_metrics_verify_step",
                "type": "AzureMetrics",
                "version": "v2",
                "spec": json.dumps({
                    "connectorRef": "connectorRef",
                    "queryDefinitions": [
                        {
                            "name": "metric",
                            "identifier": "metric",
                            "query": "default",
                            "groupName": "g1",
                            "queryParams": {
                                "serviceInstanceField": "host",
                                "index": "/subscriptions/12d2db62-5aa9-471d-84bb-faa489b3e319/resourceGroups/srm-test/providers/Microsoft.ContainerService/managedClusters/srm-test",
                                "healthSourceMetricName": "cpuUsagePercentage",
                                "healthSourceMetricNamespace": "insights.container/nodes",
                                "aggregationType": "average",
                            },
                            "riskProfile": {
                                "riskCategory": "Performance_Other",
                                "thresholdTypes": ["ACT_WHEN_HIGHER"],
                            },
                            "liveMonitoringEnabled": "true",
                            "continuousVerificationEnabled": "true",
                            "sliEnabled": "false",
                            "metricThresholds": [
                                {
                                    "type": "IgnoreThreshold",
                                    "spec": {
                                        "action": "Ignore",
                                    },
                                    "criteria": {
                                        "type": "Absolute",
                                        "spec": {
                                            "greaterThan": 100,
                                        },
                                    },
                                    "metrictype": "Custom",
                                    "metricName": "metric",
                                },
                                {
                                    "type": "FailImmediately",
                                    "spec": {
                                        "action": "FailAfterOccurrence",
                                        "spec": {
                                            "count": 2,
                                        },
                                    },
                                    "criteria": {
                                        "type": "Absolute",
                                        "spec": {
                                            "greaterThan": 100,
                                        },
                                    },
                                    "metricType": "Custom",
                                    "metricName": "metric",
                                },
                            ],
                        },
                        {
                            "name": "name2",
                            "identifier": "identifier2",
                            "groupName": "g2",
                            "queryParams": {
                                "serviceInstanceField": "host",
                                "index": "/subscriptions/12d2db62-5aa9-471d-84bb-faa489b3e319/resourceGroups/srm-test/providers/Microsoft.ContainerService/managedClusters/srm-test",
                                "healthSourceMetricName": "cpuUsagePercentage",
                                "healthSourceMetricNamespace": "insights.container/nodes",
                                "aggregationType": "average",
                            },
                            "riskProfile": {
                                "riskCategory": "Performance_Other",
                                "thresholdTypes": ["ACT_WHEN_HIGHER"],
                            },
                            "liveMonitoringEnabled": "false",
                            "continuousVerificationEnabled": "false",
                            "sliEnabled": "false",
                        },
                    ],
                }),
            }],
        })
    #Sample template for Azure Log Health Source
    example6 = harness.platform.MonitoredService("example6",
        org_id="org_id",
        project_id="project_id",
        identifier="identifier",
        request={
            "name": "name",
            "type": "Application",
            "description": "description",
            "service_ref": "service_ref",
            "environment_ref": "environment_ref",
            "tags": [
                "foo:bar",
                "bar:foo",
            ],
            "health_sources": [{
                "name": "Demo azure",
                "identifier": "Demo_azure",
                "type": "AzureLogs",
                "version": "v2",
                "spec": json.dumps({
                    "connectorRef": "connectorRef",
                    "queryDefinitions": [{
                        "name": "name2",
                        "identifier": "identifier2",
                        "groupName": "g2",
                        "query": "*",
                        "queryParams": {
                            "serviceInstanceField": "Name",
                            "timeStampIdentifier": "StartedTime",
                            "messageIdentifier": "Image",
                            "index": "/subscriptions/12d2db62-5aa9-471d-84bb-faa489b3e319/resourceGroups/srm-test/providers/Microsoft.ContainerService/managedClusters/srm-test",
                        },
                        "liveMonitoringEnabled": "false",
                        "continuousVerificationEnabled": "false",
                    }],
                }),
            }],
        })
    #Sample template for Prometheus Metrics Health Source
    example7 = harness.platform.MonitoredService("example7",
        org_id="org_id",
        project_id="project_id",
        identifier="identifier",
        request={
            "name": "name",
            "type": "Application",
            "description": "description",
            "service_ref": "service_ref",
            "environment_ref": "environment_ref",
            "tags": [
                "foo:bar",
                "bar:foo",
            ],
            "health_sources": [{
                "name": "prometheus metrics verify step",
                "identifier": "prometheus_metrics",
                "type": "Prometheus",
                "spec": json.dumps({
                    "connectorRef": "connectorRef",
                    "metricDefinitions": [{
                        "identifier": "Prometheus_Metric",
                        "metricName": "Prometheus Metric",
                        "riskProfile": {
                            "riskCategory": "Performance_Other",
                            "thresholdTypes": ["ACT_WHEN_HIGHER"],
                        },
                        "analysis": {
                            "liveMonitoring": {
                                "enabled": True,
                            },
                            "deploymentVerification": {
                                "enabled": True,
                                "serviceInstanceFieldName": "pod_name",
                            },
                        },
                        "query": "count(up{group=\"cv\",group=\"cv\"})",
                        "groupName": "met",
                        "isManualQuery": True,
                    }],
                    "metricPacks": [{
                        "identifier": "Custom",
                        "metricThresholds": [
                            {
                                "type": "IgnoreThreshold",
                                "spec": {
                                    "action": "Ignore",
                                },
                                "criteria": {
                                    "type": "Absolute",
                                    "spec": {
                                        "greaterThan": 100,
                                    },
                                },
                                "metrictype": "Custom",
                                "metricName": "Prometheus Metric",
                            },
                            {
                                "type": "FailImmediately",
                                "spec": {
                                    "action": "FailAfterOccurrence",
                                    "spec": {
                                        "count": 2,
                                    },
                                },
                                "criteria": {
                                    "type": "Absolute",
                                    "spec": {
                                        "greaterThan": 100,
                                    },
                                },
                                "metricType": "Custom",
                                "metricName": "Prometheus Metric",
                            },
                        ],
                    }],
                }),
            }],
        })
    #Sample template for Datadog Metrics Health Source
    example8 = harness.platform.MonitoredService("example8",
        org_id="org_id",
        project_id="project_id",
        identifier="identifier",
        request={
            "name": "name",
            "type": "Application",
            "description": "description",
            "service_ref": "service_ref",
            "environment_ref": "environment_ref",
            "tags": [
                "foo:bar",
                "bar:foo",
            ],
            "health_sources": [{
                "name": "ddm",
                "identifier": "ddm",
                "type": "DatadogMetrics",
                "spec": json.dumps({
                    "connectorRef": "connectorRef",
                    "feature": "Datadog Cloud Metrics",
                    "metricDefinitions": [
                        {
                            "metricName": "metric",
                            "metricPath": "M1",
                            "identifier": "metric",
                            "query": """avg:kubernetes.cpu.limits{*}.rollup(avg, 60);
    avg:kubernetes.cpu.limits{*}.rollup(avg, 30);
    (a+b)/10""",
                            "isManualQuery": True,
                            "isCustomCreatedMetric": True,
                            "riskProfile": {
                                "riskCategory": "Performance_Other",
                                "thresholdTypes": ["ACT_WHEN_HIGHER"],
                            },
                            "analysis": {
                                "liveMonitoring": {
                                    "enabled": True,
                                },
                                "deploymentVerification": {
                                    "enabled": True,
                                    "serviceInstanceFieldName": "pod",
                                },
                            },
                        },
                        {
                            "metricName": "dashboard_metric_cpu",
                            "identifier": "metric_cpu",
                            "query": """avg:kubernetes.cpu.limits{*}.rollup(avg, 60);
    avg:kubernetes.cpu.limits{*}.rollup(avg, 30);
    (a+b)/10""",
                            "isManualQuery": False,
                            "dashboardName": "dashboard",
                            "metricPath": "M1",
                            "groupingQuery": "avg:kubernetes.cpu.limits{*} by {host}.rollup(avg, 60)",
                            "metric": "kubernetes.cpu.limits",
                            "aggregation": "avg",
                            "isCustomCreatedMetric": True,
                            "riskProfile": {
                                "riskCategory": "Performance_Other",
                                "thresholdTypes": ["ACT_WHEN_HIGHER"],
                            },
                            "analysis": {
                                "liveMonitoring": {
                                    "enabled": True,
                                },
                                "deploymentVerification": {
                                    "enabled": True,
                                    "serviceInstanceFieldName": "pod",
                                },
                            },
                        },
                    ],
                    "metricPacks": [{
                        "identifier": "Custom",
                        "metricThresholds": [
                            {
                                "type": "IgnoreThreshold",
                                "spec": {
                                    "action": "Ignore",
                                },
                                "criteria": {
                                    "type": "Absolute",
                                    "spec": {
                                        "greaterThan": 100,
                                    },
                                },
                                "metrictype": "Custom",
                                "metricName": "metric",
                            },
                            {
                                "type": "FailImmediately",
                                "spec": {
                                    "action": "FailAfterOccurrence",
                                    "spec": {
                                        "count": 2,
                                    },
                                },
                                "criteria": {
                                    "type": "Absolute",
                                    "spec": {
                                        "greaterThan": 100,
                                    },
                                },
                                "metricType": "Custom",
                                "metricName": "metric",
                            },
                        ],
                    }],
                }),
            }],
        })
    #Sample template for New Relic Metrics Health Source
    example9 = harness.platform.MonitoredService("example9",
        org_id="org_id",
        project_id="project_id",
        identifier="identifier",
        request={
            "name": "name",
            "type": "Application",
            "description": "description",
            "service_ref": "service_ref",
            "environment_ref": "environment_ref",
            "tags": [
                "foo:bar",
                "bar:foo",
            ],
            "health_sources": [{
                "name": "name",
                "identifier": "identifier",
                "type": "NewRelic",
                "spec": json.dumps({
                    "connectorRef": "account.Newrelicautomation_do_not_delete",
                    "feature": "apm",
                    "applicationId": "107019083",
                    "applicationName": "My Application",
                    "metricData": {
                        "Performance": True,
                    },
                    "metricPacks": [{
                        "identifier": "Performance",
                    }],
                    "newRelicMetricDefinitions": [{
                        "identifier": "New_Relic_Metric",
                        "metricName": "New Relic Metric",
                        "riskProfile": {
                            "riskCategory": "Performance_Other",
                            "thresholdTypes": ["ACT_WHEN_HIGHER"],
                        },
                        "analysis": {
                            "deploymentVerification": {
                                "enabled": True,
                            },
                        },
                        "groupName": "group1",
                        "nrql": "SELECT count(apm.service.instance.count) FROM Metric WHERE appName LIKE 'My Application' TIMESERIES",
                        "responseMapping": {
                            "metricValueJsonPath": "$.['timeSeries'].[*].['results'].[*].['count']",
                            "timestampJsonPath": "$.['timeSeries'].[*].['beginTimeSeconds']",
                        },
                    }],
                    "metricPacks": [{
                        "identifier": "Custom",
                        "metricThresholds": [
                            {
                                "type": "IgnoreThreshold",
                                "spec": {
                                    "action": "Ignore",
                                },
                                "criteria": {
                                    "type": "Absolute",
                                    "spec": {
                                        "greaterThan": 100,
                                    },
                                },
                                "metricType": "Custom",
                                "metricName": "New Relic Metric",
                            },
                            {
                                "type": "FailImmediately",
                                "spec": {
                                    "action": "FailAfterOccurrence",
                                    "spec": {
                                        "count": 2,
                                    },
                                },
                                "criteria": {
                                    "type": "Absolute",
                                    "spec": {
                                        "greaterThan": 100,
                                    },
                                },
                                "metricType": "Custom",
                                "metricName": "New Relic Metric",
                            },
                        ],
                    }],
                }),
            }],
        })
    
    package main
    
    import (
    	"encoding/json"
    
    	"github.com/pulumi/pulumi-harness/sdk/go/harness/platform"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		tmpJSON0, err := json.Marshal(map[string]interface{}{
    			"connectorRef": "connectorRef",
    			"queryDefinitions": []map[string]interface{}{
    				map[string]interface{}{
    					"name":       "error_4xx",
    					"identifier": "error_4xx_id",
    					"query":      "Bad Request",
    					"index":      "index",
    					"groupName":  "Logs_Group",
    					"queryParams": map[string]interface{}{
    						"index":                "index",
    						"serviceInstanceField": "serviceInstanceIdentifier",
    						"timeStampIdentifier":  "timeStampIdentifier",
    						"timeStampFormat":      "timeStampFormat",
    						"messageIdentifier":    "messageIdentifier",
    					},
    				},
    				map[string]interface{}{
    					"name":       "error_5xx",
    					"identifier": "error_5xx_id",
    					"query":      "Internal Server Error",
    					"index":      "index2",
    					"groupName":  "Logs_Group",
    					"queryParams": map[string]interface{}{
    						"index":                "index",
    						"serviceInstanceField": "serviceInstanceIdentifier",
    						"timeStampIdentifier":  "timeStampIdentifier",
    						"timeStampFormat":      "timeStampFormat",
    						"messageIdentifier":    "messageIdentifier",
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		json0 := string(tmpJSON0)
    		tmpJSON1, err := json.Marshal(map[string]interface{}{
    			"connectorRef":       "account.pd",
    			"pagerDutyServiceId": "P0N21OB",
    		})
    		if err != nil {
    			return err
    		}
    		json1 := string(tmpJSON1)
    		tmpJSON2, err := json.Marshal(map[string]interface{}{
    			"name":               "FH",
    			"webhookUrl":         "https://harness.io/cv/api/account/sampleAcc/org/sampleOrg/project/sampleProj/webhook/custom-change?monitoredServiceIdentifier=checkout_prod&changeSourceIdentifier=FH",
    			"webhookCurlCommand": "curl -X POST -H 'content-type: application/json' -H 'X-Api-Key: sample_api_key' --url 'https://harness.io/cv/api/account/sampleAcc/org/sampleOrg/project/sampleProj/webhook/custom-change?monitoredServiceIdentifier=checkout_prod&changeSourceIdentifier=FH' -d '{ \"eventIdentifier\": \"<string>\" (optional), \"user\": \"user@harness.io\", \"startTime\": timeInMs, \"endTime\": timeInMs, \"eventDetail\": { \"description\": \"<String>\", \"changeEventDetailsLink\": \"urlString\" (optional), \"externalLinkToEntity\": \"urlString\" (optional), \"name\": \"changeEventName\" } }'",
    			"type":               "Alert",
    		})
    		if err != nil {
    			return err
    		}
    		json2 := string(tmpJSON2)
    		tmpJSON3, err := json.Marshal(map[string]interface{}{
    			"type": "FeatureFlag",
    		})
    		if err != nil {
    			return err
    		}
    		json3 := string(tmpJSON3)
    		tmpJSON4, err := json.Marshal(map[string]interface{}{
    			"type": "Deployment",
    		})
    		if err != nil {
    			return err
    		}
    		json4 := string(tmpJSON4)
    		tmpJSON5, err := json.Marshal(map[string]interface{}{
    			"type":               "Alert",
    			"authorizationToken": "abc",
    		})
    		if err != nil {
    			return err
    		}
    		json5 := string(tmpJSON5)
    		// Sample template for Elastic Search Log Health Source
    		_, err = platform.NewMonitoredService(ctx, "example", &platform.MonitoredServiceArgs{
    			OrgId:      pulumi.String("org_id"),
    			ProjectId:  pulumi.String("project_id"),
    			Identifier: pulumi.String("identifier"),
    			Request: &platform.MonitoredServiceRequestArgs{
    				Name:           pulumi.String("name"),
    				Type:           pulumi.String("Application"),
    				Description:    pulumi.String("description"),
    				ServiceRef:     pulumi.String("service_ref"),
    				EnvironmentRef: pulumi.String("environment_ref"),
    				Tags: pulumi.StringArray{
    					pulumi.String("foo:bar"),
    					pulumi.String("bar:foo"),
    				},
    				HealthSources: platform.MonitoredServiceRequestHealthSourceArray{
    					&platform.MonitoredServiceRequestHealthSourceArgs{
    						Name:       pulumi.String("name"),
    						Identifier: pulumi.String("identifier"),
    						Type:       pulumi.String("ElasticSearch"),
    						Version:    pulumi.String("v2"),
    						Spec:       pulumi.String(json0),
    					},
    				},
    				ChangeSources: platform.MonitoredServiceRequestChangeSourceArray{
    					&platform.MonitoredServiceRequestChangeSourceArgs{
    						Name:       pulumi.String("BAC"),
    						Identifier: pulumi.String("BAC"),
    						Type:       pulumi.String("PagerDuty"),
    						Enabled:    pulumi.Bool(true),
    						Spec:       pulumi.String(json1),
    						Category:   pulumi.String("Alert"),
    					},
    					&platform.MonitoredServiceRequestChangeSourceArgs{
    						Name:       pulumi.String("FH"),
    						Identifier: pulumi.String("FH"),
    						Type:       pulumi.String("CustomIncident"),
    						Enabled:    pulumi.Bool(true),
    						Spec:       pulumi.String(json2),
    						Category:   pulumi.String("Alert"),
    					},
    					&platform.MonitoredServiceRequestChangeSourceArgs{
    						Name:       pulumi.String("customff"),
    						Identifier: pulumi.String("customff"),
    						Type:       pulumi.String("CustomFF"),
    						Enabled:    pulumi.Bool(true),
    						Category:   pulumi.String("FeatureFlag"),
    						Spec:       pulumi.String(json3),
    					},
    					&platform.MonitoredServiceRequestChangeSourceArgs{
    						Name:       pulumi.String("customdeploy"),
    						Identifier: pulumi.String("customdeploy"),
    						Type:       pulumi.String("CustomDeploy"),
    						Enabled:    pulumi.Bool(true),
    						Category:   pulumi.String("Deployment"),
    						Spec:       pulumi.String(json4),
    					},
    					&platform.MonitoredServiceRequestChangeSourceArgs{
    						Name:       pulumi.String("customincident"),
    						Identifier: pulumi.String("customincident"),
    						Type:       pulumi.String("CustomIncident"),
    						Enabled:    pulumi.Bool(true),
    						Category:   pulumi.String("Alert"),
    						Spec:       pulumi.String(json5),
    					},
    				},
    				NotificationRuleRefs: platform.MonitoredServiceRequestNotificationRuleRefArray{
    					&platform.MonitoredServiceRequestNotificationRuleRefArgs{
    						NotificationRuleRef: pulumi.String("notification_rule_ref"),
    						Enabled:             pulumi.Bool(true),
    					},
    					&platform.MonitoredServiceRequestNotificationRuleRefArgs{
    						NotificationRuleRef: pulumi.String("notification_rule_ref1"),
    						Enabled:             pulumi.Bool(false),
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		tmpJSON6, err := json.Marshal(map[string]interface{}{
    			"connectorRef": "connectorRef",
    			"queryDefinitions": []interface{}{
    				map[string]interface{}{
    					"name":       "metric_cpu",
    					"identifier": "metric_cpu",
    					"query":      "metric=cpu",
    					"groupName":  "g1",
    					"queryParams": map[string]interface{}{
    						"serviceInstanceField": "_sourcehost",
    					},
    					"riskProfile": map[string]interface{}{
    						"riskCategory": "Performance_Other",
    						"thresholdTypes": []string{
    							"ACT_WHEN_HIGHER",
    						},
    					},
    					"liveMonitoringEnabled":         "true",
    					"continuousVerificationEnabled": "true",
    					"sliEnabled":                    "false",
    					"metricThresholds": []map[string]interface{}{
    						map[string]interface{}{
    							"type": "IgnoreThreshold",
    							"spec": map[string]interface{}{
    								"action": "Ignore",
    							},
    							"criteria": map[string]interface{}{
    								"type": "Absolute",
    								"spec": map[string]interface{}{
    									"greaterThan": 100,
    								},
    							},
    							"metricType": "Custom",
    							"metricName": "metric_cpu",
    						},
    						map[string]interface{}{
    							"type": "FailImmediately",
    							"spec": map[string]interface{}{
    								"action": "FailAfterOccurrence",
    								"spec": map[string]interface{}{
    									"count": 2,
    								},
    							},
    							"criteria": map[string]interface{}{
    								"type": "Absolute",
    								"spec": map[string]interface{}{
    									"greaterThan": 100,
    								},
    							},
    							"metricType": "Custom",
    							"metricName": "metric_cpu",
    						},
    					},
    				},
    				map[string]interface{}{
    					"name":       "name2",
    					"identifier": "identifier2",
    					"groupName":  "g2",
    					"query":      "metric=memory",
    					"queryParams": map[string]interface{}{
    						"serviceInstanceField": "_sourcehost",
    					},
    					"riskProfile": map[string]interface{}{
    						"riskCategory": "Performance_Other",
    						"thresholdTypes": []string{
    							"ACT_WHEN_HIGHER",
    						},
    					},
    					"liveMonitoringEnabled":         "false",
    					"continuousVerificationEnabled": "false",
    					"sliEnabled":                    "false",
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		json6 := string(tmpJSON6)
    		// Sample template for Sumologic Metrics Health Source
    		_, err = platform.NewMonitoredService(ctx, "example1", &platform.MonitoredServiceArgs{
    			OrgId:      pulumi.String("org_id"),
    			ProjectId:  pulumi.String("project_id"),
    			Identifier: pulumi.String("identifier"),
    			Request: &platform.MonitoredServiceRequestArgs{
    				Name:           pulumi.String("name"),
    				Type:           pulumi.String("Application"),
    				Description:    pulumi.String("description"),
    				ServiceRef:     pulumi.String("service_ref"),
    				EnvironmentRef: pulumi.String("environment_ref"),
    				Tags: pulumi.StringArray{
    					pulumi.String("foo:bar"),
    					pulumi.String("bar:foo"),
    				},
    				HealthSources: platform.MonitoredServiceRequestHealthSourceArray{
    					&platform.MonitoredServiceRequestHealthSourceArgs{
    						Name:       pulumi.String("sumologicmetrics"),
    						Identifier: pulumi.String("sumo_metric_identifier"),
    						Type:       pulumi.String("SumologicMetrics"),
    						Version:    pulumi.String("v2"),
    						Spec:       pulumi.String(json6),
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		tmpJSON7, err := json.Marshal(map[string]interface{}{
    			"connectorRef": "connectorRef",
    			"queryDefinitions": []map[string]interface{}{
    				map[string]interface{}{
    					"name":       "log1",
    					"identifier": "log1",
    					"query":      "*",
    					"groupName":  "Logs Group",
    					"queryParams": map[string]interface{}{
    						"serviceInstanceField": "_sourcehost",
    					},
    				},
    				map[string]interface{}{
    					"name":       "log2",
    					"identifier": "identifier2",
    					"groupName":  "g2",
    					"query":      "error",
    					"queryParams": map[string]interface{}{
    						"serviceInstanceField": "_sourcehost",
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		json7 := string(tmpJSON7)
    		// Sample template for Sumologic Log Health Source
    		_, err = platform.NewMonitoredService(ctx, "example2", &platform.MonitoredServiceArgs{
    			OrgId:      pulumi.String("org_id"),
    			ProjectId:  pulumi.String("project_id"),
    			Identifier: pulumi.String("identifier"),
    			Request: &platform.MonitoredServiceRequestArgs{
    				Name:           pulumi.String("name"),
    				Type:           pulumi.String("Application"),
    				Description:    pulumi.String("description"),
    				ServiceRef:     pulumi.String("service_ref"),
    				EnvironmentRef: pulumi.String("environment_ref"),
    				Tags: pulumi.StringArray{
    					pulumi.String("foo:bar"),
    					pulumi.String("bar:foo"),
    				},
    				HealthSources: platform.MonitoredServiceRequestHealthSourceArray{
    					&platform.MonitoredServiceRequestHealthSourceArgs{
    						Name:       pulumi.String("sumologic"),
    						Identifier: pulumi.String("sumo_metric_identifier"),
    						Type:       pulumi.String("SumologicLogs"),
    						Version:    pulumi.String("v2"),
    						Spec:       pulumi.String(json7),
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		tmpJSON8, err := json.Marshal(map[string]interface{}{
    			"connectorRef": "connectorRef",
    			"queryDefinitions": []interface{}{
    				map[string]interface{}{
    					"name":       "metric_infra_cpu",
    					"identifier": "metric_infra_cpu",
    					"query":      "***",
    					"groupName":  "g",
    					"riskProfile": map[string]interface{}{
    						"riskCategory": "Errors",
    						"thresholdTypes": []string{
    							"ACT_WHEN_HIGHER",
    							"ACT_WHEN_LOWER",
    						},
    					},
    					"liveMonitoringEnabled":         "true",
    					"continuousVerificationEnabled": "true",
    					"sliEnabled":                    "false",
    				},
    				map[string]interface{}{
    					"name":       "name2",
    					"identifier": "identifier2",
    					"groupName":  "g2",
    					"query":      "*",
    					"riskProfile": map[string]interface{}{
    						"riskCategory": "Performance_Other",
    						"thresholdTypes": []string{
    							"ACT_WHEN_HIGHER",
    						},
    					},
    					"liveMonitoringEnabled":         "true",
    					"continuousVerificationEnabled": "false",
    					"sliEnabled":                    "false",
    					"metricThresholds": []interface{}{
    						map[string]interface{}{
    							"type": "IgnoreThreshold",
    							"spec": map[string]interface{}{
    								"action": "Ignore",
    							},
    							"criteria": map[string]interface{}{
    								"type": "Absolute",
    								"spec": map[string]interface{}{
    									"greaterThan": 100,
    								},
    							},
    							"metrictype": "Custom",
    							"metricName": "identifier2",
    						},
    						map[string]interface{}{
    							"type": "FailImmediately",
    							"spec": map[string]interface{}{
    								"action": "FailAfterOccurrence",
    								"spec": map[string]interface{}{
    									"count": 2,
    								},
    							},
    							"criteria": map[string]interface{}{
    								"type": "Absolute",
    								"spec": map[string]interface{}{
    									"greaterThan": 100,
    								},
    							},
    							"metricType": "Custom",
    							"metricName": "identifier2",
    						},
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		json8 := string(tmpJSON8)
    		// Sample template for Splunk Signal FX Health Source
    		_, err = platform.NewMonitoredService(ctx, "example3", &platform.MonitoredServiceArgs{
    			OrgId:      pulumi.String("org_id"),
    			ProjectId:  pulumi.String("project_id"),
    			Identifier: pulumi.String("identifier"),
    			Request: &platform.MonitoredServiceRequestArgs{
    				Name:           pulumi.String("name"),
    				Type:           pulumi.String("Application"),
    				Description:    pulumi.String("description"),
    				ServiceRef:     pulumi.String("service_ref"),
    				EnvironmentRef: pulumi.String("environment_ref"),
    				Tags: pulumi.StringArray{
    					pulumi.String("foo:bar"),
    					pulumi.String("bar:foo"),
    				},
    				HealthSources: platform.MonitoredServiceRequestHealthSourceArray{
    					&platform.MonitoredServiceRequestHealthSourceArgs{
    						Name:       pulumi.String("signalfxmetrics"),
    						Identifier: pulumi.String("signalfxmetrics"),
    						Type:       pulumi.String("SplunkSignalFXMetrics"),
    						Version:    pulumi.String("v2"),
    						Spec:       pulumi.String(json8),
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		tmpJSON9, err := json.Marshal(map[string]interface{}{
    			"connectorRef": "connectorRef",
    			"queryDefinitions": []map[string]interface{}{
    				map[string]interface{}{
    					"name":       "Demo",
    					"identifier": "Demo",
    					"query":      "{job=~\".+\"}",
    					"groupName":  "Log_Group",
    					"queryParams": map[string]interface{}{
    						"serviceInstanceField": "job",
    					},
    				},
    				map[string]interface{}{
    					"name":       "log2",
    					"identifier": "identifier2",
    					"groupName":  "g2",
    					"query":      "error",
    					"queryParams": map[string]interface{}{
    						"serviceInstanceField": "_sourcehost",
    					},
    					"liveMonitoringEnabled":         "false",
    					"continuousVerificationEnabled": "false",
    					"sliEnabled":                    "false",
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		json9 := string(tmpJSON9)
    		// Sample template for Grafana Loki Log Health Source
    		_, err = platform.NewMonitoredService(ctx, "example4", &platform.MonitoredServiceArgs{
    			OrgId:      pulumi.String("org_id"),
    			ProjectId:  pulumi.String("project_id"),
    			Identifier: pulumi.String("identifier"),
    			Request: &platform.MonitoredServiceRequestArgs{
    				Name:           pulumi.String("name"),
    				Type:           pulumi.String("Application"),
    				Description:    pulumi.String("description"),
    				ServiceRef:     pulumi.String("service_ref"),
    				EnvironmentRef: pulumi.String("environment_ref"),
    				Tags: pulumi.StringArray{
    					pulumi.String("foo:bar"),
    					pulumi.String("bar:foo"),
    				},
    				HealthSources: platform.MonitoredServiceRequestHealthSourceArray{
    					&platform.MonitoredServiceRequestHealthSourceArgs{
    						Name:       pulumi.String("Test"),
    						Identifier: pulumi.String("Test"),
    						Type:       pulumi.String("GrafanaLokiLogs"),
    						Version:    pulumi.String("v2"),
    						Spec:       pulumi.String(json9),
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		tmpJSON10, err := json.Marshal(map[string]interface{}{
    			"connectorRef": "connectorRef",
    			"queryDefinitions": []interface{}{
    				map[string]interface{}{
    					"name":       "metric",
    					"identifier": "metric",
    					"query":      "default",
    					"groupName":  "g1",
    					"queryParams": map[string]interface{}{
    						"serviceInstanceField":        "host",
    						"index":                       "/subscriptions/12d2db62-5aa9-471d-84bb-faa489b3e319/resourceGroups/srm-test/providers/Microsoft.ContainerService/managedClusters/srm-test",
    						"healthSourceMetricName":      "cpuUsagePercentage",
    						"healthSourceMetricNamespace": "insights.container/nodes",
    						"aggregationType":             "average",
    					},
    					"riskProfile": map[string]interface{}{
    						"riskCategory": "Performance_Other",
    						"thresholdTypes": []string{
    							"ACT_WHEN_HIGHER",
    						},
    					},
    					"liveMonitoringEnabled":         "true",
    					"continuousVerificationEnabled": "true",
    					"sliEnabled":                    "false",
    					"metricThresholds": []interface{}{
    						map[string]interface{}{
    							"type": "IgnoreThreshold",
    							"spec": map[string]interface{}{
    								"action": "Ignore",
    							},
    							"criteria": map[string]interface{}{
    								"type": "Absolute",
    								"spec": map[string]interface{}{
    									"greaterThan": 100,
    								},
    							},
    							"metrictype": "Custom",
    							"metricName": "metric",
    						},
    						map[string]interface{}{
    							"type": "FailImmediately",
    							"spec": map[string]interface{}{
    								"action": "FailAfterOccurrence",
    								"spec": map[string]interface{}{
    									"count": 2,
    								},
    							},
    							"criteria": map[string]interface{}{
    								"type": "Absolute",
    								"spec": map[string]interface{}{
    									"greaterThan": 100,
    								},
    							},
    							"metricType": "Custom",
    							"metricName": "metric",
    						},
    					},
    				},
    				map[string]interface{}{
    					"name":       "name2",
    					"identifier": "identifier2",
    					"groupName":  "g2",
    					"queryParams": map[string]interface{}{
    						"serviceInstanceField":        "host",
    						"index":                       "/subscriptions/12d2db62-5aa9-471d-84bb-faa489b3e319/resourceGroups/srm-test/providers/Microsoft.ContainerService/managedClusters/srm-test",
    						"healthSourceMetricName":      "cpuUsagePercentage",
    						"healthSourceMetricNamespace": "insights.container/nodes",
    						"aggregationType":             "average",
    					},
    					"riskProfile": map[string]interface{}{
    						"riskCategory": "Performance_Other",
    						"thresholdTypes": []string{
    							"ACT_WHEN_HIGHER",
    						},
    					},
    					"liveMonitoringEnabled":         "false",
    					"continuousVerificationEnabled": "false",
    					"sliEnabled":                    "false",
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		json10 := string(tmpJSON10)
    		// Sample template for Azure Metrics Health Source
    		_, err = platform.NewMonitoredService(ctx, "example5", &platform.MonitoredServiceArgs{
    			OrgId:      pulumi.String("org_id"),
    			ProjectId:  pulumi.String("project_id"),
    			Identifier: pulumi.String("identifier"),
    			Request: &platform.MonitoredServiceRequestArgs{
    				Name:           pulumi.String("name"),
    				Type:           pulumi.String("Application"),
    				Description:    pulumi.String("description"),
    				ServiceRef:     pulumi.String("service_ref"),
    				EnvironmentRef: pulumi.String("environment_ref"),
    				Tags: pulumi.StringArray{
    					pulumi.String("foo:bar"),
    					pulumi.String("bar:foo"),
    				},
    				HealthSources: platform.MonitoredServiceRequestHealthSourceArray{
    					&platform.MonitoredServiceRequestHealthSourceArgs{
    						Name:       pulumi.String("azure metrics verify step"),
    						Identifier: pulumi.String("azure_metrics_verify_step"),
    						Type:       pulumi.String("AzureMetrics"),
    						Version:    pulumi.String("v2"),
    						Spec:       pulumi.String(json10),
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		tmpJSON11, err := json.Marshal(map[string]interface{}{
    			"connectorRef": "connectorRef",
    			"queryDefinitions": []map[string]interface{}{
    				map[string]interface{}{
    					"name":       "name2",
    					"identifier": "identifier2",
    					"groupName":  "g2",
    					"query":      "*",
    					"queryParams": map[string]interface{}{
    						"serviceInstanceField": "Name",
    						"timeStampIdentifier":  "StartedTime",
    						"messageIdentifier":    "Image",
    						"index":                "/subscriptions/12d2db62-5aa9-471d-84bb-faa489b3e319/resourceGroups/srm-test/providers/Microsoft.ContainerService/managedClusters/srm-test",
    					},
    					"liveMonitoringEnabled":         "false",
    					"continuousVerificationEnabled": "false",
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		json11 := string(tmpJSON11)
    		// Sample template for Azure Log Health Source
    		_, err = platform.NewMonitoredService(ctx, "example6", &platform.MonitoredServiceArgs{
    			OrgId:      pulumi.String("org_id"),
    			ProjectId:  pulumi.String("project_id"),
    			Identifier: pulumi.String("identifier"),
    			Request: &platform.MonitoredServiceRequestArgs{
    				Name:           pulumi.String("name"),
    				Type:           pulumi.String("Application"),
    				Description:    pulumi.String("description"),
    				ServiceRef:     pulumi.String("service_ref"),
    				EnvironmentRef: pulumi.String("environment_ref"),
    				Tags: pulumi.StringArray{
    					pulumi.String("foo:bar"),
    					pulumi.String("bar:foo"),
    				},
    				HealthSources: platform.MonitoredServiceRequestHealthSourceArray{
    					&platform.MonitoredServiceRequestHealthSourceArgs{
    						Name:       pulumi.String("Demo azure"),
    						Identifier: pulumi.String("Demo_azure"),
    						Type:       pulumi.String("AzureLogs"),
    						Version:    pulumi.String("v2"),
    						Spec:       pulumi.String(json11),
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		tmpJSON12, err := json.Marshal(map[string]interface{}{
    			"connectorRef": "connectorRef",
    			"metricDefinitions": []map[string]interface{}{
    				map[string]interface{}{
    					"identifier": "Prometheus_Metric",
    					"metricName": "Prometheus Metric",
    					"riskProfile": map[string]interface{}{
    						"riskCategory": "Performance_Other",
    						"thresholdTypes": []string{
    							"ACT_WHEN_HIGHER",
    						},
    					},
    					"analysis": map[string]interface{}{
    						"liveMonitoring": map[string]interface{}{
    							"enabled": true,
    						},
    						"deploymentVerification": map[string]interface{}{
    							"enabled":                  true,
    							"serviceInstanceFieldName": "pod_name",
    						},
    					},
    					"query":         "count(up{group=\"cv\",group=\"cv\"})",
    					"groupName":     "met",
    					"isManualQuery": true,
    				},
    			},
    			"metricPacks": []map[string]interface{}{
    				map[string]interface{}{
    					"identifier": "Custom",
    					"metricThresholds": []interface{}{
    						map[string]interface{}{
    							"type": "IgnoreThreshold",
    							"spec": map[string]interface{}{
    								"action": "Ignore",
    							},
    							"criteria": map[string]interface{}{
    								"type": "Absolute",
    								"spec": map[string]interface{}{
    									"greaterThan": 100,
    								},
    							},
    							"metrictype": "Custom",
    							"metricName": "Prometheus Metric",
    						},
    						map[string]interface{}{
    							"type": "FailImmediately",
    							"spec": map[string]interface{}{
    								"action": "FailAfterOccurrence",
    								"spec": map[string]interface{}{
    									"count": 2,
    								},
    							},
    							"criteria": map[string]interface{}{
    								"type": "Absolute",
    								"spec": map[string]interface{}{
    									"greaterThan": 100,
    								},
    							},
    							"metricType": "Custom",
    							"metricName": "Prometheus Metric",
    						},
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		json12 := string(tmpJSON12)
    		// Sample template for Prometheus Metrics Health Source
    		_, err = platform.NewMonitoredService(ctx, "example7", &platform.MonitoredServiceArgs{
    			OrgId:      pulumi.String("org_id"),
    			ProjectId:  pulumi.String("project_id"),
    			Identifier: pulumi.String("identifier"),
    			Request: &platform.MonitoredServiceRequestArgs{
    				Name:           pulumi.String("name"),
    				Type:           pulumi.String("Application"),
    				Description:    pulumi.String("description"),
    				ServiceRef:     pulumi.String("service_ref"),
    				EnvironmentRef: pulumi.String("environment_ref"),
    				Tags: pulumi.StringArray{
    					pulumi.String("foo:bar"),
    					pulumi.String("bar:foo"),
    				},
    				HealthSources: platform.MonitoredServiceRequestHealthSourceArray{
    					&platform.MonitoredServiceRequestHealthSourceArgs{
    						Name:       pulumi.String("prometheus metrics verify step"),
    						Identifier: pulumi.String("prometheus_metrics"),
    						Type:       pulumi.String("Prometheus"),
    						Spec:       pulumi.String(json12),
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		tmpJSON13, err := json.Marshal(map[string]interface{}{
    			"connectorRef": "connectorRef",
    			"feature":      "Datadog Cloud Metrics",
    			"metricDefinitions": []interface{}{
    				map[string]interface{}{
    					"metricName":            "metric",
    					"metricPath":            "M1",
    					"identifier":            "metric",
    					"query":                 "avg:kubernetes.cpu.limits{*}.rollup(avg, 60);\navg:kubernetes.cpu.limits{*}.rollup(avg, 30);\n(a+b)/10",
    					"isManualQuery":         true,
    					"isCustomCreatedMetric": true,
    					"riskProfile": map[string]interface{}{
    						"riskCategory": "Performance_Other",
    						"thresholdTypes": []string{
    							"ACT_WHEN_HIGHER",
    						},
    					},
    					"analysis": map[string]interface{}{
    						"liveMonitoring": map[string]interface{}{
    							"enabled": true,
    						},
    						"deploymentVerification": map[string]interface{}{
    							"enabled":                  true,
    							"serviceInstanceFieldName": "pod",
    						},
    					},
    				},
    				map[string]interface{}{
    					"metricName":            "dashboard_metric_cpu",
    					"identifier":            "metric_cpu",
    					"query":                 "avg:kubernetes.cpu.limits{*}.rollup(avg, 60);\navg:kubernetes.cpu.limits{*}.rollup(avg, 30);\n(a+b)/10",
    					"isManualQuery":         false,
    					"dashboardName":         "dashboard",
    					"metricPath":            "M1",
    					"groupingQuery":         "avg:kubernetes.cpu.limits{*} by {host}.rollup(avg, 60)",
    					"metric":                "kubernetes.cpu.limits",
    					"aggregation":           "avg",
    					"isCustomCreatedMetric": true,
    					"riskProfile": map[string]interface{}{
    						"riskCategory": "Performance_Other",
    						"thresholdTypes": []string{
    							"ACT_WHEN_HIGHER",
    						},
    					},
    					"analysis": map[string]interface{}{
    						"liveMonitoring": map[string]interface{}{
    							"enabled": true,
    						},
    						"deploymentVerification": map[string]interface{}{
    							"enabled":                  true,
    							"serviceInstanceFieldName": "pod",
    						},
    					},
    				},
    			},
    			"metricPacks": []map[string]interface{}{
    				map[string]interface{}{
    					"identifier": "Custom",
    					"metricThresholds": []interface{}{
    						map[string]interface{}{
    							"type": "IgnoreThreshold",
    							"spec": map[string]interface{}{
    								"action": "Ignore",
    							},
    							"criteria": map[string]interface{}{
    								"type": "Absolute",
    								"spec": map[string]interface{}{
    									"greaterThan": 100,
    								},
    							},
    							"metrictype": "Custom",
    							"metricName": "metric",
    						},
    						map[string]interface{}{
    							"type": "FailImmediately",
    							"spec": map[string]interface{}{
    								"action": "FailAfterOccurrence",
    								"spec": map[string]interface{}{
    									"count": 2,
    								},
    							},
    							"criteria": map[string]interface{}{
    								"type": "Absolute",
    								"spec": map[string]interface{}{
    									"greaterThan": 100,
    								},
    							},
    							"metricType": "Custom",
    							"metricName": "metric",
    						},
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		json13 := string(tmpJSON13)
    		// Sample template for Datadog Metrics Health Source
    		_, err = platform.NewMonitoredService(ctx, "example8", &platform.MonitoredServiceArgs{
    			OrgId:      pulumi.String("org_id"),
    			ProjectId:  pulumi.String("project_id"),
    			Identifier: pulumi.String("identifier"),
    			Request: &platform.MonitoredServiceRequestArgs{
    				Name:           pulumi.String("name"),
    				Type:           pulumi.String("Application"),
    				Description:    pulumi.String("description"),
    				ServiceRef:     pulumi.String("service_ref"),
    				EnvironmentRef: pulumi.String("environment_ref"),
    				Tags: pulumi.StringArray{
    					pulumi.String("foo:bar"),
    					pulumi.String("bar:foo"),
    				},
    				HealthSources: platform.MonitoredServiceRequestHealthSourceArray{
    					&platform.MonitoredServiceRequestHealthSourceArgs{
    						Name:       pulumi.String("ddm"),
    						Identifier: pulumi.String("ddm"),
    						Type:       pulumi.String("DatadogMetrics"),
    						Spec:       pulumi.String(json13),
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		tmpJSON14, err := json.Marshal(map[string]interface{}{
    			"connectorRef":    "account.Newrelicautomation_do_not_delete",
    			"feature":         "apm",
    			"applicationId":   "107019083",
    			"applicationName": "My Application",
    			"metricData": map[string]interface{}{
    				"Performance": true,
    			},
    			"metricPacks": []map[string]interface{}{
    				map[string]interface{}{
    					"identifier": "Performance",
    				},
    			},
    			"newRelicMetricDefinitions": []map[string]interface{}{
    				map[string]interface{}{
    					"identifier": "New_Relic_Metric",
    					"metricName": "New Relic Metric",
    					"riskProfile": map[string]interface{}{
    						"riskCategory": "Performance_Other",
    						"thresholdTypes": []string{
    							"ACT_WHEN_HIGHER",
    						},
    					},
    					"analysis": map[string]interface{}{
    						"deploymentVerification": map[string]interface{}{
    							"enabled": true,
    						},
    					},
    					"groupName": "group1",
    					"nrql":      "SELECT count(apm.service.instance.count) FROM Metric WHERE appName LIKE 'My Application' TIMESERIES",
    					"responseMapping": map[string]interface{}{
    						"metricValueJsonPath": "$.['timeSeries'].[*].['results'].[*].['count']",
    						"timestampJsonPath":   "$.['timeSeries'].[*].['beginTimeSeconds']",
    					},
    				},
    			},
    			"metricPacks": []map[string]interface{}{
    				map[string]interface{}{
    					"identifier": "Custom",
    					"metricThresholds": []map[string]interface{}{
    						map[string]interface{}{
    							"type": "IgnoreThreshold",
    							"spec": map[string]interface{}{
    								"action": "Ignore",
    							},
    							"criteria": map[string]interface{}{
    								"type": "Absolute",
    								"spec": map[string]interface{}{
    									"greaterThan": 100,
    								},
    							},
    							"metricType": "Custom",
    							"metricName": "New Relic Metric",
    						},
    						map[string]interface{}{
    							"type": "FailImmediately",
    							"spec": map[string]interface{}{
    								"action": "FailAfterOccurrence",
    								"spec": map[string]interface{}{
    									"count": 2,
    								},
    							},
    							"criteria": map[string]interface{}{
    								"type": "Absolute",
    								"spec": map[string]interface{}{
    									"greaterThan": 100,
    								},
    							},
    							"metricType": "Custom",
    							"metricName": "New Relic Metric",
    						},
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		json14 := string(tmpJSON14)
    		// Sample template for New Relic Metrics Health Source
    		_, err = platform.NewMonitoredService(ctx, "example9", &platform.MonitoredServiceArgs{
    			OrgId:      pulumi.String("org_id"),
    			ProjectId:  pulumi.String("project_id"),
    			Identifier: pulumi.String("identifier"),
    			Request: &platform.MonitoredServiceRequestArgs{
    				Name:           pulumi.String("name"),
    				Type:           pulumi.String("Application"),
    				Description:    pulumi.String("description"),
    				ServiceRef:     pulumi.String("service_ref"),
    				EnvironmentRef: pulumi.String("environment_ref"),
    				Tags: pulumi.StringArray{
    					pulumi.String("foo:bar"),
    					pulumi.String("bar:foo"),
    				},
    				HealthSources: platform.MonitoredServiceRequestHealthSourceArray{
    					&platform.MonitoredServiceRequestHealthSourceArgs{
    						Name:       pulumi.String("name"),
    						Identifier: pulumi.String("identifier"),
    						Type:       pulumi.String("NewRelic"),
    						Spec:       pulumi.String(json14),
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using System.Text.Json;
    using Pulumi;
    using Harness = Pulumi.Harness;
    
    return await Deployment.RunAsync(() => 
    {
        //Sample template for Elastic Search Log Health Source
        var example = new Harness.Platform.MonitoredService("example", new()
        {
            OrgId = "org_id",
            ProjectId = "project_id",
            Identifier = "identifier",
            Request = new Harness.Platform.Inputs.MonitoredServiceRequestArgs
            {
                Name = "name",
                Type = "Application",
                Description = "description",
                ServiceRef = "service_ref",
                EnvironmentRef = "environment_ref",
                Tags = new[]
                {
                    "foo:bar",
                    "bar:foo",
                },
                HealthSources = new[]
                {
                    new Harness.Platform.Inputs.MonitoredServiceRequestHealthSourceArgs
                    {
                        Name = "name",
                        Identifier = "identifier",
                        Type = "ElasticSearch",
                        Version = "v2",
                        Spec = JsonSerializer.Serialize(new Dictionary<string, object?>
                        {
                            ["connectorRef"] = "connectorRef",
                            ["queryDefinitions"] = new[]
                            {
                                new Dictionary<string, object?>
                                {
                                    ["name"] = "error_4xx",
                                    ["identifier"] = "error_4xx_id",
                                    ["query"] = "Bad Request",
                                    ["index"] = "index",
                                    ["groupName"] = "Logs_Group",
                                    ["queryParams"] = new Dictionary<string, object?>
                                    {
                                        ["index"] = "index",
                                        ["serviceInstanceField"] = "serviceInstanceIdentifier",
                                        ["timeStampIdentifier"] = "timeStampIdentifier",
                                        ["timeStampFormat"] = "timeStampFormat",
                                        ["messageIdentifier"] = "messageIdentifier",
                                    },
                                },
                                new Dictionary<string, object?>
                                {
                                    ["name"] = "error_5xx",
                                    ["identifier"] = "error_5xx_id",
                                    ["query"] = "Internal Server Error",
                                    ["index"] = "index2",
                                    ["groupName"] = "Logs_Group",
                                    ["queryParams"] = new Dictionary<string, object?>
                                    {
                                        ["index"] = "index",
                                        ["serviceInstanceField"] = "serviceInstanceIdentifier",
                                        ["timeStampIdentifier"] = "timeStampIdentifier",
                                        ["timeStampFormat"] = "timeStampFormat",
                                        ["messageIdentifier"] = "messageIdentifier",
                                    },
                                },
                            },
                        }),
                    },
                },
                ChangeSources = new[]
                {
                    new Harness.Platform.Inputs.MonitoredServiceRequestChangeSourceArgs
                    {
                        Name = "BAC",
                        Identifier = "BAC",
                        Type = "PagerDuty",
                        Enabled = true,
                        Spec = JsonSerializer.Serialize(new Dictionary<string, object?>
                        {
                            ["connectorRef"] = "account.pd",
                            ["pagerDutyServiceId"] = "P0N21OB",
                        }),
                        Category = "Alert",
                    },
                    new Harness.Platform.Inputs.MonitoredServiceRequestChangeSourceArgs
                    {
                        Name = "FH",
                        Identifier = "FH",
                        Type = "CustomIncident",
                        Enabled = true,
                        Spec = JsonSerializer.Serialize(new Dictionary<string, object?>
                        {
                            ["name"] = "FH",
                            ["webhookUrl"] = "https://harness.io/cv/api/account/sampleAcc/org/sampleOrg/project/sampleProj/webhook/custom-change?monitoredServiceIdentifier=checkout_prod&changeSourceIdentifier=FH",
                            ["webhookCurlCommand"] = "curl -X POST -H 'content-type: application/json' -H 'X-Api-Key: sample_api_key' --url 'https://harness.io/cv/api/account/sampleAcc/org/sampleOrg/project/sampleProj/webhook/custom-change?monitoredServiceIdentifier=checkout_prod&changeSourceIdentifier=FH' -d '{ \"eventIdentifier\": \"<string>\" (optional), \"user\": \"user@harness.io\", \"startTime\": timeInMs, \"endTime\": timeInMs, \"eventDetail\": { \"description\": \"<String>\", \"changeEventDetailsLink\": \"urlString\" (optional), \"externalLinkToEntity\": \"urlString\" (optional), \"name\": \"changeEventName\" } }'",
                            ["type"] = "Alert",
                        }),
                        Category = "Alert",
                    },
                    new Harness.Platform.Inputs.MonitoredServiceRequestChangeSourceArgs
                    {
                        Name = "customff",
                        Identifier = "customff",
                        Type = "CustomFF",
                        Enabled = true,
                        Category = "FeatureFlag",
                        Spec = JsonSerializer.Serialize(new Dictionary<string, object?>
                        {
                            ["type"] = "FeatureFlag",
                        }),
                    },
                    new Harness.Platform.Inputs.MonitoredServiceRequestChangeSourceArgs
                    {
                        Name = "customdeploy",
                        Identifier = "customdeploy",
                        Type = "CustomDeploy",
                        Enabled = true,
                        Category = "Deployment",
                        Spec = JsonSerializer.Serialize(new Dictionary<string, object?>
                        {
                            ["type"] = "Deployment",
                        }),
                    },
                    new Harness.Platform.Inputs.MonitoredServiceRequestChangeSourceArgs
                    {
                        Name = "customincident",
                        Identifier = "customincident",
                        Type = "CustomIncident",
                        Enabled = true,
                        Category = "Alert",
                        Spec = JsonSerializer.Serialize(new Dictionary<string, object?>
                        {
                            ["type"] = "Alert",
                            ["authorizationToken"] = "abc",
                        }),
                    },
                },
                NotificationRuleRefs = new[]
                {
                    new Harness.Platform.Inputs.MonitoredServiceRequestNotificationRuleRefArgs
                    {
                        NotificationRuleRef = "notification_rule_ref",
                        Enabled = true,
                    },
                    new Harness.Platform.Inputs.MonitoredServiceRequestNotificationRuleRefArgs
                    {
                        NotificationRuleRef = "notification_rule_ref1",
                        Enabled = false,
                    },
                },
            },
        });
    
        //Sample template for Sumologic Metrics Health Source
        var example1 = new Harness.Platform.MonitoredService("example1", new()
        {
            OrgId = "org_id",
            ProjectId = "project_id",
            Identifier = "identifier",
            Request = new Harness.Platform.Inputs.MonitoredServiceRequestArgs
            {
                Name = "name",
                Type = "Application",
                Description = "description",
                ServiceRef = "service_ref",
                EnvironmentRef = "environment_ref",
                Tags = new[]
                {
                    "foo:bar",
                    "bar:foo",
                },
                HealthSources = new[]
                {
                    new Harness.Platform.Inputs.MonitoredServiceRequestHealthSourceArgs
                    {
                        Name = "sumologicmetrics",
                        Identifier = "sumo_metric_identifier",
                        Type = "SumologicMetrics",
                        Version = "v2",
                        Spec = JsonSerializer.Serialize(new Dictionary<string, object?>
                        {
                            ["connectorRef"] = "connectorRef",
                            ["queryDefinitions"] = new[]
                            {
                                new Dictionary<string, object?>
                                {
                                    ["name"] = "metric_cpu",
                                    ["identifier"] = "metric_cpu",
                                    ["query"] = "metric=cpu",
                                    ["groupName"] = "g1",
                                    ["queryParams"] = new Dictionary<string, object?>
                                    {
                                        ["serviceInstanceField"] = "_sourcehost",
                                    },
                                    ["riskProfile"] = new Dictionary<string, object?>
                                    {
                                        ["riskCategory"] = "Performance_Other",
                                        ["thresholdTypes"] = new[]
                                        {
                                            "ACT_WHEN_HIGHER",
                                        },
                                    },
                                    ["liveMonitoringEnabled"] = "true",
                                    ["continuousVerificationEnabled"] = "true",
                                    ["sliEnabled"] = "false",
                                    ["metricThresholds"] = new[]
                                    {
                                        new Dictionary<string, object?>
                                        {
                                            ["type"] = "IgnoreThreshold",
                                            ["spec"] = new Dictionary<string, object?>
                                            {
                                                ["action"] = "Ignore",
                                            },
                                            ["criteria"] = new Dictionary<string, object?>
                                            {
                                                ["type"] = "Absolute",
                                                ["spec"] = new Dictionary<string, object?>
                                                {
                                                    ["greaterThan"] = 100,
                                                },
                                            },
                                            ["metricType"] = "Custom",
                                            ["metricName"] = "metric_cpu",
                                        },
                                        new Dictionary<string, object?>
                                        {
                                            ["type"] = "FailImmediately",
                                            ["spec"] = new Dictionary<string, object?>
                                            {
                                                ["action"] = "FailAfterOccurrence",
                                                ["spec"] = new Dictionary<string, object?>
                                                {
                                                    ["count"] = 2,
                                                },
                                            },
                                            ["criteria"] = new Dictionary<string, object?>
                                            {
                                                ["type"] = "Absolute",
                                                ["spec"] = new Dictionary<string, object?>
                                                {
                                                    ["greaterThan"] = 100,
                                                },
                                            },
                                            ["metricType"] = "Custom",
                                            ["metricName"] = "metric_cpu",
                                        },
                                    },
                                },
                                new Dictionary<string, object?>
                                {
                                    ["name"] = "name2",
                                    ["identifier"] = "identifier2",
                                    ["groupName"] = "g2",
                                    ["query"] = "metric=memory",
                                    ["queryParams"] = new Dictionary<string, object?>
                                    {
                                        ["serviceInstanceField"] = "_sourcehost",
                                    },
                                    ["riskProfile"] = new Dictionary<string, object?>
                                    {
                                        ["riskCategory"] = "Performance_Other",
                                        ["thresholdTypes"] = new[]
                                        {
                                            "ACT_WHEN_HIGHER",
                                        },
                                    },
                                    ["liveMonitoringEnabled"] = "false",
                                    ["continuousVerificationEnabled"] = "false",
                                    ["sliEnabled"] = "false",
                                },
                            },
                        }),
                    },
                },
            },
        });
    
        //Sample template for Sumologic Log Health Source
        var example2 = new Harness.Platform.MonitoredService("example2", new()
        {
            OrgId = "org_id",
            ProjectId = "project_id",
            Identifier = "identifier",
            Request = new Harness.Platform.Inputs.MonitoredServiceRequestArgs
            {
                Name = "name",
                Type = "Application",
                Description = "description",
                ServiceRef = "service_ref",
                EnvironmentRef = "environment_ref",
                Tags = new[]
                {
                    "foo:bar",
                    "bar:foo",
                },
                HealthSources = new[]
                {
                    new Harness.Platform.Inputs.MonitoredServiceRequestHealthSourceArgs
                    {
                        Name = "sumologic",
                        Identifier = "sumo_metric_identifier",
                        Type = "SumologicLogs",
                        Version = "v2",
                        Spec = JsonSerializer.Serialize(new Dictionary<string, object?>
                        {
                            ["connectorRef"] = "connectorRef",
                            ["queryDefinitions"] = new[]
                            {
                                new Dictionary<string, object?>
                                {
                                    ["name"] = "log1",
                                    ["identifier"] = "log1",
                                    ["query"] = "*",
                                    ["groupName"] = "Logs Group",
                                    ["queryParams"] = new Dictionary<string, object?>
                                    {
                                        ["serviceInstanceField"] = "_sourcehost",
                                    },
                                },
                                new Dictionary<string, object?>
                                {
                                    ["name"] = "log2",
                                    ["identifier"] = "identifier2",
                                    ["groupName"] = "g2",
                                    ["query"] = "error",
                                    ["queryParams"] = new Dictionary<string, object?>
                                    {
                                        ["serviceInstanceField"] = "_sourcehost",
                                    },
                                },
                            },
                        }),
                    },
                },
            },
        });
    
        //Sample template for Splunk Signal FX Health Source
        var example3 = new Harness.Platform.MonitoredService("example3", new()
        {
            OrgId = "org_id",
            ProjectId = "project_id",
            Identifier = "identifier",
            Request = new Harness.Platform.Inputs.MonitoredServiceRequestArgs
            {
                Name = "name",
                Type = "Application",
                Description = "description",
                ServiceRef = "service_ref",
                EnvironmentRef = "environment_ref",
                Tags = new[]
                {
                    "foo:bar",
                    "bar:foo",
                },
                HealthSources = new[]
                {
                    new Harness.Platform.Inputs.MonitoredServiceRequestHealthSourceArgs
                    {
                        Name = "signalfxmetrics",
                        Identifier = "signalfxmetrics",
                        Type = "SplunkSignalFXMetrics",
                        Version = "v2",
                        Spec = JsonSerializer.Serialize(new Dictionary<string, object?>
                        {
                            ["connectorRef"] = "connectorRef",
                            ["queryDefinitions"] = new[]
                            {
                                new Dictionary<string, object?>
                                {
                                    ["name"] = "metric_infra_cpu",
                                    ["identifier"] = "metric_infra_cpu",
                                    ["query"] = "***",
                                    ["groupName"] = "g",
                                    ["riskProfile"] = new Dictionary<string, object?>
                                    {
                                        ["riskCategory"] = "Errors",
                                        ["thresholdTypes"] = new[]
                                        {
                                            "ACT_WHEN_HIGHER",
                                            "ACT_WHEN_LOWER",
                                        },
                                    },
                                    ["liveMonitoringEnabled"] = "true",
                                    ["continuousVerificationEnabled"] = "true",
                                    ["sliEnabled"] = "false",
                                },
                                new Dictionary<string, object?>
                                {
                                    ["name"] = "name2",
                                    ["identifier"] = "identifier2",
                                    ["groupName"] = "g2",
                                    ["query"] = "*",
                                    ["riskProfile"] = new Dictionary<string, object?>
                                    {
                                        ["riskCategory"] = "Performance_Other",
                                        ["thresholdTypes"] = new[]
                                        {
                                            "ACT_WHEN_HIGHER",
                                        },
                                    },
                                    ["liveMonitoringEnabled"] = "true",
                                    ["continuousVerificationEnabled"] = "false",
                                    ["sliEnabled"] = "false",
                                    ["metricThresholds"] = new[]
                                    {
                                        new Dictionary<string, object?>
                                        {
                                            ["type"] = "IgnoreThreshold",
                                            ["spec"] = new Dictionary<string, object?>
                                            {
                                                ["action"] = "Ignore",
                                            },
                                            ["criteria"] = new Dictionary<string, object?>
                                            {
                                                ["type"] = "Absolute",
                                                ["spec"] = new Dictionary<string, object?>
                                                {
                                                    ["greaterThan"] = 100,
                                                },
                                            },
                                            ["metrictype"] = "Custom",
                                            ["metricName"] = "identifier2",
                                        },
                                        new Dictionary<string, object?>
                                        {
                                            ["type"] = "FailImmediately",
                                            ["spec"] = new Dictionary<string, object?>
                                            {
                                                ["action"] = "FailAfterOccurrence",
                                                ["spec"] = new Dictionary<string, object?>
                                                {
                                                    ["count"] = 2,
                                                },
                                            },
                                            ["criteria"] = new Dictionary<string, object?>
                                            {
                                                ["type"] = "Absolute",
                                                ["spec"] = new Dictionary<string, object?>
                                                {
                                                    ["greaterThan"] = 100,
                                                },
                                            },
                                            ["metricType"] = "Custom",
                                            ["metricName"] = "identifier2",
                                        },
                                    },
                                },
                            },
                        }),
                    },
                },
            },
        });
    
        //Sample template for Grafana Loki Log Health Source
        var example4 = new Harness.Platform.MonitoredService("example4", new()
        {
            OrgId = "org_id",
            ProjectId = "project_id",
            Identifier = "identifier",
            Request = new Harness.Platform.Inputs.MonitoredServiceRequestArgs
            {
                Name = "name",
                Type = "Application",
                Description = "description",
                ServiceRef = "service_ref",
                EnvironmentRef = "environment_ref",
                Tags = new[]
                {
                    "foo:bar",
                    "bar:foo",
                },
                HealthSources = new[]
                {
                    new Harness.Platform.Inputs.MonitoredServiceRequestHealthSourceArgs
                    {
                        Name = "Test",
                        Identifier = "Test",
                        Type = "GrafanaLokiLogs",
                        Version = "v2",
                        Spec = JsonSerializer.Serialize(new Dictionary<string, object?>
                        {
                            ["connectorRef"] = "connectorRef",
                            ["queryDefinitions"] = new[]
                            {
                                new Dictionary<string, object?>
                                {
                                    ["name"] = "Demo",
                                    ["identifier"] = "Demo",
                                    ["query"] = "{job=~\".+\"}",
                                    ["groupName"] = "Log_Group",
                                    ["queryParams"] = new Dictionary<string, object?>
                                    {
                                        ["serviceInstanceField"] = "job",
                                    },
                                },
                                new Dictionary<string, object?>
                                {
                                    ["name"] = "log2",
                                    ["identifier"] = "identifier2",
                                    ["groupName"] = "g2",
                                    ["query"] = "error",
                                    ["queryParams"] = new Dictionary<string, object?>
                                    {
                                        ["serviceInstanceField"] = "_sourcehost",
                                    },
                                    ["liveMonitoringEnabled"] = "false",
                                    ["continuousVerificationEnabled"] = "false",
                                    ["sliEnabled"] = "false",
                                },
                            },
                        }),
                    },
                },
            },
        });
    
        //Sample template for Azure Metrics Health Source
        var example5 = new Harness.Platform.MonitoredService("example5", new()
        {
            OrgId = "org_id",
            ProjectId = "project_id",
            Identifier = "identifier",
            Request = new Harness.Platform.Inputs.MonitoredServiceRequestArgs
            {
                Name = "name",
                Type = "Application",
                Description = "description",
                ServiceRef = "service_ref",
                EnvironmentRef = "environment_ref",
                Tags = new[]
                {
                    "foo:bar",
                    "bar:foo",
                },
                HealthSources = new[]
                {
                    new Harness.Platform.Inputs.MonitoredServiceRequestHealthSourceArgs
                    {
                        Name = "azure metrics verify step",
                        Identifier = "azure_metrics_verify_step",
                        Type = "AzureMetrics",
                        Version = "v2",
                        Spec = JsonSerializer.Serialize(new Dictionary<string, object?>
                        {
                            ["connectorRef"] = "connectorRef",
                            ["queryDefinitions"] = new[]
                            {
                                new Dictionary<string, object?>
                                {
                                    ["name"] = "metric",
                                    ["identifier"] = "metric",
                                    ["query"] = "default",
                                    ["groupName"] = "g1",
                                    ["queryParams"] = new Dictionary<string, object?>
                                    {
                                        ["serviceInstanceField"] = "host",
                                        ["index"] = "/subscriptions/12d2db62-5aa9-471d-84bb-faa489b3e319/resourceGroups/srm-test/providers/Microsoft.ContainerService/managedClusters/srm-test",
                                        ["healthSourceMetricName"] = "cpuUsagePercentage",
                                        ["healthSourceMetricNamespace"] = "insights.container/nodes",
                                        ["aggregationType"] = "average",
                                    },
                                    ["riskProfile"] = new Dictionary<string, object?>
                                    {
                                        ["riskCategory"] = "Performance_Other",
                                        ["thresholdTypes"] = new[]
                                        {
                                            "ACT_WHEN_HIGHER",
                                        },
                                    },
                                    ["liveMonitoringEnabled"] = "true",
                                    ["continuousVerificationEnabled"] = "true",
                                    ["sliEnabled"] = "false",
                                    ["metricThresholds"] = new[]
                                    {
                                        new Dictionary<string, object?>
                                        {
                                            ["type"] = "IgnoreThreshold",
                                            ["spec"] = new Dictionary<string, object?>
                                            {
                                                ["action"] = "Ignore",
                                            },
                                            ["criteria"] = new Dictionary<string, object?>
                                            {
                                                ["type"] = "Absolute",
                                                ["spec"] = new Dictionary<string, object?>
                                                {
                                                    ["greaterThan"] = 100,
                                                },
                                            },
                                            ["metrictype"] = "Custom",
                                            ["metricName"] = "metric",
                                        },
                                        new Dictionary<string, object?>
                                        {
                                            ["type"] = "FailImmediately",
                                            ["spec"] = new Dictionary<string, object?>
                                            {
                                                ["action"] = "FailAfterOccurrence",
                                                ["spec"] = new Dictionary<string, object?>
                                                {
                                                    ["count"] = 2,
                                                },
                                            },
                                            ["criteria"] = new Dictionary<string, object?>
                                            {
                                                ["type"] = "Absolute",
                                                ["spec"] = new Dictionary<string, object?>
                                                {
                                                    ["greaterThan"] = 100,
                                                },
                                            },
                                            ["metricType"] = "Custom",
                                            ["metricName"] = "metric",
                                        },
                                    },
                                },
                                new Dictionary<string, object?>
                                {
                                    ["name"] = "name2",
                                    ["identifier"] = "identifier2",
                                    ["groupName"] = "g2",
                                    ["queryParams"] = new Dictionary<string, object?>
                                    {
                                        ["serviceInstanceField"] = "host",
                                        ["index"] = "/subscriptions/12d2db62-5aa9-471d-84bb-faa489b3e319/resourceGroups/srm-test/providers/Microsoft.ContainerService/managedClusters/srm-test",
                                        ["healthSourceMetricName"] = "cpuUsagePercentage",
                                        ["healthSourceMetricNamespace"] = "insights.container/nodes",
                                        ["aggregationType"] = "average",
                                    },
                                    ["riskProfile"] = new Dictionary<string, object?>
                                    {
                                        ["riskCategory"] = "Performance_Other",
                                        ["thresholdTypes"] = new[]
                                        {
                                            "ACT_WHEN_HIGHER",
                                        },
                                    },
                                    ["liveMonitoringEnabled"] = "false",
                                    ["continuousVerificationEnabled"] = "false",
                                    ["sliEnabled"] = "false",
                                },
                            },
                        }),
                    },
                },
            },
        });
    
        //Sample template for Azure Log Health Source
        var example6 = new Harness.Platform.MonitoredService("example6", new()
        {
            OrgId = "org_id",
            ProjectId = "project_id",
            Identifier = "identifier",
            Request = new Harness.Platform.Inputs.MonitoredServiceRequestArgs
            {
                Name = "name",
                Type = "Application",
                Description = "description",
                ServiceRef = "service_ref",
                EnvironmentRef = "environment_ref",
                Tags = new[]
                {
                    "foo:bar",
                    "bar:foo",
                },
                HealthSources = new[]
                {
                    new Harness.Platform.Inputs.MonitoredServiceRequestHealthSourceArgs
                    {
                        Name = "Demo azure",
                        Identifier = "Demo_azure",
                        Type = "AzureLogs",
                        Version = "v2",
                        Spec = JsonSerializer.Serialize(new Dictionary<string, object?>
                        {
                            ["connectorRef"] = "connectorRef",
                            ["queryDefinitions"] = new[]
                            {
                                new Dictionary<string, object?>
                                {
                                    ["name"] = "name2",
                                    ["identifier"] = "identifier2",
                                    ["groupName"] = "g2",
                                    ["query"] = "*",
                                    ["queryParams"] = new Dictionary<string, object?>
                                    {
                                        ["serviceInstanceField"] = "Name",
                                        ["timeStampIdentifier"] = "StartedTime",
                                        ["messageIdentifier"] = "Image",
                                        ["index"] = "/subscriptions/12d2db62-5aa9-471d-84bb-faa489b3e319/resourceGroups/srm-test/providers/Microsoft.ContainerService/managedClusters/srm-test",
                                    },
                                    ["liveMonitoringEnabled"] = "false",
                                    ["continuousVerificationEnabled"] = "false",
                                },
                            },
                        }),
                    },
                },
            },
        });
    
        //Sample template for Prometheus Metrics Health Source
        var example7 = new Harness.Platform.MonitoredService("example7", new()
        {
            OrgId = "org_id",
            ProjectId = "project_id",
            Identifier = "identifier",
            Request = new Harness.Platform.Inputs.MonitoredServiceRequestArgs
            {
                Name = "name",
                Type = "Application",
                Description = "description",
                ServiceRef = "service_ref",
                EnvironmentRef = "environment_ref",
                Tags = new[]
                {
                    "foo:bar",
                    "bar:foo",
                },
                HealthSources = new[]
                {
                    new Harness.Platform.Inputs.MonitoredServiceRequestHealthSourceArgs
                    {
                        Name = "prometheus metrics verify step",
                        Identifier = "prometheus_metrics",
                        Type = "Prometheus",
                        Spec = JsonSerializer.Serialize(new Dictionary<string, object?>
                        {
                            ["connectorRef"] = "connectorRef",
                            ["metricDefinitions"] = new[]
                            {
                                new Dictionary<string, object?>
                                {
                                    ["identifier"] = "Prometheus_Metric",
                                    ["metricName"] = "Prometheus Metric",
                                    ["riskProfile"] = new Dictionary<string, object?>
                                    {
                                        ["riskCategory"] = "Performance_Other",
                                        ["thresholdTypes"] = new[]
                                        {
                                            "ACT_WHEN_HIGHER",
                                        },
                                    },
                                    ["analysis"] = new Dictionary<string, object?>
                                    {
                                        ["liveMonitoring"] = new Dictionary<string, object?>
                                        {
                                            ["enabled"] = true,
                                        },
                                        ["deploymentVerification"] = new Dictionary<string, object?>
                                        {
                                            ["enabled"] = true,
                                            ["serviceInstanceFieldName"] = "pod_name",
                                        },
                                    },
                                    ["query"] = "count(up{group=\"cv\",group=\"cv\"})",
                                    ["groupName"] = "met",
                                    ["isManualQuery"] = true,
                                },
                            },
                            ["metricPacks"] = new[]
                            {
                                new Dictionary<string, object?>
                                {
                                    ["identifier"] = "Custom",
                                    ["metricThresholds"] = new[]
                                    {
                                        new Dictionary<string, object?>
                                        {
                                            ["type"] = "IgnoreThreshold",
                                            ["spec"] = new Dictionary<string, object?>
                                            {
                                                ["action"] = "Ignore",
                                            },
                                            ["criteria"] = new Dictionary<string, object?>
                                            {
                                                ["type"] = "Absolute",
                                                ["spec"] = new Dictionary<string, object?>
                                                {
                                                    ["greaterThan"] = 100,
                                                },
                                            },
                                            ["metrictype"] = "Custom",
                                            ["metricName"] = "Prometheus Metric",
                                        },
                                        new Dictionary<string, object?>
                                        {
                                            ["type"] = "FailImmediately",
                                            ["spec"] = new Dictionary<string, object?>
                                            {
                                                ["action"] = "FailAfterOccurrence",
                                                ["spec"] = new Dictionary<string, object?>
                                                {
                                                    ["count"] = 2,
                                                },
                                            },
                                            ["criteria"] = new Dictionary<string, object?>
                                            {
                                                ["type"] = "Absolute",
                                                ["spec"] = new Dictionary<string, object?>
                                                {
                                                    ["greaterThan"] = 100,
                                                },
                                            },
                                            ["metricType"] = "Custom",
                                            ["metricName"] = "Prometheus Metric",
                                        },
                                    },
                                },
                            },
                        }),
                    },
                },
            },
        });
    
        //Sample template for Datadog Metrics Health Source
        var example8 = new Harness.Platform.MonitoredService("example8", new()
        {
            OrgId = "org_id",
            ProjectId = "project_id",
            Identifier = "identifier",
            Request = new Harness.Platform.Inputs.MonitoredServiceRequestArgs
            {
                Name = "name",
                Type = "Application",
                Description = "description",
                ServiceRef = "service_ref",
                EnvironmentRef = "environment_ref",
                Tags = new[]
                {
                    "foo:bar",
                    "bar:foo",
                },
                HealthSources = new[]
                {
                    new Harness.Platform.Inputs.MonitoredServiceRequestHealthSourceArgs
                    {
                        Name = "ddm",
                        Identifier = "ddm",
                        Type = "DatadogMetrics",
                        Spec = JsonSerializer.Serialize(new Dictionary<string, object?>
                        {
                            ["connectorRef"] = "connectorRef",
                            ["feature"] = "Datadog Cloud Metrics",
                            ["metricDefinitions"] = new[]
                            {
                                new Dictionary<string, object?>
                                {
                                    ["metricName"] = "metric",
                                    ["metricPath"] = "M1",
                                    ["identifier"] = "metric",
                                    ["query"] = @"avg:kubernetes.cpu.limits{*}.rollup(avg, 60);
    avg:kubernetes.cpu.limits{*}.rollup(avg, 30);
    (a+b)/10",
                                    ["isManualQuery"] = true,
                                    ["isCustomCreatedMetric"] = true,
                                    ["riskProfile"] = new Dictionary<string, object?>
                                    {
                                        ["riskCategory"] = "Performance_Other",
                                        ["thresholdTypes"] = new[]
                                        {
                                            "ACT_WHEN_HIGHER",
                                        },
                                    },
                                    ["analysis"] = new Dictionary<string, object?>
                                    {
                                        ["liveMonitoring"] = new Dictionary<string, object?>
                                        {
                                            ["enabled"] = true,
                                        },
                                        ["deploymentVerification"] = new Dictionary<string, object?>
                                        {
                                            ["enabled"] = true,
                                            ["serviceInstanceFieldName"] = "pod",
                                        },
                                    },
                                },
                                new Dictionary<string, object?>
                                {
                                    ["metricName"] = "dashboard_metric_cpu",
                                    ["identifier"] = "metric_cpu",
                                    ["query"] = @"avg:kubernetes.cpu.limits{*}.rollup(avg, 60);
    avg:kubernetes.cpu.limits{*}.rollup(avg, 30);
    (a+b)/10",
                                    ["isManualQuery"] = false,
                                    ["dashboardName"] = "dashboard",
                                    ["metricPath"] = "M1",
                                    ["groupingQuery"] = "avg:kubernetes.cpu.limits{*} by {host}.rollup(avg, 60)",
                                    ["metric"] = "kubernetes.cpu.limits",
                                    ["aggregation"] = "avg",
                                    ["isCustomCreatedMetric"] = true,
                                    ["riskProfile"] = new Dictionary<string, object?>
                                    {
                                        ["riskCategory"] = "Performance_Other",
                                        ["thresholdTypes"] = new[]
                                        {
                                            "ACT_WHEN_HIGHER",
                                        },
                                    },
                                    ["analysis"] = new Dictionary<string, object?>
                                    {
                                        ["liveMonitoring"] = new Dictionary<string, object?>
                                        {
                                            ["enabled"] = true,
                                        },
                                        ["deploymentVerification"] = new Dictionary<string, object?>
                                        {
                                            ["enabled"] = true,
                                            ["serviceInstanceFieldName"] = "pod",
                                        },
                                    },
                                },
                            },
                            ["metricPacks"] = new[]
                            {
                                new Dictionary<string, object?>
                                {
                                    ["identifier"] = "Custom",
                                    ["metricThresholds"] = new[]
                                    {
                                        new Dictionary<string, object?>
                                        {
                                            ["type"] = "IgnoreThreshold",
                                            ["spec"] = new Dictionary<string, object?>
                                            {
                                                ["action"] = "Ignore",
                                            },
                                            ["criteria"] = new Dictionary<string, object?>
                                            {
                                                ["type"] = "Absolute",
                                                ["spec"] = new Dictionary<string, object?>
                                                {
                                                    ["greaterThan"] = 100,
                                                },
                                            },
                                            ["metrictype"] = "Custom",
                                            ["metricName"] = "metric",
                                        },
                                        new Dictionary<string, object?>
                                        {
                                            ["type"] = "FailImmediately",
                                            ["spec"] = new Dictionary<string, object?>
                                            {
                                                ["action"] = "FailAfterOccurrence",
                                                ["spec"] = new Dictionary<string, object?>
                                                {
                                                    ["count"] = 2,
                                                },
                                            },
                                            ["criteria"] = new Dictionary<string, object?>
                                            {
                                                ["type"] = "Absolute",
                                                ["spec"] = new Dictionary<string, object?>
                                                {
                                                    ["greaterThan"] = 100,
                                                },
                                            },
                                            ["metricType"] = "Custom",
                                            ["metricName"] = "metric",
                                        },
                                    },
                                },
                            },
                        }),
                    },
                },
            },
        });
    
        //Sample template for New Relic Metrics Health Source
        var example9 = new Harness.Platform.MonitoredService("example9", new()
        {
            OrgId = "org_id",
            ProjectId = "project_id",
            Identifier = "identifier",
            Request = new Harness.Platform.Inputs.MonitoredServiceRequestArgs
            {
                Name = "name",
                Type = "Application",
                Description = "description",
                ServiceRef = "service_ref",
                EnvironmentRef = "environment_ref",
                Tags = new[]
                {
                    "foo:bar",
                    "bar:foo",
                },
                HealthSources = new[]
                {
                    new Harness.Platform.Inputs.MonitoredServiceRequestHealthSourceArgs
                    {
                        Name = "name",
                        Identifier = "identifier",
                        Type = "NewRelic",
                        Spec = JsonSerializer.Serialize(new Dictionary<string, object?>
                        {
                            ["connectorRef"] = "account.Newrelicautomation_do_not_delete",
                            ["feature"] = "apm",
                            ["applicationId"] = "107019083",
                            ["applicationName"] = "My Application",
                            ["metricData"] = new Dictionary<string, object?>
                            {
                                ["Performance"] = true,
                            },
                            ["metricPacks"] = new[]
                            {
                                new Dictionary<string, object?>
                                {
                                    ["identifier"] = "Performance",
                                },
                            },
                            ["newRelicMetricDefinitions"] = new[]
                            {
                                new Dictionary<string, object?>
                                {
                                    ["identifier"] = "New_Relic_Metric",
                                    ["metricName"] = "New Relic Metric",
                                    ["riskProfile"] = new Dictionary<string, object?>
                                    {
                                        ["riskCategory"] = "Performance_Other",
                                        ["thresholdTypes"] = new[]
                                        {
                                            "ACT_WHEN_HIGHER",
                                        },
                                    },
                                    ["analysis"] = new Dictionary<string, object?>
                                    {
                                        ["deploymentVerification"] = new Dictionary<string, object?>
                                        {
                                            ["enabled"] = true,
                                        },
                                    },
                                    ["groupName"] = "group1",
                                    ["nrql"] = "SELECT count(apm.service.instance.count) FROM Metric WHERE appName LIKE 'My Application' TIMESERIES",
                                    ["responseMapping"] = new Dictionary<string, object?>
                                    {
                                        ["metricValueJsonPath"] = "$.['timeSeries'].[*].['results'].[*].['count']",
                                        ["timestampJsonPath"] = "$.['timeSeries'].[*].['beginTimeSeconds']",
                                    },
                                },
                            },
                            ["metricPacks"] = new[]
                            {
                                new Dictionary<string, object?>
                                {
                                    ["identifier"] = "Custom",
                                    ["metricThresholds"] = new[]
                                    {
                                        new Dictionary<string, object?>
                                        {
                                            ["type"] = "IgnoreThreshold",
                                            ["spec"] = new Dictionary<string, object?>
                                            {
                                                ["action"] = "Ignore",
                                            },
                                            ["criteria"] = new Dictionary<string, object?>
                                            {
                                                ["type"] = "Absolute",
                                                ["spec"] = new Dictionary<string, object?>
                                                {
                                                    ["greaterThan"] = 100,
                                                },
                                            },
                                            ["metricType"] = "Custom",
                                            ["metricName"] = "New Relic Metric",
                                        },
                                        new Dictionary<string, object?>
                                        {
                                            ["type"] = "FailImmediately",
                                            ["spec"] = new Dictionary<string, object?>
                                            {
                                                ["action"] = "FailAfterOccurrence",
                                                ["spec"] = new Dictionary<string, object?>
                                                {
                                                    ["count"] = 2,
                                                },
                                            },
                                            ["criteria"] = new Dictionary<string, object?>
                                            {
                                                ["type"] = "Absolute",
                                                ["spec"] = new Dictionary<string, object?>
                                                {
                                                    ["greaterThan"] = 100,
                                                },
                                            },
                                            ["metricType"] = "Custom",
                                            ["metricName"] = "New Relic Metric",
                                        },
                                    },
                                },
                            },
                        }),
                    },
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.harness.platform.MonitoredService;
    import com.pulumi.harness.platform.MonitoredServiceArgs;
    import com.pulumi.harness.platform.inputs.MonitoredServiceRequestArgs;
    import static com.pulumi.codegen.internal.Serialization.*;
    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) {
            //Sample template for Elastic Search Log Health Source
            var example = new MonitoredService("example", MonitoredServiceArgs.builder()
                .orgId("org_id")
                .projectId("project_id")
                .identifier("identifier")
                .request(MonitoredServiceRequestArgs.builder()
                    .name("name")
                    .type("Application")
                    .description("description")
                    .serviceRef("service_ref")
                    .environmentRef("environment_ref")
                    .tags(                
                        "foo:bar",
                        "bar:foo")
                    .healthSources(MonitoredServiceRequestHealthSourceArgs.builder()
                        .name("name")
                        .identifier("identifier")
                        .type("ElasticSearch")
                        .version("v2")
                        .spec(serializeJson(
                            jsonObject(
                                jsonProperty("connectorRef", "connectorRef"),
                                jsonProperty("queryDefinitions", jsonArray(
                                    jsonObject(
                                        jsonProperty("name", "error_4xx"),
                                        jsonProperty("identifier", "error_4xx_id"),
                                        jsonProperty("query", "Bad Request"),
                                        jsonProperty("index", "index"),
                                        jsonProperty("groupName", "Logs_Group"),
                                        jsonProperty("queryParams", jsonObject(
                                            jsonProperty("index", "index"),
                                            jsonProperty("serviceInstanceField", "serviceInstanceIdentifier"),
                                            jsonProperty("timeStampIdentifier", "timeStampIdentifier"),
                                            jsonProperty("timeStampFormat", "timeStampFormat"),
                                            jsonProperty("messageIdentifier", "messageIdentifier")
                                        ))
                                    ), 
                                    jsonObject(
                                        jsonProperty("name", "error_5xx"),
                                        jsonProperty("identifier", "error_5xx_id"),
                                        jsonProperty("query", "Internal Server Error"),
                                        jsonProperty("index", "index2"),
                                        jsonProperty("groupName", "Logs_Group"),
                                        jsonProperty("queryParams", jsonObject(
                                            jsonProperty("index", "index"),
                                            jsonProperty("serviceInstanceField", "serviceInstanceIdentifier"),
                                            jsonProperty("timeStampIdentifier", "timeStampIdentifier"),
                                            jsonProperty("timeStampFormat", "timeStampFormat"),
                                            jsonProperty("messageIdentifier", "messageIdentifier")
                                        ))
                                    )
                                ))
                            )))
                        .build())
                    .changeSources(                
                        MonitoredServiceRequestChangeSourceArgs.builder()
                            .name("BAC")
                            .identifier("BAC")
                            .type("PagerDuty")
                            .enabled(true)
                            .spec(serializeJson(
                                jsonObject(
                                    jsonProperty("connectorRef", "account.pd"),
                                    jsonProperty("pagerDutyServiceId", "P0N21OB")
                                )))
                            .category("Alert")
                            .build(),
                        MonitoredServiceRequestChangeSourceArgs.builder()
                            .name("FH")
                            .identifier("FH")
                            .type("CustomIncident")
                            .enabled(true)
                            .spec(serializeJson(
                                jsonObject(
                                    jsonProperty("name", "FH"),
                                    jsonProperty("webhookUrl", "https://harness.io/cv/api/account/sampleAcc/org/sampleOrg/project/sampleProj/webhook/custom-change?monitoredServiceIdentifier=checkout_prod&changeSourceIdentifier=FH"),
                                    jsonProperty("webhookCurlCommand", "curl -X POST -H 'content-type: application/json' -H 'X-Api-Key: sample_api_key' --url 'https://harness.io/cv/api/account/sampleAcc/org/sampleOrg/project/sampleProj/webhook/custom-change?monitoredServiceIdentifier=checkout_prod&changeSourceIdentifier=FH' -d '{ \"eventIdentifier\": \"<string>\" (optional), \"user\": \"user@harness.io\", \"startTime\": timeInMs, \"endTime\": timeInMs, \"eventDetail\": { \"description\": \"<String>\", \"changeEventDetailsLink\": \"urlString\" (optional), \"externalLinkToEntity\": \"urlString\" (optional), \"name\": \"changeEventName\" } }'"),
                                    jsonProperty("type", "Alert")
                                )))
                            .category("Alert")
                            .build(),
                        MonitoredServiceRequestChangeSourceArgs.builder()
                            .name("customff")
                            .identifier("customff")
                            .type("CustomFF")
                            .enabled(true)
                            .category("FeatureFlag")
                            .spec(serializeJson(
                                jsonObject(
                                    jsonProperty("type", "FeatureFlag")
                                )))
                            .build(),
                        MonitoredServiceRequestChangeSourceArgs.builder()
                            .name("customdeploy")
                            .identifier("customdeploy")
                            .type("CustomDeploy")
                            .enabled(true)
                            .category("Deployment")
                            .spec(serializeJson(
                                jsonObject(
                                    jsonProperty("type", "Deployment")
                                )))
                            .build(),
                        MonitoredServiceRequestChangeSourceArgs.builder()
                            .name("customincident")
                            .identifier("customincident")
                            .type("CustomIncident")
                            .enabled(true)
                            .category("Alert")
                            .spec(serializeJson(
                                jsonObject(
                                    jsonProperty("type", "Alert"),
                                    jsonProperty("authorizationToken", "abc")
                                )))
                            .build())
                    .notificationRuleRefs(                
                        MonitoredServiceRequestNotificationRuleRefArgs.builder()
                            .notificationRuleRef("notification_rule_ref")
                            .enabled(true)
                            .build(),
                        MonitoredServiceRequestNotificationRuleRefArgs.builder()
                            .notificationRuleRef("notification_rule_ref1")
                            .enabled(false)
                            .build())
                    .build())
                .build());
    
            //Sample template for Sumologic Metrics Health Source
            var example1 = new MonitoredService("example1", MonitoredServiceArgs.builder()
                .orgId("org_id")
                .projectId("project_id")
                .identifier("identifier")
                .request(MonitoredServiceRequestArgs.builder()
                    .name("name")
                    .type("Application")
                    .description("description")
                    .serviceRef("service_ref")
                    .environmentRef("environment_ref")
                    .tags(                
                        "foo:bar",
                        "bar:foo")
                    .healthSources(MonitoredServiceRequestHealthSourceArgs.builder()
                        .name("sumologicmetrics")
                        .identifier("sumo_metric_identifier")
                        .type("SumologicMetrics")
                        .version("v2")
                        .spec(serializeJson(
                            jsonObject(
                                jsonProperty("connectorRef", "connectorRef"),
                                jsonProperty("queryDefinitions", jsonArray(
                                    jsonObject(
                                        jsonProperty("name", "metric_cpu"),
                                        jsonProperty("identifier", "metric_cpu"),
                                        jsonProperty("query", "metric=cpu"),
                                        jsonProperty("groupName", "g1"),
                                        jsonProperty("queryParams", jsonObject(
                                            jsonProperty("serviceInstanceField", "_sourcehost")
                                        )),
                                        jsonProperty("riskProfile", jsonObject(
                                            jsonProperty("riskCategory", "Performance_Other"),
                                            jsonProperty("thresholdTypes", jsonArray("ACT_WHEN_HIGHER"))
                                        )),
                                        jsonProperty("liveMonitoringEnabled", "true"),
                                        jsonProperty("continuousVerificationEnabled", "true"),
                                        jsonProperty("sliEnabled", "false"),
                                        jsonProperty("metricThresholds", jsonArray(
                                            jsonObject(
                                                jsonProperty("type", "IgnoreThreshold"),
                                                jsonProperty("spec", jsonObject(
                                                    jsonProperty("action", "Ignore")
                                                )),
                                                jsonProperty("criteria", jsonObject(
                                                    jsonProperty("type", "Absolute"),
                                                    jsonProperty("spec", jsonObject(
                                                        jsonProperty("greaterThan", 100)
                                                    ))
                                                )),
                                                jsonProperty("metricType", "Custom"),
                                                jsonProperty("metricName", "metric_cpu")
                                            ), 
                                            jsonObject(
                                                jsonProperty("type", "FailImmediately"),
                                                jsonProperty("spec", jsonObject(
                                                    jsonProperty("action", "FailAfterOccurrence"),
                                                    jsonProperty("spec", jsonObject(
                                                        jsonProperty("count", 2)
                                                    ))
                                                )),
                                                jsonProperty("criteria", jsonObject(
                                                    jsonProperty("type", "Absolute"),
                                                    jsonProperty("spec", jsonObject(
                                                        jsonProperty("greaterThan", 100)
                                                    ))
                                                )),
                                                jsonProperty("metricType", "Custom"),
                                                jsonProperty("metricName", "metric_cpu")
                                            )
                                        ))
                                    ), 
                                    jsonObject(
                                        jsonProperty("name", "name2"),
                                        jsonProperty("identifier", "identifier2"),
                                        jsonProperty("groupName", "g2"),
                                        jsonProperty("query", "metric=memory"),
                                        jsonProperty("queryParams", jsonObject(
                                            jsonProperty("serviceInstanceField", "_sourcehost")
                                        )),
                                        jsonProperty("riskProfile", jsonObject(
                                            jsonProperty("riskCategory", "Performance_Other"),
                                            jsonProperty("thresholdTypes", jsonArray("ACT_WHEN_HIGHER"))
                                        )),
                                        jsonProperty("liveMonitoringEnabled", "false"),
                                        jsonProperty("continuousVerificationEnabled", "false"),
                                        jsonProperty("sliEnabled", "false")
                                    )
                                ))
                            )))
                        .build())
                    .build())
                .build());
    
            //Sample template for Sumologic Log Health Source
            var example2 = new MonitoredService("example2", MonitoredServiceArgs.builder()
                .orgId("org_id")
                .projectId("project_id")
                .identifier("identifier")
                .request(MonitoredServiceRequestArgs.builder()
                    .name("name")
                    .type("Application")
                    .description("description")
                    .serviceRef("service_ref")
                    .environmentRef("environment_ref")
                    .tags(                
                        "foo:bar",
                        "bar:foo")
                    .healthSources(MonitoredServiceRequestHealthSourceArgs.builder()
                        .name("sumologic")
                        .identifier("sumo_metric_identifier")
                        .type("SumologicLogs")
                        .version("v2")
                        .spec(serializeJson(
                            jsonObject(
                                jsonProperty("connectorRef", "connectorRef"),
                                jsonProperty("queryDefinitions", jsonArray(
                                    jsonObject(
                                        jsonProperty("name", "log1"),
                                        jsonProperty("identifier", "log1"),
                                        jsonProperty("query", "*"),
                                        jsonProperty("groupName", "Logs Group"),
                                        jsonProperty("queryParams", jsonObject(
                                            jsonProperty("serviceInstanceField", "_sourcehost")
                                        ))
                                    ), 
                                    jsonObject(
                                        jsonProperty("name", "log2"),
                                        jsonProperty("identifier", "identifier2"),
                                        jsonProperty("groupName", "g2"),
                                        jsonProperty("query", "error"),
                                        jsonProperty("queryParams", jsonObject(
                                            jsonProperty("serviceInstanceField", "_sourcehost")
                                        ))
                                    )
                                ))
                            )))
                        .build())
                    .build())
                .build());
    
            //Sample template for Splunk Signal FX Health Source
            var example3 = new MonitoredService("example3", MonitoredServiceArgs.builder()
                .orgId("org_id")
                .projectId("project_id")
                .identifier("identifier")
                .request(MonitoredServiceRequestArgs.builder()
                    .name("name")
                    .type("Application")
                    .description("description")
                    .serviceRef("service_ref")
                    .environmentRef("environment_ref")
                    .tags(                
                        "foo:bar",
                        "bar:foo")
                    .healthSources(MonitoredServiceRequestHealthSourceArgs.builder()
                        .name("signalfxmetrics")
                        .identifier("signalfxmetrics")
                        .type("SplunkSignalFXMetrics")
                        .version("v2")
                        .spec(serializeJson(
                            jsonObject(
                                jsonProperty("connectorRef", "connectorRef"),
                                jsonProperty("queryDefinitions", jsonArray(
                                    jsonObject(
                                        jsonProperty("name", "metric_infra_cpu"),
                                        jsonProperty("identifier", "metric_infra_cpu"),
                                        jsonProperty("query", "***"),
                                        jsonProperty("groupName", "g"),
                                        jsonProperty("riskProfile", jsonObject(
                                            jsonProperty("riskCategory", "Errors"),
                                            jsonProperty("thresholdTypes", jsonArray(
                                                "ACT_WHEN_HIGHER", 
                                                "ACT_WHEN_LOWER"
                                            ))
                                        )),
                                        jsonProperty("liveMonitoringEnabled", "true"),
                                        jsonProperty("continuousVerificationEnabled", "true"),
                                        jsonProperty("sliEnabled", "false")
                                    ), 
                                    jsonObject(
                                        jsonProperty("name", "name2"),
                                        jsonProperty("identifier", "identifier2"),
                                        jsonProperty("groupName", "g2"),
                                        jsonProperty("query", "*"),
                                        jsonProperty("riskProfile", jsonObject(
                                            jsonProperty("riskCategory", "Performance_Other"),
                                            jsonProperty("thresholdTypes", jsonArray("ACT_WHEN_HIGHER"))
                                        )),
                                        jsonProperty("liveMonitoringEnabled", "true"),
                                        jsonProperty("continuousVerificationEnabled", "false"),
                                        jsonProperty("sliEnabled", "false"),
                                        jsonProperty("metricThresholds", jsonArray(
                                            jsonObject(
                                                jsonProperty("type", "IgnoreThreshold"),
                                                jsonProperty("spec", jsonObject(
                                                    jsonProperty("action", "Ignore")
                                                )),
                                                jsonProperty("criteria", jsonObject(
                                                    jsonProperty("type", "Absolute"),
                                                    jsonProperty("spec", jsonObject(
                                                        jsonProperty("greaterThan", 100)
                                                    ))
                                                )),
                                                jsonProperty("metrictype", "Custom"),
                                                jsonProperty("metricName", "identifier2")
                                            ), 
                                            jsonObject(
                                                jsonProperty("type", "FailImmediately"),
                                                jsonProperty("spec", jsonObject(
                                                    jsonProperty("action", "FailAfterOccurrence"),
                                                    jsonProperty("spec", jsonObject(
                                                        jsonProperty("count", 2)
                                                    ))
                                                )),
                                                jsonProperty("criteria", jsonObject(
                                                    jsonProperty("type", "Absolute"),
                                                    jsonProperty("spec", jsonObject(
                                                        jsonProperty("greaterThan", 100)
                                                    ))
                                                )),
                                                jsonProperty("metricType", "Custom"),
                                                jsonProperty("metricName", "identifier2")
                                            )
                                        ))
                                    )
                                ))
                            )))
                        .build())
                    .build())
                .build());
    
            //Sample template for Grafana Loki Log Health Source
            var example4 = new MonitoredService("example4", MonitoredServiceArgs.builder()
                .orgId("org_id")
                .projectId("project_id")
                .identifier("identifier")
                .request(MonitoredServiceRequestArgs.builder()
                    .name("name")
                    .type("Application")
                    .description("description")
                    .serviceRef("service_ref")
                    .environmentRef("environment_ref")
                    .tags(                
                        "foo:bar",
                        "bar:foo")
                    .healthSources(MonitoredServiceRequestHealthSourceArgs.builder()
                        .name("Test")
                        .identifier("Test")
                        .type("GrafanaLokiLogs")
                        .version("v2")
                        .spec(serializeJson(
                            jsonObject(
                                jsonProperty("connectorRef", "connectorRef"),
                                jsonProperty("queryDefinitions", jsonArray(
                                    jsonObject(
                                        jsonProperty("name", "Demo"),
                                        jsonProperty("identifier", "Demo"),
                                        jsonProperty("query", "{job=~\".+\"}"),
                                        jsonProperty("groupName", "Log_Group"),
                                        jsonProperty("queryParams", jsonObject(
                                            jsonProperty("serviceInstanceField", "job")
                                        ))
                                    ), 
                                    jsonObject(
                                        jsonProperty("name", "log2"),
                                        jsonProperty("identifier", "identifier2"),
                                        jsonProperty("groupName", "g2"),
                                        jsonProperty("query", "error"),
                                        jsonProperty("queryParams", jsonObject(
                                            jsonProperty("serviceInstanceField", "_sourcehost")
                                        )),
                                        jsonProperty("liveMonitoringEnabled", "false"),
                                        jsonProperty("continuousVerificationEnabled", "false"),
                                        jsonProperty("sliEnabled", "false")
                                    )
                                ))
                            )))
                        .build())
                    .build())
                .build());
    
            //Sample template for Azure Metrics Health Source
            var example5 = new MonitoredService("example5", MonitoredServiceArgs.builder()
                .orgId("org_id")
                .projectId("project_id")
                .identifier("identifier")
                .request(MonitoredServiceRequestArgs.builder()
                    .name("name")
                    .type("Application")
                    .description("description")
                    .serviceRef("service_ref")
                    .environmentRef("environment_ref")
                    .tags(                
                        "foo:bar",
                        "bar:foo")
                    .healthSources(MonitoredServiceRequestHealthSourceArgs.builder()
                        .name("azure metrics verify step")
                        .identifier("azure_metrics_verify_step")
                        .type("AzureMetrics")
                        .version("v2")
                        .spec(serializeJson(
                            jsonObject(
                                jsonProperty("connectorRef", "connectorRef"),
                                jsonProperty("queryDefinitions", jsonArray(
                                    jsonObject(
                                        jsonProperty("name", "metric"),
                                        jsonProperty("identifier", "metric"),
                                        jsonProperty("query", "default"),
                                        jsonProperty("groupName", "g1"),
                                        jsonProperty("queryParams", jsonObject(
                                            jsonProperty("serviceInstanceField", "host"),
                                            jsonProperty("index", "/subscriptions/12d2db62-5aa9-471d-84bb-faa489b3e319/resourceGroups/srm-test/providers/Microsoft.ContainerService/managedClusters/srm-test"),
                                            jsonProperty("healthSourceMetricName", "cpuUsagePercentage"),
                                            jsonProperty("healthSourceMetricNamespace", "insights.container/nodes"),
                                            jsonProperty("aggregationType", "average")
                                        )),
                                        jsonProperty("riskProfile", jsonObject(
                                            jsonProperty("riskCategory", "Performance_Other"),
                                            jsonProperty("thresholdTypes", jsonArray("ACT_WHEN_HIGHER"))
                                        )),
                                        jsonProperty("liveMonitoringEnabled", "true"),
                                        jsonProperty("continuousVerificationEnabled", "true"),
                                        jsonProperty("sliEnabled", "false"),
                                        jsonProperty("metricThresholds", jsonArray(
                                            jsonObject(
                                                jsonProperty("type", "IgnoreThreshold"),
                                                jsonProperty("spec", jsonObject(
                                                    jsonProperty("action", "Ignore")
                                                )),
                                                jsonProperty("criteria", jsonObject(
                                                    jsonProperty("type", "Absolute"),
                                                    jsonProperty("spec", jsonObject(
                                                        jsonProperty("greaterThan", 100)
                                                    ))
                                                )),
                                                jsonProperty("metrictype", "Custom"),
                                                jsonProperty("metricName", "metric")
                                            ), 
                                            jsonObject(
                                                jsonProperty("type", "FailImmediately"),
                                                jsonProperty("spec", jsonObject(
                                                    jsonProperty("action", "FailAfterOccurrence"),
                                                    jsonProperty("spec", jsonObject(
                                                        jsonProperty("count", 2)
                                                    ))
                                                )),
                                                jsonProperty("criteria", jsonObject(
                                                    jsonProperty("type", "Absolute"),
                                                    jsonProperty("spec", jsonObject(
                                                        jsonProperty("greaterThan", 100)
                                                    ))
                                                )),
                                                jsonProperty("metricType", "Custom"),
                                                jsonProperty("metricName", "metric")
                                            )
                                        ))
                                    ), 
                                    jsonObject(
                                        jsonProperty("name", "name2"),
                                        jsonProperty("identifier", "identifier2"),
                                        jsonProperty("groupName", "g2"),
                                        jsonProperty("queryParams", jsonObject(
                                            jsonProperty("serviceInstanceField", "host"),
                                            jsonProperty("index", "/subscriptions/12d2db62-5aa9-471d-84bb-faa489b3e319/resourceGroups/srm-test/providers/Microsoft.ContainerService/managedClusters/srm-test"),
                                            jsonProperty("healthSourceMetricName", "cpuUsagePercentage"),
                                            jsonProperty("healthSourceMetricNamespace", "insights.container/nodes"),
                                            jsonProperty("aggregationType", "average")
                                        )),
                                        jsonProperty("riskProfile", jsonObject(
                                            jsonProperty("riskCategory", "Performance_Other"),
                                            jsonProperty("thresholdTypes", jsonArray("ACT_WHEN_HIGHER"))
                                        )),
                                        jsonProperty("liveMonitoringEnabled", "false"),
                                        jsonProperty("continuousVerificationEnabled", "false"),
                                        jsonProperty("sliEnabled", "false")
                                    )
                                ))
                            )))
                        .build())
                    .build())
                .build());
    
            //Sample template for Azure Log Health Source
            var example6 = new MonitoredService("example6", MonitoredServiceArgs.builder()
                .orgId("org_id")
                .projectId("project_id")
                .identifier("identifier")
                .request(MonitoredServiceRequestArgs.builder()
                    .name("name")
                    .type("Application")
                    .description("description")
                    .serviceRef("service_ref")
                    .environmentRef("environment_ref")
                    .tags(                
                        "foo:bar",
                        "bar:foo")
                    .healthSources(MonitoredServiceRequestHealthSourceArgs.builder()
                        .name("Demo azure")
                        .identifier("Demo_azure")
                        .type("AzureLogs")
                        .version("v2")
                        .spec(serializeJson(
                            jsonObject(
                                jsonProperty("connectorRef", "connectorRef"),
                                jsonProperty("queryDefinitions", jsonArray(jsonObject(
                                    jsonProperty("name", "name2"),
                                    jsonProperty("identifier", "identifier2"),
                                    jsonProperty("groupName", "g2"),
                                    jsonProperty("query", "*"),
                                    jsonProperty("queryParams", jsonObject(
                                        jsonProperty("serviceInstanceField", "Name"),
                                        jsonProperty("timeStampIdentifier", "StartedTime"),
                                        jsonProperty("messageIdentifier", "Image"),
                                        jsonProperty("index", "/subscriptions/12d2db62-5aa9-471d-84bb-faa489b3e319/resourceGroups/srm-test/providers/Microsoft.ContainerService/managedClusters/srm-test")
                                    )),
                                    jsonProperty("liveMonitoringEnabled", "false"),
                                    jsonProperty("continuousVerificationEnabled", "false")
                                )))
                            )))
                        .build())
                    .build())
                .build());
    
            //Sample template for Prometheus Metrics Health Source
            var example7 = new MonitoredService("example7", MonitoredServiceArgs.builder()
                .orgId("org_id")
                .projectId("project_id")
                .identifier("identifier")
                .request(MonitoredServiceRequestArgs.builder()
                    .name("name")
                    .type("Application")
                    .description("description")
                    .serviceRef("service_ref")
                    .environmentRef("environment_ref")
                    .tags(                
                        "foo:bar",
                        "bar:foo")
                    .healthSources(MonitoredServiceRequestHealthSourceArgs.builder()
                        .name("prometheus metrics verify step")
                        .identifier("prometheus_metrics")
                        .type("Prometheus")
                        .spec(serializeJson(
                            jsonObject(
                                jsonProperty("connectorRef", "connectorRef"),
                                jsonProperty("metricDefinitions", jsonArray(jsonObject(
                                    jsonProperty("identifier", "Prometheus_Metric"),
                                    jsonProperty("metricName", "Prometheus Metric"),
                                    jsonProperty("riskProfile", jsonObject(
                                        jsonProperty("riskCategory", "Performance_Other"),
                                        jsonProperty("thresholdTypes", jsonArray("ACT_WHEN_HIGHER"))
                                    )),
                                    jsonProperty("analysis", jsonObject(
                                        jsonProperty("liveMonitoring", jsonObject(
                                            jsonProperty("enabled", true)
                                        )),
                                        jsonProperty("deploymentVerification", jsonObject(
                                            jsonProperty("enabled", true),
                                            jsonProperty("serviceInstanceFieldName", "pod_name")
                                        ))
                                    )),
                                    jsonProperty("query", "count(up{group=\"cv\",group=\"cv\"})"),
                                    jsonProperty("groupName", "met"),
                                    jsonProperty("isManualQuery", true)
                                ))),
                                jsonProperty("metricPacks", jsonArray(jsonObject(
                                    jsonProperty("identifier", "Custom"),
                                    jsonProperty("metricThresholds", jsonArray(
                                        jsonObject(
                                            jsonProperty("type", "IgnoreThreshold"),
                                            jsonProperty("spec", jsonObject(
                                                jsonProperty("action", "Ignore")
                                            )),
                                            jsonProperty("criteria", jsonObject(
                                                jsonProperty("type", "Absolute"),
                                                jsonProperty("spec", jsonObject(
                                                    jsonProperty("greaterThan", 100)
                                                ))
                                            )),
                                            jsonProperty("metrictype", "Custom"),
                                            jsonProperty("metricName", "Prometheus Metric")
                                        ), 
                                        jsonObject(
                                            jsonProperty("type", "FailImmediately"),
                                            jsonProperty("spec", jsonObject(
                                                jsonProperty("action", "FailAfterOccurrence"),
                                                jsonProperty("spec", jsonObject(
                                                    jsonProperty("count", 2)
                                                ))
                                            )),
                                            jsonProperty("criteria", jsonObject(
                                                jsonProperty("type", "Absolute"),
                                                jsonProperty("spec", jsonObject(
                                                    jsonProperty("greaterThan", 100)
                                                ))
                                            )),
                                            jsonProperty("metricType", "Custom"),
                                            jsonProperty("metricName", "Prometheus Metric")
                                        )
                                    ))
                                )))
                            )))
                        .build())
                    .build())
                .build());
    
            //Sample template for Datadog Metrics Health Source
            var example8 = new MonitoredService("example8", MonitoredServiceArgs.builder()
                .orgId("org_id")
                .projectId("project_id")
                .identifier("identifier")
                .request(MonitoredServiceRequestArgs.builder()
                    .name("name")
                    .type("Application")
                    .description("description")
                    .serviceRef("service_ref")
                    .environmentRef("environment_ref")
                    .tags(                
                        "foo:bar",
                        "bar:foo")
                    .healthSources(MonitoredServiceRequestHealthSourceArgs.builder()
                        .name("ddm")
                        .identifier("ddm")
                        .type("DatadogMetrics")
                        .spec(serializeJson(
                            jsonObject(
                                jsonProperty("connectorRef", "connectorRef"),
                                jsonProperty("feature", "Datadog Cloud Metrics"),
                                jsonProperty("metricDefinitions", jsonArray(
                                    jsonObject(
                                        jsonProperty("metricName", "metric"),
                                        jsonProperty("metricPath", "M1"),
                                        jsonProperty("identifier", "metric"),
                                        jsonProperty("query", """
    avg:kubernetes.cpu.limits{*}.rollup(avg, 60);
    avg:kubernetes.cpu.limits{*}.rollup(avg, 30);
    (a+b)/10                                    """),
                                        jsonProperty("isManualQuery", true),
                                        jsonProperty("isCustomCreatedMetric", true),
                                        jsonProperty("riskProfile", jsonObject(
                                            jsonProperty("riskCategory", "Performance_Other"),
                                            jsonProperty("thresholdTypes", jsonArray("ACT_WHEN_HIGHER"))
                                        )),
                                        jsonProperty("analysis", jsonObject(
                                            jsonProperty("liveMonitoring", jsonObject(
                                                jsonProperty("enabled", true)
                                            )),
                                            jsonProperty("deploymentVerification", jsonObject(
                                                jsonProperty("enabled", true),
                                                jsonProperty("serviceInstanceFieldName", "pod")
                                            ))
                                        ))
                                    ), 
                                    jsonObject(
                                        jsonProperty("metricName", "dashboard_metric_cpu"),
                                        jsonProperty("identifier", "metric_cpu"),
                                        jsonProperty("query", """
    avg:kubernetes.cpu.limits{*}.rollup(avg, 60);
    avg:kubernetes.cpu.limits{*}.rollup(avg, 30);
    (a+b)/10                                    """),
                                        jsonProperty("isManualQuery", false),
                                        jsonProperty("dashboardName", "dashboard"),
                                        jsonProperty("metricPath", "M1"),
                                        jsonProperty("groupingQuery", "avg:kubernetes.cpu.limits{*} by {host}.rollup(avg, 60)"),
                                        jsonProperty("metric", "kubernetes.cpu.limits"),
                                        jsonProperty("aggregation", "avg"),
                                        jsonProperty("isCustomCreatedMetric", true),
                                        jsonProperty("riskProfile", jsonObject(
                                            jsonProperty("riskCategory", "Performance_Other"),
                                            jsonProperty("thresholdTypes", jsonArray("ACT_WHEN_HIGHER"))
                                        )),
                                        jsonProperty("analysis", jsonObject(
                                            jsonProperty("liveMonitoring", jsonObject(
                                                jsonProperty("enabled", true)
                                            )),
                                            jsonProperty("deploymentVerification", jsonObject(
                                                jsonProperty("enabled", true),
                                                jsonProperty("serviceInstanceFieldName", "pod")
                                            ))
                                        ))
                                    )
                                )),
                                jsonProperty("metricPacks", jsonArray(jsonObject(
                                    jsonProperty("identifier", "Custom"),
                                    jsonProperty("metricThresholds", jsonArray(
                                        jsonObject(
                                            jsonProperty("type", "IgnoreThreshold"),
                                            jsonProperty("spec", jsonObject(
                                                jsonProperty("action", "Ignore")
                                            )),
                                            jsonProperty("criteria", jsonObject(
                                                jsonProperty("type", "Absolute"),
                                                jsonProperty("spec", jsonObject(
                                                    jsonProperty("greaterThan", 100)
                                                ))
                                            )),
                                            jsonProperty("metrictype", "Custom"),
                                            jsonProperty("metricName", "metric")
                                        ), 
                                        jsonObject(
                                            jsonProperty("type", "FailImmediately"),
                                            jsonProperty("spec", jsonObject(
                                                jsonProperty("action", "FailAfterOccurrence"),
                                                jsonProperty("spec", jsonObject(
                                                    jsonProperty("count", 2)
                                                ))
                                            )),
                                            jsonProperty("criteria", jsonObject(
                                                jsonProperty("type", "Absolute"),
                                                jsonProperty("spec", jsonObject(
                                                    jsonProperty("greaterThan", 100)
                                                ))
                                            )),
                                            jsonProperty("metricType", "Custom"),
                                            jsonProperty("metricName", "metric")
                                        )
                                    ))
                                )))
                            )))
                        .build())
                    .build())
                .build());
    
            //Sample template for New Relic Metrics Health Source
            var example9 = new MonitoredService("example9", MonitoredServiceArgs.builder()
                .orgId("org_id")
                .projectId("project_id")
                .identifier("identifier")
                .request(MonitoredServiceRequestArgs.builder()
                    .name("name")
                    .type("Application")
                    .description("description")
                    .serviceRef("service_ref")
                    .environmentRef("environment_ref")
                    .tags(                
                        "foo:bar",
                        "bar:foo")
                    .healthSources(MonitoredServiceRequestHealthSourceArgs.builder()
                        .name("name")
                        .identifier("identifier")
                        .type("NewRelic")
                        .spec(serializeJson(
                            jsonObject(
                                jsonProperty("connectorRef", "account.Newrelicautomation_do_not_delete"),
                                jsonProperty("feature", "apm"),
                                jsonProperty("applicationId", "107019083"),
                                jsonProperty("applicationName", "My Application"),
                                jsonProperty("metricData", jsonObject(
                                    jsonProperty("Performance", true)
                                )),
                                jsonProperty("metricPacks", jsonArray(jsonObject(
                                    jsonProperty("identifier", "Performance")
                                ))),
                                jsonProperty("newRelicMetricDefinitions", jsonArray(jsonObject(
                                    jsonProperty("identifier", "New_Relic_Metric"),
                                    jsonProperty("metricName", "New Relic Metric"),
                                    jsonProperty("riskProfile", jsonObject(
                                        jsonProperty("riskCategory", "Performance_Other"),
                                        jsonProperty("thresholdTypes", jsonArray("ACT_WHEN_HIGHER"))
                                    )),
                                    jsonProperty("analysis", jsonObject(
                                        jsonProperty("deploymentVerification", jsonObject(
                                            jsonProperty("enabled", true)
                                        ))
                                    )),
                                    jsonProperty("groupName", "group1"),
                                    jsonProperty("nrql", "SELECT count(apm.service.instance.count) FROM Metric WHERE appName LIKE 'My Application' TIMESERIES"),
                                    jsonProperty("responseMapping", jsonObject(
                                        jsonProperty("metricValueJsonPath", "$.['timeSeries'].[*].['results'].[*].['count']"),
                                        jsonProperty("timestampJsonPath", "$.['timeSeries'].[*].['beginTimeSeconds']")
                                    ))
                                ))),
                                jsonProperty("metricPacks", jsonArray(jsonObject(
                                    jsonProperty("identifier", "Custom"),
                                    jsonProperty("metricThresholds", jsonArray(
                                        jsonObject(
                                            jsonProperty("type", "IgnoreThreshold"),
                                            jsonProperty("spec", jsonObject(
                                                jsonProperty("action", "Ignore")
                                            )),
                                            jsonProperty("criteria", jsonObject(
                                                jsonProperty("type", "Absolute"),
                                                jsonProperty("spec", jsonObject(
                                                    jsonProperty("greaterThan", 100)
                                                ))
                                            )),
                                            jsonProperty("metricType", "Custom"),
                                            jsonProperty("metricName", "New Relic Metric")
                                        ), 
                                        jsonObject(
                                            jsonProperty("type", "FailImmediately"),
                                            jsonProperty("spec", jsonObject(
                                                jsonProperty("action", "FailAfterOccurrence"),
                                                jsonProperty("spec", jsonObject(
                                                    jsonProperty("count", 2)
                                                ))
                                            )),
                                            jsonProperty("criteria", jsonObject(
                                                jsonProperty("type", "Absolute"),
                                                jsonProperty("spec", jsonObject(
                                                    jsonProperty("greaterThan", 100)
                                                ))
                                            )),
                                            jsonProperty("metricType", "Custom"),
                                            jsonProperty("metricName", "New Relic Metric")
                                        )
                                    ))
                                )))
                            )))
                        .build())
                    .build())
                .build());
    
        }
    }
    
    resources:
      #Sample template for Elastic Search Log Health Source
      example:
        type: harness:platform:MonitoredService
        properties:
          orgId: org_id
          projectId: project_id
          identifier: identifier
          request:
            name: name
            type: Application
            description: description
            serviceRef: service_ref
            environmentRef: environment_ref
            tags:
              - foo:bar
              - bar:foo
            healthSources:
              - name: name
                identifier: identifier
                type: ElasticSearch
                version: v2
                spec:
                  fn::toJSON:
                    connectorRef: connectorRef
                    queryDefinitions:
                      - name: error_4xx
                        identifier: error_4xx_id
                        query: Bad Request
                        index: index
                        groupName: Logs_Group
                        queryParams:
                          index: index
                          serviceInstanceField: serviceInstanceIdentifier
                          timeStampIdentifier: timeStampIdentifier
                          timeStampFormat: timeStampFormat
                          messageIdentifier: messageIdentifier
                      - name: error_5xx
                        identifier: error_5xx_id
                        query: Internal Server Error
                        index: index2
                        groupName: Logs_Group
                        queryParams:
                          index: index
                          serviceInstanceField: serviceInstanceIdentifier
                          timeStampIdentifier: timeStampIdentifier
                          timeStampFormat: timeStampFormat
                          messageIdentifier: messageIdentifier
            changeSources:
              - name: BAC
                identifier: BAC
                type: PagerDuty
                enabled: true
                spec:
                  fn::toJSON:
                    connectorRef: account.pd
                    pagerDutyServiceId: P0N21OB
                category: Alert
              - name: FH
                identifier: FH
                type: CustomIncident
                enabled: true
                spec:
                  fn::toJSON:
                    name: FH
                    webhookUrl: https://harness.io/cv/api/account/sampleAcc/org/sampleOrg/project/sampleProj/webhook/custom-change?monitoredServiceIdentifier=checkout_prod&changeSourceIdentifier=FH
                    webhookCurlCommand: 'curl -X POST -H ''content-type: application/json'' -H ''X-Api-Key: sample_api_key'' --url ''https://harness.io/cv/api/account/sampleAcc/org/sampleOrg/project/sampleProj/webhook/custom-change?monitoredServiceIdentifier=checkout_prod&changeSourceIdentifier=FH'' -d ''{ "eventIdentifier": "<string>" (optional), "user": "user@harness.io", "startTime": timeInMs, "endTime": timeInMs, "eventDetail": { "description": "<String>", "changeEventDetailsLink": "urlString" (optional), "externalLinkToEntity": "urlString" (optional), "name": "changeEventName" } }'''
                    type: Alert
                category: Alert
              - name: customff
                identifier: customff
                type: CustomFF
                enabled: true
                category: FeatureFlag
                spec:
                  fn::toJSON:
                    type: FeatureFlag
              - name: customdeploy
                identifier: customdeploy
                type: CustomDeploy
                enabled: true
                category: Deployment
                spec:
                  fn::toJSON:
                    type: Deployment
              - name: customincident
                identifier: customincident
                type: CustomIncident
                enabled: true
                category: Alert
                spec:
                  fn::toJSON:
                    type: Alert
                    authorizationToken: abc
            notificationRuleRefs:
              - notificationRuleRef: notification_rule_ref
                enabled: true
              - notificationRuleRef: notification_rule_ref1
                enabled: false
      #Sample template for Sumologic Metrics Health Source
      example1:
        type: harness:platform:MonitoredService
        properties:
          orgId: org_id
          projectId: project_id
          identifier: identifier
          request:
            name: name
            type: Application
            description: description
            serviceRef: service_ref
            environmentRef: environment_ref
            tags:
              - foo:bar
              - bar:foo
            healthSources:
              - name: sumologicmetrics
                identifier: sumo_metric_identifier
                type: SumologicMetrics
                version: v2
                spec:
                  fn::toJSON:
                    connectorRef: connectorRef
                    queryDefinitions:
                      - name: metric_cpu
                        identifier: metric_cpu
                        query: metric=cpu
                        groupName: g1
                        queryParams:
                          serviceInstanceField: _sourcehost
                        riskProfile:
                          riskCategory: Performance_Other
                          thresholdTypes:
                            - ACT_WHEN_HIGHER
                        liveMonitoringEnabled: 'true'
                        continuousVerificationEnabled: 'true'
                        sliEnabled: 'false'
                        metricThresholds:
                          - type: IgnoreThreshold
                            spec:
                              action: Ignore
                            criteria:
                              type: Absolute
                              spec:
                                greaterThan: 100
                            metricType: Custom
                            metricName: metric_cpu
                          - type: FailImmediately
                            spec:
                              action: FailAfterOccurrence
                              spec:
                                count: 2
                            criteria:
                              type: Absolute
                              spec:
                                greaterThan: 100
                            metricType: Custom
                            metricName: metric_cpu
                      - name: name2
                        identifier: identifier2
                        groupName: g2
                        query: metric=memory
                        queryParams:
                          serviceInstanceField: _sourcehost
                        riskProfile:
                          riskCategory: Performance_Other
                          thresholdTypes:
                            - ACT_WHEN_HIGHER
                        liveMonitoringEnabled: 'false'
                        continuousVerificationEnabled: 'false'
                        sliEnabled: 'false'
      #Sample template for Sumologic Log Health Source
      example2:
        type: harness:platform:MonitoredService
        properties:
          orgId: org_id
          projectId: project_id
          identifier: identifier
          request:
            name: name
            type: Application
            description: description
            serviceRef: service_ref
            environmentRef: environment_ref
            tags:
              - foo:bar
              - bar:foo
            healthSources:
              - name: sumologic
                identifier: sumo_metric_identifier
                type: SumologicLogs
                version: v2
                spec:
                  fn::toJSON:
                    connectorRef: connectorRef
                    queryDefinitions:
                      - name: log1
                        identifier: log1
                        query: '*'
                        groupName: Logs Group
                        queryParams:
                          serviceInstanceField: _sourcehost
                      - name: log2
                        identifier: identifier2
                        groupName: g2
                        query: error
                        queryParams:
                          serviceInstanceField: _sourcehost
      #Sample template for Splunk Signal FX Health Source
      example3:
        type: harness:platform:MonitoredService
        properties:
          orgId: org_id
          projectId: project_id
          identifier: identifier
          request:
            name: name
            type: Application
            description: description
            serviceRef: service_ref
            environmentRef: environment_ref
            tags:
              - foo:bar
              - bar:foo
            healthSources:
              - name: signalfxmetrics
                identifier: signalfxmetrics
                type: SplunkSignalFXMetrics
                version: v2
                spec:
                  fn::toJSON:
                    connectorRef: connectorRef
                    queryDefinitions:
                      - name: metric_infra_cpu
                        identifier: metric_infra_cpu
                        query: '***'
                        groupName: g
                        riskProfile:
                          riskCategory: Errors
                          thresholdTypes:
                            - ACT_WHEN_HIGHER
                            - ACT_WHEN_LOWER
                        liveMonitoringEnabled: 'true'
                        continuousVerificationEnabled: 'true'
                        sliEnabled: 'false'
                      - name: name2
                        identifier: identifier2
                        groupName: g2
                        query: '*'
                        riskProfile:
                          riskCategory: Performance_Other
                          thresholdTypes:
                            - ACT_WHEN_HIGHER
                        liveMonitoringEnabled: 'true'
                        continuousVerificationEnabled: 'false'
                        sliEnabled: 'false'
                        metricThresholds:
                          - type: IgnoreThreshold
                            spec:
                              action: Ignore
                            criteria:
                              type: Absolute
                              spec:
                                greaterThan: 100
                            metrictype: Custom
                            metricName: identifier2
                          - type: FailImmediately
                            spec:
                              action: FailAfterOccurrence
                              spec:
                                count: 2
                            criteria:
                              type: Absolute
                              spec:
                                greaterThan: 100
                            metricType: Custom
                            metricName: identifier2
      #Sample template for Grafana Loki Log Health Source
      example4:
        type: harness:platform:MonitoredService
        properties:
          orgId: org_id
          projectId: project_id
          identifier: identifier
          request:
            name: name
            type: Application
            description: description
            serviceRef: service_ref
            environmentRef: environment_ref
            tags:
              - foo:bar
              - bar:foo
            healthSources:
              - name: Test
                identifier: Test
                type: GrafanaLokiLogs
                version: v2
                spec:
                  fn::toJSON:
                    connectorRef: connectorRef
                    queryDefinitions:
                      - name: Demo
                        identifier: Demo
                        query: '{job=~".+"}'
                        groupName: Log_Group
                        queryParams:
                          serviceInstanceField: job
                      - name: log2
                        identifier: identifier2
                        groupName: g2
                        query: error
                        queryParams:
                          serviceInstanceField: _sourcehost
                        liveMonitoringEnabled: 'false'
                        continuousVerificationEnabled: 'false'
                        sliEnabled: 'false'
      #Sample template for Azure Metrics Health Source
      example5:
        type: harness:platform:MonitoredService
        properties:
          orgId: org_id
          projectId: project_id
          identifier: identifier
          request:
            name: name
            type: Application
            description: description
            serviceRef: service_ref
            environmentRef: environment_ref
            tags:
              - foo:bar
              - bar:foo
            healthSources:
              - name: azure metrics verify step
                identifier: azure_metrics_verify_step
                type: AzureMetrics
                version: v2
                spec:
                  fn::toJSON:
                    connectorRef: connectorRef
                    queryDefinitions:
                      - name: metric
                        identifier: metric
                        query: default
                        groupName: g1
                        queryParams:
                          serviceInstanceField: host
                          index: /subscriptions/12d2db62-5aa9-471d-84bb-faa489b3e319/resourceGroups/srm-test/providers/Microsoft.ContainerService/managedClusters/srm-test
                          healthSourceMetricName: cpuUsagePercentage
                          healthSourceMetricNamespace: insights.container/nodes
                          aggregationType: average
                        riskProfile:
                          riskCategory: Performance_Other
                          thresholdTypes:
                            - ACT_WHEN_HIGHER
                        liveMonitoringEnabled: 'true'
                        continuousVerificationEnabled: 'true'
                        sliEnabled: 'false'
                        metricThresholds:
                          - type: IgnoreThreshold
                            spec:
                              action: Ignore
                            criteria:
                              type: Absolute
                              spec:
                                greaterThan: 100
                            metrictype: Custom
                            metricName: metric
                          - type: FailImmediately
                            spec:
                              action: FailAfterOccurrence
                              spec:
                                count: 2
                            criteria:
                              type: Absolute
                              spec:
                                greaterThan: 100
                            metricType: Custom
                            metricName: metric
                      - name: name2
                        identifier: identifier2
                        groupName: g2
                        queryParams:
                          serviceInstanceField: host
                          index: /subscriptions/12d2db62-5aa9-471d-84bb-faa489b3e319/resourceGroups/srm-test/providers/Microsoft.ContainerService/managedClusters/srm-test
                          healthSourceMetricName: cpuUsagePercentage
                          healthSourceMetricNamespace: insights.container/nodes
                          aggregationType: average
                        riskProfile:
                          riskCategory: Performance_Other
                          thresholdTypes:
                            - ACT_WHEN_HIGHER
                        liveMonitoringEnabled: 'false'
                        continuousVerificationEnabled: 'false'
                        sliEnabled: 'false'
      #Sample template for Azure Log Health Source
      example6:
        type: harness:platform:MonitoredService
        properties:
          orgId: org_id
          projectId: project_id
          identifier: identifier
          request:
            name: name
            type: Application
            description: description
            serviceRef: service_ref
            environmentRef: environment_ref
            tags:
              - foo:bar
              - bar:foo
            healthSources:
              - name: Demo azure
                identifier: Demo_azure
                type: AzureLogs
                version: v2
                spec:
                  fn::toJSON:
                    connectorRef: connectorRef
                    queryDefinitions:
                      - name: name2
                        identifier: identifier2
                        groupName: g2
                        query: '*'
                        queryParams:
                          serviceInstanceField: Name
                          timeStampIdentifier: StartedTime
                          messageIdentifier: Image
                          index: /subscriptions/12d2db62-5aa9-471d-84bb-faa489b3e319/resourceGroups/srm-test/providers/Microsoft.ContainerService/managedClusters/srm-test
                        liveMonitoringEnabled: 'false'
                        continuousVerificationEnabled: 'false'
      #Sample template for Prometheus Metrics Health Source
      example7:
        type: harness:platform:MonitoredService
        properties:
          orgId: org_id
          projectId: project_id
          identifier: identifier
          request:
            name: name
            type: Application
            description: description
            serviceRef: service_ref
            environmentRef: environment_ref
            tags:
              - foo:bar
              - bar:foo
            healthSources:
              - name: prometheus metrics verify step
                identifier: prometheus_metrics
                type: Prometheus
                spec:
                  fn::toJSON:
                    connectorRef: connectorRef
                    metricDefinitions:
                      - identifier: Prometheus_Metric
                        metricName: Prometheus Metric
                        riskProfile:
                          riskCategory: Performance_Other
                          thresholdTypes:
                            - ACT_WHEN_HIGHER
                        analysis:
                          liveMonitoring:
                            enabled: true
                          deploymentVerification:
                            enabled: true
                            serviceInstanceFieldName: pod_name
                        query: count(up{group="cv",group="cv"})
                        groupName: met
                        isManualQuery: true
                    metricPacks:
                      - identifier: Custom
                        metricThresholds:
                          - type: IgnoreThreshold
                            spec:
                              action: Ignore
                            criteria:
                              type: Absolute
                              spec:
                                greaterThan: 100
                            metrictype: Custom
                            metricName: Prometheus Metric
                          - type: FailImmediately
                            spec:
                              action: FailAfterOccurrence
                              spec:
                                count: 2
                            criteria:
                              type: Absolute
                              spec:
                                greaterThan: 100
                            metricType: Custom
                            metricName: Prometheus Metric
      #Sample template for Datadog Metrics Health Source
      example8:
        type: harness:platform:MonitoredService
        properties:
          orgId: org_id
          projectId: project_id
          identifier: identifier
          request:
            name: name
            type: Application
            description: description
            serviceRef: service_ref
            environmentRef: environment_ref
            tags:
              - foo:bar
              - bar:foo
            healthSources:
              - name: ddm
                identifier: ddm
                type: DatadogMetrics
                spec:
                  fn::toJSON:
                    connectorRef: connectorRef
                    feature: Datadog Cloud Metrics
                    metricDefinitions:
                      - metricName: metric
                        metricPath: M1
                        identifier: metric
                        query: |-
                          avg:kubernetes.cpu.limits{*}.rollup(avg, 60);
                          avg:kubernetes.cpu.limits{*}.rollup(avg, 30);
                          (a+b)/10                      
                        isManualQuery: true
                        isCustomCreatedMetric: true
                        riskProfile:
                          riskCategory: Performance_Other
                          thresholdTypes:
                            - ACT_WHEN_HIGHER
                        analysis:
                          liveMonitoring:
                            enabled: true
                          deploymentVerification:
                            enabled: true
                            serviceInstanceFieldName: pod
                      - metricName: dashboard_metric_cpu
                        identifier: metric_cpu
                        query: |-
                          avg:kubernetes.cpu.limits{*}.rollup(avg, 60);
                          avg:kubernetes.cpu.limits{*}.rollup(avg, 30);
                          (a+b)/10                      
                        isManualQuery: false
                        dashboardName: dashboard
                        metricPath: M1
                        groupingQuery: avg:kubernetes.cpu.limits{*} by {host}.rollup(avg, 60)
                        metric: kubernetes.cpu.limits
                        aggregation: avg
                        isCustomCreatedMetric: true
                        riskProfile:
                          riskCategory: Performance_Other
                          thresholdTypes:
                            - ACT_WHEN_HIGHER
                        analysis:
                          liveMonitoring:
                            enabled: true
                          deploymentVerification:
                            enabled: true
                            serviceInstanceFieldName: pod
                    metricPacks:
                      - identifier: Custom
                        metricThresholds:
                          - type: IgnoreThreshold
                            spec:
                              action: Ignore
                            criteria:
                              type: Absolute
                              spec:
                                greaterThan: 100
                            metrictype: Custom
                            metricName: metric
                          - type: FailImmediately
                            spec:
                              action: FailAfterOccurrence
                              spec:
                                count: 2
                            criteria:
                              type: Absolute
                              spec:
                                greaterThan: 100
                            metricType: Custom
                            metricName: metric
      #Sample template for New Relic Metrics Health Source
      example9:
        type: harness:platform:MonitoredService
        properties:
          orgId: org_id
          projectId: project_id
          identifier: identifier
          request:
            name: name
            type: Application
            description: description
            serviceRef: service_ref
            environmentRef: environment_ref
            tags:
              - foo:bar
              - bar:foo
            healthSources:
              - name: name
                identifier: identifier
                type: NewRelic
                spec:
                  fn::toJSON:
                    connectorRef: account.Newrelicautomation_do_not_delete
                    feature: apm
                    applicationId: '107019083'
                    applicationName: My Application
                    metricData:
                      Performance: true
                    metricPacks:
                      - identifier: Performance
                    newRelicMetricDefinitions:
                      - identifier: New_Relic_Metric
                        metricName: New Relic Metric
                        riskProfile:
                          riskCategory: Performance_Other
                          thresholdTypes:
                            - ACT_WHEN_HIGHER
                        analysis:
                          deploymentVerification:
                            enabled: true
                        groupName: group1
                        nrql: SELECT count(apm.service.instance.count) FROM Metric WHERE appName LIKE 'My Application' TIMESERIES
                        responseMapping:
                          metricValueJsonPath: $.['timeSeries'].[*].['results'].[*].['count']
                          timestampJsonPath: $.['timeSeries'].[*].['beginTimeSeconds']
                    metricPacks:
                      - identifier: Custom
                        metricThresholds:
                          - type: IgnoreThreshold
                            spec:
                              action: Ignore
                            criteria:
                              type: Absolute
                              spec:
                                greaterThan: 100
                            metricType: Custom
                            metricName: New Relic Metric
                          - type: FailImmediately
                            spec:
                              action: FailAfterOccurrence
                              spec:
                                count: 2
                            criteria:
                              type: Absolute
                              spec:
                                greaterThan: 100
                            metricType: Custom
                            metricName: New Relic Metric
    

    Create MonitoredService Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new MonitoredService(name: string, args: MonitoredServiceArgs, opts?: CustomResourceOptions);
    @overload
    def MonitoredService(resource_name: str,
                         args: MonitoredServiceArgs,
                         opts: Optional[ResourceOptions] = None)
    
    @overload
    def MonitoredService(resource_name: str,
                         opts: Optional[ResourceOptions] = None,
                         identifier: Optional[str] = None,
                         org_id: Optional[str] = None,
                         project_id: Optional[str] = None,
                         request: Optional[MonitoredServiceRequestArgs] = None)
    func NewMonitoredService(ctx *Context, name string, args MonitoredServiceArgs, opts ...ResourceOption) (*MonitoredService, error)
    public MonitoredService(string name, MonitoredServiceArgs args, CustomResourceOptions? opts = null)
    public MonitoredService(String name, MonitoredServiceArgs args)
    public MonitoredService(String name, MonitoredServiceArgs args, CustomResourceOptions options)
    
    type: harness:platform:MonitoredService
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    

    Parameters

    name string
    The unique name of the resource.
    args MonitoredServiceArgs
    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 MonitoredServiceArgs
    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 MonitoredServiceArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args MonitoredServiceArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args MonitoredServiceArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Constructor example

    The following reference example uses placeholder values for all input properties.

    var monitoredServiceResource = new Harness.Platform.MonitoredService("monitoredServiceResource", new()
    {
        Identifier = "string",
        OrgId = "string",
        ProjectId = "string",
        Request = new Harness.Platform.Inputs.MonitoredServiceRequestArgs
        {
            EnvironmentRef = "string",
            Type = "string",
            ServiceRef = "string",
            Name = "string",
            EnvironmentRefLists = new[]
            {
                "string",
            },
            HealthSources = new[]
            {
                new Harness.Platform.Inputs.MonitoredServiceRequestHealthSourceArgs
                {
                    Identifier = "string",
                    Name = "string",
                    Spec = "string",
                    Type = "string",
                    Version = "string",
                },
            },
            ChangeSources = new[]
            {
                new Harness.Platform.Inputs.MonitoredServiceRequestChangeSourceArgs
                {
                    Category = "string",
                    Identifier = "string",
                    Name = "string",
                    Type = "string",
                    Enabled = false,
                    Spec = "string",
                },
            },
            NotificationRuleRefs = new[]
            {
                new Harness.Platform.Inputs.MonitoredServiceRequestNotificationRuleRefArgs
                {
                    Enabled = false,
                    NotificationRuleRef = "string",
                },
            },
            Description = "string",
            Tags = new[]
            {
                "string",
            },
            TemplateRef = "string",
            Dependencies = new[]
            {
                new Harness.Platform.Inputs.MonitoredServiceRequestDependencyArgs
                {
                    MonitoredServiceIdentifier = "string",
                    Type = "string",
                    DependencyMetadata = "string",
                },
            },
            VersionLabel = "string",
        },
    });
    
    example, err := platform.NewMonitoredService(ctx, "monitoredServiceResource", &platform.MonitoredServiceArgs{
    	Identifier: pulumi.String("string"),
    	OrgId:      pulumi.String("string"),
    	ProjectId:  pulumi.String("string"),
    	Request: &platform.MonitoredServiceRequestArgs{
    		EnvironmentRef: pulumi.String("string"),
    		Type:           pulumi.String("string"),
    		ServiceRef:     pulumi.String("string"),
    		Name:           pulumi.String("string"),
    		EnvironmentRefLists: pulumi.StringArray{
    			pulumi.String("string"),
    		},
    		HealthSources: platform.MonitoredServiceRequestHealthSourceArray{
    			&platform.MonitoredServiceRequestHealthSourceArgs{
    				Identifier: pulumi.String("string"),
    				Name:       pulumi.String("string"),
    				Spec:       pulumi.String("string"),
    				Type:       pulumi.String("string"),
    				Version:    pulumi.String("string"),
    			},
    		},
    		ChangeSources: platform.MonitoredServiceRequestChangeSourceArray{
    			&platform.MonitoredServiceRequestChangeSourceArgs{
    				Category:   pulumi.String("string"),
    				Identifier: pulumi.String("string"),
    				Name:       pulumi.String("string"),
    				Type:       pulumi.String("string"),
    				Enabled:    pulumi.Bool(false),
    				Spec:       pulumi.String("string"),
    			},
    		},
    		NotificationRuleRefs: platform.MonitoredServiceRequestNotificationRuleRefArray{
    			&platform.MonitoredServiceRequestNotificationRuleRefArgs{
    				Enabled:             pulumi.Bool(false),
    				NotificationRuleRef: pulumi.String("string"),
    			},
    		},
    		Description: pulumi.String("string"),
    		Tags: pulumi.StringArray{
    			pulumi.String("string"),
    		},
    		TemplateRef: pulumi.String("string"),
    		Dependencies: platform.MonitoredServiceRequestDependencyArray{
    			&platform.MonitoredServiceRequestDependencyArgs{
    				MonitoredServiceIdentifier: pulumi.String("string"),
    				Type:                       pulumi.String("string"),
    				DependencyMetadata:         pulumi.String("string"),
    			},
    		},
    		VersionLabel: pulumi.String("string"),
    	},
    })
    
    var monitoredServiceResource = new MonitoredService("monitoredServiceResource", MonitoredServiceArgs.builder()
        .identifier("string")
        .orgId("string")
        .projectId("string")
        .request(MonitoredServiceRequestArgs.builder()
            .environmentRef("string")
            .type("string")
            .serviceRef("string")
            .name("string")
            .environmentRefLists("string")
            .healthSources(MonitoredServiceRequestHealthSourceArgs.builder()
                .identifier("string")
                .name("string")
                .spec("string")
                .type("string")
                .version("string")
                .build())
            .changeSources(MonitoredServiceRequestChangeSourceArgs.builder()
                .category("string")
                .identifier("string")
                .name("string")
                .type("string")
                .enabled(false)
                .spec("string")
                .build())
            .notificationRuleRefs(MonitoredServiceRequestNotificationRuleRefArgs.builder()
                .enabled(false)
                .notificationRuleRef("string")
                .build())
            .description("string")
            .tags("string")
            .templateRef("string")
            .dependencies(MonitoredServiceRequestDependencyArgs.builder()
                .monitoredServiceIdentifier("string")
                .type("string")
                .dependencyMetadata("string")
                .build())
            .versionLabel("string")
            .build())
        .build());
    
    monitored_service_resource = harness.platform.MonitoredService(