import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * A Hl7V2Store is a datastore inside a Healthcare dataset that conforms to the FHIR (https://www.hl7.org/hl7V2/STU3/) * standard for Healthcare information exchange * * To get more information about Hl7V2Store, see: * * * [API documentation](https://cloud.google.com/healthcare/docs/reference/rest/v1/projects.locations.datasets.hl7V2Stores) * * How-to Guides * * [Creating a HL7v2 Store](https://cloud.google.com/healthcare/docs/how-tos/hl7v2) * * ## Example Usage * * ### Healthcare Hl7 V2 Store Basic * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * * const topic = new gcp.pubsub.Topic("topic", {name: "hl7-v2-notifications"}); * const dataset = new gcp.healthcare.Dataset("dataset", { * name: "example-dataset", * location: "us-central1", * }); * const store = new gcp.healthcare.Hl7Store("store", { * name: "example-hl7-v2-store", * dataset: dataset.id, * rejectDuplicateMessage: true, * notificationConfigs: [{ * pubsubTopic: topic.id, * }], * labels: { * label1: "labelvalue1", * }, * }); * ``` * ### Healthcare Hl7 V2 Store Parser Config * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * * const dataset = new gcp.healthcare.Dataset("dataset", { * name: "example-dataset", * location: "us-central1", * }); * const store = new gcp.healthcare.Hl7Store("store", { * name: "example-hl7-v2-store", * dataset: dataset.id, * parserConfig: { * allowNullHeader: false, * segmentTerminator: "Jw==", * schema: `{ * \\"schemas\\": [{ * \\"messageSchemaConfigs\\": { * \\"ADT_A01\\": { * \\"name\\": \\"ADT_A01\\", * \\"minOccurs\\": 1, * \\"maxOccurs\\": 1, * \\"members\\": [{ * \\"segment\\": { * \\"type\\": \\"MSH\\", * \\"minOccurs\\": 1, * \\"maxOccurs\\": 1 * } * }, * { * \\"segment\\": { * \\"type\\": \\"EVN\\", * \\"minOccurs\\": 1, * \\"maxOccurs\\": 1 * } * }, * { * \\"segment\\": { * \\"type\\": \\"PID\\", * \\"minOccurs\\": 1, * \\"maxOccurs\\": 1 * } * }, * { * \\"segment\\": { * \\"type\\": \\"ZPD\\", * \\"minOccurs\\": 1, * \\"maxOccurs\\": 1 * } * }, * { * \\"segment\\": { * \\"type\\": \\"OBX\\" * } * }, * { * \\"group\\": { * \\"name\\": \\"PROCEDURE\\", * \\"members\\": [{ * \\"segment\\": { * \\"type\\": \\"PR1\\", * \\"minOccurs\\": 1, * \\"maxOccurs\\": 1 * } * }, * { * \\"segment\\": { * \\"type\\": \\"ROL\\" * } * } * ] * } * }, * { * \\"segment\\": { * \\"type\\": \\"PDA\\", * \\"maxOccurs\\": 1 * } * } * ] * } * } * }], * \\"types\\": [{ * \\"type\\": [{ * \\"name\\": \\"ZPD\\", * \\"primitive\\": \\"VARIES\\" * } * * ] * }], * \\"ignoreMinOccurs\\": true * } * `, * }, * }); * ``` * ### Healthcare Hl7 V2 Store Unschematized * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * * const dataset = new gcp.healthcare.Dataset("dataset", { * name: "example-dataset", * location: "us-central1", * }); * const store = new gcp.healthcare.Hl7Store("store", { * name: "example-hl7-v2-store", * dataset: dataset.id, * parserConfig: { * allowNullHeader: false, * segmentTerminator: "Jw==", * version: "V2", * }, * }); * ``` * * ## Import * * Hl7V2Store can be imported using any of these accepted formats: * * * `{{dataset}}/hl7V2Stores/{{name}}` * * `{{dataset}}/{{name}}` * * When using the `pulumi import` command, Hl7V2Store can be imported using one of the formats above. For example: * * ```sh * $ pulumi import gcp:healthcare/hl7Store:Hl7Store default {{dataset}}/hl7V2Stores/{{name}} * $ pulumi import gcp:healthcare/hl7Store:Hl7Store default {{dataset}}/{{name}} * ``` */ export declare class Hl7Store extends pulumi.CustomResource { /** * Get an existing Hl7Store 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?: Hl7StoreState, opts?: pulumi.CustomResourceOptions): Hl7Store; /** * Returns true if the given object is an instance of Hl7Store. 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 Hl7Store; /** * Identifies the dataset addressed by this request. Must be in the format * 'projects/{project}/locations/{location}/datasets/{dataset}' */ readonly dataset: pulumi.Output; /** * All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. */ readonly effectiveLabels: pulumi.Output<{ [key: string]: string; }>; /** * User-supplied key-value pairs used to organize HL7v2 stores. * Label keys must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes, and must * conform to the following PCRE regular expression: [\p{Ll}\p{Lo}][\p{Ll}\p{Lo}\p{N}_-]{0,62} * Label values are optional, must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 * bytes, and must conform to the following PCRE regular expression: [\p{Ll}\p{Lo}\p{N}_-]{0,63} * No more than 64 labels can be associated with a given store. * An object containing a list of "key": value pairs. * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. * Please refer to the field `effectiveLabels` for all of the labels present on the resource. */ readonly labels: pulumi.Output<{ [key: string]: string; } | undefined>; /** * The resource name for the Hl7V2Store. * ** Changing this property may recreate the Hl7v2 store (removing all data) ** */ readonly name: pulumi.Output; /** * (Optional, Deprecated) * A nested object resource. * Structure is documented below. * * > **Warning:** `notificationConfig` is deprecated and will be removed in a future major release. Use `notificationConfigs` instead. * * @deprecated `notificationConfig` is deprecated and will be removed in a future major release. Use `notificationConfigs` instead. */ readonly notificationConfig: pulumi.Output; /** * A list of notification configs. Each configuration uses a filter to determine whether to publish a * message (both Ingest & Create) on the corresponding notification destination. Only the message name * is sent as part of the notification. Supplied by the client. * Structure is documented below. */ readonly notificationConfigs: pulumi.Output; /** * A nested object resource. * Structure is documented below. */ readonly parserConfig: pulumi.Output; /** * The combination of labels configured directly on the resource * and default labels configured on the provider. */ readonly pulumiLabels: pulumi.Output<{ [key: string]: string; }>; /** * Determines whether duplicate messages are allowed. */ readonly rejectDuplicateMessage: pulumi.Output; /** * The fully qualified name of this dataset */ readonly selfLink: pulumi.Output; /** * Create a Hl7Store 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: Hl7StoreArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering Hl7Store resources. */ export interface Hl7StoreState { /** * Identifies the dataset addressed by this request. Must be in the format * 'projects/{project}/locations/{location}/datasets/{dataset}' */ dataset?: pulumi.Input; /** * All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. */ effectiveLabels?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * User-supplied key-value pairs used to organize HL7v2 stores. * Label keys must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes, and must * conform to the following PCRE regular expression: [\p{Ll}\p{Lo}][\p{Ll}\p{Lo}\p{N}_-]{0,62} * Label values are optional, must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 * bytes, and must conform to the following PCRE regular expression: [\p{Ll}\p{Lo}\p{N}_-]{0,63} * No more than 64 labels can be associated with a given store. * An object containing a list of "key": value pairs. * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. * Please refer to the field `effectiveLabels` for all of the labels present on the resource. */ labels?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * The resource name for the Hl7V2Store. * ** Changing this property may recreate the Hl7v2 store (removing all data) ** */ name?: pulumi.Input; /** * (Optional, Deprecated) * A nested object resource. * Structure is documented below. * * > **Warning:** `notificationConfig` is deprecated and will be removed in a future major release. Use `notificationConfigs` instead. * * @deprecated `notificationConfig` is deprecated and will be removed in a future major release. Use `notificationConfigs` instead. */ notificationConfig?: pulumi.Input; /** * A list of notification configs. Each configuration uses a filter to determine whether to publish a * message (both Ingest & Create) on the corresponding notification destination. Only the message name * is sent as part of the notification. Supplied by the client. * Structure is documented below. */ notificationConfigs?: pulumi.Input[]>; /** * A nested object resource. * Structure is documented below. */ parserConfig?: pulumi.Input; /** * The combination of labels configured directly on the resource * and default labels configured on the provider. */ pulumiLabels?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * Determines whether duplicate messages are allowed. */ rejectDuplicateMessage?: pulumi.Input; /** * The fully qualified name of this dataset */ selfLink?: pulumi.Input; } /** * The set of arguments for constructing a Hl7Store resource. */ export interface Hl7StoreArgs { /** * Identifies the dataset addressed by this request. Must be in the format * 'projects/{project}/locations/{location}/datasets/{dataset}' */ dataset: pulumi.Input; /** * User-supplied key-value pairs used to organize HL7v2 stores. * Label keys must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes, and must * conform to the following PCRE regular expression: [\p{Ll}\p{Lo}][\p{Ll}\p{Lo}\p{N}_-]{0,62} * Label values are optional, must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 * bytes, and must conform to the following PCRE regular expression: [\p{Ll}\p{Lo}\p{N}_-]{0,63} * No more than 64 labels can be associated with a given store. * An object containing a list of "key": value pairs. * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. * Please refer to the field `effectiveLabels` for all of the labels present on the resource. */ labels?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * The resource name for the Hl7V2Store. * ** Changing this property may recreate the Hl7v2 store (removing all data) ** */ name?: pulumi.Input; /** * (Optional, Deprecated) * A nested object resource. * Structure is documented below. * * > **Warning:** `notificationConfig` is deprecated and will be removed in a future major release. Use `notificationConfigs` instead. * * @deprecated `notificationConfig` is deprecated and will be removed in a future major release. Use `notificationConfigs` instead. */ notificationConfig?: pulumi.Input; /** * A list of notification configs. Each configuration uses a filter to determine whether to publish a * message (both Ingest & Create) on the corresponding notification destination. Only the message name * is sent as part of the notification. Supplied by the client. * Structure is documented below. */ notificationConfigs?: pulumi.Input[]>; /** * A nested object resource. * Structure is documented below. */ parserConfig?: pulumi.Input; /** * Determines whether duplicate messages are allowed. */ rejectDuplicateMessage?: pulumi.Input; }