- [JSON representation](https://developers.google.com/workspace/classroom/reference/rest/v1/Material#SCHEMA_REPRESENTATION)
- [SharedDriveFile](https://developers.google.com/workspace/classroom/reference/rest/v1/Material#SharedDriveFile)
  - [JSON representation](https://developers.google.com/workspace/classroom/reference/rest/v1/Material#SharedDriveFile.SCHEMA_REPRESENTATION)
- [ShareMode](https://developers.google.com/workspace/classroom/reference/rest/v1/Material#ShareMode)
- [GeminiGem](https://developers.google.com/workspace/classroom/reference/rest/v1/Material#GeminiGem)
  - [JSON representation](https://developers.google.com/workspace/classroom/reference/rest/v1/Material#GeminiGem.SCHEMA_REPRESENTATION)
- [NotebookLmNotebook](https://developers.google.com/workspace/classroom/reference/rest/v1/Material#NotebookLmNotebook)
  - [JSON representation](https://developers.google.com/workspace/classroom/reference/rest/v1/Material#NotebookLmNotebook.SCHEMA_REPRESENTATION)

Material attached to course work.

When creating attachments, setting the `form`, `gem`, or `notebook` field is not supported.

| JSON representation |
|---|
| ``` { "driveFile": { object (`https://developers.google.com/workspace/classroom/reference/rest/v1/Material#SharedDriveFile`) }, "youtubeVideo": { object (`https://developers.google.com/workspace/classroom/reference/rest/v1/YouTubeVideo`) }, "link": { object (`https://developers.google.com/workspace/classroom/reference/rest/v1/Link`) }, "form": { object (`https://developers.google.com/workspace/classroom/reference/rest/v1/Form`) }, "gem": { object (`https://developers.google.com/workspace/classroom/reference/rest/v1/Material#GeminiGem`) }, "notebook": { object (`https://developers.google.com/workspace/classroom/reference/rest/v1/Material#NotebookLmNotebook`) } } ``` |

| Fields ||
|---|---|
| Material content. The following is a list of mutually exclusive fields. At most one of the fields will be set in a response: ||
| `driveFile` | ``object (`https://developers.google.com/workspace/classroom/reference/rest/v1/Material#SharedDriveFile`)`` Google Drive file material. |
| `youtubeVideo` | ``object (`https://developers.google.com/workspace/classroom/reference/rest/v1/YouTubeVideo`)`` YouTube video material. |
| `link` | ``object (`https://developers.google.com/workspace/classroom/reference/rest/v1/Link`)`` Link material. On creation, this is upgraded to a more appropriate type if possible, and this is reflected in the response. |
| `form` | ``object (`https://developers.google.com/workspace/classroom/reference/rest/v1/Form`)`` Google Forms material. Read-only. |
| `gem` | ``object (`https://developers.google.com/workspace/classroom/reference/rest/v1/Material#GeminiGem`)`` Gemini Gem material. Read-only. |
| `notebook` | ``object (`https://developers.google.com/workspace/classroom/reference/rest/v1/Material#NotebookLmNotebook`)`` NotebookLM Notebook material. Read-only. |
| End of mutually exclusive fields. ||

## SharedDriveFile

Drive file that is used as material for course work.

| JSON representation |
|---|
| ``` { "driveFile": { object (`https://developers.google.com/workspace/classroom/reference/rest/v1/DriveFile`) }, "shareMode": enum (`https://developers.google.com/workspace/classroom/reference/rest/v1/Material#ShareMode`) } ``` |

| Fields ||
|---|---|
| `driveFile` | ``object (`https://developers.google.com/workspace/classroom/reference/rest/v1/DriveFile`)`` Drive file details. |
| `shareMode` | ``enum (`https://developers.google.com/workspace/classroom/reference/rest/v1/Material#ShareMode`)`` Mechanism by which students access the Drive item. |

## ShareMode

Possible sharing options. Defaults to VIEW if left unspecified, and other values may only be specified within a course work object of type ASSIGNMENT.

| Enums ||
|---|---|
| `UNKNOWN_SHARE_MODE` | No sharing mode specified. This should never be returned. |
| `VIEW` | Students can view the shared file. |
| `EDIT` | Students can edit the shared file. |
| `STUDENT_COPY` | Students have a personal copy of the shared file. |

## GeminiGem

Gemini Gem link.

| JSON representation |
|---|
| ``` { "id": string, "title": string, "url": string } ``` |

| Fields ||
|---|---|
| `id` | `string` Gems resource id. |
| `title` | `string` Title of the Gem. |
| `url` | `string` URL that can be used to access the Gem. |

## NotebookLmNotebook

NotebookLM Notebook link.

| JSON representation |
|---|
| ``` { "id": string, "title": string, "url": string } ``` |

| Fields ||
|---|---|
| `id` | `string` Notebook resource id. |
| `title` | `string` Title of the Notebook. |
| `url` | `string` URL that can be used to access the Notebook. |