
com.pulumi.awsnative.kinesisfirehose.kotlin.DeliveryStreamArgs.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.kinesisfirehose.kotlin
import com.pulumi.awsnative.kinesisfirehose.DeliveryStreamArgs.builder
import com.pulumi.awsnative.kinesisfirehose.kotlin.enums.DeliveryStreamType
import com.pulumi.awsnative.kinesisfirehose.kotlin.inputs.DeliveryStreamAmazonOpenSearchServerlessDestinationConfigurationArgs
import com.pulumi.awsnative.kinesisfirehose.kotlin.inputs.DeliveryStreamAmazonOpenSearchServerlessDestinationConfigurationArgsBuilder
import com.pulumi.awsnative.kinesisfirehose.kotlin.inputs.DeliveryStreamAmazonopensearchserviceDestinationConfigurationArgs
import com.pulumi.awsnative.kinesisfirehose.kotlin.inputs.DeliveryStreamAmazonopensearchserviceDestinationConfigurationArgsBuilder
import com.pulumi.awsnative.kinesisfirehose.kotlin.inputs.DeliveryStreamElasticsearchDestinationConfigurationArgs
import com.pulumi.awsnative.kinesisfirehose.kotlin.inputs.DeliveryStreamElasticsearchDestinationConfigurationArgsBuilder
import com.pulumi.awsnative.kinesisfirehose.kotlin.inputs.DeliveryStreamEncryptionConfigurationInputArgs
import com.pulumi.awsnative.kinesisfirehose.kotlin.inputs.DeliveryStreamEncryptionConfigurationInputArgsBuilder
import com.pulumi.awsnative.kinesisfirehose.kotlin.inputs.DeliveryStreamExtendedS3DestinationConfigurationArgs
import com.pulumi.awsnative.kinesisfirehose.kotlin.inputs.DeliveryStreamExtendedS3DestinationConfigurationArgsBuilder
import com.pulumi.awsnative.kinesisfirehose.kotlin.inputs.DeliveryStreamHttpEndpointDestinationConfigurationArgs
import com.pulumi.awsnative.kinesisfirehose.kotlin.inputs.DeliveryStreamHttpEndpointDestinationConfigurationArgsBuilder
import com.pulumi.awsnative.kinesisfirehose.kotlin.inputs.DeliveryStreamKinesisStreamSourceConfigurationArgs
import com.pulumi.awsnative.kinesisfirehose.kotlin.inputs.DeliveryStreamKinesisStreamSourceConfigurationArgsBuilder
import com.pulumi.awsnative.kinesisfirehose.kotlin.inputs.DeliveryStreamMskSourceConfigurationArgs
import com.pulumi.awsnative.kinesisfirehose.kotlin.inputs.DeliveryStreamMskSourceConfigurationArgsBuilder
import com.pulumi.awsnative.kinesisfirehose.kotlin.inputs.DeliveryStreamRedshiftDestinationConfigurationArgs
import com.pulumi.awsnative.kinesisfirehose.kotlin.inputs.DeliveryStreamRedshiftDestinationConfigurationArgsBuilder
import com.pulumi.awsnative.kinesisfirehose.kotlin.inputs.DeliveryStreamS3DestinationConfigurationArgs
import com.pulumi.awsnative.kinesisfirehose.kotlin.inputs.DeliveryStreamS3DestinationConfigurationArgsBuilder
import com.pulumi.awsnative.kinesisfirehose.kotlin.inputs.DeliveryStreamSnowflakeDestinationConfigurationArgs
import com.pulumi.awsnative.kinesisfirehose.kotlin.inputs.DeliveryStreamSnowflakeDestinationConfigurationArgsBuilder
import com.pulumi.awsnative.kinesisfirehose.kotlin.inputs.DeliveryStreamSplunkDestinationConfigurationArgs
import com.pulumi.awsnative.kinesisfirehose.kotlin.inputs.DeliveryStreamSplunkDestinationConfigurationArgsBuilder
import com.pulumi.awsnative.kotlin.inputs.TagArgs
import com.pulumi.awsnative.kotlin.inputs.TagArgsBuilder
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.collections.List
import kotlin.jvm.JvmName
/**
* Resource Type definition for AWS::KinesisFirehose::DeliveryStream
* @property amazonOpenSearchServerlessDestinationConfiguration Describes the configuration of a destination in the Serverless offering for Amazon OpenSearch Service.
* @property amazonopensearchserviceDestinationConfiguration The destination in Amazon OpenSearch Service. You can specify only one destination.
* @property deliveryStreamEncryptionConfigurationInput Specifies the type and Amazon Resource Name (ARN) of the CMK to use for Server-Side Encryption (SSE).
* @property deliveryStreamName The name of the delivery stream.
* @property deliveryStreamType The delivery stream type. This can be one of the following values:
* - `DirectPut` : Provider applications access the delivery stream directly.
* - `KinesisStreamAsSource` : The delivery stream uses a Kinesis data stream as a source.
* @property elasticsearchDestinationConfiguration An Amazon ES destination for the delivery stream.
* Conditional. You must specify only one destination configuration.
* If you change the delivery stream destination from an Amazon ES destination to an Amazon S3 or Amazon Redshift destination, update requires [some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt) .
* @property extendedS3DestinationConfiguration An Amazon S3 destination for the delivery stream.
* Conditional. You must specify only one destination configuration.
* If you change the delivery stream destination from an Amazon Extended S3 destination to an Amazon ES destination, update requires [some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt) .
* @property httpEndpointDestinationConfiguration Enables configuring Kinesis Firehose to deliver data to any HTTP endpoint destination. You can specify only one destination.
* @property kinesisStreamSourceConfiguration When a Kinesis stream is used as the source for the delivery stream, a [KinesisStreamSourceConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-kinesisstreamsourceconfiguration.html) containing the Kinesis stream ARN and the role ARN for the source stream.
* @property mskSourceConfiguration The configuration for the Amazon MSK cluster to be used as the source for a delivery stream.
* @property redshiftDestinationConfiguration An Amazon Redshift destination for the delivery stream.
* Conditional. You must specify only one destination configuration.
* If you change the delivery stream destination from an Amazon Redshift destination to an Amazon ES destination, update requires [some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt) .
* @property s3DestinationConfiguration The `S3DestinationConfiguration` property type specifies an Amazon Simple Storage Service (Amazon S3) destination to which Amazon Kinesis Data Firehose (Kinesis Data Firehose) delivers data.
* Conditional. You must specify only one destination configuration.
* If you change the delivery stream destination from an Amazon S3 destination to an Amazon ES destination, update requires [some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt) .
* @property snowflakeDestinationConfiguration Configure Snowflake destination
* @property splunkDestinationConfiguration The configuration of a destination in Splunk for the delivery stream.
* @property tags A set of tags to assign to the delivery stream. A tag is a key-value pair that you can define and assign to AWS resources. Tags are metadata. For example, you can add friendly names and descriptions or other types of information that can help you distinguish the delivery stream. For more information about tags, see [Using Cost Allocation Tags](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html) in the AWS Billing and Cost Management User Guide.
* You can specify up to 50 tags when creating a delivery stream.
* If you specify tags in the `CreateDeliveryStream` action, Amazon Data Firehose performs an additional authorization on the `firehose:TagDeliveryStream` action to verify if users have permissions to create tags. If you do not provide this permission, requests to create new Firehose delivery streams with IAM resource tags will fail with an `AccessDeniedException` such as following.
* *AccessDeniedException*
* User: arn:aws:sts::x:assumed-role/x/x is not authorized to perform: firehose:TagDeliveryStream on resource: arn:aws:firehose:us-east-1:x:deliverystream/x with an explicit deny in an identity-based policy.
* For an example IAM policy, see [Tag example.](https://docs.aws.amazon.com/firehose/latest/APIReference/API_CreateDeliveryStream.html#API_CreateDeliveryStream_Examples)
*/
public data class DeliveryStreamArgs(
public val amazonOpenSearchServerlessDestinationConfiguration: Output? = null,
public val amazonopensearchserviceDestinationConfiguration: Output? = null,
public val deliveryStreamEncryptionConfigurationInput: Output? = null,
public val deliveryStreamName: Output? = null,
public val deliveryStreamType: Output? = null,
public val elasticsearchDestinationConfiguration: Output? = null,
public val extendedS3DestinationConfiguration: Output? = null,
public val httpEndpointDestinationConfiguration: Output? = null,
public val kinesisStreamSourceConfiguration: Output? = null,
public val mskSourceConfiguration: Output? = null,
public val redshiftDestinationConfiguration: Output? = null,
public val s3DestinationConfiguration: Output? =
null,
public val snowflakeDestinationConfiguration: Output? = null,
public val splunkDestinationConfiguration: Output? = null,
public val tags: Output>? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.awsnative.kinesisfirehose.DeliveryStreamArgs =
com.pulumi.awsnative.kinesisfirehose.DeliveryStreamArgs.builder()
.amazonOpenSearchServerlessDestinationConfiguration(
amazonOpenSearchServerlessDestinationConfiguration?.applyValue({ args0 ->
args0.let({ args0 -> args0.toJava() })
}),
)
.amazonopensearchserviceDestinationConfiguration(
amazonopensearchserviceDestinationConfiguration?.applyValue({ args0 ->
args0.let({ args0 -> args0.toJava() })
}),
)
.deliveryStreamEncryptionConfigurationInput(
deliveryStreamEncryptionConfigurationInput?.applyValue({ args0 ->
args0.let({ args0 -> args0.toJava() })
}),
)
.deliveryStreamName(deliveryStreamName?.applyValue({ args0 -> args0 }))
.deliveryStreamType(
deliveryStreamType?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.elasticsearchDestinationConfiguration(
elasticsearchDestinationConfiguration?.applyValue({ args0 ->
args0.let({ args0 -> args0.toJava() })
}),
)
.extendedS3DestinationConfiguration(
extendedS3DestinationConfiguration?.applyValue({ args0 ->
args0.let({ args0 -> args0.toJava() })
}),
)
.httpEndpointDestinationConfiguration(
httpEndpointDestinationConfiguration?.applyValue({ args0 ->
args0.let({ args0 -> args0.toJava() })
}),
)
.kinesisStreamSourceConfiguration(
kinesisStreamSourceConfiguration?.applyValue({ args0 ->
args0.let({ args0 -> args0.toJava() })
}),
)
.mskSourceConfiguration(
mskSourceConfiguration?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.redshiftDestinationConfiguration(
redshiftDestinationConfiguration?.applyValue({ args0 ->
args0.let({ args0 -> args0.toJava() })
}),
)
.s3DestinationConfiguration(
s3DestinationConfiguration?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.snowflakeDestinationConfiguration(
snowflakeDestinationConfiguration?.applyValue({ args0 ->
args0.let({ args0 -> args0.toJava() })
}),
)
.splunkDestinationConfiguration(
splunkDestinationConfiguration?.applyValue({ args0 ->
args0.let({ args0 -> args0.toJava() })
}),
)
.tags(
tags?.applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
})
}),
).build()
}
/**
* Builder for [DeliveryStreamArgs].
*/
@PulumiTagMarker
public class DeliveryStreamArgsBuilder internal constructor() {
private var amazonOpenSearchServerlessDestinationConfiguration:
Output? = null
private var amazonopensearchserviceDestinationConfiguration:
Output? = null
private var deliveryStreamEncryptionConfigurationInput:
Output? = null
private var deliveryStreamName: Output? = null
private var deliveryStreamType: Output? = null
private var elasticsearchDestinationConfiguration:
Output? = null
private var extendedS3DestinationConfiguration:
Output? = null
private var httpEndpointDestinationConfiguration:
Output? = null
private var kinesisStreamSourceConfiguration:
Output? = null
private var mskSourceConfiguration: Output? = null
private var redshiftDestinationConfiguration:
Output? = null
private var s3DestinationConfiguration: Output? =
null
private var snowflakeDestinationConfiguration:
Output? = null
private var splunkDestinationConfiguration:
Output? = null
private var tags: Output>? = null
/**
* @param value Describes the configuration of a destination in the Serverless offering for Amazon OpenSearch Service.
*/
@JvmName("vgoirikeuqyfcaag")
public suspend fun amazonOpenSearchServerlessDestinationConfiguration(`value`: Output) {
this.amazonOpenSearchServerlessDestinationConfiguration = value
}
/**
* @param value The destination in Amazon OpenSearch Service. You can specify only one destination.
*/
@JvmName("krhqmclagdgqrwpk")
public suspend fun amazonopensearchserviceDestinationConfiguration(`value`: Output) {
this.amazonopensearchserviceDestinationConfiguration = value
}
/**
* @param value Specifies the type and Amazon Resource Name (ARN) of the CMK to use for Server-Side Encryption (SSE).
*/
@JvmName("xamkobxuuivfynxw")
public suspend fun deliveryStreamEncryptionConfigurationInput(`value`: Output) {
this.deliveryStreamEncryptionConfigurationInput = value
}
/**
* @param value The name of the delivery stream.
*/
@JvmName("vfpfcfaqlpemllxk")
public suspend fun deliveryStreamName(`value`: Output) {
this.deliveryStreamName = value
}
/**
* @param value The delivery stream type. This can be one of the following values:
* - `DirectPut` : Provider applications access the delivery stream directly.
* - `KinesisStreamAsSource` : The delivery stream uses a Kinesis data stream as a source.
*/
@JvmName("yoretvllowwupevu")
public suspend fun deliveryStreamType(`value`: Output) {
this.deliveryStreamType = value
}
/**
* @param value An Amazon ES destination for the delivery stream.
* Conditional. You must specify only one destination configuration.
* If you change the delivery stream destination from an Amazon ES destination to an Amazon S3 or Amazon Redshift destination, update requires [some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt) .
*/
@JvmName("afpawaexkqgiynth")
public suspend fun elasticsearchDestinationConfiguration(`value`: Output) {
this.elasticsearchDestinationConfiguration = value
}
/**
* @param value An Amazon S3 destination for the delivery stream.
* Conditional. You must specify only one destination configuration.
* If you change the delivery stream destination from an Amazon Extended S3 destination to an Amazon ES destination, update requires [some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt) .
*/
@JvmName("xaltbbdjjedjayou")
public suspend fun extendedS3DestinationConfiguration(`value`: Output) {
this.extendedS3DestinationConfiguration = value
}
/**
* @param value Enables configuring Kinesis Firehose to deliver data to any HTTP endpoint destination. You can specify only one destination.
*/
@JvmName("hdvopkhjcjvlexkp")
public suspend fun httpEndpointDestinationConfiguration(`value`: Output) {
this.httpEndpointDestinationConfiguration = value
}
/**
* @param value When a Kinesis stream is used as the source for the delivery stream, a [KinesisStreamSourceConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-kinesisstreamsourceconfiguration.html) containing the Kinesis stream ARN and the role ARN for the source stream.
*/
@JvmName("bngxrvaaauqamrfb")
public suspend fun kinesisStreamSourceConfiguration(`value`: Output) {
this.kinesisStreamSourceConfiguration = value
}
/**
* @param value The configuration for the Amazon MSK cluster to be used as the source for a delivery stream.
*/
@JvmName("jsunafugcbdunjwv")
public suspend fun mskSourceConfiguration(`value`: Output) {
this.mskSourceConfiguration = value
}
/**
* @param value An Amazon Redshift destination for the delivery stream.
* Conditional. You must specify only one destination configuration.
* If you change the delivery stream destination from an Amazon Redshift destination to an Amazon ES destination, update requires [some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt) .
*/
@JvmName("yhgnagseoquorcis")
public suspend fun redshiftDestinationConfiguration(`value`: Output) {
this.redshiftDestinationConfiguration = value
}
/**
* @param value The `S3DestinationConfiguration` property type specifies an Amazon Simple Storage Service (Amazon S3) destination to which Amazon Kinesis Data Firehose (Kinesis Data Firehose) delivers data.
* Conditional. You must specify only one destination configuration.
* If you change the delivery stream destination from an Amazon S3 destination to an Amazon ES destination, update requires [some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt) .
*/
@JvmName("xlglaamklesoivhc")
public suspend fun s3DestinationConfiguration(`value`: Output) {
this.s3DestinationConfiguration = value
}
/**
* @param value Configure Snowflake destination
*/
@JvmName("xojwvuyxbmrgsrxp")
public suspend fun snowflakeDestinationConfiguration(`value`: Output) {
this.snowflakeDestinationConfiguration = value
}
/**
* @param value The configuration of a destination in Splunk for the delivery stream.
*/
@JvmName("vkdphetcuogomlgp")
public suspend fun splunkDestinationConfiguration(`value`: Output) {
this.splunkDestinationConfiguration = value
}
/**
* @param value A set of tags to assign to the delivery stream. A tag is a key-value pair that you can define and assign to AWS resources. Tags are metadata. For example, you can add friendly names and descriptions or other types of information that can help you distinguish the delivery stream. For more information about tags, see [Using Cost Allocation Tags](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html) in the AWS Billing and Cost Management User Guide.
* You can specify up to 50 tags when creating a delivery stream.
* If you specify tags in the `CreateDeliveryStream` action, Amazon Data Firehose performs an additional authorization on the `firehose:TagDeliveryStream` action to verify if users have permissions to create tags. If you do not provide this permission, requests to create new Firehose delivery streams with IAM resource tags will fail with an `AccessDeniedException` such as following.
* *AccessDeniedException*
* User: arn:aws:sts::x:assumed-role/x/x is not authorized to perform: firehose:TagDeliveryStream on resource: arn:aws:firehose:us-east-1:x:deliverystream/x with an explicit deny in an identity-based policy.
* For an example IAM policy, see [Tag example.](https://docs.aws.amazon.com/firehose/latest/APIReference/API_CreateDeliveryStream.html#API_CreateDeliveryStream_Examples)
*/
@JvmName("lgcegewidtlmwcou")
public suspend fun tags(`value`: Output>) {
this.tags = value
}
@JvmName("ntgbxyubpgkkqhqe")
public suspend fun tags(vararg values: Output) {
this.tags = Output.all(values.asList())
}
/**
* @param values A set of tags to assign to the delivery stream. A tag is a key-value pair that you can define and assign to AWS resources. Tags are metadata. For example, you can add friendly names and descriptions or other types of information that can help you distinguish the delivery stream. For more information about tags, see [Using Cost Allocation Tags](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html) in the AWS Billing and Cost Management User Guide.
* You can specify up to 50 tags when creating a delivery stream.
* If you specify tags in the `CreateDeliveryStream` action, Amazon Data Firehose performs an additional authorization on the `firehose:TagDeliveryStream` action to verify if users have permissions to create tags. If you do not provide this permission, requests to create new Firehose delivery streams with IAM resource tags will fail with an `AccessDeniedException` such as following.
* *AccessDeniedException*
* User: arn:aws:sts::x:assumed-role/x/x is not authorized to perform: firehose:TagDeliveryStream on resource: arn:aws:firehose:us-east-1:x:deliverystream/x with an explicit deny in an identity-based policy.
* For an example IAM policy, see [Tag example.](https://docs.aws.amazon.com/firehose/latest/APIReference/API_CreateDeliveryStream.html#API_CreateDeliveryStream_Examples)
*/
@JvmName("qnalbmrmpqvygyri")
public suspend fun tags(values: List
© 2015 - 2025 Weber Informatics LLC | Privacy Policy