com.pulumi.awsnative.mediaconnect.kotlin.inputs.FlowEncryptionArgs.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.mediaconnect.kotlin.inputs
import com.pulumi.awsnative.mediaconnect.inputs.FlowEncryptionArgs.builder
import com.pulumi.awsnative.mediaconnect.kotlin.enums.FlowEncryptionAlgorithm
import com.pulumi.awsnative.mediaconnect.kotlin.enums.FlowEncryptionKeyType
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiNullFieldException
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.String
import kotlin.Suppress
import kotlin.jvm.JvmName
/**
* Information about the encryption of the flow.
* @property algorithm The type of algorithm that is used for the encryption (such as aes128, aes192, or aes256).
* @property constantInitializationVector A 128-bit, 16-byte hex value represented by a 32-character string, to be used with the key for encrypting content. This parameter is not valid for static key encryption.
* @property deviceId The value of one of the devices that you configured with your digital rights management (DRM) platform key provider. This parameter is required for SPEKE encryption and is not valid for static key encryption.
* @property keyType The type of key that is used for the encryption. If no keyType is provided, the service will use the default setting (static-key).
* @property region The AWS Region that the API Gateway proxy endpoint was created in. This parameter is required for SPEKE encryption and is not valid for static key encryption.
* @property resourceId An identifier for the content. The service sends this value to the key server to identify the current endpoint. The resource ID is also known as the content ID. This parameter is required for SPEKE encryption and is not valid for static key encryption.
* @property roleArn The ARN of the role that you created during setup (when you set up AWS Elemental MediaConnect as a trusted entity).
* @property secretArn The ARN of the secret that you created in AWS Secrets Manager to store the encryption key. This parameter is required for static key encryption and is not valid for SPEKE encryption.
* @property url The URL from the API Gateway proxy that you set up to talk to your key server. This parameter is required for SPEKE encryption and is not valid for static key encryption.
*/
public data class FlowEncryptionArgs(
public val algorithm: Output? = null,
public val constantInitializationVector: Output? = null,
public val deviceId: Output? = null,
public val keyType: Output? = null,
public val region: Output? = null,
public val resourceId: Output? = null,
public val roleArn: Output,
public val secretArn: Output? = null,
public val url: Output? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.awsnative.mediaconnect.inputs.FlowEncryptionArgs =
com.pulumi.awsnative.mediaconnect.inputs.FlowEncryptionArgs.builder()
.algorithm(algorithm?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.constantInitializationVector(constantInitializationVector?.applyValue({ args0 -> args0 }))
.deviceId(deviceId?.applyValue({ args0 -> args0 }))
.keyType(keyType?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.region(region?.applyValue({ args0 -> args0 }))
.resourceId(resourceId?.applyValue({ args0 -> args0 }))
.roleArn(roleArn.applyValue({ args0 -> args0 }))
.secretArn(secretArn?.applyValue({ args0 -> args0 }))
.url(url?.applyValue({ args0 -> args0 })).build()
}
/**
* Builder for [FlowEncryptionArgs].
*/
@PulumiTagMarker
public class FlowEncryptionArgsBuilder internal constructor() {
private var algorithm: Output? = null
private var constantInitializationVector: Output? = null
private var deviceId: Output? = null
private var keyType: Output? = null
private var region: Output? = null
private var resourceId: Output? = null
private var roleArn: Output? = null
private var secretArn: Output? = null
private var url: Output? = null
/**
* @param value The type of algorithm that is used for the encryption (such as aes128, aes192, or aes256).
*/
@JvmName("kcpiprgmxcfqrbjn")
public suspend fun algorithm(`value`: Output) {
this.algorithm = value
}
/**
* @param value A 128-bit, 16-byte hex value represented by a 32-character string, to be used with the key for encrypting content. This parameter is not valid for static key encryption.
*/
@JvmName("qqckjwomtsskbddu")
public suspend fun constantInitializationVector(`value`: Output) {
this.constantInitializationVector = value
}
/**
* @param value The value of one of the devices that you configured with your digital rights management (DRM) platform key provider. This parameter is required for SPEKE encryption and is not valid for static key encryption.
*/
@JvmName("iiviwcedlfijlgvw")
public suspend fun deviceId(`value`: Output) {
this.deviceId = value
}
/**
* @param value The type of key that is used for the encryption. If no keyType is provided, the service will use the default setting (static-key).
*/
@JvmName("pdwspsrtqnvwfibl")
public suspend fun keyType(`value`: Output) {
this.keyType = value
}
/**
* @param value The AWS Region that the API Gateway proxy endpoint was created in. This parameter is required for SPEKE encryption and is not valid for static key encryption.
*/
@JvmName("bjrtrctqjaoxcabn")
public suspend fun region(`value`: Output) {
this.region = value
}
/**
* @param value An identifier for the content. The service sends this value to the key server to identify the current endpoint. The resource ID is also known as the content ID. This parameter is required for SPEKE encryption and is not valid for static key encryption.
*/
@JvmName("rskiahkcmpimcwue")
public suspend fun resourceId(`value`: Output) {
this.resourceId = value
}
/**
* @param value The ARN of the role that you created during setup (when you set up AWS Elemental MediaConnect as a trusted entity).
*/
@JvmName("ucbwhylninfsgeaf")
public suspend fun roleArn(`value`: Output) {
this.roleArn = value
}
/**
* @param value The ARN of the secret that you created in AWS Secrets Manager to store the encryption key. This parameter is required for static key encryption and is not valid for SPEKE encryption.
*/
@JvmName("spxcxmiuynxxqwvj")
public suspend fun secretArn(`value`: Output) {
this.secretArn = value
}
/**
* @param value The URL from the API Gateway proxy that you set up to talk to your key server. This parameter is required for SPEKE encryption and is not valid for static key encryption.
*/
@JvmName("efmmunwwomdsumlj")
public suspend fun url(`value`: Output) {
this.url = value
}
/**
* @param value The type of algorithm that is used for the encryption (such as aes128, aes192, or aes256).
*/
@JvmName("gdkjmmatyfmryinh")
public suspend fun algorithm(`value`: FlowEncryptionAlgorithm?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.algorithm = mapped
}
/**
* @param value A 128-bit, 16-byte hex value represented by a 32-character string, to be used with the key for encrypting content. This parameter is not valid for static key encryption.
*/
@JvmName("cscriemnqeclciqu")
public suspend fun constantInitializationVector(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.constantInitializationVector = mapped
}
/**
* @param value The value of one of the devices that you configured with your digital rights management (DRM) platform key provider. This parameter is required for SPEKE encryption and is not valid for static key encryption.
*/
@JvmName("sxxcfhffooilijmu")
public suspend fun deviceId(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.deviceId = mapped
}
/**
* @param value The type of key that is used for the encryption. If no keyType is provided, the service will use the default setting (static-key).
*/
@JvmName("wdwfeciooovabntj")
public suspend fun keyType(`value`: FlowEncryptionKeyType?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.keyType = mapped
}
/**
* @param value The AWS Region that the API Gateway proxy endpoint was created in. This parameter is required for SPEKE encryption and is not valid for static key encryption.
*/
@JvmName("ggvyctmehqvgwkjv")
public suspend fun region(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.region = mapped
}
/**
* @param value An identifier for the content. The service sends this value to the key server to identify the current endpoint. The resource ID is also known as the content ID. This parameter is required for SPEKE encryption and is not valid for static key encryption.
*/
@JvmName("uyfqbfntbctuwdku")
public suspend fun resourceId(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.resourceId = mapped
}
/**
* @param value The ARN of the role that you created during setup (when you set up AWS Elemental MediaConnect as a trusted entity).
*/
@JvmName("yykcewhrpuysfcng")
public suspend fun roleArn(`value`: String) {
val toBeMapped = value
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.roleArn = mapped
}
/**
* @param value The ARN of the secret that you created in AWS Secrets Manager to store the encryption key. This parameter is required for static key encryption and is not valid for SPEKE encryption.
*/
@JvmName("grdwavifovehwuqk")
public suspend fun secretArn(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.secretArn = mapped
}
/**
* @param value The URL from the API Gateway proxy that you set up to talk to your key server. This parameter is required for SPEKE encryption and is not valid for static key encryption.
*/
@JvmName("okhkbwhhskmnxmih")
public suspend fun url(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.url = mapped
}
internal fun build(): FlowEncryptionArgs = FlowEncryptionArgs(
algorithm = algorithm,
constantInitializationVector = constantInitializationVector,
deviceId = deviceId,
keyType = keyType,
region = region,
resourceId = resourceId,
roleArn = roleArn ?: throw PulumiNullFieldException("roleArn"),
secretArn = secretArn,
url = url,
)
}