1. Packages
  2. Packages
  3. Newrelic Provider
  4. API Docs
  5. synthetics
  6. ScriptMonitor
Viewing docs for New Relic v5.67.0
published on Wednesday, May 20, 2026 by Pulumi
newrelic logo
Viewing docs for New Relic v5.67.0
published on Wednesday, May 20, 2026 by Pulumi

    Use this resource to create update, and delete a Script API or Script Browser Synthetics Monitor in New Relic.

    IMPORTANT: The Synthetics Legacy Runtime will reach its end-of-life on Aug 18, 2026 (SCRIPT_BROWSER) and Nov 18, 2026 (SCRIPT_API). As a consequence, using the legacy runtime with Synthetic monitor requests from the New Relic Terraform Provider will result in API errors. Starting with v3.51.0 of the New Relic Terraform Provider, configurations of Synthetic monitors without runtime attributes or comprising legacy runtime values will be deemed invalid.

    If your Synthetic monitors’ configuration is not updated already with new runtime values, upgrade as soon as possible to avoid these consequences. For more details and instructions, please see the detailed warning in the Deprecated Runtime section.

    Example Usage

    Type: SCRIPT_API
    import * as pulumi from "@pulumi/pulumi";
    import * as newrelic from "@pulumi/newrelic";
    
    const monitor = new newrelic.synthetics.ScriptMonitor("monitor", {
        status: "ENABLED",
        name: "script_monitor",
        type: "SCRIPT_API",
        locationsPublics: [
            "AP_SOUTH_1",
            "AP_EAST_1",
        ],
        period: "EVERY_6_HOURS",
        script: "console.log('it works!')",
        scriptLanguage: "JAVASCRIPT",
        runtimeType: "NODE_API",
        runtimeTypeVersion: "22.20.0",
        tags: [{
            key: "some_key",
            values: ["some_value"],
        }],
    });
    
    import pulumi
    import pulumi_newrelic as newrelic
    
    monitor = newrelic.synthetics.ScriptMonitor("monitor",
        status="ENABLED",
        name="script_monitor",
        type="SCRIPT_API",
        locations_publics=[
            "AP_SOUTH_1",
            "AP_EAST_1",
        ],
        period="EVERY_6_HOURS",
        script="console.log('it works!')",
        script_language="JAVASCRIPT",
        runtime_type="NODE_API",
        runtime_type_version="22.20.0",
        tags=[{
            "key": "some_key",
            "values": ["some_value"],
        }])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-newrelic/sdk/v5/go/newrelic/synthetics"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := synthetics.NewScriptMonitor(ctx, "monitor", &synthetics.ScriptMonitorArgs{
    			Status: pulumi.String("ENABLED"),
    			Name:   pulumi.String("script_monitor"),
    			Type:   pulumi.String("SCRIPT_API"),
    			LocationsPublics: pulumi.StringArray{
    				pulumi.String("AP_SOUTH_1"),
    				pulumi.String("AP_EAST_1"),
    			},
    			Period:             pulumi.String("EVERY_6_HOURS"),
    			Script:             pulumi.String("console.log('it works!')"),
    			ScriptLanguage:     pulumi.String("JAVASCRIPT"),
    			RuntimeType:        pulumi.String("NODE_API"),
    			RuntimeTypeVersion: pulumi.String("22.20.0"),
    			Tags: synthetics.ScriptMonitorTagArray{
    				&synthetics.ScriptMonitorTagArgs{
    					Key: pulumi.String("some_key"),
    					Values: pulumi.StringArray{
    						pulumi.String("some_value"),
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using NewRelic = Pulumi.NewRelic;
    
    return await Deployment.RunAsync(() => 
    {
        var monitor = new NewRelic.Synthetics.ScriptMonitor("monitor", new()
        {
            Status = "ENABLED",
            Name = "script_monitor",
            Type = "SCRIPT_API",
            LocationsPublics = new[]
            {
                "AP_SOUTH_1",
                "AP_EAST_1",
            },
            Period = "EVERY_6_HOURS",
            Script = "console.log('it works!')",
            ScriptLanguage = "JAVASCRIPT",
            RuntimeType = "NODE_API",
            RuntimeTypeVersion = "22.20.0",
            Tags = new[]
            {
                new NewRelic.Synthetics.Inputs.ScriptMonitorTagArgs
                {
                    Key = "some_key",
                    Values = new[]
                    {
                        "some_value",
                    },
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.newrelic.synthetics.ScriptMonitor;
    import com.pulumi.newrelic.synthetics.ScriptMonitorArgs;
    import com.pulumi.newrelic.synthetics.inputs.ScriptMonitorTagArgs;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var monitor = new ScriptMonitor("monitor", ScriptMonitorArgs.builder()
                .status("ENABLED")
                .name("script_monitor")
                .type("SCRIPT_API")
                .locationsPublics(            
                    "AP_SOUTH_1",
                    "AP_EAST_1")
                .period("EVERY_6_HOURS")
                .script("console.log('it works!')")
                .scriptLanguage("JAVASCRIPT")
                .runtimeType("NODE_API")
                .runtimeTypeVersion("22.20.0")
                .tags(ScriptMonitorTagArgs.builder()
                    .key("some_key")
                    .values("some_value")
                    .build())
                .build());
    
        }
    }
    
    resources:
      monitor:
        type: newrelic:synthetics:ScriptMonitor
        properties:
          status: ENABLED
          name: script_monitor
          type: SCRIPT_API
          locationsPublics:
            - AP_SOUTH_1
            - AP_EAST_1
          period: EVERY_6_HOURS
          script: console.log('it works!')
          scriptLanguage: JAVASCRIPT
          runtimeType: NODE_API
          runtimeTypeVersion: 22.20.0
          tags:
            - key: some_key
              values:
                - some_value
    
    Example coming soon!
    
    Type: SCRIPT_BROWSER
    import * as pulumi from "@pulumi/pulumi";
    import * as newrelic from "@pulumi/newrelic";
    
    const monitor = new newrelic.synthetics.ScriptMonitor("monitor", {
        status: "ENABLED",
        name: "script_monitor",
        type: "SCRIPT_BROWSER",
        locationsPublics: [
            "AP_SOUTH_1",
            "AP_EAST_1",
        ],
        period: "EVERY_HOUR",
        script: "$browser.get('https://one.newrelic.com')",
        runtimeTypeVersion: "LATEST",
        runtimeType: "CHROME_BROWSER",
        scriptLanguage: "JAVASCRIPT",
        devices: [
            "DESKTOP",
            "MOBILE_PORTRAIT",
            "TABLET_LANDSCAPE",
        ],
        browsers: ["CHROME"],
        enableScreenshotOnFailureAndScript: false,
        tags: [{
            key: "some_key",
            values: ["some_value"],
        }],
    });
    
    import pulumi
    import pulumi_newrelic as newrelic
    
    monitor = newrelic.synthetics.ScriptMonitor("monitor",
        status="ENABLED",
        name="script_monitor",
        type="SCRIPT_BROWSER",
        locations_publics=[
            "AP_SOUTH_1",
            "AP_EAST_1",
        ],
        period="EVERY_HOUR",
        script="$browser.get('https://one.newrelic.com')",
        runtime_type_version="LATEST",
        runtime_type="CHROME_BROWSER",
        script_language="JAVASCRIPT",
        devices=[
            "DESKTOP",
            "MOBILE_PORTRAIT",
            "TABLET_LANDSCAPE",
        ],
        browsers=["CHROME"],
        enable_screenshot_on_failure_and_script=False,
        tags=[{
            "key": "some_key",
            "values": ["some_value"],
        }])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-newrelic/sdk/v5/go/newrelic/synthetics"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := synthetics.NewScriptMonitor(ctx, "monitor", &synthetics.ScriptMonitorArgs{
    			Status: pulumi.String("ENABLED"),
    			Name:   pulumi.String("script_monitor"),
    			Type:   pulumi.String("SCRIPT_BROWSER"),
    			LocationsPublics: pulumi.StringArray{
    				pulumi.String("AP_SOUTH_1"),
    				pulumi.String("AP_EAST_1"),
    			},
    			Period:             pulumi.String("EVERY_HOUR"),
    			Script:             pulumi.String("$browser.get('https://one.newrelic.com')"),
    			RuntimeTypeVersion: pulumi.String("LATEST"),
    			RuntimeType:        pulumi.String("CHROME_BROWSER"),
    			ScriptLanguage:     pulumi.String("JAVASCRIPT"),
    			Devices: pulumi.StringArray{
    				pulumi.String("DESKTOP"),
    				pulumi.String("MOBILE_PORTRAIT"),
    				pulumi.String("TABLET_LANDSCAPE"),
    			},
    			Browsers: pulumi.StringArray{
    				pulumi.String("CHROME"),
    			},
    			EnableScreenshotOnFailureAndScript: pulumi.Bool(false),
    			Tags: synthetics.ScriptMonitorTagArray{
    				&synthetics.ScriptMonitorTagArgs{
    					Key: pulumi.String("some_key"),
    					Values: pulumi.StringArray{
    						pulumi.String("some_value"),
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using NewRelic = Pulumi.NewRelic;
    
    return await Deployment.RunAsync(() => 
    {
        var monitor = new NewRelic.Synthetics.ScriptMonitor("monitor", new()
        {
            Status = "ENABLED",
            Name = "script_monitor",
            Type = "SCRIPT_BROWSER",
            LocationsPublics = new[]
            {
                "AP_SOUTH_1",
                "AP_EAST_1",
            },
            Period = "EVERY_HOUR",
            Script = "$browser.get('https://one.newrelic.com')",
            RuntimeTypeVersion = "LATEST",
            RuntimeType = "CHROME_BROWSER",
            ScriptLanguage = "JAVASCRIPT",
            Devices = new[]
            {
                "DESKTOP",
                "MOBILE_PORTRAIT",
                "TABLET_LANDSCAPE",
            },
            Browsers = new[]
            {
                "CHROME",
            },
            EnableScreenshotOnFailureAndScript = false,
            Tags = new[]
            {
                new NewRelic.Synthetics.Inputs.ScriptMonitorTagArgs
                {
                    Key = "some_key",
                    Values = new[]
                    {
                        "some_value",
                    },
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.newrelic.synthetics.ScriptMonitor;
    import com.pulumi.newrelic.synthetics.ScriptMonitorArgs;
    import com.pulumi.newrelic.synthetics.inputs.ScriptMonitorTagArgs;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var monitor = new ScriptMonitor("monitor", ScriptMonitorArgs.builder()
                .status("ENABLED")
                .name("script_monitor")
                .type("SCRIPT_BROWSER")
                .locationsPublics(            
                    "AP_SOUTH_1",
                    "AP_EAST_1")
                .period("EVERY_HOUR")
                .script("$browser.get('https://one.newrelic.com')")
                .runtimeTypeVersion("LATEST")
                .runtimeType("CHROME_BROWSER")
                .scriptLanguage("JAVASCRIPT")
                .devices(            
                    "DESKTOP",
                    "MOBILE_PORTRAIT",
                    "TABLET_LANDSCAPE")
                .browsers("CHROME")
                .enableScreenshotOnFailureAndScript(false)
                .tags(ScriptMonitorTagArgs.builder()
                    .key("some_key")
                    .values("some_value")
                    .build())
                .build());
    
        }
    }
    
    resources:
      monitor:
        type: newrelic:synthetics:ScriptMonitor
        properties:
          status: ENABLED
          name: script_monitor
          type: SCRIPT_BROWSER
          locationsPublics:
            - AP_SOUTH_1
            - AP_EAST_1
          period: EVERY_HOUR
          script: $browser.get('https://one.newrelic.com')
          runtimeTypeVersion: LATEST
          runtimeType: CHROME_BROWSER
          scriptLanguage: JAVASCRIPT
          devices:
            - DESKTOP
            - MOBILE_PORTRAIT
            - TABLET_LANDSCAPE
          browsers:
            - CHROME
          enableScreenshotOnFailureAndScript: false
          tags:
            - key: some_key
              values:
                - some_value
    
    Example coming soon!
    

    See additional examples.

    Additional Examples

    Create a monitor with a private location

    The below example shows how you can define a private location and attach it to a monitor.

    NOTE: It can take up to 10 minutes for a private location to become available.

    Type: SCRIPT_API
    import * as pulumi from "@pulumi/pulumi";
    import * as newrelic from "@pulumi/newrelic";
    
    const location = new newrelic.synthetics.PrivateLocation("location", {
        description: "Example private location",
        name: "private_location",
        verifiedScriptExecution: true,
    });
    const monitor = new newrelic.synthetics.ScriptMonitor("monitor", {
        status: "ENABLED",
        name: "script_monitor",
        type: "SCRIPT_API",
        locationPrivates: [{
            guid: location.id,
            vsePassword: "secret",
        }],
        period: "EVERY_6_HOURS",
        script: "console.log('terraform integration test updated')",
        scriptLanguage: "JAVASCRIPT",
        runtimeType: "NODE_API",
        runtimeTypeVersion: "22.20.0",
        tags: [{
            key: "some_key",
            values: ["some_value"],
        }],
    });
    
    import pulumi
    import pulumi_newrelic as newrelic
    
    location = newrelic.synthetics.PrivateLocation("location",
        description="Example private location",
        name="private_location",
        verified_script_execution=True)
    monitor = newrelic.synthetics.ScriptMonitor("monitor",
        status="ENABLED",
        name="script_monitor",
        type="SCRIPT_API",
        location_privates=[{
            "guid": location.id,
            "vse_password": "secret",
        }],
        period="EVERY_6_HOURS",
        script="console.log('terraform integration test updated')",
        script_language="JAVASCRIPT",
        runtime_type="NODE_API",
        runtime_type_version="22.20.0",
        tags=[{
            "key": "some_key",
            "values": ["some_value"],
        }])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-newrelic/sdk/v5/go/newrelic/synthetics"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		location, err := synthetics.NewPrivateLocation(ctx, "location", &synthetics.PrivateLocationArgs{
    			Description:             pulumi.String("Example private location"),
    			Name:                    pulumi.String("private_location"),
    			VerifiedScriptExecution: pulumi.Bool(true),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = synthetics.NewScriptMonitor(ctx, "monitor", &synthetics.ScriptMonitorArgs{
    			Status: pulumi.String("ENABLED"),
    			Name:   pulumi.String("script_monitor"),
    			Type:   pulumi.String("SCRIPT_API"),
    			LocationPrivates: synthetics.ScriptMonitorLocationPrivateArray{
    				&synthetics.ScriptMonitorLocationPrivateArgs{
    					Guid:        location.ID(),
    					VsePassword: pulumi.String("secret"),
    				},
    			},
    			Period:             pulumi.String("EVERY_6_HOURS"),
    			Script:             pulumi.String("console.log('terraform integration test updated')"),
    			ScriptLanguage:     pulumi.String("JAVASCRIPT"),
    			RuntimeType:        pulumi.String("NODE_API"),
    			RuntimeTypeVersion: pulumi.String("22.20.0"),
    			Tags: synthetics.ScriptMonitorTagArray{
    				&synthetics.ScriptMonitorTagArgs{
    					Key: pulumi.String("some_key"),
    					Values: pulumi.StringArray{
    						pulumi.String("some_value"),
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using NewRelic = Pulumi.NewRelic;
    
    return await Deployment.RunAsync(() => 
    {
        var location = new NewRelic.Synthetics.PrivateLocation("location", new()
        {
            Description = "Example private location",
            Name = "private_location",
            VerifiedScriptExecution = true,
        });
    
        var monitor = new NewRelic.Synthetics.ScriptMonitor("monitor", new()
        {
            Status = "ENABLED",
            Name = "script_monitor",
            Type = "SCRIPT_API",
            LocationPrivates = new[]
            {
                new NewRelic.Synthetics.Inputs.ScriptMonitorLocationPrivateArgs
                {
                    Guid = location.Id,
                    VsePassword = "secret",
                },
            },
            Period = "EVERY_6_HOURS",
            Script = "console.log('terraform integration test updated')",
            ScriptLanguage = "JAVASCRIPT",
            RuntimeType = "NODE_API",
            RuntimeTypeVersion = "22.20.0",
            Tags = new[]
            {
                new NewRelic.Synthetics.Inputs.ScriptMonitorTagArgs
                {
                    Key = "some_key",
                    Values = new[]
                    {
                        "some_value",
                    },
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.newrelic.synthetics.PrivateLocation;
    import com.pulumi.newrelic.synthetics.PrivateLocationArgs;
    import com.pulumi.newrelic.synthetics.ScriptMonitor;
    import com.pulumi.newrelic.synthetics.ScriptMonitorArgs;
    import com.pulumi.newrelic.synthetics.inputs.ScriptMonitorLocationPrivateArgs;
    import com.pulumi.newrelic.synthetics.inputs.ScriptMonitorTagArgs;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var location = new PrivateLocation("location", PrivateLocationArgs.builder()
                .description("Example private location")
                .name("private_location")
                .verifiedScriptExecution(true)
                .build());
    
            var monitor = new ScriptMonitor("monitor", ScriptMonitorArgs.builder()
                .status("ENABLED")
                .name("script_monitor")
                .type("SCRIPT_API")
                .locationPrivates(ScriptMonitorLocationPrivateArgs.builder()
                    .guid(location.id())
                    .vsePassword("secret")
                    .build())
                .period("EVERY_6_HOURS")
                .script("console.log('terraform integration test updated')")
                .scriptLanguage("JAVASCRIPT")
                .runtimeType("NODE_API")
                .runtimeTypeVersion("22.20.0")
                .tags(ScriptMonitorTagArgs.builder()
                    .key("some_key")
                    .values("some_value")
                    .build())
                .build());
    
        }
    }
    
    resources:
      location:
        type: newrelic:synthetics:PrivateLocation
        properties:
          description: Example private location
          name: private_location
          verifiedScriptExecution: true
      monitor:
        type: newrelic:synthetics:ScriptMonitor
        properties:
          status: ENABLED
          name: script_monitor
          type: SCRIPT_API
          locationPrivates:
            - guid: ${location.id}
              vsePassword: secret
          period: EVERY_6_HOURS
          script: console.log('terraform integration test updated')
          scriptLanguage: JAVASCRIPT
          runtimeType: NODE_API
          runtimeTypeVersion: 22.20.0
          tags:
            - key: some_key
              values:
                - some_value
    
    Example coming soon!
    
    Type: SCRIPT_BROWSER
    import * as pulumi from "@pulumi/pulumi";
    import * as newrelic from "@pulumi/newrelic";
    
    const location = new newrelic.synthetics.PrivateLocation("location", {
        description: "Test Description",
        name: "private_location",
        verifiedScriptExecution: true,
    });
    const monitor = new newrelic.synthetics.ScriptMonitor("monitor", {
        status: "ENABLED",
        name: "script_monitor",
        type: "SCRIPT_BROWSER",
        period: "EVERY_HOUR",
        script: "$browser.get('https://one.newrelic.com')",
        runtimeTypeVersion: "LATEST",
        runtimeType: "CHROME_BROWSER",
        scriptLanguage: "JAVASCRIPT",
        devices: [
            "DESKTOP",
            "MOBILE_PORTRAIT",
            "TABLET_LANDSCAPE",
        ],
        browsers: ["CHROME"],
        enableScreenshotOnFailureAndScript: false,
        locationPrivates: [{
            guid: location.id,
            vsePassword: "secret",
        }],
        tags: [{
            key: "some_key",
            values: ["some_value"],
        }],
    });
    
    import pulumi
    import pulumi_newrelic as newrelic
    
    location = newrelic.synthetics.PrivateLocation("location",
        description="Test Description",
        name="private_location",
        verified_script_execution=True)
    monitor = newrelic.synthetics.ScriptMonitor("monitor",
        status="ENABLED",
        name="script_monitor",
        type="SCRIPT_BROWSER",
        period="EVERY_HOUR",
        script="$browser.get('https://one.newrelic.com')",
        runtime_type_version="LATEST",
        runtime_type="CHROME_BROWSER",
        script_language="JAVASCRIPT",
        devices=[
            "DESKTOP",
            "MOBILE_PORTRAIT",
            "TABLET_LANDSCAPE",
        ],
        browsers=["CHROME"],
        enable_screenshot_on_failure_and_script=False,
        location_privates=[{
            "guid": location.id,
            "vse_password": "secret",
        }],
        tags=[{
            "key": "some_key",
            "values": ["some_value"],
        }])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-newrelic/sdk/v5/go/newrelic/synthetics"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		location, err := synthetics.NewPrivateLocation(ctx, "location", &synthetics.PrivateLocationArgs{
    			Description:             pulumi.String("Test Description"),
    			Name:                    pulumi.String("private_location"),
    			VerifiedScriptExecution: pulumi.Bool(true),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = synthetics.NewScriptMonitor(ctx, "monitor", &synthetics.ScriptMonitorArgs{
    			Status:             pulumi.String("ENABLED"),
    			Name:               pulumi.String("script_monitor"),
    			Type:               pulumi.String("SCRIPT_BROWSER"),
    			Period:             pulumi.String("EVERY_HOUR"),
    			Script:             pulumi.String("$browser.get('https://one.newrelic.com')"),
    			RuntimeTypeVersion: pulumi.String("LATEST"),
    			RuntimeType:        pulumi.String("CHROME_BROWSER"),
    			ScriptLanguage:     pulumi.String("JAVASCRIPT"),
    			Devices: pulumi.StringArray{
    				pulumi.String("DESKTOP"),
    				pulumi.String("MOBILE_PORTRAIT"),
    				pulumi.String("TABLET_LANDSCAPE"),
    			},
    			Browsers: pulumi.StringArray{
    				pulumi.String("CHROME"),
    			},
    			EnableScreenshotOnFailureAndScript: pulumi.Bool(false),
    			LocationPrivates: synthetics.ScriptMonitorLocationPrivateArray{
    				&synthetics.ScriptMonitorLocationPrivateArgs{
    					Guid:        location.ID(),
    					VsePassword: pulumi.String("secret"),
    				},
    			},
    			Tags: synthetics.ScriptMonitorTagArray{
    				&synthetics.ScriptMonitorTagArgs{
    					Key: pulumi.String("some_key"),
    					Values: pulumi.StringArray{
    						pulumi.String("some_value"),
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using NewRelic = Pulumi.NewRelic;
    
    return await Deployment.RunAsync(() => 
    {
        var location = new NewRelic.Synthetics.PrivateLocation("location", new()
        {
            Description = "Test Description",
            Name = "private_location",
            VerifiedScriptExecution = true,
        });
    
        var monitor = new NewRelic.Synthetics.ScriptMonitor("monitor", new()
        {
            Status = "ENABLED",
            Name = "script_monitor",
            Type = "SCRIPT_BROWSER",
            Period = "EVERY_HOUR",
            Script = "$browser.get('https://one.newrelic.com')",
            RuntimeTypeVersion = "LATEST",
            RuntimeType = "CHROME_BROWSER",
            ScriptLanguage = "JAVASCRIPT",
            Devices = new[]
            {
                "DESKTOP",
                "MOBILE_PORTRAIT",
                "TABLET_LANDSCAPE",
            },
            Browsers = new[]
            {
                "CHROME",
            },
            EnableScreenshotOnFailureAndScript = false,
            LocationPrivates = new[]
            {
                new NewRelic.Synthetics.Inputs.ScriptMonitorLocationPrivateArgs
                {
                    Guid = location.Id,
                    VsePassword = "secret",
                },
            },
            Tags = new[]
            {
                new NewRelic.Synthetics.Inputs.ScriptMonitorTagArgs
                {
                    Key = "some_key",
                    Values = new[]
                    {
                        "some_value",
                    },
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.newrelic.synthetics.PrivateLocation;
    import com.pulumi.newrelic.synthetics.PrivateLocationArgs;
    import com.pulumi.newrelic.synthetics.ScriptMonitor;
    import com.pulumi.newrelic.synthetics.ScriptMonitorArgs;
    import com.pulumi.newrelic.synthetics.inputs.ScriptMonitorLocationPrivateArgs;
    import com.pulumi.newrelic.synthetics.inputs.ScriptMonitorTagArgs;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var location = new PrivateLocation("location", PrivateLocationArgs.builder()
                .description("Test Description")
                .name("private_location")
                .verifiedScriptExecution(true)
                .build());
    
            var monitor = new ScriptMonitor("monitor", ScriptMonitorArgs.builder()
                .status("ENABLED")
                .name("script_monitor")
                .type("SCRIPT_BROWSER")
                .period("EVERY_HOUR")
                .script("$browser.get('https://one.newrelic.com')")
                .runtimeTypeVersion("LATEST")
                .runtimeType("CHROME_BROWSER")
                .scriptLanguage("JAVASCRIPT")
                .devices(            
                    "DESKTOP",
                    "MOBILE_PORTRAIT",
                    "TABLET_LANDSCAPE")
                .browsers("CHROME")
                .enableScreenshotOnFailureAndScript(false)
                .locationPrivates(ScriptMonitorLocationPrivateArgs.builder()
                    .guid(location.id())
                    .vsePassword("secret")
                    .build())
                .tags(ScriptMonitorTagArgs.builder()
                    .key("some_key")
                    .values("some_value")
                    .build())
                .build());
    
        }
    }
    
    resources:
      location:
        type: newrelic:synthetics:PrivateLocation
        properties:
          description: Test Description
          name: private_location
          verifiedScriptExecution: true
      monitor:
        type: newrelic:synthetics:ScriptMonitor
        properties:
          status: ENABLED
          name: script_monitor
          type: SCRIPT_BROWSER
          period: EVERY_HOUR
          script: $browser.get('https://one.newrelic.com')
          runtimeTypeVersion: LATEST
          runtimeType: CHROME_BROWSER
          scriptLanguage: JAVASCRIPT
          devices:
            - DESKTOP
            - MOBILE_PORTRAIT
            - TABLET_LANDSCAPE
          browsers:
            - CHROME
          enableScreenshotOnFailureAndScript: false
          locationPrivates:
            - guid: ${location.id}
              vsePassword: secret
          tags:
            - key: some_key
              values:
                - some_value
    
    Example coming soon!
    

    Create a monitor and a secure credential

    The following example shows how to use dependsOn to create a monitor that uses a new secure credential. The dependsOn creates an explicit dependency between resources to ensure that the secure credential is created before the monitor that uses it.

    NOTE: Use the dependsOn when you are creating both monitor and its secure credentials together.

    Type: SCRIPT_BROWSER
    import * as pulumi from "@pulumi/pulumi";
    import * as newrelic from "@pulumi/newrelic";
    
    const exampleCredential = new newrelic.synthetics.SecureCredential("example_credential", {
        key: "TEST_SECURE_CREDENTIAL",
        value: "some_value",
    });
    const exampleScriptMonitor = new newrelic.synthetics.ScriptMonitor("example_script_monitor", {
        name: "script_monitor",
        type: "SCRIPT_BROWSER",
        period: "EVERY_HOUR",
        locationsPublics: ["US_EAST_1"],
        status: "ENABLED",
        script: `      var assert = require('assert');
          var secureCredential = secure.TEST_SECURE_CREDENTIAL;
    `,
        scriptLanguage: "JAVASCRIPT",
        runtimeType: "CHROME_BROWSER",
        runtimeTypeVersion: "LATEST",
    }, {
        dependsOn: [exampleCredential],
    });
    
    import pulumi
    import pulumi_newrelic as newrelic
    
    example_credential = newrelic.synthetics.SecureCredential("example_credential",
        key="TEST_SECURE_CREDENTIAL",
        value="some_value")
    example_script_monitor = newrelic.synthetics.ScriptMonitor("example_script_monitor",
        name="script_monitor",
        type="SCRIPT_BROWSER",
        period="EVERY_HOUR",
        locations_publics=["US_EAST_1"],
        status="ENABLED",
        script="""      var assert = require('assert');
          var secureCredential = $secure.TEST_SECURE_CREDENTIAL;
    """,
        script_language="JAVASCRIPT",
        runtime_type="CHROME_BROWSER",
        runtime_type_version="LATEST",
        opts = pulumi.ResourceOptions(depends_on=[example_credential]))
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-newrelic/sdk/v5/go/newrelic/synthetics"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		exampleCredential, err := synthetics.NewSecureCredential(ctx, "example_credential", &synthetics.SecureCredentialArgs{
    			Key:   pulumi.String("TEST_SECURE_CREDENTIAL"),
    			Value: pulumi.String("some_value"),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = synthetics.NewScriptMonitor(ctx, "example_script_monitor", &synthetics.ScriptMonitorArgs{
    			Name:   pulumi.String("script_monitor"),
    			Type:   pulumi.String("SCRIPT_BROWSER"),
    			Period: pulumi.String("EVERY_HOUR"),
    			LocationsPublics: pulumi.StringArray{
    				pulumi.String("US_EAST_1"),
    			},
    			Status:             pulumi.String("ENABLED"),
    			Script:             pulumi.String("      var assert = require('assert');\n      var secureCredential = $secure.TEST_SECURE_CREDENTIAL;\n"),
    			ScriptLanguage:     pulumi.String("JAVASCRIPT"),
    			RuntimeType:        pulumi.String("CHROME_BROWSER"),
    			RuntimeTypeVersion: pulumi.String("LATEST"),
    		}, pulumi.DependsOn([]pulumi.Resource{
    			exampleCredential,
    		}))
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using NewRelic = Pulumi.NewRelic;
    
    return await Deployment.RunAsync(() => 
    {
        var exampleCredential = new NewRelic.Synthetics.SecureCredential("example_credential", new()
        {
            Key = "TEST_SECURE_CREDENTIAL",
            Value = "some_value",
        });
    
        var exampleScriptMonitor = new NewRelic.Synthetics.ScriptMonitor("example_script_monitor", new()
        {
            Name = "script_monitor",
            Type = "SCRIPT_BROWSER",
            Period = "EVERY_HOUR",
            LocationsPublics = new[]
            {
                "US_EAST_1",
            },
            Status = "ENABLED",
            Script = @"      var assert = require('assert');
          var secureCredential = $secure.TEST_SECURE_CREDENTIAL;
    ",
            ScriptLanguage = "JAVASCRIPT",
            RuntimeType = "CHROME_BROWSER",
            RuntimeTypeVersion = "LATEST",
        }, new CustomResourceOptions
        {
            DependsOn =
            {
                exampleCredential,
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.newrelic.synthetics.SecureCredential;
    import com.pulumi.newrelic.synthetics.SecureCredentialArgs;
    import com.pulumi.newrelic.synthetics.ScriptMonitor;
    import com.pulumi.newrelic.synthetics.ScriptMonitorArgs;
    import com.pulumi.resources.CustomResourceOptions;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var exampleCredential = new SecureCredential("exampleCredential", SecureCredentialArgs.builder()
                .key("TEST_SECURE_CREDENTIAL")
                .value("some_value")
                .build());
    
            var exampleScriptMonitor = new ScriptMonitor("exampleScriptMonitor", ScriptMonitorArgs.builder()
                .name("script_monitor")
                .type("SCRIPT_BROWSER")
                .period("EVERY_HOUR")
                .locationsPublics("US_EAST_1")
                .status("ENABLED")
                .script("""
          var assert = require('assert');
          var secureCredential = $secure.TEST_SECURE_CREDENTIAL;
                """)
                .scriptLanguage("JAVASCRIPT")
                .runtimeType("CHROME_BROWSER")
                .runtimeTypeVersion("LATEST")
                .build(), CustomResourceOptions.builder()
                    .dependsOn(exampleCredential)
                    .build());
    
        }
    }
    
    resources:
      exampleScriptMonitor:
        type: newrelic:synthetics:ScriptMonitor
        name: example_script_monitor
        properties:
          name: script_monitor
          type: SCRIPT_BROWSER
          period: EVERY_HOUR
          locationsPublics:
            - US_EAST_1
          status: ENABLED
          script: |2
                  var assert = require('assert');
                  var secureCredential = $secure.TEST_SECURE_CREDENTIAL;
          scriptLanguage: JAVASCRIPT
          runtimeType: CHROME_BROWSER
          runtimeTypeVersion: LATEST
        options:
          dependsOn:
            - ${exampleCredential}
      exampleCredential:
        type: newrelic:synthetics:SecureCredential
        name: example_credential
        properties:
          key: TEST_SECURE_CREDENTIAL
          value: some_value
    
    Example coming soon!
    

    Create ScriptMonitor Resource

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

    Constructor syntax

    new ScriptMonitor(name: string, args: ScriptMonitorArgs, opts?: CustomResourceOptions);
    @overload
    def ScriptMonitor(resource_name: str,
                      args: ScriptMonitorArgs,
                      opts: Optional[ResourceOptions] = None)
    
    @overload
    def ScriptMonitor(resource_name: str,
                      opts: Optional[ResourceOptions] = None,
                      period: Optional[str] = None,
                      type: Optional[str] = None,
                      status: Optional[str] = None,
                      name: Optional[str] = None,
                      runtime_type: Optional[str] = None,
                      enable_screenshot_on_failure_and_script: Optional[bool] = None,
                      location_privates: Optional[Sequence[ScriptMonitorLocationPrivateArgs]] = None,
                      locations_publics: Optional[Sequence[str]] = None,
                      account_id: Optional[str] = None,
                      device_type: Optional[str] = None,
                      devices: Optional[Sequence[str]] = None,
                      runtime_type_version: Optional[str] = None,
                      script: Optional[str] = None,
                      script_language: Optional[str] = None,
                      device_orientation: Optional[str] = None,
                      tags: Optional[Sequence[ScriptMonitorTagArgs]] = None,
                      browsers: Optional[Sequence[str]] = None,
                      use_unsupported_legacy_runtime: Optional[bool] = None)
    func NewScriptMonitor(ctx *Context, name string, args ScriptMonitorArgs, opts ...ResourceOption) (*ScriptMonitor, error)
    public ScriptMonitor(string name, ScriptMonitorArgs args, CustomResourceOptions? opts = null)
    public ScriptMonitor(String name, ScriptMonitorArgs args)
    public ScriptMonitor(String name, ScriptMonitorArgs args, CustomResourceOptions options)
    
    type: newrelic:synthetics:ScriptMonitor
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    
    resource "newrelic_synthetics_scriptmonitor" "name" {
        # resource properties
    }

    Parameters

    name string
    The unique name of the resource.
    args ScriptMonitorArgs
    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 ScriptMonitorArgs
    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 ScriptMonitorArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args ScriptMonitorArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args ScriptMonitorArgs
    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 scriptMonitorResource = new NewRelic.Synthetics.ScriptMonitor("scriptMonitorResource", new()
    {
        Period = "string",
        Type = "string",
        Status = "string",
        Name = "string",
        RuntimeType = "string",
        EnableScreenshotOnFailureAndScript = false,
        LocationPrivates = new[]
        {
            new NewRelic.Synthetics.Inputs.ScriptMonitorLocationPrivateArgs
            {
                Guid = "string",
                VsePassword = "string",
            },
        },
        LocationsPublics = new[]
        {
            "string",
        },
        AccountId = "string",
        DeviceType = "string",
        Devices = new[]
        {
            "string",
        },
        RuntimeTypeVersion = "string",
        Script = "string",
        ScriptLanguage = "string",
        DeviceOrientation = "string",
        Tags = new[]
        {
            new NewRelic.Synthetics.Inputs.ScriptMonitorTagArgs
            {
                Key = "string",
                Values = new[]
                {
                    "string",
                },
            },
        },
        Browsers = new[]
        {
            "string",
        },
        UseUnsupportedLegacyRuntime = false,
    });
    
    example, err := synthetics.NewScriptMonitor(ctx, "scriptMonitorResource", &synthetics.ScriptMonitorArgs{
    	Period:                             pulumi.String("string"),
    	Type:                               pulumi.String("string"),
    	Status:                             pulumi.String("string"),
    	Name:                               pulumi.String("string"),
    	RuntimeType:                        pulumi.String("string"),
    	EnableScreenshotOnFailureAndScript: pulumi.Bool(false),
    	LocationPrivates: synthetics.ScriptMonitorLocationPrivateArray{
    		&synthetics.ScriptMonitorLocationPrivateArgs{
    			Guid:        pulumi.String("string"),
    			VsePassword: pulumi.String("string"),
    		},
    	},
    	LocationsPublics: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	AccountId:  pulumi.String("string"),
    	DeviceType: pulumi.String("string"),
    	Devices: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	RuntimeTypeVersion: pulumi.String("string"),
    	Script:             pulumi.String("string"),
    	ScriptLanguage:     pulumi.String("string"),
    	DeviceOrientation:  pulumi.String("string"),
    	Tags: synthetics.ScriptMonitorTagArray{
    		&synthetics.ScriptMonitorTagArgs{
    			Key: pulumi.String("string"),
    			Values: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    		},
    	},
    	Browsers: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	UseUnsupportedLegacyRuntime: pulumi.Bool(false),
    })
    
    resource "newrelic_synthetics_scriptmonitor" "scriptMonitorResource" {
      period                                  = "string"
      type                                    = "string"
      status                                  = "string"
      name                                    = "string"
      runtime_type                            = "string"
      enable_screenshot_on_failure_and_script = false
      location_privates {
        guid         = "string"
        vse_password = "string"
      }
      locations_publics    = ["string"]
      account_id           = "string"
      device_type          = "string"
      devices              = ["string"]
      runtime_type_version = "string"
      script               = "string"
      script_language      = "string"
      device_orientation   = "string"
      tags {
        key    = "string"
        values = ["string"]
      }
      browsers                       = ["string"]
      use_unsupported_legacy_runtime = false
    }
    
    var scriptMonitorResource = new ScriptMonitor("scriptMonitorResource", ScriptMonitorArgs.builder()
        .period("string")
        .type("string")
        .status("string")
        .name("string")
        .runtimeType("string")
        .enableScreenshotOnFailureAndScript(false)
        .locationPrivates(ScriptMonitorLocationPrivateArgs.builder()
            .guid("string")
            .vsePassword("string")
            .build())
        .locationsPublics("string")
        .accountId("string")
        .deviceType("string")
        .devices("string")
        .runtimeTypeVersion("string")
        .script("string")
        .scriptLanguage("string")
        .deviceOrientation("string")
        .tags(ScriptMonitorTagArgs.builder()
            .key("string")
            .values("string")
            .build())
        .browsers("string")
        .useUnsupportedLegacyRuntime(false)
        .build());
    
    script_monitor_resource = newrelic.synthetics.ScriptMonitor("scriptMonitorResource",
        period="string",
        type="string",
        status="string",
        name="string",
        runtime_type="string",
        enable_screenshot_on_failure_and_script=False,
        location_privates=[{
            "guid": "string",
            "vse_password": "string",
        }],
        locations_publics=["string"],
        account_id="string",
        device_type="string",
        devices=["string"],
        runtime_type_version="string",
        script="string",
        script_language="string",
        device_orientation="string",
        tags=[{
            "key": "string",
            "values": ["string"],
        }],
        browsers=["string"],
        use_unsupported_legacy_runtime=False)
    
    const scriptMonitorResource = new newrelic.synthetics.ScriptMonitor("scriptMonitorResource", {
        period: "string",
        type: "string",
        status: "string",
        name: "string",
        runtimeType: "string",
        enableScreenshotOnFailureAndScript: false,
        locationPrivates: [{
            guid: "string",
            vsePassword: "string",
        }],
        locationsPublics: ["string"],
        accountId: "string",
        deviceType: "string",
        devices: ["string"],
        runtimeTypeVersion: "string",
        script: "string",
        scriptLanguage: "string",
        deviceOrientation: "string",
        tags: [{
            key: "string",
            values: ["string"],
        }],
        browsers: ["string"],
        useUnsupportedLegacyRuntime: false,
    });
    
    type: newrelic:synthetics:ScriptMonitor
    properties:
        accountId: string
        browsers:
            - string
        deviceOrientation: string
        deviceType: string
        devices:
            - string
        enableScreenshotOnFailureAndScript: false
        locationPrivates:
            - guid: string
              vsePassword: string
        locationsPublics:
            - string
        name: string
        period: string
        runtimeType: string
        runtimeTypeVersion: string
        script: string
        scriptLanguage: string
        status: string
        tags:
            - key: string
              values:
                - string
        type: string
        useUnsupportedLegacyRuntime: false
    

    ScriptMonitor Resource Properties

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

    Inputs

    In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

    The ScriptMonitor resource accepts the following input properties:

    Period string
    The interval at which this monitor should run. Valid values are EVERY_MINUTE, EVERY_5_MINUTES, EVERY_10_MINUTES, EVERY_15_MINUTES, EVERY_30_MINUTES, EVERY_HOUR, EVERY_6_HOURS, EVERY_12_HOURS, or EVERY_DAY.
    Status string
    The run state of the monitor. (ENABLED or DISABLED).
    Type string
    The plaintext representing the monitor script. Valid values are SCRIPT_BROWSER or SCRIPT_API
    AccountId string
    The account in which the Synthetics monitor will be created.
    Browsers List<string>
    The multiple browsers list on which synthetic monitors will run. Valid values are CHROME and FIREFOX.
    DeviceOrientation string
    Device emulation orientation field. Valid values are LANDSCAPE and PORTRAIT. We recommend you to use devices field instead of deviceType,deviceOrientation fields, as it allows you to select multiple combinations of device types and orientations.
    DeviceType string

    Device emulation type field. Valid values are MOBILE and TABLET. We recommend you to use devices field instead of deviceType,deviceOrientation fields, as it allows you to select multiple combinations of device types and orientations.

    WARNING: The end-of-life of the Synthetics Legacy Runtime will take effect on Aug 18, 2026 (SCRIPT_BROWSER) and Nov 18, 2026 (SCRIPT_API), implying that support for using the deprecated Synthetics Legacy Runtime with new and existing Synthetic monitors will officially end on Aug 18, 2026 (SCRIPT_BROWSER) and Nov 18, 2026 (SCRIPT_API). As a consequence of this API change, all requests associated with Synthetic Monitors (except Ping Monitors) going out of the New Relic Terraform Provider will be blocked by an API error if they include values corresponding to the legacy runtime. Following these changes, starting with v3.51.0 of the New Relic Terraform Provider, configuration of new and existing Synthetic monitors without runtime attributes (or) comprising runtime attributes signifying the legacy runtime will be deemed invalid (this applies to all Synthetic monitor resources, except newrelic.synthetics.Monitor with type SIMPLE). If your monitors' configuration is not updated with new runtime values, you will see the consequences stated here. We kindly recommend that you upgrade your Synthetic Monitors to the new runtime as soon as possible if they are still using the legacy runtime, to avoid seeing the aforementioned consequences. Please check out this guide in the documentation of the Terraform Provider (specifically, the table at the bottom of the guide, if you're looking for updates to be made to the configuration of Synthetic monitors) and this announcement for more details on the EOL, actions needed, relevant resources, and more. You would not be affected by the EOL if your Synthetic monitors' Terraform configuration comprises new runtime values. Important — Scripted Monitor Specific Behavior: Unlike non-scripted monitors, the Terraform Provider does not automatically enforce a runtime version upgrade for scripted monitors (SCRIPT_API and SCRIPT_BROWSER). If you do not update your Terraform configuration before the respective force upgrade date, the Synthetics API will force-upgrade these monitors to the latest runtime (CHROME_BROWSER LATEST for SCRIPT_BROWSER on Aug 18, 2026; NODE_API 22.20.0 for SCRIPT_API on Nov 18, 2026). This will cause your Terraform state to drift — pulumi preview will show the runtime has changed, and a pulumi up without updating the configuration will fail with an API error. Update your configuration before these dates to avoid interruption.

    Devices List<string>
    The multiple devices list on which synthetic monitors will run. Valid values are DESKTOP, MOBILE_LANDSCAPE, MOBILE_PORTRAIT, TABLET_LANDSCAPE and TABLET_PORTRAIT.
    EnableScreenshotOnFailureAndScript bool
    Capture a screenshot during job execution.
    LocationPrivates List<Pulumi.NewRelic.Synthetics.Inputs.ScriptMonitorLocationPrivate>
    The location the monitor will run from. See Nested locationPrivate blocks below for details. At least one of either locationsPublic or locationPrivate is required.
    LocationsPublics List<string>
    The location the monitor will run from. Check out this page for a list of valid public locations. The AWS_ prefix is not needed, as the provider uses NerdGraph. At least one of either locationsPublic or locationPrivate is required.
    Name string
    The name for the monitor.
    RuntimeType string
    The runtime that the monitor will use to run jobs. For the SCRIPT_API monitor type, a valid value is NODE_API. For the SCRIPT_BROWSER monitor type, a valid value is CHROME_BROWSER.
    RuntimeTypeVersion string
    The specific version of the runtime type selected. For the SCRIPT_API monitor type, use 22.20.0, which corresponds to Node.js 22.20.0. For the SCRIPT_BROWSER monitor type, use LATEST to automatically use the latest Chrome version. Note: Unlike non-scripted monitors, the Terraform Provider does not automatically enforce a runtime version for scripted monitors — customers must explicitly update their configuration. If the configuration is not updated before the respective force upgrade date, the Synthetics API will force-upgrade these monitors to the latest runtime (SCRIPT_BROWSER monitors on Aug 18, 2026; SCRIPT_API monitors on Nov 18, 2026), resulting in Terraform state drift and API errors on subsequent pulumi up runs.
    Script string
    The script that the monitor runs.
    ScriptLanguage string
    The programing language that should execute the script.
    Tags List<Pulumi.NewRelic.Synthetics.Inputs.ScriptMonitorTag>

    The tags that will be associated with the monitor. See Nested tag blocks below for details.

    The SCRIPTED_BROWSER monitor type supports the following additional arguments:

    UseUnsupportedLegacyRuntime bool
    A boolean attribute to be set true by the customer, if they would like to use the unsupported legacy runtime of Synthetic Monitors by means of an exemption given until the October 22, 2024 Legacy Runtime EOL. Setting this attribute to true would allow skipping validation performed by the the New Relic Terraform Provider starting v3.43.0 to disallow using the legacy runtime with new monitors. This would, hence, allow creation of monitors in the legacy runtime until the October 22, 2024 Legacy Runtime EOL, if exempt by the API.
    Period string
    The interval at which this monitor should run. Valid values are EVERY_MINUTE, EVERY_5_MINUTES, EVERY_10_MINUTES, EVERY_15_MINUTES, EVERY_30_MINUTES, EVERY_HOUR, EVERY_6_HOURS, EVERY_12_HOURS, or EVERY_DAY.
    Status string
    The run state of the monitor. (ENABLED or DISABLED).
    Type string
    The plaintext representing the monitor script. Valid values are SCRIPT_BROWSER or SCRIPT_API
    AccountId string
    The account in which the Synthetics monitor will be created.
    Browsers []string
    The multiple browsers list on which synthetic monitors will run. Valid values are CHROME and FIREFOX.
    DeviceOrientation string
    Device emulation orientation field. Valid values are LANDSCAPE and PORTRAIT. We recommend you to use devices field instead of deviceType,deviceOrientation fields, as it allows you to select multiple combinations of device types and orientations.
    DeviceType string

    Device emulation type field. Valid values are MOBILE and TABLET. We recommend you to use devices field instead of deviceType,deviceOrientation fields, as it allows you to select multiple combinations of device types and orientations.

    WARNING: The end-of-life of the Synthetics Legacy Runtime will take effect on Aug 18, 2026 (SCRIPT_BROWSER) and Nov 18, 2026 (SCRIPT_API), implying that support for using the deprecated Synthetics Legacy Runtime with new and existing Synthetic monitors will officially end on Aug 18, 2026 (SCRIPT_BROWSER) and Nov 18, 2026 (SCRIPT_API). As a consequence of this API change, all requests associated with Synthetic Monitors (except Ping Monitors) going out of the New Relic Terraform Provider will be blocked by an API error if they include values corresponding to the legacy runtime. Following these changes, starting with v3.51.0 of the New Relic Terraform Provider, configuration of new and existing Synthetic monitors without runtime attributes (or) comprising runtime attributes signifying the legacy runtime will be deemed invalid (this applies to all Synthetic monitor resources, except newrelic.synthetics.Monitor with type SIMPLE). If your monitors' configuration is not updated with new runtime values, you will see the consequences stated here. We kindly recommend that you upgrade your Synthetic Monitors to the new runtime as soon as possible if they are still using the legacy runtime, to avoid seeing the aforementioned consequences. Please check out this guide in the documentation of the Terraform Provider (specifically, the table at the bottom of the guide, if you're looking for updates to be made to the configuration of Synthetic monitors) and this announcement for more details on the EOL, actions needed, relevant resources, and more. You would not be affected by the EOL if your Synthetic monitors' Terraform configuration comprises new runtime values. Important — Scripted Monitor Specific Behavior: Unlike non-scripted monitors, the Terraform Provider does not automatically enforce a runtime version upgrade for scripted monitors (SCRIPT_API and SCRIPT_BROWSER). If you do not update your Terraform configuration before the respective force upgrade date, the Synthetics API will force-upgrade these monitors to the latest runtime (CHROME_BROWSER LATEST for SCRIPT_BROWSER on Aug 18, 2026; NODE_API 22.20.0 for SCRIPT_API on Nov 18, 2026). This will cause your Terraform state to drift — pulumi preview will show the runtime has changed, and a pulumi up without updating the configuration will fail with an API error. Update your configuration before these dates to avoid interruption.

    Devices []string
    The multiple devices list on which synthetic monitors will run. Valid values are DESKTOP, MOBILE_LANDSCAPE, MOBILE_PORTRAIT, TABLET_LANDSCAPE and TABLET_PORTRAIT.
    EnableScreenshotOnFailureAndScript bool
    Capture a screenshot during job execution.
    LocationPrivates []ScriptMonitorLocationPrivateArgs
    The location the monitor will run from. See Nested locationPrivate blocks below for details. At least one of either locationsPublic or locationPrivate is required.
    LocationsPublics []string
    The location the monitor will run from. Check out this page for a list of valid public locations. The AWS_ prefix is not needed, as the provider uses NerdGraph. At least one of either locationsPublic or locationPrivate is required.
    Name string
    The name for the monitor.
    RuntimeType string
    The runtime that the monitor will use to run jobs. For the SCRIPT_API monitor type, a valid value is NODE_API. For the SCRIPT_BROWSER monitor type, a valid value is CHROME_BROWSER.
    RuntimeTypeVersion string
    The specific version of the runtime type selected. For the SCRIPT_API monitor type, use 22.20.0, which corresponds to Node.js 22.20.0. For the SCRIPT_BROWSER monitor type, use LATEST to automatically use the latest Chrome version. Note: Unlike non-scripted monitors, the Terraform Provider does not automatically enforce a runtime version for scripted monitors — customers must explicitly update their configuration. If the configuration is not updated before the respective force upgrade date, the Synthetics API will force-upgrade these monitors to the latest runtime (SCRIPT_BROWSER monitors on Aug 18, 2026; SCRIPT_API monitors on Nov 18, 2026), resulting in Terraform state drift and API errors on subsequent pulumi up runs.
    Script string
    The script that the monitor runs.
    ScriptLanguage string
    The programing language that should execute the script.
    Tags []ScriptMonitorTagArgs

    The tags that will be associated with the monitor. See Nested tag blocks below for details.

    The SCRIPTED_BROWSER monitor type supports the following additional arguments:

    UseUnsupportedLegacyRuntime bool
    A boolean attribute to be set true by the customer, if they would like to use the unsupported legacy runtime of Synthetic Monitors by means of an exemption given until the October 22, 2024 Legacy Runtime EOL. Setting this attribute to true would allow skipping validation performed by the the New Relic Terraform Provider starting v3.43.0 to disallow using the legacy runtime with new monitors. This would, hence, allow creation of monitors in the legacy runtime until the October 22, 2024 Legacy Runtime EOL, if exempt by the API.
    period string
    The interval at which this monitor should run. Valid values are EVERY_MINUTE, EVERY_5_MINUTES, EVERY_10_MINUTES, EVERY_15_MINUTES, EVERY_30_MINUTES, EVERY_HOUR, EVERY_6_HOURS, EVERY_12_HOURS, or EVERY_DAY.
    status string
    The run state of the monitor. (ENABLED or DISABLED).
    type string
    The plaintext representing the monitor script. Valid values are SCRIPT_BROWSER or SCRIPT_API
    account_id string
    The account in which the Synthetics monitor will be created.
    browsers list(string)
    The multiple browsers list on which synthetic monitors will run. Valid values are CHROME and FIREFOX.
    device_orientation string
    Device emulation orientation field. Valid values are LANDSCAPE and PORTRAIT. We recommend you to use devices field instead of deviceType,deviceOrientation fields, as it allows you to select multiple combinations of device types and orientations.
    device_type string

    Device emulation type field. Valid values are MOBILE and TABLET. We recommend you to use devices field instead of deviceType,deviceOrientation fields, as it allows you to select multiple combinations of device types and orientations.

    WARNING: The end-of-life of the Synthetics Legacy Runtime will take effect on Aug 18, 2026 (SCRIPT_BROWSER) and Nov 18, 2026 (SCRIPT_API), implying that support for using the deprecated Synthetics Legacy Runtime with new and existing Synthetic monitors will officially end on Aug 18, 2026 (SCRIPT_BROWSER) and Nov 18, 2026 (SCRIPT_API). As a consequence of this API change, all requests associated with Synthetic Monitors (except Ping Monitors) going out of the New Relic Terraform Provider will be blocked by an API error if they include values corresponding to the legacy runtime. Following these changes, starting with v3.51.0 of the New Relic Terraform Provider, configuration of new and existing Synthetic monitors without runtime attributes (or) comprising runtime attributes signifying the legacy runtime will be deemed invalid (this applies to all Synthetic monitor resources, except newrelic.synthetics.Monitor with type SIMPLE). If your monitors' configuration is not updated with new runtime values, you will see the consequences stated here. We kindly recommend that you upgrade your Synthetic Monitors to the new runtime as soon as possible if they are still using the legacy runtime, to avoid seeing the aforementioned consequences. Please check out this guide in the documentation of the Terraform Provider (specifically, the table at the bottom of the guide, if you're looking for updates to be made to the configuration of Synthetic monitors) and this announcement for more details on the EOL, actions needed, relevant resources, and more. You would not be affected by the EOL if your Synthetic monitors' Terraform configuration comprises new runtime values. Important — Scripted Monitor Specific Behavior: Unlike non-scripted monitors, the Terraform Provider does not automatically enforce a runtime version upgrade for scripted monitors (SCRIPT_API and SCRIPT_BROWSER). If you do not update your Terraform configuration before the respective force upgrade date, the Synthetics API will force-upgrade these monitors to the latest runtime (CHROME_BROWSER LATEST for SCRIPT_BROWSER on Aug 18, 2026; NODE_API 22.20.0 for SCRIPT_API on Nov 18, 2026). This will cause your Terraform state to drift — pulumi preview will show the runtime has changed, and a pulumi up without updating the configuration will fail with an API error. Update your configuration before these dates to avoid interruption.

    devices list(string)
    The multiple devices list on which synthetic monitors will run. Valid values are DESKTOP, MOBILE_LANDSCAPE, MOBILE_PORTRAIT, TABLET_LANDSCAPE and TABLET_PORTRAIT.
    enable_screenshot_on_failure_and_script bool
    Capture a screenshot during job execution.
    location_privates list(object)
    The location the monitor will run from. See Nested locationPrivate blocks below for details. At least one of either locationsPublic or locationPrivate is required.
    locations_publics list(string)
    The location the monitor will run from. Check out this page for a list of valid public locations. The AWS_ prefix is not needed, as the provider uses NerdGraph. At least one of either locationsPublic or locationPrivate is required.
    name string
    The name for the monitor.
    runtime_type string
    The runtime that the monitor will use to run jobs. For the SCRIPT_API monitor type, a valid value is NODE_API. For the SCRIPT_BROWSER monitor type, a valid value is CHROME_BROWSER.
    runtime_type_version string
    The specific version of the runtime type selected. For the SCRIPT_API monitor type, use 22.20.0, which corresponds to Node.js 22.20.0. For the SCRIPT_BROWSER monitor type, use LATEST to automatically use the latest Chrome version. Note: Unlike non-scripted monitors, the Terraform Provider does not automatically enforce a runtime version for scripted monitors — customers must explicitly update their configuration. If the configuration is not updated before the respective force upgrade date, the Synthetics API will force-upgrade these monitors to the latest runtime (SCRIPT_BROWSER monitors on Aug 18, 2026; SCRIPT_API monitors on Nov 18, 2026), resulting in Terraform state drift and API errors on subsequent pulumi up runs.
    script string
    The script that the monitor runs.
    script_language string
    The programing language that should execute the script.
    tags list(object)

    The tags that will be associated with the monitor. See Nested tag blocks below for details.

    The SCRIPTED_BROWSER monitor type supports the following additional arguments:

    use_unsupported_legacy_runtime bool
    A boolean attribute to be set true by the customer, if they would like to use the unsupported legacy runtime of Synthetic Monitors by means of an exemption given until the October 22, 2024 Legacy Runtime EOL. Setting this attribute to true would allow skipping validation performed by the the New Relic Terraform Provider starting v3.43.0 to disallow using the legacy runtime with new monitors. This would, hence, allow creation of monitors in the legacy runtime until the October 22, 2024 Legacy Runtime EOL, if exempt by the API.
    period String
    The interval at which this monitor should run. Valid values are EVERY_MINUTE, EVERY_5_MINUTES, EVERY_10_MINUTES, EVERY_15_MINUTES, EVERY_30_MINUTES, EVERY_HOUR, EVERY_6_HOURS, EVERY_12_HOURS, or EVERY_DAY.
    status String
    The run state of the monitor. (ENABLED or DISABLED).
    type String
    The plaintext representing the monitor script. Valid values are SCRIPT_BROWSER or SCRIPT_API
    accountId String
    The account in which the Synthetics monitor will be created.
    browsers List<String>
    The multiple browsers list on which synthetic monitors will run. Valid values are CHROME and FIREFOX.
    deviceOrientation String
    Device emulation orientation field. Valid values are LANDSCAPE and PORTRAIT. We recommend you to use devices field instead of deviceType,deviceOrientation fields, as it allows you to select multiple combinations of device types and orientations.
    deviceType String

    Device emulation type field. Valid values are MOBILE and TABLET. We recommend you to use devices field instead of deviceType,deviceOrientation fields, as it allows you to select multiple combinations of device types and orientations.

    WARNING: The end-of-life of the Synthetics Legacy Runtime will take effect on Aug 18, 2026 (SCRIPT_BROWSER) and Nov 18, 2026 (SCRIPT_API), implying that support for using the deprecated Synthetics Legacy Runtime with new and existing Synthetic monitors will officially end on Aug 18, 2026 (SCRIPT_BROWSER) and Nov 18, 2026 (SCRIPT_API). As a consequence of this API change, all requests associated with Synthetic Monitors (except Ping Monitors) going out of the New Relic Terraform Provider will be blocked by an API error if they include values corresponding to the legacy runtime. Following these changes, starting with v3.51.0 of the New Relic Terraform Provider, configuration of new and existing Synthetic monitors without runtime attributes (or) comprising runtime attributes signifying the legacy runtime will be deemed invalid (this applies to all Synthetic monitor resources, except newrelic.synthetics.Monitor with type SIMPLE). If your monitors' configuration is not updated with new runtime values, you will see the consequences stated here. We kindly recommend that you upgrade your Synthetic Monitors to the new runtime as soon as possible if they are still using the legacy runtime, to avoid seeing the aforementioned consequences. Please check out this guide in the documentation of the Terraform Provider (specifically, the table at the bottom of the guide, if you're looking for updates to be made to the configuration of Synthetic monitors) and this announcement for more details on the EOL, actions needed, relevant resources, and more. You would not be affected by the EOL if your Synthetic monitors' Terraform configuration comprises new runtime values. Important — Scripted Monitor Specific Behavior: Unlike non-scripted monitors, the Terraform Provider does not automatically enforce a runtime version upgrade for scripted monitors (SCRIPT_API and SCRIPT_BROWSER). If you do not update your Terraform configuration before the respective force upgrade date, the Synthetics API will force-upgrade these monitors to the latest runtime (CHROME_BROWSER LATEST for SCRIPT_BROWSER on Aug 18, 2026; NODE_API 22.20.0 for SCRIPT_API on Nov 18, 2026). This will cause your Terraform state to drift — pulumi preview will show the runtime has changed, and a pulumi up without updating the configuration will fail with an API error. Update your configuration before these dates to avoid interruption.

    devices List<String>
    The multiple devices list on which synthetic monitors will run. Valid values are DESKTOP, MOBILE_LANDSCAPE, MOBILE_PORTRAIT, TABLET_LANDSCAPE and TABLET_PORTRAIT.
    enableScreenshotOnFailureAndScript Boolean
    Capture a screenshot during job execution.
    locationPrivates List<ScriptMonitorLocationPrivate>
    The location the monitor will run from. See Nested locationPrivate blocks below for details. At least one of either locationsPublic or locationPrivate is required.
    locationsPublics List<String>
    The location the monitor will run from. Check out this page for a list of valid public locations. The AWS_ prefix is not needed, as the provider uses NerdGraph. At least one of either locationsPublic or locationPrivate is required.
    name String
    The name for the monitor.
    runtimeType String
    The runtime that the monitor will use to run jobs. For the SCRIPT_API monitor type, a valid value is NODE_API. For the SCRIPT_BROWSER monitor type, a valid value is CHROME_BROWSER.
    runtimeTypeVersion String
    The specific version of the runtime type selected. For the SCRIPT_API monitor type, use 22.20.0, which corresponds to Node.js 22.20.0. For the SCRIPT_BROWSER monitor type, use LATEST to automatically use the latest Chrome version. Note: Unlike non-scripted monitors, the Terraform Provider does not automatically enforce a runtime version for scripted monitors — customers must explicitly update their configuration. If the configuration is not updated before the respective force upgrade date, the Synthetics API will force-upgrade these monitors to the latest runtime (SCRIPT_BROWSER monitors on Aug 18, 2026; SCRIPT_API monitors on Nov 18, 2026), resulting in Terraform state drift and API errors on subsequent pulumi up runs.
    script String
    The script that the monitor runs.
    scriptLanguage String
    The programing language that should execute the script.
    tags List<ScriptMonitorTag>

    The tags that will be associated with the monitor. See Nested tag blocks below for details.

    The SCRIPTED_BROWSER monitor type supports the following additional arguments:

    useUnsupportedLegacyRuntime Boolean
    A boolean attribute to be set true by the customer, if they would like to use the unsupported legacy runtime of Synthetic Monitors by means of an exemption given until the October 22, 2024 Legacy Runtime EOL. Setting this attribute to true would allow skipping validation performed by the the New Relic Terraform Provider starting v3.43.0 to disallow using the legacy runtime with new monitors. This would, hence, allow creation of monitors in the legacy runtime until the October 22, 2024 Legacy Runtime EOL, if exempt by the API.
    period string
    The interval at which this monitor should run. Valid values are EVERY_MINUTE, EVERY_5_MINUTES, EVERY_10_MINUTES, EVERY_15_MINUTES, EVERY_30_MINUTES, EVERY_HOUR, EVERY_6_HOURS, EVERY_12_HOURS, or EVERY_DAY.
    status string
    The run state of the monitor. (ENABLED or DISABLED).
    type string
    The plaintext representing the monitor script. Valid values are SCRIPT_BROWSER or SCRIPT_API
    accountId string
    The account in which the Synthetics monitor will be created.
    browsers string[]
    The multiple browsers list on which synthetic monitors will run. Valid values are CHROME and FIREFOX.
    deviceOrientation string
    Device emulation orientation field. Valid values are LANDSCAPE and PORTRAIT. We recommend you to use devices field instead of deviceType,deviceOrientation fields, as it allows you to select multiple combinations of device types and orientations.
    deviceType string

    Device emulation type field. Valid values are MOBILE and TABLET. We recommend you to use devices field instead of deviceType,deviceOrientation fields, as it allows you to select multiple combinations of device types and orientations.

    WARNING: The end-of-life of the Synthetics Legacy Runtime will take effect on Aug 18, 2026 (SCRIPT_BROWSER) and Nov 18, 2026 (SCRIPT_API), implying that support for using the deprecated Synthetics Legacy Runtime with new and existing Synthetic monitors will officially end on Aug 18, 2026 (SCRIPT_BROWSER) and Nov 18, 2026 (SCRIPT_API). As a consequence of this API change, all requests associated with Synthetic Monitors (except Ping Monitors) going out of the New Relic Terraform Provider will be blocked by an API error if they include values corresponding to the legacy runtime. Following these changes, starting with v3.51.0 of the New Relic Terraform Provider, configuration of new and existing Synthetic monitors without runtime attributes (or) comprising runtime attributes signifying the legacy runtime will be deemed invalid (this applies to all Synthetic monitor resources, except newrelic.synthetics.Monitor with type SIMPLE). If your monitors' configuration is not updated with new runtime values, you will see the consequences stated here. We kindly recommend that you upgrade your Synthetic Monitors to the new runtime as soon as possible if they are still using the legacy runtime, to avoid seeing the aforementioned consequences. Please check out this guide in the documentation of the Terraform Provider (specifically, the table at the bottom of the guide, if you're looking for updates to be made to the configuration of Synthetic monitors) and this announcement for more details on the EOL, actions needed, relevant resources, and more. You would not be affected by the EOL if your Synthetic monitors' Terraform configuration comprises new runtime values. Important — Scripted Monitor Specific Behavior: Unlike non-scripted monitors, the Terraform Provider does not automatically enforce a runtime version upgrade for scripted monitors (SCRIPT_API and SCRIPT_BROWSER). If you do not update your Terraform configuration before the respective force upgrade date, the Synthetics API will force-upgrade these monitors to the latest runtime (CHROME_BROWSER LATEST for SCRIPT_BROWSER on Aug 18, 2026; NODE_API 22.20.0 for SCRIPT_API on Nov 18, 2026). This will cause your Terraform state to drift — pulumi preview will show the runtime has changed, and a pulumi up without updating the configuration will fail with an API error. Update your configuration before these dates to avoid interruption.

    devices string[]
    The multiple devices list on which synthetic monitors will run. Valid values are DESKTOP, MOBILE_LANDSCAPE, MOBILE_PORTRAIT, TABLET_LANDSCAPE and TABLET_PORTRAIT.
    enableScreenshotOnFailureAndScript boolean
    Capture a screenshot during job execution.
    locationPrivates ScriptMonitorLocationPrivate[]
    The location the monitor will run from. See Nested locationPrivate blocks below for details. At least one of either locationsPublic or locationPrivate is required.
    locationsPublics string[]
    The location the monitor will run from. Check out this page for a list of valid public locations. The AWS_ prefix is not needed, as the provider uses NerdGraph. At least one of either locationsPublic or locationPrivate is required.
    name string
    The name for the monitor.
    runtimeType string
    The runtime that the monitor will use to run jobs. For the SCRIPT_API monitor type, a valid value is NODE_API. For the SCRIPT_BROWSER monitor type, a valid value is CHROME_BROWSER.
    runtimeTypeVersion string
    The specific version of the runtime type selected. For the SCRIPT_API monitor type, use 22.20.0, which corresponds to Node.js 22.20.0. For the SCRIPT_BROWSER monitor type, use LATEST to automatically use the latest Chrome version. Note: Unlike non-scripted monitors, the Terraform Provider does not automatically enforce a runtime version for scripted monitors — customers must explicitly update their configuration. If the configuration is not updated before the respective force upgrade date, the Synthetics API will force-upgrade these monitors to the latest runtime (SCRIPT_BROWSER monitors on Aug 18, 2026; SCRIPT_API monitors on Nov 18, 2026), resulting in Terraform state drift and API errors on subsequent pulumi up runs.
    script string
    The script that the monitor runs.
    scriptLanguage string
    The programing language that should execute the script.
    tags ScriptMonitorTag[]

    The tags that will be associated with the monitor. See Nested tag blocks below for details.

    The SCRIPTED_BROWSER monitor type supports the following additional arguments:

    useUnsupportedLegacyRuntime boolean
    A boolean attribute to be set true by the customer, if they would like to use the unsupported legacy runtime of Synthetic Monitors by means of an exemption given until the October 22, 2024 Legacy Runtime EOL. Setting this attribute to true would allow skipping validation performed by the the New Relic Terraform Provider starting v3.43.0 to disallow using the legacy runtime with new monitors. This would, hence, allow creation of monitors in the legacy runtime until the October 22, 2024 Legacy Runtime EOL, if exempt by the API.
    period str
    The interval at which this monitor should run. Valid values are EVERY_MINUTE, EVERY_5_MINUTES, EVERY_10_MINUTES, EVERY_15_MINUTES, EVERY_30_MINUTES, EVERY_HOUR, EVERY_6_HOURS, EVERY_12_HOURS, or EVERY_DAY.
    status str
    The run state of the monitor. (ENABLED or DISABLED).
    type str
    The plaintext representing the monitor script. Valid values are SCRIPT_BROWSER or SCRIPT_API
    account_id str
    The account in which the Synthetics monitor will be created.
    browsers Sequence[str]
    The multiple browsers list on which synthetic monitors will run. Valid values are CHROME and FIREFOX.
    device_orientation str
    Device emulation orientation field. Valid values are LANDSCAPE and PORTRAIT. We recommend you to use devices field instead of deviceType,deviceOrientation fields, as it allows you to select multiple combinations of device types and orientations.
    device_type str

    Device emulation type field. Valid values are MOBILE and TABLET. We recommend you to use devices field instead of deviceType,deviceOrientation fields, as it allows you to select multiple combinations of device types and orientations.

    WARNING: The end-of-life of the Synthetics Legacy Runtime will take effect on Aug 18, 2026 (SCRIPT_BROWSER) and Nov 18, 2026 (SCRIPT_API), implying that support for using the deprecated Synthetics Legacy Runtime with new and existing Synthetic monitors will officially end on Aug 18, 2026 (SCRIPT_BROWSER) and Nov 18, 2026 (SCRIPT_API). As a consequence of this API change, all requests associated with Synthetic Monitors (except Ping Monitors) going out of the New Relic Terraform Provider will be blocked by an API error if they include values corresponding to the legacy runtime. Following these changes, starting with v3.51.0 of the New Relic Terraform Provider, configuration of new and existing Synthetic monitors without runtime attributes (or) comprising runtime attributes signifying the legacy runtime will be deemed invalid (this applies to all Synthetic monitor resources, except newrelic.synthetics.Monitor with type SIMPLE). If your monitors' configuration is not updated with new runtime values, you will see the consequences stated here. We kindly recommend that you upgrade your Synthetic Monitors to the new runtime as soon as possible if they are still using the legacy runtime, to avoid seeing the aforementioned consequences. Please check out this guide in the documentation of the Terraform Provider (specifically, the table at the bottom of the guide, if you're looking for updates to be made to the configuration of Synthetic monitors) and this announcement for more details on the EOL, actions needed, relevant resources, and more. You would not be affected by the EOL if your Synthetic monitors' Terraform configuration comprises new runtime values. Important — Scripted Monitor Specific Behavior: Unlike non-scripted monitors, the Terraform Provider does not automatically enforce a runtime version upgrade for scripted monitors (SCRIPT_API and SCRIPT_BROWSER). If you do not update your Terraform configuration before the respective force upgrade date, the Synthetics API will force-upgrade these monitors to the latest runtime (CHROME_BROWSER LATEST for SCRIPT_BROWSER on Aug 18, 2026; NODE_API 22.20.0 for SCRIPT_API on Nov 18, 2026). This will cause your Terraform state to drift — pulumi preview will show the runtime has changed, and a pulumi up without updating the configuration will fail with an API error. Update your configuration before these dates to avoid interruption.

    devices Sequence[str]
    The multiple devices list on which synthetic monitors will run. Valid values are DESKTOP, MOBILE_LANDSCAPE, MOBILE_PORTRAIT, TABLET_LANDSCAPE and TABLET_PORTRAIT.
    enable_screenshot_on_failure_and_script bool
    Capture a screenshot during job execution.
    location_privates Sequence[ScriptMonitorLocationPrivateArgs]
    The location the monitor will run from. See Nested locationPrivate blocks below for details. At least one of either locationsPublic or locationPrivate is required.
    locations_publics Sequence[str]
    The location the monitor will run from. Check out this page for a list of valid public locations. The AWS_ prefix is not needed, as the provider uses NerdGraph. At least one of either locationsPublic or locationPrivate is required.
    name str
    The name for the monitor.
    runtime_type str
    The runtime that the monitor will use to run jobs. For the SCRIPT_API monitor type, a valid value is NODE_API. For the SCRIPT_BROWSER monitor type, a valid value is CHROME_BROWSER.
    runtime_type_version str
    The specific version of the runtime type selected. For the SCRIPT_API monitor type, use 22.20.0, which corresponds to Node.js 22.20.0. For the SCRIPT_BROWSER monitor type, use LATEST to automatically use the latest Chrome version. Note: Unlike non-scripted monitors, the Terraform Provider does not automatically enforce a runtime version for scripted monitors — customers must explicitly update their configuration. If the configuration is not updated before the respective force upgrade date, the Synthetics API will force-upgrade these monitors to the latest runtime (SCRIPT_BROWSER monitors on Aug 18, 2026; SCRIPT_API monitors on Nov 18, 2026), resulting in Terraform state drift and API errors on subsequent pulumi up runs.
    script str
    The script that the monitor runs.
    script_language str
    The programing language that should execute the script.
    tags Sequence[ScriptMonitorTagArgs]

    The tags that will be associated with the monitor. See Nested tag blocks below for details.

    The SCRIPTED_BROWSER monitor type supports the following additional arguments:

    use_unsupported_legacy_runtime bool
    A boolean attribute to be set true by the customer, if they would like to use the unsupported legacy runtime of Synthetic Monitors by means of an exemption given until the October 22, 2024 Legacy Runtime EOL. Setting this attribute to true would allow skipping validation performed by the the New Relic Terraform Provider starting v3.43.0 to disallow using the legacy runtime with new monitors. This would, hence, allow creation of monitors in the legacy runtime until the October 22, 2024 Legacy Runtime EOL, if exempt by the API.
    period String
    The interval at which this monitor should run. Valid values are EVERY_MINUTE, EVERY_5_MINUTES, EVERY_10_MINUTES, EVERY_15_MINUTES, EVERY_30_MINUTES, EVERY_HOUR, EVERY_6_HOURS, EVERY_12_HOURS, or EVERY_DAY.
    status String
    The run state of the monitor. (ENABLED or DISABLED).
    type String
    The plaintext representing the monitor script. Valid values are SCRIPT_BROWSER or SCRIPT_API
    accountId String
    The account in which the Synthetics monitor will be created.
    browsers List<String>
    The multiple browsers list on which synthetic monitors will run. Valid values are CHROME and FIREFOX.
    deviceOrientation String
    Device emulation orientation field. Valid values are LANDSCAPE and PORTRAIT. We recommend you to use devices field instead of deviceType,deviceOrientation fields, as it allows you to select multiple combinations of device types and orientations.
    deviceType String

    Device emulation type field. Valid values are MOBILE and TABLET. We recommend you to use devices field instead of deviceType,deviceOrientation fields, as it allows you to select multiple combinations of device types and orientations.

    WARNING: The end-of-life of the Synthetics Legacy Runtime will take effect on Aug 18, 2026 (SCRIPT_BROWSER) and Nov 18, 2026 (SCRIPT_API), implying that support for using the deprecated Synthetics Legacy Runtime with new and existing Synthetic monitors will officially end on Aug 18, 2026 (SCRIPT_BROWSER) and Nov 18, 2026 (SCRIPT_API). As a consequence of this API change, all requests associated with Synthetic Monitors (except Ping Monitors) going out of the New Relic Terraform Provider will be blocked by an API error if they include values corresponding to the legacy runtime. Following these changes, starting with v3.51.0 of the New Relic Terraform Provider, configuration of new and existing Synthetic monitors without runtime attributes (or) comprising runtime attributes signifying the legacy runtime will be deemed invalid (this applies to all Synthetic monitor resources, except newrelic.synthetics.Monitor with type SIMPLE). If your monitors' configuration is not updated with new runtime values, you will see the consequences stated here. We kindly recommend that you upgrade your Synthetic Monitors to the new runtime as soon as possible if they are still using the legacy runtime, to avoid seeing the aforementioned consequences. Please check out this guide in the documentation of the Terraform Provider (specifically, the table at the bottom of the guide, if you're looking for updates to be made to the configuration of Synthetic monitors) and this announcement for more details on the EOL, actions needed, relevant resources, and more. You would not be affected by the EOL if your Synthetic monitors' Terraform configuration comprises new runtime values. Important — Scripted Monitor Specific Behavior: Unlike non-scripted monitors, the Terraform Provider does not automatically enforce a runtime version upgrade for scripted monitors (SCRIPT_API and SCRIPT_BROWSER). If you do not update your Terraform configuration before the respective force upgrade date, the Synthetics API will force-upgrade these monitors to the latest runtime (CHROME_BROWSER LATEST for SCRIPT_BROWSER on Aug 18, 2026; NODE_API 22.20.0 for SCRIPT_API on Nov 18, 2026). This will cause your Terraform state to drift — pulumi preview will show the runtime has changed, and a pulumi up without updating the configuration will fail with an API error. Update your configuration before these dates to avoid interruption.

    devices List<String>
    The multiple devices list on which synthetic monitors will run. Valid values are DESKTOP, MOBILE_LANDSCAPE, MOBILE_PORTRAIT, TABLET_LANDSCAPE and TABLET_PORTRAIT.
    enableScreenshotOnFailureAndScript Boolean
    Capture a screenshot during job execution.
    locationPrivates List<Property Map>
    The location the monitor will run from. See Nested locationPrivate blocks below for details. At least one of either locationsPublic or locationPrivate is required.
    locationsPublics List<String>
    The location the monitor will run from. Check out this page for a list of valid public locations. The AWS_ prefix is not needed, as the provider uses NerdGraph. At least one of either locationsPublic or locationPrivate is required.
    name String
    The name for the monitor.
    runtimeType String
    The runtime that the monitor will use to run jobs. For the SCRIPT_API monitor type, a valid value is NODE_API. For the SCRIPT_BROWSER monitor type, a valid value is CHROME_BROWSER.
    runtimeTypeVersion String
    The specific version of the runtime type selected. For the SCRIPT_API monitor type, use 22.20.0, which corresponds to Node.js 22.20.0. For the SCRIPT_BROWSER monitor type, use LATEST to automatically use the latest Chrome version. Note: Unlike non-scripted monitors, the Terraform Provider does not automatically enforce a runtime version for scripted monitors — customers must explicitly update their configuration. If the configuration is not updated before the respective force upgrade date, the Synthetics API will force-upgrade these monitors to the latest runtime (SCRIPT_BROWSER monitors on Aug 18, 2026; SCRIPT_API monitors on Nov 18, 2026), resulting in Terraform state drift and API errors on subsequent pulumi up runs.
    script String
    The script that the monitor runs.
    scriptLanguage String
    The programing language that should execute the script.
    tags List<Property Map>

    The tags that will be associated with the monitor. See Nested tag blocks below for details.

    The SCRIPTED_BROWSER monitor type supports the following additional arguments:

    useUnsupportedLegacyRuntime Boolean
    A boolean attribute to be set true by the customer, if they would like to use the unsupported legacy runtime of Synthetic Monitors by means of an exemption given until the October 22, 2024 Legacy Runtime EOL. Setting this attribute to true would allow skipping validation performed by the the New Relic Terraform Provider starting v3.43.0 to disallow using the legacy runtime with new monitors. This would, hence, allow creation of monitors in the legacy runtime until the October 22, 2024 Legacy Runtime EOL, if exempt by the API.

    Outputs

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

    Guid string
    The unique entity identifier of the monitor in New Relic.
    Id string
    The provider-assigned unique ID for this managed resource.
    MonitorId string
    The monitor id of the Synthetics script monitor (not to be confused with the GUID of the monitor).
    PeriodInMinutes int
    The interval in minutes at which Synthetic monitor should run.
    Guid string
    The unique entity identifier of the monitor in New Relic.
    Id string
    The provider-assigned unique ID for this managed resource.
    MonitorId string
    The monitor id of the Synthetics script monitor (not to be confused with the GUID of the monitor).
    PeriodInMinutes int
    The interval in minutes at which Synthetic monitor should run.
    guid string
    The unique entity identifier of the monitor in New Relic.
    id string
    The provider-assigned unique ID for this managed resource.
    monitor_id string
    The monitor id of the Synthetics script monitor (not to be confused with the GUID of the monitor).
    period_in_minutes number
    The interval in minutes at which Synthetic monitor should run.
    guid String
    The unique entity identifier of the monitor in New Relic.
    id String
    The provider-assigned unique ID for this managed resource.
    monitorId String
    The monitor id of the Synthetics script monitor (not to be confused with the GUID of the monitor).
    periodInMinutes Integer
    The interval in minutes at which Synthetic monitor should run.
    guid string
    The unique entity identifier of the monitor in New Relic.
    id string
    The provider-assigned unique ID for this managed resource.
    monitorId string
    The monitor id of the Synthetics script monitor (not to be confused with the GUID of the monitor).
    periodInMinutes number
    The interval in minutes at which Synthetic monitor should run.
    guid str
    The unique entity identifier of the monitor in New Relic.
    id str
    The provider-assigned unique ID for this managed resource.
    monitor_id str
    The monitor id of the Synthetics script monitor (not to be confused with the GUID of the monitor).
    period_in_minutes int
    The interval in minutes at which Synthetic monitor should run.
    guid String
    The unique entity identifier of the monitor in New Relic.
    id String
    The provider-assigned unique ID for this managed resource.
    monitorId String
    The monitor id of the Synthetics script monitor (not to be confused with the GUID of the monitor).
    periodInMinutes Number
    The interval in minutes at which Synthetic monitor should run.

    Look up Existing ScriptMonitor Resource

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

    public static get(name: string, id: Input<ID>, state?: ScriptMonitorState, opts?: CustomResourceOptions): ScriptMonitor
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            account_id: Optional[str] = None,
            browsers: Optional[Sequence[str]] = None,
            device_orientation: Optional[str] = None,
            device_type: Optional[str] = None,
            devices: Optional[Sequence[str]] = None,
            enable_screenshot_on_failure_and_script: Optional[bool] = None,
            guid: Optional[str] = None,
            location_privates: Optional[Sequence[ScriptMonitorLocationPrivateArgs]] = None,
            locations_publics: Optional[Sequence[str]] = None,
            monitor_id: Optional[str] = None,
            name: Optional[str] = None,
            period: Optional[str] = None,
            period_in_minutes: Optional[int] = None,
            runtime_type: Optional[str] = None,
            runtime_type_version: Optional[str] = None,
            script: Optional[str] = None,
            script_language: Optional[str] = None,
            status: Optional[str] = None,
            tags: Optional[Sequence[ScriptMonitorTagArgs]] = None,
            type: Optional[str] = None,
            use_unsupported_legacy_runtime: Optional[bool] = None) -> ScriptMonitor
    func GetScriptMonitor(ctx *Context, name string, id IDInput, state *ScriptMonitorState, opts ...ResourceOption) (*ScriptMonitor, error)
    public static ScriptMonitor Get(string name, Input<string> id, ScriptMonitorState? state, CustomResourceOptions? opts = null)
    public static ScriptMonitor get(String name, Output<String> id, ScriptMonitorState state, CustomResourceOptions options)
    resources:  _:    type: newrelic:synthetics:ScriptMonitor    get:      id: ${id}
    import {
      to = newrelic_synthetics_scriptmonitor.example
      id = "${id}"
    }
    
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    AccountId string
    The account in which the Synthetics monitor will be created.
    Browsers List<string>
    The multiple browsers list on which synthetic monitors will run. Valid values are CHROME and FIREFOX.
    DeviceOrientation string
    Device emulation orientation field. Valid values are LANDSCAPE and PORTRAIT. We recommend you to use devices field instead of deviceType,deviceOrientation fields, as it allows you to select multiple combinations of device types and orientations.
    DeviceType string

    Device emulation type field. Valid values are MOBILE and TABLET. We recommend you to use devices field instead of deviceType,deviceOrientation fields, as it allows you to select multiple combinations of device types and orientations.

    WARNING: The end-of-life of the Synthetics Legacy Runtime will take effect on Aug 18, 2026 (SCRIPT_BROWSER) and Nov 18, 2026 (SCRIPT_API), implying that support for using the deprecated Synthetics Legacy Runtime with new and existing Synthetic monitors will officially end on Aug 18, 2026 (SCRIPT_BROWSER) and Nov 18, 2026 (SCRIPT_API). As a consequence of this API change, all requests associated with Synthetic Monitors (except Ping Monitors) going out of the New Relic Terraform Provider will be blocked by an API error if they include values corresponding to the legacy runtime. Following these changes, starting with v3.51.0 of the New Relic Terraform Provider, configuration of new and existing Synthetic monitors without runtime attributes (or) comprising runtime attributes signifying the legacy runtime will be deemed invalid (this applies to all Synthetic monitor resources, except newrelic.synthetics.Monitor with type SIMPLE). If your monitors' configuration is not updated with new runtime values, you will see the consequences stated here. We kindly recommend that you upgrade your Synthetic Monitors to the new runtime as soon as possible if they are still using the legacy runtime, to avoid seeing the aforementioned consequences. Please check out this guide in the documentation of the Terraform Provider (specifically, the table at the bottom of the guide, if you're looking for updates to be made to the configuration of Synthetic monitors) and this announcement for more details on the EOL, actions needed, relevant resources, and more. You would not be affected by the EOL if your Synthetic monitors' Terraform configuration comprises new runtime values. Important — Scripted Monitor Specific Behavior: Unlike non-scripted monitors, the Terraform Provider does not automatically enforce a runtime version upgrade for scripted monitors (SCRIPT_API and SCRIPT_BROWSER). If you do not update your Terraform configuration before the respective force upgrade date, the Synthetics API will force-upgrade these monitors to the latest runtime (CHROME_BROWSER LATEST for SCRIPT_BROWSER on Aug 18, 2026; NODE_API 22.20.0 for SCRIPT_API on Nov 18, 2026). This will cause your Terraform state to drift — pulumi preview will show the runtime has changed, and a pulumi up without updating the configuration will fail with an API error. Update your configuration before these dates to avoid interruption.

    Devices List<string>
    The multiple devices list on which synthetic monitors will run. Valid values are DESKTOP, MOBILE_LANDSCAPE, MOBILE_PORTRAIT, TABLET_LANDSCAPE and TABLET_PORTRAIT.
    EnableScreenshotOnFailureAndScript bool
    Capture a screenshot during job execution.
    Guid string
    The unique entity identifier of the monitor in New Relic.
    LocationPrivates List<Pulumi.NewRelic.Synthetics.Inputs.ScriptMonitorLocationPrivate>
    The location the monitor will run from. See Nested locationPrivate blocks below for details. At least one of either locationsPublic or locationPrivate is required.
    LocationsPublics List<string>
    The location the monitor will run from. Check out this page for a list of valid public locations. The AWS_ prefix is not needed, as the provider uses NerdGraph. At least one of either locationsPublic or locationPrivate is required.
    MonitorId string
    The monitor id of the Synthetics script monitor (not to be confused with the GUID of the monitor).
    Name string
    The name for the monitor.
    Period string
    The interval at which this monitor should run. Valid values are EVERY_MINUTE, EVERY_5_MINUTES, EVERY_10_MINUTES, EVERY_15_MINUTES, EVERY_30_MINUTES, EVERY_HOUR, EVERY_6_HOURS, EVERY_12_HOURS, or EVERY_DAY.
    PeriodInMinutes int
    The interval in minutes at which Synthetic monitor should run.
    RuntimeType string
    The runtime that the monitor will use to run jobs. For the SCRIPT_API monitor type, a valid value is NODE_API. For the SCRIPT_BROWSER monitor type, a valid value is CHROME_BROWSER.
    RuntimeTypeVersion string
    The specific version of the runtime type selected. For the SCRIPT_API monitor type, use 22.20.0, which corresponds to Node.js 22.20.0. For the SCRIPT_BROWSER monitor type, use LATEST to automatically use the latest Chrome version. Note: Unlike non-scripted monitors, the Terraform Provider does not automatically enforce a runtime version for scripted monitors — customers must explicitly update their configuration. If the configuration is not updated before the respective force upgrade date, the Synthetics API will force-upgrade these monitors to the latest runtime (SCRIPT_BROWSER monitors on Aug 18, 2026; SCRIPT_API monitors on Nov 18, 2026), resulting in Terraform state drift and API errors on subsequent pulumi up runs.
    Script string
    The script that the monitor runs.
    ScriptLanguage string
    The programing language that should execute the script.
    Status string
    The run state of the monitor. (ENABLED or DISABLED).
    Tags List<Pulumi.NewRelic.Synthetics.Inputs.ScriptMonitorTag>

    The tags that will be associated with the monitor. See Nested tag blocks below for details.

    The SCRIPTED_BROWSER monitor type supports the following additional arguments:

    Type string
    The plaintext representing the monitor script. Valid values are SCRIPT_BROWSER or SCRIPT_API
    UseUnsupportedLegacyRuntime bool
    A boolean attribute to be set true by the customer, if they would like to use the unsupported legacy runtime of Synthetic Monitors by means of an exemption given until the October 22, 2024 Legacy Runtime EOL. Setting this attribute to true would allow skipping validation performed by the the New Relic Terraform Provider starting v3.43.0 to disallow using the legacy runtime with new monitors. This would, hence, allow creation of monitors in the legacy runtime until the October 22, 2024 Legacy Runtime EOL, if exempt by the API.
    AccountId string
    The account in which the Synthetics monitor will be created.
    Browsers []string
    The multiple browsers list on which synthetic monitors will run. Valid values are CHROME and FIREFOX.
    DeviceOrientation string
    Device emulation orientation field. Valid values are LANDSCAPE and PORTRAIT. We recommend you to use devices field instead of deviceType,deviceOrientation fields, as it allows you to select multiple combinations of device types and orientations.
    DeviceType string

    Device emulation type field. Valid values are MOBILE and TABLET. We recommend you to use devices field instead of deviceType,deviceOrientation fields, as it allows you to select multiple combinations of device types and orientations.

    WARNING: The end-of-life of the Synthetics Legacy Runtime will take effect on Aug 18, 2026 (SCRIPT_BROWSER) and Nov 18, 2026 (SCRIPT_API), implying that support for using the deprecated Synthetics Legacy Runtime with new and existing Synthetic monitors will officially end on Aug 18, 2026 (SCRIPT_BROWSER) and Nov 18, 2026 (SCRIPT_API). As a consequence of this API change, all requests associated with Synthetic Monitors (except Ping Monitors) going out of the New Relic Terraform Provider will be blocked by an API error if they include values corresponding to the legacy runtime. Following these changes, starting with v3.51.0 of the New Relic Terraform Provider, configuration of new and existing Synthetic monitors without runtime attributes (or) comprising runtime attributes signifying the legacy runtime will be deemed invalid (this applies to all Synthetic monitor resources, except newrelic.synthetics.Monitor with type SIMPLE). If your monitors' configuration is not updated with new runtime values, you will see the consequences stated here. We kindly recommend that you upgrade your Synthetic Monitors to the new runtime as soon as possible if they are still using the legacy runtime, to avoid seeing the aforementioned consequences. Please check out this guide in the documentation of the Terraform Provider (specifically, the table at the bottom of the guide, if you're looking for updates to be made to the configuration of Synthetic monitors) and this announcement for more details on the EOL, actions needed, relevant resources, and more. You would not be affected by the EOL if your Synthetic monitors' Terraform configuration comprises new runtime values. Important — Scripted Monitor Specific Behavior: Unlike non-scripted monitors, the Terraform Provider does not automatically enforce a runtime version upgrade for scripted monitors (SCRIPT_API and SCRIPT_BROWSER). If you do not update your Terraform configuration before the respective force upgrade date, the Synthetics API will force-upgrade these monitors to the latest runtime (CHROME_BROWSER LATEST for SCRIPT_BROWSER on Aug 18, 2026; NODE_API 22.20.0 for SCRIPT_API on Nov 18, 2026). This will cause your Terraform state to drift — pulumi preview will show the runtime has changed, and a pulumi up without updating the configuration will fail with an API error. Update your configuration before these dates to avoid interruption.

    Devices []string
    The multiple devices list on which synthetic monitors will run. Valid values are DESKTOP, MOBILE_LANDSCAPE, MOBILE_PORTRAIT, TABLET_LANDSCAPE and TABLET_PORTRAIT.
    EnableScreenshotOnFailureAndScript bool
    Capture a screenshot during job execution.
    Guid string
    The unique entity identifier of the monitor in New Relic.
    LocationPrivates []ScriptMonitorLocationPrivateArgs
    The location the monitor will run from. See Nested locationPrivate blocks below for details. At least one of either locationsPublic or locationPrivate is required.
    LocationsPublics []string
    The location the monitor will run from. Check out this page for a list of valid public locations. The AWS_ prefix is not needed, as the provider uses NerdGraph. At least one of either locationsPublic or locationPrivate is required.
    MonitorId string
    The monitor id of the Synthetics script monitor (not to be confused with the GUID of the monitor).
    Name string
    The name for the monitor.
    Period string
    The interval at which this monitor should run. Valid values are EVERY_MINUTE, EVERY_5_MINUTES, EVERY_10_MINUTES, EVERY_15_MINUTES, EVERY_30_MINUTES, EVERY_HOUR, EVERY_6_HOURS, EVERY_12_HOURS, or EVERY_DAY.
    PeriodInMinutes int
    The interval in minutes at which Synthetic monitor should run.
    RuntimeType string
    The runtime that the monitor will use to run jobs. For the SCRIPT_API monitor type, a valid value is NODE_API. For the SCRIPT_BROWSER monitor type, a valid value is CHROME_BROWSER.
    RuntimeTypeVersion string
    The specific version of the runtime type selected. For the SCRIPT_API monitor type, use 22.20.0, which corresponds to Node.js 22.20.0. For the SCRIPT_BROWSER monitor type, use LATEST to automatically use the latest Chrome version. Note: Unlike non-scripted monitors, the Terraform Provider does not automatically enforce a runtime version for scripted monitors — customers must explicitly update their configuration. If the configuration is not updated before the respective force upgrade date, the Synthetics API will force-upgrade these monitors to the latest runtime (SCRIPT_BROWSER monitors on Aug 18, 2026; SCRIPT_API monitors on Nov 18, 2026), resulting in Terraform state drift and API errors on subsequent pulumi up runs.
    Script string
    The script that the monitor runs.
    ScriptLanguage string
    The programing language that should execute the script.
    Status string
    The run state of the monitor. (ENABLED or DISABLED).
    Tags []ScriptMonitorTagArgs

    The tags that will be associated with the monitor. See Nested tag blocks below for details.

    The SCRIPTED_BROWSER monitor type supports the following additional arguments:

    Type string
    The plaintext representing the monitor script. Valid values are SCRIPT_BROWSER or SCRIPT_API
    UseUnsupportedLegacyRuntime bool
    A boolean attribute to be set true by the customer, if they would like to use the unsupported legacy runtime of Synthetic Monitors by means of an exemption given until the October 22, 2024 Legacy Runtime EOL. Setting this attribute to true would allow skipping validation performed by the the New Relic Terraform Provider starting v3.43.0 to disallow using the legacy runtime with new monitors. This would, hence, allow creation of monitors in the legacy runtime until the October 22, 2024 Legacy Runtime EOL, if exempt by the API.
    account_id string
    The account in which the Synthetics monitor will be created.
    browsers list(string)
    The multiple browsers list on which synthetic monitors will run. Valid values are CHROME and FIREFOX.
    device_orientation string
    Device emulation orientation field. Valid values are LANDSCAPE and PORTRAIT. We recommend you to use devices field instead of deviceType,deviceOrientation fields, as it allows you to select multiple combinations of device types and orientations.
    device_type string

    Device emulation type field. Valid values are MOBILE and TABLET. We recommend you to use devices field instead of deviceType,deviceOrientation fields, as it allows you to select multiple combinations of device types and orientations.

    WARNING: The end-of-life of the Synthetics Legacy Runtime will take effect on Aug 18, 2026 (SCRIPT_BROWSER) and Nov 18, 2026 (SCRIPT_API), implying that support for using the deprecated Synthetics Legacy Runtime with new and existing Synthetic monitors will officially end on Aug 18, 2026 (SCRIPT_BROWSER) and Nov 18, 2026 (SCRIPT_API). As a consequence of this API change, all requests associated with Synthetic Monitors (except Ping Monitors) going out of the New Relic Terraform Provider will be blocked by an API error if they include values corresponding to the legacy runtime. Following these changes, starting with v3.51.0 of the New Relic Terraform Provider, configuration of new and existing Synthetic monitors without runtime attributes (or) comprising runtime attributes signifying the legacy runtime will be deemed invalid (this applies to all Synthetic monitor resources, except newrelic.synthetics.Monitor with type SIMPLE). If your monitors' configuration is not updated with new runtime values, you will see the consequences stated here. We kindly recommend that you upgrade your Synthetic Monitors to the new runtime as soon as possible if they are still using the legacy runtime, to avoid seeing the aforementioned consequences. Please check out this guide in the documentation of the Terraform Provider (specifically, the table at the bottom of the guide, if you're looking for updates to be made to the configuration of Synthetic monitors) and this announcement for more details on the EOL, actions needed, relevant resources, and more. You would not be affected by the EOL if your Synthetic monitors' Terraform configuration comprises new runtime values. Important — Scripted Monitor Specific Behavior: Unlike non-scripted monitors, the Terraform Provider does not automatically enforce a runtime version upgrade for scripted monitors (SCRIPT_API and SCRIPT_BROWSER). If you do not update your Terraform configuration before the respective force upgrade date, the Synthetics API will force-upgrade these monitors to the latest runtime (CHROME_BROWSER LATEST for SCRIPT_BROWSER on Aug 18, 2026; NODE_API 22.20.0 for SCRIPT_API on Nov 18, 2026). This will cause your Terraform state to drift — pulumi preview will show the runtime has changed, and a pulumi up without updating the configuration will fail with an API error. Update your configuration before these dates to avoid interruption.

    devices list(string)
    The multiple devices list on which synthetic monitors will run. Valid values are DESKTOP, MOBILE_LANDSCAPE, MOBILE_PORTRAIT, TABLET_LANDSCAPE and TABLET_PORTRAIT.
    enable_screenshot_on_failure_and_script bool
    Capture a screenshot during job execution.
    guid string
    The unique entity identifier of the monitor in New Relic.
    location_privates list(object)
    The location the monitor will run from. See Nested locationPrivate blocks below for details. At least one of either locationsPublic or locationPrivate is required.
    locations_publics list(string)
    The location the monitor will run from. Check out this page for a list of valid public locations. The AWS_ prefix is not needed, as the provider uses NerdGraph. At least one of either locationsPublic or locationPrivate is required.
    monitor_id string
    The monitor id of the Synthetics script monitor (not to be confused with the GUID of the monitor).
    name string
    The name for the monitor.
    period string
    The interval at which this monitor should run. Valid values are EVERY_MINUTE, EVERY_5_MINUTES, EVERY_10_MINUTES, EVERY_15_MINUTES, EVERY_30_MINUTES, EVERY_HOUR, EVERY_6_HOURS, EVERY_12_HOURS, or EVERY_DAY.
    period_in_minutes number
    The interval in minutes at which Synthetic monitor should run.
    runtime_type string
    The runtime that the monitor will use to run jobs. For the SCRIPT_API monitor type, a valid value is NODE_API. For the SCRIPT_BROWSER monitor type, a valid value is CHROME_BROWSER.
    runtime_type_version string
    The specific version of the runtime type selected. For the SCRIPT_API monitor type, use 22.20.0, which corresponds to Node.js 22.20.0. For the SCRIPT_BROWSER monitor type, use LATEST to automatically use the latest Chrome version. Note: Unlike non-scripted monitors, the Terraform Provider does not automatically enforce a runtime version for scripted monitors — customers must explicitly update their configuration. If the configuration is not updated before the respective force upgrade date, the Synthetics API will force-upgrade these monitors to the latest runtime (SCRIPT_BROWSER monitors on Aug 18, 2026; SCRIPT_API monitors on Nov 18, 2026), resulting in Terraform state drift and API errors on subsequent pulumi up runs.
    script string
    The script that the monitor runs.
    script_language string
    The programing language that should execute the script.
    status string
    The run state of the monitor. (ENABLED or DISABLED).
    tags list(object)

    The tags that will be associated with the monitor. See Nested tag blocks below for details.

    The SCRIPTED_BROWSER monitor type supports the following additional arguments:

    type string
    The plaintext representing the monitor script. Valid values are SCRIPT_BROWSER or SCRIPT_API
    use_unsupported_legacy_runtime bool
    A boolean attribute to be set true by the customer, if they would like to use the unsupported legacy runtime of Synthetic Monitors by means of an exemption given until the October 22, 2024 Legacy Runtime EOL. Setting this attribute to true would allow skipping validation performed by the the New Relic Terraform Provider starting v3.43.0 to disallow using the legacy runtime with new monitors. This would, hence, allow creation of monitors in the legacy runtime until the October 22, 2024 Legacy Runtime EOL, if exempt by the API.
    accountId String
    The account in which the Synthetics monitor will be created.
    browsers List<String>
    The multiple browsers list on which synthetic monitors will run. Valid values are CHROME and FIREFOX.
    deviceOrientation String
    Device emulation orientation field. Valid values are LANDSCAPE and PORTRAIT. We recommend you to use devices field instead of deviceType,deviceOrientation fields, as it allows you to select multiple combinations of device types and orientations.
    deviceType String

    Device emulation type field. Valid values are MOBILE and TABLET. We recommend you to use devices field instead of deviceType,deviceOrientation fields, as it allows you to select multiple combinations of device types and orientations.

    WARNING: The end-of-life of the Synthetics Legacy Runtime will take effect on Aug 18, 2026 (SCRIPT_BROWSER) and Nov 18, 2026 (SCRIPT_API), implying that support for using the deprecated Synthetics Legacy Runtime with new and existing Synthetic monitors will officially end on Aug 18, 2026 (SCRIPT_BROWSER) and Nov 18, 2026 (SCRIPT_API). As a consequence of this API change, all requests associated with Synthetic Monitors (except Ping Monitors) going out of the New Relic Terraform Provider will be blocked by an API error if they include values corresponding to the legacy runtime. Following these changes, starting with v3.51.0 of the New Relic Terraform Provider, configuration of new and existing Synthetic monitors without runtime attributes (or) comprising runtime attributes signifying the legacy runtime will be deemed invalid (this applies to all Synthetic monitor resources, except newrelic.synthetics.Monitor with type SIMPLE). If your monitors' configuration is not updated with new runtime values, you will see the consequences stated here. We kindly recommend that you upgrade your Synthetic Monitors to the new runtime as soon as possible if they are still using the legacy runtime, to avoid seeing the aforementioned consequences. Please check out this guide in the documentation of the Terraform Provider (specifically, the table at the bottom of the guide, if you're looking for updates to be made to the configuration of Synthetic monitors) and this announcement for more details on the EOL, actions needed, relevant resources, and more. You would not be affected by the EOL if your Synthetic monitors' Terraform configuration comprises new runtime values. Important — Scripted Monitor Specific Behavior: Unlike non-scripted monitors, the Terraform Provider does not automatically enforce a runtime version upgrade for scripted monitors (SCRIPT_API and SCRIPT_BROWSER). If you do not update your Terraform configuration before the respective force upgrade date, the Synthetics API will force-upgrade these monitors to the latest runtime (CHROME_BROWSER LATEST for SCRIPT_BROWSER on Aug 18, 2026; NODE_API 22.20.0 for SCRIPT_API on Nov 18, 2026). This will cause your Terraform state to drift — pulumi preview will show the runtime has changed, and a pulumi up without updating the configuration will fail with an API error. Update your configuration before these dates to avoid interruption.

    devices List<String>
    The multiple devices list on which synthetic monitors will run. Valid values are DESKTOP, MOBILE_LANDSCAPE, MOBILE_PORTRAIT, TABLET_LANDSCAPE and TABLET_PORTRAIT.
    enableScreenshotOnFailureAndScript Boolean
    Capture a screenshot during job execution.
    guid String
    The unique entity identifier of the monitor in New Relic.
    locationPrivates List<ScriptMonitorLocationPrivate>
    The location the monitor will run from. See Nested locationPrivate blocks below for details. At least one of either locationsPublic or locationPrivate is required.
    locationsPublics List<String>
    The location the monitor will run from. Check out this page for a list of valid public locations. The AWS_ prefix is not needed, as the provider uses NerdGraph. At least one of either locationsPublic or locationPrivate is required.
    monitorId String
    The monitor id of the Synthetics script monitor (not to be confused with the GUID of the monitor).
    name String
    The name for the monitor.
    period String
    The interval at which this monitor should run. Valid values are EVERY_MINUTE, EVERY_5_MINUTES, EVERY_10_MINUTES, EVERY_15_MINUTES, EVERY_30_MINUTES, EVERY_HOUR, EVERY_6_HOURS, EVERY_12_HOURS, or EVERY_DAY.
    periodInMinutes Integer
    The interval in minutes at which Synthetic monitor should run.
    runtimeType String
    The runtime that the monitor will use to run jobs. For the SCRIPT_API monitor type, a valid value is NODE_API. For the SCRIPT_BROWSER monitor type, a valid value is CHROME_BROWSER.
    runtimeTypeVersion String
    The specific version of the runtime type selected. For the SCRIPT_API monitor type, use 22.20.0, which corresponds to Node.js 22.20.0. For the SCRIPT_BROWSER monitor type, use LATEST to automatically use the latest Chrome version. Note: Unlike non-scripted monitors, the Terraform Provider does not automatically enforce a runtime version for scripted monitors — customers must explicitly update their configuration. If the configuration is not updated before the respective force upgrade date, the Synthetics API will force-upgrade these monitors to the latest runtime (SCRIPT_BROWSER monitors on Aug 18, 2026; SCRIPT_API monitors on Nov 18, 2026), resulting in Terraform state drift and API errors on subsequent pulumi up runs.
    script String
    The script that the monitor runs.
    scriptLanguage String
    The programing language that should execute the script.
    status String
    The run state of the monitor. (ENABLED or DISABLED).
    tags List<ScriptMonitorTag>

    The tags that will be associated with the monitor. See Nested tag blocks below for details.

    The SCRIPTED_BROWSER monitor type supports the following additional arguments:

    type String
    The plaintext representing the monitor script. Valid values are SCRIPT_BROWSER or SCRIPT_API
    useUnsupportedLegacyRuntime Boolean
    A boolean attribute to be set true by the customer, if they would like to use the unsupported legacy runtime of Synthetic Monitors by means of an exemption given until the October 22, 2024 Legacy Runtime EOL. Setting this attribute to true would allow skipping validation performed by the the New Relic Terraform Provider starting v3.43.0 to disallow using the legacy runtime with new monitors. This would, hence, allow creation of monitors in the legacy runtime until the October 22, 2024 Legacy Runtime EOL, if exempt by the API.
    accountId string
    The account in which the Synthetics monitor will be created.
    browsers string[]
    The multiple browsers list on which synthetic monitors will run. Valid values are CHROME and FIREFOX.
    deviceOrientation string
    Device emulation orientation field. Valid values are LANDSCAPE and PORTRAIT. We recommend you to use devices field instead of deviceType,deviceOrientation fields, as it allows you to select multiple combinations of device types and orientations.
    deviceType string

    Device emulation type field. Valid values are MOBILE and TABLET. We recommend you to use devices field instead of deviceType,deviceOrientation fields, as it allows you to select multiple combinations of device types and orientations.

    WARNING: The end-of-life of the Synthetics Legacy Runtime will take effect on Aug 18, 2026 (SCRIPT_BROWSER) and Nov 18, 2026 (SCRIPT_API), implying that support for using the deprecated Synthetics Legacy Runtime with new and existing Synthetic monitors will officially end on Aug 18, 2026 (SCRIPT_BROWSER) and Nov 18, 2026 (SCRIPT_API). As a consequence of this API change, all requests associated with Synthetic Monitors (except Ping Monitors) going out of the New Relic Terraform Provider will be blocked by an API error if they include values corresponding to the legacy runtime. Following these changes, starting with v3.51.0 of the New Relic Terraform Provider, configuration of new and existing Synthetic monitors without runtime attributes (or) comprising runtime attributes signifying the legacy runtime will be deemed invalid (this applies to all Synthetic monitor resources, except newrelic.synthetics.Monitor with type SIMPLE). If your monitors' configuration is not updated with new runtime values, you will see the consequences stated here. We kindly recommend that you upgrade your Synthetic Monitors to the new runtime as soon as possible if they are still using the legacy runtime, to avoid seeing the aforementioned consequences. Please check out this guide in the documentation of the Terraform Provider (specifically, the table at the bottom of the guide, if you're looking for updates to be made to the configuration of Synthetic monitors) and this announcement for more details on the EOL, actions needed, relevant resources, and more. You would not be affected by the EOL if your Synthetic monitors' Terraform configuration comprises new runtime values. Important — Scripted Monitor Specific Behavior: Unlike non-scripted monitors, the Terraform Provider does not automatically enforce a runtime version upgrade for scripted monitors (SCRIPT_API and SCRIPT_BROWSER). If you do not update your Terraform configuration before the respective force upgrade date, the Synthetics API will force-upgrade these monitors to the latest runtime (CHROME_BROWSER LATEST for SCRIPT_BROWSER on Aug 18, 2026; NODE_API 22.20.0 for SCRIPT_API on Nov 18, 2026). This will cause your Terraform state to drift — pulumi preview will show the runtime has changed, and a pulumi up without updating the configuration will fail with an API error. Update your configuration before these dates to avoid interruption.

    devices string[]
    The multiple devices list on which synthetic monitors will run. Valid values are DESKTOP, MOBILE_LANDSCAPE, MOBILE_PORTRAIT, TABLET_LANDSCAPE and TABLET_PORTRAIT.
    enableScreenshotOnFailureAndScript boolean
    Capture a screenshot during job execution.
    guid string
    The unique entity identifier of the monitor in New Relic.
    locationPrivates ScriptMonitorLocationPrivate[]
    The location the monitor will run from. See Nested locationPrivate blocks below for details. At least one of either locationsPublic or locationPrivate is required.
    locationsPublics string[]
    The location the monitor will run from. Check out this page for a list of valid public locations. The AWS_ prefix is not needed, as the provider uses NerdGraph. At least one of either locationsPublic or locationPrivate is required.
    monitorId string
    The monitor id of the Synthetics script monitor (not to be confused with the GUID of the monitor).
    name string
    The name for the monitor.
    period string
    The interval at which this monitor should run. Valid values are EVERY_MINUTE, EVERY_5_MINUTES, EVERY_10_MINUTES, EVERY_15_MINUTES, EVERY_30_MINUTES, EVERY_HOUR, EVERY_6_HOURS, EVERY_12_HOURS, or EVERY_DAY.
    periodInMinutes number
    The interval in minutes at which Synthetic monitor should run.
    runtimeType string
    The runtime that the monitor will use to run jobs. For the SCRIPT_API monitor type, a valid value is NODE_API. For the SCRIPT_BROWSER monitor type, a valid value is CHROME_BROWSER.
    runtimeTypeVersion string
    The specific version of the runtime type selected. For the SCRIPT_API monitor type, use 22.20.0, which corresponds to Node.js 22.20.0. For the SCRIPT_BROWSER monitor type, use LATEST to automatically use the latest Chrome version. Note: Unlike non-scripted monitors, the Terraform Provider does not automatically enforce a runtime version for scripted monitors — customers must explicitly update their configuration. If the configuration is not updated before the respective force upgrade date, the Synthetics API will force-upgrade these monitors to the latest runtime (SCRIPT_BROWSER monitors on Aug 18, 2026; SCRIPT_API monitors on Nov 18, 2026), resulting in Terraform state drift and API errors on subsequent pulumi up runs.
    script string
    The script that the monitor runs.
    scriptLanguage string
    The programing language that should execute the script.
    status string
    The run state of the monitor. (ENABLED or DISABLED).
    tags ScriptMonitorTag[]

    The tags that will be associated with the monitor. See Nested tag blocks below for details.

    The SCRIPTED_BROWSER monitor type supports the following additional arguments:

    type string
    The plaintext representing the monitor script. Valid values are SCRIPT_BROWSER or SCRIPT_API
    useUnsupportedLegacyRuntime boolean
    A boolean attribute to be set true by the customer, if they would like to use the unsupported legacy runtime of Synthetic Monitors by means of an exemption given until the October 22, 2024 Legacy Runtime EOL. Setting this attribute to true would allow skipping validation performed by the the New Relic Terraform Provider starting v3.43.0 to disallow using the legacy runtime with new monitors. This would, hence, allow creation of monitors in the legacy runtime until the October 22, 2024 Legacy Runtime EOL, if exempt by the API.
    account_id str
    The account in which the Synthetics monitor will be created.
    browsers Sequence[str]
    The multiple browsers list on which synthetic monitors will run. Valid values are CHROME and FIREFOX.
    device_orientation str
    Device emulation orientation field. Valid values are LANDSCAPE and PORTRAIT. We recommend you to use devices field instead of deviceType,deviceOrientation fields, as it allows you to select multiple combinations of device types and orientations.
    device_type str

    Device emulation type field. Valid values are MOBILE and TABLET. We recommend you to use devices field instead of deviceType,deviceOrientation fields, as it allows you to select multiple combinations of device types and orientations.

    WARNING: The end-of-life of the Synthetics Legacy Runtime will take effect on Aug 18, 2026 (SCRIPT_BROWSER) and Nov 18, 2026 (SCRIPT_API), implying that support for using the deprecated Synthetics Legacy Runtime with new and existing Synthetic monitors will officially end on Aug 18, 2026 (SCRIPT_BROWSER) and Nov 18, 2026 (SCRIPT_API). As a consequence of this API change, all requests associated with Synthetic Monitors (except Ping Monitors) going out of the New Relic Terraform Provider will be blocked by an API error if they include values corresponding to the legacy runtime. Following these changes, starting with v3.51.0 of the New Relic Terraform Provider, configuration of new and existing Synthetic monitors without runtime attributes (or) comprising runtime attributes signifying the legacy runtime will be deemed invalid (this applies to all Synthetic monitor resources, except newrelic.synthetics.Monitor with type SIMPLE). If your monitors' configuration is not updated with new runtime values, you will see the consequences stated here. We kindly recommend that you upgrade your Synthetic Monitors to the new runtime as soon as possible if they are still using the legacy runtime, to avoid seeing the aforementioned consequences. Please check out this guide in the documentation of the Terraform Provider (specifically, the table at the bottom of the guide, if you're looking for updates to be made to the configuration of Synthetic monitors) and this announcement for more details on the EOL, actions needed, relevant resources, and more. You would not be affected by the EOL if your Synthetic monitors' Terraform configuration comprises new runtime values. Important — Scripted Monitor Specific Behavior: Unlike non-scripted monitors, the Terraform Provider does not automatically enforce a runtime version upgrade for scripted monitors (SCRIPT_API and SCRIPT_BROWSER). If you do not update your Terraform configuration before the respective force upgrade date, the Synthetics API will force-upgrade these monitors to the latest runtime (CHROME_BROWSER LATEST for SCRIPT_BROWSER on Aug 18, 2026; NODE_API 22.20.0 for SCRIPT_API on Nov 18, 2026). This will cause your Terraform state to drift — pulumi preview will show the runtime has changed, and a pulumi up without updating the configuration will fail with an API error. Update your configuration before these dates to avoid interruption.

    devices Sequence[str]
    The multiple devices list on which synthetic monitors will run. Valid values are DESKTOP, MOBILE_LANDSCAPE, MOBILE_PORTRAIT, TABLET_LANDSCAPE and TABLET_PORTRAIT.
    enable_screenshot_on_failure_and_script bool
    Capture a screenshot during job execution.
    guid str
    The unique entity identifier of the monitor in New Relic.
    location_privates Sequence[ScriptMonitorLocationPrivateArgs]
    The location the monitor will run from. See Nested locationPrivate blocks below for details. At least one of either locationsPublic or locationPrivate is required.
    locations_publics Sequence[str]
    The location the monitor will run from. Check out this page for a list of valid public locations. The AWS_ prefix is not needed, as the provider uses NerdGraph. At least one of either locationsPublic or locationPrivate is required.
    monitor_id str
    The monitor id of the Synthetics script monitor (not to be confused with the GUID of the monitor).
    name str
    The name for the monitor.
    period str
    The interval at which this monitor should run. Valid values are EVERY_MINUTE, EVERY_5_MINUTES, EVERY_10_MINUTES, EVERY_15_MINUTES, EVERY_30_MINUTES, EVERY_HOUR, EVERY_6_HOURS, EVERY_12_HOURS, or EVERY_DAY.
    period_in_minutes int
    The interval in minutes at which Synthetic monitor should run.
    runtime_type str
    The runtime that the monitor will use to run jobs. For the SCRIPT_API monitor type, a valid value is NODE_API. For the SCRIPT_BROWSER monitor type, a valid value is CHROME_BROWSER.
    runtime_type_version str
    The specific version of the runtime type selected. For the SCRIPT_API monitor type, use 22.20.0, which corresponds to Node.js 22.20.0. For the SCRIPT_BROWSER monitor type, use LATEST to automatically use the latest Chrome version. Note: Unlike non-scripted monitors, the Terraform Provider does not automatically enforce a runtime version for scripted monitors — customers must explicitly update their configuration. If the configuration is not updated before the respective force upgrade date, the Synthetics API will force-upgrade these monitors to the latest runtime (SCRIPT_BROWSER monitors on Aug 18, 2026; SCRIPT_API monitors on Nov 18, 2026), resulting in Terraform state drift and API errors on subsequent pulumi up runs.
    script str
    The script that the monitor runs.
    script_language str
    The programing language that should execute the script.
    status str
    The run state of the monitor. (ENABLED or DISABLED).
    tags Sequence[ScriptMonitorTagArgs]

    The tags that will be associated with the monitor. See Nested tag blocks below for details.

    The SCRIPTED_BROWSER monitor type supports the following additional arguments:

    type str
    The plaintext representing the monitor script. Valid values are SCRIPT_BROWSER or SCRIPT_API
    use_unsupported_legacy_runtime bool
    A boolean attribute to be set true by the customer, if they would like to use the unsupported legacy runtime of Synthetic Monitors by means of an exemption given until the October 22, 2024 Legacy Runtime EOL. Setting this attribute to true would allow skipping validation performed by the the New Relic Terraform Provider starting v3.43.0 to disallow using the legacy runtime with new monitors. This would, hence, allow creation of monitors in the legacy runtime until the October 22, 2024 Legacy Runtime EOL, if exempt by the API.
    accountId String
    The account in which the Synthetics monitor will be created.
    browsers List<String>
    The multiple browsers list on which synthetic monitors will run. Valid values are CHROME and FIREFOX.
    deviceOrientation String
    Device emulation orientation field. Valid values are LANDSCAPE and PORTRAIT. We recommend you to use devices field instead of deviceType,deviceOrientation fields, as it allows you to select multiple combinations of device types and orientations.
    deviceType String

    Device emulation type field. Valid values are MOBILE and TABLET. We recommend you to use devices field instead of deviceType,deviceOrientation fields, as it allows you to select multiple combinations of device types and orientations.

    WARNING: The end-of-life of the Synthetics Legacy Runtime will take effect on Aug 18, 2026 (SCRIPT_BROWSER) and Nov 18, 2026 (SCRIPT_API), implying that support for using the deprecated Synthetics Legacy Runtime with new and existing Synthetic monitors will officially end on Aug 18, 2026 (SCRIPT_BROWSER) and Nov 18, 2026 (SCRIPT_API). As a consequence of this API change, all requests associated with Synthetic Monitors (except Ping Monitors) going out of the New Relic Terraform Provider will be blocked by an API error if they include values corresponding to the legacy runtime. Following these changes, starting with v3.51.0 of the New Relic Terraform Provider, configuration of new and existing Synthetic monitors without runtime attributes (or) comprising runtime attributes signifying the legacy runtime will be deemed invalid (this applies to all Synthetic monitor resources, except newrelic.synthetics.Monitor with type SIMPLE). If your monitors' configuration is not updated with new runtime values, you will see the consequences stated here. We kindly recommend that you upgrade your Synthetic Monitors to the new runtime as soon as possible if they are still using the legacy runtime, to avoid seeing the aforementioned consequences. Please check out this guide in the documentation of the Terraform Provider (specifically, the table at the bottom of the guide, if you're looking for updates to be made to the configuration of Synthetic monitors) and this announcement for more details on the EOL, actions needed, relevant resources, and more. You would not be affected by the EOL if your Synthetic monitors' Terraform configuration comprises new runtime values. Important — Scripted Monitor Specific Behavior: Unlike non-scripted monitors, the Terraform Provider does not automatically enforce a runtime version upgrade for scripted monitors (SCRIPT_API and SCRIPT_BROWSER). If you do not update your Terraform configuration before the respective force upgrade date, the Synthetics API will force-upgrade these monitors to the latest runtime (CHROME_BROWSER LATEST for SCRIPT_BROWSER on Aug 18, 2026; NODE_API 22.20.0 for SCRIPT_API on Nov 18, 2026). This will cause your Terraform state to drift — pulumi preview will show the runtime has changed, and a pulumi up without updating the configuration will fail with an API error. Update your configuration before these dates to avoid interruption.

    devices List<String>
    The multiple devices list on which synthetic monitors will run. Valid values are DESKTOP, MOBILE_LANDSCAPE, MOBILE_PORTRAIT, TABLET_LANDSCAPE and TABLET_PORTRAIT.
    enableScreenshotOnFailureAndScript Boolean
    Capture a screenshot during job execution.
    guid String
    The unique entity identifier of the monitor in New Relic.
    locationPrivates List<Property Map>
    The location the monitor will run from. See Nested locationPrivate blocks below for details. At least one of either locationsPublic or locationPrivate is required.
    locationsPublics List<String>
    The location the monitor will run from. Check out this page for a list of valid public locations. The AWS_ prefix is not needed, as the provider uses NerdGraph. At least one of either locationsPublic or locationPrivate is required.
    monitorId String
    The monitor id of the Synthetics script monitor (not to be confused with the GUID of the monitor).
    name String
    The name for the monitor.
    period String
    The interval at which this monitor should run. Valid values are EVERY_MINUTE, EVERY_5_MINUTES, EVERY_10_MINUTES, EVERY_15_MINUTES, EVERY_30_MINUTES, EVERY_HOUR, EVERY_6_HOURS, EVERY_12_HOURS, or EVERY_DAY.
    periodInMinutes Number
    The interval in minutes at which Synthetic monitor should run.
    runtimeType String
    The runtime that the monitor will use to run jobs. For the SCRIPT_API monitor type, a valid value is NODE_API. For the SCRIPT_BROWSER monitor type, a valid value is CHROME_BROWSER.
    runtimeTypeVersion String
    The specific version of the runtime type selected. For the SCRIPT_API monitor type, use 22.20.0, which corresponds to Node.js 22.20.0. For the SCRIPT_BROWSER monitor type, use LATEST to automatically use the latest Chrome version. Note: Unlike non-scripted monitors, the Terraform Provider does not automatically enforce a runtime version for scripted monitors — customers must explicitly update their configuration. If the configuration is not updated before the respective force upgrade date, the Synthetics API will force-upgrade these monitors to the latest runtime (SCRIPT_BROWSER monitors on Aug 18, 2026; SCRIPT_API monitors on Nov 18, 2026), resulting in Terraform state drift and API errors on subsequent pulumi up runs.
    script String
    The script that the monitor runs.
    scriptLanguage String
    The programing language that should execute the script.
    status String
    The run state of the monitor. (ENABLED or DISABLED).
    tags List<Property Map>

    The tags that will be associated with the monitor. See Nested tag blocks below for details.

    The SCRIPTED_BROWSER monitor type supports the following additional arguments:

    type String
    The plaintext representing the monitor script. Valid values are SCRIPT_BROWSER or SCRIPT_API
    useUnsupportedLegacyRuntime Boolean
    A boolean attribute to be set true by the customer, if they would like to use the unsupported legacy runtime of Synthetic Monitors by means of an exemption given until the October 22, 2024 Legacy Runtime EOL. Setting this attribute to true would allow skipping validation performed by the the New Relic Terraform Provider starting v3.43.0 to disallow using the legacy runtime with new monitors. This would, hence, allow creation of monitors in the legacy runtime until the October 22, 2024 Legacy Runtime EOL, if exempt by the API.

    Supporting Types

    ScriptMonitorLocationPrivate, ScriptMonitorLocationPrivateArgs

    Guid string
    The unique identifier for the Synthetics private location in New Relic.
    VsePassword string
    The location's Verified Script Execution password, Only necessary if Verified Script Execution is enabled for the location.
    Guid string
    The unique identifier for the Synthetics private location in New Relic.
    VsePassword string
    The location's Verified Script Execution password, Only necessary if Verified Script Execution is enabled for the location.
    guid string
    The unique identifier for the Synthetics private location in New Relic.
    vse_password string
    The location's Verified Script Execution password, Only necessary if Verified Script Execution is enabled for the location.
    guid String
    The unique identifier for the Synthetics private location in New Relic.
    vsePassword String
    The location's Verified Script Execution password, Only necessary if Verified Script Execution is enabled for the location.
    guid string
    The unique identifier for the Synthetics private location in New Relic.
    vsePassword string
    The location's Verified Script Execution password, Only necessary if Verified Script Execution is enabled for the location.
    guid str
    The unique identifier for the Synthetics private location in New Relic.
    vse_password str
    The location's Verified Script Execution password, Only necessary if Verified Script Execution is enabled for the location.
    guid String
    The unique identifier for the Synthetics private location in New Relic.
    vsePassword String
    The location's Verified Script Execution password, Only necessary if Verified Script Execution is enabled for the location.

    ScriptMonitorTag, ScriptMonitorTagArgs

    Key string
    Name of the tag key.
    Values List<string>
    Values associated with the tag key.
    Key string
    Name of the tag key.
    Values []string
    Values associated with the tag key.
    key string
    Name of the tag key.
    values list(string)
    Values associated with the tag key.
    key String
    Name of the tag key.
    values List<String>
    Values associated with the tag key.
    key string
    Name of the tag key.
    values string[]
    Values associated with the tag key.
    key str
    Name of the tag key.
    values Sequence[str]
    Values associated with the tag key.
    key String
    Name of the tag key.
    values List<String>
    Values associated with the tag key.

    Import

    Synthetics monitor scripts can be imported using the guid, e.g.

    $ pulumi import newrelic:synthetics/scriptMonitor:ScriptMonitor monitor <guid>
    

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    New Relic pulumi/pulumi-newrelic
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the newrelic Terraform Provider.
    newrelic logo
    Viewing docs for New Relic v5.67.0
    published on Wednesday, May 20, 2026 by Pulumi
      Try Pulumi Cloud free. Your team will thank you.