Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.aws.apigateway.kotlin
import com.pulumi.aws.apigateway.kotlin.outputs.DeploymentCanarySettings
import com.pulumi.aws.apigateway.kotlin.outputs.DeploymentCanarySettings.Companion.toKotlin
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.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.Map
/**
* Builder for [Deployment].
*/
@PulumiTagMarker
public class DeploymentResourceBuilder internal constructor() {
public var name: String? = null
public var args: DeploymentArgs = DeploymentArgs()
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 DeploymentArgsBuilder.() -> Unit) {
val builder = DeploymentArgsBuilder()
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(): Deployment {
val builtJavaResource = com.pulumi.aws.apigateway.Deployment(
this.name,
this.args.toJava(),
this.opts.toJava(),
)
return Deployment(builtJavaResource)
}
}
/**
* Manages an API Gateway REST Deployment. A deployment is a snapshot of the REST API configuration. The deployment can then be published to callable endpoints via the `aws.apigateway.Stage` resource and optionally managed further with the `aws.apigateway.BasePathMapping` resource, `aws.apigateway.DomainName` resource, and `aws_api_method_settings` resource. For more information, see the [API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-deploy-api.html).
* To properly capture all REST API configuration in a deployment, this resource must have dependencies on all prior resources that manage resources/paths, methods, integrations, etc.
* * For REST APIs that are configured via OpenAPI specification (`aws.apigateway.RestApi` resource `body` argument), no special dependency setup is needed beyond referencing the `id` attribute of that resource unless additional resources have further customized the REST API.
* * When the REST API configuration involves other resources (`aws.apigateway.Integration` resource), the dependency setup can be done with implicit resource references in the `triggers` argument or explicit resource references using the [resource `dependsOn` custom option](https://www.pulumi.com/docs/intro/concepts/resources/#dependson). The `triggers` argument should be preferred over `depends_on`, since `depends_on` can only capture dependency ordering and will not cause the resource to recreate (redeploy the REST API) with upstream configuration changes.
* !> **WARNING:** It is recommended to use the `aws.apigateway.Stage` resource instead of managing an API Gateway Stage via the `stage_name` argument of this resource. When this resource is recreated (REST API redeployment) with the `stage_name` configured, the stage is deleted and recreated. This will cause a temporary service interruption, increase provide plan differences, and can require a second apply to recreate any downstream stage configuration such as associated `aws_api_method_settings` resources.
* ## Example Usage
* ## Import
* Using `pulumi import`, import `aws_api_gateway_deployment` using `REST-API-ID/DEPLOYMENT-ID`. For example:
* ```sh
* $ pulumi import aws:apigateway/deployment:Deployment example aabbccddee/1122334
* ```
* The `stage_name`, `stage_description`, and `variables` arguments cannot be imported. Use the `aws_api_gateway_stage` resource to import and manage stages.
* The `triggers` argument cannot be imported.
*/
public class Deployment internal constructor(
override val javaResource: com.pulumi.aws.apigateway.Deployment,
) : KotlinCustomResource(javaResource, DeploymentMapper) {
/**
* Input configuration for the canary deployment when the deployment is a canary release deployment. See `canary_settings below.
*/
public val canarySettings: Output?
get() = javaResource.canarySettings().applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 -> toKotlin(args0) })
}).orElse(null)
})
/**
* Creation date of the deployment
*/
public val createdDate: Output
get() = javaResource.createdDate().applyValue({ args0 -> args0 })
/**
* Description of the deployment
*/
public val description: Output?
get() = javaResource.description().applyValue({ args0 ->
args0.map({ args0 ->
args0
}).orElse(null)
})
/**
* Execution ARN to be used in `lambda_permission`'s `source_arn`
* when allowing API Gateway to invoke a Lambda function,
* e.g., `arn:aws:execute-api:eu-west-2:123456789012:z4675bid1j/prod`
*/
public val executionArn: Output
get() = javaResource.executionArn().applyValue({ args0 -> args0 })
/**
* URL to invoke the API pointing to the stage,
* e.g., `https://z4675bid1j.execute-api.eu-west-2.amazonaws.com/prod`
*/
public val invokeUrl: Output
get() = javaResource.invokeUrl().applyValue({ args0 -> args0 })
/**
* REST API identifier.
*/
public val restApi: Output
get() = javaResource.restApi().applyValue({ args0 -> args0 })
/**
* Description to set on the stage managed by the `stage_name` argument.
*/
public val stageDescription: Output?
get() = javaResource.stageDescription().applyValue({ args0 ->
args0.map({ args0 ->
args0
}).orElse(null)
})
/**
* Name of the stage to create with this deployment. If the specified stage already exists, it will be updated to point to the new deployment. We recommend using the `aws.apigateway.Stage` resource instead to manage stages.
*/
public val stageName: Output?
get() = javaResource.stageName().applyValue({ args0 -> args0.map({ args0 -> args0 }).orElse(null) })
/**
* Map of arbitrary keys and values that, when changed, will trigger a redeployment.
*/
public val triggers: Output