1. Packages
  2. Fastly Provider
  3. API Docs
  4. CustomDashboard
Fastly v11.1.0 published on Wednesday, Nov 5, 2025 by Pulumi

fastly.CustomDashboard

Get Started
fastly logo
Fastly v11.1.0 published on Wednesday, Nov 5, 2025 by Pulumi

    Provides a Custom Dashboard which can be viewed in the Fastly Control Panel.

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as fastly from "@pulumi/fastly";
    
    const example = new fastly.CustomDashboard("example", {
        name: "Example Custom Dashboard",
        description: "This is an example custom dashboard. A few dashboard items are provided to help you get started.",
        dashboardItems: [
            {
                id: "example1",
                title: "Total Requests",
                subtitle: "Number of requests processed.",
                dataSource: {
                    type: "stats.edge",
                    config: {
                        metrics: ["requests"],
                    },
                },
                visualization: {
                    type: "chart",
                    config: {
                        format: "requests",
                        plotType: "line",
                    },
                },
            },
            {
                id: "example2",
                title: "Hit Ratio",
                subtitle: "Ratio of requests served from Fastly.",
                dataSource: {
                    type: "stats.edge",
                    config: {
                        metrics: ["hit_ratio"],
                    },
                },
                visualization: {
                    type: "chart",
                    config: {
                        format: "percent",
                        plotType: "donut",
                        calculationMethod: "latest",
                    },
                },
            },
            {
                id: "example3",
                title: "Client & Server Errors",
                subtitle: "Total errors served from the client or server.",
                dataSource: {
                    type: "stats.edge",
                    config: {
                        metrics: [
                            "status_4xx",
                            "status_5xx",
                        ],
                    },
                },
                visualization: {
                    type: "chart",
                    config: {
                        format: "requests",
                        plotType: "bar",
                    },
                },
            },
            {
                id: "example4",
                title: "Domain Requests",
                subtitle: "Requests by Domain.",
                span: 6,
                dataSource: {
                    type: "stats.domain",
                    config: {
                        metrics: ["requests"],
                    },
                },
                visualization: {
                    type: "chart",
                    config: {
                        format: "requests",
                        plotType: "line",
                    },
                },
            },
            {
                id: "example5",
                title: "Origin Responses",
                subtitle: "Responses by Origin.",
                span: 6,
                dataSource: {
                    type: "stats.origin",
                    config: {
                        metrics: ["all_responses"],
                    },
                },
                visualization: {
                    type: "chart",
                    config: {
                        plotType: "line",
                    },
                },
            },
            {
                id: "example6",
                title: "Total Bandwidth",
                subtitle: "Total bandwidth served.",
                span: 12,
                dataSource: {
                    type: "stats.edge",
                    config: {
                        metrics: ["bandwidth"],
                    },
                },
                visualization: {
                    type: "chart",
                    config: {
                        format: "bytes",
                        plotType: "bar",
                    },
                },
            },
            {
                id: "example7",
                title: "Products - Image Optimizer & Real-Time Log Streaming",
                subtitle: "Total IO images served and log statements sent.",
                span: 8,
                dataSource: {
                    type: "stats.edge",
                    config: {
                        metrics: [
                            "imgopto",
                            "log",
                        ],
                    },
                },
                visualization: {
                    type: "chart",
                    config: {
                        plotType: "line",
                    },
                },
            },
            {
                id: "example8",
                title: "Transport Protocols & Security",
                subtitle: "HTTP Protocols & TLS.",
                dataSource: {
                    type: "stats.edge",
                    config: {
                        metrics: [
                            "http1",
                            "http2",
                            "http3",
                            "tls_v10",
                            "tls_v11",
                            "tls_v12",
                            "tls_v13",
                        ],
                    },
                },
                visualization: {
                    type: "chart",
                    config: {
                        format: "requests",
                        plotType: "line",
                    },
                },
            },
            {
                id: "example9",
                title: "Origin Miss Latency",
                subtitle: "Miss latency times for your origins.",
                span: 12,
                dataSource: {
                    type: "stats.edge",
                    config: {
                        metrics: ["origin_latency"],
                    },
                },
                visualization: {
                    type: "chart",
                    config: {
                        format: "milliseconds",
                        plotType: "line",
                    },
                },
            },
            {
                id: "example10",
                title: "DDoS - Request Flood Attempts",
                subtitle: "Number of connections the limit-streams action was applied.",
                span: 6,
                dataSource: {
                    type: "stats.edge",
                    config: {
                        metrics: [
                            "ddos_action_limit_streams_connections",
                            "ddos_action_limit_streams_requests",
                        ],
                    },
                },
                visualization: {
                    type: "chart",
                    config: {
                        format: "requests",
                        plotType: "line",
                    },
                },
            },
            {
                id: "example11",
                title: "DDoS - Malicious Bot Attack",
                subtitle: "Number of times the blackhole action was taken.",
                span: 6,
                dataSource: {
                    type: "stats.edge",
                    config: {
                        metrics: [
                            "ddos_action_close",
                            "ddos_action_blackhole",
                        ],
                    },
                },
                visualization: {
                    type: "chart",
                    config: {
                        format: "number",
                        plotType: "line",
                    },
                },
            },
        ],
    });
    
    import pulumi
    import pulumi_fastly as fastly
    
    example = fastly.CustomDashboard("example",
        name="Example Custom Dashboard",
        description="This is an example custom dashboard. A few dashboard items are provided to help you get started.",
        dashboard_items=[
            {
                "id": "example1",
                "title": "Total Requests",
                "subtitle": "Number of requests processed.",
                "data_source": {
                    "type": "stats.edge",
                    "config": {
                        "metrics": ["requests"],
                    },
                },
                "visualization": {
                    "type": "chart",
                    "config": {
                        "format": "requests",
                        "plot_type": "line",
                    },
                },
            },
            {
                "id": "example2",
                "title": "Hit Ratio",
                "subtitle": "Ratio of requests served from Fastly.",
                "data_source": {
                    "type": "stats.edge",
                    "config": {
                        "metrics": ["hit_ratio"],
                    },
                },
                "visualization": {
                    "type": "chart",
                    "config": {
                        "format": "percent",
                        "plot_type": "donut",
                        "calculation_method": "latest",
                    },
                },
            },
            {
                "id": "example3",
                "title": "Client & Server Errors",
                "subtitle": "Total errors served from the client or server.",
                "data_source": {
                    "type": "stats.edge",
                    "config": {
                        "metrics": [
                            "status_4xx",
                            "status_5xx",
                        ],
                    },
                },
                "visualization": {
                    "type": "chart",
                    "config": {
                        "format": "requests",
                        "plot_type": "bar",
                    },
                },
            },
            {
                "id": "example4",
                "title": "Domain Requests",
                "subtitle": "Requests by Domain.",
                "span": 6,
                "data_source": {
                    "type": "stats.domain",
                    "config": {
                        "metrics": ["requests"],
                    },
                },
                "visualization": {
                    "type": "chart",
                    "config": {
                        "format": "requests",
                        "plot_type": "line",
                    },
                },
            },
            {
                "id": "example5",
                "title": "Origin Responses",
                "subtitle": "Responses by Origin.",
                "span": 6,
                "data_source": {
                    "type": "stats.origin",
                    "config": {
                        "metrics": ["all_responses"],
                    },
                },
                "visualization": {
                    "type": "chart",
                    "config": {
                        "plot_type": "line",
                    },
                },
            },
            {
                "id": "example6",
                "title": "Total Bandwidth",
                "subtitle": "Total bandwidth served.",
                "span": 12,
                "data_source": {
                    "type": "stats.edge",
                    "config": {
                        "metrics": ["bandwidth"],
                    },
                },
                "visualization": {
                    "type": "chart",
                    "config": {
                        "format": "bytes",
                        "plot_type": "bar",
                    },
                },
            },
            {
                "id": "example7",
                "title": "Products - Image Optimizer & Real-Time Log Streaming",
                "subtitle": "Total IO images served and log statements sent.",
                "span": 8,
                "data_source": {
                    "type": "stats.edge",
                    "config": {
                        "metrics": [
                            "imgopto",
                            "log",
                        ],
                    },
                },
                "visualization": {
                    "type": "chart",
                    "config": {
                        "plot_type": "line",
                    },
                },
            },
            {
                "id": "example8",
                "title": "Transport Protocols & Security",
                "subtitle": "HTTP Protocols & TLS.",
                "data_source": {
                    "type": "stats.edge",
                    "config": {
                        "metrics": [
                            "http1",
                            "http2",
                            "http3",
                            "tls_v10",
                            "tls_v11",
                            "tls_v12",
                            "tls_v13",
                        ],
                    },
                },
                "visualization": {
                    "type": "chart",
                    "config": {
                        "format": "requests",
                        "plot_type": "line",
                    },
                },
            },
            {
                "id": "example9",
                "title": "Origin Miss Latency",
                "subtitle": "Miss latency times for your origins.",
                "span": 12,
                "data_source": {
                    "type": "stats.edge",
                    "config": {
                        "metrics": ["origin_latency"],
                    },
                },
                "visualization": {
                    "type": "chart",
                    "config": {
                        "format": "milliseconds",
                        "plot_type": "line",
                    },
                },
            },
            {
                "id": "example10",
                "title": "DDoS - Request Flood Attempts",
                "subtitle": "Number of connections the limit-streams action was applied.",
                "span": 6,
                "data_source": {
                    "type": "stats.edge",
                    "config": {
                        "metrics": [
                            "ddos_action_limit_streams_connections",
                            "ddos_action_limit_streams_requests",
                        ],
                    },
                },
                "visualization": {
                    "type": "chart",
                    "config": {
                        "format": "requests",
                        "plot_type": "line",
                    },
                },
            },
            {
                "id": "example11",
                "title": "DDoS - Malicious Bot Attack",
                "subtitle": "Number of times the blackhole action was taken.",
                "span": 6,
                "data_source": {
                    "type": "stats.edge",
                    "config": {
                        "metrics": [
                            "ddos_action_close",
                            "ddos_action_blackhole",
                        ],
                    },
                },
                "visualization": {
                    "type": "chart",
                    "config": {
                        "format": "number",
                        "plot_type": "line",
                    },
                },
            },
        ])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-fastly/sdk/v11/go/fastly"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := fastly.NewCustomDashboard(ctx, "example", &fastly.CustomDashboardArgs{
    			Name:        pulumi.String("Example Custom Dashboard"),
    			Description: pulumi.String("This is an example custom dashboard. A few dashboard items are provided to help you get started."),
    			DashboardItems: fastly.CustomDashboardDashboardItemArray{
    				&fastly.CustomDashboardDashboardItemArgs{
    					Id:       pulumi.String("example1"),
    					Title:    pulumi.String("Total Requests"),
    					Subtitle: pulumi.String("Number of requests processed."),
    					DataSource: &fastly.CustomDashboardDashboardItemDataSourceArgs{
    						Type: pulumi.String("stats.edge"),
    						Config: &fastly.CustomDashboardDashboardItemDataSourceConfigArgs{
    							Metrics: pulumi.StringArray{
    								pulumi.String("requests"),
    							},
    						},
    					},
    					Visualization: &fastly.CustomDashboardDashboardItemVisualizationArgs{
    						Type: pulumi.String("chart"),
    						Config: &fastly.CustomDashboardDashboardItemVisualizationConfigArgs{
    							Format:   pulumi.String("requests"),
    							PlotType: pulumi.String("line"),
    						},
    					},
    				},
    				&fastly.CustomDashboardDashboardItemArgs{
    					Id:       pulumi.String("example2"),
    					Title:    pulumi.String("Hit Ratio"),
    					Subtitle: pulumi.String("Ratio of requests served from Fastly."),
    					DataSource: &fastly.CustomDashboardDashboardItemDataSourceArgs{
    						Type: pulumi.String("stats.edge"),
    						Config: &fastly.CustomDashboardDashboardItemDataSourceConfigArgs{
    							Metrics: pulumi.StringArray{
    								pulumi.String("hit_ratio"),
    							},
    						},
    					},
    					Visualization: &fastly.CustomDashboardDashboardItemVisualizationArgs{
    						Type: pulumi.String("chart"),
    						Config: &fastly.CustomDashboardDashboardItemVisualizationConfigArgs{
    							Format:            pulumi.String("percent"),
    							PlotType:          pulumi.String("donut"),
    							CalculationMethod: pulumi.String("latest"),
    						},
    					},
    				},
    				&fastly.CustomDashboardDashboardItemArgs{
    					Id:       pulumi.String("example3"),
    					Title:    pulumi.String("Client & Server Errors"),
    					Subtitle: pulumi.String("Total errors served from the client or server."),
    					DataSource: &fastly.CustomDashboardDashboardItemDataSourceArgs{
    						Type: pulumi.String("stats.edge"),
    						Config: &fastly.CustomDashboardDashboardItemDataSourceConfigArgs{
    							Metrics: pulumi.StringArray{
    								pulumi.String("status_4xx"),
    								pulumi.String("status_5xx"),
    							},
    						},
    					},
    					Visualization: &fastly.CustomDashboardDashboardItemVisualizationArgs{
    						Type: pulumi.String("chart"),
    						Config: &fastly.CustomDashboardDashboardItemVisualizationConfigArgs{
    							Format:   pulumi.String("requests"),
    							PlotType: pulumi.String("bar"),
    						},
    					},
    				},
    				&fastly.CustomDashboardDashboardItemArgs{
    					Id:       pulumi.String("example4"),
    					Title:    pulumi.String("Domain Requests"),
    					Subtitle: pulumi.String("Requests by Domain."),
    					Span:     pulumi.Int(6),
    					DataSource: &fastly.CustomDashboardDashboardItemDataSourceArgs{
    						Type: pulumi.String("stats.domain"),
    						Config: &fastly.CustomDashboardDashboardItemDataSourceConfigArgs{
    							Metrics: pulumi.StringArray{
    								pulumi.String("requests"),
    							},
    						},
    					},
    					Visualization: &fastly.CustomDashboardDashboardItemVisualizationArgs{
    						Type: pulumi.String("chart"),
    						Config: &fastly.CustomDashboardDashboardItemVisualizationConfigArgs{
    							Format:   pulumi.String("requests"),
    							PlotType: pulumi.String("line"),
    						},
    					},
    				},
    				&fastly.CustomDashboardDashboardItemArgs{
    					Id:       pulumi.String("example5"),
    					Title:    pulumi.String("Origin Responses"),
    					Subtitle: pulumi.String("Responses by Origin."),
    					Span:     pulumi.Int(6),
    					DataSource: &fastly.CustomDashboardDashboardItemDataSourceArgs{
    						Type: pulumi.String("stats.origin"),
    						Config: &fastly.CustomDashboardDashboardItemDataSourceConfigArgs{
    							Metrics: pulumi.StringArray{
    								pulumi.String("all_responses"),
    							},
    						},
    					},
    					Visualization: &fastly.CustomDashboardDashboardItemVisualizationArgs{
    						Type: pulumi.String("chart"),
    						Config: &fastly.CustomDashboardDashboardItemVisualizationConfigArgs{
    							PlotType: pulumi.String("line"),
    						},
    					},
    				},
    				&fastly.CustomDashboardDashboardItemArgs{
    					Id:       pulumi.String("example6"),
    					Title:    pulumi.String("Total Bandwidth"),
    					Subtitle: pulumi.String("Total bandwidth served."),
    					Span:     pulumi.Int(12),
    					DataSource: &fastly.CustomDashboardDashboardItemDataSourceArgs{
    						Type: pulumi.String("stats.edge"),
    						Config: &fastly.CustomDashboardDashboardItemDataSourceConfigArgs{
    							Metrics: pulumi.StringArray{
    								pulumi.String("bandwidth"),
    							},
    						},
    					},
    					Visualization: &fastly.CustomDashboardDashboardItemVisualizationArgs{
    						Type: pulumi.String("chart"),
    						Config: &fastly.CustomDashboardDashboardItemVisualizationConfigArgs{
    							Format:   pulumi.String("bytes"),
    							PlotType: pulumi.String("bar"),
    						},
    					},
    				},
    				&fastly.CustomDashboardDashboardItemArgs{
    					Id:       pulumi.String("example7"),
    					Title:    pulumi.String("Products - Image Optimizer & Real-Time Log Streaming"),
    					Subtitle: pulumi.String("Total IO images served and log statements sent."),
    					Span:     pulumi.Int(8),
    					DataSource: &fastly.CustomDashboardDashboardItemDataSourceArgs{
    						Type: pulumi.String("stats.edge"),
    						Config: &fastly.CustomDashboardDashboardItemDataSourceConfigArgs{
    							Metrics: pulumi.StringArray{
    								pulumi.String("imgopto"),
    								pulumi.String("log"),
    							},
    						},
    					},
    					Visualization: &fastly.CustomDashboardDashboardItemVisualizationArgs{
    						Type: pulumi.String("chart"),
    						Config: &fastly.CustomDashboardDashboardItemVisualizationConfigArgs{
    							PlotType: pulumi.String("line"),
    						},
    					},
    				},
    				&fastly.CustomDashboardDashboardItemArgs{
    					Id:       pulumi.String("example8"),
    					Title:    pulumi.String("Transport Protocols & Security"),
    					Subtitle: pulumi.String("HTTP Protocols & TLS."),
    					DataSource: &fastly.CustomDashboardDashboardItemDataSourceArgs{
    						Type: pulumi.String("stats.edge"),
    						Config: &fastly.CustomDashboardDashboardItemDataSourceConfigArgs{
    							Metrics: pulumi.StringArray{
    								pulumi.String("http1"),
    								pulumi.String("http2"),
    								pulumi.String("http3"),
    								pulumi.String("tls_v10"),
    								pulumi.String("tls_v11"),
    								pulumi.String("tls_v12"),
    								pulumi.String("tls_v13"),
    							},
    						},
    					},
    					Visualization: &fastly.CustomDashboardDashboardItemVisualizationArgs{
    						Type: pulumi.String("chart"),
    						Config: &fastly.CustomDashboardDashboardItemVisualizationConfigArgs{
    							Format:   pulumi.String("requests"),
    							PlotType: pulumi.String("line"),
    						},
    					},
    				},
    				&fastly.CustomDashboardDashboardItemArgs{
    					Id:       pulumi.String("example9"),
    					Title:    pulumi.String("Origin Miss Latency"),
    					Subtitle: pulumi.String("Miss latency times for your origins."),
    					Span:     pulumi.Int(12),
    					DataSource: &fastly.CustomDashboardDashboardItemDataSourceArgs{
    						Type: pulumi.String("stats.edge"),
    						Config: &fastly.CustomDashboardDashboardItemDataSourceConfigArgs{
    							Metrics: pulumi.StringArray{
    								pulumi.String("origin_latency"),
    							},
    						},
    					},
    					Visualization: &fastly.CustomDashboardDashboardItemVisualizationArgs{
    						Type: pulumi.String("chart"),
    						Config: &fastly.CustomDashboardDashboardItemVisualizationConfigArgs{
    							Format:   pulumi.String("milliseconds"),
    							PlotType: pulumi.String("line"),
    						},
    					},
    				},
    				&fastly.CustomDashboardDashboardItemArgs{
    					Id:       pulumi.String("example10"),
    					Title:    pulumi.String("DDoS - Request Flood Attempts"),
    					Subtitle: pulumi.String("Number of connections the limit-streams action was applied."),
    					Span:     pulumi.Int(6),
    					DataSource: &fastly.CustomDashboardDashboardItemDataSourceArgs{
    						Type: pulumi.String("stats.edge"),
    						Config: &fastly.CustomDashboardDashboardItemDataSourceConfigArgs{
    							Metrics: pulumi.StringArray{
    								pulumi.String("ddos_action_limit_streams_connections"),
    								pulumi.String("ddos_action_limit_streams_requests"),
    							},
    						},
    					},
    					Visualization: &fastly.CustomDashboardDashboardItemVisualizationArgs{
    						Type: pulumi.String("chart"),
    						Config: &fastly.CustomDashboardDashboardItemVisualizationConfigArgs{
    							Format:   pulumi.String("requests"),
    							PlotType: pulumi.String("line"),
    						},
    					},
    				},
    				&fastly.CustomDashboardDashboardItemArgs{
    					Id:       pulumi.String("example11"),
    					Title:    pulumi.String("DDoS - Malicious Bot Attack"),
    					Subtitle: pulumi.String("Number of times the blackhole action was taken."),
    					Span:     pulumi.Int(6),
    					DataSource: &fastly.CustomDashboardDashboardItemDataSourceArgs{
    						Type: pulumi.String("stats.edge"),
    						Config: &fastly.CustomDashboardDashboardItemDataSourceConfigArgs{
    							Metrics: pulumi.StringArray{
    								pulumi.String("ddos_action_close"),
    								pulumi.String("ddos_action_blackhole"),
    							},
    						},
    					},
    					Visualization: &fastly.CustomDashboardDashboardItemVisualizationArgs{
    						Type: pulumi.String("chart"),
    						Config: &fastly.CustomDashboardDashboardItemVisualizationConfigArgs{
    							Format:   pulumi.String("number"),
    							PlotType: pulumi.String("line"),
    						},
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Fastly = Pulumi.Fastly;
    
    return await Deployment.RunAsync(() => 
    {
        var example = new Fastly.CustomDashboard("example", new()
        {
            Name = "Example Custom Dashboard",
            Description = "This is an example custom dashboard. A few dashboard items are provided to help you get started.",
            DashboardItems = new[]
            {
                new Fastly.Inputs.CustomDashboardDashboardItemArgs
                {
                    Id = "example1",
                    Title = "Total Requests",
                    Subtitle = "Number of requests processed.",
                    DataSource = new Fastly.Inputs.CustomDashboardDashboardItemDataSourceArgs
                    {
                        Type = "stats.edge",
                        Config = new Fastly.Inputs.CustomDashboardDashboardItemDataSourceConfigArgs
                        {
                            Metrics = new[]
                            {
                                "requests",
                            },
                        },
                    },
                    Visualization = new Fastly.Inputs.CustomDashboardDashboardItemVisualizationArgs
                    {
                        Type = "chart",
                        Config = new Fastly.Inputs.CustomDashboardDashboardItemVisualizationConfigArgs
                        {
                            Format = "requests",
                            PlotType = "line",
                        },
                    },
                },
                new Fastly.Inputs.CustomDashboardDashboardItemArgs
                {
                    Id = "example2",
                    Title = "Hit Ratio",
                    Subtitle = "Ratio of requests served from Fastly.",
                    DataSource = new Fastly.Inputs.CustomDashboardDashboardItemDataSourceArgs
                    {
                        Type = "stats.edge",
                        Config = new Fastly.Inputs.CustomDashboardDashboardItemDataSourceConfigArgs
                        {
                            Metrics = new[]
                            {
                                "hit_ratio",
                            },
                        },
                    },
                    Visualization = new Fastly.Inputs.CustomDashboardDashboardItemVisualizationArgs
                    {
                        Type = "chart",
                        Config = new Fastly.Inputs.CustomDashboardDashboardItemVisualizationConfigArgs
                        {
                            Format = "percent",
                            PlotType = "donut",
                            CalculationMethod = "latest",
                        },
                    },
                },
                new Fastly.Inputs.CustomDashboardDashboardItemArgs
                {
                    Id = "example3",
                    Title = "Client & Server Errors",
                    Subtitle = "Total errors served from the client or server.",
                    DataSource = new Fastly.Inputs.CustomDashboardDashboardItemDataSourceArgs
                    {
                        Type = "stats.edge",
                        Config = new Fastly.Inputs.CustomDashboardDashboardItemDataSourceConfigArgs
                        {
                            Metrics = new[]
                            {
                                "status_4xx",
                                "status_5xx",
                            },
                        },
                    },
                    Visualization = new Fastly.Inputs.CustomDashboardDashboardItemVisualizationArgs
                    {
                        Type = "chart",
                        Config = new Fastly.Inputs.CustomDashboardDashboardItemVisualizationConfigArgs
                        {
                            Format = "requests",
                            PlotType = "bar",
                        },
                    },
                },
                new Fastly.Inputs.CustomDashboardDashboardItemArgs
                {
                    Id = "example4",
                    Title = "Domain Requests",
                    Subtitle = "Requests by Domain.",
                    Span = 6,
                    DataSource = new Fastly.Inputs.CustomDashboardDashboardItemDataSourceArgs
                    {
                        Type = "stats.domain",
                        Config = new Fastly.Inputs.CustomDashboardDashboardItemDataSourceConfigArgs
                        {
                            Metrics = new[]
                            {
                                "requests",
                            },
                        },
                    },
                    Visualization = new Fastly.Inputs.CustomDashboardDashboardItemVisualizationArgs
                    {
                        Type = "chart",
                        Config = new Fastly.Inputs.CustomDashboardDashboardItemVisualizationConfigArgs
                        {
                            Format = "requests",
                            PlotType = "line",
                        },
                    },
                },
                new Fastly.Inputs.CustomDashboardDashboardItemArgs
                {
                    Id = "example5",
                    Title = "Origin Responses",
                    Subtitle = "Responses by Origin.",
                    Span = 6,
                    DataSource = new Fastly.Inputs.CustomDashboardDashboardItemDataSourceArgs
                    {
                        Type = "stats.origin",
                        Config = new Fastly.Inputs.CustomDashboardDashboardItemDataSourceConfigArgs
                        {
                            Metrics = new[]
                            {
                                "all_responses",
                            },
                        },
                    },
                    Visualization = new Fastly.Inputs.CustomDashboardDashboardItemVisualizationArgs
                    {
                        Type = "chart",
                        Config = new Fastly.Inputs.CustomDashboardDashboardItemVisualizationConfigArgs
                        {
                            PlotType = "line",
                        },
                    },
                },
                new Fastly.Inputs.CustomDashboardDashboardItemArgs
                {
                    Id = "example6",
                    Title = "Total Bandwidth",
                    Subtitle = "Total bandwidth served.",
                    Span = 12,
                    DataSource = new Fastly.Inputs.CustomDashboardDashboardItemDataSourceArgs
                    {
                        Type = "stats.edge",
                        Config = new Fastly.Inputs.CustomDashboardDashboardItemDataSourceConfigArgs
                        {
                            Metrics = new[]
                            {
                                "bandwidth",
                            },
                        },
                    },
                    Visualization = new Fastly.Inputs.CustomDashboardDashboardItemVisualizationArgs
                    {
                        Type = "chart",
                        Config = new Fastly.Inputs.CustomDashboardDashboardItemVisualizationConfigArgs
                        {
                            Format = "bytes",
                            PlotType = "bar",
                        },
                    },
                },
                new Fastly.Inputs.CustomDashboardDashboardItemArgs
                {
                    Id = "example7",
                    Title = "Products - Image Optimizer & Real-Time Log Streaming",
                    Subtitle = "Total IO images served and log statements sent.",
                    Span = 8,
                    DataSource = new Fastly.Inputs.CustomDashboardDashboardItemDataSourceArgs
                    {
                        Type = "stats.edge",
                        Config = new Fastly.Inputs.CustomDashboardDashboardItemDataSourceConfigArgs
                        {
                            Metrics = new[]
                            {
                                "imgopto",
                                "log",
                            },
                        },
                    },
                    Visualization = new Fastly.Inputs.CustomDashboardDashboardItemVisualizationArgs
                    {
                        Type = "chart",
                        Config = new Fastly.Inputs.CustomDashboardDashboardItemVisualizationConfigArgs
                        {
                            PlotType = "line",
                        },
                    },
                },
                new Fastly.Inputs.CustomDashboardDashboardItemArgs
                {
                    Id = "example8",
                    Title = "Transport Protocols & Security",
                    Subtitle = "HTTP Protocols & TLS.",
                    DataSource = new Fastly.Inputs.CustomDashboardDashboardItemDataSourceArgs
                    {
                        Type = "stats.edge",
                        Config = new Fastly.Inputs.CustomDashboardDashboardItemDataSourceConfigArgs
                        {
                            Metrics = new[]
                            {
                                "http1",
                                "http2",
                                "http3",
                                "tls_v10",
                                "tls_v11",
                                "tls_v12",
                                "tls_v13",
                            },
                        },
                    },
                    Visualization = new Fastly.Inputs.CustomDashboardDashboardItemVisualizationArgs
                    {
                        Type = "chart",
                        Config = new Fastly.Inputs.CustomDashboardDashboardItemVisualizationConfigArgs
                        {
                            Format = "requests",
                            PlotType = "line",
                        },
                    },
                },
                new Fastly.Inputs.CustomDashboardDashboardItemArgs
                {
                    Id = "example9",
                    Title = "Origin Miss Latency",
                    Subtitle = "Miss latency times for your origins.",
                    Span = 12,
                    DataSource = new Fastly.Inputs.CustomDashboardDashboardItemDataSourceArgs
                    {
                        Type = "stats.edge",
                        Config = new Fastly.Inputs.CustomDashboardDashboardItemDataSourceConfigArgs
                        {
                            Metrics = new[]
                            {
                                "origin_latency",
                            },
                        },
                    },
                    Visualization = new Fastly.Inputs.CustomDashboardDashboardItemVisualizationArgs
                    {
                        Type = "chart",
                        Config = new Fastly.Inputs.CustomDashboardDashboardItemVisualizationConfigArgs
                        {
                            Format = "milliseconds",
                            PlotType = "line",
                        },
                    },
                },
                new Fastly.Inputs.CustomDashboardDashboardItemArgs
                {
                    Id = "example10",
                    Title = "DDoS - Request Flood Attempts",
                    Subtitle = "Number of connections the limit-streams action was applied.",
                    Span = 6,
                    DataSource = new Fastly.Inputs.CustomDashboardDashboardItemDataSourceArgs
                    {
                        Type = "stats.edge",
                        Config = new Fastly.Inputs.CustomDashboardDashboardItemDataSourceConfigArgs
                        {
                            Metrics = new[]
                            {
                                "ddos_action_limit_streams_connections",
                                "ddos_action_limit_streams_requests",
                            },
                        },
                    },
                    Visualization = new Fastly.Inputs.CustomDashboardDashboardItemVisualizationArgs
                    {
                        Type = "chart",
                        Config = new Fastly.Inputs.CustomDashboardDashboardItemVisualizationConfigArgs
                        {
                            Format = "requests",
                            PlotType = "line",
                        },
                    },
                },
                new Fastly.Inputs.CustomDashboardDashboardItemArgs
                {
                    Id = "example11",
                    Title = "DDoS - Malicious Bot Attack",
                    Subtitle = "Number of times the blackhole action was taken.",
                    Span = 6,
                    DataSource = new Fastly.Inputs.CustomDashboardDashboardItemDataSourceArgs
                    {
                        Type = "stats.edge",
                        Config = new Fastly.Inputs.CustomDashboardDashboardItemDataSourceConfigArgs
                        {
                            Metrics = new[]
                            {
                                "ddos_action_close",
                                "ddos_action_blackhole",
                            },
                        },
                    },
                    Visualization = new Fastly.Inputs.CustomDashboardDashboardItemVisualizationArgs
                    {
                        Type = "chart",
                        Config = new Fastly.Inputs.CustomDashboardDashboardItemVisualizationConfigArgs
                        {
                            Format = "number",
                            PlotType = "line",
                        },
                    },
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.fastly.CustomDashboard;
    import com.pulumi.fastly.CustomDashboardArgs;
    import com.pulumi.fastly.inputs.CustomDashboardDashboardItemArgs;
    import com.pulumi.fastly.inputs.CustomDashboardDashboardItemDataSourceArgs;
    import com.pulumi.fastly.inputs.CustomDashboardDashboardItemDataSourceConfigArgs;
    import com.pulumi.fastly.inputs.CustomDashboardDashboardItemVisualizationArgs;
    import com.pulumi.fastly.inputs.CustomDashboardDashboardItemVisualizationConfigArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var example = new CustomDashboard("example", CustomDashboardArgs.builder()
                .name("Example Custom Dashboard")
                .description("This is an example custom dashboard. A few dashboard items are provided to help you get started.")
                .dashboardItems(            
                    CustomDashboardDashboardItemArgs.builder()
                        .id("example1")
                        .title("Total Requests")
                        .subtitle("Number of requests processed.")
                        .dataSource(CustomDashboardDashboardItemDataSourceArgs.builder()
                            .type("stats.edge")
                            .config(CustomDashboardDashboardItemDataSourceConfigArgs.builder()
                                .metrics("requests")
                                .build())
                            .build())
                        .visualization(CustomDashboardDashboardItemVisualizationArgs.builder()
                            .type("chart")
                            .config(CustomDashboardDashboardItemVisualizationConfigArgs.builder()
                                .format("requests")
                                .plotType("line")
                                .build())
                            .build())
                        .build(),
                    CustomDashboardDashboardItemArgs.builder()
                        .id("example2")
                        .title("Hit Ratio")
                        .subtitle("Ratio of requests served from Fastly.")
                        .dataSource(CustomDashboardDashboardItemDataSourceArgs.builder()
                            .type("stats.edge")
                            .config(CustomDashboardDashboardItemDataSourceConfigArgs.builder()
                                .metrics("hit_ratio")
                                .build())
                            .build())
                        .visualization(CustomDashboardDashboardItemVisualizationArgs.builder()
                            .type("chart")
                            .config(CustomDashboardDashboardItemVisualizationConfigArgs.builder()
                                .format("percent")
                                .plotType("donut")
                                .calculationMethod("latest")
                                .build())
                            .build())
                        .build(),
                    CustomDashboardDashboardItemArgs.builder()
                        .id("example3")
                        .title("Client & Server Errors")
                        .subtitle("Total errors served from the client or server.")
                        .dataSource(CustomDashboardDashboardItemDataSourceArgs.builder()
                            .type("stats.edge")
                            .config(CustomDashboardDashboardItemDataSourceConfigArgs.builder()
                                .metrics(                            
                                    "status_4xx",
                                    "status_5xx")
                                .build())
                            .build())
                        .visualization(CustomDashboardDashboardItemVisualizationArgs.builder()
                            .type("chart")
                            .config(CustomDashboardDashboardItemVisualizationConfigArgs.builder()
                                .format("requests")
                                .plotType("bar")
                                .build())
                            .build())
                        .build(),
                    CustomDashboardDashboardItemArgs.builder()
                        .id("example4")
                        .title("Domain Requests")
                        .subtitle("Requests by Domain.")
                        .span(6)
                        .dataSource(CustomDashboardDashboardItemDataSourceArgs.builder()
                            .type("stats.domain")
                            .config(CustomDashboardDashboardItemDataSourceConfigArgs.builder()
                                .metrics("requests")
                                .build())
                            .build())
                        .visualization(CustomDashboardDashboardItemVisualizationArgs.builder()
                            .type("chart")
                            .config(CustomDashboardDashboardItemVisualizationConfigArgs.builder()
                                .format("requests")
                                .plotType("line")
                                .build())
                            .build())
                        .build(),
                    CustomDashboardDashboardItemArgs.builder()
                        .id("example5")
                        .title("Origin Responses")
                        .subtitle("Responses by Origin.")
                        .span(6)
                        .dataSource(CustomDashboardDashboardItemDataSourceArgs.builder()
                            .type("stats.origin")
                            .config(CustomDashboardDashboardItemDataSourceConfigArgs.builder()
                                .metrics("all_responses")
                                .build())
                            .build())
                        .visualization(CustomDashboardDashboardItemVisualizationArgs.builder()
                            .type("chart")
                            .config(CustomDashboardDashboardItemVisualizationConfigArgs.builder()
                                .plotType("line")
                                .build())
                            .build())
                        .build(),
                    CustomDashboardDashboardItemArgs.builder()
                        .id("example6")
                        .title("Total Bandwidth")
                        .subtitle("Total bandwidth served.")
                        .span(12)
                        .dataSource(CustomDashboardDashboardItemDataSourceArgs.builder()
                            .type("stats.edge")
                            .config(CustomDashboardDashboardItemDataSourceConfigArgs.builder()
                                .metrics("bandwidth")
                                .build())
                            .build())
                        .visualization(CustomDashboardDashboardItemVisualizationArgs.builder()
                            .type("chart")
                            .config(CustomDashboardDashboardItemVisualizationConfigArgs.builder()
                                .format("bytes")
                                .plotType("bar")
                                .build())
                            .build())
                        .build(),
                    CustomDashboardDashboardItemArgs.builder()
                        .id("example7")
                        .title("Products - Image Optimizer & Real-Time Log Streaming")
                        .subtitle("Total IO images served and log statements sent.")
                        .span(8)
                        .dataSource(CustomDashboardDashboardItemDataSourceArgs.builder()
                            .type("stats.edge")
                            .config(CustomDashboardDashboardItemDataSourceConfigArgs.builder()
                                .metrics(                            
                                    "imgopto",
                                    "log")
                                .build())
                            .build())
                        .visualization(CustomDashboardDashboardItemVisualizationArgs.builder()
                            .type("chart")
                            .config(CustomDashboardDashboardItemVisualizationConfigArgs.builder()
                                .plotType("line")
                                .build())
                            .build())
                        .build(),
                    CustomDashboardDashboardItemArgs.builder()
                        .id("example8")
                        .title("Transport Protocols & Security")
                        .subtitle("HTTP Protocols & TLS.")
                        .dataSource(CustomDashboardDashboardItemDataSourceArgs.builder()
                            .type("stats.edge")
                            .config(CustomDashboardDashboardItemDataSourceConfigArgs.builder()
                                .metrics(                            
                                    "http1",
                                    "http2",
                                    "http3",
                                    "tls_v10",
                                    "tls_v11",
                                    "tls_v12",
                                    "tls_v13")
                                .build())
                            .build())
                        .visualization(CustomDashboardDashboardItemVisualizationArgs.builder()
                            .type("chart")
                            .config(CustomDashboardDashboardItemVisualizationConfigArgs.builder()
                                .format("requests")
                                .plotType("line")
                                .build())
                            .build())
                        .build(),
                    CustomDashboardDashboardItemArgs.builder()
                        .id("example9")
                        .title("Origin Miss Latency")
                        .subtitle("Miss latency times for your origins.")
                        .span(12)
                        .dataSource(CustomDashboardDashboardItemDataSourceArgs.builder()
                            .type("stats.edge")
                            .config(CustomDashboardDashboardItemDataSourceConfigArgs.builder()
                                .metrics("origin_latency")
                                .build())
                            .build())
                        .visualization(CustomDashboardDashboardItemVisualizationArgs.builder()
                            .type("chart")
                            .config(CustomDashboardDashboardItemVisualizationConfigArgs.builder()
                                .format("milliseconds")
                                .plotType("line")
                                .build())
                            .build())
                        .build(),
                    CustomDashboardDashboardItemArgs.builder()
                        .id("example10")
                        .title("DDoS - Request Flood Attempts")
                        .subtitle("Number of connections the limit-streams action was applied.")
                        .span(6)
                        .dataSource(CustomDashboardDashboardItemDataSourceArgs.builder()
                            .type("stats.edge")
                            .config(CustomDashboardDashboardItemDataSourceConfigArgs.builder()
                                .metrics(                            
                                    "ddos_action_limit_streams_connections",
                                    "ddos_action_limit_streams_requests")
                                .build())
                            .build())
                        .visualization(CustomDashboardDashboardItemVisualizationArgs.builder()
                            .type("chart")
                            .config(CustomDashboardDashboardItemVisualizationConfigArgs.builder()
                                .format("requests")
                                .plotType("line")
                                .build())
                            .build())
                        .build(),
                    CustomDashboardDashboardItemArgs.builder()
                        .id("example11")
                        .title("DDoS - Malicious Bot Attack")
                        .subtitle("Number of times the blackhole action was taken.")
                        .span(6)
                        .dataSource(CustomDashboardDashboardItemDataSourceArgs.builder()
                            .type("stats.edge")
                            .config(CustomDashboardDashboardItemDataSourceConfigArgs.builder()
                                .metrics(                            
                                    "ddos_action_close",
                                    "ddos_action_blackhole")
                                .build())
                            .build())
                        .visualization(CustomDashboardDashboardItemVisualizationArgs.builder()
                            .type("chart")
                            .config(CustomDashboardDashboardItemVisualizationConfigArgs.builder()
                                .format("number")
                                .plotType("line")
                                .build())
                            .build())
                        .build())
                .build());
    
        }
    }
    
    resources:
      example:
        type: fastly:CustomDashboard
        properties:
          name: Example Custom Dashboard
          description: This is an example custom dashboard. A few dashboard items are provided to help you get started.
          dashboardItems:
            - id: example1
              title: Total Requests
              subtitle: Number of requests processed.
              dataSource:
                type: stats.edge
                config:
                  metrics:
                    - requests
              visualization:
                type: chart
                config:
                  format: requests
                  plotType: line
            - id: example2
              title: Hit Ratio
              subtitle: Ratio of requests served from Fastly.
              dataSource:
                type: stats.edge
                config:
                  metrics:
                    - hit_ratio
              visualization:
                type: chart
                config:
                  format: percent
                  plotType: donut
                  calculationMethod: latest
            - id: example3
              title: Client & Server Errors
              subtitle: Total errors served from the client or server.
              dataSource:
                type: stats.edge
                config:
                  metrics:
                    - status_4xx
                    - status_5xx
              visualization:
                type: chart
                config:
                  format: requests
                  plotType: bar
            - id: example4
              title: Domain Requests
              subtitle: Requests by Domain.
              span: 6
              dataSource:
                type: stats.domain
                config:
                  metrics:
                    - requests
              visualization:
                type: chart
                config:
                  format: requests
                  plotType: line
            - id: example5
              title: Origin Responses
              subtitle: Responses by Origin.
              span: 6
              dataSource:
                type: stats.origin
                config:
                  metrics:
                    - all_responses
              visualization:
                type: chart
                config:
                  plotType: line
            - id: example6
              title: Total Bandwidth
              subtitle: Total bandwidth served.
              span: 12
              dataSource:
                type: stats.edge
                config:
                  metrics:
                    - bandwidth
              visualization:
                type: chart
                config:
                  format: bytes
                  plotType: bar
            - id: example7
              title: Products - Image Optimizer & Real-Time Log Streaming
              subtitle: Total IO images served and log statements sent.
              span: 8
              dataSource:
                type: stats.edge
                config:
                  metrics:
                    - imgopto
                    - log
              visualization:
                type: chart
                config:
                  plotType: line
            - id: example8
              title: Transport Protocols & Security
              subtitle: HTTP Protocols & TLS.
              dataSource:
                type: stats.edge
                config:
                  metrics:
                    - http1
                    - http2
                    - http3
                    - tls_v10
                    - tls_v11
                    - tls_v12
                    - tls_v13
              visualization:
                type: chart
                config:
                  format: requests
                  plotType: line
            - id: example9
              title: Origin Miss Latency
              subtitle: Miss latency times for your origins.
              span: 12
              dataSource:
                type: stats.edge
                config:
                  metrics:
                    - origin_latency
              visualization:
                type: chart
                config:
                  format: milliseconds
                  plotType: line
            - id: example10
              title: DDoS - Request Flood Attempts
              subtitle: Number of connections the limit-streams action was applied.
              span: 6
              dataSource:
                type: stats.edge
                config:
                  metrics:
                    - ddos_action_limit_streams_connections
                    - ddos_action_limit_streams_requests
              visualization:
                type: chart
                config:
                  format: requests
                  plotType: line
            - id: example11
              title: DDoS - Malicious Bot Attack
              subtitle: Number of times the blackhole action was taken.
              span: 6
              dataSource:
                type: stats.edge
                config:
                  metrics:
                    - ddos_action_close
                    - ddos_action_blackhole
              visualization:
                type: chart
                config:
                  format: number
                  plotType: line
    

    Create CustomDashboard Resource

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

    Constructor syntax

    new CustomDashboard(name: string, args?: CustomDashboardArgs, opts?: CustomResourceOptions);
    @overload
    def CustomDashboard(resource_name: str,
                        args: Optional[CustomDashboardArgs] = None,
                        opts: Optional[ResourceOptions] = None)
    
    @overload
    def CustomDashboard(resource_name: str,
                        opts: Optional[ResourceOptions] = None,
                        dashboard_items: Optional[Sequence[CustomDashboardDashboardItemArgs]] = None,
                        description: Optional[str] = None,
                        name: Optional[str] = None)
    func NewCustomDashboard(ctx *Context, name string, args *CustomDashboardArgs, opts ...ResourceOption) (*CustomDashboard, error)
    public CustomDashboard(string name, CustomDashboardArgs? args = null, CustomResourceOptions? opts = null)
    public CustomDashboard(String name, CustomDashboardArgs args)
    public CustomDashboard(String name, CustomDashboardArgs args, CustomResourceOptions options)
    
    type: fastly:CustomDashboard
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    

    Parameters

    name string
    The unique name of the resource.
    args CustomDashboardArgs
    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 CustomDashboardArgs
    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 CustomDashboardArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args CustomDashboardArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args CustomDashboardArgs
    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 customDashboardResource = new Fastly.CustomDashboard("customDashboardResource", new()
    {
        DashboardItems = new[]
        {
            new Fastly.Inputs.CustomDashboardDashboardItemArgs
            {
                DataSource = new Fastly.Inputs.CustomDashboardDashboardItemDataSourceArgs
                {
                    Config = new Fastly.Inputs.CustomDashboardDashboardItemDataSourceConfigArgs
                    {
                        Metrics = new[]
                        {
                            "string",
                        },
                    },
                    Type = "string",
                },
                Id = "string",
                Subtitle = "string",
                Title = "string",
                Visualization = new Fastly.Inputs.CustomDashboardDashboardItemVisualizationArgs
                {
                    Config = new Fastly.Inputs.CustomDashboardDashboardItemVisualizationConfigArgs
                    {
                        PlotType = "string",
                        CalculationMethod = "string",
                        Format = "string",
                    },
                    Type = "string",
                },
                Span = 0,
            },
        },
        Description = "string",
        Name = "string",
    });
    
    example, err := fastly.NewCustomDashboard(ctx, "customDashboardResource", &fastly.CustomDashboardArgs{
    	DashboardItems: fastly.CustomDashboardDashboardItemArray{
    		&fastly.CustomDashboardDashboardItemArgs{
    			DataSource: &fastly.CustomDashboardDashboardItemDataSourceArgs{
    				Config: &fastly.CustomDashboardDashboardItemDataSourceConfigArgs{
    					Metrics: pulumi.StringArray{
    						pulumi.String("string"),
    					},
    				},
    				Type: pulumi.String("string"),
    			},
    			Id:       pulumi.String("string"),
    			Subtitle: pulumi.String("string"),
    			Title:    pulumi.String("string"),
    			Visualization: &fastly.CustomDashboardDashboardItemVisualizationArgs{
    				Config: &fastly.CustomDashboardDashboardItemVisualizationConfigArgs{
    					PlotType:          pulumi.String("string"),
    					CalculationMethod: pulumi.String("string"),
    					Format:            pulumi.String("string"),
    				},
    				Type: pulumi.String("string"),
    			},
    			Span: pulumi.Int(0),
    		},
    	},
    	Description: pulumi.String("string"),
    	Name:        pulumi.String("string"),
    })
    
    var customDashboardResource = new CustomDashboard("customDashboardResource", CustomDashboardArgs.builder()
        .dashboardItems(CustomDashboardDashboardItemArgs.builder()
            .dataSource(CustomDashboardDashboardItemDataSourceArgs.builder()
                .config(CustomDashboardDashboardItemDataSourceConfigArgs.builder()
                    .metrics("string")
                    .build())
                .type("string")
                .build())
            .id("string")
            .subtitle("string")
            .title("string")
            .visualization(CustomDashboardDashboardItemVisualizationArgs.builder()
                .config(CustomDashboardDashboardItemVisualizationConfigArgs.builder()
                    .plotType("string")
                    .calculationMethod("string")
                    .format("string")
                    .build())
                .type("string")
                .build())
            .span(0)
            .build())
        .description("string")
        .name("string")
        .build());
    
    custom_dashboard_resource = fastly.CustomDashboard("customDashboardResource",
        dashboard_items=[{
            "data_source": {
                "config": {
                    "metrics": ["string"],
                },
                "type": "string",
            },
            "id": "string",
            "subtitle": "string",
            "title": "string",
            "visualization": {
                "config": {
                    "plot_type": "string",
                    "calculation_method": "string",
                    "format": "string",
                },
                "type": "string",
            },
            "span": 0,
        }],
        description="string",
        name="string")
    
    const customDashboardResource = new fastly.CustomDashboard("customDashboardResource", {
        dashboardItems: [{
            dataSource: {
                config: {
                    metrics: ["string"],
                },
                type: "string",
            },
            id: "string",
            subtitle: "string",
            title: "string",
            visualization: {
                config: {
                    plotType: "string",
                    calculationMethod: "string",
                    format: "string",
                },
                type: "string",
            },
            span: 0,
        }],
        description: "string",
        name: "string",
    });
    
    type: fastly:CustomDashboard
    properties:
        dashboardItems:
            - dataSource:
                config:
                    metrics:
                        - string
                type: string
              id: string
              span: 0
              subtitle: string
              title: string
              visualization:
                config:
                    calculationMethod: string
                    format: string
                    plotType: string
                type: string
        description: string
        name: string
    

    CustomDashboard 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 CustomDashboard resource accepts the following input properties:

    DashboardItems List<CustomDashboardDashboardItem>
    A list of dashboard items.
    Description string
    A short description of the dashboard.
    Name string
    A human-readable name.
    DashboardItems []CustomDashboardDashboardItemArgs
    A list of dashboard items.
    Description string
    A short description of the dashboard.
    Name string
    A human-readable name.
    dashboardItems List<CustomDashboardDashboardItem>
    A list of dashboard items.
    description String
    A short description of the dashboard.
    name String
    A human-readable name.
    dashboardItems CustomDashboardDashboardItem[]
    A list of dashboard items.
    description string
    A short description of the dashboard.
    name string
    A human-readable name.
    dashboard_items Sequence[CustomDashboardDashboardItemArgs]
    A list of dashboard items.
    description str
    A short description of the dashboard.
    name str
    A human-readable name.
    dashboardItems List<Property Map>
    A list of dashboard items.
    description String
    A short description of the dashboard.
    name String
    A human-readable name.

    Outputs

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

    Id string
    The provider-assigned unique ID for this managed resource.
    Id string
    The provider-assigned unique ID for this managed resource.
    id String
    The provider-assigned unique ID for this managed resource.
    id string
    The provider-assigned unique ID for this managed resource.
    id str
    The provider-assigned unique ID for this managed resource.
    id String
    The provider-assigned unique ID for this managed resource.

    Look up Existing CustomDashboard Resource

    Get an existing CustomDashboard 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?: CustomDashboardState, opts?: CustomResourceOptions): CustomDashboard
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            dashboard_items: Optional[Sequence[CustomDashboardDashboardItemArgs]] = None,
            description: Optional[str] = None,
            name: Optional[str] = None) -> CustomDashboard
    func GetCustomDashboard(ctx *Context, name string, id IDInput, state *CustomDashboardState, opts ...ResourceOption) (*CustomDashboard, error)
    public static CustomDashboard Get(string name, Input<string> id, CustomDashboardState? state, CustomResourceOptions? opts = null)
    public static CustomDashboard get(String name, Output<String> id, CustomDashboardState state, CustomResourceOptions options)
    resources:  _:    type: fastly:CustomDashboard    get:      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:
    DashboardItems List<CustomDashboardDashboardItem>
    A list of dashboard items.
    Description string
    A short description of the dashboard.
    Name string
    A human-readable name.
    DashboardItems []CustomDashboardDashboardItemArgs
    A list of dashboard items.
    Description string
    A short description of the dashboard.
    Name string
    A human-readable name.
    dashboardItems List<CustomDashboardDashboardItem>
    A list of dashboard items.
    description String
    A short description of the dashboard.
    name String
    A human-readable name.
    dashboardItems CustomDashboardDashboardItem[]
    A list of dashboard items.
    description string
    A short description of the dashboard.
    name string
    A human-readable name.
    dashboard_items Sequence[CustomDashboardDashboardItemArgs]
    A list of dashboard items.
    description str
    A short description of the dashboard.
    name str
    A human-readable name.
    dashboardItems List<Property Map>
    A list of dashboard items.
    description String
    A short description of the dashboard.
    name String
    A human-readable name.

    Supporting Types

    CustomDashboardDashboardItem, CustomDashboardDashboardItemArgs

    DataSource CustomDashboardDashboardItemDataSource
    An object which describes the data to display.
    Id string
    Dashboard item identifier (alphanumeric). Must be unique, relative to other items in the same dashboard.
    Subtitle string
    A human-readable subtitle for the dashboard item. Often a description of the visualization.
    Title string
    A human-readable title for the dashboard item.
    Visualization CustomDashboardDashboardItemVisualization
    An object which describes the data visualization to display.
    Span int
    The number of columns for the dashboard item to span. Dashboards are rendered on a 12-column grid on "desktop" screen sizes.
    DataSource CustomDashboardDashboardItemDataSource
    An object which describes the data to display.
    Id string
    Dashboard item identifier (alphanumeric). Must be unique, relative to other items in the same dashboard.
    Subtitle string
    A human-readable subtitle for the dashboard item. Often a description of the visualization.
    Title string
    A human-readable title for the dashboard item.
    Visualization CustomDashboardDashboardItemVisualization
    An object which describes the data visualization to display.
    Span int
    The number of columns for the dashboard item to span. Dashboards are rendered on a 12-column grid on "desktop" screen sizes.
    dataSource CustomDashboardDashboardItemDataSource
    An object which describes the data to display.
    id String
    Dashboard item identifier (alphanumeric). Must be unique, relative to other items in the same dashboard.
    subtitle String
    A human-readable subtitle for the dashboard item. Often a description of the visualization.
    title String
    A human-readable title for the dashboard item.
    visualization CustomDashboardDashboardItemVisualization
    An object which describes the data visualization to display.
    span Integer
    The number of columns for the dashboard item to span. Dashboards are rendered on a 12-column grid on "desktop" screen sizes.
    dataSource CustomDashboardDashboardItemDataSource
    An object which describes the data to display.
    id string
    Dashboard item identifier (alphanumeric). Must be unique, relative to other items in the same dashboard.
    subtitle string
    A human-readable subtitle for the dashboard item. Often a description of the visualization.
    title string
    A human-readable title for the dashboard item.
    visualization CustomDashboardDashboardItemVisualization
    An object which describes the data visualization to display.
    span number
    The number of columns for the dashboard item to span. Dashboards are rendered on a 12-column grid on "desktop" screen sizes.
    data_source CustomDashboardDashboardItemDataSource
    An object which describes the data to display.
    id str
    Dashboard item identifier (alphanumeric). Must be unique, relative to other items in the same dashboard.
    subtitle str
    A human-readable subtitle for the dashboard item. Often a description of the visualization.
    title str
    A human-readable title for the dashboard item.
    visualization CustomDashboardDashboardItemVisualization
    An object which describes the data visualization to display.
    span int
    The number of columns for the dashboard item to span. Dashboards are rendered on a 12-column grid on "desktop" screen sizes.
    dataSource Property Map
    An object which describes the data to display.
    id String
    Dashboard item identifier (alphanumeric). Must be unique, relative to other items in the same dashboard.
    subtitle String
    A human-readable subtitle for the dashboard item. Often a description of the visualization.
    title String
    A human-readable title for the dashboard item.
    visualization Property Map
    An object which describes the data visualization to display.
    span Number
    The number of columns for the dashboard item to span. Dashboards are rendered on a 12-column grid on "desktop" screen sizes.

    CustomDashboardDashboardItemDataSource, CustomDashboardDashboardItemDataSourceArgs

    Config CustomDashboardDashboardItemDataSourceConfig
    Configuration options for the selected data source.
    Type string
    The source of the data to display. One of: stats.edge, stats.domain, stats.origin.
    Config CustomDashboardDashboardItemDataSourceConfig
    Configuration options for the selected data source.
    Type string
    The source of the data to display. One of: stats.edge, stats.domain, stats.origin.
    config CustomDashboardDashboardItemDataSourceConfig
    Configuration options for the selected data source.
    type String
    The source of the data to display. One of: stats.edge, stats.domain, stats.origin.
    config CustomDashboardDashboardItemDataSourceConfig
    Configuration options for the selected data source.
    type string
    The source of the data to display. One of: stats.edge, stats.domain, stats.origin.
    config CustomDashboardDashboardItemDataSourceConfig
    Configuration options for the selected data source.
    type str
    The source of the data to display. One of: stats.edge, stats.domain, stats.origin.
    config Property Map
    Configuration options for the selected data source.
    type String
    The source of the data to display. One of: stats.edge, stats.domain, stats.origin.

    CustomDashboardDashboardItemDataSourceConfig, CustomDashboardDashboardItemDataSourceConfigArgs

    Metrics List<string>
    The metrics to visualize. Valid options are defined by the selected data source: stats.edge, stats.domain, stats.origin.
    Metrics []string
    The metrics to visualize. Valid options are defined by the selected data source: stats.edge, stats.domain, stats.origin.
    metrics List<String>
    The metrics to visualize. Valid options are defined by the selected data source: stats.edge, stats.domain, stats.origin.
    metrics string[]
    The metrics to visualize. Valid options are defined by the selected data source: stats.edge, stats.domain, stats.origin.
    metrics Sequence[str]
    The metrics to visualize. Valid options are defined by the selected data source: stats.edge, stats.domain, stats.origin.
    metrics List<String>
    The metrics to visualize. Valid options are defined by the selected data source: stats.edge, stats.domain, stats.origin.

    CustomDashboardDashboardItemVisualization, CustomDashboardDashboardItemVisualizationArgs

    Config CustomDashboardDashboardItemVisualizationConfig
    Configuration options for the selected data source.
    Type string
    The type of visualization to display. One of: chart.
    Config CustomDashboardDashboardItemVisualizationConfig
    Configuration options for the selected data source.
    Type string
    The type of visualization to display. One of: chart.
    config CustomDashboardDashboardItemVisualizationConfig
    Configuration options for the selected data source.
    type String
    The type of visualization to display. One of: chart.
    config CustomDashboardDashboardItemVisualizationConfig
    Configuration options for the selected data source.
    type string
    The type of visualization to display. One of: chart.
    config CustomDashboardDashboardItemVisualizationConfig
    Configuration options for the selected data source.
    type str
    The type of visualization to display. One of: chart.
    config Property Map
    Configuration options for the selected data source.
    type String
    The type of visualization to display. One of: chart.

    CustomDashboardDashboardItemVisualizationConfig, CustomDashboardDashboardItemVisualizationConfigArgs

    PlotType string
    The type of chart to display. One of: line, bar, single-metric, donut.
    CalculationMethod string
    The aggregation function to apply to the dataset. One of: avg, sum, min, max, latest, p95.
    Format string
    The units to use to format the data. One of: number, bytes, percent, requests, responses, seconds, milliseconds, ratio, bitrate.
    PlotType string
    The type of chart to display. One of: line, bar, single-metric, donut.
    CalculationMethod string
    The aggregation function to apply to the dataset. One of: avg, sum, min, max, latest, p95.
    Format string
    The units to use to format the data. One of: number, bytes, percent, requests, responses, seconds, milliseconds, ratio, bitrate.
    plotType String
    The type of chart to display. One of: line, bar, single-metric, donut.
    calculationMethod String
    The aggregation function to apply to the dataset. One of: avg, sum, min, max, latest, p95.
    format String
    The units to use to format the data. One of: number, bytes, percent, requests, responses, seconds, milliseconds, ratio, bitrate.
    plotType string
    The type of chart to display. One of: line, bar, single-metric, donut.
    calculationMethod string
    The aggregation function to apply to the dataset. One of: avg, sum, min, max, latest, p95.
    format string
    The units to use to format the data. One of: number, bytes, percent, requests, responses, seconds, milliseconds, ratio, bitrate.
    plot_type str
    The type of chart to display. One of: line, bar, single-metric, donut.
    calculation_method str
    The aggregation function to apply to the dataset. One of: avg, sum, min, max, latest, p95.
    format str
    The units to use to format the data. One of: number, bytes, percent, requests, responses, seconds, milliseconds, ratio, bitrate.
    plotType String
    The type of chart to display. One of: line, bar, single-metric, donut.
    calculationMethod String
    The aggregation function to apply to the dataset. One of: avg, sum, min, max, latest, p95.
    format String
    The units to use to format the data. One of: number, bytes, percent, requests, responses, seconds, milliseconds, ratio, bitrate.

    Import

    Fastly Custom Dashboards can be imported using their ID, e.g.

    $ pulumi import fastly:index/customDashboard:CustomDashboard example xxxxxxxxxxxxxxxxxxxx
    

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

    Package Details

    Repository
    Fastly pulumi/pulumi-fastly
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the fastly Terraform Provider.
    fastly logo
    Fastly v11.1.0 published on Wednesday, Nov 5, 2025 by Pulumi
      Meet Neo: Your AI Platform Teammate