# Mutations / Roles

# Roles

**Mutation**
## cloneRole — Returns [Role](/documentation/Objects/Role#Role)

**Scopes required:** modify_roles_permissions

| Arguments | Type | Description |
| --- | --- | --- |
| id | [ID!](/documentation/Types/UUID#UUID) | The ID of the Role to clone |
| name | *String!* | The name of the newly cloned receipt |

**Example Mutation**

```graphql
mutation CloneRole($id: ID!, $name: String!) {
    cloneRole(id: $id, name: $name) {
        id,
        name,
        managedId
    }
}

# Example variables
{
    "id": "<ID>",
    "name": "<NAME>"
}
```

**Mutation**
## createRole — Returns [Role](/documentation/Objects/Role#Role)

**Scopes required:** modify_roles_permissions

| Arguments | Type | Description |
| --- | --- | --- |
| name | *String!* | The name of the role |

**Example Mutation**

```graphql
mutation CreateRole($name: String!) {
    createRole(name: $name) {
        id,
        name,
        managedId
    }
}

# Example variables
{
    "name": "<NAME>"
}
```

**Mutation**
## deleteRole — Returns [Role](/documentation/Objects/Role#Role)

**Scopes required:** modify_roles_permissions

| Arguments | Type | Description |
| --- | --- | --- |
| id | [ID!](/documentation/Types/UUID#UUID) | The ID of the role to delete |

**Example Mutation**

```graphql
mutation DeleteRole($id: ID!) {
    deleteRole(id: $id) {
        id,
        name,
        managedId
    }
}

# Example variables
{
    "id": "<ID>"
}
```

**Mutation**
## restoreManagedRole — Returns [Role](/documentation/Objects/Role#Role)

**Scopes required:** modify_roles_permissions

| Arguments | Type | Description |
| --- | --- | --- |
| id | [ManagedRoleIdEnum!](/documentation/Enums/Managed-Role-Id-Enum#ManagedRoleIdEnum) | The type of role to restore |

**Example Mutation**

```graphql
mutation RestoreManagedRole($id: ManagedRoleIdEnum!) {
    restoreManagedRole(id: $id) {
        id,
        name,
        managedId
    }
}

# Example variables
{
    "id": "CASUAL"
}
```

**Mutation**
## updateRole — Returns [Role](/documentation/Objects/Role#Role)

**Scopes required:** modify_roles_permissions

| Arguments | Type | Description |
| --- | --- | --- |
| id | [ID!](/documentation/Types/UUID#UUID) | The ID of the role to update |
| name | *String* | The name of the role |
| permissions | *[String]* | The `safeName` of the permissions to apply to the role |

**Example Mutation**

```graphql
mutation UpdateRole($id: ID!) {
    updateRole(id: $id) {
        id,
        name,
        managedId
    }
}

# Example variables
{
    "id": "<ID>"
}
```