@pulumi/gcp
Version:
A Pulumi package for creating and managing Google Cloud Platform resources.
410 lines (409 loc) • 15.3 kB
TypeScript
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}}
* ```
*
* ```sh
* $ 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<pulumi.ID>, 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<string>;
/**
* 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<string>;
/**
* (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<outputs.healthcare.Hl7StoreNotificationConfig | undefined>;
/**
* 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<outputs.healthcare.Hl7StoreNotificationConfigs[] | undefined>;
/**
* A nested object resource.
* Structure is documented below.
*/
readonly parserConfig: pulumi.Output<outputs.healthcare.Hl7StoreParserConfig>;
/**
* 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<boolean | undefined>;
/**
* The fully qualified name of this dataset
*/
readonly selfLink: pulumi.Output<string>;
/**
* 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<string>;
/**
* 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<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.
*/
labels?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* The resource name for the Hl7V2Store.
* ** Changing this property may recreate the Hl7v2 store (removing all data) **
*/
name?: pulumi.Input<string>;
/**
* (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<inputs.healthcare.Hl7StoreNotificationConfig>;
/**
* 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<pulumi.Input<inputs.healthcare.Hl7StoreNotificationConfigs>[]>;
/**
* A nested object resource.
* Structure is documented below.
*/
parserConfig?: pulumi.Input<inputs.healthcare.Hl7StoreParserConfig>;
/**
* The combination of labels configured directly on the resource
* and default labels configured on the provider.
*/
pulumiLabels?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* Determines whether duplicate messages are allowed.
*/
rejectDuplicateMessage?: pulumi.Input<boolean>;
/**
* The fully qualified name of this dataset
*/
selfLink?: pulumi.Input<string>;
}
/**
* 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<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.
*/
labels?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* The resource name for the Hl7V2Store.
* ** Changing this property may recreate the Hl7v2 store (removing all data) **
*/
name?: pulumi.Input<string>;
/**
* (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<inputs.healthcare.Hl7StoreNotificationConfig>;
/**
* 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<pulumi.Input<inputs.healthcare.Hl7StoreNotificationConfigs>[]>;
/**
* A nested object resource.
* Structure is documented below.
*/
parserConfig?: pulumi.Input<inputs.healthcare.Hl7StoreParserConfig>;
/**
* Determines whether duplicate messages are allowed.
*/
rejectDuplicateMessage?: pulumi.Input<boolean>;
}