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

com.pulumi.aws.appsync.kotlin.inputs.GraphQLApiAdditionalAuthenticationProviderLambdaAuthorizerConfigArgs.kt Maven / Gradle / Ivy

@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.aws.appsync.kotlin.inputs

import com.pulumi.aws.appsync.inputs.GraphQLApiAdditionalAuthenticationProviderLambdaAuthorizerConfigArgs.builder
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.Int
import kotlin.String
import kotlin.Suppress
import kotlin.jvm.JvmName

/**
 *
 * @property authorizerResultTtlInSeconds Number of seconds a response should be cached for. The default is 5 minutes (300 seconds). The Lambda function can override this by returning a `ttlOverride` key in its response. A value of 0 disables caching of responses. Minimum value of 0. Maximum value of 3600.
 * @property authorizerUri ARN of the Lambda function to be called for authorization. Note: This Lambda function must have a resource-based policy assigned to it, to allow `lambda:InvokeFunction` from service principal `appsync.amazonaws.com`.
 * @property identityValidationExpression Regular expression for validation of tokens before the Lambda function is called.
 */
public data class GraphQLApiAdditionalAuthenticationProviderLambdaAuthorizerConfigArgs(
    public val authorizerResultTtlInSeconds: Output? = null,
    public val authorizerUri: Output,
    public val identityValidationExpression: Output? = null,
) :
    ConvertibleToJava {
    override fun toJava(): com.pulumi.aws.appsync.inputs.GraphQLApiAdditionalAuthenticationProviderLambdaAuthorizerConfigArgs =
        com.pulumi.aws.appsync.inputs.GraphQLApiAdditionalAuthenticationProviderLambdaAuthorizerConfigArgs.builder()
            .authorizerResultTtlInSeconds(authorizerResultTtlInSeconds?.applyValue({ args0 -> args0 }))
            .authorizerUri(authorizerUri.applyValue({ args0 -> args0 }))
            .identityValidationExpression(identityValidationExpression?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [GraphQLApiAdditionalAuthenticationProviderLambdaAuthorizerConfigArgs].
 */
@PulumiTagMarker
public class GraphQLApiAdditionalAuthenticationProviderLambdaAuthorizerConfigArgsBuilder internal constructor() {
    private var authorizerResultTtlInSeconds: Output? = null

    private var authorizerUri: Output? = null

    private var identityValidationExpression: Output? = null

    /**
     * @param value Number of seconds a response should be cached for. The default is 5 minutes (300 seconds). The Lambda function can override this by returning a `ttlOverride` key in its response. A value of 0 disables caching of responses. Minimum value of 0. Maximum value of 3600.
     */
    @JvmName("emwberwtatpohans")
    public suspend fun authorizerResultTtlInSeconds(`value`: Output) {
        this.authorizerResultTtlInSeconds = value
    }

    /**
     * @param value ARN of the Lambda function to be called for authorization. Note: This Lambda function must have a resource-based policy assigned to it, to allow `lambda:InvokeFunction` from service principal `appsync.amazonaws.com`.
     */
    @JvmName("liwybmotdigfxsyq")
    public suspend fun authorizerUri(`value`: Output) {
        this.authorizerUri = value
    }

    /**
     * @param value Regular expression for validation of tokens before the Lambda function is called.
     */
    @JvmName("ugpipvemqkkcgpoe")
    public suspend fun identityValidationExpression(`value`: Output) {
        this.identityValidationExpression = value
    }

    /**
     * @param value Number of seconds a response should be cached for. The default is 5 minutes (300 seconds). The Lambda function can override this by returning a `ttlOverride` key in its response. A value of 0 disables caching of responses. Minimum value of 0. Maximum value of 3600.
     */
    @JvmName("iuihbmtjtturxwts")
    public suspend fun authorizerResultTtlInSeconds(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.authorizerResultTtlInSeconds = mapped
    }

    /**
     * @param value ARN of the Lambda function to be called for authorization. Note: This Lambda function must have a resource-based policy assigned to it, to allow `lambda:InvokeFunction` from service principal `appsync.amazonaws.com`.
     */
    @JvmName("vxhidlslpynquthr")
    public suspend fun authorizerUri(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.authorizerUri = mapped
    }

    /**
     * @param value Regular expression for validation of tokens before the Lambda function is called.
     */
    @JvmName("qhxlqnivffqmbryw")
    public suspend fun identityValidationExpression(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.identityValidationExpression = mapped
    }

    internal fun build(): GraphQLApiAdditionalAuthenticationProviderLambdaAuthorizerConfigArgs =
        GraphQLApiAdditionalAuthenticationProviderLambdaAuthorizerConfigArgs(
            authorizerResultTtlInSeconds = authorizerResultTtlInSeconds,
            authorizerUri = authorizerUri ?: throw PulumiNullFieldException("authorizerUri"),
            identityValidationExpression = identityValidationExpression,
        )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy