/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 */
import * as z from "zod";
import { remap as remap$ } from "../../lib/primitives.js";
import { safeParse } from "../../lib/schemas.js";
/**
 * The moderation status of the resource.
 */
export const ModerationStatus = {
    Approved: "approved",
    Rejected: "rejected",
};
/**
 * The type of OCR to perform on the resource.
 */
export const ResourceUpdateRequestOcr = {
    AdvOcr: "adv_ocr",
};
/**
 * The conversion to apply for raw files.
 */
export const RawConvert = {
    Aspose: "aspose",
    GoogleSpeech: "google_speech",
    ExtractText: "extract_text",
};
/**
 * The type of categorization to perform on the resource.
 */
export const ResourceUpdateRequestCategorization = {
    GoogleTagging: "google_tagging",
    GoogleVideoTagging: "google_video_tagging",
    ImaggaTagging: "imagga_tagging",
    AwsRekTagging: "aws_rek_tagging",
};
/**
 * The background removal provider to use for the resource.
 */
export const ResourceUpdateRequestBackgroundRemoval = {
    CloudinaryAi: "cloudinary_ai",
    Pixelz: "pixelz",
};
/** @internal */
export const ModerationStatus$inboundSchema = z.nativeEnum(ModerationStatus);
/** @internal */
export const ModerationStatus$outboundSchema = ModerationStatus$inboundSchema;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export var ModerationStatus$;
(function (ModerationStatus$) {
    /** @deprecated use `ModerationStatus$inboundSchema` instead. */
    ModerationStatus$.inboundSchema = ModerationStatus$inboundSchema;
    /** @deprecated use `ModerationStatus$outboundSchema` instead. */
    ModerationStatus$.outboundSchema = ModerationStatus$outboundSchema;
})(ModerationStatus$ || (ModerationStatus$ = {}));
/** @internal */
export const ResourceUpdateRequestOcr$inboundSchema = z.nativeEnum(ResourceUpdateRequestOcr);
/** @internal */
export const ResourceUpdateRequestOcr$outboundSchema = ResourceUpdateRequestOcr$inboundSchema;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export var ResourceUpdateRequestOcr$;
(function (ResourceUpdateRequestOcr$) {
    /** @deprecated use `ResourceUpdateRequestOcr$inboundSchema` instead. */
    ResourceUpdateRequestOcr$.inboundSchema = ResourceUpdateRequestOcr$inboundSchema;
    /** @deprecated use `ResourceUpdateRequestOcr$outboundSchema` instead. */
    ResourceUpdateRequestOcr$.outboundSchema = ResourceUpdateRequestOcr$outboundSchema;
})(ResourceUpdateRequestOcr$ || (ResourceUpdateRequestOcr$ = {}));
/** @internal */
export const RawConvert$inboundSchema = z
    .nativeEnum(RawConvert);
/** @internal */
export const RawConvert$outboundSchema = RawConvert$inboundSchema;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export var RawConvert$;
(function (RawConvert$) {
    /** @deprecated use `RawConvert$inboundSchema` instead. */
    RawConvert$.inboundSchema = RawConvert$inboundSchema;
    /** @deprecated use `RawConvert$outboundSchema` instead. */
    RawConvert$.outboundSchema = RawConvert$outboundSchema;
})(RawConvert$ || (RawConvert$ = {}));
/** @internal */
export const ResourceUpdateRequestCategorization$inboundSchema = z.nativeEnum(ResourceUpdateRequestCategorization);
/** @internal */
export const ResourceUpdateRequestCategorization$outboundSchema = ResourceUpdateRequestCategorization$inboundSchema;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export var ResourceUpdateRequestCategorization$;
(function (ResourceUpdateRequestCategorization$) {
    /** @deprecated use `ResourceUpdateRequestCategorization$inboundSchema` instead. */
    ResourceUpdateRequestCategorization$.inboundSchema = ResourceUpdateRequestCategorization$inboundSchema;
    /** @deprecated use `ResourceUpdateRequestCategorization$outboundSchema` instead. */
    ResourceUpdateRequestCategorization$.outboundSchema = ResourceUpdateRequestCategorization$outboundSchema;
})(ResourceUpdateRequestCategorization$ || (ResourceUpdateRequestCategorization$ = {}));
/** @internal */
export const ResourceUpdateRequestBackgroundRemoval$inboundSchema = z.nativeEnum(ResourceUpdateRequestBackgroundRemoval);
/** @internal */
export const ResourceUpdateRequestBackgroundRemoval$outboundSchema = ResourceUpdateRequestBackgroundRemoval$inboundSchema;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export var ResourceUpdateRequestBackgroundRemoval$;
(function (ResourceUpdateRequestBackgroundRemoval$) {
    /** @deprecated use `ResourceUpdateRequestBackgroundRemoval$inboundSchema` instead. */
    ResourceUpdateRequestBackgroundRemoval$.inboundSchema = ResourceUpdateRequestBackgroundRemoval$inboundSchema;
    /** @deprecated use `ResourceUpdateRequestBackgroundRemoval$outboundSchema` instead. */
    ResourceUpdateRequestBackgroundRemoval$.outboundSchema = ResourceUpdateRequestBackgroundRemoval$outboundSchema;
})(ResourceUpdateRequestBackgroundRemoval$ || (ResourceUpdateRequestBackgroundRemoval$ = {}));
/** @internal */
export const ResourceUpdateRequest$inboundSchema = z.object({
    display_name: z.string().optional(),
    unique_display_name: z.boolean().default(false),
    asset_folder: z.string().optional(),
    tags: z.string().optional(),
    context: z.string().optional(),
    metadata: z.string().optional(),
    clear_invalid: z.boolean().default(false),
    face_coordinates: z.string().optional(),
    custom_coordinates: z.string().optional(),
    regions: z.string().optional(),
    quality_override: z.string().optional(),
    moderation_status: ModerationStatus$inboundSchema.optional(),
    auto_tagging: z.number().optional(),
    detection: z.string().optional(),
    ocr: ResourceUpdateRequestOcr$inboundSchema.optional(),
    raw_convert: RawConvert$inboundSchema.optional(),
    categorization: ResourceUpdateRequestCategorization$inboundSchema.optional(),
    visual_search: z.boolean().optional(),
    background_removal: ResourceUpdateRequestBackgroundRemoval$inboundSchema
        .optional(),
    access_control: z.string().optional(),
}).transform((v) => {
    return remap$(v, {
        "display_name": "displayName",
        "unique_display_name": "uniqueDisplayName",
        "asset_folder": "assetFolder",
        "clear_invalid": "clearInvalid",
        "face_coordinates": "faceCoordinates",
        "custom_coordinates": "customCoordinates",
        "quality_override": "qualityOverride",
        "moderation_status": "moderationStatus",
        "auto_tagging": "autoTagging",
        "raw_convert": "rawConvert",
        "visual_search": "visualSearch",
        "background_removal": "backgroundRemoval",
        "access_control": "accessControl",
    });
});
/** @internal */
export const ResourceUpdateRequest$outboundSchema = z.object({
    displayName: z.string().optional(),
    uniqueDisplayName: z.boolean().default(false),
    assetFolder: z.string().optional(),
    tags: z.string().optional(),
    context: z.string().optional(),
    metadata: z.string().optional(),
    clearInvalid: z.boolean().default(false),
    faceCoordinates: z.string().optional(),
    customCoordinates: z.string().optional(),
    regions: z.string().optional(),
    qualityOverride: z.string().optional(),
    moderationStatus: ModerationStatus$outboundSchema.optional(),
    autoTagging: z.number().optional(),
    detection: z.string().optional(),
    ocr: ResourceUpdateRequestOcr$outboundSchema.optional(),
    rawConvert: RawConvert$outboundSchema.optional(),
    categorization: ResourceUpdateRequestCategorization$outboundSchema.optional(),
    visualSearch: z.boolean().optional(),
    backgroundRemoval: ResourceUpdateRequestBackgroundRemoval$outboundSchema
        .optional(),
    accessControl: z.string().optional(),
}).transform((v) => {
    return remap$(v, {
        displayName: "display_name",
        uniqueDisplayName: "unique_display_name",
        assetFolder: "asset_folder",
        clearInvalid: "clear_invalid",
        faceCoordinates: "face_coordinates",
        customCoordinates: "custom_coordinates",
        qualityOverride: "quality_override",
        moderationStatus: "moderation_status",
        autoTagging: "auto_tagging",
        rawConvert: "raw_convert",
        visualSearch: "visual_search",
        backgroundRemoval: "background_removal",
        accessControl: "access_control",
    });
});
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export var ResourceUpdateRequest$;
(function (ResourceUpdateRequest$) {
    /** @deprecated use `ResourceUpdateRequest$inboundSchema` instead. */
    ResourceUpdateRequest$.inboundSchema = ResourceUpdateRequest$inboundSchema;
    /** @deprecated use `ResourceUpdateRequest$outboundSchema` instead. */
    ResourceUpdateRequest$.outboundSchema = ResourceUpdateRequest$outboundSchema;
})(ResourceUpdateRequest$ || (ResourceUpdateRequest$ = {}));
export function resourceUpdateRequestToJSON(resourceUpdateRequest) {
    return JSON.stringify(ResourceUpdateRequest$outboundSchema.parse(resourceUpdateRequest));
}
export function resourceUpdateRequestFromJSON(jsonString) {
    return safeParse(jsonString, (x) => ResourceUpdateRequest$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'ResourceUpdateRequest' from JSON`);
}
//# sourceMappingURL=resourceupdaterequest.js.map