# town.muni.arbiter.setArbiterConfig

> Published by [zicklag.dev](https://lexicon.garden/identity/did:plc:ulg2bzgrgs7ddjjlmhtegk3v)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:ulg2bzgrgs7ddjjlmhtegk3v/town.muni.arbiter.setArbiterConfig)
- [Documentation](https://lexicon.garden/lexicon/did:plc:ulg2bzgrgs7ddjjlmhtegk3v/town.muni.arbiter.setArbiterConfig/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:ulg2bzgrgs7ddjjlmhtegk3v/town.muni.arbiter.setArbiterConfig/examples)

## Definitions

### `town.muni.arbiter.setArbiterConfig`

**Type**: `procedure`

Set the config object for an arbiter.

#### Input

**Encoding**: `application/json`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `config` | `union` | Yes | The config object.  Different server's will support different config NSIDs, and most-likely servers will not allow you to change the NSID after creation, even if they support updating the config. |
| `arbiterDid` | `string` (did) | Yes | The DID of the arbiter to set the config for. |
| `resolverDepth` | `integer` | No | The maximum depth to allow when doing remote resolutions.  Because spaces are allowed to have members resolved from remote spaces, all of the arbiter endpoints have an optional resolution depth parameter that can be used to limit how many chained remote calls can be resolved.  This applies both to queries and procedures. Queries may need to resolve external members to complete the member list, and procedures may need to resolve external members if the requesting member is not in the local member list, to see if the member has access through a remote list. |

#### Output

**Encoding**: `application/json`

#### Errors

- **ErrPermissionDenied**: The requesting user is not allowed to make the request.
- **ErrInvalidConfig**: The config provided is invalid for some reason other than it being an unsupported
lexicon.
- **ErrUnsupportedConfigLexicon**: The config lexicon provided is not supported by this server. Different servers
may support different config lexicons.

## Raw Schema

```json
{
  "id": "town.muni.arbiter.setArbiterConfig",
  "defs": {
    "main": {
      "type": "procedure",
      "input": {
        "schema": {
          "type": "object",
          "required": [
            "arbiterDid",
            "config"
          ],
          "properties": {
            "config": {
              "refs": [],
              "type": "union",
              "description": "The config object.\n\nDifferent server's will support different config NSIDs, and most-likely servers\nwill not allow you to change the NSID after creation, even if they support\nupdating the config."
            },
            "arbiterDid": {
              "type": "string",
              "format": "did",
              "description": "The DID of the arbiter to set the config for."
            },
            "resolverDepth": {
              "type": "integer",
              "description": "The maximum depth to allow when doing remote resolutions.\n\nBecause spaces are allowed to have members resolved from remote spaces,\nall of the arbiter endpoints have an optional resolution depth parameter\nthat can be used to limit how many chained remote calls can be resolved.\n\nThis applies both to queries and procedures. Queries may need to resolve\nexternal members to complete the member list, and procedures may need\nto resolve external members if the requesting member is not in the local\nmember list, to see if the member has access through a remote list."
            }
          }
        },
        "encoding": "application/json"
      },
      "errors": [
        {
          "name": "ErrPermissionDenied",
          "description": "The requesting user is not allowed to make the request."
        },
        {
          "name": "ErrInvalidConfig",
          "description": "The config provided is invalid for some reason other than it being an unsupported\nlexicon."
        },
        {
          "name": "ErrUnsupportedConfigLexicon",
          "description": "The config lexicon provided is not supported by this server. Different servers\nmay support different config lexicons."
        }
      ],
      "output": {
        "schema": {
          "refs": [],
          "type": "union"
        },
        "encoding": "application/json"
      },
      "description": "Set the config object for an arbiter."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}
```
