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

com.pulumi.gcp.healthcare.kotlin.inputs.FhirStoreNotificationConfigArgs.kt Maven / Gradle / Ivy

Go to download

Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.

There is a newer version: 8.12.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.gcp.healthcare.kotlin.inputs

import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.gcp.healthcare.inputs.FhirStoreNotificationConfigArgs.builder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiNullFieldException
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.Boolean
import kotlin.String
import kotlin.Suppress
import kotlin.jvm.JvmName

/**
 *
 * @property pubsubTopic The Cloud Pub/Sub topic that notifications of changes are published on. Supplied by the client.
 * PubsubMessage.Data will contain the resource name. PubsubMessage.MessageId is the ID of this message.
 * It is guaranteed to be unique within the topic. PubsubMessage.PublishTime is the time at which the message
 * was published. Notifications are only sent if the topic is non-empty. Topic names must be scoped to a
 * project. service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com must have publisher permissions on the given
 * Cloud Pub/Sub topic. Not having adequate permissions will cause the calls that send notifications to fail.
 * @property sendFullResource Whether to send full FHIR resource to this Pub/Sub topic for Create and Update operation.
 * Note that setting this to true does not guarantee that all resources will be sent in the format of
 * full FHIR resource. When a resource change is too large or during heavy traffic, only the resource name will be
 * sent. Clients should always check the "payloadType" label from a Pub/Sub message to determine whether
 * it needs to fetch the full resource as a separate operation.
 * @property sendPreviousResourceOnDelete Whether to send full FHIR resource to this Pub/Sub topic for deleting FHIR resource. Note that setting this to
 * true does not guarantee that all previous resources will be sent in the format of full FHIR resource. When a
 * resource change is too large or during heavy traffic, only the resource name will be sent. Clients should always
 * check the "payloadType" label from a Pub/Sub message to determine whether it needs to fetch the full previous
 * resource as a separate operation.
 */
public data class FhirStoreNotificationConfigArgs(
    public val pubsubTopic: Output,
    public val sendFullResource: Output? = null,
    public val sendPreviousResourceOnDelete: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.gcp.healthcare.inputs.FhirStoreNotificationConfigArgs =
        com.pulumi.gcp.healthcare.inputs.FhirStoreNotificationConfigArgs.builder()
            .pubsubTopic(pubsubTopic.applyValue({ args0 -> args0 }))
            .sendFullResource(sendFullResource?.applyValue({ args0 -> args0 }))
            .sendPreviousResourceOnDelete(sendPreviousResourceOnDelete?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [FhirStoreNotificationConfigArgs].
 */
@PulumiTagMarker
public class FhirStoreNotificationConfigArgsBuilder internal constructor() {
    private var pubsubTopic: Output? = null

    private var sendFullResource: Output? = null

    private var sendPreviousResourceOnDelete: Output? = null

    /**
     * @param value The Cloud Pub/Sub topic that notifications of changes are published on. Supplied by the client.
     * PubsubMessage.Data will contain the resource name. PubsubMessage.MessageId is the ID of this message.
     * It is guaranteed to be unique within the topic. PubsubMessage.PublishTime is the time at which the message
     * was published. Notifications are only sent if the topic is non-empty. Topic names must be scoped to a
     * project. service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com must have publisher permissions on the given
     * Cloud Pub/Sub topic. Not having adequate permissions will cause the calls that send notifications to fail.
     */
    @JvmName("inkngfmbgmbwrhvk")
    public suspend fun pubsubTopic(`value`: Output) {
        this.pubsubTopic = value
    }

    /**
     * @param value Whether to send full FHIR resource to this Pub/Sub topic for Create and Update operation.
     * Note that setting this to true does not guarantee that all resources will be sent in the format of
     * full FHIR resource. When a resource change is too large or during heavy traffic, only the resource name will be
     * sent. Clients should always check the "payloadType" label from a Pub/Sub message to determine whether
     * it needs to fetch the full resource as a separate operation.
     */
    @JvmName("qoqqbsesoxhuwkkf")
    public suspend fun sendFullResource(`value`: Output) {
        this.sendFullResource = value
    }

    /**
     * @param value Whether to send full FHIR resource to this Pub/Sub topic for deleting FHIR resource. Note that setting this to
     * true does not guarantee that all previous resources will be sent in the format of full FHIR resource. When a
     * resource change is too large or during heavy traffic, only the resource name will be sent. Clients should always
     * check the "payloadType" label from a Pub/Sub message to determine whether it needs to fetch the full previous
     * resource as a separate operation.
     */
    @JvmName("bfrmjdtsaoeuxcsa")
    public suspend fun sendPreviousResourceOnDelete(`value`: Output) {
        this.sendPreviousResourceOnDelete = value
    }

    /**
     * @param value The Cloud Pub/Sub topic that notifications of changes are published on. Supplied by the client.
     * PubsubMessage.Data will contain the resource name. PubsubMessage.MessageId is the ID of this message.
     * It is guaranteed to be unique within the topic. PubsubMessage.PublishTime is the time at which the message
     * was published. Notifications are only sent if the topic is non-empty. Topic names must be scoped to a
     * project. service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com must have publisher permissions on the given
     * Cloud Pub/Sub topic. Not having adequate permissions will cause the calls that send notifications to fail.
     */
    @JvmName("isfylccsybduucbt")
    public suspend fun pubsubTopic(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.pubsubTopic = mapped
    }

    /**
     * @param value Whether to send full FHIR resource to this Pub/Sub topic for Create and Update operation.
     * Note that setting this to true does not guarantee that all resources will be sent in the format of
     * full FHIR resource. When a resource change is too large or during heavy traffic, only the resource name will be
     * sent. Clients should always check the "payloadType" label from a Pub/Sub message to determine whether
     * it needs to fetch the full resource as a separate operation.
     */
    @JvmName("pritxgwdejxfxrhf")
    public suspend fun sendFullResource(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.sendFullResource = mapped
    }

    /**
     * @param value Whether to send full FHIR resource to this Pub/Sub topic for deleting FHIR resource. Note that setting this to
     * true does not guarantee that all previous resources will be sent in the format of full FHIR resource. When a
     * resource change is too large or during heavy traffic, only the resource name will be sent. Clients should always
     * check the "payloadType" label from a Pub/Sub message to determine whether it needs to fetch the full previous
     * resource as a separate operation.
     */
    @JvmName("nglsvrrjaovoiqjj")
    public suspend fun sendPreviousResourceOnDelete(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.sendPreviousResourceOnDelete = mapped
    }

    internal fun build(): FhirStoreNotificationConfigArgs = FhirStoreNotificationConfigArgs(
        pubsubTopic = pubsubTopic ?: throw PulumiNullFieldException("pubsubTopic"),
        sendFullResource = sendFullResource,
        sendPreviousResourceOnDelete = sendPreviousResourceOnDelete,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy