All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.googlenative.healthcare.v1beta1.FhirStoreArgs Maven / Gradle / Ivy

// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.googlenative.healthcare.v1beta1;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.googlenative.healthcare.v1beta1.enums.FhirStoreComplexDataTypeReferenceParsing;
import com.pulumi.googlenative.healthcare.v1beta1.enums.FhirStoreVersion;
import com.pulumi.googlenative.healthcare.v1beta1.inputs.FhirNotificationConfigArgs;
import com.pulumi.googlenative.healthcare.v1beta1.inputs.NotificationConfigArgs;
import com.pulumi.googlenative.healthcare.v1beta1.inputs.SearchConfigArgs;
import com.pulumi.googlenative.healthcare.v1beta1.inputs.StreamConfigArgs;
import com.pulumi.googlenative.healthcare.v1beta1.inputs.ValidationConfigArgs;
import java.lang.Boolean;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


public final class FhirStoreArgs extends com.pulumi.resources.ResourceArgs {

    public static final FhirStoreArgs Empty = new FhirStoreArgs();

    /**
     * Enable parsing of references within complex FHIR data types such as Extensions. If this value is set to ENABLED, then features like referential integrity and Bundle reference rewriting apply to all references. If this flag has not been specified the behavior of the FHIR store will not change, references in complex data types will not be parsed. New stores will have this value set to ENABLED after a notification period. Warning: turning on this flag causes processing existing resources to fail if they contain references to non-existent resources.
     * 
     */
    @Import(name="complexDataTypeReferenceParsing")
    private @Nullable Output complexDataTypeReferenceParsing;

    /**
     * @return Enable parsing of references within complex FHIR data types such as Extensions. If this value is set to ENABLED, then features like referential integrity and Bundle reference rewriting apply to all references. If this flag has not been specified the behavior of the FHIR store will not change, references in complex data types will not be parsed. New stores will have this value set to ENABLED after a notification period. Warning: turning on this flag causes processing existing resources to fail if they contain references to non-existent resources.
     * 
     */
    public Optional> complexDataTypeReferenceParsing() {
        return Optional.ofNullable(this.complexDataTypeReferenceParsing);
    }

    @Import(name="datasetId", required=true)
    private Output datasetId;

    public Output datasetId() {
        return this.datasetId;
    }

    /**
     * If true, overrides the default search behavior for this FHIR store to `handling=strict` which returns an error for unrecognized search parameters. If false, uses the FHIR specification default `handling=lenient` which ignores unrecognized search parameters. The handling can always be changed from the default on an individual API call by setting the HTTP header `Prefer: handling=strict` or `Prefer: handling=lenient`.
     * 
     */
    @Import(name="defaultSearchHandlingStrict")
    private @Nullable Output defaultSearchHandlingStrict;

    /**
     * @return If true, overrides the default search behavior for this FHIR store to `handling=strict` which returns an error for unrecognized search parameters. If false, uses the FHIR specification default `handling=lenient` which ignores unrecognized search parameters. The handling can always be changed from the default on an individual API call by setting the HTTP header `Prefer: handling=strict` or `Prefer: handling=lenient`.
     * 
     */
    public Optional> defaultSearchHandlingStrict() {
        return Optional.ofNullable(this.defaultSearchHandlingStrict);
    }

    /**
     * Immutable. Whether to disable referential integrity in this FHIR store. This field is immutable after FHIR store creation. The default value is false, meaning that the API enforces referential integrity and fails the requests that result in inconsistent state in the FHIR store. When this field is set to true, the API skips referential integrity checks. Consequently, operations that rely on references, such as GetPatientEverything, do not return all the results if broken references exist.
     * 
     */
    @Import(name="disableReferentialIntegrity")
    private @Nullable Output disableReferentialIntegrity;

    /**
     * @return Immutable. Whether to disable referential integrity in this FHIR store. This field is immutable after FHIR store creation. The default value is false, meaning that the API enforces referential integrity and fails the requests that result in inconsistent state in the FHIR store. When this field is set to true, the API skips referential integrity checks. Consequently, operations that rely on references, such as GetPatientEverything, do not return all the results if broken references exist.
     * 
     */
    public Optional> disableReferentialIntegrity() {
        return Optional.ofNullable(this.disableReferentialIntegrity);
    }

    /**
     * Immutable. Whether to disable resource versioning for this FHIR store. This field can not be changed after the creation of FHIR store. If set to false, which is the default behavior, all write operations cause historical versions to be recorded automatically. The historical versions can be fetched through the history APIs, but cannot be updated. If set to true, no historical versions are kept. The server sends errors for attempts to read the historical versions.
     * 
     */
    @Import(name="disableResourceVersioning")
    private @Nullable Output disableResourceVersioning;

    /**
     * @return Immutable. Whether to disable resource versioning for this FHIR store. This field can not be changed after the creation of FHIR store. If set to false, which is the default behavior, all write operations cause historical versions to be recorded automatically. The historical versions can be fetched through the history APIs, but cannot be updated. If set to true, no historical versions are kept. The server sends errors for attempts to read the historical versions.
     * 
     */
    public Optional> disableResourceVersioning() {
        return Optional.ofNullable(this.disableResourceVersioning);
    }

    /**
     * Whether this FHIR store has the [updateCreate capability](https://www.hl7.org/fhir/capabilitystatement-definitions.html#CapabilityStatement.rest.resource.updateCreate). This determines if the client can use an Update operation to create a new resource with a client-specified ID. If false, all IDs are server-assigned through the Create operation and attempts to update a non-existent resource return errors. It is strongly advised not to include or encode any sensitive data such as patient identifiers in client-specified resource IDs. Those IDs are part of the FHIR resource path recorded in Cloud audit logs and Pub/Sub notifications. Those IDs can also be contained in reference fields within other resources.
     * 
     */
    @Import(name="enableUpdateCreate")
    private @Nullable Output enableUpdateCreate;

    /**
     * @return Whether this FHIR store has the [updateCreate capability](https://www.hl7.org/fhir/capabilitystatement-definitions.html#CapabilityStatement.rest.resource.updateCreate). This determines if the client can use an Update operation to create a new resource with a client-specified ID. If false, all IDs are server-assigned through the Create operation and attempts to update a non-existent resource return errors. It is strongly advised not to include or encode any sensitive data such as patient identifiers in client-specified resource IDs. Those IDs are part of the FHIR resource path recorded in Cloud audit logs and Pub/Sub notifications. Those IDs can also be contained in reference fields within other resources.
     * 
     */
    public Optional> enableUpdateCreate() {
        return Optional.ofNullable(this.enableUpdateCreate);
    }

    /**
     * The ID of the FHIR store that is being created. The string must match the following regex: `[\p{L}\p{N}_\-\.]{1,256}`.
     * 
     */
    @Import(name="fhirStoreId")
    private @Nullable Output fhirStoreId;

    /**
     * @return The ID of the FHIR store that is being created. The string must match the following regex: `[\p{L}\p{N}_\-\.]{1,256}`.
     * 
     */
    public Optional> fhirStoreId() {
        return Optional.ofNullable(this.fhirStoreId);
    }

    /**
     * User-supplied key-value pairs used to organize FHIR 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}{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.
     * 
     */
    @Import(name="labels")
    private @Nullable Output> labels;

    /**
     * @return User-supplied key-value pairs used to organize FHIR 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}{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.
     * 
     */
    public Optional>> labels() {
        return Optional.ofNullable(this.labels);
    }

    @Import(name="location")
    private @Nullable Output location;

    public Optional> location() {
        return Optional.ofNullable(this.location);
    }

    /**
     * Deprecated. Use `notification_configs` instead. If non-empty, publish all resource modifications of this FHIR store to this destination. The Pub/Sub message attributes contain a map with a string describing the action that has triggered the notification. For example, "action":"CreateResource".
     * 
     * @deprecated
     * Deprecated. Use `notification_configs` instead. If non-empty, publish all resource modifications of this FHIR store to this destination. The Pub/Sub message attributes contain a map with a string describing the action that has triggered the notification. For example, "action":"CreateResource".
     * 
     */
    @Deprecated /* Deprecated. Use `notification_configs` instead. If non-empty, publish all resource modifications of this FHIR store to this destination. The Pub/Sub message attributes contain a map with a string describing the action that has triggered the notification. For example, ""action"":""CreateResource"". */
    @Import(name="notificationConfig")
    private @Nullable Output notificationConfig;

    /**
     * @return Deprecated. Use `notification_configs` instead. If non-empty, publish all resource modifications of this FHIR store to this destination. The Pub/Sub message attributes contain a map with a string describing the action that has triggered the notification. For example, "action":"CreateResource".
     * 
     * @deprecated
     * Deprecated. Use `notification_configs` instead. If non-empty, publish all resource modifications of this FHIR store to this destination. The Pub/Sub message attributes contain a map with a string describing the action that has triggered the notification. For example, "action":"CreateResource".
     * 
     */
    @Deprecated /* Deprecated. Use `notification_configs` instead. If non-empty, publish all resource modifications of this FHIR store to this destination. The Pub/Sub message attributes contain a map with a string describing the action that has triggered the notification. For example, ""action"":""CreateResource"". */
    public Optional> notificationConfig() {
        return Optional.ofNullable(this.notificationConfig);
    }

    /**
     * Specifies where and whether to send notifications upon changes to a Fhir store.
     * 
     */
    @Import(name="notificationConfigs")
    private @Nullable Output> notificationConfigs;

    /**
     * @return Specifies where and whether to send notifications upon changes to a Fhir store.
     * 
     */
    public Optional>> notificationConfigs() {
        return Optional.ofNullable(this.notificationConfigs);
    }

    @Import(name="project")
    private @Nullable Output project;

    public Optional> project() {
        return Optional.ofNullable(this.project);
    }

    /**
     * Configuration for how FHIR resources can be searched.
     * 
     */
    @Import(name="searchConfig")
    private @Nullable Output searchConfig;

    /**
     * @return Configuration for how FHIR resources can be searched.
     * 
     */
    public Optional> searchConfig() {
        return Optional.ofNullable(this.searchConfig);
    }

    /**
     * A list of streaming configs that configure the destinations of streaming export for every resource mutation in this FHIR store. Each store is allowed to have up to 10 streaming configs. After a new config is added, the next resource mutation is streamed to the new location in addition to the existing ones. When a location is removed from the list, the server stops streaming to that location. Before adding a new config, you must add the required [`bigquery.dataEditor`](https://cloud.google.com/bigquery/docs/access-control#bigquery.dataEditor) role to your project's **Cloud Healthcare Service Agent** [service account](https://cloud.google.com/iam/docs/service-accounts). Some lag (typically on the order of dozens of seconds) is expected before the results show up in the streaming destination.
     * 
     */
    @Import(name="streamConfigs")
    private @Nullable Output> streamConfigs;

    /**
     * @return A list of streaming configs that configure the destinations of streaming export for every resource mutation in this FHIR store. Each store is allowed to have up to 10 streaming configs. After a new config is added, the next resource mutation is streamed to the new location in addition to the existing ones. When a location is removed from the list, the server stops streaming to that location. Before adding a new config, you must add the required [`bigquery.dataEditor`](https://cloud.google.com/bigquery/docs/access-control#bigquery.dataEditor) role to your project's **Cloud Healthcare Service Agent** [service account](https://cloud.google.com/iam/docs/service-accounts). Some lag (typically on the order of dozens of seconds) is expected before the results show up in the streaming destination.
     * 
     */
    public Optional>> streamConfigs() {
        return Optional.ofNullable(this.streamConfigs);
    }

    /**
     * Configuration for how to validate incoming FHIR resources against configured profiles.
     * 
     */
    @Import(name="validationConfig")
    private @Nullable Output validationConfig;

    /**
     * @return Configuration for how to validate incoming FHIR resources against configured profiles.
     * 
     */
    public Optional> validationConfig() {
        return Optional.ofNullable(this.validationConfig);
    }

    /**
     * Immutable. The FHIR specification version that this FHIR store supports natively. This field is immutable after store creation. Requests are rejected if they contain FHIR resources of a different version. Version is required for every FHIR store.
     * 
     */
    @Import(name="version")
    private @Nullable Output version;

    /**
     * @return Immutable. The FHIR specification version that this FHIR store supports natively. This field is immutable after store creation. Requests are rejected if they contain FHIR resources of a different version. Version is required for every FHIR store.
     * 
     */
    public Optional> version() {
        return Optional.ofNullable(this.version);
    }

    private FhirStoreArgs() {}

    private FhirStoreArgs(FhirStoreArgs $) {
        this.complexDataTypeReferenceParsing = $.complexDataTypeReferenceParsing;
        this.datasetId = $.datasetId;
        this.defaultSearchHandlingStrict = $.defaultSearchHandlingStrict;
        this.disableReferentialIntegrity = $.disableReferentialIntegrity;
        this.disableResourceVersioning = $.disableResourceVersioning;
        this.enableUpdateCreate = $.enableUpdateCreate;
        this.fhirStoreId = $.fhirStoreId;
        this.labels = $.labels;
        this.location = $.location;
        this.notificationConfig = $.notificationConfig;
        this.notificationConfigs = $.notificationConfigs;
        this.project = $.project;
        this.searchConfig = $.searchConfig;
        this.streamConfigs = $.streamConfigs;
        this.validationConfig = $.validationConfig;
        this.version = $.version;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(FhirStoreArgs defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private FhirStoreArgs $;

        public Builder() {
            $ = new FhirStoreArgs();
        }

        public Builder(FhirStoreArgs defaults) {
            $ = new FhirStoreArgs(Objects.requireNonNull(defaults));
        }

        /**
         * @param complexDataTypeReferenceParsing Enable parsing of references within complex FHIR data types such as Extensions. If this value is set to ENABLED, then features like referential integrity and Bundle reference rewriting apply to all references. If this flag has not been specified the behavior of the FHIR store will not change, references in complex data types will not be parsed. New stores will have this value set to ENABLED after a notification period. Warning: turning on this flag causes processing existing resources to fail if they contain references to non-existent resources.
         * 
         * @return builder
         * 
         */
        public Builder complexDataTypeReferenceParsing(@Nullable Output complexDataTypeReferenceParsing) {
            $.complexDataTypeReferenceParsing = complexDataTypeReferenceParsing;
            return this;
        }

        /**
         * @param complexDataTypeReferenceParsing Enable parsing of references within complex FHIR data types such as Extensions. If this value is set to ENABLED, then features like referential integrity and Bundle reference rewriting apply to all references. If this flag has not been specified the behavior of the FHIR store will not change, references in complex data types will not be parsed. New stores will have this value set to ENABLED after a notification period. Warning: turning on this flag causes processing existing resources to fail if they contain references to non-existent resources.
         * 
         * @return builder
         * 
         */
        public Builder complexDataTypeReferenceParsing(FhirStoreComplexDataTypeReferenceParsing complexDataTypeReferenceParsing) {
            return complexDataTypeReferenceParsing(Output.of(complexDataTypeReferenceParsing));
        }

        public Builder datasetId(Output datasetId) {
            $.datasetId = datasetId;
            return this;
        }

        public Builder datasetId(String datasetId) {
            return datasetId(Output.of(datasetId));
        }

        /**
         * @param defaultSearchHandlingStrict If true, overrides the default search behavior for this FHIR store to `handling=strict` which returns an error for unrecognized search parameters. If false, uses the FHIR specification default `handling=lenient` which ignores unrecognized search parameters. The handling can always be changed from the default on an individual API call by setting the HTTP header `Prefer: handling=strict` or `Prefer: handling=lenient`.
         * 
         * @return builder
         * 
         */
        public Builder defaultSearchHandlingStrict(@Nullable Output defaultSearchHandlingStrict) {
            $.defaultSearchHandlingStrict = defaultSearchHandlingStrict;
            return this;
        }

        /**
         * @param defaultSearchHandlingStrict If true, overrides the default search behavior for this FHIR store to `handling=strict` which returns an error for unrecognized search parameters. If false, uses the FHIR specification default `handling=lenient` which ignores unrecognized search parameters. The handling can always be changed from the default on an individual API call by setting the HTTP header `Prefer: handling=strict` or `Prefer: handling=lenient`.
         * 
         * @return builder
         * 
         */
        public Builder defaultSearchHandlingStrict(Boolean defaultSearchHandlingStrict) {
            return defaultSearchHandlingStrict(Output.of(defaultSearchHandlingStrict));
        }

        /**
         * @param disableReferentialIntegrity Immutable. Whether to disable referential integrity in this FHIR store. This field is immutable after FHIR store creation. The default value is false, meaning that the API enforces referential integrity and fails the requests that result in inconsistent state in the FHIR store. When this field is set to true, the API skips referential integrity checks. Consequently, operations that rely on references, such as GetPatientEverything, do not return all the results if broken references exist.
         * 
         * @return builder
         * 
         */
        public Builder disableReferentialIntegrity(@Nullable Output disableReferentialIntegrity) {
            $.disableReferentialIntegrity = disableReferentialIntegrity;
            return this;
        }

        /**
         * @param disableReferentialIntegrity Immutable. Whether to disable referential integrity in this FHIR store. This field is immutable after FHIR store creation. The default value is false, meaning that the API enforces referential integrity and fails the requests that result in inconsistent state in the FHIR store. When this field is set to true, the API skips referential integrity checks. Consequently, operations that rely on references, such as GetPatientEverything, do not return all the results if broken references exist.
         * 
         * @return builder
         * 
         */
        public Builder disableReferentialIntegrity(Boolean disableReferentialIntegrity) {
            return disableReferentialIntegrity(Output.of(disableReferentialIntegrity));
        }

        /**
         * @param disableResourceVersioning Immutable. Whether to disable resource versioning for this FHIR store. This field can not be changed after the creation of FHIR store. If set to false, which is the default behavior, all write operations cause historical versions to be recorded automatically. The historical versions can be fetched through the history APIs, but cannot be updated. If set to true, no historical versions are kept. The server sends errors for attempts to read the historical versions.
         * 
         * @return builder
         * 
         */
        public Builder disableResourceVersioning(@Nullable Output disableResourceVersioning) {
            $.disableResourceVersioning = disableResourceVersioning;
            return this;
        }

        /**
         * @param disableResourceVersioning Immutable. Whether to disable resource versioning for this FHIR store. This field can not be changed after the creation of FHIR store. If set to false, which is the default behavior, all write operations cause historical versions to be recorded automatically. The historical versions can be fetched through the history APIs, but cannot be updated. If set to true, no historical versions are kept. The server sends errors for attempts to read the historical versions.
         * 
         * @return builder
         * 
         */
        public Builder disableResourceVersioning(Boolean disableResourceVersioning) {
            return disableResourceVersioning(Output.of(disableResourceVersioning));
        }

        /**
         * @param enableUpdateCreate Whether this FHIR store has the [updateCreate capability](https://www.hl7.org/fhir/capabilitystatement-definitions.html#CapabilityStatement.rest.resource.updateCreate). This determines if the client can use an Update operation to create a new resource with a client-specified ID. If false, all IDs are server-assigned through the Create operation and attempts to update a non-existent resource return errors. It is strongly advised not to include or encode any sensitive data such as patient identifiers in client-specified resource IDs. Those IDs are part of the FHIR resource path recorded in Cloud audit logs and Pub/Sub notifications. Those IDs can also be contained in reference fields within other resources.
         * 
         * @return builder
         * 
         */
        public Builder enableUpdateCreate(@Nullable Output enableUpdateCreate) {
            $.enableUpdateCreate = enableUpdateCreate;
            return this;
        }

        /**
         * @param enableUpdateCreate Whether this FHIR store has the [updateCreate capability](https://www.hl7.org/fhir/capabilitystatement-definitions.html#CapabilityStatement.rest.resource.updateCreate). This determines if the client can use an Update operation to create a new resource with a client-specified ID. If false, all IDs are server-assigned through the Create operation and attempts to update a non-existent resource return errors. It is strongly advised not to include or encode any sensitive data such as patient identifiers in client-specified resource IDs. Those IDs are part of the FHIR resource path recorded in Cloud audit logs and Pub/Sub notifications. Those IDs can also be contained in reference fields within other resources.
         * 
         * @return builder
         * 
         */
        public Builder enableUpdateCreate(Boolean enableUpdateCreate) {
            return enableUpdateCreate(Output.of(enableUpdateCreate));
        }

        /**
         * @param fhirStoreId The ID of the FHIR store that is being created. The string must match the following regex: `[\p{L}\p{N}_\-\.]{1,256}`.
         * 
         * @return builder
         * 
         */
        public Builder fhirStoreId(@Nullable Output fhirStoreId) {
            $.fhirStoreId = fhirStoreId;
            return this;
        }

        /**
         * @param fhirStoreId The ID of the FHIR store that is being created. The string must match the following regex: `[\p{L}\p{N}_\-\.]{1,256}`.
         * 
         * @return builder
         * 
         */
        public Builder fhirStoreId(String fhirStoreId) {
            return fhirStoreId(Output.of(fhirStoreId));
        }

        /**
         * @param labels User-supplied key-value pairs used to organize FHIR 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}{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.
         * 
         * @return builder
         * 
         */
        public Builder labels(@Nullable Output> labels) {
            $.labels = labels;
            return this;
        }

        /**
         * @param labels User-supplied key-value pairs used to organize FHIR 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}{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.
         * 
         * @return builder
         * 
         */
        public Builder labels(Map labels) {
            return labels(Output.of(labels));
        }

        public Builder location(@Nullable Output location) {
            $.location = location;
            return this;
        }

        public Builder location(String location) {
            return location(Output.of(location));
        }

        /**
         * @param notificationConfig Deprecated. Use `notification_configs` instead. If non-empty, publish all resource modifications of this FHIR store to this destination. The Pub/Sub message attributes contain a map with a string describing the action that has triggered the notification. For example, "action":"CreateResource".
         * 
         * @return builder
         * 
         * @deprecated
         * Deprecated. Use `notification_configs` instead. If non-empty, publish all resource modifications of this FHIR store to this destination. The Pub/Sub message attributes contain a map with a string describing the action that has triggered the notification. For example, "action":"CreateResource".
         * 
         */
        @Deprecated /* Deprecated. Use `notification_configs` instead. If non-empty, publish all resource modifications of this FHIR store to this destination. The Pub/Sub message attributes contain a map with a string describing the action that has triggered the notification. For example, ""action"":""CreateResource"". */
        public Builder notificationConfig(@Nullable Output notificationConfig) {
            $.notificationConfig = notificationConfig;
            return this;
        }

        /**
         * @param notificationConfig Deprecated. Use `notification_configs` instead. If non-empty, publish all resource modifications of this FHIR store to this destination. The Pub/Sub message attributes contain a map with a string describing the action that has triggered the notification. For example, "action":"CreateResource".
         * 
         * @return builder
         * 
         * @deprecated
         * Deprecated. Use `notification_configs` instead. If non-empty, publish all resource modifications of this FHIR store to this destination. The Pub/Sub message attributes contain a map with a string describing the action that has triggered the notification. For example, "action":"CreateResource".
         * 
         */
        @Deprecated /* Deprecated. Use `notification_configs` instead. If non-empty, publish all resource modifications of this FHIR store to this destination. The Pub/Sub message attributes contain a map with a string describing the action that has triggered the notification. For example, ""action"":""CreateResource"". */
        public Builder notificationConfig(NotificationConfigArgs notificationConfig) {
            return notificationConfig(Output.of(notificationConfig));
        }

        /**
         * @param notificationConfigs Specifies where and whether to send notifications upon changes to a Fhir store.
         * 
         * @return builder
         * 
         */
        public Builder notificationConfigs(@Nullable Output> notificationConfigs) {
            $.notificationConfigs = notificationConfigs;
            return this;
        }

        /**
         * @param notificationConfigs Specifies where and whether to send notifications upon changes to a Fhir store.
         * 
         * @return builder
         * 
         */
        public Builder notificationConfigs(List notificationConfigs) {
            return notificationConfigs(Output.of(notificationConfigs));
        }

        /**
         * @param notificationConfigs Specifies where and whether to send notifications upon changes to a Fhir store.
         * 
         * @return builder
         * 
         */
        public Builder notificationConfigs(FhirNotificationConfigArgs... notificationConfigs) {
            return notificationConfigs(List.of(notificationConfigs));
        }

        public Builder project(@Nullable Output project) {
            $.project = project;
            return this;
        }

        public Builder project(String project) {
            return project(Output.of(project));
        }

        /**
         * @param searchConfig Configuration for how FHIR resources can be searched.
         * 
         * @return builder
         * 
         */
        public Builder searchConfig(@Nullable Output searchConfig) {
            $.searchConfig = searchConfig;
            return this;
        }

        /**
         * @param searchConfig Configuration for how FHIR resources can be searched.
         * 
         * @return builder
         * 
         */
        public Builder searchConfig(SearchConfigArgs searchConfig) {
            return searchConfig(Output.of(searchConfig));
        }

        /**
         * @param streamConfigs A list of streaming configs that configure the destinations of streaming export for every resource mutation in this FHIR store. Each store is allowed to have up to 10 streaming configs. After a new config is added, the next resource mutation is streamed to the new location in addition to the existing ones. When a location is removed from the list, the server stops streaming to that location. Before adding a new config, you must add the required [`bigquery.dataEditor`](https://cloud.google.com/bigquery/docs/access-control#bigquery.dataEditor) role to your project's **Cloud Healthcare Service Agent** [service account](https://cloud.google.com/iam/docs/service-accounts). Some lag (typically on the order of dozens of seconds) is expected before the results show up in the streaming destination.
         * 
         * @return builder
         * 
         */
        public Builder streamConfigs(@Nullable Output> streamConfigs) {
            $.streamConfigs = streamConfigs;
            return this;
        }

        /**
         * @param streamConfigs A list of streaming configs that configure the destinations of streaming export for every resource mutation in this FHIR store. Each store is allowed to have up to 10 streaming configs. After a new config is added, the next resource mutation is streamed to the new location in addition to the existing ones. When a location is removed from the list, the server stops streaming to that location. Before adding a new config, you must add the required [`bigquery.dataEditor`](https://cloud.google.com/bigquery/docs/access-control#bigquery.dataEditor) role to your project's **Cloud Healthcare Service Agent** [service account](https://cloud.google.com/iam/docs/service-accounts). Some lag (typically on the order of dozens of seconds) is expected before the results show up in the streaming destination.
         * 
         * @return builder
         * 
         */
        public Builder streamConfigs(List streamConfigs) {
            return streamConfigs(Output.of(streamConfigs));
        }

        /**
         * @param streamConfigs A list of streaming configs that configure the destinations of streaming export for every resource mutation in this FHIR store. Each store is allowed to have up to 10 streaming configs. After a new config is added, the next resource mutation is streamed to the new location in addition to the existing ones. When a location is removed from the list, the server stops streaming to that location. Before adding a new config, you must add the required [`bigquery.dataEditor`](https://cloud.google.com/bigquery/docs/access-control#bigquery.dataEditor) role to your project's **Cloud Healthcare Service Agent** [service account](https://cloud.google.com/iam/docs/service-accounts). Some lag (typically on the order of dozens of seconds) is expected before the results show up in the streaming destination.
         * 
         * @return builder
         * 
         */
        public Builder streamConfigs(StreamConfigArgs... streamConfigs) {
            return streamConfigs(List.of(streamConfigs));
        }

        /**
         * @param validationConfig Configuration for how to validate incoming FHIR resources against configured profiles.
         * 
         * @return builder
         * 
         */
        public Builder validationConfig(@Nullable Output validationConfig) {
            $.validationConfig = validationConfig;
            return this;
        }

        /**
         * @param validationConfig Configuration for how to validate incoming FHIR resources against configured profiles.
         * 
         * @return builder
         * 
         */
        public Builder validationConfig(ValidationConfigArgs validationConfig) {
            return validationConfig(Output.of(validationConfig));
        }

        /**
         * @param version Immutable. The FHIR specification version that this FHIR store supports natively. This field is immutable after store creation. Requests are rejected if they contain FHIR resources of a different version. Version is required for every FHIR store.
         * 
         * @return builder
         * 
         */
        public Builder version(@Nullable Output version) {
            $.version = version;
            return this;
        }

        /**
         * @param version Immutable. The FHIR specification version that this FHIR store supports natively. This field is immutable after store creation. Requests are rejected if they contain FHIR resources of a different version. Version is required for every FHIR store.
         * 
         * @return builder
         * 
         */
        public Builder version(FhirStoreVersion version) {
            return version(Output.of(version));
        }

        public FhirStoreArgs build() {
            $.datasetId = Objects.requireNonNull($.datasetId, "expected parameter 'datasetId' to be non-null");
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy