@pulumi/gcp
Version:
A Pulumi package for creating and managing Google Cloud Platform resources.
424 lines • 17.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}}
* $ 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>;
/**
* Whether Terraform will be prevented from destroying the resource. Defaults to DELETE.
* When a 'terraform destroy' or 'pulumi up' would delete the resource,
* the command will fail if this field is set to "PREVENT" in Terraform state.
* When set to "ABANDON", the command will remove the resource from Terraform
* management without updating or deleting the resource in the API.
* When set to "DELETE", deleting the resource is allowed.
*/
readonly deletionPolicy: 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 | undefined>;
/**
* Whether Terraform will be prevented from destroying the resource. Defaults to DELETE.
* When a 'terraform destroy' or 'pulumi up' would delete the resource,
* the command will fail if this field is set to "PREVENT" in Terraform state.
* When set to "ABANDON", the command will remove the resource from Terraform
* management without updating or deleting the resource in the API.
* When set to "DELETE", deleting the resource is allowed.
*/
deletionPolicy?: pulumi.Input<string | undefined>;
/**
* 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>;
} | undefined>;
/**
* 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>;
} | undefined>;
/**
* The resource name for the Hl7V2Store.
* ** Changing this property may recreate the Hl7v2 store (removing all data) **
*/
name?: pulumi.Input<string | undefined>;
/**
* (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 | 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.
*/
notificationConfigs?: pulumi.Input<pulumi.Input<inputs.healthcare.Hl7StoreNotificationConfigs>[] | undefined>;
/**
* A nested object resource.
* Structure is documented below.
*/
parserConfig?: pulumi.Input<inputs.healthcare.Hl7StoreParserConfig | undefined>;
/**
* The combination of labels configured directly on the resource
* and default labels configured on the provider.
*/
pulumiLabels?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
} | undefined>;
/**
* Determines whether duplicate messages are allowed.
*/
rejectDuplicateMessage?: pulumi.Input<boolean | undefined>;
/**
* The fully qualified name of this dataset
*/
selfLink?: pulumi.Input<string | undefined>;
}
/**
* 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>;
/**
* Whether Terraform will be prevented from destroying the resource. Defaults to DELETE.
* When a 'terraform destroy' or 'pulumi up' would delete the resource,
* the command will fail if this field is set to "PREVENT" in Terraform state.
* When set to "ABANDON", the command will remove the resource from Terraform
* management without updating or deleting the resource in the API.
* When set to "DELETE", deleting the resource is allowed.
*/
deletionPolicy?: pulumi.Input<string | undefined>;
/**
* 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>;
} | undefined>;
/**
* The resource name for the Hl7V2Store.
* ** Changing this property may recreate the Hl7v2 store (removing all data) **
*/
name?: pulumi.Input<string | undefined>;
/**
* (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 | 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.
*/
notificationConfigs?: pulumi.Input<pulumi.Input<inputs.healthcare.Hl7StoreNotificationConfigs>[] | undefined>;
/**
* A nested object resource.
* Structure is documented below.
*/
parserConfig?: pulumi.Input<inputs.healthcare.Hl7StoreParserConfig | undefined>;
/**
* Determines whether duplicate messages are allowed.
*/
rejectDuplicateMessage?: pulumi.Input<boolean | undefined>;
}
//# sourceMappingURL=hl7Store.d.ts.map