/** * Athena API * REST API for the Athena system * * The version of the OpenAPI document: 1.0.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech * Do not edit the class manually. */ import type { StudyObjectiveFileAttachment } from './StudyObjectiveFileAttachment'; import type { StudyObjectiveCanvasDocument } from './StudyObjectiveCanvasDocument'; /** * * @export * @interface StudyObjective */ export interface StudyObjective { /** * * @type {string} * @memberof StudyObjective */ id: string; /** * * @type {string} * @memberof StudyObjective */ accountUserId: string; /** * Canvas course this objective belongs to, or null when it was filed into a study space that has no Canvas course. A null course id means no Canvas surface applies to the objective, and it is discoverable only through the space-scoped list (a single-item GET by id still works). * @type {string} * @memberof StudyObjective */ courseId: string | null; /** * study_spaces.id of the space this objective is filed in. The only route from an objective back to its space, which is what a client needs when `courseId` is null and no course can stand in for it. Null only on rows predating the study-space rollout. * @type {string} * @memberof StudyObjective */ studySpaceId: string | null; /** * canvas_objects.id of the mirrored Canvas object this objective derives from, or null for user-created objectives. * @type {string} * @memberof StudyObjective */ canvasObjectId: string | null; /** * Canvas-native reference of the mirrored object ('{type}:{local_id}', e.g. 'assignment:67890'), or null for custom/syllabus objectives. A stable join key for pairing a read-back objective with its live Canvas candidate without an upsert round-trip. * @type {string} * @memberof StudyObjective */ canvasObjectRef: string | null; /** * Origin of the objective: 'user' (client-created) or 'syllabus' (derived internally). Read-only. * @type {string} * @memberof StudyObjective */ source: StudyObjectiveSourceEnum; /** * * @type {string} * @memberof StudyObjective */ title: string; /** * * @type {string} * @memberof StudyObjective */ notes: string | null; /** * * @type {Array} * @memberof StudyObjective */ fileAttachments: Array; /** * * @type {Array} * @memberof StudyObjective */ canvasDocuments: Array; /** * * @type {Date} * @memberof StudyObjective */ dueAt: Date | null; /** * When this objective was archived, or null if it is active. Per-user state; archiving never affects the shared Canvas object or other students' objectives. * @type {Date} * @memberof StudyObjective */ archivedAt: Date | null; /** * * @type {Date} * @memberof StudyObjective */ createdAt: Date; /** * * @type {Date} * @memberof StudyObjective */ updatedAt: Date; } /** * @export */ export declare const StudyObjectiveSourceEnum: { readonly User: "user"; readonly Syllabus: "syllabus"; }; export type StudyObjectiveSourceEnum = typeof StudyObjectiveSourceEnum[keyof typeof StudyObjectiveSourceEnum]; /** * Check if a given object implements the StudyObjective interface. */ export declare function instanceOfStudyObjective(value: object): value is StudyObjective; export declare function StudyObjectiveFromJSON(json: any): StudyObjective; export declare function StudyObjectiveFromJSONTyped(json: any, ignoreDiscriminator: boolean): StudyObjective; export declare function StudyObjectiveToJSON(json: any): StudyObjective; export declare function StudyObjectiveToJSONTyped(value?: StudyObjective | null, ignoreDiscriminator?: boolean): any;