Skip to content

AWS::ApiGateway::Deployment

The AWS::ApiGateway::Deployment resource deploys an API Gateway RestApi resource to a stage so that clients can call the API over the internet.

Generated by cfn-typegen --out cfn_types AWS::ApiGateway::Deployment into cfn_types/apigateway.py:

# Generated by cfn-typegen from the CloudFormation registry schemas. Do not edit.
# fmt: off
# ruff: noqa
"""AWS::ApiGateway resources."""

from collections.abc import Mapping, Sequence
from typing import Any, Literal, NotRequired, Unpack
from typing_extensions import TypedDict
from cfn_typed.base import DeletionPolicy, DependsOn, ResourceAttrs, Tag, UpdateReplacePolicy, build
from cfn_typed.intrinsics import Expr


CONSTRAINTS:dict[str,Any]={
}


ATTRIBUTES:dict[str,Any]={"AWS::ApiGateway::Deployment":["DeploymentId","RestApiId"]}


RULES:dict[str,Any]={}
Nested types (8)

These are defined above the properties in the generated module.

class DeploymentCanarySetting(TypedDict, closed=True):
    'The ``CanarySetting`` property type specifies settings for the canary deployment in this stage.'
    StageVariableOverrides: NotRequired[Expr[Mapping[str, Expr[str]]]]
    PercentTraffic: NotRequired[Expr[float]]
    UseStageCache: NotRequired[Expr[bool]]


class DeploymentMethodSetting(TypedDict, closed=True):
    'The ``MethodSetting`` property type configures settings for all methods in a stage.'
    CacheTtlInSeconds: NotRequired[Expr[int]]
    LoggingLevel: NotRequired[Expr[str]]
    ResourcePath: NotRequired[Expr[str]]
    'The resource path for this method.'
    CacheDataEncrypted: NotRequired[Expr[bool]]
    DataTraceEnabled: NotRequired[Expr[bool]]
    ThrottlingBurstLimit: NotRequired[Expr[int]]
    CachingEnabled: NotRequired[Expr[bool]]
    MetricsEnabled: NotRequired[Expr[bool]]
    HttpMethod: NotRequired[Expr[str]]
    'The HTTP method.'
    ThrottlingRateLimit: NotRequired[Expr[float]]


class DeploymentAccessLogSetting(TypedDict, closed=True):
    'The ``AccessLogSetting`` property type specifies settings for logging access in this stage.'
    Format: NotRequired[Expr[str]]
    DestinationArn: NotRequired[Expr[str]]


class DeploymentStageDescription(TypedDict, closed=True):
    '``StageDescription`` is a property of the [AWS::ApiGateway::Deployment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewa...'
    CacheTtlInSeconds: NotRequired[Expr[int]]
    'The time-to-live (TTL) period, in seconds, that specifies how long API Gateway caches responses.'
    Description: NotRequired[Expr[str]]
    'A description of the purpose of the stage.'
    LoggingLevel: NotRequired[Expr[str]]
    'The logging level for this method.'
    CanarySetting: NotRequired[Expr[DeploymentCanarySetting]]
    'Specifies settings for the canary deployment in this stage.'
    ThrottlingRateLimit: NotRequired[Expr[float]]
    'The target request steady-state rate limit.'
    ClientCertificateId: NotRequired[Expr[str]]
    'The identifier of the client certificate that API Gateway uses to call your integration endpoints in the stage.'
    Variables: NotRequired[Expr[Mapping[str, Expr[str]]]]
    'A map that defines the stage variables.'
    DocumentationVersion: NotRequired[Expr[str]]
    'The version identifier of the API documentation snapshot.'
    CacheDataEncrypted: NotRequired[Expr[bool]]
    'Indicates whether the cached responses are encrypted.'
    DataTraceEnabled: NotRequired[Expr[bool]]
    'Indicates whether data trace logging is enabled for methods in the stage.'
    ThrottlingBurstLimit: NotRequired[Expr[int]]
    'The target request burst rate limit.'
    CachingEnabled: NotRequired[Expr[bool]]
    'Indicates whether responses are cached and returned for requests.'
    TracingEnabled: NotRequired[Expr[bool]]
    'Specifies whether active tracing with X-ray is enabled for this stage.'
    MethodSettings: NotRequired[Expr[Sequence[Expr[DeploymentMethodSetting]]]]
    "Configures settings for all of the stage's methods."
    AccessLogSetting: NotRequired[Expr[DeploymentAccessLogSetting]]
    'Specifies settings for logging access in this stage.'
    CacheClusterSize: NotRequired[Expr[str]]
    "The size of the stage's cache cluster."
    MetricsEnabled: NotRequired[Expr[bool]]
    'Indicates whether Amazon CloudWatch metrics are enabled for methods in the stage.'
    Tags: NotRequired[Expr[Sequence[Expr[Tag]]]]
    'An array of arbitrary tags (key-value pairs) to associate with the stage.'
    CacheClusterEnabled: NotRequired[Expr[bool]]


class DeploymentDeploymentCanarySettings(TypedDict, closed=True):
    'The ``DeploymentCanarySettings`` property type specifies settings for the canary deployment.'
    StageVariableOverrides: NotRequired[Expr[Mapping[str, Expr[str]]]]
    PercentTraffic: NotRequired[Expr[float]]
    UseStageCache: NotRequired[Expr[bool]]


class DeploymentProps(TypedDict, closed=True):
    'The ``AWS::ApiGateway::Deployment`` resource deploys an API Gateway ``RestApi`` resource to a stage so that clients can call the API over the internet.'
    Description: NotRequired[Expr[str]]
    StageDescription: NotRequired[Expr[DeploymentStageDescription]]
    'The description of the Stage resource for the Deployment resource to create.'
    StageName: NotRequired[Expr[str]]
    RestApiId: Expr[str]
    DeploymentCanarySettings: NotRequired[Expr[DeploymentDeploymentCanarySettings]]


class Deployment(ResourceAttrs):
    'The ``AWS::ApiGateway::Deployment`` resource deploys an API Gateway ``RestApi`` resource to a stage so that clients can call the API over the internet.'
    Type: Literal['AWS::ApiGateway::Deployment']
    Properties: DeploymentProps


def deployment(
    *,
    depends_on: DependsOn | None = None,
    deletion_policy: DeletionPolicy | None = None,
    update_replace_policy: UpdateReplacePolicy | None = None,
    condition: str | None = None,
    metadata: dict[str, Any] | None = None,
    **props: Unpack[DeploymentProps],
) -> Deployment:
    return build('AWS::ApiGateway::Deployment', props, depends_on, deletion_policy, update_replace_policy, condition, metadata)

Attributes

Read-only values for get_att(logical_id, attribute). They are not accepted as inputs.

  • DeploymentId