/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 */
import * as z from "zod";
import { safeParse } from "../../lib/schemas.js";
export const GetStudentStatus = {
    Active: "active",
    Tobedeleted: "tobedeleted",
};
export const GetStudentRoleType = {
    Primary: "primary",
    Secondary: "secondary",
};
export const GetStudentRoleEnum = {
    Administrator: "administrator",
    Aide: "aide",
    Guardian: "guardian",
    Parent: "parent",
    Proctor: "proctor",
    Relative: "relative",
    Student: "student",
    Teacher: "teacher",
};
export const GetStudentType = {
    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 GetStudentRequest$inboundSchema = z.object({
    sourcedId: z.string(),
});
/** @internal */
export const GetStudentRequest$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 GetStudentRequest$;
(function (GetStudentRequest$) {
    /** @deprecated use `GetStudentRequest$inboundSchema` instead. */
    GetStudentRequest$.inboundSchema = GetStudentRequest$inboundSchema;
    /** @deprecated use `GetStudentRequest$outboundSchema` instead. */
    GetStudentRequest$.outboundSchema = GetStudentRequest$outboundSchema;
})(GetStudentRequest$ || (GetStudentRequest$ = {}));
export function getStudentRequestToJSON(getStudentRequest) {
    return JSON.stringify(GetStudentRequest$outboundSchema.parse(getStudentRequest));
}
export function getStudentRequestFromJSON(jsonString) {
    return safeParse(jsonString, (x) => GetStudentRequest$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetStudentRequest' from JSON`);
}
/** @internal */
export const GetStudentStatus$inboundSchema = z.nativeEnum(GetStudentStatus);
/** @internal */
export const GetStudentStatus$outboundSchema = GetStudentStatus$inboundSchema;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export var GetStudentStatus$;
(function (GetStudentStatus$) {
    /** @deprecated use `GetStudentStatus$inboundSchema` instead. */
    GetStudentStatus$.inboundSchema = GetStudentStatus$inboundSchema;
    /** @deprecated use `GetStudentStatus$outboundSchema` instead. */
    GetStudentStatus$.outboundSchema = GetStudentStatus$outboundSchema;
})(GetStudentStatus$ || (GetStudentStatus$ = {}));
/** @internal */
export const GetStudentUserId$inboundSchema = z.object({
    type: z.string(),
    identifier: z.string(),
});
/** @internal */
export const GetStudentUserId$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 GetStudentUserId$;
(function (GetStudentUserId$) {
    /** @deprecated use `GetStudentUserId$inboundSchema` instead. */
    GetStudentUserId$.inboundSchema = GetStudentUserId$inboundSchema;
    /** @deprecated use `GetStudentUserId$outboundSchema` instead. */
    GetStudentUserId$.outboundSchema = GetStudentUserId$outboundSchema;
})(GetStudentUserId$ || (GetStudentUserId$ = {}));
export function getStudentUserIdToJSON(getStudentUserId) {
    return JSON.stringify(GetStudentUserId$outboundSchema.parse(getStudentUserId));
}
export function getStudentUserIdFromJSON(jsonString) {
    return safeParse(jsonString, (x) => GetStudentUserId$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetStudentUserId' from JSON`);
}
/** @internal */
export const GetStudentRoleType$inboundSchema = z.nativeEnum(GetStudentRoleType);
/** @internal */
export const GetStudentRoleType$outboundSchema = GetStudentRoleType$inboundSchema;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export var GetStudentRoleType$;
(function (GetStudentRoleType$) {
    /** @deprecated use `GetStudentRoleType$inboundSchema` instead. */
    GetStudentRoleType$.inboundSchema = GetStudentRoleType$inboundSchema;
    /** @deprecated use `GetStudentRoleType$outboundSchema` instead. */
    GetStudentRoleType$.outboundSchema = GetStudentRoleType$outboundSchema;
})(GetStudentRoleType$ || (GetStudentRoleType$ = {}));
/** @internal */
export const GetStudentRoleEnum$inboundSchema = z.nativeEnum(GetStudentRoleEnum);
/** @internal */
export const GetStudentRoleEnum$outboundSchema = GetStudentRoleEnum$inboundSchema;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export var GetStudentRoleEnum$;
(function (GetStudentRoleEnum$) {
    /** @deprecated use `GetStudentRoleEnum$inboundSchema` instead. */
    GetStudentRoleEnum$.inboundSchema = GetStudentRoleEnum$inboundSchema;
    /** @deprecated use `GetStudentRoleEnum$outboundSchema` instead. */
    GetStudentRoleEnum$.outboundSchema = GetStudentRoleEnum$outboundSchema;
})(GetStudentRoleEnum$ || (GetStudentRoleEnum$ = {}));
/** @internal */
export const GetStudentOrg$inboundSchema = z.object({
    href: z.string(),
    sourcedId: z.string(),
    type: z.string(),
});
/** @internal */
export const GetStudentOrg$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 GetStudentOrg$;
(function (GetStudentOrg$) {
    /** @deprecated use `GetStudentOrg$inboundSchema` instead. */
    GetStudentOrg$.inboundSchema = GetStudentOrg$inboundSchema;
    /** @deprecated use `GetStudentOrg$outboundSchema` instead. */
    GetStudentOrg$.outboundSchema = GetStudentOrg$outboundSchema;
})(GetStudentOrg$ || (GetStudentOrg$ = {}));
export function getStudentOrgToJSON(getStudentOrg) {
    return JSON.stringify(GetStudentOrg$outboundSchema.parse(getStudentOrg));
}
export function getStudentOrgFromJSON(jsonString) {
    return safeParse(jsonString, (x) => GetStudentOrg$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetStudentOrg' from JSON`);
}
/** @internal */
export const GetStudentRole$inboundSchema = z.object({
    roleType: GetStudentRoleType$inboundSchema,
    role: GetStudentRoleEnum$inboundSchema,
    org: z.lazy(() => GetStudentOrg$inboundSchema),
    userProfile: z.string().optional(),
    beginDate: z.nullable(z.string()),
    endDate: z.nullable(z.string()),
});
/** @internal */
export const GetStudentRole$outboundSchema = z.object({
    roleType: GetStudentRoleType$outboundSchema,
    role: GetStudentRoleEnum$outboundSchema,
    org: z.lazy(() => GetStudentOrg$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 GetStudentRole$;
(function (GetStudentRole$) {
    /** @deprecated use `GetStudentRole$inboundSchema` instead. */
    GetStudentRole$.inboundSchema = GetStudentRole$inboundSchema;
    /** @deprecated use `GetStudentRole$outboundSchema` instead. */
    GetStudentRole$.outboundSchema = GetStudentRole$outboundSchema;
})(GetStudentRole$ || (GetStudentRole$ = {}));
export function getStudentRoleToJSON(getStudentRole) {
    return JSON.stringify(GetStudentRole$outboundSchema.parse(getStudentRole));
}
export function getStudentRoleFromJSON(jsonString) {
    return safeParse(jsonString, (x) => GetStudentRole$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetStudentRole' from JSON`);
}
/** @internal */
export const GetStudentType$inboundSchema = z.nativeEnum(GetStudentType);
/** @internal */
export const GetStudentType$outboundSchema = GetStudentType$inboundSchema;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export var GetStudentType$;
(function (GetStudentType$) {
    /** @deprecated use `GetStudentType$inboundSchema` instead. */
    GetStudentType$.inboundSchema = GetStudentType$inboundSchema;
    /** @deprecated use `GetStudentType$outboundSchema` instead. */
    GetStudentType$.outboundSchema = GetStudentType$outboundSchema;
})(GetStudentType$ || (GetStudentType$ = {}));
/** @internal */
export const GetStudentAgent$inboundSchema = z.object({
    href: z.string(),
    sourcedId: z.string(),
    type: GetStudentType$inboundSchema,
});
/** @internal */
export const GetStudentAgent$outboundSchema = z.object({
    href: z.string(),
    sourcedId: z.string(),
    type: GetStudentType$outboundSchema,
});
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export var GetStudentAgent$;
(function (GetStudentAgent$) {
    /** @deprecated use `GetStudentAgent$inboundSchema` instead. */
    GetStudentAgent$.inboundSchema = GetStudentAgent$inboundSchema;
    /** @deprecated use `GetStudentAgent$outboundSchema` instead. */
    GetStudentAgent$.outboundSchema = GetStudentAgent$outboundSchema;
})(GetStudentAgent$ || (GetStudentAgent$ = {}));
export function getStudentAgentToJSON(getStudentAgent) {
    return JSON.stringify(GetStudentAgent$outboundSchema.parse(getStudentAgent));
}
export function getStudentAgentFromJSON(jsonString) {
    return safeParse(jsonString, (x) => GetStudentAgent$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetStudentAgent' from JSON`);
}
/** @internal */
export const GetStudentPrimaryOrg$inboundSchema = z.object({
    href: z.string(),
    sourcedId: z.string(),
    type: z.string(),
});
/** @internal */
export const GetStudentPrimaryOrg$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 GetStudentPrimaryOrg$;
(function (GetStudentPrimaryOrg$) {
    /** @deprecated use `GetStudentPrimaryOrg$inboundSchema` instead. */
    GetStudentPrimaryOrg$.inboundSchema = GetStudentPrimaryOrg$inboundSchema;
    /** @deprecated use `GetStudentPrimaryOrg$outboundSchema` instead. */
    GetStudentPrimaryOrg$.outboundSchema = GetStudentPrimaryOrg$outboundSchema;
})(GetStudentPrimaryOrg$ || (GetStudentPrimaryOrg$ = {}));
export function getStudentPrimaryOrgToJSON(getStudentPrimaryOrg) {
    return JSON.stringify(GetStudentPrimaryOrg$outboundSchema.parse(getStudentPrimaryOrg));
}
export function getStudentPrimaryOrgFromJSON(jsonString) {
    return safeParse(jsonString, (x) => GetStudentPrimaryOrg$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetStudentPrimaryOrg' from JSON`);
}
/** @internal */
export const GetStudentUser$inboundSchema = z.object({
    sourcedId: z.string(),
    status: GetStudentStatus$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(() => GetStudentUserId$inboundSchema)).optional(),
    enabledUser: z.boolean(),
    givenName: z.string(),
    familyName: z.string(),
    middleName: z.nullable(z.string()).optional(),
    roles: z.array(z.lazy(() => GetStudentRole$inboundSchema)),
    agents: z.array(z.lazy(() => GetStudentAgent$inboundSchema)),
    primaryOrg: z.lazy(() => GetStudentPrimaryOrg$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 GetStudentUser$outboundSchema = z.object({
    sourcedId: z.string(),
    status: GetStudentStatus$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(() => GetStudentUserId$outboundSchema)).optional(),
    enabledUser: z.boolean(),
    givenName: z.string(),
    familyName: z.string(),
    middleName: z.nullable(z.string()).optional(),
    roles: z.array(z.lazy(() => GetStudentRole$outboundSchema)),
    agents: z.array(z.lazy(() => GetStudentAgent$outboundSchema)),
    primaryOrg: z.lazy(() => GetStudentPrimaryOrg$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 GetStudentUser$;
(function (GetStudentUser$) {
    /** @deprecated use `GetStudentUser$inboundSchema` instead. */
    GetStudentUser$.inboundSchema = GetStudentUser$inboundSchema;
    /** @deprecated use `GetStudentUser$outboundSchema` instead. */
    GetStudentUser$.outboundSchema = GetStudentUser$outboundSchema;
})(GetStudentUser$ || (GetStudentUser$ = {}));
export function getStudentUserToJSON(getStudentUser) {
    return JSON.stringify(GetStudentUser$outboundSchema.parse(getStudentUser));
}
export function getStudentUserFromJSON(jsonString) {
    return safeParse(jsonString, (x) => GetStudentUser$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetStudentUser' from JSON`);
}
/** @internal */
export const GetStudentResponse$inboundSchema = z.object({
    user: z.lazy(() => GetStudentUser$inboundSchema),
});
/** @internal */
export const GetStudentResponse$outboundSchema = z.object({
    user: z.lazy(() => GetStudentUser$outboundSchema),
});
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export var GetStudentResponse$;
(function (GetStudentResponse$) {
    /** @deprecated use `GetStudentResponse$inboundSchema` instead. */
    GetStudentResponse$.inboundSchema = GetStudentResponse$inboundSchema;
    /** @deprecated use `GetStudentResponse$outboundSchema` instead. */
    GetStudentResponse$.outboundSchema = GetStudentResponse$outboundSchema;
})(GetStudentResponse$ || (GetStudentResponse$ = {}));
export function getStudentResponseToJSON(getStudentResponse) {
    return JSON.stringify(GetStudentResponse$outboundSchema.parse(getStudentResponse));
}
export function getStudentResponseFromJSON(jsonString) {
    return safeParse(jsonString, (x) => GetStudentResponse$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetStudentResponse' from JSON`);
}
//# sourceMappingURL=getstudent.js.map