UNPKG

@pulumiverse/grafana

Version:

A Pulumi package for creating and managing grafana.

169 lines (168 loc) 7.76 kB
import * as pulumi from "@pulumi/pulumi"; /** * * [Official documentation](https://grafana.com/docs/grafana/latest/datasources/) * * [HTTP API](https://grafana.com/docs/grafana/latest/developers/http_api/data_source/) * * The required arguments for this resource vary depending on the type of data * source selected (via the 'type' argument). * * Use this resource for configuring multiple datasources, when that configuration (`jsonDataEncoded` field) requires circular references like in the example below. * * > When using the `grafana.oss.DataSourceConfig` resource, the corresponding `grafana.oss.DataSource` resources must have the `jsonDataEncoded` and `httpHeaders` fields ignored. Otherwise, an infinite update loop will occur. See the example below. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as grafana from "@pulumiverse/grafana"; * * const loki = new grafana.oss.DataSource("loki", { * type: "loki", * name: "loki", * url: "http://localhost:3100", * }); * const tempo = new grafana.oss.DataSource("tempo", { * type: "tempo", * name: "tempo", * url: "http://localhost:3200", * }); * const lokiDataSourceConfig = new grafana.oss.DataSourceConfig("loki", { * uid: loki.uid, * jsonDataEncoded: pulumi.jsonStringify({ * derivedFields: [{ * datasourceUid: tempo.uid, * matcherRegex: "[tT]race_?[iI][dD]\"?[:=]\"?(\\w+)", * matcherType: "regex", * name: "traceID", * url: "${__value.raw}", * }], * }), * }); * const tempoDataSourceConfig = new grafana.oss.DataSourceConfig("tempo", { * uid: tempo.uid, * jsonDataEncoded: pulumi.jsonStringify({ * tracesToLogsV2: { * customQuery: true, * datasourceUid: loki.uid, * filterBySpanID: false, * filterByTraceID: false, * query: "|=\"${__trace.traceId}\" | json", * }, * }), * }); * ``` * * ## Import * * ```sh * $ pulumi import grafana:index/dataSourceConfig:DataSourceConfig name "{{ uid }}" * ``` * * ```sh * $ pulumi import grafana:index/dataSourceConfig:DataSourceConfig name "{{ orgID }}:{{ uid }}" * ``` * * @deprecated grafana.index/datasourceconfig.DataSourceConfig has been deprecated in favor of grafana.oss/datasourceconfig.DataSourceConfig */ export declare class DataSourceConfig extends pulumi.CustomResource { /** * Get an existing DataSourceConfig resource's state with the given name, ID, and optional extra * properties used to qualify the lookup. * * @param name The _unique_ name of the resulting resource. * @param id The _unique_ provider ID of the resource to lookup. * @param state Any extra arguments used during the lookup. * @param opts Optional settings to control the behavior of the CustomResource. */ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: DataSourceConfigState, opts?: pulumi.CustomResourceOptions): DataSourceConfig; /** * Returns true if the given object is an instance of DataSourceConfig. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj: any): obj is DataSourceConfig; /** * Custom HTTP headers */ readonly httpHeaders: pulumi.Output<{ [key: string]: string; } | undefined>; /** * Serialized JSON string containing the json data. This attribute can be used to pass configuration options to the data source. To figure out what options a datasource has available, see its docs or inspect the network data when saving it from the Grafana UI. Note that keys in this map are usually camelCased. */ readonly jsonDataEncoded: pulumi.Output<string | undefined>; /** * The Organization ID. If not set, the Org ID defined in the provider block will be used. */ readonly orgId: pulumi.Output<string | undefined>; /** * Serialized JSON string containing the secure json data. This attribute can be used to pass secure configuration options to the data source. To figure out what options a datasource has available, see its docs or inspect the network data when saving it from the Grafana UI. Note that keys in this map are usually camelCased. */ readonly secureJsonDataEncoded: pulumi.Output<string | undefined>; /** * Unique identifier. If unset, this will be automatically generated. */ readonly uid: pulumi.Output<string>; /** * Create a DataSourceConfig resource with the given unique name, arguments, and options. * * @param name The _unique_ name of the resource. * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ /** @deprecated grafana.index/datasourceconfig.DataSourceConfig has been deprecated in favor of grafana.oss/datasourceconfig.DataSourceConfig */ constructor(name: string, args?: DataSourceConfigArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering DataSourceConfig resources. */ export interface DataSourceConfigState { /** * Custom HTTP headers */ httpHeaders?: pulumi.Input<{ [key: string]: pulumi.Input<string>; }>; /** * Serialized JSON string containing the json data. This attribute can be used to pass configuration options to the data source. To figure out what options a datasource has available, see its docs or inspect the network data when saving it from the Grafana UI. Note that keys in this map are usually camelCased. */ jsonDataEncoded?: pulumi.Input<string>; /** * The Organization ID. If not set, the Org ID defined in the provider block will be used. */ orgId?: pulumi.Input<string>; /** * Serialized JSON string containing the secure json data. This attribute can be used to pass secure configuration options to the data source. To figure out what options a datasource has available, see its docs or inspect the network data when saving it from the Grafana UI. Note that keys in this map are usually camelCased. */ secureJsonDataEncoded?: pulumi.Input<string>; /** * Unique identifier. If unset, this will be automatically generated. */ uid?: pulumi.Input<string>; } /** * The set of arguments for constructing a DataSourceConfig resource. */ export interface DataSourceConfigArgs { /** * Custom HTTP headers */ httpHeaders?: pulumi.Input<{ [key: string]: pulumi.Input<string>; }>; /** * Serialized JSON string containing the json data. This attribute can be used to pass configuration options to the data source. To figure out what options a datasource has available, see its docs or inspect the network data when saving it from the Grafana UI. Note that keys in this map are usually camelCased. */ jsonDataEncoded?: pulumi.Input<string>; /** * The Organization ID. If not set, the Org ID defined in the provider block will be used. */ orgId?: pulumi.Input<string>; /** * Serialized JSON string containing the secure json data. This attribute can be used to pass secure configuration options to the data source. To figure out what options a datasource has available, see its docs or inspect the network data when saving it from the Grafana UI. Note that keys in this map are usually camelCased. */ secureJsonDataEncoded?: pulumi.Input<string>; /** * Unique identifier. If unset, this will be automatically generated. */ uid?: pulumi.Input<string>; }