Class CfnRestApi

java.lang.Object
software.amazon.jsii.JsiiObject
All Implemented Interfaces:
IConstruct, IDependable, IInspectable, software.amazon.jsii.JsiiSerializable, software.constructs.IConstruct

@Generated(value="jsii-pacmak/1.84.0 (build 5404dcf)", date="2023-06-19T16:30:44.861Z") @Stability(Stable) public class CfnRestApi extends CfnResource implements IInspectable
A CloudFormation AWS::ApiGateway::RestApi.

The AWS::ApiGateway::RestApi resource creates a REST API. For more information, see restapi:create in the Amazon API Gateway REST API Reference .

On January 1, 2016, the Swagger Specification was donated to the OpenAPI initiative , becoming the foundation of the OpenAPI Specification.

Example:

 // The code below shows an example of how to instantiate this type.
 // The values are placeholders you should change.
 import software.amazon.awscdk.services.apigateway.*;
 Object body;
 Object policy;
 CfnRestApi cfnRestApi = CfnRestApi.Builder.create(this, "MyCfnRestApi")
         .apiKeySourceType("apiKeySourceType")
         .binaryMediaTypes(List.of("binaryMediaTypes"))
         .body(body)
         .bodyS3Location(S3LocationProperty.builder()
                 .bucket("bucket")
                 .eTag("eTag")
                 .key("key")
                 .version("version")
                 .build())
         .cloneFrom("cloneFrom")
         .description("description")
         .disableExecuteApiEndpoint(false)
         .endpointConfiguration(EndpointConfigurationProperty.builder()
                 .types(List.of("types"))
                 .vpcEndpointIds(List.of("vpcEndpointIds"))
                 .build())
         .failOnWarnings(false)
         .minimumCompressionSize(123)
         .mode("mode")
         .name("name")
         .parameters(Map.of(
                 "parametersKey", "parameters"))
         .policy(policy)
         .tags(List.of(CfnTag.builder()
                 .key("key")
                 .value("value")
                 .build()))
         .build();
 
  • Field Details

    • CFN_RESOURCE_TYPE_NAME

      @Stability(Stable) public static final String CFN_RESOURCE_TYPE_NAME
      The CloudFormation resource type name for this resource class.
  • Constructor Details

    • CfnRestApi

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

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

      @Stability(Stable) public CfnRestApi(@NotNull Construct scope, @NotNull String id, @Nullable CfnRestApiProps props)
      Create a new AWS::ApiGateway::RestApi.

      Parameters:
      scope -
      • scope in which this resource is defined.
      This parameter is required.
      id -
      • scoped id of the resource.
      This parameter is required.
      props -
      • resource properties.
    • CfnRestApi

      @Stability(Stable) public CfnRestApi(@NotNull Construct scope, @NotNull String id)
      Create a new AWS::ApiGateway::RestApi.

      Parameters:
      scope -
      • scope in which this resource is defined.
      This parameter is required.
      id -
      • scoped id of the resource.
      This parameter is required.
  • Method Details

    • inspect

      @Stability(Stable) public void inspect(@NotNull TreeInspector inspector)
      Examines the CloudFormation resource and discloses attributes.

      Specified by:
      inspect in interface IInspectable
      Parameters:
      inspector -
      • tree inspector to collect and process attributes.
      This parameter is required.
    • renderProperties

      @Stability(Stable) @NotNull protected Map<String,Object> renderProperties(@NotNull Map<String,Object> props)
      Overrides:
      renderProperties in class CfnResource
      Parameters:
      props - This parameter is required.
    • getAttrRestApiId

      @Stability(Stable) @NotNull public String getAttrRestApiId()
      The string identifier of the associated RestApi.
    • getAttrRootResourceId

      @Stability(Stable) @NotNull public String getAttrRootResourceId()
      The root resource ID for a RestApi resource, such as a0bc123d4e .
    • getCfnProperties

      @Stability(Stable) @NotNull protected Map<String,Object> getCfnProperties()
      Overrides:
      getCfnProperties in class CfnResource
    • getTags

      @Stability(Stable) @NotNull public TagManager getTags()
      The key-value map of strings.

      The valid character set is [a-zA-Z+-=._:/]. The tag key can be up to 128 characters and must not start with aws: . The tag value can be up to 256 characters.

    • getBody

      @Stability(Stable) @NotNull public Object getBody()
      An OpenAPI specification that defines a set of RESTful APIs in JSON format.

      For YAML templates, you can also provide the specification in YAML format.

    • setBody

      @Stability(Stable) public void setBody(@NotNull Object value)
      An OpenAPI specification that defines a set of RESTful APIs in JSON format.

      For YAML templates, you can also provide the specification in YAML format.

    • getPolicy

      @Stability(Stable) @NotNull public Object getPolicy()
      A policy document that contains the permissions for the RestApi resource.

      To set the ARN for the policy, use the !Join intrinsic function with "" as delimiter and values of "execute-api:/" and "*" .

    • setPolicy

      @Stability(Stable) public void setPolicy(@NotNull Object value)
      A policy document that contains the permissions for the RestApi resource.

      To set the ARN for the policy, use the !Join intrinsic function with "" as delimiter and values of "execute-api:/" and "*" .

    • getApiKeySourceType

      @Stability(Stable) @Nullable public String getApiKeySourceType()
      The source of the API key for metering requests according to a usage plan.

      Valid values are: HEADER to read the API key from the X-API-Key header of a request. AUTHORIZER to read the API key from the UsageIdentifierKey from a custom authorizer.

    • setApiKeySourceType

      @Stability(Stable) public void setApiKeySourceType(@Nullable String value)
      The source of the API key for metering requests according to a usage plan.

      Valid values are: HEADER to read the API key from the X-API-Key header of a request. AUTHORIZER to read the API key from the UsageIdentifierKey from a custom authorizer.

    • getBinaryMediaTypes

      @Stability(Stable) @Nullable public List<String> getBinaryMediaTypes()
      The list of binary media types supported by the RestApi.

      By default, the RestApi supports only UTF-8-encoded text payloads.

    • setBinaryMediaTypes

      @Stability(Stable) public void setBinaryMediaTypes(@Nullable List<String> value)
      The list of binary media types supported by the RestApi.

      By default, the RestApi supports only UTF-8-encoded text payloads.

    • getBodyS3Location

      @Stability(Stable) @Nullable public Object getBodyS3Location()
      The Amazon Simple Storage Service (Amazon S3) location that points to an OpenAPI file, which defines a set of RESTful APIs in JSON or YAML format.
    • setBodyS3Location

      @Stability(Stable) public void setBodyS3Location(@Nullable IResolvable value)
      The Amazon Simple Storage Service (Amazon S3) location that points to an OpenAPI file, which defines a set of RESTful APIs in JSON or YAML format.
    • setBodyS3Location

      @Stability(Stable) public void setBodyS3Location(@Nullable CfnRestApi.S3LocationProperty value)
      The Amazon Simple Storage Service (Amazon S3) location that points to an OpenAPI file, which defines a set of RESTful APIs in JSON or YAML format.
    • getCloneFrom

      @Stability(Stable) @Nullable public String getCloneFrom()
      The ID of the RestApi that you want to clone from.
    • setCloneFrom

      @Stability(Stable) public void setCloneFrom(@Nullable String value)
      The ID of the RestApi that you want to clone from.
    • getDescription

      @Stability(Stable) @Nullable public String getDescription()
      The description of the RestApi.
    • setDescription

      @Stability(Stable) public void setDescription(@Nullable String value)
      The description of the RestApi.
    • getDisableExecuteApiEndpoint

      @Stability(Stable) @Nullable public Object getDisableExecuteApiEndpoint()
      Specifies whether clients can invoke your API by using the default execute-api endpoint.

      By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint

    • setDisableExecuteApiEndpoint

      @Stability(Stable) public void setDisableExecuteApiEndpoint(@Nullable Boolean value)
      Specifies whether clients can invoke your API by using the default execute-api endpoint.

      By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint

    • setDisableExecuteApiEndpoint

      @Stability(Stable) public void setDisableExecuteApiEndpoint(@Nullable IResolvable value)
      Specifies whether clients can invoke your API by using the default execute-api endpoint.

      By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint

    • getEndpointConfiguration

      @Stability(Stable) @Nullable public Object getEndpointConfiguration()
      A list of the endpoint types of the API.

      Use this property when creating an API. When importing an existing API, specify the endpoint configuration types using the Parameters property.

    • setEndpointConfiguration

      @Stability(Stable) public void setEndpointConfiguration(@Nullable IResolvable value)
      A list of the endpoint types of the API.

      Use this property when creating an API. When importing an existing API, specify the endpoint configuration types using the Parameters property.

    • setEndpointConfiguration

      @Stability(Stable) public void setEndpointConfiguration(@Nullable CfnRestApi.EndpointConfigurationProperty value)
      A list of the endpoint types of the API.

      Use this property when creating an API. When importing an existing API, specify the endpoint configuration types using the Parameters property.

    • getFailOnWarnings

      @Stability(Stable) @Nullable public Object getFailOnWarnings()
      A query parameter to indicate whether to rollback the API update ( true ) or not ( false ) when a warning is encountered.

      The default value is false .

    • setFailOnWarnings

      @Stability(Stable) public void setFailOnWarnings(@Nullable Boolean value)
      A query parameter to indicate whether to rollback the API update ( true ) or not ( false ) when a warning is encountered.

      The default value is false .

    • setFailOnWarnings

      @Stability(Stable) public void setFailOnWarnings(@Nullable IResolvable value)
      A query parameter to indicate whether to rollback the API update ( true ) or not ( false ) when a warning is encountered.

      The default value is false .

    • getMinimumCompressionSize

      @Stability(Stable) @Nullable public Number getMinimumCompressionSize()
      A nullable integer that is used to enable compression (with non-negative between 0 and 10485760 (10M) bytes, inclusive) or disable compression (with a null value) on an API.

      When compression is enabled, compression or decompression is not applied on the payload if the payload size is smaller than this value. Setting it to zero allows compression for any payload size.

    • setMinimumCompressionSize

      @Stability(Stable) public void setMinimumCompressionSize(@Nullable Number value)
      A nullable integer that is used to enable compression (with non-negative between 0 and 10485760 (10M) bytes, inclusive) or disable compression (with a null value) on an API.

      When compression is enabled, compression or decompression is not applied on the payload if the payload size is smaller than this value. Setting it to zero allows compression for any payload size.

    • getMode

      @Stability(Stable) @Nullable public String getMode()
      This property applies only when you use OpenAPI to define your REST API.

      The Mode determines how API Gateway handles resource updates.

      Valid values are overwrite or merge .

      For overwrite , the new API definition replaces the existing one. The existing API identifier remains unchanged.

      For merge , the new API definition is merged with the existing API.

      If you don't specify this property, a default value is chosen. For REST APIs created before March 29, 2021, the default is overwrite . For REST APIs created after March 29, 2021, the new API definition takes precedence, but any container types such as endpoint configurations and binary media types are merged with the existing API.

      Use the default mode to define top-level RestApi properties in addition to using OpenAPI. Generally, it's preferred to use API Gateway's OpenAPI extensions to model these properties.

    • setMode

      @Stability(Stable) public void setMode(@Nullable String value)
      This property applies only when you use OpenAPI to define your REST API.

      The Mode determines how API Gateway handles resource updates.

      Valid values are overwrite or merge .

      For overwrite , the new API definition replaces the existing one. The existing API identifier remains unchanged.

      For merge , the new API definition is merged with the existing API.

      If you don't specify this property, a default value is chosen. For REST APIs created before March 29, 2021, the default is overwrite . For REST APIs created after March 29, 2021, the new API definition takes precedence, but any container types such as endpoint configurations and binary media types are merged with the existing API.

      Use the default mode to define top-level RestApi properties in addition to using OpenAPI. Generally, it's preferred to use API Gateway's OpenAPI extensions to model these properties.

    • getName

      @Stability(Stable) @Nullable public String getName()
      The name of the RestApi.

      A name is required if the REST API is not based on an OpenAPI specification.

    • setName

      @Stability(Stable) public void setName(@Nullable String value)
      The name of the RestApi.

      A name is required if the REST API is not based on an OpenAPI specification.

    • getParameters

      @Stability(Stable) @Nullable public Object getParameters()
      Custom header parameters as part of the request.

      For example, to exclude DocumentationParts from an imported API, set ignore=documentation as a parameters value, as in the AWS CLI command of aws apigateway import-rest-api --parameters ignore=documentation --body 'file:///path/to/imported-api-body.json' .

    • setParameters

      @Stability(Stable) public void setParameters(@Nullable IResolvable value)
      Custom header parameters as part of the request.

      For example, to exclude DocumentationParts from an imported API, set ignore=documentation as a parameters value, as in the AWS CLI command of aws apigateway import-rest-api --parameters ignore=documentation --body 'file:///path/to/imported-api-body.json' .

    • setParameters

      @Stability(Stable) public void setParameters(@Nullable Map<String,String> value)
      Custom header parameters as part of the request.

      For example, to exclude DocumentationParts from an imported API, set ignore=documentation as a parameters value, as in the AWS CLI command of aws apigateway import-rest-api --parameters ignore=documentation --body 'file:///path/to/imported-api-body.json' .