/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 */
import * as z from "zod";
import { safeParse } from "../../lib/schemas.js";
export const GetTeacherStatus = {
    Active: "active",
    Tobedeleted: "tobedeleted",
};
export const GetTeacherRoleType = {
    Primary: "primary",
    Secondary: "secondary",
};
export const GetTeacherRoleEnum = {
    Administrator: "administrator",
    Aide: "aide",
    Guardian: "guardian",
    Parent: "parent",
    Proctor: "proctor",
    Relative: "relative",
    Student: "student",
    Teacher: "teacher",
};
export const GetTeacherType = {
    AcademicSession: "academicSession",
    AssessmentLineItem: "assessmentLineItem",
    Category: "category",
    Class: "class",
    Course: "course",
    Demographics: "demographics",
    Enrollment: "enrollment",
    GradingPeriod: "gradingPeriod",
    LineItem: "lineItem",
    Org: "org",
    Resource: "resource",
    Result: "result",
    ScoreScale: "scoreScale",
    Student: "student",
    Teacher: "teacher",
    Term: "term",
    User: "user",
    ComponentResource: "componentResource",
    CourseComponent: "courseComponent",
};
/** @internal */
export const GetTeacherRequest$inboundSchema = z.object({
    sourcedId: z.string(),
});
/** @internal */
export const GetTeacherRequest$outboundSchema = z.object({
    sourcedId: z.string(),
});
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export var GetTeacherRequest$;
(function (GetTeacherRequest$) {
    /** @deprecated use `GetTeacherRequest$inboundSchema` instead. */
    GetTeacherRequest$.inboundSchema = GetTeacherRequest$inboundSchema;
    /** @deprecated use `GetTeacherRequest$outboundSchema` instead. */
    GetTeacherRequest$.outboundSchema = GetTeacherRequest$outboundSchema;
})(GetTeacherRequest$ || (GetTeacherRequest$ = {}));
export function getTeacherRequestToJSON(getTeacherRequest) {
    return JSON.stringify(GetTeacherRequest$outboundSchema.parse(getTeacherRequest));
}
export function getTeacherRequestFromJSON(jsonString) {
    return safeParse(jsonString, (x) => GetTeacherRequest$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetTeacherRequest' from JSON`);
}
/** @internal */
export const GetTeacherStatus$inboundSchema = z.nativeEnum(GetTeacherStatus);
/** @internal */
export const GetTeacherStatus$outboundSchema = GetTeacherStatus$inboundSchema;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export var GetTeacherStatus$;
(function (GetTeacherStatus$) {
    /** @deprecated use `GetTeacherStatus$inboundSchema` instead. */
    GetTeacherStatus$.inboundSchema = GetTeacherStatus$inboundSchema;
    /** @deprecated use `GetTeacherStatus$outboundSchema` instead. */
    GetTeacherStatus$.outboundSchema = GetTeacherStatus$outboundSchema;
})(GetTeacherStatus$ || (GetTeacherStatus$ = {}));
/** @internal */
export const GetTeacherUserId$inboundSchema = z.object({
    type: z.string(),
    identifier: z.string(),
});
/** @internal */
export const GetTeacherUserId$outboundSchema = z.object({
    type: z.string(),
    identifier: z.string(),
});
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export var GetTeacherUserId$;
(function (GetTeacherUserId$) {
    /** @deprecated use `GetTeacherUserId$inboundSchema` instead. */
    GetTeacherUserId$.inboundSchema = GetTeacherUserId$inboundSchema;
    /** @deprecated use `GetTeacherUserId$outboundSchema` instead. */
    GetTeacherUserId$.outboundSchema = GetTeacherUserId$outboundSchema;
})(GetTeacherUserId$ || (GetTeacherUserId$ = {}));
export function getTeacherUserIdToJSON(getTeacherUserId) {
    return JSON.stringify(GetTeacherUserId$outboundSchema.parse(getTeacherUserId));
}
export function getTeacherUserIdFromJSON(jsonString) {
    return safeParse(jsonString, (x) => GetTeacherUserId$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetTeacherUserId' from JSON`);
}
/** @internal */
export const GetTeacherRoleType$inboundSchema = z.nativeEnum(GetTeacherRoleType);
/** @internal */
export const GetTeacherRoleType$outboundSchema = GetTeacherRoleType$inboundSchema;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export var GetTeacherRoleType$;
(function (GetTeacherRoleType$) {
    /** @deprecated use `GetTeacherRoleType$inboundSchema` instead. */
    GetTeacherRoleType$.inboundSchema = GetTeacherRoleType$inboundSchema;
    /** @deprecated use `GetTeacherRoleType$outboundSchema` instead. */
    GetTeacherRoleType$.outboundSchema = GetTeacherRoleType$outboundSchema;
})(GetTeacherRoleType$ || (GetTeacherRoleType$ = {}));
/** @internal */
export const GetTeacherRoleEnum$inboundSchema = z.nativeEnum(GetTeacherRoleEnum);
/** @internal */
export const GetTeacherRoleEnum$outboundSchema = GetTeacherRoleEnum$inboundSchema;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export var GetTeacherRoleEnum$;
(function (GetTeacherRoleEnum$) {
    /** @deprecated use `GetTeacherRoleEnum$inboundSchema` instead. */
    GetTeacherRoleEnum$.inboundSchema = GetTeacherRoleEnum$inboundSchema;
    /** @deprecated use `GetTeacherRoleEnum$outboundSchema` instead. */
    GetTeacherRoleEnum$.outboundSchema = GetTeacherRoleEnum$outboundSchema;
})(GetTeacherRoleEnum$ || (GetTeacherRoleEnum$ = {}));
/** @internal */
export const GetTeacherOrg$inboundSchema = z.object({
    href: z.string(),
    sourcedId: z.string(),
    type: z.string(),
});
/** @internal */
export const GetTeacherOrg$outboundSchema = z.object({
    href: z.string(),
    sourcedId: z.string(),
    type: z.string(),
});
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export var GetTeacherOrg$;
(function (GetTeacherOrg$) {
    /** @deprecated use `GetTeacherOrg$inboundSchema` instead. */
    GetTeacherOrg$.inboundSchema = GetTeacherOrg$inboundSchema;
    /** @deprecated use `GetTeacherOrg$outboundSchema` instead. */
    GetTeacherOrg$.outboundSchema = GetTeacherOrg$outboundSchema;
})(GetTeacherOrg$ || (GetTeacherOrg$ = {}));
export function getTeacherOrgToJSON(getTeacherOrg) {
    return JSON.stringify(GetTeacherOrg$outboundSchema.parse(getTeacherOrg));
}
export function getTeacherOrgFromJSON(jsonString) {
    return safeParse(jsonString, (x) => GetTeacherOrg$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetTeacherOrg' from JSON`);
}
/** @internal */
export const GetTeacherRole$inboundSchema = z.object({
    roleType: GetTeacherRoleType$inboundSchema,
    role: GetTeacherRoleEnum$inboundSchema,
    org: z.lazy(() => GetTeacherOrg$inboundSchema),
    userProfile: z.string().optional(),
    beginDate: z.nullable(z.string()),
    endDate: z.nullable(z.string()),
});
/** @internal */
export const GetTeacherRole$outboundSchema = z.object({
    roleType: GetTeacherRoleType$outboundSchema,
    role: GetTeacherRoleEnum$outboundSchema,
    org: z.lazy(() => GetTeacherOrg$outboundSchema),
    userProfile: z.string().optional(),
    beginDate: z.nullable(z.string()),
    endDate: z.nullable(z.string()),
});
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export var GetTeacherRole$;
(function (GetTeacherRole$) {
    /** @deprecated use `GetTeacherRole$inboundSchema` instead. */
    GetTeacherRole$.inboundSchema = GetTeacherRole$inboundSchema;
    /** @deprecated use `GetTeacherRole$outboundSchema` instead. */
    GetTeacherRole$.outboundSchema = GetTeacherRole$outboundSchema;
})(GetTeacherRole$ || (GetTeacherRole$ = {}));
export function getTeacherRoleToJSON(getTeacherRole) {
    return JSON.stringify(GetTeacherRole$outboundSchema.parse(getTeacherRole));
}
export function getTeacherRoleFromJSON(jsonString) {
    return safeParse(jsonString, (x) => GetTeacherRole$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetTeacherRole' from JSON`);
}
/** @internal */
export const GetTeacherType$inboundSchema = z.nativeEnum(GetTeacherType);
/** @internal */
export const GetTeacherType$outboundSchema = GetTeacherType$inboundSchema;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export var GetTeacherType$;
(function (GetTeacherType$) {
    /** @deprecated use `GetTeacherType$inboundSchema` instead. */
    GetTeacherType$.inboundSchema = GetTeacherType$inboundSchema;
    /** @deprecated use `GetTeacherType$outboundSchema` instead. */
    GetTeacherType$.outboundSchema = GetTeacherType$outboundSchema;
})(GetTeacherType$ || (GetTeacherType$ = {}));
/** @internal */
export const GetTeacherAgent$inboundSchema = z.object({
    href: z.string(),
    sourcedId: z.string(),
    type: GetTeacherType$inboundSchema,
});
/** @internal */
export const GetTeacherAgent$outboundSchema = z.object({
    href: z.string(),
    sourcedId: z.string(),
    type: GetTeacherType$outboundSchema,
});
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export var GetTeacherAgent$;
(function (GetTeacherAgent$) {
    /** @deprecated use `GetTeacherAgent$inboundSchema` instead. */
    GetTeacherAgent$.inboundSchema = GetTeacherAgent$inboundSchema;
    /** @deprecated use `GetTeacherAgent$outboundSchema` instead. */
    GetTeacherAgent$.outboundSchema = GetTeacherAgent$outboundSchema;
})(GetTeacherAgent$ || (GetTeacherAgent$ = {}));
export function getTeacherAgentToJSON(getTeacherAgent) {
    return JSON.stringify(GetTeacherAgent$outboundSchema.parse(getTeacherAgent));
}
export function getTeacherAgentFromJSON(jsonString) {
    return safeParse(jsonString, (x) => GetTeacherAgent$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetTeacherAgent' from JSON`);
}
/** @internal */
export const GetTeacherPrimaryOrg$inboundSchema = z.object({
    href: z.string(),
    sourcedId: z.string(),
    type: z.string(),
});
/** @internal */
export const GetTeacherPrimaryOrg$outboundSchema = z.object({
    href: z.string(),
    sourcedId: z.string(),
    type: z.string(),
});
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export var GetTeacherPrimaryOrg$;
(function (GetTeacherPrimaryOrg$) {
    /** @deprecated use `GetTeacherPrimaryOrg$inboundSchema` instead. */
    GetTeacherPrimaryOrg$.inboundSchema = GetTeacherPrimaryOrg$inboundSchema;
    /** @deprecated use `GetTeacherPrimaryOrg$outboundSchema` instead. */
    GetTeacherPrimaryOrg$.outboundSchema = GetTeacherPrimaryOrg$outboundSchema;
})(GetTeacherPrimaryOrg$ || (GetTeacherPrimaryOrg$ = {}));
export function getTeacherPrimaryOrgToJSON(getTeacherPrimaryOrg) {
    return JSON.stringify(GetTeacherPrimaryOrg$outboundSchema.parse(getTeacherPrimaryOrg));
}
export function getTeacherPrimaryOrgFromJSON(jsonString) {
    return safeParse(jsonString, (x) => GetTeacherPrimaryOrg$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetTeacherPrimaryOrg' from JSON`);
}
/** @internal */
export const GetTeacherUser$inboundSchema = z.object({
    sourcedId: z.string(),
    status: GetTeacherStatus$inboundSchema,
    dateLastModified: z.string().datetime({ offset: true }).transform(v => new Date(v)).optional(),
    metadata: z.nullable(z.record(z.any())).optional(),
    userMasterIdentifier: z.nullable(z.string()).optional(),
    username: z.nullable(z.string()).optional(),
    userIds: z.array(z.lazy(() => GetTeacherUserId$inboundSchema)).optional(),
    enabledUser: z.boolean(),
    givenName: z.string(),
    familyName: z.string(),
    middleName: z.nullable(z.string()).optional(),
    roles: z.array(z.lazy(() => GetTeacherRole$inboundSchema)),
    agents: z.array(z.lazy(() => GetTeacherAgent$inboundSchema)),
    primaryOrg: z.lazy(() => GetTeacherPrimaryOrg$inboundSchema).optional(),
    email: z.nullable(z.string()).optional(),
    preferredFirstName: z.nullable(z.string()).optional(),
    preferredMiddleName: z.nullable(z.string()).optional(),
    preferredLastName: z.nullable(z.string()).optional(),
    pronouns: z.nullable(z.string()).optional(),
    grades: z.array(z.string()).optional(),
    password: z.nullable(z.string()).optional(),
    sms: z.nullable(z.string()).optional(),
    phone: z.nullable(z.string()).optional(),
});
/** @internal */
export const GetTeacherUser$outboundSchema = z.object({
    sourcedId: z.string(),
    status: GetTeacherStatus$outboundSchema,
    dateLastModified: z.date().transform(v => v.toISOString()).optional(),
    metadata: z.nullable(z.record(z.any())).optional(),
    userMasterIdentifier: z.nullable(z.string()).optional(),
    username: z.nullable(z.string()).optional(),
    userIds: z.array(z.lazy(() => GetTeacherUserId$outboundSchema)).optional(),
    enabledUser: z.boolean(),
    givenName: z.string(),
    familyName: z.string(),
    middleName: z.nullable(z.string()).optional(),
    roles: z.array(z.lazy(() => GetTeacherRole$outboundSchema)),
    agents: z.array(z.lazy(() => GetTeacherAgent$outboundSchema)),
    primaryOrg: z.lazy(() => GetTeacherPrimaryOrg$outboundSchema).optional(),
    email: z.nullable(z.string()).optional(),
    preferredFirstName: z.nullable(z.string()).optional(),
    preferredMiddleName: z.nullable(z.string()).optional(),
    preferredLastName: z.nullable(z.string()).optional(),
    pronouns: z.nullable(z.string()).optional(),
    grades: z.array(z.string()).optional(),
    password: z.nullable(z.string()).optional(),
    sms: z.nullable(z.string()).optional(),
    phone: z.nullable(z.string()).optional(),
});
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export var GetTeacherUser$;
(function (GetTeacherUser$) {
    /** @deprecated use `GetTeacherUser$inboundSchema` instead. */
    GetTeacherUser$.inboundSchema = GetTeacherUser$inboundSchema;
    /** @deprecated use `GetTeacherUser$outboundSchema` instead. */
    GetTeacherUser$.outboundSchema = GetTeacherUser$outboundSchema;
})(GetTeacherUser$ || (GetTeacherUser$ = {}));
export function getTeacherUserToJSON(getTeacherUser) {
    return JSON.stringify(GetTeacherUser$outboundSchema.parse(getTeacherUser));
}
export function getTeacherUserFromJSON(jsonString) {
    return safeParse(jsonString, (x) => GetTeacherUser$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetTeacherUser' from JSON`);
}
/** @internal */
export const GetTeacherResponse$inboundSchema = z.object({
    user: z.lazy(() => GetTeacherUser$inboundSchema),
});
/** @internal */
export const GetTeacherResponse$outboundSchema = z.object({
    user: z.lazy(() => GetTeacherUser$outboundSchema),
});
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export var GetTeacherResponse$;
(function (GetTeacherResponse$) {
    /** @deprecated use `GetTeacherResponse$inboundSchema` instead. */
    GetTeacherResponse$.inboundSchema = GetTeacherResponse$inboundSchema;
    /** @deprecated use `GetTeacherResponse$outboundSchema` instead. */
    GetTeacherResponse$.outboundSchema = GetTeacherResponse$outboundSchema;
})(GetTeacherResponse$ || (GetTeacherResponse$ = {}));
export function getTeacherResponseToJSON(getTeacherResponse) {
    return JSON.stringify(GetTeacherResponse$outboundSchema.parse(getTeacherResponse));
}
export function getTeacherResponseFromJSON(jsonString) {
    return safeParse(jsonString, (x) => GetTeacherResponse$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetTeacherResponse' from JSON`);
}
//# sourceMappingURL=getteacher.js.map