> ## Documentation Index
> Fetch the complete documentation index at: https://docs.corsair.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# API

> API reference for Canvas: every `canvas.api.*` operation with input and output types.

Every `canvas.api.*` operation is listed below with parameter shapes and return types from the plugin Zod schemas.

<Info>
  **New to Corsair?** See [API access](/concepts/api), [authentication](/concepts/auth), and [error handling](/concepts/error-handling).
</Info>

## Accounts

### closeNotificationForUser

`accounts.closeNotificationForUser`

Close an account notification for the current user

**Risk:** `destructive`

```ts theme={null}
await corsair.canvas.api.accounts.closeNotificationForUser({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      account_id: string,
      notification_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number
    } | {
      id: string | number
    }[] | undefined | null
    ```
  </Accordion>
</AccordionGroup>

***

### createAccountNotification

`accounts.createAccountNotification`

Creates a global notification within a Canvas account

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.accounts.createAccountNotification({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      account_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name                             | Type               | Required | Description |
| -------------------------------- | ------------------ | -------- | ----------- |
| `id`                             | `string \| number` | Yes      | —           |
| `name`                           | `string`           | No       | —           |
| `uuid`                           | `string`           | No       | —           |
| `parent_account_id`              | `string \| number` | No       | —           |
| `root_account_id`                | `string \| number` | No       | —           |
| `default_storage_quota_mb`       | `number`           | No       | —           |
| `default_user_storage_quota_mb`  | `number`           | No       | —           |
| `default_group_storage_quota_mb` | `number`           | No       | —           |
| `default_time_zone`              | `string`           | No       | —           |
| `sis_account_id`                 | `string`           | No       | —           |
| `workflow_state`                 | `string`           | No       | —           |

***

### getAccountGraphQl

`accounts.getAccountGraphQl`

Call Canvas GraphQL (/api/graphql); supply the query document and variables in input.body

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.accounts.getAccountGraphQl({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | No       | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name     | Type    | Required | Description |
| -------- | ------- | -------- | ----------- |
| `data`   | `any`   | No       | —           |
| `errors` | `any[]` | No       | —           |

***

### getAccountHelpLinks

`accounts.getAccountHelpLinks`

Retrieves help links configured for the specified Canvas account

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.accounts.getAccountHelpLinks({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      account_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

***

### getAccountNotifications

`accounts.getAccountNotifications`

Retrieve global account notifications for the current user

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.accounts.getAccountNotifications({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      account_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object[]`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number,
      name?: string,
      uuid?: string,
      parent_account_id?: string | number | null,
      root_account_id?: string | number,
      default_storage_quota_mb?: number,
      default_user_storage_quota_mb?: number,
      default_group_storage_quota_mb?: number,
      default_time_zone?: string,
      sis_account_id?: string | null,
      workflow_state?: string
    }[]
    ```
  </Accordion>
</AccordionGroup>

***

### getAccountsThatUsersCanCreateCoursesIn

`accounts.getAccountsThatUsersCanCreateCoursesIn`

Retrieves Canvas accounts where the current user can create courses

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.accounts.getAccountsThatUsersCanCreateCoursesIn({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | No       | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object[]`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number,
      name?: string,
      course_code?: string,
      uuid?: string,
      sis_course_id?: string | null,
      account_id?: string | number,
      root_account_id?: string | number,
      enrollment_term_id?: string | number,
      workflow_state?: unpublished | available | completed | deleted | string,
      start_at?: string | null,
      end_at?: string | null,
      created_at?: string
    }[]
    ```
  </Accordion>
</AccordionGroup>

***

### getSingleAccount

`accounts.getSingleAccount`

Retrieve information on an individual account by ID

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.accounts.getSingleAccount({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      account_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name                             | Type               | Required | Description |
| -------------------------------- | ------------------ | -------- | ----------- |
| `id`                             | `string \| number` | Yes      | —           |
| `name`                           | `string`           | No       | —           |
| `uuid`                           | `string`           | No       | —           |
| `parent_account_id`              | `string \| number` | No       | —           |
| `root_account_id`                | `string \| number` | No       | —           |
| `default_storage_quota_mb`       | `number`           | No       | —           |
| `default_user_storage_quota_mb`  | `number`           | No       | —           |
| `default_group_storage_quota_mb` | `number`           | No       | —           |
| `default_time_zone`              | `string`           | No       | —           |
| `sis_account_id`                 | `string`           | No       | —           |
| `workflow_state`                 | `string`           | No       | —           |

***

## Appointment Groups

### createAppointmentGroup

`appointmentGroups.createAppointmentGroup`

Creates a new appointment group in Canvas

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.appointmentGroups.createAppointmentGroup({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | No       | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name               | Type               | Required | Description |
| ------------------ | ------------------ | -------- | ----------- |
| `id`               | `string \| number` | Yes      | —           |
| `name`             | `string`           | No       | —           |
| `description`      | `string`           | No       | —           |
| `is_public`        | `boolean`          | No       | —           |
| `followed_by_user` | `boolean`          | No       | —           |
| `join_level`       | `string`           | No       | —           |
| `members_count`    | `number`           | No       | —           |
| `avatar_url`       | `string`           | No       | —           |
| `context_type`     | `string`           | No       | —           |
| `course_id`        | `string \| number` | No       | —           |
| `account_id`       | `string \| number` | No       | —           |

***

### deleteAppointmentGroup

`appointmentGroups.deleteAppointmentGroup`

Permanently deletes an existing appointment group

**Risk:** `destructive`

```ts theme={null}
await corsair.canvas.api.appointmentGroups.deleteAppointmentGroup({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      appointment_group_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number
    } | {
      id: string | number
    }[] | undefined | null
    ```
  </Accordion>
</AccordionGroup>

***

## Assignment Groups

### createAssignmentGroup

`assignmentGroups.createAssignmentGroup`

Create a new assignment group for a course

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.assignmentGroups.createAssignmentGroup({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name               | Type               | Required | Description |
| ------------------ | ------------------ | -------- | ----------- |
| `id`               | `string \| number` | Yes      | —           |
| `name`             | `string`           | No       | —           |
| `description`      | `string`           | No       | —           |
| `is_public`        | `boolean`          | No       | —           |
| `followed_by_user` | `boolean`          | No       | —           |
| `join_level`       | `string`           | No       | —           |
| `members_count`    | `number`           | No       | —           |
| `avatar_url`       | `string`           | No       | —           |
| `context_type`     | `string`           | No       | —           |
| `course_id`        | `string \| number` | No       | —           |
| `account_id`       | `string \| number` | No       | —           |

***

### getAnAssignmentGroup

`assignmentGroups.getAnAssignmentGroup`

Retrieves the assignment group with the given id

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.assignmentGroups.getAnAssignmentGroup({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string,
      assignment_group_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name               | Type               | Required | Description |
| ------------------ | ------------------ | -------- | ----------- |
| `id`               | `string \| number` | Yes      | —           |
| `name`             | `string`           | No       | —           |
| `description`      | `string`           | No       | —           |
| `is_public`        | `boolean`          | No       | —           |
| `followed_by_user` | `boolean`          | No       | —           |
| `join_level`       | `string`           | No       | —           |
| `members_count`    | `number`           | No       | —           |
| `avatar_url`       | `string`           | No       | —           |
| `context_type`     | `string`           | No       | —           |
| `course_id`        | `string \| number` | No       | —           |
| `account_id`       | `string \| number` | No       | —           |

***

### getAssignmentGroup

`assignmentGroups.getAssignmentGroup`

Retrieve information about a specific assignment group by ID

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.assignmentGroups.getAssignmentGroup({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | No       | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name     | Type    | Required | Description |
| -------- | ------- | -------- | ----------- |
| `data`   | `any`   | No       | —           |
| `errors` | `any[]` | No       | —           |

***

## Assignment Overrides

### createAssignmentOverride

`assignmentOverrides.createAssignmentOverride`

Creates an assignment override to adjust due/unlock/lock dates

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.assignmentOverrides.createAssignmentOverride({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string,
      assignment_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name                  | Type               | Required | Description |
| --------------------- | ------------------ | -------- | ----------- |
| `id`                  | `string \| number` | Yes      | —           |
| `name`                | `string`           | No       | —           |
| `description`         | `string`           | No       | —           |
| `created_at`          | `string`           | No       | —           |
| `updated_at`          | `string`           | No       | —           |
| `due_at`              | `string`           | No       | —           |
| `lock_at`             | `string`           | No       | —           |
| `unlock_at`           | `string`           | No       | —           |
| `course_id`           | `string \| number` | No       | —           |
| `assignment_group_id` | `string \| number` | No       | —           |
| `points_possible`     | `number`           | No       | —           |
| `grading_type`        | `string`           | No       | —           |
| `published`           | `boolean`          | No       | —           |
| `submission_types`    | `string[]`         | No       | —           |

***

### createBatchOverridesInACourse

`assignmentOverrides.createBatchOverridesInACourse`

Batch create assignment overrides for multiple assignments in a course

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.assignmentOverrides.createBatchOverridesInACourse({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object[]`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number
    }[]
    ```
  </Accordion>
</AccordionGroup>

***

### deleteAssignmentOverride

`assignmentOverrides.deleteAssignmentOverride`

Deletes an assignment override and returns its former details

**Risk:** `destructive`

```ts theme={null}
await corsair.canvas.api.assignmentOverrides.deleteAssignmentOverride({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string,
      assignment_id: string,
      override_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number
    } | {
      id: string | number
    }[] | undefined | null
    ```
  </Accordion>
</AccordionGroup>

***

### getCourses12Assignments

`assignmentOverrides.getCourses12Assignments`

Batch retrieve assignment overrides in a course

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.assignmentOverrides.getCourses12Assignments({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object[]`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number,
      name?: string,
      description?: string | null,
      created_at?: string,
      updated_at?: string,
      due_at?: string | null,
      lock_at?: string | null,
      unlock_at?: string | null,
      course_id?: string | number,
      assignment_group_id?: string | number,
      points_possible?: number | null,
      grading_type?: string,
      published?: boolean,
      submission_types?: string[]
    }[]
    ```
  </Accordion>
</AccordionGroup>

***

### getSingleAssignmentOverride

`assignmentOverrides.getSingleAssignmentOverride`

Retrieves details of the assignment override with the given id

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.assignmentOverrides.getSingleAssignmentOverride({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string,
      assignment_id: string,
      override_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name                  | Type               | Required | Description |
| --------------------- | ------------------ | -------- | ----------- |
| `id`                  | `string \| number` | Yes      | —           |
| `name`                | `string`           | No       | —           |
| `description`         | `string`           | No       | —           |
| `created_at`          | `string`           | No       | —           |
| `updated_at`          | `string`           | No       | —           |
| `due_at`              | `string`           | No       | —           |
| `lock_at`             | `string`           | No       | —           |
| `unlock_at`           | `string`           | No       | —           |
| `course_id`           | `string \| number` | No       | —           |
| `assignment_group_id` | `string \| number` | No       | —           |
| `points_possible`     | `number`           | No       | —           |
| `grading_type`        | `string`           | No       | —           |
| `published`           | `boolean`          | No       | —           |
| `submission_types`    | `string[]`         | No       | —           |

***

## Assignments

### createAssignment

`assignments.createAssignment`

Creates a new assignment within a specified course in Canvas LMS

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.assignments.createAssignment({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name                  | Type               | Required | Description |
| --------------------- | ------------------ | -------- | ----------- |
| `id`                  | `string \| number` | Yes      | —           |
| `name`                | `string`           | No       | —           |
| `description`         | `string`           | No       | —           |
| `created_at`          | `string`           | No       | —           |
| `updated_at`          | `string`           | No       | —           |
| `due_at`              | `string`           | No       | —           |
| `lock_at`             | `string`           | No       | —           |
| `unlock_at`           | `string`           | No       | —           |
| `course_id`           | `string \| number` | No       | —           |
| `assignment_group_id` | `string \| number` | No       | —           |
| `points_possible`     | `number`           | No       | —           |
| `grading_type`        | `string`           | No       | —           |
| `published`           | `boolean`          | No       | —           |
| `submission_types`    | `string[]`         | No       | —           |

***

### createAssignmentGraphQl

`assignments.createAssignmentGraphQl`

Call Canvas GraphQL (/api/graphql); supply the mutation document and variables in input.body

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.assignments.createAssignmentGraphQl({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | No       | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name     | Type    | Required | Description |
| -------- | ------- | -------- | ----------- |
| `data`   | `any`   | No       | —           |
| `errors` | `any[]` | No       | —           |

***

### deleteAssignment

`assignments.deleteAssignment`

Soft-deletes a specific assignment within a course

**Risk:** `destructive`

```ts theme={null}
await corsair.canvas.api.assignments.deleteAssignment({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string,
      assignment_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number
    } | {
      id: string | number
    }[] | undefined | null
    ```
  </Accordion>
</AccordionGroup>

***

### editAssignment

`assignments.editAssignment`

Updates an existing assignment in a Canvas course

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.assignments.editAssignment({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string,
      assignment_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name                  | Type               | Required | Description |
| --------------------- | ------------------ | -------- | ----------- |
| `id`                  | `string \| number` | Yes      | —           |
| `name`                | `string`           | No       | —           |
| `description`         | `string`           | No       | —           |
| `created_at`          | `string`           | No       | —           |
| `updated_at`          | `string`           | No       | —           |
| `due_at`              | `string`           | No       | —           |
| `lock_at`             | `string`           | No       | —           |
| `unlock_at`           | `string`           | No       | —           |
| `course_id`           | `string \| number` | No       | —           |
| `assignment_group_id` | `string \| number` | No       | —           |
| `points_possible`     | `number`           | No       | —           |
| `grading_type`        | `string`           | No       | —           |
| `published`           | `boolean`          | No       | —           |
| `submission_types`    | `string[]`         | No       | —           |

***

### getAllAssignments

`assignments.getAllAssignments`

Retrieves assignments for a specific Canvas course

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.assignments.getAllAssignments({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object[]`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number,
      name?: string,
      description?: string | null,
      created_at?: string,
      updated_at?: string,
      due_at?: string | null,
      lock_at?: string | null,
      unlock_at?: string | null,
      course_id?: string | number,
      assignment_group_id?: string | number,
      points_possible?: number | null,
      grading_type?: string,
      published?: boolean,
      submission_types?: string[]
    }[]
    ```
  </Accordion>
</AccordionGroup>

***

### getAssignment

`assignments.getAssignment`

Retrieves detailed information for a specific assignment

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.assignments.getAssignment({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string,
      assignment_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name                  | Type               | Required | Description |
| --------------------- | ------------------ | -------- | ----------- |
| `id`                  | `string \| number` | Yes      | —           |
| `name`                | `string`           | No       | —           |
| `description`         | `string`           | No       | —           |
| `created_at`          | `string`           | No       | —           |
| `updated_at`          | `string`           | No       | —           |
| `due_at`              | `string`           | No       | —           |
| `lock_at`             | `string`           | No       | —           |
| `unlock_at`           | `string`           | No       | —           |
| `course_id`           | `string \| number` | No       | —           |
| `assignment_group_id` | `string \| number` | No       | —           |
| `points_possible`     | `number`           | No       | —           |
| `grading_type`        | `string`           | No       | —           |
| `published`           | `boolean`          | No       | —           |
| `submission_types`    | `string[]`         | No       | —           |

***

### getAssignment2

`assignments.getAssignment2`

Call Canvas GraphQL (/api/graphql); supply the query document and variables in input.body

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.assignments.getAssignment2({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | No       | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name     | Type    | Required | Description |
| -------- | ------- | -------- | ----------- |
| `data`   | `any`   | No       | —           |
| `errors` | `any[]` | No       | —           |

***

### getSubmissionSummary

`assignments.getSubmissionSummary`

Retrieves submission summary counts for a specific assignment

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.assignments.getSubmissionSummary({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string,
      assignment_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name            | Type     | Required | Description |
| --------------- | -------- | -------- | ----------- |
| `graded`        | `number` | No       | —           |
| `ungraded`      | `number` | No       | —           |
| `not_submitted` | `number` | No       | —           |

***

## Audit Reports

### getAuditLogs

`auditReports.getAuditLogs`

Access Canvas audit logs for a specified asset using GraphQL

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.auditReports.getAuditLogs({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | No       | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name     | Type    | Required | Description |
| -------- | ------- | -------- | ----------- |
| `data`   | `any`   | No       | —           |
| `errors` | `any[]` | No       | —           |

***

### getStatusOfLastReport

`auditReports.getStatusOfLastReport`

Retrieve the status of the last generated report for a course

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.auditReports.getStatusOfLastReport({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string,
      report_type: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

***

## Authentication

### getAuthenticationProvider

`authentication.getAuthenticationProvider`

Retrieves a specific authentication provider configuration

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.authentication.getAuthenticationProvider({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      account_id: string,
      authentication_provider_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name                             | Type               | Required | Description |
| -------------------------------- | ------------------ | -------- | ----------- |
| `id`                             | `string \| number` | Yes      | —           |
| `name`                           | `string`           | No       | —           |
| `uuid`                           | `string`           | No       | —           |
| `parent_account_id`              | `string \| number` | No       | —           |
| `root_account_id`                | `string \| number` | No       | —           |
| `default_storage_quota_mb`       | `number`           | No       | —           |
| `default_user_storage_quota_mb`  | `number`           | No       | —           |
| `default_group_storage_quota_mb` | `number`           | No       | —           |
| `default_time_zone`              | `string`           | No       | —           |
| `sis_account_id`                 | `string`           | No       | —           |
| `workflow_state`                 | `string`           | No       | —           |

***

## Blackout Dates

### createBlackoutDateForCourse

`blackoutDates.createBlackoutDateForCourse`

Create a blackout date for the given course context

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.blackoutDates.createBlackoutDateForCourse({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name                 | Type                                                         | Required | Description |
| -------------------- | ------------------------------------------------------------ | -------- | ----------- |
| `id`                 | `string \| number`                                           | Yes      | —           |
| `name`               | `string`                                                     | No       | —           |
| `course_code`        | `string`                                                     | No       | —           |
| `uuid`               | `string`                                                     | No       | —           |
| `sis_course_id`      | `string`                                                     | No       | —           |
| `account_id`         | `string \| number`                                           | No       | —           |
| `root_account_id`    | `string \| number`                                           | No       | —           |
| `enrollment_term_id` | `string \| number`                                           | No       | —           |
| `workflow_state`     | `unpublished \| available \| completed \| deleted \| string` | No       | —           |
| `start_at`           | `string`                                                     | No       | —           |
| `end_at`             | `string`                                                     | No       | —           |
| `created_at`         | `string`                                                     | No       | —           |

***

### deleteBlackoutDate

`blackoutDates.deleteBlackoutDate`

Delete a blackout date for the given course context

**Risk:** `destructive`

```ts theme={null}
await corsair.canvas.api.blackoutDates.deleteBlackoutDate({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string,
      blackout_date_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number
    } | {
      id: string | number
    }[] | undefined | null
    ```
  </Accordion>
</AccordionGroup>

***

## Blueprints

### getCoursesBlueprint

`blueprints.getCoursesBlueprint`

Retrieves blueprint subscription migrations for a Canvas course

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.blueprints.getCoursesBlueprint({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string,
      subscription_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object[]`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number,
      name?: string,
      course_code?: string,
      uuid?: string,
      sis_course_id?: string | null,
      account_id?: string | number,
      root_account_id?: string | number,
      enrollment_term_id?: string | number,
      workflow_state?: unpublished | available | completed | deleted | string,
      start_at?: string | null,
      end_at?: string | null,
      created_at?: string
    }[]
    ```
  </Accordion>
</AccordionGroup>

***

## Bookmarks

### createBookmark

`bookmarks.createBookmark`

Creates a new bookmark for the authenticated user

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.bookmarks.createBookmark({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | No       | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name               | Type               | Required | Description |
| ------------------ | ------------------ | -------- | ----------- |
| `id`               | `string \| number` | Yes      | —           |
| `name`             | `string`           | No       | —           |
| `sortable_name`    | `string`           | No       | —           |
| `short_name`       | `string`           | No       | —           |
| `sis_user_id`      | `string`           | No       | —           |
| `login_id`         | `string`           | No       | —           |
| `email`            | `string`           | No       | —           |
| `avatar_url`       | `string`           | No       | —           |
| `locale`           | `string`           | No       | —           |
| `effective_locale` | `string`           | No       | —           |

***

### deleteBookmark

`bookmarks.deleteBookmark`

Deletes a bookmark from the current user bookmarks

**Risk:** `destructive`

```ts theme={null}
await corsair.canvas.api.bookmarks.deleteBookmark({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      bookmark_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number
    } | {
      id: string | number
    }[] | undefined | null
    ```
  </Accordion>
</AccordionGroup>

***

### getBookmark

`bookmarks.getBookmark`

Retrieves the details for a specific bookmark by ID

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.bookmarks.getBookmark({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      bookmark_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name               | Type               | Required | Description |
| ------------------ | ------------------ | -------- | ----------- |
| `id`               | `string \| number` | Yes      | —           |
| `name`             | `string`           | No       | —           |
| `sortable_name`    | `string`           | No       | —           |
| `short_name`       | `string`           | No       | —           |
| `sis_user_id`      | `string`           | No       | —           |
| `login_id`         | `string`           | No       | —           |
| `email`            | `string`           | No       | —           |
| `avatar_url`       | `string`           | No       | —           |
| `locale`           | `string`           | No       | —           |
| `effective_locale` | `string`           | No       | —           |

***

## Brand Config

### getBrandVariables

`brandConfig.getBrandVariables`

Retrieve all brand configuration variables for the Canvas account

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.brandConfig.getBrandVariables({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | No       | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

***

### getInternalSettings

`brandConfig.getInternalSettings`

Retrieve all internal settings from Canvas using GraphQL

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.brandConfig.getInternalSettings({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | No       | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name     | Type    | Required | Description |
| -------- | ------- | -------- | ----------- |
| `data`   | `any`   | No       | —           |
| `errors` | `any[]` | No       | —           |

***

### getKalturaConfig

`brandConfig.getKalturaConfig`

Return the config information for the Kaltura plugin

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.brandConfig.getKalturaConfig({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | No       | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

***

## Calendar Events

### createCalendarEvent

`calendarEvents.createCalendarEvent`

Creates a calendar event with options for recurrence

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.calendarEvents.createCalendarEvent({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | No       | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name | Type               | Required | Description |
| ---- | ------------------ | -------- | ----------- |
| `id` | `string \| number` | Yes      | —           |

***

### createOrUpdateTimetableEvents

`calendarEvents.createOrUpdateTimetableEvents`

Create or update timetable events for a course or section

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.calendarEvents.createOrUpdateTimetableEvents({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name                 | Type                                                         | Required | Description |
| -------------------- | ------------------------------------------------------------ | -------- | ----------- |
| `id`                 | `string \| number`                                           | Yes      | —           |
| `name`               | `string`                                                     | No       | —           |
| `course_code`        | `string`                                                     | No       | —           |
| `uuid`               | `string`                                                     | No       | —           |
| `sis_course_id`      | `string`                                                     | No       | —           |
| `account_id`         | `string \| number`                                           | No       | —           |
| `root_account_id`    | `string \| number`                                           | No       | —           |
| `enrollment_term_id` | `string \| number`                                           | No       | —           |
| `workflow_state`     | `unpublished \| available \| completed \| deleted \| string` | No       | —           |
| `start_at`           | `string`                                                     | No       | —           |
| `end_at`             | `string`                                                     | No       | —           |
| `created_at`         | `string`                                                     | No       | —           |

***

### deleteCalendarEvent

`calendarEvents.deleteCalendarEvent`

Delete a calendar event from Canvas

**Risk:** `destructive`

```ts theme={null}
await corsair.canvas.api.calendarEvents.deleteCalendarEvent({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      calendar_event_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number
    } | {
      id: string | number
    }[] | undefined | null
    ```
  </Accordion>
</AccordionGroup>

***

## Comment Bank

### deleteCommentBankItem

`commentBank.deleteCommentBankItem`

Delete a comment bank item from Canvas

**Risk:** `destructive`

```ts theme={null}
await corsair.canvas.api.commentBank.deleteCommentBankItem({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      comment_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number
    } | {
      id: string | number
    }[] | undefined | null
    ```
  </Accordion>
</AccordionGroup>

***

## Communication Channels

### createCommunicationChannel

`communicationChannels.createCommunicationChannel`

Creates a new communication channel for an existing Canvas user

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.communicationChannels.createCommunicationChannel({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      user_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name               | Type               | Required | Description |
| ------------------ | ------------------ | -------- | ----------- |
| `id`               | `string \| number` | Yes      | —           |
| `name`             | `string`           | No       | —           |
| `sortable_name`    | `string`           | No       | —           |
| `short_name`       | `string`           | No       | —           |
| `sis_user_id`      | `string`           | No       | —           |
| `login_id`         | `string`           | No       | —           |
| `email`            | `string`           | No       | —           |
| `avatar_url`       | `string`           | No       | —           |
| `locale`           | `string`           | No       | —           |
| `effective_locale` | `string`           | No       | —           |

***

### deleteCommunicationChannel

`communicationChannels.deleteCommunicationChannel`

Deletes an existing communication channel for a user

**Risk:** `destructive`

```ts theme={null}
await corsair.canvas.api.communicationChannels.deleteCommunicationChannel({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      user_id: string,
      communication_channel_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number
    } | {
      id: string | number
    }[] | undefined | null
    ```
  </Accordion>
</AccordionGroup>

***

### deleteCommunicationChannelByTypeAndAddress

`communicationChannels.deleteCommunicationChannelByTypeAndAddress`

Deletes a communication channel by type and address

**Risk:** `destructive`

```ts theme={null}
await corsair.canvas.api.communicationChannels.deleteCommunicationChannelByTypeAndAddress({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      user_id: string,
      type: string,
      address: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number
    } | {
      id: string | number
    }[] | undefined | null
    ```
  </Accordion>
</AccordionGroup>

***

## Content Exports

### exportContent

`contentExports.exportContent`

Initiates an asynchronous export of course content from Canvas

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.contentExports.exportContent({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name                 | Type                                                         | Required | Description |
| -------------------- | ------------------------------------------------------------ | -------- | ----------- |
| `id`                 | `string \| number`                                           | Yes      | —           |
| `name`               | `string`                                                     | No       | —           |
| `course_code`        | `string`                                                     | No       | —           |
| `uuid`               | `string`                                                     | No       | —           |
| `sis_course_id`      | `string`                                                     | No       | —           |
| `account_id`         | `string \| number`                                           | No       | —           |
| `root_account_id`    | `string \| number`                                           | No       | —           |
| `enrollment_term_id` | `string \| number`                                           | No       | —           |
| `workflow_state`     | `unpublished \| available \| completed \| deleted \| string` | No       | —           |
| `start_at`           | `string`                                                     | No       | —           |
| `end_at`             | `string`                                                     | No       | —           |
| `created_at`         | `string`                                                     | No       | —           |

***

### exportGroupContent

`contentExports.exportGroupContent`

Begin a content export job for a group

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.contentExports.exportGroupContent({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      group_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name               | Type               | Required | Description |
| ------------------ | ------------------ | -------- | ----------- |
| `id`               | `string \| number` | Yes      | —           |
| `name`             | `string`           | No       | —           |
| `description`      | `string`           | No       | —           |
| `is_public`        | `boolean`          | No       | —           |
| `followed_by_user` | `boolean`          | No       | —           |
| `join_level`       | `string`           | No       | —           |
| `members_count`    | `number`           | No       | —           |
| `avatar_url`       | `string`           | No       | —           |
| `context_type`     | `string`           | No       | —           |
| `course_id`        | `string \| number` | No       | —           |
| `account_id`       | `string \| number` | No       | —           |

***

### exportUserContent

`contentExports.exportUserContent`

Begin a content export job for a user

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.contentExports.exportUserContent({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      user_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name               | Type               | Required | Description |
| ------------------ | ------------------ | -------- | ----------- |
| `id`               | `string \| number` | Yes      | —           |
| `name`             | `string`           | No       | —           |
| `sortable_name`    | `string`           | No       | —           |
| `short_name`       | `string`           | No       | —           |
| `sis_user_id`      | `string`           | No       | —           |
| `login_id`         | `string`           | No       | —           |
| `email`            | `string`           | No       | —           |
| `avatar_url`       | `string`           | No       | —           |
| `locale`           | `string`           | No       | —           |
| `effective_locale` | `string`           | No       | —           |

***

## Content Migrations

### createAContentMigration4

`contentMigrations.createAContentMigration4`

Create a content migration for a Canvas user

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.contentMigrations.createAContentMigration4({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      user_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name               | Type               | Required | Description |
| ------------------ | ------------------ | -------- | ----------- |
| `id`               | `string \| number` | Yes      | —           |
| `name`             | `string`           | No       | —           |
| `sortable_name`    | `string`           | No       | —           |
| `short_name`       | `string`           | No       | —           |
| `sis_user_id`      | `string`           | No       | —           |
| `login_id`         | `string`           | No       | —           |
| `email`            | `string`           | No       | —           |
| `avatar_url`       | `string`           | No       | —           |
| `locale`           | `string`           | No       | —           |
| `effective_locale` | `string`           | No       | —           |

***

### createGroupContentMigration

`contentMigrations.createGroupContentMigration`

Create a content migration in a Canvas group

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.contentMigrations.createGroupContentMigration({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      group_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name               | Type               | Required | Description |
| ------------------ | ------------------ | -------- | ----------- |
| `id`               | `string \| number` | Yes      | —           |
| `name`             | `string`           | No       | —           |
| `description`      | `string`           | No       | —           |
| `is_public`        | `boolean`          | No       | —           |
| `followed_by_user` | `boolean`          | No       | —           |
| `join_level`       | `string`           | No       | —           |
| `members_count`    | `number`           | No       | —           |
| `avatar_url`       | `string`           | No       | —           |
| `context_type`     | `string`           | No       | —           |
| `course_id`        | `string \| number` | No       | —           |
| `account_id`       | `string \| number` | No       | —           |

***

### getAContentMigration3

`contentMigrations.getAContentMigration3`

Retrieve data on an individual content migration from a group

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.contentMigrations.getAContentMigration3({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      group_id: string,
      content_migration_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name               | Type               | Required | Description |
| ------------------ | ------------------ | -------- | ----------- |
| `id`               | `string \| number` | Yes      | —           |
| `name`             | `string`           | No       | —           |
| `description`      | `string`           | No       | —           |
| `is_public`        | `boolean`          | No       | —           |
| `followed_by_user` | `boolean`          | No       | —           |
| `join_level`       | `string`           | No       | —           |
| `members_count`    | `number`           | No       | —           |
| `avatar_url`       | `string`           | No       | —           |
| `context_type`     | `string`           | No       | —           |
| `course_id`        | `string \| number` | No       | —           |
| `account_id`       | `string \| number` | No       | —           |

***

### getAContentMigration4

`contentMigrations.getAContentMigration4`

Retrieve data on an individual content migration from a user

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.contentMigrations.getAContentMigration4({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      user_id: string,
      content_migration_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name               | Type               | Required | Description |
| ------------------ | ------------------ | -------- | ----------- |
| `id`               | `string \| number` | Yes      | —           |
| `name`             | `string`           | No       | —           |
| `sortable_name`    | `string`           | No       | —           |
| `short_name`       | `string`           | No       | —           |
| `sis_user_id`      | `string`           | No       | —           |
| `login_id`         | `string`           | No       | —           |
| `email`            | `string`           | No       | —           |
| `avatar_url`       | `string`           | No       | —           |
| `locale`           | `string`           | No       | —           |
| `effective_locale` | `string`           | No       | —           |

***

## Content Shares

### addUsersToContentShare

`contentShares.addUsersToContentShare`

Send a previously created content share to additional users

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.contentShares.addUsersToContentShare({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      user_id: string,
      content_share_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name               | Type               | Required | Description |
| ------------------ | ------------------ | -------- | ----------- |
| `id`               | `string \| number` | Yes      | —           |
| `name`             | `string`           | No       | —           |
| `sortable_name`    | `string`           | No       | —           |
| `short_name`       | `string`           | No       | —           |
| `sis_user_id`      | `string`           | No       | —           |
| `login_id`         | `string`           | No       | —           |
| `email`            | `string`           | No       | —           |
| `avatar_url`       | `string`           | No       | —           |
| `locale`           | `string`           | No       | —           |
| `effective_locale` | `string`           | No       | —           |

***

### createContentShare

`contentShares.createContentShare`

Shares a Canvas content item to specified users

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.contentShares.createContentShare({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      user_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name               | Type               | Required | Description |
| ------------------ | ------------------ | -------- | ----------- |
| `id`               | `string \| number` | Yes      | —           |
| `name`             | `string`           | No       | —           |
| `sortable_name`    | `string`           | No       | —           |
| `short_name`       | `string`           | No       | —           |
| `sis_user_id`      | `string`           | No       | —           |
| `login_id`         | `string`           | No       | —           |
| `email`            | `string`           | No       | —           |
| `avatar_url`       | `string`           | No       | —           |
| `locale`           | `string`           | No       | —           |
| `effective_locale` | `string`           | No       | —           |

***

### getContentShare

`contentShares.getContentShare`

Retrieves detailed information about a single content share

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.contentShares.getContentShare({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      user_id: string,
      content_share_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name               | Type               | Required | Description |
| ------------------ | ------------------ | -------- | ----------- |
| `id`               | `string \| number` | Yes      | —           |
| `name`             | `string`           | No       | —           |
| `sortable_name`    | `string`           | No       | —           |
| `short_name`       | `string`           | No       | —           |
| `sis_user_id`      | `string`           | No       | —           |
| `login_id`         | `string`           | No       | —           |
| `email`            | `string`           | No       | —           |
| `avatar_url`       | `string`           | No       | —           |
| `locale`           | `string`           | No       | —           |
| `effective_locale` | `string`           | No       | —           |

***

### getContentSharesUnreadCount

`contentShares.getContentSharesUnreadCount`

Retrieve the count of unread content shares for the authenticated user

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.contentShares.getContentSharesUnreadCount({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | No       | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name           | Type     | Required | Description |
| -------------- | -------- | -------- | ----------- |
| `unread_count` | `number` | Yes      | —           |

***

## Conversations

### addConversationMessage

`conversations.addConversationMessage`

Add a message to an existing Canvas conversation

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.conversations.addConversationMessage({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      conversation_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name              | Type               | Required | Description |
| ----------------- | ------------------ | -------- | ----------- |
| `id`              | `string \| number` | Yes      | —           |
| `subject`         | `string`           | No       | —           |
| `workflow_state`  | `string`           | No       | —           |
| `last_message`    | `string`           | No       | —           |
| `last_message_at` | `string`           | No       | —           |
| `message_count`   | `number`           | No       | —           |
| `subscribed`      | `boolean`          | No       | —           |
| `private`         | `boolean`          | No       | —           |
| `starred`         | `boolean`          | No       | —           |

***

### addRecipientsToConversation

`conversations.addRecipientsToConversation`

Add recipients to an existing group conversation

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.conversations.addRecipientsToConversation({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      conversation_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name              | Type               | Required | Description |
| ----------------- | ------------------ | -------- | ----------- |
| `id`              | `string \| number` | Yes      | —           |
| `subject`         | `string`           | No       | —           |
| `workflow_state`  | `string`           | No       | —           |
| `last_message`    | `string`           | No       | —           |
| `last_message_at` | `string`           | No       | —           |
| `message_count`   | `number`           | No       | —           |
| `subscribed`      | `boolean`          | No       | —           |
| `private`         | `boolean`          | No       | —           |
| `starred`         | `boolean`          | No       | —           |

***

### createConversation

`conversations.createConversation`

Send messages in Canvas by creating a new conversation

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.conversations.createConversation({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | No       | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name              | Type               | Required | Description |
| ----------------- | ------------------ | -------- | ----------- |
| `id`              | `string \| number` | Yes      | —           |
| `subject`         | `string`           | No       | —           |
| `workflow_state`  | `string`           | No       | —           |
| `last_message`    | `string`           | No       | —           |
| `last_message_at` | `string`           | No       | —           |
| `message_count`   | `number`           | No       | —           |
| `subscribed`      | `boolean`          | No       | —           |
| `private`         | `boolean`          | No       | —           |
| `starred`         | `boolean`          | No       | —           |

***

### createConversationGraphQl

`conversations.createConversationGraphQl`

Create a new conversation between users in Canvas via GraphQL

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.conversations.createConversationGraphQl({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | No       | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name     | Type    | Required | Description |
| -------- | ------- | -------- | ----------- |
| `data`   | `any`   | No       | —           |
| `errors` | `any[]` | No       | —           |

***

### deleteConversationMessages

`conversations.deleteConversationMessages`

Delete specific messages from a Canvas conversation

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.conversations.deleteConversationMessages({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      conversation_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name              | Type               | Required | Description |
| ----------------- | ------------------ | -------- | ----------- |
| `id`              | `string \| number` | Yes      | —           |
| `subject`         | `string`           | No       | —           |
| `workflow_state`  | `string`           | No       | —           |
| `last_message`    | `string`           | No       | —           |
| `last_message_at` | `string`           | No       | —           |
| `message_count`   | `number`           | No       | —           |
| `subscribed`      | `boolean`          | No       | —           |
| `private`         | `boolean`          | No       | —           |
| `starred`         | `boolean`          | No       | —           |

***

### deleteConversations

`conversations.deleteConversations`

Delete one or more Canvas conversations

**Risk:** `destructive`

```ts theme={null}
await corsair.canvas.api.conversations.deleteConversations({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      conversation_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number
    } | {
      id: string | number
    }[] | undefined | null
    ```
  </Accordion>
</AccordionGroup>

***

### editConversation

`conversations.editConversation`

Update attributes for a single conversation in Canvas

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.conversations.editConversation({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      conversation_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name              | Type               | Required | Description |
| ----------------- | ------------------ | -------- | ----------- |
| `id`              | `string \| number` | Yes      | —           |
| `subject`         | `string`           | No       | —           |
| `workflow_state`  | `string`           | No       | —           |
| `last_message`    | `string`           | No       | —           |
| `last_message_at` | `string`           | No       | —           |
| `message_count`   | `number`           | No       | —           |
| `subscribed`      | `boolean`          | No       | —           |
| `private`         | `boolean`          | No       | —           |
| `starred`         | `boolean`          | No       | —           |

***

### findRecipients

`conversations.findRecipients`

Find valid recipients that the current user can send messages to

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.conversations.findRecipients({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | No       | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object[]`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number,
      name?: string,
      sortable_name?: string,
      short_name?: string,
      sis_user_id?: string | null,
      login_id?: string,
      email?: string,
      avatar_url?: string,
      locale?: string | null,
      effective_locale?: string
    }[]
    ```
  </Accordion>
</AccordionGroup>

***

### getSingleConversation

`conversations.getSingleConversation`

Retrieve detailed information for a single conversation

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.conversations.getSingleConversation({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      conversation_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name              | Type               | Required | Description |
| ----------------- | ------------------ | -------- | ----------- |
| `id`              | `string \| number` | Yes      | —           |
| `subject`         | `string`           | No       | —           |
| `workflow_state`  | `string`           | No       | —           |
| `last_message`    | `string`           | No       | —           |
| `last_message_at` | `string`           | No       | —           |
| `message_count`   | `number`           | No       | —           |
| `subscribed`      | `boolean`          | No       | —           |
| `private`         | `boolean`          | No       | —           |
| `starred`         | `boolean`          | No       | —           |

***

### getUnreadCount

`conversations.getUnreadCount`

Get the number of unread conversations for the current user

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.conversations.getUnreadCount({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | No       | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name           | Type     | Required | Description |
| -------------- | -------- | -------- | ----------- |
| `unread_count` | `number` | Yes      | —           |

***

## Course Nicknames

### clearCourseNicknames

`courseNicknames.clearCourseNicknames`

Remove all stored course nicknames for the current user

**Risk:** `destructive`

```ts theme={null}
await corsair.canvas.api.courseNicknames.clearCourseNicknames({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | No       | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number
    } | {
      id: string | number
    }[] | undefined | null
    ```
  </Accordion>
</AccordionGroup>

***

## Courses

### addCourseToFavorites

`courses.addCourseToFavorites`

Add a course to the current user favorites

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.courses.addCourseToFavorites({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name                 | Type                                                         | Required | Description |
| -------------------- | ------------------------------------------------------------ | -------- | ----------- |
| `id`                 | `string \| number`                                           | Yes      | —           |
| `name`               | `string`                                                     | No       | —           |
| `course_code`        | `string`                                                     | No       | —           |
| `uuid`               | `string`                                                     | No       | —           |
| `sis_course_id`      | `string`                                                     | No       | —           |
| `account_id`         | `string \| number`                                           | No       | —           |
| `root_account_id`    | `string \| number`                                           | No       | —           |
| `enrollment_term_id` | `string \| number`                                           | No       | —           |
| `workflow_state`     | `unpublished \| available \| completed \| deleted \| string` | No       | —           |
| `start_at`           | `string`                                                     | No       | —           |
| `end_at`             | `string`                                                     | No       | —           |
| `created_at`         | `string`                                                     | No       | —           |

***

### createCourse

`courses.createCourse`

Create a new course in Canvas within a specified account

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.courses.createCourse({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      account_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name                 | Type                                                         | Required | Description |
| -------------------- | ------------------------------------------------------------ | -------- | ----------- |
| `id`                 | `string \| number`                                           | Yes      | —           |
| `name`               | `string`                                                     | No       | —           |
| `course_code`        | `string`                                                     | No       | —           |
| `uuid`               | `string`                                                     | No       | —           |
| `sis_course_id`      | `string`                                                     | No       | —           |
| `account_id`         | `string \| number`                                           | No       | —           |
| `root_account_id`    | `string \| number`                                           | No       | —           |
| `enrollment_term_id` | `string \| number`                                           | No       | —           |
| `workflow_state`     | `unpublished \| available \| completed \| deleted \| string` | No       | —           |
| `start_at`           | `string`                                                     | No       | —           |
| `end_at`             | `string`                                                     | No       | —           |
| `created_at`         | `string`                                                     | No       | —           |

***

### getAccountCourse

`courses.getAccountCourse`

Retrieve information on a single course from a Canvas account

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.courses.getAccountCourse({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      account_id: string,
      course_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name                 | Type                                                         | Required | Description |
| -------------------- | ------------------------------------------------------------ | -------- | ----------- |
| `id`                 | `string \| number`                                           | Yes      | —           |
| `name`               | `string`                                                     | No       | —           |
| `course_code`        | `string`                                                     | No       | —           |
| `uuid`               | `string`                                                     | No       | —           |
| `sis_course_id`      | `string`                                                     | No       | —           |
| `account_id`         | `string \| number`                                           | No       | —           |
| `root_account_id`    | `string \| number`                                           | No       | —           |
| `enrollment_term_id` | `string \| number`                                           | No       | —           |
| `workflow_state`     | `unpublished \| available \| completed \| deleted \| string` | No       | —           |
| `start_at`           | `string`                                                     | No       | —           |
| `end_at`             | `string`                                                     | No       | —           |
| `created_at`         | `string`                                                     | No       | —           |

***

### getCourseLevelParticipationData

`courses.getCourseLevelParticipationData`

Retrieves daily activity analytics for a specified Canvas course

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.courses.getCourseLevelParticipationData({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `any[]`

***

### getCoursePermissions

`courses.getCoursePermissions`

Returns permission information for the calling user in the given course

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.courses.getCoursePermissions({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

***

### getSingleCourse

`courses.getSingleCourse`

Retrieve detailed information for a specific Canvas course

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.courses.getSingleCourse({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name                 | Type                                                         | Required | Description |
| -------------------- | ------------------------------------------------------------ | -------- | ----------- |
| `id`                 | `string \| number`                                           | Yes      | —           |
| `name`               | `string`                                                     | No       | —           |
| `course_code`        | `string`                                                     | No       | —           |
| `uuid`               | `string`                                                     | No       | —           |
| `sis_course_id`      | `string`                                                     | No       | —           |
| `account_id`         | `string \| number`                                           | No       | —           |
| `root_account_id`    | `string \| number`                                           | No       | —           |
| `enrollment_term_id` | `string \| number`                                           | No       | —           |
| `workflow_state`     | `unpublished \| available \| completed \| deleted \| string` | No       | —           |
| `start_at`           | `string`                                                     | No       | —           |
| `end_at`             | `string`                                                     | No       | —           |
| `created_at`         | `string`                                                     | No       | —           |

***

## Discussions

### createDiscussionEntry

`discussions.createDiscussionEntry`

Create a new entry in a Canvas discussion topic

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.discussions.createDiscussionEntry({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string,
      topic_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name              | Type               | Required | Description |
| ----------------- | ------------------ | -------- | ----------- |
| `id`              | `string \| number` | Yes      | —           |
| `title`           | `string`           | No       | —           |
| `message`         | `string`           | No       | —           |
| `html_url`        | `string`           | No       | —           |
| `posted_at`       | `string`           | No       | —           |
| `discussion_type` | `string`           | No       | —           |
| `published`       | `boolean`          | No       | —           |
| `locked`          | `boolean`          | No       | —           |
| `pinned`          | `boolean`          | No       | —           |

***

### createDiscussionEntryGraphQl

`discussions.createDiscussionEntryGraphQl`

Create a new entry in a Canvas discussion topic via GraphQL

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.discussions.createDiscussionEntryGraphQl({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | No       | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name     | Type    | Required | Description |
| -------- | ------- | -------- | ----------- |
| `data`   | `any`   | No       | —           |
| `errors` | `any[]` | No       | —           |

***

### createDiscussionTopic

`discussions.createDiscussionTopic`

Creates a new discussion topic in a specified Canvas course

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.discussions.createDiscussionTopic({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name              | Type               | Required | Description |
| ----------------- | ------------------ | -------- | ----------- |
| `id`              | `string \| number` | Yes      | —           |
| `title`           | `string`           | No       | —           |
| `message`         | `string`           | No       | —           |
| `html_url`        | `string`           | No       | —           |
| `posted_at`       | `string`           | No       | —           |
| `discussion_type` | `string`           | No       | —           |
| `published`       | `boolean`          | No       | —           |
| `locked`          | `boolean`          | No       | —           |
| `pinned`          | `boolean`          | No       | —           |

***

### createDiscussionTopicGraphQl

`discussions.createDiscussionTopicGraphQl`

Create a new discussion topic via GraphQL API

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.discussions.createDiscussionTopicGraphQl({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | No       | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name     | Type    | Required | Description |
| -------- | ------- | -------- | ----------- |
| `data`   | `any`   | No       | —           |
| `errors` | `any[]` | No       | —           |

***

### deleteAnEntry

`discussions.deleteAnEntry`

Delete a discussion entry

**Risk:** `destructive`

```ts theme={null}
await corsair.canvas.api.discussions.deleteAnEntry({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string,
      topic_id: string,
      entry_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number
    } | {
      id: string | number
    }[] | undefined | null
    ```
  </Accordion>
</AccordionGroup>

***

### deleteDiscussionEntry

`discussions.deleteDiscussionEntry`

Delete a discussion entry via GraphQL

**Risk:** `destructive`

```ts theme={null}
await corsair.canvas.api.discussions.deleteDiscussionEntry({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | No       | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name     | Type    | Required | Description |
| -------- | ------- | -------- | ----------- |
| `data`   | `any`   | No       | —           |
| `errors` | `any[]` | No       | —           |

***

### deleteDiscussionTopicGraphQl

`discussions.deleteDiscussionTopicGraphQl`

Delete a discussion topic in Canvas via GraphQL

**Risk:** `destructive`

```ts theme={null}
await corsair.canvas.api.discussions.deleteDiscussionTopicGraphQl({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | No       | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name     | Type    | Required | Description |
| -------- | ------- | -------- | ----------- |
| `data`   | `any`   | No       | —           |
| `errors` | `any[]` | No       | —           |

***

### getSingleTopic

`discussions.getSingleTopic`

Retrieve detailed information about a single discussion topic

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.discussions.getSingleTopic({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string,
      topic_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name              | Type               | Required | Description |
| ----------------- | ------------------ | -------- | ----------- |
| `id`              | `string \| number` | Yes      | —           |
| `title`           | `string`           | No       | —           |
| `message`         | `string`           | No       | —           |
| `html_url`        | `string`           | No       | —           |
| `posted_at`       | `string`           | No       | —           |
| `discussion_type` | `string`           | No       | —           |
| `published`       | `boolean`          | No       | —           |
| `locked`          | `boolean`          | No       | —           |
| `pinned`          | `boolean`          | No       | —           |

***

## Enrollments

### addLastAttendedDate

`enrollments.addLastAttendedDate`

Add or update the last attended date for a student enrollment

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.enrollments.addLastAttendedDate({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string,
      user_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name               | Type               | Required | Description |
| ------------------ | ------------------ | -------- | ----------- |
| `id`               | `string \| number` | Yes      | —           |
| `name`             | `string`           | No       | —           |
| `sortable_name`    | `string`           | No       | —           |
| `short_name`       | `string`           | No       | —           |
| `sis_user_id`      | `string`           | No       | —           |
| `login_id`         | `string`           | No       | —           |
| `email`            | `string`           | No       | —           |
| `avatar_url`       | `string`           | No       | —           |
| `locale`           | `string`           | No       | —           |
| `effective_locale` | `string`           | No       | —           |

***

### concludeDeactivateOrDeleteEnrollment

`enrollments.concludeDeactivateOrDeleteEnrollment`

Conclude, deactivate, or delete an enrollment in a Canvas course

**Risk:** `destructive`

```ts theme={null}
await corsair.canvas.api.enrollments.concludeDeactivateOrDeleteEnrollment({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string,
      enrollment_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number
    } | {
      id: string | number
    }[] | undefined | null
    ```
  </Accordion>
</AccordionGroup>

***

### createEnrollment

`enrollments.createEnrollment`

Enrolls a user in a Canvas course with a specified role and status

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.enrollments.createEnrollment({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name               | Type               | Required | Description |
| ------------------ | ------------------ | -------- | ----------- |
| `id`               | `string \| number` | Yes      | —           |
| `user_id`          | `string \| number` | No       | —           |
| `course_id`        | `string \| number` | No       | —           |
| `type`             | `string`           | No       | —           |
| `enrollment_state` | `string`           | No       | —           |
| `role`             | `string`           | No       | —           |
| `role_id`          | `string \| number` | No       | —           |
| `last_activity_at` | `string`           | No       | —           |
| `last_attended_at` | `string`           | No       | —           |

***

### getEnrollmentInvitations

`enrollments.getEnrollmentInvitations`

Retrieve pending enrollment invitations for the current user

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.enrollments.getEnrollmentInvitations({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | No       | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object[]`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number,
      user_id?: string | number,
      course_id?: string | number,
      type?: string,
      enrollment_state?: string,
      role?: string,
      role_id?: string | number,
      last_activity_at?: string | null,
      last_attended_at?: string | null
    }[]
    ```
  </Accordion>
</AccordionGroup>

***

## E Portfolios

### getAllEPortfoliosForUser

`ePortfolios.getAllEPortfoliosForUser`

Retrieve all ePortfolios for a specified user

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.ePortfolios.getAllEPortfoliosForUser({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      user_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object[]`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number,
      name?: string,
      sortable_name?: string,
      short_name?: string,
      sis_user_id?: string | null,
      login_id?: string,
      email?: string,
      avatar_url?: string,
      locale?: string | null,
      effective_locale?: string
    }[]
    ```
  </Accordion>
</AccordionGroup>

***

## Epub Exports

### createEpubExport

`epubExports.createEpubExport`

Initiate an ePub export for a course

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.epubExports.createEpubExport({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name                 | Type                                                         | Required | Description |
| -------------------- | ------------------------------------------------------------ | -------- | ----------- |
| `id`                 | `string \| number`                                           | Yes      | —           |
| `name`               | `string`                                                     | No       | —           |
| `course_code`        | `string`                                                     | No       | —           |
| `uuid`               | `string`                                                     | No       | —           |
| `sis_course_id`      | `string`                                                     | No       | —           |
| `account_id`         | `string \| number`                                           | No       | —           |
| `root_account_id`    | `string \| number`                                           | No       | —           |
| `enrollment_term_id` | `string \| number`                                           | No       | —           |
| `workflow_state`     | `unpublished \| available \| completed \| deleted \| string` | No       | —           |
| `start_at`           | `string`                                                     | No       | —           |
| `end_at`             | `string`                                                     | No       | —           |
| `created_at`         | `string`                                                     | No       | —           |

***

## External Feeds

### createExternalFeed

`externalFeeds.createExternalFeed`

Creates a new external RSS or Atom feed for a Canvas course

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.externalFeeds.createExternalFeed({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name                 | Type                                                         | Required | Description |
| -------------------- | ------------------------------------------------------------ | -------- | ----------- |
| `id`                 | `string \| number`                                           | Yes      | —           |
| `name`               | `string`                                                     | No       | —           |
| `course_code`        | `string`                                                     | No       | —           |
| `uuid`               | `string`                                                     | No       | —           |
| `sis_course_id`      | `string`                                                     | No       | —           |
| `account_id`         | `string \| number`                                           | No       | —           |
| `root_account_id`    | `string \| number`                                           | No       | —           |
| `enrollment_term_id` | `string \| number`                                           | No       | —           |
| `workflow_state`     | `unpublished \| available \| completed \| deleted \| string` | No       | —           |
| `start_at`           | `string`                                                     | No       | —           |
| `end_at`             | `string`                                                     | No       | —           |
| `created_at`         | `string`                                                     | No       | —           |

***

### createExternalFeedForGroup

`externalFeeds.createExternalFeedForGroup`

Create a new external RSS or Atom feed for a Canvas group

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.externalFeeds.createExternalFeedForGroup({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      group_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name               | Type               | Required | Description |
| ------------------ | ------------------ | -------- | ----------- |
| `id`               | `string \| number` | Yes      | —           |
| `name`             | `string`           | No       | —           |
| `description`      | `string`           | No       | —           |
| `is_public`        | `boolean`          | No       | —           |
| `followed_by_user` | `boolean`          | No       | —           |
| `join_level`       | `string`           | No       | —           |
| `members_count`    | `number`           | No       | —           |
| `avatar_url`       | `string`           | No       | —           |
| `context_type`     | `string`           | No       | —           |
| `course_id`        | `string \| number` | No       | —           |
| `account_id`       | `string \| number` | No       | —           |

***

### deleteExternalFeedFromGroup

`externalFeeds.deleteExternalFeedFromGroup`

Deletes the external feed from the specified group

**Risk:** `destructive`

```ts theme={null}
await corsair.canvas.api.externalFeeds.deleteExternalFeedFromGroup({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      group_id: string,
      external_feed_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number
    } | {
      id: string | number
    }[] | undefined | null
    ```
  </Accordion>
</AccordionGroup>

***

## External Tools

### createExternalTool

`externalTools.createExternalTool`

Create an external tool in a Canvas account

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.externalTools.createExternalTool({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      account_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name                             | Type               | Required | Description |
| -------------------------------- | ------------------ | -------- | ----------- |
| `id`                             | `string \| number` | Yes      | —           |
| `name`                           | `string`           | No       | —           |
| `uuid`                           | `string`           | No       | —           |
| `parent_account_id`              | `string \| number` | No       | —           |
| `root_account_id`                | `string \| number` | No       | —           |
| `default_storage_quota_mb`       | `number`           | No       | —           |
| `default_user_storage_quota_mb`  | `number`           | No       | —           |
| `default_group_storage_quota_mb` | `number`           | No       | —           |
| `default_time_zone`              | `string`           | No       | —           |
| `sis_account_id`                 | `string`           | No       | —           |
| `workflow_state`                 | `string`           | No       | —           |

***

### createExternalToolInCourse

`externalTools.createExternalToolInCourse`

Create an external tool in a Canvas course

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.externalTools.createExternalToolInCourse({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name                 | Type                                                         | Required | Description |
| -------------------- | ------------------------------------------------------------ | -------- | ----------- |
| `id`                 | `string \| number`                                           | Yes      | —           |
| `name`               | `string`                                                     | No       | —           |
| `course_code`        | `string`                                                     | No       | —           |
| `uuid`               | `string`                                                     | No       | —           |
| `sis_course_id`      | `string`                                                     | No       | —           |
| `account_id`         | `string \| number`                                           | No       | —           |
| `root_account_id`    | `string \| number`                                           | No       | —           |
| `enrollment_term_id` | `string \| number`                                           | No       | —           |
| `workflow_state`     | `unpublished \| available \| completed \| deleted \| string` | No       | —           |
| `start_at`           | `string`                                                     | No       | —           |
| `end_at`             | `string`                                                     | No       | —           |
| `created_at`         | `string`                                                     | No       | —           |

***

### createLtiResourceLink

`externalTools.createLtiResourceLink`

Creates a new LTI Resource Link in a Canvas course

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.externalTools.createLtiResourceLink({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name                 | Type                                                         | Required | Description |
| -------------------- | ------------------------------------------------------------ | -------- | ----------- |
| `id`                 | `string \| number`                                           | Yes      | —           |
| `name`               | `string`                                                     | No       | —           |
| `course_code`        | `string`                                                     | No       | —           |
| `uuid`               | `string`                                                     | No       | —           |
| `sis_course_id`      | `string`                                                     | No       | —           |
| `account_id`         | `string \| number`                                           | No       | —           |
| `root_account_id`    | `string \| number`                                           | No       | —           |
| `enrollment_term_id` | `string \| number`                                           | No       | —           |
| `workflow_state`     | `unpublished \| available \| completed \| deleted \| string` | No       | —           |
| `start_at`           | `string`                                                     | No       | —           |
| `end_at`             | `string`                                                     | No       | —           |
| `created_at`         | `string`                                                     | No       | —           |

***

### deleteAnExternalTool

`externalTools.deleteAnExternalTool`

Remove the specified external tool from a course

**Risk:** `destructive`

```ts theme={null}
await corsair.canvas.api.externalTools.deleteAnExternalTool({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string,
      external_tool_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number
    } | {
      id: string | number
    }[] | undefined | null
    ```
  </Accordion>
</AccordionGroup>

***

### getASingleExternalTool2

`externalTools.getASingleExternalTool2`

Retrieve detailed information for a specific external tool in a course

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.externalTools.getASingleExternalTool2({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string,
      external_tool_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name                 | Type                                                         | Required | Description |
| -------------------- | ------------------------------------------------------------ | -------- | ----------- |
| `id`                 | `string \| number`                                           | Yes      | —           |
| `name`               | `string`                                                     | No       | —           |
| `course_code`        | `string`                                                     | No       | —           |
| `uuid`               | `string`                                                     | No       | —           |
| `sis_course_id`      | `string`                                                     | No       | —           |
| `account_id`         | `string \| number`                                           | No       | —           |
| `root_account_id`    | `string \| number`                                           | No       | —           |
| `enrollment_term_id` | `string \| number`                                           | No       | —           |
| `workflow_state`     | `unpublished \| available \| completed \| deleted \| string` | No       | —           |
| `start_at`           | `string`                                                     | No       | —           |
| `end_at`             | `string`                                                     | No       | —           |
| `created_at`         | `string`                                                     | No       | —           |

***

### getSingleExternalTool

`externalTools.getSingleExternalTool`

Retrieve detailed information for a specific external tool

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.externalTools.getSingleExternalTool({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      account_id: string,
      external_tool_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name                             | Type               | Required | Description |
| -------------------------------- | ------------------ | -------- | ----------- |
| `id`                             | `string \| number` | Yes      | —           |
| `name`                           | `string`           | No       | —           |
| `uuid`                           | `string`           | No       | —           |
| `parent_account_id`              | `string \| number` | No       | —           |
| `root_account_id`                | `string \| number` | No       | —           |
| `default_storage_quota_mb`       | `number`           | No       | —           |
| `default_user_storage_quota_mb`  | `number`           | No       | —           |
| `default_group_storage_quota_mb` | `number`           | No       | —           |
| `default_time_zone`              | `string`           | No       | —           |
| `sis_account_id`                 | `string`           | No       | —           |
| `workflow_state`                 | `string`           | No       | —           |

***

## Fetch Data

### fetchData

`fetchData.fetchData`

Fetches a specific category of Canvas data (accounts, courses, users, etc.)

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.fetchData.fetchData({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      resource: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name | Type               | Required | Description |
| ---- | ------------------ | -------- | ----------- |
| `id` | `string \| number` | Yes      | —           |

***

## Files

### copyFileToFolder

`files.copyFileToFolder`

Copies an existing Canvas file to a specified destination folder

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.files.copyFileToFolder({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      dest_folder_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name           | Type               | Required | Description |
| -------------- | ------------------ | -------- | ----------- |
| `id`           | `string \| number` | Yes      | —           |
| `uuid`         | `string`           | No       | —           |
| `folder_id`    | `string \| number` | No       | —           |
| `display_name` | `string`           | No       | —           |
| `filename`     | `string`           | No       | —           |
| `content_type` | `string`           | No       | —           |
| `url`          | `string`           | No       | —           |
| `size`         | `number`           | No       | —           |
| `created_at`   | `string`           | No       | —           |
| `updated_at`   | `string`           | No       | —           |

***

### copyFolder

`files.copyFolder`

Copy a folder to another folder in Canvas

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.files.copyFolder({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      dest_folder_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name           | Type               | Required | Description |
| -------------- | ------------------ | -------- | ----------- |
| `id`           | `string \| number` | Yes      | —           |
| `uuid`         | `string`           | No       | —           |
| `folder_id`    | `string \| number` | No       | —           |
| `display_name` | `string`           | No       | —           |
| `filename`     | `string`           | No       | —           |
| `content_type` | `string`           | No       | —           |
| `url`          | `string`           | No       | —           |
| `size`         | `number`           | No       | —           |
| `created_at`   | `string`           | No       | —           |
| `updated_at`   | `string`           | No       | —           |

***

### createFiles

`files.createFiles`

Initiate file upload to Canvas (Step 1 of 3-step process)

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.files.createFiles({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name           | Type               | Required | Description |
| -------------- | ------------------ | -------- | ----------- |
| `id`           | `string \| number` | Yes      | —           |
| `uuid`         | `string`           | No       | —           |
| `folder_id`    | `string \| number` | No       | —           |
| `display_name` | `string`           | No       | —           |
| `filename`     | `string`           | No       | —           |
| `content_type` | `string`           | No       | —           |
| `url`          | `string`           | No       | —           |
| `size`         | `number`           | No       | —           |
| `created_at`   | `string`           | No       | —           |
| `updated_at`   | `string`           | No       | —           |

***

### createFolder

`files.createFolder`

Create a folder in the specified context for a user

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.files.createFolder({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      user_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name           | Type               | Required | Description |
| -------------- | ------------------ | -------- | ----------- |
| `id`           | `string \| number` | Yes      | —           |
| `uuid`         | `string`           | No       | —           |
| `folder_id`    | `string \| number` | No       | —           |
| `display_name` | `string`           | No       | —           |
| `filename`     | `string`           | No       | —           |
| `content_type` | `string`           | No       | —           |
| `url`          | `string`           | No       | —           |
| `size`         | `number`           | No       | —           |
| `created_at`   | `string`           | No       | —           |
| `updated_at`   | `string`           | No       | —           |

***

### createFolderInGroup

`files.createFolderInGroup`

Create a folder within a Canvas group

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.files.createFolderInGroup({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      group_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name           | Type               | Required | Description |
| -------------- | ------------------ | -------- | ----------- |
| `id`           | `string \| number` | Yes      | —           |
| `uuid`         | `string`           | No       | —           |
| `folder_id`    | `string \| number` | No       | —           |
| `display_name` | `string`           | No       | —           |
| `filename`     | `string`           | No       | —           |
| `content_type` | `string`           | No       | —           |
| `url`          | `string`           | No       | —           |
| `size`         | `number`           | No       | —           |
| `created_at`   | `string`           | No       | —           |
| `updated_at`   | `string`           | No       | —           |

***

### deleteFile

`files.deleteFile`

Remove a file from Canvas

**Risk:** `destructive`

```ts theme={null}
await corsair.canvas.api.files.deleteFile({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      file_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number
    } | {
      id: string | number
    }[] | undefined | null
    ```
  </Accordion>
</AccordionGroup>

***

### deleteFolder

`files.deleteFolder`

Permanently deletes an existing folder

**Risk:** `destructive`

```ts theme={null}
await corsair.canvas.api.files.deleteFolder({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      folder_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number
    } | {
      id: string | number
    }[] | undefined | null
    ```
  </Accordion>
</AccordionGroup>

***

### getFolderById

`files.getFolderById`

Retrieves the details for a specific folder by its ID

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.files.getFolderById({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      folder_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name           | Type               | Required | Description |
| -------------- | ------------------ | -------- | ----------- |
| `id`           | `string \| number` | Yes      | —           |
| `uuid`         | `string`           | No       | —           |
| `folder_id`    | `string \| number` | No       | —           |
| `display_name` | `string`           | No       | —           |
| `filename`     | `string`           | No       | —           |
| `content_type` | `string`           | No       | —           |
| `url`          | `string`           | No       | —           |
| `size`         | `number`           | No       | —           |
| `created_at`   | `string`           | No       | —           |
| `updated_at`   | `string`           | No       | —           |

***

### getGroupFolder

`files.getGroupFolder`

Retrieves the details for a folder within a Canvas group

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.files.getGroupFolder({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      group_id: string,
      folder_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name           | Type               | Required | Description |
| -------------- | ------------------ | -------- | ----------- |
| `id`           | `string \| number` | Yes      | —           |
| `uuid`         | `string`           | No       | —           |
| `folder_id`    | `string \| number` | No       | —           |
| `display_name` | `string`           | No       | —           |
| `filename`     | `string`           | No       | —           |
| `content_type` | `string`           | No       | —           |
| `url`          | `string`           | No       | —           |
| `size`         | `number`           | No       | —           |
| `created_at`   | `string`           | No       | —           |
| `updated_at`   | `string`           | No       | —           |

***

### getQuotaInformation

`files.getQuotaInformation`

Retrieves the total and used storage quota for a Canvas user

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.files.getQuotaInformation({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      user_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `quota`      | `number` | No       | —           |
| `quota_used` | `number` | No       | —           |

***

## Gradebook Columns

### createCustomGradebookColumn

`gradebookColumns.createCustomGradebookColumn`

Creates a new custom gradebook column in a course

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.gradebookColumns.createCustomGradebookColumn({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name                 | Type                                                         | Required | Description |
| -------------------- | ------------------------------------------------------------ | -------- | ----------- |
| `id`                 | `string \| number`                                           | Yes      | —           |
| `name`               | `string`                                                     | No       | —           |
| `course_code`        | `string`                                                     | No       | —           |
| `uuid`               | `string`                                                     | No       | —           |
| `sis_course_id`      | `string`                                                     | No       | —           |
| `account_id`         | `string \| number`                                           | No       | —           |
| `root_account_id`    | `string \| number`                                           | No       | —           |
| `enrollment_term_id` | `string \| number`                                           | No       | —           |
| `workflow_state`     | `unpublished \| available \| completed \| deleted \| string` | No       | —           |
| `start_at`           | `string`                                                     | No       | —           |
| `end_at`             | `string`                                                     | No       | —           |
| `created_at`         | `string`                                                     | No       | —           |

***

### deleteCustomGradebookColumn

`gradebookColumns.deleteCustomGradebookColumn`

Permanently deletes a custom gradebook column

**Risk:** `destructive`

```ts theme={null}
await corsair.canvas.api.gradebookColumns.deleteCustomGradebookColumn({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string,
      column_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number
    } | {
      id: string | number
    }[] | undefined | null
    ```
  </Accordion>
</AccordionGroup>

***

### updateCustomGradebookColumnData

`gradebookColumns.updateCustomGradebookColumnData`

Bulk updates custom gradebook column data for multiple students

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.gradebookColumns.updateCustomGradebookColumnData({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string,
      column_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name                 | Type                                                         | Required | Description |
| -------------------- | ------------------------------------------------------------ | -------- | ----------- |
| `id`                 | `string \| number`                                           | Yes      | —           |
| `name`               | `string`                                                     | No       | —           |
| `course_code`        | `string`                                                     | No       | —           |
| `uuid`               | `string`                                                     | No       | —           |
| `sis_course_id`      | `string`                                                     | No       | —           |
| `account_id`         | `string \| number`                                           | No       | —           |
| `root_account_id`    | `string \| number`                                           | No       | —           |
| `enrollment_term_id` | `string \| number`                                           | No       | —           |
| `workflow_state`     | `unpublished \| available \| completed \| deleted \| string` | No       | —           |
| `start_at`           | `string`                                                     | No       | —           |
| `end_at`             | `string`                                                     | No       | —           |
| `created_at`         | `string`                                                     | No       | —           |

***

## Grading

### createCourseGradingStandard

`grading.createCourseGradingStandard`

Create a new grading standard in a Canvas course

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.grading.createCourseGradingStandard({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name                 | Type                                                         | Required | Description |
| -------------------- | ------------------------------------------------------------ | -------- | ----------- |
| `id`                 | `string \| number`                                           | Yes      | —           |
| `name`               | `string`                                                     | No       | —           |
| `course_code`        | `string`                                                     | No       | —           |
| `uuid`               | `string`                                                     | No       | —           |
| `sis_course_id`      | `string`                                                     | No       | —           |
| `account_id`         | `string \| number`                                           | No       | —           |
| `root_account_id`    | `string \| number`                                           | No       | —           |
| `enrollment_term_id` | `string \| number`                                           | No       | —           |
| `workflow_state`     | `unpublished \| available \| completed \| deleted \| string` | No       | —           |
| `start_at`           | `string`                                                     | No       | —           |
| `end_at`             | `string`                                                     | No       | —           |
| `created_at`         | `string`                                                     | No       | —           |

***

### deleteCustomGradeStatus

`grading.deleteCustomGradeStatus`

Delete a custom grade status from Canvas

**Risk:** `destructive`

```ts theme={null}
await corsair.canvas.api.grading.deleteCustomGradeStatus({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      account_id: string,
      custom_grade_status_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number
    } | {
      id: string | number
    }[] | undefined | null
    ```
  </Accordion>
</AccordionGroup>

***

### getSingleGradingStandardIn2

`grading.getSingleGradingStandardIn2`

Retrieves a single grading standard for the given course context

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.grading.getSingleGradingStandardIn2({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string,
      grading_standard_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name                 | Type                                                         | Required | Description |
| -------------------- | ------------------------------------------------------------ | -------- | ----------- |
| `id`                 | `string \| number`                                           | Yes      | —           |
| `name`               | `string`                                                     | No       | —           |
| `course_code`        | `string`                                                     | No       | —           |
| `uuid`               | `string`                                                     | No       | —           |
| `sis_course_id`      | `string`                                                     | No       | —           |
| `account_id`         | `string \| number`                                           | No       | —           |
| `root_account_id`    | `string \| number`                                           | No       | —           |
| `enrollment_term_id` | `string \| number`                                           | No       | —           |
| `workflow_state`     | `unpublished \| available \| completed \| deleted \| string` | No       | —           |
| `start_at`           | `string`                                                     | No       | —           |
| `end_at`             | `string`                                                     | No       | —           |
| `created_at`         | `string`                                                     | No       | —           |

***

## Graphql

### getLegacyNode

`graphql.getLegacyNode`

Call Canvas GraphQL (/api/graphql); supply the query document and variables in input.body

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.graphql.getLegacyNode({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | No       | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name     | Type    | Required | Description |
| -------- | ------- | -------- | ----------- |
| `data`   | `any`   | No       | —           |
| `errors` | `any[]` | No       | —           |

***

## Group Categories

### assignUnassignedMembersToGroupCategory

`groupCategories.assignUnassignedMembersToGroupCategory`

Assign unassigned members to groups within a group category

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.groupCategories.assignUnassignedMembersToGroupCategory({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      group_category_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name               | Type               | Required | Description |
| ------------------ | ------------------ | -------- | ----------- |
| `id`               | `string \| number` | Yes      | —           |
| `name`             | `string`           | No       | —           |
| `description`      | `string`           | No       | —           |
| `is_public`        | `boolean`          | No       | —           |
| `followed_by_user` | `boolean`          | No       | —           |
| `join_level`       | `string`           | No       | —           |
| `members_count`    | `number`           | No       | —           |
| `avatar_url`       | `string`           | No       | —           |
| `context_type`     | `string`           | No       | —           |
| `course_id`        | `string \| number` | No       | —           |
| `account_id`       | `string \| number` | No       | —           |

***

### createGroupCategoryCourses

`groupCategories.createGroupCategoryCourses`

Creates a new group category within a specified Canvas course

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.groupCategories.createGroupCategoryCourses({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name               | Type               | Required | Description |
| ------------------ | ------------------ | -------- | ----------- |
| `id`               | `string \| number` | Yes      | —           |
| `name`             | `string`           | No       | —           |
| `description`      | `string`           | No       | —           |
| `is_public`        | `boolean`          | No       | —           |
| `followed_by_user` | `boolean`          | No       | —           |
| `join_level`       | `string`           | No       | —           |
| `members_count`    | `number`           | No       | —           |
| `avatar_url`       | `string`           | No       | —           |
| `context_type`     | `string`           | No       | —           |
| `course_id`        | `string \| number` | No       | —           |
| `account_id`       | `string \| number` | No       | —           |

***

### createGroupInSet

`groupCategories.createGroupInSet`

Create a new group within a Canvas group set

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.groupCategories.createGroupInSet({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      group_category_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name               | Type               | Required | Description |
| ------------------ | ------------------ | -------- | ----------- |
| `id`               | `string \| number` | Yes      | —           |
| `name`             | `string`           | No       | —           |
| `description`      | `string`           | No       | —           |
| `is_public`        | `boolean`          | No       | —           |
| `followed_by_user` | `boolean`          | No       | —           |
| `join_level`       | `string`           | No       | —           |
| `members_count`    | `number`           | No       | —           |
| `avatar_url`       | `string`           | No       | —           |
| `context_type`     | `string`           | No       | —           |
| `course_id`        | `string \| number` | No       | —           |
| `account_id`       | `string \| number` | No       | —           |

***

### createGroupSet

`groupCategories.createGroupSet`

Create a new group set (group category) in a Canvas account

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.groupCategories.createGroupSet({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      account_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name               | Type               | Required | Description |
| ------------------ | ------------------ | -------- | ----------- |
| `id`               | `string \| number` | Yes      | —           |
| `name`             | `string`           | No       | —           |
| `description`      | `string`           | No       | —           |
| `is_public`        | `boolean`          | No       | —           |
| `followed_by_user` | `boolean`          | No       | —           |
| `join_level`       | `string`           | No       | —           |
| `members_count`    | `number`           | No       | —           |
| `avatar_url`       | `string`           | No       | —           |
| `context_type`     | `string`           | No       | —           |
| `course_id`        | `string \| number` | No       | —           |
| `account_id`       | `string \| number` | No       | —           |

***

## Group Discussions

### createGroupDiscussionTopic

`groupDiscussions.createGroupDiscussionTopic`

Create a new discussion topic in a Canvas group

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.groupDiscussions.createGroupDiscussionTopic({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      group_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name              | Type               | Required | Description |
| ----------------- | ------------------ | -------- | ----------- |
| `id`              | `string \| number` | Yes      | —           |
| `title`           | `string`           | No       | —           |
| `message`         | `string`           | No       | —           |
| `html_url`        | `string`           | No       | —           |
| `posted_at`       | `string`           | No       | —           |
| `discussion_type` | `string`           | No       | —           |
| `published`       | `boolean`          | No       | —           |
| `locked`          | `boolean`          | No       | —           |
| `pinned`          | `boolean`          | No       | —           |

***

### deleteAnEntry2

`groupDiscussions.deleteAnEntry2`

Delete a discussion entry in a group discussion

**Risk:** `destructive`

```ts theme={null}
await corsair.canvas.api.groupDiscussions.deleteAnEntry2({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      group_id: string,
      topic_id: string,
      entry_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number
    } | {
      id: string | number
    }[] | undefined | null
    ```
  </Accordion>
</AccordionGroup>

***

### deleteGroupDiscussionTopic

`groupDiscussions.deleteGroupDiscussionTopic`

Deletes a discussion topic from a group

**Risk:** `destructive`

```ts theme={null}
await corsair.canvas.api.groupDiscussions.deleteGroupDiscussionTopic({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      group_id: string,
      topic_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number
    } | {
      id: string | number
    }[] | undefined | null
    ```
  </Accordion>
</AccordionGroup>

***

### duplicateGroupDiscussionTopic

`groupDiscussions.duplicateGroupDiscussionTopic`

Duplicate an existing discussion topic in a Canvas group

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.groupDiscussions.duplicateGroupDiscussionTopic({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      group_id: string,
      topic_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name              | Type               | Required | Description |
| ----------------- | ------------------ | -------- | ----------- |
| `id`              | `string \| number` | Yes      | —           |
| `title`           | `string`           | No       | —           |
| `message`         | `string`           | No       | —           |
| `html_url`        | `string`           | No       | —           |
| `posted_at`       | `string`           | No       | —           |
| `discussion_type` | `string`           | No       | —           |
| `published`       | `boolean`          | No       | —           |
| `locked`          | `boolean`          | No       | —           |
| `pinned`          | `boolean`          | No       | —           |

***

### getFullTopicGroups

`groupDiscussions.getFullTopicGroups`

Retrieve the full cached structure of a group discussion topic

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.groupDiscussions.getFullTopicGroups({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      group_id: string,
      topic_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

***

### getSingleTopic2

`groupDiscussions.getSingleTopic2`

Retrieve detailed information about a single group discussion topic

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.groupDiscussions.getSingleTopic2({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      group_id: string,
      topic_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name              | Type               | Required | Description |
| ----------------- | ------------------ | -------- | ----------- |
| `id`              | `string \| number` | Yes      | —           |
| `title`           | `string`           | No       | —           |
| `message`         | `string`           | No       | —           |
| `html_url`        | `string`           | No       | —           |
| `posted_at`       | `string`           | No       | —           |
| `discussion_type` | `string`           | No       | —           |
| `published`       | `boolean`          | No       | —           |
| `locked`          | `boolean`          | No       | —           |
| `pinned`          | `boolean`          | No       | —           |

***

## Group Memberships

### createMembership

`groupMemberships.createMembership`

Join or request to join a group

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.groupMemberships.createMembership({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      group_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name               | Type               | Required | Description |
| ------------------ | ------------------ | -------- | ----------- |
| `id`               | `string \| number` | Yes      | —           |
| `name`             | `string`           | No       | —           |
| `description`      | `string`           | No       | —           |
| `is_public`        | `boolean`          | No       | —           |
| `followed_by_user` | `boolean`          | No       | —           |
| `join_level`       | `string`           | No       | —           |
| `members_count`    | `number`           | No       | —           |
| `avatar_url`       | `string`           | No       | —           |
| `context_type`     | `string`           | No       | —           |
| `course_id`        | `string \| number` | No       | —           |
| `account_id`       | `string \| number` | No       | —           |

***

### getASingleGroupMembership

`groupMemberships.getASingleGroupMembership`

Retrieve a single group membership by its membership\_id

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.groupMemberships.getASingleGroupMembership({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      group_id: string,
      membership_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name               | Type               | Required | Description |
| ------------------ | ------------------ | -------- | ----------- |
| `id`               | `string \| number` | Yes      | —           |
| `name`             | `string`           | No       | —           |
| `description`      | `string`           | No       | —           |
| `is_public`        | `boolean`          | No       | —           |
| `followed_by_user` | `boolean`          | No       | —           |
| `join_level`       | `string`           | No       | —           |
| `members_count`    | `number`           | No       | —           |
| `avatar_url`       | `string`           | No       | —           |
| `context_type`     | `string`           | No       | —           |
| `course_id`        | `string \| number` | No       | —           |
| `account_id`       | `string \| number` | No       | —           |

***

### getASingleGroupMembership2

`groupMemberships.getASingleGroupMembership2`

Retrieve a single group membership by user\_id

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.groupMemberships.getASingleGroupMembership2({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      group_id: string,
      user_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name               | Type               | Required | Description |
| ------------------ | ------------------ | -------- | ----------- |
| `id`               | `string \| number` | Yes      | —           |
| `name`             | `string`           | No       | —           |
| `description`      | `string`           | No       | —           |
| `is_public`        | `boolean`          | No       | —           |
| `followed_by_user` | `boolean`          | No       | —           |
| `join_level`       | `string`           | No       | —           |
| `members_count`    | `number`           | No       | —           |
| `avatar_url`       | `string`           | No       | —           |
| `context_type`     | `string`           | No       | —           |
| `course_id`        | `string \| number` | No       | —           |
| `account_id`       | `string \| number` | No       | —           |

***

## Groups

### addGroupToFavorites

`groups.addGroupToFavorites`

Add a group to the current user favorites

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.groups.addGroupToFavorites({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      group_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name               | Type               | Required | Description |
| ------------------ | ------------------ | -------- | ----------- |
| `id`               | `string \| number` | Yes      | —           |
| `name`             | `string`           | No       | —           |
| `description`      | `string`           | No       | —           |
| `is_public`        | `boolean`          | No       | —           |
| `followed_by_user` | `boolean`          | No       | —           |
| `join_level`       | `string`           | No       | —           |
| `members_count`    | `number`           | No       | —           |
| `avatar_url`       | `string`           | No       | —           |
| `context_type`     | `string`           | No       | —           |
| `course_id`        | `string \| number` | No       | —           |
| `account_id`       | `string \| number` | No       | —           |

***

### createGroup

`groups.createGroup`

Create a new community group directly

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.groups.createGroup({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | No       | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name               | Type               | Required | Description |
| ------------------ | ------------------ | -------- | ----------- |
| `id`               | `string \| number` | Yes      | —           |
| `name`             | `string`           | No       | —           |
| `description`      | `string`           | No       | —           |
| `is_public`        | `boolean`          | No       | —           |
| `followed_by_user` | `boolean`          | No       | —           |
| `join_level`       | `string`           | No       | —           |
| `members_count`    | `number`           | No       | —           |
| `avatar_url`       | `string`           | No       | —           |
| `context_type`     | `string`           | No       | —           |
| `course_id`        | `string \| number` | No       | —           |
| `account_id`       | `string \| number` | No       | —           |

***

### deleteGroup

`groups.deleteGroup`

Deletes a group and removes all members

**Risk:** `destructive`

```ts theme={null}
await corsair.canvas.api.groups.deleteGroup({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      group_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number
    } | {
      id: string | number
    }[] | undefined | null
    ```
  </Accordion>
</AccordionGroup>

***

### getGroup

`groups.getGroup`

Retrieves detailed information for a single Canvas group

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.groups.getGroup({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      group_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name               | Type               | Required | Description |
| ------------------ | ------------------ | -------- | ----------- |
| `id`               | `string \| number` | Yes      | —           |
| `name`             | `string`           | No       | —           |
| `description`      | `string`           | No       | —           |
| `is_public`        | `boolean`          | No       | —           |
| `followed_by_user` | `boolean`          | No       | —           |
| `join_level`       | `string`           | No       | —           |
| `members_count`    | `number`           | No       | —           |
| `avatar_url`       | `string`           | No       | —           |
| `context_type`     | `string`           | No       | —           |
| `course_id`        | `string \| number` | No       | —           |
| `account_id`       | `string \| number` | No       | —           |

***

### getGroupActivityStreamSummary

`groups.getGroupActivityStreamSummary`

Retrieves a summary of the group-specific activity stream

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.groups.getGroupActivityStreamSummary({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      group_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `any[]`

***

### getGroupPermissions

`groups.getGroupPermissions`

Returns permission information for the calling user in the group

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.groups.getGroupPermissions({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      group_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

***

## Late Policy

### getALatePolicy

`latePolicy.getALatePolicy`

Retrieve the late policy for a Canvas course

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.latePolicy.getALatePolicy({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

***

## Modules

### createModule

`modules.createModule`

Creates a new organizational module within a specified Canvas LMS course

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.modules.createModule({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name                          | Type                   | Required | Description |
| ----------------------------- | ---------------------- | -------- | ----------- |
| `id`                          | `string \| number`     | Yes      | —           |
| `name`                        | `string`               | No       | —           |
| `position`                    | `number`               | No       | —           |
| `unlock_at`                   | `string`               | No       | —           |
| `require_sequential_progress` | `boolean`              | No       | —           |
| `publish_final_grade`         | `boolean`              | No       | —           |
| `prerequisite_module_ids`     | `(string \| number)[]` | No       | —           |
| `published`                   | `boolean`              | No       | —           |
| `items_count`                 | `number`               | No       | —           |

***

### createModuleGraphQl

`modules.createModuleGraphQl`

Create a new module in a Canvas course via GraphQL

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.modules.createModuleGraphQl({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | No       | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name     | Type    | Required | Description |
| -------- | ------- | -------- | ----------- |
| `data`   | `any`   | No       | —           |
| `errors` | `any[]` | No       | —           |

***

### createModuleItem

`modules.createModuleItem`

Create and return a new module item within a Canvas course module

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.modules.createModuleItem({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string,
      module_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name                          | Type                   | Required | Description |
| ----------------------------- | ---------------------- | -------- | ----------- |
| `id`                          | `string \| number`     | Yes      | —           |
| `name`                        | `string`               | No       | —           |
| `position`                    | `number`               | No       | —           |
| `unlock_at`                   | `string`               | No       | —           |
| `require_sequential_progress` | `boolean`              | No       | —           |
| `publish_final_grade`         | `boolean`              | No       | —           |
| `prerequisite_module_ids`     | `(string \| number)[]` | No       | —           |
| `published`                   | `boolean`              | No       | —           |
| `items_count`                 | `number`               | No       | —           |

***

### getModuleItem

`modules.getModuleItem`

Retrieve information about a specific module item by ID using GraphQL

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.modules.getModuleItem({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | No       | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name     | Type    | Required | Description |
| -------- | ------- | -------- | ----------- |
| `data`   | `any`   | No       | —           |
| `errors` | `any[]` | No       | —           |

***

### getModuleItemSequence

`modules.getModuleItemSequence`

Find the module item sequence for a given asset in a Canvas course

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.modules.getModuleItemSequence({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

***

## Outcome Groups

### createLinkOutcomeCourses

`outcomeGroups.createLinkOutcomeCourses`

Link an existing outcome or create a new outcome within a course

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.outcomeGroups.createLinkOutcomeCourses({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string,
      outcome_group_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name                 | Type                                                         | Required | Description |
| -------------------- | ------------------------------------------------------------ | -------- | ----------- |
| `id`                 | `string \| number`                                           | Yes      | —           |
| `name`               | `string`                                                     | No       | —           |
| `course_code`        | `string`                                                     | No       | —           |
| `uuid`               | `string`                                                     | No       | —           |
| `sis_course_id`      | `string`                                                     | No       | —           |
| `account_id`         | `string \| number`                                           | No       | —           |
| `root_account_id`    | `string \| number`                                           | No       | —           |
| `enrollment_term_id` | `string \| number`                                           | No       | —           |
| `workflow_state`     | `unpublished \| available \| completed \| deleted \| string` | No       | —           |
| `start_at`           | `string`                                                     | No       | —           |
| `end_at`             | `string`                                                     | No       | —           |
| `created_at`         | `string`                                                     | No       | —           |

***

### createSubgroupCourses

`outcomeGroups.createSubgroupCourses`

Creates a new empty subgroup under the outcome group

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.outcomeGroups.createSubgroupCourses({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string,
      outcome_group_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name               | Type               | Required | Description |
| ------------------ | ------------------ | -------- | ----------- |
| `id`               | `string \| number` | Yes      | —           |
| `name`             | `string`           | No       | —           |
| `description`      | `string`           | No       | —           |
| `is_public`        | `boolean`          | No       | —           |
| `followed_by_user` | `boolean`          | No       | —           |
| `join_level`       | `string`           | No       | —           |
| `members_count`    | `number`           | No       | —           |
| `avatar_url`       | `string`           | No       | —           |
| `context_type`     | `string`           | No       | —           |
| `course_id`        | `string \| number` | No       | —           |
| `account_id`       | `string \| number` | No       | —           |

***

### deleteAnOutcomeGroupCourses

`outcomeGroups.deleteAnOutcomeGroupCourses`

Deletes an outcome group from a course

**Risk:** `destructive`

```ts theme={null}
await corsair.canvas.api.outcomeGroups.deleteAnOutcomeGroupCourses({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string,
      outcome_group_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number
    } | {
      id: string | number
    }[] | undefined | null
    ```
  </Accordion>
</AccordionGroup>

***

### getAccountsOutcomeGroups

`outcomeGroups.getAccountsOutcomeGroups`

Retrieve a specific outcome group from a Canvas account

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.outcomeGroups.getAccountsOutcomeGroups({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      account_id: string,
      outcome_group_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name               | Type               | Required | Description |
| ------------------ | ------------------ | -------- | ----------- |
| `id`               | `string \| number` | Yes      | —           |
| `name`             | `string`           | No       | —           |
| `description`      | `string`           | No       | —           |
| `is_public`        | `boolean`          | No       | —           |
| `followed_by_user` | `boolean`          | No       | —           |
| `join_level`       | `string`           | No       | —           |
| `members_count`    | `number`           | No       | —           |
| `avatar_url`       | `string`           | No       | —           |
| `context_type`     | `string`           | No       | —           |
| `course_id`        | `string \| number` | No       | —           |
| `account_id`       | `string \| number` | No       | —           |

***

### getAllOutcomeGroupsForContext

`outcomeGroups.getAllOutcomeGroupsForContext`

Retrieve all outcome groups for an account context

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.outcomeGroups.getAllOutcomeGroupsForContext({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      account_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object[]`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number,
      name?: string,
      description?: string | null,
      is_public?: boolean,
      followed_by_user?: boolean,
      join_level?: string,
      members_count?: number,
      avatar_url?: string,
      context_type?: string,
      course_id?: string | number,
      account_id?: string | number
    }[]
    ```
  </Accordion>
</AccordionGroup>

***

### getAllOutcomeGroupsForContext2

`outcomeGroups.getAllOutcomeGroupsForContext2`

Retrieve all outcome groups for a course context

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.outcomeGroups.getAllOutcomeGroupsForContext2({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object[]`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number,
      name?: string,
      description?: string | null,
      is_public?: boolean,
      followed_by_user?: boolean,
      join_level?: string,
      members_count?: number,
      avatar_url?: string,
      context_type?: string,
      course_id?: string | number,
      account_id?: string | number
    }[]
    ```
  </Accordion>
</AccordionGroup>

***

### getAllOutcomeLinksForContext

`outcomeGroups.getAllOutcomeLinksForContext`

Retrieves all outcome links for an account context

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.outcomeGroups.getAllOutcomeLinksForContext({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      account_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object[]`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number,
      name?: string,
      uuid?: string,
      parent_account_id?: string | number | null,
      root_account_id?: string | number,
      default_storage_quota_mb?: number,
      default_user_storage_quota_mb?: number,
      default_group_storage_quota_mb?: number,
      default_time_zone?: string,
      sis_account_id?: string | null,
      workflow_state?: string
    }[]
    ```
  </Accordion>
</AccordionGroup>

***

### getAllOutcomeLinksForContext2

`outcomeGroups.getAllOutcomeLinksForContext2`

Retrieves all outcome links for a course context

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.outcomeGroups.getAllOutcomeLinksForContext2({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object[]`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number,
      name?: string,
      course_code?: string,
      uuid?: string,
      sis_course_id?: string | null,
      account_id?: string | number,
      root_account_id?: string | number,
      enrollment_term_id?: string | number,
      workflow_state?: unpublished | available | completed | deleted | string,
      start_at?: string | null,
      end_at?: string | null,
      created_at?: string
    }[]
    ```
  </Accordion>
</AccordionGroup>

***

### getGlobalOutcomeGroup

`outcomeGroups.getGlobalOutcomeGroup`

Retrieves a global outcome group by ID from Canvas

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.outcomeGroups.getGlobalOutcomeGroup({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      outcome_group_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name               | Type               | Required | Description |
| ------------------ | ------------------ | -------- | ----------- |
| `id`               | `string \| number` | Yes      | —           |
| `name`             | `string`           | No       | —           |
| `description`      | `string`           | No       | —           |
| `is_public`        | `boolean`          | No       | —           |
| `followed_by_user` | `boolean`          | No       | —           |
| `join_level`       | `string`           | No       | —           |
| `members_count`    | `number`           | No       | —           |
| `avatar_url`       | `string`           | No       | —           |
| `context_type`     | `string`           | No       | —           |
| `course_id`        | `string \| number` | No       | —           |
| `account_id`       | `string \| number` | No       | —           |

***

### getRootOutcomeGroupForCourse

`outcomeGroups.getRootOutcomeGroupForCourse`

Retrieves the root outcome group for a specified course context

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.outcomeGroups.getRootOutcomeGroupForCourse({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name               | Type               | Required | Description |
| ------------------ | ------------------ | -------- | ----------- |
| `id`               | `string \| number` | Yes      | —           |
| `name`             | `string`           | No       | —           |
| `description`      | `string`           | No       | —           |
| `is_public`        | `boolean`          | No       | —           |
| `followed_by_user` | `boolean`          | No       | —           |
| `join_level`       | `string`           | No       | —           |
| `members_count`    | `number`           | No       | —           |
| `avatar_url`       | `string`           | No       | —           |
| `context_type`     | `string`           | No       | —           |
| `course_id`        | `string \| number` | No       | —           |
| `account_id`       | `string \| number` | No       | —           |

***

## Outcomes

### createLearningOutcome

`outcomes.createLearningOutcome`

Create a new learning outcome in Canvas using GraphQL

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.outcomes.createLearningOutcome({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | No       | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name     | Type    | Required | Description |
| -------- | ------- | -------- | ----------- |
| `data`   | `any`   | No       | —           |
| `errors` | `any[]` | No       | —           |

***

### deleteOutcomeLinks

`outcomes.deleteOutcomeLinks`

Delete links between outcomes and content in Canvas

**Risk:** `destructive`

```ts theme={null}
await corsair.canvas.api.outcomes.deleteOutcomeLinks({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | No       | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name     | Type    | Required | Description |
| -------- | ------- | -------- | ----------- |
| `data`   | `any`   | No       | —           |
| `errors` | `any[]` | No       | —           |

***

### getAlignedAssignmentsForAnOutcome

`outcomes.getAlignedAssignmentsForAnOutcome`

Retrieves outcome alignments for a student or assignment

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.outcomes.getAlignedAssignmentsForAnOutcome({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object[]`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number,
      name?: string,
      description?: string | null,
      created_at?: string,
      updated_at?: string,
      due_at?: string | null,
      lock_at?: string | null,
      unlock_at?: string | null,
      course_id?: string | number,
      assignment_group_id?: string | number,
      points_possible?: number | null,
      grading_type?: string,
      published?: boolean,
      submission_types?: string[]
    }[]
    ```
  </Accordion>
</AccordionGroup>

***

### getOutcomeResults

`outcomes.getOutcomeResults`

Get outcome results for users and outcomes in a course context

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.outcomes.getOutcomeResults({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name              | Type     | Required | Description |
| ----------------- | -------- | -------- | ----------- |
| `outcome_results` | `any[]`  | Yes      | —           |
| `linked`          | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="linked full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

***

## Pages

### createPageForCourse

`pages.createPageForCourse`

Creates a new wiki page in a specified Canvas course

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.pages.createPageForCourse({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name                 | Type               | Required | Description |
| -------------------- | ------------------ | -------- | ----------- |
| `page_id`            | `string \| number` | No       | —           |
| `url`                | `string`           | No       | —           |
| `title`              | `string`           | No       | —           |
| `created_at`         | `string`           | No       | —           |
| `updated_at`         | `string`           | No       | —           |
| `hide_from_students` | `boolean`          | No       | —           |
| `editing_roles`      | `string`           | No       | —           |
| `published`          | `boolean`          | No       | —           |
| `front_page`         | `boolean`          | No       | —           |
| `html_url`           | `string`           | No       | —           |

***

### createPageForGroup

`pages.createPageForGroup`

Creates a new wiki page in a specified Canvas group

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.pages.createPageForGroup({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      group_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name                 | Type               | Required | Description |
| -------------------- | ------------------ | -------- | ----------- |
| `page_id`            | `string \| number` | No       | —           |
| `url`                | `string`           | No       | —           |
| `title`              | `string`           | No       | —           |
| `created_at`         | `string`           | No       | —           |
| `updated_at`         | `string`           | No       | —           |
| `hide_from_students` | `boolean`          | No       | —           |
| `editing_roles`      | `string`           | No       | —           |
| `published`          | `boolean`          | No       | —           |
| `front_page`         | `boolean`          | No       | —           |
| `html_url`           | `string`           | No       | —           |

***

### deletePageForGroup

`pages.deletePageForGroup`

Deletes a wiki page from a Canvas group

**Risk:** `destructive`

```ts theme={null}
await corsair.canvas.api.pages.deletePageForGroup({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      group_id: string,
      url_or_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number
    } | {
      id: string | number
    }[] | undefined | null
    ```
  </Accordion>
</AccordionGroup>

***

### getPageForCourse

`pages.getPageForCourse`

Retrieves a specific content page by its URL or ID from a course

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.pages.getPageForCourse({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string,
      url_or_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name                 | Type               | Required | Description |
| -------------------- | ------------------ | -------- | ----------- |
| `page_id`            | `string \| number` | No       | —           |
| `url`                | `string`           | No       | —           |
| `title`              | `string`           | No       | —           |
| `created_at`         | `string`           | No       | —           |
| `updated_at`         | `string`           | No       | —           |
| `hide_from_students` | `boolean`          | No       | —           |
| `editing_roles`      | `string`           | No       | —           |
| `published`          | `boolean`          | No       | —           |
| `front_page`         | `boolean`          | No       | —           |
| `html_url`           | `string`           | No       | —           |

***

## Peer Reviews

### getAllPeerReviews

`peerReviews.getAllPeerReviews`

Retrieves all peer reviews for a specific submission

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.peerReviews.getAllPeerReviews({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string,
      assignment_id: string,
      submission_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object[]`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number,
      name?: string,
      description?: string | null,
      created_at?: string,
      updated_at?: string,
      due_at?: string | null,
      lock_at?: string | null,
      unlock_at?: string | null,
      course_id?: string | number,
      assignment_group_id?: string | number,
      points_possible?: number | null,
      grading_type?: string,
      published?: boolean,
      submission_types?: string[]
    }[]
    ```
  </Accordion>
</AccordionGroup>

***

### getAllPeerReviewsForSectionAssignment

`peerReviews.getAllPeerReviewsForSectionAssignment`

Retrieves all peer reviews for a specific assignment within a section

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.peerReviews.getAllPeerReviewsForSectionAssignment({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      section_id: string,
      assignment_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object[]`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number,
      name?: string,
      description?: string | null,
      created_at?: string,
      updated_at?: string,
      due_at?: string | null,
      lock_at?: string | null,
      unlock_at?: string | null,
      course_id?: string | number,
      assignment_group_id?: string | number,
      points_possible?: number | null,
      grading_type?: string,
      published?: boolean,
      submission_types?: string[]
    }[]
    ```
  </Accordion>
</AccordionGroup>

***

### getAllPeerReviewsForSectionSubmission

`peerReviews.getAllPeerReviewsForSectionSubmission`

Retrieves all peer reviews for a specific submission within a section

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.peerReviews.getAllPeerReviewsForSectionSubmission({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      section_id: string,
      assignment_id: string,
      submission_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object[]`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number,
      name?: string,
      description?: string | null,
      created_at?: string,
      updated_at?: string,
      due_at?: string | null,
      lock_at?: string | null,
      unlock_at?: string | null,
      course_id?: string | number,
      assignment_group_id?: string | number,
      points_possible?: number | null,
      grading_type?: string,
      published?: boolean,
      submission_types?: string[]
    }[]
    ```
  </Accordion>
</AccordionGroup>

***

## Planner

### createPlannerNote

`planner.createPlannerNote`

Create a planner note for the current user

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.planner.createPlannerNote({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | No       | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name | Type               | Required | Description |
| ---- | ------------------ | -------- | ----------- |
| `id` | `string \| number` | Yes      | —           |

***

### createPlannerOverride

`planner.createPlannerOverride`

Create a planner override for the current user

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.planner.createPlannerOverride({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | No       | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name | Type               | Required | Description |
| ---- | ------------------ | -------- | ----------- |
| `id` | `string \| number` | Yes      | —           |

***

### deletePlannerNote

`planner.deletePlannerNote`

Delete a planner note for the current user

**Risk:** `destructive`

```ts theme={null}
await corsair.canvas.api.planner.deletePlannerNote({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      planner_note_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number
    } | {
      id: string | number
    }[] | undefined | null
    ```
  </Accordion>
</AccordionGroup>

***

### deletePlannerOverride

`planner.deletePlannerOverride`

Delete a planner override for the current user

**Risk:** `destructive`

```ts theme={null}
await corsair.canvas.api.planner.deletePlannerOverride({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      planner_override_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number
    } | {
      id: string | number
    }[] | undefined | null
    ```
  </Accordion>
</AccordionGroup>

***

## Polls

### createSinglePoll

`polls.createSinglePoll`

Create a new poll for the current user in Canvas

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.polls.createSinglePoll({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | No       | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name    | Type    | Required | Description |
| ------- | ------- | -------- | ----------- |
| `polls` | `any[]` | Yes      | —           |

***

### createSinglePollChoice

`polls.createSinglePollChoice`

Create one or more poll choices for an existing poll

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.polls.createSinglePollChoice({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      poll_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name           | Type    | Required | Description |
| -------------- | ------- | -------- | ----------- |
| `poll_choices` | `any[]` | Yes      | —           |

***

### createSinglePollSession

`polls.createSinglePollSession`

Create a new poll session for a poll in Canvas

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.polls.createSinglePollSession({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      poll_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name            | Type    | Required | Description |
| --------------- | ------- | -------- | ----------- |
| `poll_sessions` | `any[]` | Yes      | —           |

***

### createSinglePollSubmission

`polls.createSinglePollSubmission`

Create a new poll submission for a poll session

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.polls.createSinglePollSubmission({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      poll_id: string,
      poll_session_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name               | Type    | Required | Description |
| ------------------ | ------- | -------- | ----------- |
| `poll_submissions` | `any[]` | Yes      | —           |

***

### deletePoll

`polls.deletePoll`

Permanently deletes the poll identified by id

**Risk:** `destructive`

```ts theme={null}
await corsair.canvas.api.polls.deletePoll({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      poll_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number
    } | {
      id: string | number
    }[] | undefined | null
    ```
  </Accordion>
</AccordionGroup>

***

### deletePollChoice

`polls.deletePollChoice`

Delete a poll choice from a Canvas poll

**Risk:** `destructive`

```ts theme={null}
await corsair.canvas.api.polls.deletePollChoice({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      poll_id: string,
      poll_choice_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number
    } | {
      id: string | number
    }[] | undefined | null
    ```
  </Accordion>
</AccordionGroup>

***

### deletePollSession

`polls.deletePollSession`

Permanently delete a poll session from a poll

**Risk:** `destructive`

```ts theme={null}
await corsair.canvas.api.polls.deletePollSession({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      poll_id: string,
      poll_session_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number
    } | {
      id: string | number
    }[] | undefined | null
    ```
  </Accordion>
</AccordionGroup>

***

### getSinglePoll

`polls.getSinglePoll`

Retrieve a single poll by its ID from Canvas

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.polls.getSinglePoll({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      poll_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name | Type               | Required | Description |
| ---- | ------------------ | -------- | ----------- |
| `id` | `string \| number` | Yes      | —           |

***

### getSinglePollChoice

`polls.getSinglePollChoice`

Retrieve a single poll choice by its ID

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.polls.getSinglePollChoice({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      poll_id: string,
      poll_choice_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name | Type               | Required | Description |
| ---- | ------------------ | -------- | ----------- |
| `id` | `string \| number` | Yes      | —           |

***

## Quiz Reports

### abortQuizReportGeneration

`quizReports.abortQuizReportGeneration`

Aborts the generation of a quiz report or removes a previously generated one

**Risk:** `destructive`

```ts theme={null}
await corsair.canvas.api.quizReports.abortQuizReportGeneration({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string,
      quiz_id: string,
      report_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number
    } | {
      id: string | number
    }[] | undefined | null
    ```
  </Accordion>
</AccordionGroup>

***

### createQuizReport

`quizReports.createQuizReport`

Create a quiz report in Canvas (student or item analysis)

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.quizReports.createQuizReport({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string,
      quiz_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name              | Type               | Required | Description |
| ----------------- | ------------------ | -------- | ----------- |
| `id`              | `string \| number` | Yes      | —           |
| `title`           | `string`           | No       | —           |
| `html_url`        | `string`           | No       | —           |
| `mobile_url`      | `string`           | No       | —           |
| `description`     | `string`           | No       | —           |
| `quiz_type`       | `string`           | No       | —           |
| `assignment_id`   | `string \| number` | No       | —           |
| `time_limit`      | `number`           | No       | —           |
| `published`       | `boolean`          | No       | —           |
| `points_possible` | `number`           | No       | —           |

***

### getQuizReport

`quizReports.getQuizReport`

Retrieves the data for a single quiz report

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.quizReports.getQuizReport({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string,
      quiz_id: string,
      report_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name              | Type               | Required | Description |
| ----------------- | ------------------ | -------- | ----------- |
| `id`              | `string \| number` | Yes      | —           |
| `title`           | `string`           | No       | —           |
| `html_url`        | `string`           | No       | —           |
| `mobile_url`      | `string`           | No       | —           |
| `description`     | `string`           | No       | —           |
| `quiz_type`       | `string`           | No       | —           |
| `assignment_id`   | `string \| number` | No       | —           |
| `time_limit`      | `number`           | No       | —           |
| `published`       | `boolean`          | No       | —           |
| `points_possible` | `number`           | No       | —           |

***

## Quizzes

### answerQuizQuestions

`quizzes.answerQuizQuestions`

Provide or update answers to quiz questions for a quiz submission

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.quizzes.answerQuizQuestions({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      quiz_submission_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name              | Type               | Required | Description |
| ----------------- | ------------------ | -------- | ----------- |
| `id`              | `string \| number` | Yes      | —           |
| `title`           | `string`           | No       | —           |
| `html_url`        | `string`           | No       | —           |
| `mobile_url`      | `string`           | No       | —           |
| `description`     | `string`           | No       | —           |
| `quiz_type`       | `string`           | No       | —           |
| `assignment_id`   | `string \| number` | No       | —           |
| `time_limit`      | `number`           | No       | —           |
| `published`       | `boolean`          | No       | —           |
| `points_possible` | `number`           | No       | —           |

***

### createQuestionGroup

`quizzes.createQuestionGroup`

Create one or more question groups for a quiz

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.quizzes.createQuestionGroup({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string,
      quiz_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name              | Type               | Required | Description |
| ----------------- | ------------------ | -------- | ----------- |
| `id`              | `string \| number` | Yes      | —           |
| `title`           | `string`           | No       | —           |
| `html_url`        | `string`           | No       | —           |
| `mobile_url`      | `string`           | No       | —           |
| `description`     | `string`           | No       | —           |
| `quiz_type`       | `string`           | No       | —           |
| `assignment_id`   | `string \| number` | No       | —           |
| `time_limit`      | `number`           | No       | —           |
| `published`       | `boolean`          | No       | —           |
| `points_possible` | `number`           | No       | —           |

***

### createQuiz

`quizzes.createQuiz`

Creates a new quiz with various settings in a Canvas course

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.quizzes.createQuiz({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name              | Type               | Required | Description |
| ----------------- | ------------------ | -------- | ----------- |
| `id`              | `string \| number` | Yes      | —           |
| `title`           | `string`           | No       | —           |
| `html_url`        | `string`           | No       | —           |
| `mobile_url`      | `string`           | No       | —           |
| `description`     | `string`           | No       | —           |
| `quiz_type`       | `string`           | No       | —           |
| `assignment_id`   | `string \| number` | No       | —           |
| `time_limit`      | `number`           | No       | —           |
| `published`       | `boolean`          | No       | —           |
| `points_possible` | `number`           | No       | —           |

***

### createQuizQuestion

`quizzes.createQuizQuestion`

Creates a new question for an existing quiz within a course

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.quizzes.createQuizQuestion({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string,
      quiz_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name              | Type               | Required | Description |
| ----------------- | ------------------ | -------- | ----------- |
| `id`              | `string \| number` | Yes      | —           |
| `title`           | `string`           | No       | —           |
| `html_url`        | `string`           | No       | —           |
| `mobile_url`      | `string`           | No       | —           |
| `description`     | `string`           | No       | —           |
| `quiz_type`       | `string`           | No       | —           |
| `assignment_id`   | `string \| number` | No       | —           |
| `time_limit`      | `number`           | No       | —           |
| `published`       | `boolean`          | No       | —           |
| `points_possible` | `number`           | No       | —           |

***

### createQuizSubmission

`quizzes.createQuizSubmission`

Start taking a quiz by creating a quiz submission

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.quizzes.createQuizSubmission({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string,
      quiz_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name              | Type               | Required | Description |
| ----------------- | ------------------ | -------- | ----------- |
| `id`              | `string \| number` | Yes      | —           |
| `title`           | `string`           | No       | —           |
| `html_url`        | `string`           | No       | —           |
| `mobile_url`      | `string`           | No       | —           |
| `description`     | `string`           | No       | —           |
| `quiz_type`       | `string`           | No       | —           |
| `assignment_id`   | `string \| number` | No       | —           |
| `time_limit`      | `number`           | No       | —           |
| `published`       | `boolean`          | No       | —           |
| `points_possible` | `number`           | No       | —           |

***

### deleteQuiz

`quizzes.deleteQuiz`

Permanently deletes the quiz identified by quiz\_id from the course

**Risk:** `destructive`

```ts theme={null}
await corsair.canvas.api.quizzes.deleteQuiz({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string,
      quiz_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number
    } | {
      id: string | number
    }[] | undefined | null
    ```
  </Accordion>
</AccordionGroup>

***

### editQuiz

`quizzes.editQuiz`

Modifies an existing Canvas quiz

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.quizzes.editQuiz({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string,
      quiz_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name              | Type               | Required | Description |
| ----------------- | ------------------ | -------- | ----------- |
| `id`              | `string \| number` | Yes      | —           |
| `title`           | `string`           | No       | —           |
| `html_url`        | `string`           | No       | —           |
| `mobile_url`      | `string`           | No       | —           |
| `description`     | `string`           | No       | —           |
| `quiz_type`       | `string`           | No       | —           |
| `assignment_id`   | `string \| number` | No       | —           |
| `time_limit`      | `number`           | No       | —           |
| `published`       | `boolean`          | No       | —           |
| `points_possible` | `number`           | No       | —           |

***

### getQuizStatistics

`quizzes.getQuizStatistics`

Fetch the latest quiz statistics for a Canvas quiz

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.quizzes.getQuizStatistics({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string,
      quiz_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name              | Type    | Required | Description |
| ----------------- | ------- | -------- | ----------- |
| `quiz_statistics` | `any[]` | Yes      | —           |

***

### getSingleQuiz

`quizzes.getSingleQuiz`

Retrieves detailed information for a specific quiz in a course

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.quizzes.getSingleQuiz({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string,
      quiz_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name              | Type               | Required | Description |
| ----------------- | ------------------ | -------- | ----------- |
| `id`              | `string \| number` | Yes      | —           |
| `title`           | `string`           | No       | —           |
| `html_url`        | `string`           | No       | —           |
| `mobile_url`      | `string`           | No       | —           |
| `description`     | `string`           | No       | —           |
| `quiz_type`       | `string`           | No       | —           |
| `assignment_id`   | `string \| number` | No       | —           |
| `time_limit`      | `number`           | No       | —           |
| `published`       | `boolean`          | No       | —           |
| `points_possible` | `number`           | No       | —           |

***

## Rubrics

### createRubric

`rubrics.createRubric`

Create a rubric in a Canvas course

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.rubrics.createRubric({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name                 | Type                                                         | Required | Description |
| -------------------- | ------------------------------------------------------------ | -------- | ----------- |
| `id`                 | `string \| number`                                           | Yes      | —           |
| `name`               | `string`                                                     | No       | —           |
| `course_code`        | `string`                                                     | No       | —           |
| `uuid`               | `string`                                                     | No       | —           |
| `sis_course_id`      | `string`                                                     | No       | —           |
| `account_id`         | `string \| number`                                           | No       | —           |
| `root_account_id`    | `string \| number`                                           | No       | —           |
| `enrollment_term_id` | `string \| number`                                           | No       | —           |
| `workflow_state`     | `unpublished \| available \| completed \| deleted \| string` | No       | —           |
| `start_at`           | `string`                                                     | No       | —           |
| `end_at`             | `string`                                                     | No       | —           |
| `created_at`         | `string`                                                     | No       | —           |

***

### getAssignmentRubric

`rubrics.getAssignmentRubric`

Fetches the detailed rubric for a specified assignment

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.rubrics.getAssignmentRubric({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string,
      assignment_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name                  | Type               | Required | Description |
| --------------------- | ------------------ | -------- | ----------- |
| `id`                  | `string \| number` | Yes      | —           |
| `name`                | `string`           | No       | —           |
| `description`         | `string`           | No       | —           |
| `created_at`          | `string`           | No       | —           |
| `updated_at`          | `string`           | No       | —           |
| `due_at`              | `string`           | No       | —           |
| `lock_at`             | `string`           | No       | —           |
| `unlock_at`           | `string`           | No       | —           |
| `course_id`           | `string \| number` | No       | —           |
| `assignment_group_id` | `string \| number` | No       | —           |
| `points_possible`     | `number`           | No       | —           |
| `grading_type`        | `string`           | No       | —           |
| `published`           | `boolean`          | No       | —           |
| `submission_types`    | `string[]`         | No       | —           |

***

### getRubricAssessmentsReadState

`rubrics.getRubricAssessmentsReadState`

Check whether rubric comments/grading have been seen by the student

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.rubrics.getRubricAssessmentsReadState({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string,
      assignment_id: string,
      submission_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

***

### getRubricsUploadTemplate

`rubrics.getRubricsUploadTemplate`

Retrieve a CSV template file for importing rubrics

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.rubrics.getRubricsUploadTemplate({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    string | {
      id: string | number
    } | undefined
    ```
  </Accordion>
</AccordionGroup>

***

## Submissions

### createSubmissionDraft

`submissions.createSubmissionDraft`

Create a draft submission for an assignment in Canvas via GraphQL

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.submissions.createSubmissionDraft({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | No       | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name     | Type    | Required | Description |
| -------- | ------- | -------- | ----------- |
| `data`   | `any`   | No       | —           |
| `errors` | `any[]` | No       | —           |

***

### deleteSubmissionDraft

`submissions.deleteSubmissionDraft`

Delete a submission draft in Canvas via GraphQL

**Risk:** `destructive`

```ts theme={null}
await corsair.canvas.api.submissions.deleteSubmissionDraft({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | No       | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name     | Type    | Required | Description |
| -------- | ------- | -------- | ----------- |
| `data`   | `any`   | No       | —           |
| `errors` | `any[]` | No       | —           |

***

### getAUsersMostRecentlyGraded

`submissions.getAUsersMostRecentlyGraded`

Retrieves a user most recently graded submissions

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.submissions.getAUsersMostRecentlyGraded({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      user_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object[]`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number,
      name?: string,
      sortable_name?: string,
      short_name?: string,
      sis_user_id?: string | null,
      login_id?: string,
      email?: string,
      avatar_url?: string,
      locale?: string | null,
      effective_locale?: string
    }[]
    ```
  </Accordion>
</AccordionGroup>

***

## User Custom Data

### createUsersCustomData

`userCustomData.createUsersCustomData`

Create or update custom data for a Canvas user within a specified namespace

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.userCustomData.createUsersCustomData({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      user_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name               | Type               | Required | Description |
| ------------------ | ------------------ | -------- | ----------- |
| `id`               | `string \| number` | Yes      | —           |
| `name`             | `string`           | No       | —           |
| `sortable_name`    | `string`           | No       | —           |
| `short_name`       | `string`           | No       | —           |
| `sis_user_id`      | `string`           | No       | —           |
| `login_id`         | `string`           | No       | —           |
| `email`            | `string`           | No       | —           |
| `avatar_url`       | `string`           | No       | —           |
| `locale`           | `string`           | No       | —           |
| `effective_locale` | `string`           | No       | —           |

***

### deleteCustomData

`userCustomData.deleteCustomData`

Delete custom user data for a given namespace

**Risk:** `destructive`

```ts theme={null}
await corsair.canvas.api.userCustomData.deleteCustomData({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      user_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number
    } | {
      id: string | number
    }[] | undefined | null
    ```
  </Accordion>
</AccordionGroup>

***

### deleteUsersCustomDataScope

`userCustomData.deleteUsersCustomDataScope`

Delete custom user data at a specific scope path

**Risk:** `destructive`

```ts theme={null}
await corsair.canvas.api.userCustomData.deleteUsersCustomDataScope({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      user_id: string,
      scope: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number
    } | {
      id: string | number
    }[] | undefined | null
    ```
  </Accordion>
</AccordionGroup>

***

### getUsersCustomDataScope

`userCustomData.getUsersCustomDataScope`

Retrieve custom data stored for a Canvas user

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.userCustomData.getUsersCustomDataScope({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      user_id: string,
      scope: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name               | Type               | Required | Description |
| ------------------ | ------------------ | -------- | ----------- |
| `id`               | `string \| number` | Yes      | —           |
| `name`             | `string`           | No       | —           |
| `sortable_name`    | `string`           | No       | —           |
| `short_name`       | `string`           | No       | —           |
| `sis_user_id`      | `string`           | No       | —           |
| `login_id`         | `string`           | No       | —           |
| `email`            | `string`           | No       | —           |
| `avatar_url`       | `string`           | No       | —           |
| `locale`           | `string`           | No       | —           |
| `effective_locale` | `string`           | No       | —           |

***

## User Inbox Labels

### createUserInboxLabel

`userInboxLabels.createUserInboxLabel`

Create new user inbox labels in Canvas

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.userInboxLabels.createUserInboxLabel({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | No       | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name               | Type               | Required | Description |
| ------------------ | ------------------ | -------- | ----------- |
| `id`               | `string \| number` | Yes      | —           |
| `name`             | `string`           | No       | —           |
| `sortable_name`    | `string`           | No       | —           |
| `short_name`       | `string`           | No       | —           |
| `sis_user_id`      | `string`           | No       | —           |
| `login_id`         | `string`           | No       | —           |
| `email`            | `string`           | No       | —           |
| `avatar_url`       | `string`           | No       | —           |
| `locale`           | `string`           | No       | —           |
| `effective_locale` | `string`           | No       | —           |

***

### deleteUserInboxLabel

`userInboxLabels.deleteUserInboxLabel`

Delete user inbox labels in Canvas

**Risk:** `destructive`

```ts theme={null}
await corsair.canvas.api.userInboxLabels.deleteUserInboxLabel({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | No       | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number
    } | {
      id: string | number
    }[] | undefined | null
    ```
  </Accordion>
</AccordionGroup>

***

## Users

### editUser

`users.editUser`

Modifies an existing Canvas user profile and settings

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.users.editUser({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      user_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name               | Type               | Required | Description |
| ------------------ | ------------------ | -------- | ----------- |
| `id`               | `string \| number` | Yes      | —           |
| `name`             | `string`           | No       | —           |
| `sortable_name`    | `string`           | No       | —           |
| `short_name`       | `string`           | No       | —           |
| `sis_user_id`      | `string`           | No       | —           |
| `login_id`         | `string`           | No       | —           |
| `email`            | `string`           | No       | —           |
| `avatar_url`       | `string`           | No       | —           |
| `locale`           | `string`           | No       | —           |
| `effective_locale` | `string`           | No       | —           |

***

### getAllUsers

`users.getAllUsers`

Retrieves a list of users for a specified Canvas account

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.users.getAllUsers({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      account_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object[]`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number,
      name?: string,
      uuid?: string,
      parent_account_id?: string | number | null,
      root_account_id?: string | number,
      default_storage_quota_mb?: number,
      default_user_storage_quota_mb?: number,
      default_group_storage_quota_mb?: number,
      default_time_zone?: string,
      sis_account_id?: string | null,
      workflow_state?: string
    }[]
    ```
  </Accordion>
</AccordionGroup>

***

### getCurrentUser

`users.getCurrentUser`

Retrieves detailed information about the currently authenticated user

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.users.getCurrentUser({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | No       | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name               | Type               | Required | Description |
| ------------------ | ------------------ | -------- | ----------- |
| `id`               | `string \| number` | Yes      | —           |
| `name`             | `string`           | No       | —           |
| `sortable_name`    | `string`           | No       | —           |
| `short_name`       | `string`           | No       | —           |
| `sis_user_id`      | `string`           | No       | —           |
| `login_id`         | `string`           | No       | —           |
| `email`            | `string`           | No       | —           |
| `avatar_url`       | `string`           | No       | —           |
| `locale`           | `string`           | No       | —           |
| `effective_locale` | `string`           | No       | —           |

***

### getCustomColor

`users.getCustomColor`

Retrieve the custom color for a specific course or context

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.users.getCustomColor({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      user_id: string,
      asset_string: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

***

### getCustomColors

`users.getCustomColors`

Retrieve all custom colors saved by a user in Canvas LMS

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.users.getCustomColors({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      user_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

***

### getDashboardPositions

`users.getDashboardPositions`

Retrieve all dashboard positions saved for a user

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.users.getDashboardPositions({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      user_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

***

### getSingleUser

`users.getSingleUser`

Retrieves detailed information for a single user in a Canvas course

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.users.getSingleUser({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      course_id: string,
      user_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name               | Type               | Required | Description |
| ------------------ | ------------------ | -------- | ----------- |
| `id`               | `string \| number` | Yes      | —           |
| `name`             | `string`           | No       | —           |
| `sortable_name`    | `string`           | No       | —           |
| `short_name`       | `string`           | No       | —           |
| `sis_user_id`      | `string`           | No       | —           |
| `login_id`         | `string`           | No       | —           |
| `email`            | `string`           | No       | —           |
| `avatar_url`       | `string`           | No       | —           |
| `locale`           | `string`           | No       | —           |
| `effective_locale` | `string`           | No       | —           |

***

### getUserAvatars

`users.getUserAvatars`

Retrieve available avatar options for a Canvas user

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.users.getUserAvatars({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      user_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object[]`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number,
      name?: string,
      sortable_name?: string,
      short_name?: string,
      sis_user_id?: string | null,
      login_id?: string,
      email?: string,
      avatar_url?: string,
      locale?: string | null,
      effective_locale?: string
    }[]
    ```
  </Accordion>
</AccordionGroup>

***

### getUserProfile

`users.getUserProfile`

Retrieves profile information for an existing Canvas user

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.users.getUserProfile({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      user_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name           | Type               | Required | Description |
| -------------- | ------------------ | -------- | ----------- |
| `id`           | `string \| number` | Yes      | —           |
| `uuid`         | `string`           | No       | —           |
| `folder_id`    | `string \| number` | No       | —           |
| `display_name` | `string`           | No       | —           |
| `filename`     | `string`           | No       | —           |
| `content_type` | `string`           | No       | —           |
| `url`          | `string`           | No       | —           |
| `size`         | `number`           | No       | —           |
| `created_at`   | `string`           | No       | —           |
| `updated_at`   | `string`           | No       | —           |

***

## User Tokens

### createUsersTokens

`userTokens.createUsersTokens`

Create a new access token for a Canvas user

**Risk:** `write`

```ts theme={null}
await corsair.canvas.api.userTokens.createUsersTokens({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      user_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name               | Type               | Required | Description |
| ------------------ | ------------------ | -------- | ----------- |
| `id`               | `string \| number` | Yes      | —           |
| `name`             | `string`           | No       | —           |
| `sortable_name`    | `string`           | No       | —           |
| `short_name`       | `string`           | No       | —           |
| `sis_user_id`      | `string`           | No       | —           |
| `login_id`         | `string`           | No       | —           |
| `email`            | `string`           | No       | —           |
| `avatar_url`       | `string`           | No       | —           |
| `locale`           | `string`           | No       | —           |
| `effective_locale` | `string`           | No       | —           |

***

### deleteAccessToken

`userTokens.deleteAccessToken`

Delete an access token for a Canvas user

**Risk:** `destructive`

```ts theme={null}
await corsair.canvas.api.userTokens.deleteAccessToken({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      user_id: string,
      token_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string | number
    } | {
      id: string | number
    }[] | undefined | null
    ```
  </Accordion>
</AccordionGroup>

***

### getUsersTokens

`userTokens.getUsersTokens`

Retrieves detailed information about a specific access token

**Risk:** `read`

```ts theme={null}
await corsair.canvas.api.userTokens.getUsersTokens({});
```

**Input**

| Name         | Type     | Required | Description |
| ------------ | -------- | -------- | ----------- |
| `pathParams` | `object` | Yes      | —           |
| `query`      | `object` | No       | —           |
| `body`       | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="pathParams full type">
    ```ts theme={null}
    {
      user_id: string,
      token_id: string
    }
    ```
  </Accordion>

  <Accordion title="query full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="body full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name               | Type               | Required | Description |
| ------------------ | ------------------ | -------- | ----------- |
| `id`               | `string \| number` | Yes      | —           |
| `name`             | `string`           | No       | —           |
| `sortable_name`    | `string`           | No       | —           |
| `short_name`       | `string`           | No       | —           |
| `sis_user_id`      | `string`           | No       | —           |
| `login_id`         | `string`           | No       | —           |
| `email`            | `string`           | No       | —           |
| `avatar_url`       | `string`           | No       | —           |
| `locale`           | `string`           | No       | —           |
| `effective_locale` | `string`           | No       | —           |

***
