# dev.knotless.setOrgMembership

> Published by [lexicons.knotless.dev](https://lexicon.garden/identity/did:plc:yqsg7znbbhfmj3a2nrpnaerk)

✓ This is the authoritative definition for this NSID.

## Description

Joins an organization as the account logged in to this appview's pages, or shows or hides that membership, as `knotless org join` does.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:yqsg7znbbhfmj3a2nrpnaerk/dev.knotless.setOrgMembership)
- [Documentation](https://lexicon.garden/lexicon/did:plc:yqsg7znbbhfmj3a2nrpnaerk/dev.knotless.setOrgMembership/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:yqsg7znbbhfmj3a2nrpnaerk/dev.knotless.setOrgMembership/examples)

## Definitions

### `dev.knotless.setOrgMembership`

**Type**: `procedure`

Writes the account's dev.knotless.orgAcceptance record where the visibility says, in its public records or in the organization's space, takes back one in the other place, and asks the organization's gateway to take it in (dev.knotless.joinOrg). Requires the session cookie the pages' login sets: the appview acts with the session it keeps for that account. Clients holding their own session call the organization's gateway themselves.

#### Input

**Encoding**: `application/json`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `org` | `string` (did) | Yes | The organization. |
| `visibility` | `string` | Yes | Who may see the membership: anyone, or the organization's members alone. |

#### Output

**Encoding**: `application/json`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `warning` | `string` | No | Set when the change was made only in part, saying what is left. |

#### Errors

- **InvalidRequest**: The change was refused: by the organization's gateway, or as the account may not make it.
- **AuthenticationRequired**: No account is logged in to the pages, or its session has ended.

## Raw Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "Writes the account's dev.knotless.orgAcceptance record where the visibility says, in its public records or in the organization's space, takes back one in the other place, and asks the organization's gateway to take it in (dev.knotless.joinOrg). Requires the session cookie the pages' login sets: the appview acts with the session it keeps for that account. Clients holding their own session call the organization's gateway themselves.",
      "errors": [
        {
          "description": "The change was refused: by the organization's gateway, or as the account may not make it.",
          "name": "InvalidRequest"
        },
        {
          "description": "No account is logged in to the pages, or its session has ended.",
          "name": "AuthenticationRequired"
        }
      ],
      "input": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "org": {
              "description": "The organization.",
              "format": "did",
              "type": "string"
            },
            "visibility": {
              "description": "Who may see the membership: anyone, or the organization's members alone.",
              "knownValues": [
                "public",
                "hidden"
              ],
              "maxLength": 64,
              "type": "string"
            }
          },
          "required": [
            "org",
            "visibility"
          ],
          "type": "object"
        }
      },
      "output": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "warning": {
              "description": "Set when the change was made only in part, saying what is left.",
              "maxLength": 2000,
              "type": "string"
            }
          },
          "type": "object"
        }
      },
      "type": "procedure"
    }
  },
  "description": "Joins an organization as the account logged in to this appview's pages, or shows or hides that membership, as `knotless org join` does.",
  "id": "dev.knotless.setOrgMembership",
  "lexicon": 1
}
```
