Class Deployment

java.lang.Object
software.amazon.jsii.JsiiObject
software.constructs.Construct
software.amazon.awscdk.Resource
software.amazon.awscdk.services.apigateway.Deployment
All Implemented Interfaces:
IResource, software.amazon.jsii.JsiiSerializable, software.constructs.IConstruct, software.constructs.IDependable

@Generated(value="jsii-pacmak/1.94.0 (build b380f01)", date="2024-03-14T22:21:49.490Z") @Stability(Stable) public class Deployment extends Resource
A Deployment of a REST API.

An immutable representation of a RestApi resource that can be called by users using Stages. A deployment must be associated with a Stage for it to be callable over the Internet.

Normally, you don't need to define deployments manually. The RestApi construct manages a Deployment resource that represents the latest model. It can be accessed through restApi.latestDeployment (unless deploy: false is set when defining the RestApi).

If you manually define this resource, you will need to know that since deployments are immutable, as long as the resource's logical ID doesn't change, the deployment will represent the snapshot in time in which the resource was created. This means that if you modify the RestApi model (i.e. add methods or resources), these changes will not be reflected unless a new deployment resource is created.

To achieve this behavior, the method addToLogicalId(data) can be used to augment the logical ID generated for the deployment resource such that it will include arbitrary data. This is done automatically for the restApi.latestDeployment deployment.

Furthermore, since a deployment does not reference any of the REST API resources and methods, CloudFormation will likely provision it before these resources are created, which means that it will represent a "half-baked" model. Use the node.addDependency(dep) method to circumvent that. This is done automatically for the restApi.latestDeployment deployment.

Example:

 // production stage
 LogGroup prodLogGroup = new LogGroup(this, "PrdLogs");
 RestApi api = RestApi.Builder.create(this, "books")
         .deployOptions(StageOptions.builder()
                 .accessLogDestination(new LogGroupLogDestination(prodLogGroup))
                 .accessLogFormat(AccessLogFormat.jsonWithStandardFields())
                 .build())
         .build();
 Deployment deployment = Deployment.Builder.create(this, "Deployment").api(api).build();
 // development stage
 LogGroup devLogGroup = new LogGroup(this, "DevLogs");
 Stage.Builder.create(this, "dev")
         .deployment(deployment)
         .accessLogDestination(new LogGroupLogDestination(devLogGroup))
         .accessLogFormat(AccessLogFormat.jsonWithStandardFields(JsonWithStandardFieldProps.builder()
                 .caller(false)
                 .httpMethod(true)
                 .ip(true)
                 .protocol(true)
                 .requestTime(true)
                 .resourcePath(true)
                 .responseLength(true)
                 .status(true)
                 .user(true)
                 .build()))
         .build();
 
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static final class 
    A fluent builder for Deployment.

    Nested classes/interfaces inherited from class software.amazon.jsii.JsiiObject

    software.amazon.jsii.JsiiObject.InitializationMode

    Nested classes/interfaces inherited from interface software.constructs.IConstruct

    software.constructs.IConstruct.Jsii$Default

    Nested classes/interfaces inherited from interface software.amazon.awscdk.IResource

    IResource.Jsii$Default
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    Deployment(software.amazon.jsii.JsiiObject.InitializationMode initializationMode)
     
    protected
    Deployment(software.amazon.jsii.JsiiObjectRef objRef)
     
     
    Deployment(software.constructs.Construct scope, String id, DeploymentProps props)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Adds a component to the hash that determines this Deployment resource's logical ID.
     
     

    Methods inherited from class software.constructs.Construct

    getNode, isConstruct, toString

    Methods inherited from class software.amazon.jsii.JsiiObject

    jsiiAsyncCall, jsiiAsyncCall, jsiiCall, jsiiCall, jsiiGet, jsiiGet, jsiiSet, jsiiStaticCall, jsiiStaticCall, jsiiStaticGet, jsiiStaticGet, jsiiStaticSet, jsiiStaticSet

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

    Methods inherited from interface software.constructs.IConstruct

    getNode

    Methods inherited from interface software.amazon.jsii.JsiiSerializable

    $jsii$toJson
  • Constructor Details

    • Deployment

      protected Deployment(software.amazon.jsii.JsiiObjectRef objRef)
    • Deployment

      protected Deployment(software.amazon.jsii.JsiiObject.InitializationMode initializationMode)
    • Deployment

      @Stability(Stable) public Deployment(@NotNull software.constructs.Construct scope, @NotNull String id, @NotNull DeploymentProps props)
      Parameters:
      scope - This parameter is required.
      id - This parameter is required.
      props - This parameter is required.
  • Method Details

    • addToLogicalId

      @Stability(Stable) public void addToLogicalId(@NotNull Object data)
      Adds a component to the hash that determines this Deployment resource's logical ID.

      This should be called by constructs of the API Gateway model that want to invalidate the deployment when their settings change. The component will be resolve()ed during synthesis so tokens are welcome.

      Parameters:
      data - This parameter is required.
    • getApi

      @Stability(Stable) @NotNull public IRestApi getApi()
    • getDeploymentId

      @Stability(Stable) @NotNull public String getDeploymentId()