com.pulumi.awsnative.ssm.kotlin.ResourceDataSyncArgs.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.ssm.kotlin
import com.pulumi.awsnative.ssm.ResourceDataSyncArgs.builder
import com.pulumi.awsnative.ssm.kotlin.inputs.ResourceDataSyncS3DestinationArgs
import com.pulumi.awsnative.ssm.kotlin.inputs.ResourceDataSyncS3DestinationArgsBuilder
import com.pulumi.awsnative.ssm.kotlin.inputs.ResourceDataSyncSyncSourceArgs
import com.pulumi.awsnative.ssm.kotlin.inputs.ResourceDataSyncSyncSourceArgsBuilder
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
/**
* Resource Type definition for AWS::SSM::ResourceDataSync
* ## Example Usage
* ### Example
* No Java example available.
* ### Example
* No Java example available.
* ### Example
* No Java example available.
* ### Example
* No Java example available.
* ### Example
* No Java example available.
* ### Example
* No Java example available.
* ### Example
* No Java example available.
* ### Example
* No Java example available.
* @property bucketName The name of the S3 bucket where the aggregated data is stored.
* @property bucketPrefix An Amazon S3 prefix for the bucket.
* @property bucketRegion The AWS Region with the S3 bucket targeted by the resource data sync.
* @property kmsKeyArn The Amazon Resource Name (ARN) of an encryption key for a destination in Amazon S3 . You can use a KMS key to encrypt inventory data in Amazon S3 . You must specify a key that exist in the same AWS Region as the destination Amazon S3 bucket.
* @property s3Destination Configuration information for the target S3 bucket.
* @property syncFormat A supported sync format. The following format is currently supported: JsonSerDe
* @property syncName A name for the resource data sync.
* @property syncSource Information about the source where the data was synchronized.
* @property syncType The type of resource data sync. If `SyncType` is `SyncToDestination` , then the resource data sync synchronizes data to an S3 bucket. If the `SyncType` is `SyncFromSource` then the resource data sync synchronizes data from AWS Organizations or from multiple AWS Regions .
*/
public data class ResourceDataSyncArgs(
public val bucketName: Output? = null,
public val bucketPrefix: Output? = null,
public val bucketRegion: Output? = null,
public val kmsKeyArn: Output? = null,
public val s3Destination: Output? = null,
public val syncFormat: Output? = null,
public val syncName: Output? = null,
public val syncSource: Output? = null,
public val syncType: Output? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.awsnative.ssm.ResourceDataSyncArgs =
com.pulumi.awsnative.ssm.ResourceDataSyncArgs.builder()
.bucketName(bucketName?.applyValue({ args0 -> args0 }))
.bucketPrefix(bucketPrefix?.applyValue({ args0 -> args0 }))
.bucketRegion(bucketRegion?.applyValue({ args0 -> args0 }))
.kmsKeyArn(kmsKeyArn?.applyValue({ args0 -> args0 }))
.s3Destination(s3Destination?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.syncFormat(syncFormat?.applyValue({ args0 -> args0 }))
.syncName(syncName?.applyValue({ args0 -> args0 }))
.syncSource(syncSource?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.syncType(syncType?.applyValue({ args0 -> args0 })).build()
}
/**
* Builder for [ResourceDataSyncArgs].
*/
@PulumiTagMarker
public class ResourceDataSyncArgsBuilder internal constructor() {
private var bucketName: Output? = null
private var bucketPrefix: Output? = null
private var bucketRegion: Output? = null
private var kmsKeyArn: Output? = null
private var s3Destination: Output? = null
private var syncFormat: Output? = null
private var syncName: Output? = null
private var syncSource: Output? = null
private var syncType: Output? = null
/**
* @param value The name of the S3 bucket where the aggregated data is stored.
*/
@JvmName("tlboorocufioehdp")
public suspend fun bucketName(`value`: Output) {
this.bucketName = value
}
/**
* @param value An Amazon S3 prefix for the bucket.
*/
@JvmName("tcrkhhbwxqwprgdv")
public suspend fun bucketPrefix(`value`: Output) {
this.bucketPrefix = value
}
/**
* @param value The AWS Region with the S3 bucket targeted by the resource data sync.
*/
@JvmName("rxsxjkfkfitivjji")
public suspend fun bucketRegion(`value`: Output) {
this.bucketRegion = value
}
/**
* @param value The Amazon Resource Name (ARN) of an encryption key for a destination in Amazon S3 . You can use a KMS key to encrypt inventory data in Amazon S3 . You must specify a key that exist in the same AWS Region as the destination Amazon S3 bucket.
*/
@JvmName("gfgwajymbqplhgtt")
public suspend fun kmsKeyArn(`value`: Output) {
this.kmsKeyArn = value
}
/**
* @param value Configuration information for the target S3 bucket.
*/
@JvmName("fkpsotqxbqcnxexh")
public suspend fun s3Destination(`value`: Output) {
this.s3Destination = value
}
/**
* @param value A supported sync format. The following format is currently supported: JsonSerDe
*/
@JvmName("ockkavkdqyuacdqh")
public suspend fun syncFormat(`value`: Output) {
this.syncFormat = value
}
/**
* @param value A name for the resource data sync.
*/
@JvmName("aprdeykpmchmktfn")
public suspend fun syncName(`value`: Output) {
this.syncName = value
}
/**
* @param value Information about the source where the data was synchronized.
*/
@JvmName("bqmljbtoxhdrrdku")
public suspend fun syncSource(`value`: Output) {
this.syncSource = value
}
/**
* @param value The type of resource data sync. If `SyncType` is `SyncToDestination` , then the resource data sync synchronizes data to an S3 bucket. If the `SyncType` is `SyncFromSource` then the resource data sync synchronizes data from AWS Organizations or from multiple AWS Regions .
*/
@JvmName("rkrcpkqdxenlwdha")
public suspend fun syncType(`value`: Output) {
this.syncType = value
}
/**
* @param value The name of the S3 bucket where the aggregated data is stored.
*/
@JvmName("talpdwaukobghrbp")
public suspend fun bucketName(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.bucketName = mapped
}
/**
* @param value An Amazon S3 prefix for the bucket.
*/
@JvmName("diaxtxikhytwkjpn")
public suspend fun bucketPrefix(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.bucketPrefix = mapped
}
/**
* @param value The AWS Region with the S3 bucket targeted by the resource data sync.
*/
@JvmName("pvbyjiajayrhmalg")
public suspend fun bucketRegion(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.bucketRegion = mapped
}
/**
* @param value The Amazon Resource Name (ARN) of an encryption key for a destination in Amazon S3 . You can use a KMS key to encrypt inventory data in Amazon S3 . You must specify a key that exist in the same AWS Region as the destination Amazon S3 bucket.
*/
@JvmName("jusneanmppicoadb")
public suspend fun kmsKeyArn(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.kmsKeyArn = mapped
}
/**
* @param value Configuration information for the target S3 bucket.
*/
@JvmName("riwfcxpqvnjojwiv")
public suspend fun s3Destination(`value`: ResourceDataSyncS3DestinationArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.s3Destination = mapped
}
/**
* @param argument Configuration information for the target S3 bucket.
*/
@JvmName("nvrhaaigwflsplhg")
public suspend fun s3Destination(argument: suspend ResourceDataSyncS3DestinationArgsBuilder.() -> Unit) {
val toBeMapped = ResourceDataSyncS3DestinationArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.s3Destination = mapped
}
/**
* @param value A supported sync format. The following format is currently supported: JsonSerDe
*/
@JvmName("akqhscbwakopwnim")
public suspend fun syncFormat(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.syncFormat = mapped
}
/**
* @param value A name for the resource data sync.
*/
@JvmName("oskduimepbkqinae")
public suspend fun syncName(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.syncName = mapped
}
/**
* @param value Information about the source where the data was synchronized.
*/
@JvmName("ltemrpvurxinylru")
public suspend fun syncSource(`value`: ResourceDataSyncSyncSourceArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.syncSource = mapped
}
/**
* @param argument Information about the source where the data was synchronized.
*/
@JvmName("tovsmxhhwmnacbww")
public suspend fun syncSource(argument: suspend ResourceDataSyncSyncSourceArgsBuilder.() -> Unit) {
val toBeMapped = ResourceDataSyncSyncSourceArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.syncSource = mapped
}
/**
* @param value The type of resource data sync. If `SyncType` is `SyncToDestination` , then the resource data sync synchronizes data to an S3 bucket. If the `SyncType` is `SyncFromSource` then the resource data sync synchronizes data from AWS Organizations or from multiple AWS Regions .
*/
@JvmName("vkqkwsxijqualwqx")
public suspend fun syncType(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.syncType = mapped
}
internal fun build(): ResourceDataSyncArgs = ResourceDataSyncArgs(
bucketName = bucketName,
bucketPrefix = bucketPrefix,
bucketRegion = bucketRegion,
kmsKeyArn = kmsKeyArn,
s3Destination = s3Destination,
syncFormat = syncFormat,
syncName = syncName,
syncSource = syncSource,
syncType = syncType,
)
}