@pulumiverse/grafana
Version:
A Pulumi package for creating and managing grafana.
160 lines • 6.33 kB
JavaScript
;
// *** 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