/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 */
import * as z from "zod";
import { safeParse } from "../../lib/schemas.js";
export const CreateClassStatus = {
    Active: "active",
    Tobedeleted: "tobedeleted",
};
export const CreateClassClassType = {
    Homeroom: "homeroom",
    Scheduled: "scheduled",
};
/** @internal */
export const CreateClassStatus$inboundSchema = z.nativeEnum(CreateClassStatus);
/** @internal */
export const CreateClassStatus$outboundSchema = CreateClassStatus$inboundSchema;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export var CreateClassStatus$;
(function (CreateClassStatus$) {
    /** @deprecated use `CreateClassStatus$inboundSchema` instead. */
    CreateClassStatus$.inboundSchema = CreateClassStatus$inboundSchema;
    /** @deprecated use `CreateClassStatus$outboundSchema` instead. */
    CreateClassStatus$.outboundSchema = CreateClassStatus$outboundSchema;
})(CreateClassStatus$ || (CreateClassStatus$ = {}));
/** @internal */
export const CreateClassClassType$inboundSchema = z.nativeEnum(CreateClassClassType);
/** @internal */
export const CreateClassClassType$outboundSchema = CreateClassClassType$inboundSchema;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export var CreateClassClassType$;
(function (CreateClassClassType$) {
    /** @deprecated use `CreateClassClassType$inboundSchema` instead. */
    CreateClassClassType$.inboundSchema = CreateClassClassType$inboundSchema;
    /** @deprecated use `CreateClassClassType$outboundSchema` instead. */
    CreateClassClassType$.outboundSchema = CreateClassClassType$outboundSchema;
})(CreateClassClassType$ || (CreateClassClassType$ = {}));
/** @internal */
export const CreateClassCourse$inboundSchema = z.object({
    sourcedId: z.string(),
});
/** @internal */
export const CreateClassCourse$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 CreateClassCourse$;
(function (CreateClassCourse$) {
    /** @deprecated use `CreateClassCourse$inboundSchema` instead. */
    CreateClassCourse$.inboundSchema = CreateClassCourse$inboundSchema;
    /** @deprecated use `CreateClassCourse$outboundSchema` instead. */
    CreateClassCourse$.outboundSchema = CreateClassCourse$outboundSchema;
})(CreateClassCourse$ || (CreateClassCourse$ = {}));
export function createClassCourseToJSON(createClassCourse) {
    return JSON.stringify(CreateClassCourse$outboundSchema.parse(createClassCourse));
}
export function createClassCourseFromJSON(jsonString) {
    return safeParse(jsonString, (x) => CreateClassCourse$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'CreateClassCourse' from JSON`);
}
/** @internal */
export const CreateClassOrg$inboundSchema = z.object({
    sourcedId: z.string(),
});
/** @internal */
export const CreateClassOrg$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 CreateClassOrg$;
(function (CreateClassOrg$) {
    /** @deprecated use `CreateClassOrg$inboundSchema` instead. */
    CreateClassOrg$.inboundSchema = CreateClassOrg$inboundSchema;
    /** @deprecated use `CreateClassOrg$outboundSchema` instead. */
    CreateClassOrg$.outboundSchema = CreateClassOrg$outboundSchema;
})(CreateClassOrg$ || (CreateClassOrg$ = {}));
export function createClassOrgToJSON(createClassOrg) {
    return JSON.stringify(CreateClassOrg$outboundSchema.parse(createClassOrg));
}
export function createClassOrgFromJSON(jsonString) {
    return safeParse(jsonString, (x) => CreateClassOrg$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'CreateClassOrg' from JSON`);
}
/** @internal */
export const CreateClassResource$inboundSchema = z.object({
    sourcedId: z.string(),
});
/** @internal */
export const CreateClassResource$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 CreateClassResource$;
(function (CreateClassResource$) {
    /** @deprecated use `CreateClassResource$inboundSchema` instead. */
    CreateClassResource$.inboundSchema = CreateClassResource$inboundSchema;
    /** @deprecated use `CreateClassResource$outboundSchema` instead. */
    CreateClassResource$.outboundSchema = CreateClassResource$outboundSchema;
})(CreateClassResource$ || (CreateClassResource$ = {}));
export function createClassResourceToJSON(createClassResource) {
    return JSON.stringify(CreateClassResource$outboundSchema.parse(createClassResource));
}
export function createClassResourceFromJSON(jsonString) {
    return safeParse(jsonString, (x) => CreateClassResource$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'CreateClassResource' from JSON`);
}
/** @internal */
export const CreateClassTerm$inboundSchema = z.object({
    sourcedId: z.string(),
});
/** @internal */
export const CreateClassTerm$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 CreateClassTerm$;
(function (CreateClassTerm$) {
    /** @deprecated use `CreateClassTerm$inboundSchema` instead. */
    CreateClassTerm$.inboundSchema = CreateClassTerm$inboundSchema;
    /** @deprecated use `CreateClassTerm$outboundSchema` instead. */
    CreateClassTerm$.outboundSchema = CreateClassTerm$outboundSchema;
})(CreateClassTerm$ || (CreateClassTerm$ = {}));
export function createClassTermToJSON(createClassTerm) {
    return JSON.stringify(CreateClassTerm$outboundSchema.parse(createClassTerm));
}
export function createClassTermFromJSON(jsonString) {
    return safeParse(jsonString, (x) => CreateClassTerm$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'CreateClassTerm' from JSON`);
}
/** @internal */
export const CreateClassClass$inboundSchema = z.object({
    sourcedId: z.string().optional(),
    status: CreateClassStatus$inboundSchema.default("active"),
    metadata: z.record(z.any()).optional(),
    title: z.string(),
    classCode: z.string().optional(),
    classType: CreateClassClassType$inboundSchema.optional(),
    location: z.string().optional(),
    grades: z.array(z.string()).optional(),
    subjects: z.array(z.string()).optional(),
    course: z.lazy(() => CreateClassCourse$inboundSchema),
    org: z.lazy(() => CreateClassOrg$inboundSchema),
    subjectCodes: z.array(z.string()).optional(),
    periods: z.array(z.string()).optional(),
    resources: z.array(z.lazy(() => CreateClassResource$inboundSchema))
        .optional(),
    terms: z.array(z.lazy(() => CreateClassTerm$inboundSchema)),
});
/** @internal */
export const CreateClassClass$outboundSchema = z.object({
    sourcedId: z.string().optional(),
    status: CreateClassStatus$outboundSchema.default("active"),
    metadata: z.record(z.any()).optional(),
    title: z.string(),
    classCode: z.string().optional(),
    classType: CreateClassClassType$outboundSchema.optional(),
    location: z.string().optional(),
    grades: z.array(z.string()).optional(),
    subjects: z.array(z.string()).optional(),
    course: z.lazy(() => CreateClassCourse$outboundSchema),
    org: z.lazy(() => CreateClassOrg$outboundSchema),
    subjectCodes: z.array(z.string()).optional(),
    periods: z.array(z.string()).optional(),
    resources: z.array(z.lazy(() => CreateClassResource$outboundSchema))
        .optional(),
    terms: z.array(z.lazy(() => CreateClassTerm$outboundSchema)),
});
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export var CreateClassClass$;
(function (CreateClassClass$) {
    /** @deprecated use `CreateClassClass$inboundSchema` instead. */
    CreateClassClass$.inboundSchema = CreateClassClass$inboundSchema;
    /** @deprecated use `CreateClassClass$outboundSchema` instead. */
    CreateClassClass$.outboundSchema = CreateClassClass$outboundSchema;
})(CreateClassClass$ || (CreateClassClass$ = {}));
export function createClassClassToJSON(createClassClass) {
    return JSON.stringify(CreateClassClass$outboundSchema.parse(createClassClass));
}
export function createClassClassFromJSON(jsonString) {
    return safeParse(jsonString, (x) => CreateClassClass$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'CreateClassClass' from JSON`);
}
/** @internal */
export const CreateClassRequest$inboundSchema = z.object({
    class: z.lazy(() => CreateClassClass$inboundSchema),
});
/** @internal */
export const CreateClassRequest$outboundSchema = z.object({
    class: z.lazy(() => CreateClassClass$outboundSchema),
});
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export var CreateClassRequest$;
(function (CreateClassRequest$) {
    /** @deprecated use `CreateClassRequest$inboundSchema` instead. */
    CreateClassRequest$.inboundSchema = CreateClassRequest$inboundSchema;
    /** @deprecated use `CreateClassRequest$outboundSchema` instead. */
    CreateClassRequest$.outboundSchema = CreateClassRequest$outboundSchema;
})(CreateClassRequest$ || (CreateClassRequest$ = {}));
export function createClassRequestToJSON(createClassRequest) {
    return JSON.stringify(CreateClassRequest$outboundSchema.parse(createClassRequest));
}
export function createClassRequestFromJSON(jsonString) {
    return safeParse(jsonString, (x) => CreateClassRequest$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'CreateClassRequest' from JSON`);
}
/** @internal */
export const CreateClassSourcedIdPairs$inboundSchema = z.object({
    suppliedSourcedId: z.string(),
    allocatedSourcedId: z.string(),
});
/** @internal */
export const CreateClassSourcedIdPairs$outboundSchema = z.object({
    suppliedSourcedId: z.string(),
    allocatedSourcedId: 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 CreateClassSourcedIdPairs$;
(function (CreateClassSourcedIdPairs$) {
    /** @deprecated use `CreateClassSourcedIdPairs$inboundSchema` instead. */
    CreateClassSourcedIdPairs$.inboundSchema = CreateClassSourcedIdPairs$inboundSchema;
    /** @deprecated use `CreateClassSourcedIdPairs$outboundSchema` instead. */
    CreateClassSourcedIdPairs$.outboundSchema = CreateClassSourcedIdPairs$outboundSchema;
})(CreateClassSourcedIdPairs$ || (CreateClassSourcedIdPairs$ = {}));
export function createClassSourcedIdPairsToJSON(createClassSourcedIdPairs) {
    return JSON.stringify(CreateClassSourcedIdPairs$outboundSchema.parse(createClassSourcedIdPairs));
}
export function createClassSourcedIdPairsFromJSON(jsonString) {
    return safeParse(jsonString, (x) => CreateClassSourcedIdPairs$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'CreateClassSourcedIdPairs' from JSON`);
}
/** @internal */
export const CreateClassResponse$inboundSchema = z.object({
    sourcedIdPairs: z.lazy(() => CreateClassSourcedIdPairs$inboundSchema),
});
/** @internal */
export const CreateClassResponse$outboundSchema = z.object({
    sourcedIdPairs: z.lazy(() => CreateClassSourcedIdPairs$outboundSchema),
});
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export var CreateClassResponse$;
(function (CreateClassResponse$) {
    /** @deprecated use `CreateClassResponse$inboundSchema` instead. */
    CreateClassResponse$.inboundSchema = CreateClassResponse$inboundSchema;
    /** @deprecated use `CreateClassResponse$outboundSchema` instead. */
    CreateClassResponse$.outboundSchema = CreateClassResponse$outboundSchema;
})(CreateClassResponse$ || (CreateClassResponse$ = {}));
export function createClassResponseToJSON(createClassResponse) {
    return JSON.stringify(CreateClassResponse$outboundSchema.parse(createClassResponse));
}
export function createClassResponseFromJSON(jsonString) {
    return safeParse(jsonString, (x) => CreateClassResponse$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'CreateClassResponse' from JSON`);
}
//# sourceMappingURL=createclass.js.map