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

com.pulumi.awsnative.mediaconnect.kotlin.inputs.FlowEncryptionArgs.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: 1.11.0.0
Show newest version
@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,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy