# ModelOptions

- Source: [`aws-apigateway/lib/model.ts`](https://github.com/aws/aws-cdk/blob/v2.275.0/packages/aws-cdk-lib/aws-apigateway/lib/model.ts#L65)

## Example

```ts
declare const api: apigateway.RestApi;

// We define the JSON Schema for the transformed valid response
const responseModel = api.addModel('ResponseModel', {
  contentType: 'application/json',
  modelName: 'ResponseModel',
  schema: {
    schema: apigateway.JsonSchemaVersion.DRAFT4,
    title: 'pollResponse',
    type: apigateway.JsonSchemaType.OBJECT,
    properties: {
      state: { type: apigateway.JsonSchemaType.STRING },
      greeting: { type: apigateway.JsonSchemaType.STRING }
    }
  }
});

// We define the JSON Schema for the transformed error response
const errorResponseModel = api.addModel('ErrorResponseModel', {
  contentType: 'application/json',
  modelName: 'ErrorResponseModel',
  schema: {
    schema: apigateway.JsonSchemaVersion.DRAFT4,
    title: 'errorResponse',
    type: apigateway.JsonSchemaType.OBJECT,
    properties: {
      state: { type: apigateway.JsonSchemaType.STRING },
      message: { type: apigateway.JsonSchemaType.STRING }
    }
  }
});
```

## Properties

- `contentType`: string = 'application/json' — The content type for the model.

  You can also force a
  content type in the request or response model mapping.

- `description`: string = None — A description that identifies this model.

- `modelName`: string — A name for the model.

  **Default:** <auto> If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the model name. For more information, see Name Type.

  Important
   If you specify a name, you cannot perform updates that
   require replacement of this resource. You can perform
   updates that require no or some interruption. If you
   must replace the resource, specify a new name.

- `schema`: [JsonSchema](/cdk/api/v2/docs/aws-cdk-lib.aws_apigateway.JsonSchema.html) (required) — The schema to use to transform data to one or more output formats.

  Specify null ({}) if you don't want to specify a schema.
