# StepFunctionsExecutionIntegrationOptions

Options when configuring Step Functions synchronous integration with Rest API.

Extends: StepFunctionsExecutionIntegrationOptions
Extends: IntegrationOptions

- Source: [`aws-apigateway/lib/integrations/stepfunctions.ts`](https://github.com/aws/aws-cdk/blob/v2.274.0/packages/aws-cdk-lib/aws-apigateway/lib/integrations/stepfunctions.ts#L18)
- Type last changed: v2.104.0 · 2 Nov 2023

## Example

```ts
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import * as cdk from 'aws-cdk-lib';
import { aws_apigateway as apigateway } from 'aws-cdk-lib';
import { aws_iam as iam } from 'aws-cdk-lib';

declare const role: iam.Role;
declare const vpcLink: apigateway.VpcLink;
const stepFunctionsExecutionIntegrationOptions: apigateway.StepFunctionsExecutionIntegrationOptions = {
  authorizer: false,
  cacheKeyParameters: ['cacheKeyParameters'],
  cacheNamespace: 'cacheNamespace',
  connectionType: apigateway.ConnectionType.INTERNET,
  contentHandling: apigateway.ContentHandling.CONVERT_TO_BINARY,
  credentialsPassthrough: false,
  credentialsRole: role,
  headers: false,
  integrationResponses: [{
    statusCode: 'statusCode',

    // the properties below are optional
    contentHandling: apigateway.ContentHandling.CONVERT_TO_BINARY,
    responseParameters: {
      responseParametersKey: 'responseParameters',
    },
    responseTemplates: {
      responseTemplatesKey: 'responseTemplates',
    },
    selectionPattern: 'selectionPattern',
  }],
  passthroughBehavior: apigateway.PassthroughBehavior.WHEN_NO_MATCH,
  path: false,
  querystring: false,
  requestContext: {
    accountId: false,
    apiId: false,
    apiKey: false,
    authorizerPrincipalId: false,
    caller: false,
    cognitoAuthenticationProvider: false,
    cognitoAuthenticationType: false,
    cognitoIdentityId: false,
    cognitoIdentityPoolId: false,
    httpMethod: false,
    requestId: false,
    resourceId: false,
    resourcePath: false,
    sourceIp: false,
    stage: false,
    user: false,
    userAgent: false,
    userArn: false,
  },
  requestParameters: {
    requestParametersKey: 'requestParameters',
  },
  requestTemplates: {
    requestTemplatesKey: 'requestTemplates',
  },
  responseTransferMode: apigateway.ResponseTransferMode.BUFFERED,
  timeout: cdk.Duration.minutes(30),
  useDefaultMethodResponses: false,
  vpcLink: vpcLink,
};
```

## Properties

- `authorizer`: boolean = false — If the whole authorizer object, including custom context values should be in the execution input.

  The execution input will include a new key `authorizer`:

  {
    "body": {},
    "authorizer": {
      "key": "value"
    }
  }

- `cacheKeyParameters`: string[] — A list of request parameters whose values are to be cached.

  It determines
  request parameters that will make it into the cache key.

- `cacheNamespace`: string — An API-specific tag group of related cached parameters.

- `connectionType`: [ConnectionType](/cdk/api/v2/docs/aws-cdk-lib.aws_apigateway.ConnectionType.html) — The type of network connection to the integration endpoint.

  **Default:** ConnectionType.VPC_LINK if `vpcLink` property is configured; ConnectionType.Internet otherwise.

- `contentHandling`: [ContentHandling](/cdk/api/v2/docs/aws-cdk-lib.aws_apigateway.ContentHandling.html) — Specifies how to handle request payload content type conversions.

  **Default:** none if this property isn't defined, the request payload is passed through from the method request to the integration request without modification, provided that the `passthroughBehaviors` property is configured to support payload pass-through.

- `credentialsPassthrough`: boolean — Requires that the caller's identity be passed through from the request.

  **Default:** Caller identity is not passed through

- `credentialsRole`: [IRole](/cdk/api/v2/docs/aws-cdk-lib.aws_iam.IRole.html) — An IAM role that API Gateway assumes.

  **Default:** A role is not assumed

  Mutually exclusive with `credentialsPassThrough`.

- `headers`: boolean = false — Check if header is to be included inside the execution input.

  The execution input will include a new key `headers`:

  {
    "body": {},
    "headers": {
       "header1": "value",
       "header2": "value"
    }
  }

- `integrationResponses`: [IntegrationResponse](/cdk/api/v2/docs/aws-cdk-lib.aws_apigateway.IntegrationResponse.html)[] — The response that API Gateway provides after a method's backend completes processing a request.

  API Gateway intercepts the response from the
  backend so that you can control how API Gateway surfaces backend
  responses. For example, you can map the backend status codes to codes
  that you define.

- `passthroughBehavior`: [PassthroughBehavior](/cdk/api/v2/docs/aws-cdk-lib.aws_apigateway.PassthroughBehavior.html) — 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.

- `path`: boolean = true — Check if path is to be included inside the execution input.

  The execution input will include a new key `path`:

  {
    "body": {},
    "path": {
      "resourceName": "resourceValue"
    }
  }

- `querystring`: boolean = true — Check if querystring is to be included inside the execution input.

  The execution input will include a new key `queryString`:

  {
    "body": {},
    "querystring": {
      "key": "value"
    }
  }

- `requestContext`: [RequestContext](/cdk/api/v2/docs/aws-cdk-lib.aws_apigateway.RequestContext.html) — Which details of the incoming request must be passed onto the underlying state machine, such as, account id, user identity, request id, etc.

  **Default:** all parameters within request context will be set as false

  The execution input will include a new key `requestContext`:

  {
    "body": {},
    "requestContext": {
        "key": "value"
    }
  }

- `requestParameters`: { [key: string]: string } — The request parameters that API Gateway sends with the backend request.

  Specify request parameters as key-value pairs (string-to-string
  mappings), with a destination as the key and a source as the value.

  Specify the destination by using the following pattern
  integration.request.location.name, where location is querystring, path,
  or header, and name is a valid, unique parameter name.

  The source must be an existing method request parameter or a static
  value. You must enclose static values in single quotation marks and
  pre-encode these values based on their destination in the request.

- `requestTemplates`: { [key: string]: string } — A map of Apache Velocity templates that are applied on the request payload.

  The template that API Gateway uses is based on the value of the
  Content-Type header that's sent by the client. The content type value is
  the key, and the template is the value (specified as a string), such as
  the following snippet:

  ```
    { "application/json": "{ \"statusCode\": 200 }" }
  ```

- `responseTransferMode`: [ResponseTransferMode](/cdk/api/v2/docs/aws-cdk-lib.aws_apigateway.ResponseTransferMode.html) = ResponseTransferMode.BUFFERED — The response transfer mode for the integration.

  To enable response streaming, set this value to `ResponseTransferMode.STREAM`.

- `timeout`: [Duration](/cdk/api/v2/docs/aws-cdk-lib.Duration.html) = Duration.seconds(29) — The maximum amount of time an integration will run before it returns without a response.

  By default, the value must be between 50 milliseconds and 29 seconds.
  The upper bound can be increased for regional and private Rest APIs only,
  via a quota increase request for your account.
  This increase might require a reduction in your account-level throttle quota limit.

  See [Amazon API Gateway quotas](https://docs.aws.amazon.com/apigateway/latest/developerguide/limits.html) for more details.

- `useDefaultMethodResponses`: boolean = true — Whether to add default response models with 200, 400, and 500 status codes to the method.

- `vpcLink`: [IVpcLink](/cdk/api/v2/docs/aws-cdk-lib.aws_apigateway.IVpcLink.html) — The VpcLink used for the integration.

  Required if connectionType is VPC_LINK
