# IntegrationPattern

AWS Step Functions integrates with services directly in the Amazon States Language.

You can control these AWS services using service integration patterns:

- Source: [`aws-stepfunctions/lib/states/task-base.ts`](https://github.com/aws/aws-cdk/blob/v2.275.0/packages/aws-cdk-lib/aws-stepfunctions/lib/states/task-base.ts#L391)

## Example

```ts
import * as codebuild from 'aws-cdk-lib/aws-codebuild';

const codebuildProject = new codebuild.Project(this, 'Project', {
  projectName: 'MyTestProject',
  buildSpec: codebuild.BuildSpec.fromObject({
    version: '0.2',
    phases: {
      build: {
        commands: [
          'echo "Hello, CodeBuild!"',
        ],
      },
    },
  }),
});

const task = new tasks.CodeBuildStartBuild(this, 'Task', {
  project: codebuildProject,
  integrationPattern: sfn.IntegrationPattern.RUN_JOB,
  environmentVariablesOverride: {
    ZONE: {
      type: codebuild.BuildEnvironmentVariableType.PLAINTEXT,
      value: sfn.JsonPath.stringAt('$.envVariables.zone'),
    },
  },
});
```

## Members

| Member | Description |
| --- | --- |
| `REQUEST_RESPONSE` | Step Functions will wait for an HTTP response and then progress to the next state. |
| `RUN_JOB` | Step Functions can wait for a request to complete before progressing to the next state. |
| `WAIT_FOR_TASK_TOKEN` | Callback tasks provide a way to pause a workflow until a task token is returned. |

## Referenced by

- [`TaskStateBaseOptions`](/v2/docs/aws-cdk-lib.aws_stepfunctions.TaskStateBaseOptions).integrationPattern
