import * as pulumi from "@pulumi/pulumi"; import * as inputs from "./types/input"; import * as outputs from "./types/output"; /** * Provides a Datadog [Logs Pipeline API](https://docs.datadoghq.com/api/v1/logs-pipelines/) resource, which is used to create and manage Datadog logs custom pipelines. Each `datadog.LogsCustomPipeline` resource defines a complete pipeline. The order of the pipelines is maintained in a different resource: `datadog.LogsPipelineOrder`. When creating a new pipeline, you need to **explicitly** add this pipeline to the `datadog.LogsPipelineOrder` resource to track the pipeline. Similarly, when a pipeline needs to be destroyed, remove its references from the `datadog.LogsPipelineOrder` resource. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as datadog from "@pulumi/datadog"; * * const samplePipeline = new datadog.LogsCustomPipeline("sample_pipeline", { * filters: [{ * query: "source:foo", * }], * name: "sample pipeline", * isEnabled: true, * processors: [ * { * arithmeticProcessor: { * expression: "(time1 - time2)*1000", * target: "my_arithmetic", * isReplaceMissing: true, * name: "sample arithmetic processor", * isEnabled: true, * }, * }, * { * attributeRemapper: { * sources: ["db.instance"], * sourceType: "tag", * target: "db", * targetType: "attribute", * targetFormat: "string", * preserveSource: true, * overrideOnConflict: false, * name: "sample attribute processor", * isEnabled: true, * }, * }, * { * categoryProcessor: { * target: "foo.severity", * categories: [ * { * name: "debug", * filter: { * query: "@severity: \".\"", * }, * }, * { * name: "verbose", * filter: { * query: "@severity: \"-\"", * }, * }, * ], * name: "sample category processor", * isEnabled: true, * }, * }, * { * dateRemapper: { * sources: [ * "_timestamp", * "published_date", * ], * name: "sample date remapper", * isEnabled: true, * }, * }, * { * geoIpParser: { * sources: ["network.client.ip"], * target: "network.client.geoip", * name: "sample geo ip parser", * isEnabled: true, * }, * }, * { * grokParser: { * samples: ["sample log 1"], * source: "message", * grok: { * supportRules: "", * matchRules: "Rule %{word:my_word2} %{number:my_float2}", * }, * name: "sample grok parser", * isEnabled: true, * }, * }, * { * lookupProcessor: { * source: "service_id", * target: "service_name", * lookupTables: ["1,my service"], * defaultLookup: "unknown service", * name: "sample lookup processor", * isEnabled: true, * }, * }, * { * messageRemapper: { * sources: ["msg"], * name: "sample message remapper", * isEnabled: true, * }, * }, * { * pipeline: { * filters: [{ * query: "source:foo", * }], * processors: [{ * urlParser: { * name: "sample url parser", * sources: [ * "url", * "extra", * ], * target: "http_url", * normalizeEndingSlashes: true, * }, * }], * name: "nested pipeline", * isEnabled: true, * }, * }, * { * serviceRemapper: { * sources: ["service"], * name: "sample service remapper", * isEnabled: true, * }, * }, * { * statusRemapper: { * sources: [ * "info", * "trace", * ], * name: "sample status remapper", * isEnabled: true, * }, * }, * { * stringBuilderProcessor: { * target: "user_activity", * template: "%{user.name} logged in at %{timestamp}", * name: "sample string builder processor", * isEnabled: true, * isReplaceMissing: false, * }, * }, * { * traceIdRemapper: { * sources: ["dd.trace_id"], * name: "sample trace id remapper", * isEnabled: true, * }, * }, * { * userAgentParser: { * sources: [ * "user", * "agent", * ], * target: "http_agent", * isEncoded: false, * name: "sample user agent parser", * isEnabled: true, * }, * }, * ], * }); * ``` * * ## Import * * The `pulumi import` command can be used, for example: * * To find the pipeline ID, click the "edit" button in the UI to open the pipeline details. * The pipeline ID is the last part of the URL. * * ```sh * $ pulumi import datadog:index/logsCustomPipeline:LogsCustomPipeline name> * ``` */ export declare class LogsCustomPipeline extends pulumi.CustomResource { /** * Get an existing LogsCustomPipeline 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, state?: LogsCustomPipelineState, opts?: pulumi.CustomResourceOptions): LogsCustomPipeline; /** * Returns true if the given object is an instance of LogsCustomPipeline. 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 LogsCustomPipeline; readonly description: pulumi.Output; readonly filters: pulumi.Output; readonly isEnabled: pulumi.Output; readonly name: pulumi.Output; readonly processors: pulumi.Output; readonly tags: pulumi.Output; /** * Create a LogsCustomPipeline 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. */ constructor(name: string, args: LogsCustomPipelineArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering LogsCustomPipeline resources. */ export interface LogsCustomPipelineState { description?: pulumi.Input; filters?: pulumi.Input[]>; isEnabled?: pulumi.Input; name?: pulumi.Input; processors?: pulumi.Input[]>; tags?: pulumi.Input[]>; } /** * The set of arguments for constructing a LogsCustomPipeline resource. */ export interface LogsCustomPipelineArgs { description?: pulumi.Input; filters: pulumi.Input[]>; isEnabled?: pulumi.Input; name: pulumi.Input; processors?: pulumi.Input[]>; tags?: pulumi.Input[]>; }