# dev.knotless.orgMember

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

✓ This is the authoritative definition for this NSID.

## Description

An organization's side of its membership: an account it invited, and their roles.

## Links

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

## Definitions

### `dev.knotless.orgMember`

**Type**: `record`

Keyed by the DID of the account it names, in the organization's account, in one place: its public records for a member anyone may see; or, where its PDS has spaces, its space of type dev.knotless.org keyed self, which only its members read, for an invitation or a hidden member. The account is a member once it keeps a dev.knotless.orgAcceptance record naming the organization, in the same place, and the organization has taken it in (joinedAt); until then it is invited, until expiresAt. In a private repository's space, a member of the organization that owns it who pushes to it. One keyed other than by the DID it names names no one.

**Key**: `any`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `expiresAt` | `string` (datetime) | No | When the invitation lapses, if not taken up first: 7 days after invitedAt when absent. |
| `invitedAt` | `string` (datetime) | Yes | When they were invited. |
| `joinedAt` | `string` (datetime) | No | When the organization took them in, after they wrote their acceptance record: a acceptance record counts only once this is set. |
| `member` | `string` (did) | Yes | The account invited. |
| `roles` | `array` | No | What they may do. None is a member. |
| `shared` | `boolean` | No | In a private repository's space only: the repository was shared with them on its own as well, so they stay in its space once out of the organization. |

### `dev.knotless.orgMember#role`

**Type**: `object`

One role an organization gives a member.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `role` | `string` | Yes | An admin also invites and removes members, changes roles and makes repositories as the organization. A value a reader does not know reads as member. |

## Raw Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "Keyed by the DID of the account it names, in the organization's account, in one place: its public records for a member anyone may see; or, where its PDS has spaces, its space of type dev.knotless.org keyed self, which only its members read, for an invitation or a hidden member. The account is a member once it keeps a dev.knotless.orgAcceptance record naming the organization, in the same place, and the organization has taken it in (joinedAt); until then it is invited, until expiresAt. In a private repository's space, a member of the organization that owns it who pushes to it. One keyed other than by the DID it names names no one.",
      "key": "any",
      "record": {
        "properties": {
          "expiresAt": {
            "description": "When the invitation lapses, if not taken up first: 7 days after invitedAt when absent.",
            "format": "datetime",
            "type": "string"
          },
          "invitedAt": {
            "description": "When they were invited.",
            "format": "datetime",
            "type": "string"
          },
          "joinedAt": {
            "description": "When the organization took them in, after they wrote their acceptance record: a acceptance record counts only once this is set.",
            "format": "datetime",
            "type": "string"
          },
          "member": {
            "description": "The account invited.",
            "format": "did",
            "type": "string"
          },
          "roles": {
            "description": "What they may do. None is a member.",
            "items": {
              "ref": "#role",
              "type": "ref"
            },
            "maxLength": 16,
            "type": "array"
          },
          "shared": {
            "description": "In a private repository's space only: the repository was shared with them on its own as well, so they stay in its space once out of the organization.",
            "type": "boolean"
          }
        },
        "required": [
          "member",
          "invitedAt"
        ],
        "type": "object"
      },
      "type": "record"
    },
    "role": {
      "description": "One role an organization gives a member.",
      "properties": {
        "role": {
          "description": "An admin also invites and removes members, changes roles and makes repositories as the organization. A value a reader does not know reads as member.",
          "knownValues": [
            "admin",
            "member"
          ],
          "maxLength": 64,
          "type": "string"
        }
      },
      "required": [
        "role"
      ],
      "type": "object"
    }
  },
  "description": "An organization's side of its membership: an account it invited, and their roles.",
  "id": "dev.knotless.orgMember",
  "lexicon": 1
}
```
