export const metadata = {
    title: 'Delete',
    description: 'Deletes are used to remove entities from the system',
}

# Delete

Signals the deletion of an entity. {{ className: 'lead' }}

## Authorization

Implementations **must** ensure that the author of the `Delete` entity has the authorization to delete the target entity.

Having the authorization is defined as:
- The author is the creator of the target entity (including [delegation](/delegation)).
- The author is the instance.

## Entity Definition

<Row>
    <Col>
        <Properties>
            <Property name="uri" type="null" required={false}>
                This entity does not have a URI.
            </Property>
            <Property name="author" type="URI | null" required={true} typeLink="/types#uri">
                URI of the `User` who is deleting the entity. [Can be set to `null` to represent the instance](/entities/instance-metadata#the-null-author).
            </Property>
            <Property name="target" type="URI" required={true} typeLink="/types#uri">
                URI of the entity being deleted.
            </Property>
        </Properties>
    </Col>

    <Col sticky>

    ```jsonc {{ title: 'Example Delete' }}
    {
        "type": "Delete",
        "id": "9b3212b8-529c-435a-8798-09ebbc17ca74",
        "created_at": "2021-01-01T00:00:00.000Z",
        "author": "https://example.com/users/6e0204a2-746c-4972-8602-c4f37fc63bbe",
        "deleted": "https://example.com/notes/02e1e3b2-cb1f-4e4a-b82e-98866bee5de7"
    }
    ```

    </Col>
</Row>