> **Experimental**
>
> `@aws-cdk/aws-kinesisanalytics-flink-alpha` is an [**experimental**](/stability) (alpha) package: its API may change in any release, without a major version bump.
# ApplicationCodeConfig

The return type of `ApplicationCode.bind`. This represents CloudFormation configuration and an s3 bucket holding the Flink application JAR file.

- Stability: [Experimental](/cdk/api/stability.html)
- Source: [`lib/application-code.ts`](https://github.com/aws/aws-cdk/blob/v2.275.0-alpha.0/packages/@aws-cdk/aws-kinesisanalytics-flink-alpha/lib/application-code.ts#L11)

## Example

```ts
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import * as kinesisanalytics_flink_alpha from '@aws-cdk/aws-kinesisanalytics-flink-alpha';
import { aws_s3 as s3 } from 'aws-cdk-lib';

declare const bucket: s3.Bucket;
const applicationCodeConfig: kinesisanalytics_flink_alpha.ApplicationCodeConfig = {
  applicationCodeConfigurationProperty: {
    applicationCodeConfiguration: {
      codeContent: {
        s3ContentLocation: {
          bucketArn: 'bucketArn',
          fileKey: 'fileKey',

          // the properties below are optional
          objectVersion: 'objectVersion',
        },
        textContent: 'textContent',
        zipFileContent: 'zipFileContent',
      },
      codeContentType: 'codeContentType',
    },
    applicationEncryptionConfiguration: {
      keyType: 'keyType',

      // the properties below are optional
      keyId: 'keyId',
    },
    applicationSnapshotConfiguration: {
      snapshotsEnabled: false,
    },
    applicationSystemRollbackConfiguration: {
      rollbackEnabled: false,
    },
    environmentProperties: {
      propertyGroups: [{
        propertyGroupId: 'propertyGroupId',
        propertyMap: {
          propertyMapKey: 'propertyMap',
        },
      }],
    },
    flinkApplicationConfiguration: {
      checkpointConfiguration: {
        configurationType: 'configurationType',

        // the properties below are optional
        checkpointingEnabled: false,
        checkpointInterval: 123,
        minPauseBetweenCheckpoints: 123,
      },
      monitoringConfiguration: {
        configurationType: 'configurationType',

        // the properties below are optional
        logLevel: 'logLevel',
        metricsLevel: 'metricsLevel',
      },
      parallelismConfiguration: {
        configurationType: 'configurationType',

        // the properties below are optional
        autoScalingEnabled: false,
        parallelism: 123,
        parallelismPerKpu: 123,
      },
    },
    sqlApplicationConfiguration: {
      inputs: [{
        inputSchema: {
          recordColumns: [{
            name: 'name',
            sqlType: 'sqlType',

            // the properties below are optional
            mapping: 'mapping',
          }],
          recordFormat: {
            recordFormatType: 'recordFormatType',

            // the properties below are optional
            mappingParameters: {
              csvMappingParameters: {
                recordColumnDelimiter: 'recordColumnDelimiter',
                recordRowDelimiter: 'recordRowDelimiter',
              },
              jsonMappingParameters: {
                recordRowPath: 'recordRowPath',
              },
            },
          },

          // the properties below are optional
          recordEncoding: 'recordEncoding',
        },
        namePrefix: 'namePrefix',

        // the properties below are optional
        inputParallelism: {
          count: 123,
        },
        inputProcessingConfiguration: {
          inputLambdaProcessor: {
            resourceArn: 'resourceArn',
          },
        },
        kinesisFirehoseInput: {
          resourceArn: 'resourceArn',
        },
        kinesisStreamsInput: {
          resourceArn: 'resourceArn',
        },
      }],
    },
    vpcConfigurations: [{
      securityGroupIds: ['securityGroupIds'],
      subnetIds: ['subnetIds'],
    }],
    zeppelinApplicationConfiguration: {
      catalogConfiguration: {
        glueDataCatalogConfiguration: {
          databaseArn: 'databaseArn',
        },
      },
      customArtifactsConfiguration: [{
        artifactType: 'artifactType',

        // the properties below are optional
        mavenReference: {
          artifactId: 'artifactId',
          groupId: 'groupId',
          version: 'version',
        },
        s3ContentLocation: {
          bucketArn: 'bucketArn',
          fileKey: 'fileKey',

          // the properties below are optional
          objectVersion: 'objectVersion',
        },
      }],
      deployAsApplicationConfiguration: {
        s3ContentLocation: {
          bucketArn: 'bucketArn',

          // the properties below are optional
          basePath: 'basePath',
        },
      },
      monitoringConfiguration: {
        logLevel: 'logLevel',
      },
    },
  },
  bucket: bucket,
};
```

## Properties

- `applicationCodeConfigurationProperty`: [CfnApplicationV2.ApplicationConfigurationProperty](/cdk/api/v2/docs/aws-cdk-lib.aws_kinesisanalytics.CfnApplicationV2.ApplicationConfigurationProperty.html) (required) — Low-level Cloudformation ApplicationConfigurationProperty.

- `bucket`: [IBucket](/cdk/api/v2/docs/aws-cdk-lib.aws_s3.IBucket.html) (required) — S3 Bucket that stores the Flink application code.
