# fyi.opensocial.getTabBundle

> 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.getTabBundle)
- [Documentation](https://lexicon.garden/lexicon/did:plc:2gqnilpksz2e7faj3bwvo6qc/fyi.opensocial.getTabBundle/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:2gqnilpksz2e7faj3bwvo6qc/fyi.opensocial.getTabBundle/examples)

## Definitions

### `fyi.opensocial.getTabBundle#file`

**Type**: `object`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `path` | `string` | Yes | Where it is in the template: template.html, methods/<name>.js, lexicons/<nsid>.json. |
| `text` | `string` | Yes |  |

### `fyi.opensocial.getTabBundle`

**Type**: `query`

A tab you can see, as a template shared from it has it, for sharing it with everyone as yourself: its page, its methods and the kinds of record it makes up, the tab's namespace in them made the placeholder, and what a tab of it does. Its records are written in your own repo by you: a fyi.opensocial.templateVersion, each file a blob, and the fyi.opensocial.template listing it, at the record key given. Refused as shareTab refuses, and a new version whose kinds of record change in a way records already kept wouldn't fit.

#### Parameters

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `description` | `string` | Yes | One line saying what it is. |
| `group` | `string` (did) | Yes |  |
| `name` | `string` | Yes | What it's called, where it's offered. |
| `tab` | `string` | Yes | The tab's namespace. |

#### Output

**Encoding**: `application/json`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `entry` | `ref` → `fyi.opensocial.template#entry` | Yes | What a tab of it does, for the version's entry. |
| `files` | `array` | Yes | The version's files, by path, as text. |
| `number` | `integer` | Yes | Which version this is. |
| `previous` | `ref` → `#previous` | No | The listing in your repo shared from this tab before, if there is one. |
| `rkey` | `string` | Yes | The listing's record key in your repo: the one shared from this tab before, or a new one from its name. |

#### Errors

- **InvalidTab**
- **NotFound**
- **Forbidden**

### `fyi.opensocial.getTabBundle#previous`

**Type**: `object`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `number` | `integer` | Yes |  |
| `uri` | `string` (at-uri) | Yes | The listing, its fyi.opensocial.template. |
| `version` | `ref` → `com.atproto.repo.strongRef` | Yes | Its latest version. |

## Raw Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "file": {
      "properties": {
        "path": {
          "description": "Where it is in the template: template.html, methods/<name>.js, lexicons/<nsid>.json.",
          "type": "string"
        },
        "text": {
          "type": "string"
        }
      },
      "required": [
        "path",
        "text"
      ],
      "type": "object"
    },
    "main": {
      "description": "A tab you can see, as a template shared from it has it, for sharing it with everyone as yourself: its page, its methods and the kinds of record it makes up, the tab's namespace in them made the placeholder, and what a tab of it does. Its records are written in your own repo by you: a fyi.opensocial.templateVersion, each file a blob, and the fyi.opensocial.template listing it, at the record key given. Refused as shareTab refuses, and a new version whose kinds of record change in a way records already kept wouldn't fit.",
      "errors": [
        {
          "name": "InvalidTab"
        },
        {
          "name": "NotFound"
        },
        {
          "name": "Forbidden"
        }
      ],
      "output": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "entry": {
              "description": "What a tab of it does, for the version's entry.",
              "ref": "fyi.opensocial.template#entry",
              "type": "ref"
            },
            "files": {
              "description": "The version's files, by path, as text.",
              "items": {
                "ref": "#file",
                "type": "ref"
              },
              "type": "array"
            },
            "number": {
              "description": "Which version this is.",
              "minimum": 1,
              "type": "integer"
            },
            "previous": {
              "description": "The listing in your repo shared from this tab before, if there is one.",
              "ref": "#previous",
              "type": "ref"
            },
            "rkey": {
              "description": "The listing's record key in your repo: the one shared from this tab before, or a new one from its name.",
              "type": "string"
            }
          },
          "required": [
            "rkey",
            "number",
            "entry",
            "files"
          ],
          "type": "object"
        }
      },
      "parameters": {
        "properties": {
          "description": {
            "description": "One line saying what it is.",
            "maxGraphemes": 300,
            "maxLength": 3000,
            "type": "string"
          },
          "group": {
            "format": "did",
            "type": "string"
          },
          "name": {
            "description": "What it's called, where it's offered.",
            "maxGraphemes": 64,
            "maxLength": 640,
            "type": "string"
          },
          "tab": {
            "description": "The tab's namespace.",
            "maxLength": 13,
            "type": "string"
          }
        },
        "required": [
          "group",
          "tab",
          "name",
          "description"
        ],
        "type": "params"
      },
      "type": "query"
    },
    "previous": {
      "properties": {
        "number": {
          "minimum": 1,
          "type": "integer"
        },
        "uri": {
          "description": "The listing, its fyi.opensocial.template.",
          "format": "at-uri",
          "type": "string"
        },
        "version": {
          "description": "Its latest version.",
          "ref": "com.atproto.repo.strongRef",
          "type": "ref"
        }
      },
      "required": [
        "uri",
        "version",
        "number"
      ],
      "type": "object"
    }
  },
  "id": "fyi.opensocial.getTabBundle",
  "lexicon": 1
}
```
