UNPKG

@pulumiverse/grafana

Version:

A Pulumi package for creating and managing grafana.

160 lines 6.33 kB
"use strict"; // *** WARNING: this file was generated by pulumi-language-nodejs. *** // *** Do not edit by hand unless you're certain you know what you are doing! *** Object.defineProperty(exports, "__esModule", { value: true }); exports.getDashboardsOutput = exports.getDashboards = void 0; const pulumi = require("@pulumi/pulumi"); const utilities = require("../utilities"); /** * Datasource for retrieving all dashboards. Specify list of folder IDs to search in for dashboards. * * * [Official documentation](https://grafana.com/docs/grafana/latest/dashboards/) * * [Dashboard HTTP API](https://grafana.com/docs/grafana/latest/developers/http_api/dashboard/) * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as grafana from "@pulumiverse/grafana"; * import * as std from "@pulumi/std"; * * const test = new grafana.oss.Organization("test", {name: "testing dashboards data source"}); * const dataSourceDashboards = new grafana.oss.Folder("data_source_dashboards", { * orgId: test.id, * title: "test folder data_source_dashboards", * }); * const dataSourceDashboards1 = new grafana.oss.Dashboard("data_source_dashboards1", { * orgId: test.id, * folder: dataSourceDashboards.id, * configJson: JSON.stringify({ * uid: "data-source-dashboards-1", * title: "data_source_dashboards 1", * tags: ["dev"], * }), * }); * const dataSourceDashboards2 = new grafana.oss.Dashboard("data_source_dashboards2", { * orgId: test.id, * configJson: JSON.stringify({ * uid: "data-source-dashboards-2", * title: "data_source_dashboards 2", * tags: ["prod"], * }), * }); * const tags = pulumi.all([test.id, dataSourceDashboards1.configJson]).apply(([id, configJson]) => grafana.oss.getDashboardsOutput({ * orgId: id, * tags: std.index.jsondecode({ * input: configJson, * }).result.tags, * })); * const folderUids = pulumi.all([test.id, dataSourceDashboards1.folder]).apply(([id, folder]) => grafana.oss.getDashboardsOutput({ * orgId: id, * folderUids: [folder], * })); * const folderUidsTags = pulumi.all([test.id, dataSourceDashboards1.folder, dataSourceDashboards1.configJson]).apply(([id, folder, configJson]) => grafana.oss.getDashboardsOutput({ * orgId: id, * folderUids: [folder], * tags: std.index.jsondecode({ * input: configJson, * }).result.tags, * })); * // use depends_on to wait for dashboard resource to be created before searching * const all = grafana.oss.getDashboardsOutput({ * orgId: test.id, * }); * // get only one result * const limitOne = test.id.apply(id => grafana.oss.getDashboardsOutput({ * orgId: id, * limit: 1, * })); * // The dashboards are not in the default org so this should return an empty list * const wrongOrg = grafana.oss.getDashboards({}); * ``` */ function getDashboards(args, opts) { args = args || {}; opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); return pulumi.runtime.invoke("grafana:oss/getDashboards:getDashboards", { "folderUids": args.folderUids, "limit": args.limit, "orgId": args.orgId, "tags": args.tags, }, opts); } exports.getDashboards = getDashboards; /** * Datasource for retrieving all dashboards. Specify list of folder IDs to search in for dashboards. * * * [Official documentation](https://grafana.com/docs/grafana/latest/dashboards/) * * [Dashboard HTTP API](https://grafana.com/docs/grafana/latest/developers/http_api/dashboard/) * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as grafana from "@pulumiverse/grafana"; * import * as std from "@pulumi/std"; * * const test = new grafana.oss.Organization("test", {name: "testing dashboards data source"}); * const dataSourceDashboards = new grafana.oss.Folder("data_source_dashboards", { * orgId: test.id, * title: "test folder data_source_dashboards", * }); * const dataSourceDashboards1 = new grafana.oss.Dashboard("data_source_dashboards1", { * orgId: test.id, * folder: dataSourceDashboards.id, * configJson: JSON.stringify({ * uid: "data-source-dashboards-1", * title: "data_source_dashboards 1", * tags: ["dev"], * }), * }); * const dataSourceDashboards2 = new grafana.oss.Dashboard("data_source_dashboards2", { * orgId: test.id, * configJson: JSON.stringify({ * uid: "data-source-dashboards-2", * title: "data_source_dashboards 2", * tags: ["prod"], * }), * }); * const tags = pulumi.all([test.id, dataSourceDashboards1.configJson]).apply(([id, configJson]) => grafana.oss.getDashboardsOutput({ * orgId: id, * tags: std.index.jsondecode({ * input: configJson, * }).result.tags, * })); * const folderUids = pulumi.all([test.id, dataSourceDashboards1.folder]).apply(([id, folder]) => grafana.oss.getDashboardsOutput({ * orgId: id, * folderUids: [folder], * })); * const folderUidsTags = pulumi.all([test.id, dataSourceDashboards1.folder, dataSourceDashboards1.configJson]).apply(([id, folder, configJson]) => grafana.oss.getDashboardsOutput({ * orgId: id, * folderUids: [folder], * tags: std.index.jsondecode({ * input: configJson, * }).result.tags, * })); * // use depends_on to wait for dashboard resource to be created before searching * const all = grafana.oss.getDashboardsOutput({ * orgId: test.id, * }); * // get only one result * const limitOne = test.id.apply(id => grafana.oss.getDashboardsOutput({ * orgId: id, * limit: 1, * })); * // The dashboards are not in the default org so this should return an empty list * const wrongOrg = grafana.oss.getDashboards({}); * ``` */ function getDashboardsOutput(args, opts) { args = args || {}; opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); return pulumi.runtime.invokeOutput("grafana:oss/getDashboards:getDashboards", { "folderUids": args.folderUids, "limit": args.limit, "orgId": args.orgId, "tags": args.tags, }, opts); } exports.getDashboardsOutput = getDashboardsOutput; //# sourceMappingURL=getDashboards.js.map