# TypeDeclaration Schema

```txt
https://amazonalexa.com/ask/2020/12/TypeDeclaration
```

Represents a type declaration.

| Abstract            | Extensible | Status         | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In                                                                        |
| :------------------ | :--------- | :------------- | :----------- | :---------------- | :-------------------- | :------------------ | :-------------------------------------------------------------------------------- |
| Can be instantiated | No         | Unknown status | No           | Forbidden         | Forbidden             | none                | [TypeDeclaration.json](../../schemas/TypeDeclaration.json "open original schema") |

## TypeDeclaration Type

`object` ([TypeDeclaration](typedeclaration.md))

# TypeDeclaration Properties

| Property                              | Type          | Required | Nullable       | Defined by                                                                                                                                                                    |
| :------------------------------------ | :------------ | :------- | :------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [kind](#kind)                         | Not specified | Required | cannot be null | [TypeDeclaration](typedeclaration-properties-kind.md "https://amazonalexa.com/ask/2020/12/TypeDeclaration#/properties/kind")                                                  |
| [name](#name)                         | `string`      | Required | cannot be null | [TypeDeclaration](actiondeclaration-properties-qualifiedname.md "https://amazonalexa.com/ask/2020/12/QualifiedName#/properties/name")                                         |
| [extensions](#extensions)             | `array`       | Optional | cannot be null | [TypeDeclaration](typedeclaration-properties-extensions.md "https://amazonalexa.com/ask/2020/12/TypeDeclaration#/properties/extensions")                                      |
| [genericArguments](#genericarguments) | `array`       | Optional | cannot be null | [TypeDeclaration](actiondeclaration-properties-genericargumentsdeclaration.md "https://amazonalexa.com/ask/2020/12/GenericArgumentsDeclaration#/properties/genericArguments") |
| [properties](#properties)             | `array`       | Optional | cannot be null | [TypeDeclaration](typedeclaration-properties-properties.md "https://amazonalexa.com/ask/2020/12/TypeDeclaration#/properties/properties")                                      |
| [annotations](#annotations)           | `array`       | Optional | cannot be null | [TypeDeclaration](typedeclaration-properties-annotations.md "https://amazonalexa.com/ask/2020/12/TypeDeclaration#/properties/annotations")                                    |

## kind

The expression's identifier.

`kind`

*   is required

*   Type: unknown ([kind](typedeclaration-properties-kind.md))

*   cannot be null

*   defined in: [TypeDeclaration](typedeclaration-properties-kind.md "https://amazonalexa.com/ask/2020/12/TypeDeclaration#/properties/kind")

### kind Type

unknown ([kind](typedeclaration-properties-kind.md))

### kind Constraints

**constant**: the value of this property must be equal to:

```json
"TypeDeclaration"
```

## name

A qualified name

`name`

*   is required

*   Type: `string` ([QualifiedName](actiondeclaration-properties-qualifiedname.md))

*   cannot be null

*   defined in: [TypeDeclaration](actiondeclaration-properties-qualifiedname.md "https://amazonalexa.com/ask/2020/12/QualifiedName#/properties/name")

### name Type

`string` ([QualifiedName](actiondeclaration-properties-qualifiedname.md))

### name Constraints

**maximum length**: the maximum number of characters for this string is: `1024`

**pattern**: the string must match the following regular expression:&#x20;

```regexp
^[A-Za-z][A-Za-z0-9_]*(\.((_[A-Za-z0-9][A-Za-z0-9_]*)|([A-Za-z][A-Za-z0-9_]*)))*$
```

[try pattern](https://regexr.com/?expression=%5E%5BA-Za-z%5D%5BA-Za-z0-9_%5D*\(%5C.\(\(_%5BA-Za-z0-9%5D%5BA-Za-z0-9_%5D*\)%7C\(%5BA-Za-z%5D%5BA-Za-z0-9_%5D*\)\)\)*%24 "try regular expression with regexr.com")

### name Examples

```json
"com.amazon.alexa.schema.String"
```

```json
"foo"
```

## extensions

The set of types being extended.

`extensions`

*   is optional

*   Type: `object[]` ([TypeReference](actiondeclaration-properties-typereference.md))

*   cannot be null

*   defined in: [TypeDeclaration](typedeclaration-properties-extensions.md "https://amazonalexa.com/ask/2020/12/TypeDeclaration#/properties/extensions")

### extensions Type

`object[]` ([TypeReference](actiondeclaration-properties-typereference.md))

## genericArguments

A set of generic arguments for a declaration.

`genericArguments`

*   is optional

*   Type: `object[]` ([Details](genericargumentsdeclaration-items.md))

*   cannot be null

*   defined in: [TypeDeclaration](actiondeclaration-properties-genericargumentsdeclaration.md "https://amazonalexa.com/ask/2020/12/GenericArgumentsDeclaration#/properties/genericArguments")

### genericArguments Type

`object[]` ([Details](genericargumentsdeclaration-items.md))

### genericArguments Constraints

**unique items**: all items in this array must be unique. Duplicates are not allowed.

## properties

The type's properties. Each item represents a property with a name and a type.

`properties`

*   is optional

*   Type: `object[]` ([Details](typedeclaration-properties-properties-items.md))

*   cannot be null

*   defined in: [TypeDeclaration](typedeclaration-properties-properties.md "https://amazonalexa.com/ask/2020/12/TypeDeclaration#/properties/properties")

### properties Type

`object[]` ([Details](typedeclaration-properties-properties-items.md))

## annotations



`annotations`

*   is optional

*   Type: `object[]` ([Call](actiondeclaration-properties-annotations-call.md))

*   cannot be null

*   defined in: [TypeDeclaration](typedeclaration-properties-annotations.md "https://amazonalexa.com/ask/2020/12/TypeDeclaration#/properties/annotations")

### annotations Type

`object[]` ([Call](actiondeclaration-properties-annotations-call.md))
