> ISPO SDK documentation. [HTML](https://ispo.ai/docs/interfaces/core.EntityTypeDefinition.html) · [Documentation index](https://ispo.ai/docs/llms.txt)

# Interface EntityTypeDefinition

```typescript
interface EntityTypeDefinition {
    createdAt: string;
    display?: { icon?: string; labelField?: string; summaryFields?: string[] };
    id: string;
    indexes: EntityIndex[];
    inferenceEgress?: "allow" | "local-only";
    privateContent?: {
        cardinality: "one" | "many";
        fieldPath: string;
        id: string;
        inferenceEgress?: "allow" | "local-only";
        maxBytes: number;
        maxItems: number;
        mediaTypes: string[];
        metadata?: Record<
            string,
            {
                maxBytes?: number;
                required?: boolean;
                type: "string"
                | "number"
                | "boolean";
            },
        >;
        retention: | { kind: "until-redacted" }
        | { days: number; kind: "expire-after-days" };
    }[];
    registeredBy: Principal;
    schema: EntityJsonObject;
    schemaVersion: number;
    updatedAt: string;
}
```

Types: [createdAt](#createdat), [display](#display), [id](#id), [indexes](#indexes), [EntityIndex](core.EntityIndex.md), [inferenceEgress](#inferenceegress), [privateContent](#privatecontent), [registeredBy](#registeredby), [Principal](../types/core.Supporting_types.Principal.md), [schema](#schema), [EntityJsonObject](../types/core.Supporting_types.EntityJsonObject.md), [schemaVersion](#schemaversion), [updatedAt](#updatedat)

##### Index

### <a id="properties"></a>Properties

[createdAt](#createdat) [display?](#display) [id](#id) [indexes](#indexes) [inferenceEgress?](#inferenceegress) [privateContent?](#privatecontent) [registeredBy](#registeredby) [schema](#schema) [schemaVersion](#schemaversion) [updatedAt](#updatedat)

## <a id="properties-1"></a>Properties

### <a id="createdat"></a>createdAt

```typescript
createdAt: string
```

### <a id="display"></a>`Optional`display

```typescript
display?: { icon?: string; labelField?: string; summaryFields?: string[] }
```

### <a id="id"></a>id

```typescript
id: string
```

### <a id="indexes"></a>indexes

```typescript
indexes: EntityIndex[]
```

Types: [EntityIndex](core.EntityIndex.md)

### <a id="inferenceegress"></a>`Optional`inferenceEgress

```typescript
inferenceEgress?: "allow" | "local-only"
```

Host-evaluated prompt-egress sensitivity; omitted definitions default to allow.

### <a id="privatecontent"></a>`Optional`privateContent

```typescript
privateContent?: {
    cardinality: "one" | "many";
    fieldPath: string;
    id: string;
    inferenceEgress?: "allow" | "local-only";
    maxBytes: number;
    maxItems: number;
    mediaTypes: string[];
    metadata?: Record<
        string,
        {
            maxBytes?: number;
            required?: boolean;
            type: "string"
            | "number"
            | "boolean";
        },
    >;
    retention: | { kind: "until-redacted" }
    | { days: number; kind: "expire-after-days" };
}[]
```

### <a id="registeredby"></a>registeredBy

```typescript
registeredBy: Principal
```

Types: [Principal](../types/core.Supporting_types.Principal.md)

### <a id="schema"></a>schema

```typescript
schema: EntityJsonObject
```

Types: [EntityJsonObject](../types/core.Supporting_types.EntityJsonObject.md)

### <a id="schemaversion"></a>schemaVersion

```typescript
schemaVersion: number
```

### <a id="updatedat"></a>updatedAt

```typescript
updatedAt: string
```
