# place.stream.moderation.permission

> Published by [did:web:longos.iameli.link](https://lexicon.garden/identity/did:web:longos.iameli.link)

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:web:longos.iameli.link/place.stream.moderation.permission)
- [Documentation](https://lexicon.garden/lexicon/did:web:longos.iameli.link/place.stream.moderation.permission/docs)
- [Examples](https://lexicon.garden/lexicon/did:web:longos.iameli.link/place.stream.moderation.permission/examples)

## Definitions

### `place.stream.moderation.permission`

**Type**: `record`

Record granting moderation permissions to a user for this streamer's content.

**Key**: `tid`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `createdAt` | `string` (datetime) | Yes | Client-declared timestamp when this moderator was added. |
| `moderator` | `string` (did) | Yes | The DID of the user granted moderator permissions. |
| `permissions` | `array` | Yes | Array of permissions granted to this moderator. 'ban' covers blocks/bans (with optional expiration), 'hide' covers message gates, 'livestream.manage' allows updating livestream metadata. |
| `expirationTime` | `string` (datetime) | No | Optional expiration time for this delegation. If set, the delegation is invalid after this time. |

## Raw Schema

```json
{
  "id": "place.stream.moderation.permission",
  "defs": {
    "main": {
      "key": "tid",
      "type": "record",
      "record": {
        "type": "object",
        "required": [
          "moderator",
          "permissions",
          "createdAt"
        ],
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "datetime",
            "description": "Client-declared timestamp when this moderator was added."
          },
          "moderator": {
            "type": "string",
            "format": "did",
            "description": "The DID of the user granted moderator permissions."
          },
          "permissions": {
            "type": "array",
            "items": {
              "enum": [
                "ban",
                "hide",
                "livestream.manage"
              ],
              "type": "string"
            },
            "description": "Array of permissions granted to this moderator. 'ban' covers blocks/bans (with optional expiration), 'hide' covers message gates, 'livestream.manage' allows updating livestream metadata."
          },
          "expirationTime": {
            "type": "string",
            "format": "datetime",
            "description": "Optional expiration time for this delegation. If set, the delegation is invalid after this time."
          }
        }
      },
      "description": "Record granting moderation permissions to a user for this streamer's content."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}
```
