# fyi.opensocial.putSiteTab

> Published by [lexicons.opensocial.fyi](https://lexicon.garden/identity/did:plc:2gqnilpksz2e7faj3bwvo6qc)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:2gqnilpksz2e7faj3bwvo6qc/fyi.opensocial.putSiteTab)
- [Documentation](https://lexicon.garden/lexicon/did:plc:2gqnilpksz2e7faj3bwvo6qc/fyi.opensocial.putSiteTab/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:2gqnilpksz2e7faj3bwvo6qc/fyi.opensocial.putSiteTab/examples)

## Definitions

### `fyi.opensocial.putSiteTab`

**Type**: `procedure`

Give something in the group's spaces — a record, or a space — a tab on its site, or name its tab again if it has one. Allowed to whoever may write it as the group (a record: its space's credentialScopes) or configure it (a space), as well as group.configure.

#### Input

**Encoding**: `application/json`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `about` | `string` | Yes | What the tab is about: a record in one of the group's spaces, or one of its spaces, by URI. |
| `channel` | `string` | No | The channel to put a new tab in, by slug. |
| `existing` | `boolean` | No | Only name its tab again, if it has one; never add one. |
| `group` | `string` (did) | Yes | The group DID. Every method is served by the group's host and authorized against that group's roles. |
| `page` | `string` | No | One of the site's files to show, as the site's tabs have it. Needs group.configure. |
| `template` | `string` | No | What it shows: a template the kit bundles, by name, or one the site already uses. Without, it is like the site's other tabs about this kind of thing, or shows the kit's template for it. A template not for this kind of thing needs group.configure. |
| `title` | `string` | Yes |  |

#### Output

**Encoding**: `application/json`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `channel` | `string` | No | Where its tab is; none, when it has none and existing asked not to add one. |
| `slug` | `string` | No |  |

## Raw Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "Give something in the group's spaces — a record, or a space — a tab on its site, or name its tab again if it has one. Allowed to whoever may write it as the group (a record: its space's credentialScopes) or configure it (a space), as well as group.configure.",
      "input": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "about": {
              "description": "What the tab is about: a record in one of the group's spaces, or one of its spaces, by URI.",
              "maxLength": 512,
              "type": "string"
            },
            "channel": {
              "description": "The channel to put a new tab in, by slug.",
              "maxLength": 64,
              "type": "string"
            },
            "existing": {
              "description": "Only name its tab again, if it has one; never add one.",
              "type": "boolean"
            },
            "group": {
              "description": "The group DID. Every method is served by the group's host and authorized against that group's roles.",
              "format": "did",
              "type": "string"
            },
            "page": {
              "description": "One of the site's files to show, as the site's tabs have it. Needs group.configure.",
              "maxLength": 256,
              "type": "string"
            },
            "template": {
              "description": "What it shows: a template the kit bundles, by name, or one the site already uses. Without, it is like the site's other tabs about this kind of thing, or shows the kit's template for it. A template not for this kind of thing needs group.configure.",
              "maxLength": 512,
              "type": "string"
            },
            "title": {
              "maxGraphemes": 64,
              "maxLength": 640,
              "type": "string"
            }
          },
          "required": [
            "group",
            "about",
            "title"
          ],
          "type": "object"
        }
      },
      "output": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "channel": {
              "description": "Where its tab is; none, when it has none and existing asked not to add one.",
              "type": "string"
            },
            "slug": {
              "type": "string"
            }
          },
          "required": [],
          "type": "object"
        }
      },
      "type": "procedure"
    }
  },
  "id": "fyi.opensocial.putSiteTab",
  "lexicon": 1
}
```
