com.pulumi.awsnative.bedrock.kotlin.DataSourceArgs.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of pulumi-aws-native-kotlin Show documentation
Show all versions of pulumi-aws-native-kotlin Show documentation
Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.awsnative.bedrock.kotlin
import com.pulumi.awsnative.bedrock.DataSourceArgs.builder
import com.pulumi.awsnative.bedrock.kotlin.enums.DataSourceDataDeletionPolicy
import com.pulumi.awsnative.bedrock.kotlin.inputs.DataSourceConfigurationArgs
import com.pulumi.awsnative.bedrock.kotlin.inputs.DataSourceConfigurationArgsBuilder
import com.pulumi.awsnative.bedrock.kotlin.inputs.DataSourceServerSideEncryptionConfigurationArgs
import com.pulumi.awsnative.bedrock.kotlin.inputs.DataSourceServerSideEncryptionConfigurationArgsBuilder
import com.pulumi.awsnative.bedrock.kotlin.inputs.DataSourceVectorIngestionConfigurationArgs
import com.pulumi.awsnative.bedrock.kotlin.inputs.DataSourceVectorIngestionConfigurationArgsBuilder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.jvm.JvmName
/**
* Definition of AWS::Bedrock::DataSource Resource Type
* @property dataDeletionPolicy The data deletion policy for the data source.
* @property dataSourceConfiguration The connection configuration for the data source.
* @property description Description of the Resource.
* @property knowledgeBaseId The unique identifier of the knowledge base to which to add the data source.
* @property name The name of the data source.
* @property serverSideEncryptionConfiguration Contains details about the configuration of the server-side encryption.
* @property vectorIngestionConfiguration Contains details about how to ingest the documents in the data source.
*/
public data class DataSourceArgs(
public val dataDeletionPolicy: Output? = null,
public val dataSourceConfiguration: Output? = null,
public val description: Output? = null,
public val knowledgeBaseId: Output? = null,
public val name: Output? = null,
public val serverSideEncryptionConfiguration: Output? = null,
public val vectorIngestionConfiguration: Output? =
null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.awsnative.bedrock.DataSourceArgs =
com.pulumi.awsnative.bedrock.DataSourceArgs.builder()
.dataDeletionPolicy(
dataDeletionPolicy?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.dataSourceConfiguration(
dataSourceConfiguration?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.description(description?.applyValue({ args0 -> args0 }))
.knowledgeBaseId(knowledgeBaseId?.applyValue({ args0 -> args0 }))
.name(name?.applyValue({ args0 -> args0 }))
.serverSideEncryptionConfiguration(
serverSideEncryptionConfiguration?.applyValue({ args0 ->
args0.let({ args0 -> args0.toJava() })
}),
)
.vectorIngestionConfiguration(
vectorIngestionConfiguration?.applyValue({ args0 ->
args0.let({ args0 -> args0.toJava() })
}),
).build()
}
/**
* Builder for [DataSourceArgs].
*/
@PulumiTagMarker
public class DataSourceArgsBuilder internal constructor() {
private var dataDeletionPolicy: Output? = null
private var dataSourceConfiguration: Output? = null
private var description: Output? = null
private var knowledgeBaseId: Output? = null
private var name: Output? = null
private var serverSideEncryptionConfiguration:
Output? = null
private var vectorIngestionConfiguration: Output? =
null
/**
* @param value The data deletion policy for the data source.
*/
@JvmName("wkvcbispxxnpibte")
public suspend fun dataDeletionPolicy(`value`: Output) {
this.dataDeletionPolicy = value
}
/**
* @param value The connection configuration for the data source.
*/
@JvmName("kktcuwecxyclhyor")
public suspend fun dataSourceConfiguration(`value`: Output) {
this.dataSourceConfiguration = value
}
/**
* @param value Description of the Resource.
*/
@JvmName("butmgmjtsjbfukms")
public suspend fun description(`value`: Output) {
this.description = value
}
/**
* @param value The unique identifier of the knowledge base to which to add the data source.
*/
@JvmName("babxofspxruiscsj")
public suspend fun knowledgeBaseId(`value`: Output) {
this.knowledgeBaseId = value
}
/**
* @param value The name of the data source.
*/
@JvmName("xhtbpujscpxgkuiq")
public suspend fun name(`value`: Output) {
this.name = value
}
/**
* @param value Contains details about the configuration of the server-side encryption.
*/
@JvmName("wfxbxcdrjxmqycdn")
public suspend fun serverSideEncryptionConfiguration(`value`: Output) {
this.serverSideEncryptionConfiguration = value
}
/**
* @param value Contains details about how to ingest the documents in the data source.
*/
@JvmName("nwpgdjrbrkxywapy")
public suspend fun vectorIngestionConfiguration(`value`: Output) {
this.vectorIngestionConfiguration = value
}
/**
* @param value The data deletion policy for the data source.
*/
@JvmName("ltruatdbupovacrx")
public suspend fun dataDeletionPolicy(`value`: DataSourceDataDeletionPolicy?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.dataDeletionPolicy = mapped
}
/**
* @param value The connection configuration for the data source.
*/
@JvmName("bguhdyfwfpvqacau")
public suspend fun dataSourceConfiguration(`value`: DataSourceConfigurationArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.dataSourceConfiguration = mapped
}
/**
* @param argument The connection configuration for the data source.
*/
@JvmName("ltixcvngjgonrlot")
public suspend fun dataSourceConfiguration(argument: suspend DataSourceConfigurationArgsBuilder.() -> Unit) {
val toBeMapped = DataSourceConfigurationArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.dataSourceConfiguration = mapped
}
/**
* @param value Description of the Resource.
*/
@JvmName("gysnkbugnmpynoph")
public suspend fun description(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.description = mapped
}
/**
* @param value The unique identifier of the knowledge base to which to add the data source.
*/
@JvmName("wdjkbnpbclskdpri")
public suspend fun knowledgeBaseId(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.knowledgeBaseId = mapped
}
/**
* @param value The name of the data source.
*/
@JvmName("omefeyjacyrhjpgb")
public suspend fun name(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.name = mapped
}
/**
* @param value Contains details about the configuration of the server-side encryption.
*/
@JvmName("dtxjmnwqwgrbmfqs")
public suspend fun serverSideEncryptionConfiguration(`value`: DataSourceServerSideEncryptionConfigurationArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.serverSideEncryptionConfiguration = mapped
}
/**
* @param argument Contains details about the configuration of the server-side encryption.
*/
@JvmName("exxepgtoesbuukhe")
public suspend fun serverSideEncryptionConfiguration(argument: suspend DataSourceServerSideEncryptionConfigurationArgsBuilder.() -> Unit) {
val toBeMapped = DataSourceServerSideEncryptionConfigurationArgsBuilder().applySuspend {
argument()
}.build()
val mapped = of(toBeMapped)
this.serverSideEncryptionConfiguration = mapped
}
/**
* @param value Contains details about how to ingest the documents in the data source.
*/
@JvmName("rhvrfdxiwyefydse")
public suspend fun vectorIngestionConfiguration(`value`: DataSourceVectorIngestionConfigurationArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.vectorIngestionConfiguration = mapped
}
/**
* @param argument Contains details about how to ingest the documents in the data source.
*/
@JvmName("fvahxosfyfnetjly")
public suspend fun vectorIngestionConfiguration(argument: suspend DataSourceVectorIngestionConfigurationArgsBuilder.() -> Unit) {
val toBeMapped = DataSourceVectorIngestionConfigurationArgsBuilder().applySuspend {
argument()
}.build()
val mapped = of(toBeMapped)
this.vectorIngestionConfiguration = mapped
}
internal fun build(): DataSourceArgs = DataSourceArgs(
dataDeletionPolicy = dataDeletionPolicy,
dataSourceConfiguration = dataSourceConfiguration,
description = description,
knowledgeBaseId = knowledgeBaseId,
name = name,
serverSideEncryptionConfiguration = serverSideEncryptionConfiguration,
vectorIngestionConfiguration = vectorIngestionConfiguration,
)
}