# Definition

AppSync definition.

Specify how you want to define your AppSync API.

- Source: [`aws-appsync/lib/graphqlapi.ts`](https://github.com/aws/aws-cdk/blob/v2.274.0/packages/aws-cdk-lib/aws-appsync/lib/graphqlapi.ts#L372)
- Type last changed: v2.94.0 · 1 Sep 2023

## Example

```ts
const schema = new appsync.SchemaFile({ filePath: 'mySchemaFile' })
new appsync.GraphqlApi(this, 'api', {
  name: 'myApi',
  definition: appsync.Definition.fromSchema(schema),
  enhancedMetricsConfig: {
    dataSourceLevelMetricsBehavior: appsync.DataSourceLevelMetricsBehavior.FULL_REQUEST_DATA_SOURCE_METRICS,
    operationLevelMetricsConfig: appsync.OperationLevelMetricsConfig.ENABLED,
    resolverLevelMetricsBehavior: appsync.ResolverLevelMetricsBehavior.FULL_REQUEST_RESOLVER_METRICS,
  },
});
```

## Initializer

```ts
new Definition()
```

## Properties

- `schema`: [ISchema](/cdk/api/v2/docs/aws-cdk-lib.aws_appsync.ISchema.html) — Schema, when AppSync API is created from schema file.

- `sourceApiOptions`: [SourceApiOptions](/cdk/api/v2/docs/aws-cdk-lib.aws_appsync.SourceApiOptions.html) — Source APIs for Merged API.

## Methods

- `fromFile(filePath: string): Definition // chainable` (static) — Schema from file, allows schema definition through schema.graphql file.

  **Parameters**

  - `filePath` — the file path of the schema file.

  **Returns:** Definition with schema from file

- `fromSchema(schema: ISchema): Definition // chainable` (static) — Schema from schema object.

  **Parameters**

  - `schema` — SchemaFile.fromAsset(filePath: string) allows schema definition through schema.graphql file.

  **Returns:** Definition with schema from file

- `fromSourceApis(sourceApiOptions: SourceApiOptions): Definition // chainable` (static) — Schema from existing AppSync APIs - used for creating a AppSync Merged API.

  **Parameters**

  - `sourceApiOptions` — Configuration for AppSync Merged API.

  **Returns:** Definition with for AppSync Merged API
