// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** // *** Do not edit by hand unless you're certain you know what you are doing! *** import * as pulumi from "@pulumi/pulumi"; import * as utilities from "./utilities"; /** * Helper data source to which can be used to extract fields from CSV line out of a single text field within a document. Any empty field in CSV will be skipped. * * See: https://www.elastic.co/guide/en/elasticsearch/reference/current/csv-processor.html * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as elasticstack from "@pulumi/elasticstack"; * * const csv = elasticstack.ElasticsearchIngestProcessorCsv({ * field: "my_field", * targetFields: [ * "field1", * "field2", * ], * }); * const myIngestPipeline = new elasticstack.ElasticsearchIngestPipeline("myIngestPipeline", {processors: [csv.then(csv => csv.json)]}); * ``` * * If the `trim` option is enabled then any whitespace in the beginning and in the end of each unquoted field will be trimmed. For example with configuration above, a value of A, B will result in field field2 having value {nbsp}B (with space at the beginning). If trim is enabled A, B will result in field field2 having value B (no whitespace). Quoted fields will be left untouched. */ export function elasticsearchIngestProcessorCsv(args: ElasticsearchIngestProcessorCsvArgs, opts?: pulumi.InvokeOptions): Promise { if (!opts) { opts = {} } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); return pulumi.runtime.invoke("elasticstack:index/elasticsearchIngestProcessorCsv:ElasticsearchIngestProcessorCsv", { "description": args.description, "emptyValue": args.emptyValue, "field": args.field, "if": args.if, "ignoreFailure": args.ignoreFailure, "ignoreMissing": args.ignoreMissing, "onFailures": args.onFailures, "quote": args.quote, "separator": args.separator, "tag": args.tag, "targetFields": args.targetFields, "trim": args.trim, }, opts); } /** * A collection of arguments for invoking ElasticsearchIngestProcessorCsv. */ export interface ElasticsearchIngestProcessorCsvArgs { /** * Description of the processor. */ description?: string; /** * Value used to fill empty fields, empty fields will be skipped if this is not provided. */ emptyValue?: string; /** * The field to extract data from. */ field: string; /** * Conditionally execute the processor */ if?: string; /** * Ignore failures for the processor. */ ignoreFailure?: boolean; /** * If `true` and `field` does not exist or is `null`, the processor quietly exits without modifying the document. */ ignoreMissing?: boolean; /** * Handle failures for the processor. */ onFailures?: string[]; /** * Quote used in CSV, has to be single character string */ quote?: string; /** * Separator used in CSV, has to be single character string. */ separator?: string; /** * Identifier for the processor. */ tag?: string; /** * The array of fields to assign extracted values to. */ targetFields: string[]; /** * Trim whitespaces in unquoted fields. */ trim?: boolean; } /** * A collection of values returned by ElasticsearchIngestProcessorCsv. */ export interface ElasticsearchIngestProcessorCsvResult { /** * Description of the processor. */ readonly description?: string; /** * Value used to fill empty fields, empty fields will be skipped if this is not provided. */ readonly emptyValue?: string; /** * The field to extract data from. */ readonly field: string; /** * Internal identifier of the resource */ readonly id: string; /** * Conditionally execute the processor */ readonly if?: string; /** * Ignore failures for the processor. */ readonly ignoreFailure?: boolean; /** * If `true` and `field` does not exist or is `null`, the processor quietly exits without modifying the document. */ readonly ignoreMissing?: boolean; /** * JSON representation of this data source. */ readonly json: string; /** * Handle failures for the processor. */ readonly onFailures?: string[]; /** * Quote used in CSV, has to be single character string */ readonly quote?: string; /** * Separator used in CSV, has to be single character string. */ readonly separator?: string; /** * Identifier for the processor. */ readonly tag?: string; /** * The array of fields to assign extracted values to. */ readonly targetFields: string[]; /** * Trim whitespaces in unquoted fields. */ readonly trim?: boolean; } export function elasticsearchIngestProcessorCsvOutput(args: ElasticsearchIngestProcessorCsvOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { return pulumi.output(args).apply(a => elasticsearchIngestProcessorCsv(a, opts)) } /** * A collection of arguments for invoking ElasticsearchIngestProcessorCsv. */ export interface ElasticsearchIngestProcessorCsvOutputArgs { /** * Description of the processor. */ description?: pulumi.Input; /** * Value used to fill empty fields, empty fields will be skipped if this is not provided. */ emptyValue?: pulumi.Input; /** * The field to extract data from. */ field: pulumi.Input; /** * Conditionally execute the processor */ if?: pulumi.Input; /** * Ignore failures for the processor. */ ignoreFailure?: pulumi.Input; /** * If `true` and `field` does not exist or is `null`, the processor quietly exits without modifying the document. */ ignoreMissing?: pulumi.Input; /** * Handle failures for the processor. */ onFailures?: pulumi.Input[]>; /** * Quote used in CSV, has to be single character string */ quote?: pulumi.Input; /** * Separator used in CSV, has to be single character string. */ separator?: pulumi.Input; /** * Identifier for the processor. */ tag?: pulumi.Input; /** * The array of fields to assign extracted values to. */ targetFields: pulumi.Input[]>; /** * Trim whitespaces in unquoted fields. */ trim?: pulumi.Input; }