com.pulumi.awsnative.apigatewayv2.kotlin.Integration.kt Maven / Gradle / Ivy
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.awsnative.apigatewayv2.kotlin
import com.pulumi.awsnative.apigatewayv2.kotlin.outputs.IntegrationResponseParameterMap
import com.pulumi.awsnative.apigatewayv2.kotlin.outputs.IntegrationTlsConfig
import com.pulumi.core.Output
import com.pulumi.kotlin.KotlinCustomResource
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.ResourceMapper
import com.pulumi.kotlin.options.CustomResourceOptions
import com.pulumi.kotlin.options.CustomResourceOptionsBuilder
import com.pulumi.resources.Resource
import kotlin.Boolean
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.Map
import com.pulumi.awsnative.apigatewayv2.kotlin.outputs.IntegrationResponseParameterMap.Companion.toKotlin as integrationResponseParameterMapToKotlin
import com.pulumi.awsnative.apigatewayv2.kotlin.outputs.IntegrationTlsConfig.Companion.toKotlin as integrationTlsConfigToKotlin
/**
* Builder for [Integration].
*/
@PulumiTagMarker
public class IntegrationResourceBuilder internal constructor() {
public var name: String? = null
public var args: IntegrationArgs = IntegrationArgs()
public var opts: CustomResourceOptions = CustomResourceOptions()
/**
* @param name The _unique_ name of the resulting resource.
*/
public fun name(`value`: String) {
this.name = value
}
/**
* @param block The arguments to use to populate this resource's properties.
*/
public suspend fun args(block: suspend IntegrationArgsBuilder.() -> Unit) {
val builder = IntegrationArgsBuilder()
block(builder)
this.args = builder.build()
}
/**
* @param block A bag of options that control this resource's behavior.
*/
public suspend fun opts(block: suspend CustomResourceOptionsBuilder.() -> Unit) {
this.opts = com.pulumi.kotlin.options.CustomResourceOptions.opts(block)
}
internal fun build(): Integration {
val builtJavaResource = com.pulumi.awsnative.apigatewayv2.Integration(
this.name,
this.args.toJava(),
this.opts.toJava(),
)
return Integration(builtJavaResource)
}
}
/**
* An example resource schema demonstrating some basic constructs and validation rules.
*/
public class Integration internal constructor(
override val javaResource: com.pulumi.awsnative.apigatewayv2.Integration,
) : KotlinCustomResource(javaResource, IntegrationMapper) {
/**
* The API identifier.
*/
public val apiId: Output
get() = javaResource.apiId().applyValue({ args0 -> args0 })
/**
* The ID of the VPC link for a private integration. Supported only for HTTP APIs.
*/
public val connectionId: Output?
get() = javaResource.connectionId().applyValue({ args0 ->
args0.map({ args0 ->
args0
}).orElse(null)
})
/**
* The type of the network connection to the integration endpoint. Specify INTERNET for connections through the public routable internet or VPC_LINK for private connections between API Gateway and resources in a VPC. The default value is INTERNET.
*/
public val connectionType: Output?
get() = javaResource.connectionType().applyValue({ args0 ->
args0.map({ args0 ->
args0
}).orElse(null)
})
/**
* Supported only for WebSocket APIs. Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT.
*/
public val contentHandlingStrategy: Output?
get() = javaResource.contentHandlingStrategy().applyValue({ args0 ->
args0.map({ args0 ->
args0
}).orElse(null)
})
/**
* Specifies the credentials required for the integration, if any. For AWS integrations, three options are available. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify the string arn:aws:iam::*:user/*. To use resource-based permissions on supported AWS services, don't specify this parameter.
* */
*/
public val credentialsArn: Output?
get() = javaResource.credentialsArn().applyValue({ args0 ->
args0.map({ args0 ->
args0
}).orElse(null)
})
/**
* The description of the integration.
*/
public val description: Output?
get() = javaResource.description().applyValue({ args0 ->
args0.map({ args0 ->
args0
}).orElse(null)
})
/**
* The integration ID.
*/
public val integrationId: Output
get() = javaResource.integrationId().applyValue({ args0 -> args0 })
/**
* Specifies the integration's HTTP method type.
*/
public val integrationMethod: Output?
get() = javaResource.integrationMethod().applyValue({ args0 ->
args0.map({ args0 ->
args0
}).orElse(null)
})
/**
* Supported only for HTTP API AWS_PROXY integrations. Specifies the AWS service action to invoke.
*/
public val integrationSubtype: Output?
get() = javaResource.integrationSubtype().applyValue({ args0 ->
args0.map({ args0 ->
args0
}).orElse(null)
})
/**
* The integration type of an integration.
*/
public val integrationType: Output
get() = javaResource.integrationType().applyValue({ args0 -> args0 })
/**
* For a Lambda integration, specify the URI of a Lambda function. For an HTTP integration, specify a fully-qualified URL. For an HTTP API private integration, specify the ARN of an Application Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map service.
*/
public val integrationUri: Output?
get() = javaResource.integrationUri().applyValue({ args0 ->
args0.map({ args0 ->
args0
}).orElse(null)
})
/**
* Specifies the pass-through behavior for incoming requests based on the Content-Type header in the request, and the available mapping templates specified as the requestTemplates property on the Integration resource. There are three valid values: WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and NEVER. Supported only for WebSocket APIs.
*/
public val passthroughBehavior: Output?
get() = javaResource.passthroughBehavior().applyValue({ args0 ->
args0.map({ args0 ->
args0
}).orElse(null)
})
/**
* Specifies the format of the payload sent to an integration. Required for HTTP APIs. For HTTP APIs, supported values for Lambda proxy integrations are 1.0 and 2.0 For all other integrations, 1.0 is the only supported value.
*/
public val payloadFormatVersion: Output?
get() = javaResource.payloadFormatVersion().applyValue({ args0 ->
args0.map({ args0 ->
args0
}).orElse(null)
})
/**
* A key-value map specifying parameters.
*/
public val requestParameters: Output