import {z} from 'zod' export type AnalyzeActionParameters = {force?: boolean | undefined, force_type?: ('OVERWRITE' | 'APPEND' | 'null' | null) | undefined}; export type AnalyzeActionSchema = {parameters: AnalyzeActionParameters, type: 'ANALYZE'}; export type ExtractFacesParameters = {face_image_analysis_profile_id?: (string | null) | undefined, face_video_analysis_profile_id?: (string | null) | undefined, force?: boolean | undefined}; export type ExtractFacesAction = {parameters: ExtractFacesParameters, type: 'EXTRACT_FACES'}; export type CreatePublicationTemplate = {data?: {[key: string]: unknown} | undefined, id: string}; export type CreatePublicationJobThumbnailKeyframe = {asset_id: string, keyframe_id: string, type: 'KEYFRAME'}; export type CreatePublicationJobParameters = {allow_transfer?: boolean | undefined, metadata_overrides?: {[key: string]: unknown} | undefined, storage_id?: (string | null) | undefined, template: CreatePublicationTemplate, thumbnail?: (CreatePublicationJobThumbnailKeyframe | null) | undefined, title?: string | undefined, user_id: string}; export type CreatePublicationJobAction = {parameters: CreatePublicationJobParameters, type: 'CREATE_PUBLICATION_JOB'}; export type ArchiveActionParameters = {allow_duplicate_transfers?: boolean | undefined, allow_host_transfer?: boolean | undefined, delete_only_from_source_folder?: boolean | undefined, delete_original?: boolean | undefined, destination_directory_path?: (string | null) | undefined, destination_storage_id: string, keep_collection_structure?: boolean | undefined, preferred_original_storage_id?: (string | null) | undefined}; export type ArchiveActionSchema = {parameters: ArchiveActionParameters, type: 'ARCHIVE'}; export type RestoreActionParameters = {allow_duplicate_transfers?: boolean | undefined, allow_host_transfer?: boolean | undefined, delete_only_from_source_folder?: boolean | undefined, delete_original?: boolean | undefined, destination_directory_path?: (string | null) | undefined, destination_storage_id: string, keep_collection_structure?: boolean | undefined, preferred_original_storage_id?: (string | null) | undefined}; export type RestoreAction = {parameters: RestoreActionParameters, type: 'RESTORE'}; export type ExportActionParameters = {export_location_id: string, export_metadata?: (boolean | null) | undefined, export_to_asset_folder?: (boolean | null) | undefined, file_name?: (string | null) | undefined, format_id?: (string | null) | undefined, metadata_format?: ('CSV' | 'JSON' | 'XML' | 'null' | null) | undefined, metadata_view?: (string | null) | undefined, overwrite?: (boolean | null) | undefined, preferred_original_storage_id?: (string | null) | undefined, transcode_profile_ids?: (Array | null) | undefined}; export type ExportAction = {parameters: ExportActionParameters, type: 'EXPORT'}; export type ACLUpdateSchema = {group_ids?: (Array | null) | undefined, mode: 'APPEND' | 'OVERWRITE', permissions: Array<'read' | 'delete' | 'change-acl' | 'write'>, user_ids?: (Array | null) | undefined}; export type UpdateACLActionParameters = {objects: Array}; export type UpdateACLAction = {parameters: UpdateACLActionParameters, type: 'UPDATE_ACL'}; export type MetadataFieldValueUpdateSchema = {field_values?: Array<{[key: string]: unknown}> | undefined, mode?: ('append' | 'delete' | 'overwrite') | undefined}; export type MetadataUpdateActionParameters = {metadata_values: {[key: string]: MetadataFieldValueUpdateSchema}, metadata_view_id: string}; export type MetadataUpdateAction = {parameters: MetadataUpdateActionParameters, type: 'METADATA_UPDATE'}; export type AIMetadataFillingActionParameters = {field_names?: (Array | null) | undefined, metadata_view_id: string, overwrite: boolean}; export type AIMetadataFillingActionSchema = {parameters: AIMetadataFillingActionParameters, type: 'AI_METADATA_FILLING'}; export type TranscodeActionParameters = {format_name?: string | undefined, prefer_any_cloud?: boolean | undefined, preferred_storage_id?: string | undefined, preferred_storage_method?: ('FILE' | 'HTTP' | 'FTP' | 'SFTP' | 'S3' | 'B2' | 'GCS' | 'PORTAL' | 'CUSTOM' | 'AZURE') | undefined, priority?: number | undefined}; export type TranscodeAction = {parameters: TranscodeActionParameters, type: 'TRANSCODE'}; export type TransferActionParameters = {allow_host_transfer?: boolean | undefined, destination_directory_path?: (string | null) | undefined, destination_storage_id: string, format_name: string, preferred_original_storage_id?: (string | null) | undefined}; export type TransferAction = {parameters: TransferActionParameters, type: 'TRANSFER'}; export type RequestOriginalAction = {parameters: TransferActionParameters, type: 'REQUEST_ORIGINAL'}; export type AddToCollectionActionParameters = {collection_id: string, index_immediately?: boolean | undefined}; export type AddToCollectionActionSchema = {parameters: AddToCollectionActionParameters, type: 'ADD_TO_COLLECTION'}; export type AddToPortalActionParameters = {index_immediately?: boolean | undefined, portal_id: string}; export type AddToPortalActionSchema = {parameters: AddToPortalActionParameters, type: 'ADD_TO_PORTAL'}; export type RemoveFromPortalActionParameters = {index_immediately?: boolean | undefined, portal_id: string}; export type RemoveFromPortalAction = {parameters: RemoveFromPortalActionParameters, type: 'REMOVE_FROM_PORTAL'}; export type TranscribeActionParameters = {engine?: (string | null) | undefined, force?: boolean | undefined, language?: (string | null) | undefined, speakers?: (number | null) | undefined, summary?: (boolean | null) | undefined, topics_extraction?: boolean | undefined, translate_languages?: (Array | null) | undefined}; export type TranscribeAction = {parameters: TranscribeActionParameters, type: 'TRANSCRIBE'}; export type CreateShareActionParameters = {allow_approving_comments: boolean, allow_comments: boolean, allow_custom_actions?: boolean | undefined, allow_download: boolean, allow_download_proxy?: boolean | undefined, allow_setting_approve_status: boolean, allow_upload?: boolean | undefined, allow_user_search_for_mentions?: boolean | undefined, allow_view_transcriptions?: boolean | undefined, allow_view_versions?: boolean | undefined, emails: Array, expires_in_days?: (number | null) | undefined, has_password: unknown, message?: string | undefined, metadata_views?: (Array | null) | undefined, password?: (string | null) | undefined, show_watermark?: boolean | undefined, title?: string | undefined, upload_storage_id?: (string | null) | undefined, user_id: string}; export type CreateShareAction = {parameters: CreateShareActionParameters, type: 'CREATE_SHARE'}; export type DeleteAction = {parameters?: {[key: string]: unknown} | undefined, type: 'DELETE_ASSET'}; export type DeleteFileSetActionParameters = {format: string, storage_id: string}; export type DeleteFileSetAction = {parameters: DeleteFileSetActionParameters, type: 'DELETE_FILE_SET'}; export type RestrictAssetActionParameters = {restrict_metadata_field: string, warning?: string | undefined, warning_metadata_field?: string | undefined}; export type RestrictAssetAction = {parameters: RestrictAssetActionParameters, type: 'RESTRICT_ASSET'}; export type RemoveAssetRestrictionActionParameters = {restrict_metadata_field: string, warning_metadata_field?: string | undefined}; export type RemoveAssetRestrictionAction = {parameters: RemoveAssetRestrictionActionParameters, type: 'REMOVE_ASSET_RESTRICTION'}; export type RequestReviewActionParameters = {externals?: Array | undefined, groups?: Array | undefined, min_number?: number | undefined, share: CreateShareActionParameters, status?: ('N/A' | 'REQUESTED' | 'APPROVED' | 'NOT_APPROVED' | 'MIXED') | undefined, users?: Array | undefined}; export type RequestReviewAction = {parameters: RequestReviewActionParameters, type: 'REQUEST_REVIEW'}; export type MetadataFieldValueSchema = {field_values?: Array<{[key: string]: unknown}> | undefined}; export type TriggerCustomActionParameters = {action_id: string, context: 'ASSET' | 'ASSET_SUBCLIP' | 'BULK', metadata_values?: {[key: string]: MetadataFieldValueSchema} | undefined}; export type TriggerCustomAction = {parameters: TriggerCustomActionParameters, type: 'CUSTOM_ACTION'}; export type RangeFilter = {max?: string | undefined, min?: string | undefined, timezone?: string | undefined}; export type Term = {exists?: boolean | undefined, external?: {[key: string]: unknown} | undefined, missing?: boolean | undefined, name: string, range?: RangeFilter | undefined, value: unknown, value_in?: Array | undefined}; export type Condition = {conditions?: Array | undefined, filters?: Array | undefined, operator: string, path?: string | undefined, terms?: Array | undefined}; export type MetadataUpdateTriggerParameters = {event_type: 'ASSETS' | 'COLLECTIONS', metadata_values: {[key: string]: MetadataFieldValueSchema}}; export type MetadataUpdateTrigger = {parameters: MetadataUpdateTriggerParameters, type: 'METADATA_UPDATE'}; export type AssetSharedTriggerParameters = {allow_download?: (boolean | null) | undefined}; export type AssetSharedTriggerSchema = {parameters: AssetSharedTriggerParameters, type: 'ASSET_SHARE'}; export type SubtitleAddedTriggerParameters = {closed_captions?: (boolean | null) | undefined, language?: (string | null) | undefined}; export type SubtitleAddedTrigger = {parameters: SubtitleAddedTriggerParameters, type: 'SUBTITLE_ADDED'}; export type ReviewStatusChangedTriggerParameters = {statuses?: (Array<'N/A' | 'REQUESTED' | 'APPROVED' | 'NOT_APPROVED' | 'MIXED'>) | undefined}; export type ReviewStatusChangedTrigger = {parameters: ReviewStatusChangedTriggerParameters, type: 'REVIEW_STATUS_CHANGED'}; export type AssetOnlineTriggerParameters = {only_first_version: true, wait_for_transcode: boolean}; export type AssetOnlineTriggerSchema = {parameters: AssetOnlineTriggerParameters, type: 'ASSET_ONLINE'}; export type VersionOnlineTriggerParameters = {only_first_version: false, wait_for_transcode: boolean}; export type VersionOnlineTrigger = {parameters: VersionOnlineTriggerParameters, type: 'VERSION_ONLINE'}; export type AssetTransferredToStorageParameters = {format?: (string | null) | undefined, storage_id: string}; export type AssetTransferredToStorageTriggerSchema = {parameters: AssetTransferredToStorageParameters, type: 'TRANSFER_TO_STORAGE'}; export type AssetArchivedTriggerParameters = {storage_id?: string | undefined}; export type AssetArchivedTriggerSchema = {parameters: AssetArchivedTriggerParameters, type: 'ARCHIVE'}; export type AssetRestoredTriggerParameters = {storage_id?: string | undefined}; export type AssetRestoredTriggerSchema = {parameters: AssetRestoredTriggerParameters, type: 'RESTORE'}; export type CreatedAtTransitionTriggerParameters = {days_since_created: number}; export type CreatedAtTransitionTrigger = {parameters: CreatedAtTransitionTriggerParameters, type: 'CREATED_AT_TRANSITION'}; export type ModifiedAtTransitionTriggerParameters = {days_since_modified: number}; export type ModifiedAtTransitionTrigger = {parameters: ModifiedAtTransitionTriggerParameters, type: 'MODIFIED_AT_TRANSITION'}; export type ObjectCollectionTriggerParameters = {collection_ids: Array, include_subcollections?: boolean | undefined, object_type: string}; export type ObjectAddedToCollectionTrigger = {parameters: ObjectCollectionTriggerParameters, type: 'OBJECT_ADDED_TO_COLLECTION'}; export type ObjectRemovedFromCollectionTrigger = {parameters: ObjectCollectionTriggerParameters, type: 'OBJECT_REMOVED_FROM_COLLECTION'}; export type AutomationSchema = {actions: Array, conditions?: Array | undefined, created_by?: string | undefined, date_created?: string | undefined, date_modified?: string | undefined, description?: string | undefined, id?: string | undefined, modified_by?: string | undefined, name: string, status?: ('ACTIVE' | 'INACTIVE') | undefined, system_domain_id?: string | undefined, triggers: Array}; export type PatchApiV1AutomationsAutomationIdArgs = {'App-ID': string, 'Auth-Token': string, automation_id: string, body: AutomationSchema}; export type PatchApiV1AutomationsAutomationIdOptions = {baseUrl: string, fetch?: typeof fetch | undefined}; export const analyzeActionParameters = z.object({force: z.boolean().optional(), force_type: z.enum(["OVERWRITE", "APPEND", "null"]).nullable().optional()}); export const analyzeActionSchema = z.object({parameters: analyzeActionParameters, type: z.literal("ANALYZE")}); export const extractFacesParameters = z.object({face_image_analysis_profile_id: z.string().nullable().optional(), face_video_analysis_profile_id: z.string().nullable().optional(), force: z.boolean().optional()}); export const extractFacesAction = z.object({parameters: extractFacesParameters, type: z.literal("EXTRACT_FACES")}); export const createPublicationTemplate = z.object({data: z.record(z.string(), z.unknown()).optional(), id: z.string()}); export const createPublicationJobThumbnailKeyframe = z.object({asset_id: z.string(), keyframe_id: z.string(), type: z.literal("KEYFRAME")}); export const createPublicationJobParameters = z.object({allow_transfer: z.boolean().optional(), metadata_overrides: z.record(z.string(), z.unknown()).optional(), storage_id: z.string().nullable().optional(), template: createPublicationTemplate, thumbnail: createPublicationJobThumbnailKeyframe.nullable().optional(), title: z.string().min(1).optional(), user_id: z.string()}); export const createPublicationJobAction = z.object({parameters: createPublicationJobParameters, type: z.literal("CREATE_PUBLICATION_JOB")}); export const archiveActionParameters = z.object({allow_duplicate_transfers: z.boolean().optional(), allow_host_transfer: z.boolean().optional(), delete_only_from_source_folder: z.boolean().optional(), delete_original: z.boolean().optional(), destination_directory_path: z.string().nullable().optional(), destination_storage_id: z.string(), keep_collection_structure: z.boolean().optional(), preferred_original_storage_id: z.string().nullable().optional()}); export const archiveActionSchema = z.object({parameters: archiveActionParameters, type: z.literal("ARCHIVE")}); export const restoreActionParameters = z.object({allow_duplicate_transfers: z.boolean().optional(), allow_host_transfer: z.boolean().optional(), delete_only_from_source_folder: z.boolean().optional(), delete_original: z.boolean().optional(), destination_directory_path: z.string().nullable().optional(), destination_storage_id: z.string(), keep_collection_structure: z.boolean().optional(), preferred_original_storage_id: z.string().nullable().optional()}); export const restoreAction = z.object({parameters: restoreActionParameters, type: z.literal("RESTORE")}); export const exportActionParameters = z.object({export_location_id: z.string(), export_metadata: z.boolean().nullable().optional(), export_to_asset_folder: z.boolean().nullable().optional(), file_name: z.string().nullable().optional(), format_id: z.string().nullable().optional(), metadata_format: z.enum(["CSV", "JSON", "XML", "null"]).nullable().optional(), metadata_view: z.string().nullable().optional(), overwrite: z.boolean().nullable().optional(), preferred_original_storage_id: z.string().nullable().optional(), transcode_profile_ids: z.array(z.string()).nullable().optional()}); export const exportAction = z.object({parameters: exportActionParameters, type: z.literal("EXPORT")}); export const aCLUpdateSchema = z.object({group_ids: z.array(z.string()).nullable().optional(), mode: z.enum(["APPEND", "OVERWRITE"]), permissions: z.array(z.enum(["read", "delete", "change-acl", "write"])), user_ids: z.array(z.string()).nullable().optional()}); export const updateACLActionParameters = z.object({objects: z.array(aCLUpdateSchema)}); export const updateACLAction = z.object({parameters: updateACLActionParameters, type: z.literal("UPDATE_ACL")}); export const metadataFieldValueUpdateSchema = z.object({field_values: z.array(z.record(z.string(), z.unknown())).optional(), mode: z.enum(["append", "delete", "overwrite"]).optional()}); export const metadataUpdateActionParameters = z.object({metadata_values: z.record(z.string(), metadataFieldValueUpdateSchema), metadata_view_id: z.string()}); export const metadataUpdateAction = z.object({parameters: metadataUpdateActionParameters, type: z.literal("METADATA_UPDATE")}); export const aIMetadataFillingActionParameters = z.object({field_names: z.array(z.string()).nullable().optional(), metadata_view_id: z.string(), overwrite: z.boolean()}); export const aIMetadataFillingActionSchema = z.object({parameters: aIMetadataFillingActionParameters, type: z.literal("AI_METADATA_FILLING")}); export const transcodeActionParameters = z.object({format_name: z.string().optional(), prefer_any_cloud: z.boolean().optional(), preferred_storage_id: z.string().optional(), preferred_storage_method: z.enum(["FILE", "HTTP", "FTP", "SFTP", "S3", "B2", "GCS", "PORTAL", "CUSTOM", "AZURE"]).optional(), priority: z.number().int().gte(1).lte(10).optional()}); export const transcodeAction = z.object({parameters: transcodeActionParameters, type: z.literal("TRANSCODE")}); export const transferActionParameters = z.object({allow_host_transfer: z.boolean().optional(), destination_directory_path: z.string().nullable().optional(), destination_storage_id: z.string(), format_name: z.string(), preferred_original_storage_id: z.string().nullable().optional()}); export const transferAction = z.object({parameters: transferActionParameters, type: z.literal("TRANSFER")}); export const requestOriginalAction = z.object({parameters: transferActionParameters, type: z.literal("REQUEST_ORIGINAL")}); export const addToCollectionActionParameters = z.object({collection_id: z.string(), index_immediately: z.boolean().optional()}); export const addToCollectionActionSchema = z.object({parameters: addToCollectionActionParameters, type: z.literal("ADD_TO_COLLECTION")}); export const addToPortalActionParameters = z.object({index_immediately: z.boolean().optional(), portal_id: z.string()}); export const addToPortalActionSchema = z.object({parameters: addToPortalActionParameters, type: z.literal("ADD_TO_PORTAL")}); export const removeFromPortalActionParameters = z.object({index_immediately: z.boolean().optional(), portal_id: z.string()}); export const removeFromPortalAction = z.object({parameters: removeFromPortalActionParameters, type: z.literal("REMOVE_FROM_PORTAL")}); export const transcribeActionParameters = z.object({engine: z.string().nullable().optional(), force: z.boolean().optional(), language: z.string().nullable().optional(), speakers: z.number().int().gte(1).lte(100).nullable().optional(), summary: z.boolean().nullable().optional(), topics_extraction: z.boolean().optional(), translate_languages: z.array(z.string()).nullable().optional()}); export const transcribeAction = z.object({parameters: transcribeActionParameters, type: z.literal("TRANSCRIBE")}); export const createShareActionParameters = z.object({allow_approving_comments: z.boolean(), allow_comments: z.boolean(), allow_custom_actions: z.boolean().optional(), allow_download: z.boolean(), allow_download_proxy: z.boolean().optional(), allow_setting_approve_status: z.boolean(), allow_upload: z.boolean().optional(), allow_user_search_for_mentions: z.boolean().optional(), allow_view_transcriptions: z.boolean().optional(), allow_view_versions: z.boolean().optional(), emails: z.array(z.string()), expires_in_days: z.number().int().gte(1).nullable().optional(), has_password: z.unknown(), message: z.string().optional(), metadata_views: z.array(z.string()).nullable().optional(), password: z.string().nullable().optional(), show_watermark: z.boolean().optional(), title: z.string().optional(), upload_storage_id: z.string().nullable().optional(), user_id: z.string()}); export const createShareAction = z.object({parameters: createShareActionParameters, type: z.literal("CREATE_SHARE")}); export const deleteAction = z.object({parameters: z.record(z.string(), z.unknown()).optional(), type: z.literal("DELETE_ASSET")}); export const deleteFileSetActionParameters = z.object({format: z.string(), storage_id: z.string()}); export const deleteFileSetAction = z.object({parameters: deleteFileSetActionParameters, type: z.literal("DELETE_FILE_SET")}); export const restrictAssetActionParameters = z.object({restrict_metadata_field: z.string(), warning: z.string().optional(), warning_metadata_field: z.string().optional()}); export const restrictAssetAction = z.object({parameters: restrictAssetActionParameters, type: z.literal("RESTRICT_ASSET")}); export const removeAssetRestrictionActionParameters = z.object({restrict_metadata_field: z.string(), warning_metadata_field: z.string().optional()}); export const removeAssetRestrictionAction = z.object({parameters: removeAssetRestrictionActionParameters, type: z.literal("REMOVE_ASSET_RESTRICTION")}); export const requestReviewActionParameters = z.object({externals: z.array(z.string()).optional(), groups: z.array(z.string()).optional(), min_number: z.number().int().gte(1).optional(), share: createShareActionParameters, status: z.enum(["N/A", "REQUESTED", "APPROVED", "NOT_APPROVED", "MIXED"]).optional(), users: z.array(z.string()).optional()}); export const requestReviewAction = z.object({parameters: requestReviewActionParameters, type: z.literal("REQUEST_REVIEW")}); export const metadataFieldValueSchema = z.object({field_values: z.array(z.record(z.string(), z.unknown())).optional()}); export const triggerCustomActionParameters = z.object({action_id: z.string(), context: z.enum(["ASSET", "ASSET_SUBCLIP", "BULK"]), metadata_values: z.record(z.string(), metadataFieldValueSchema).optional()}); export const triggerCustomAction = z.object({parameters: triggerCustomActionParameters, type: z.literal("CUSTOM_ACTION")}); export const rangeFilter = z.object({max: z.string().optional(), min: z.string().optional(), timezone: z.string().optional()}); export const term = z.object({exists: z.boolean().optional(), external: z.record(z.string(), z.unknown()).optional(), missing: z.boolean().optional(), name: z.string(), range: rangeFilter.optional(), value: z.unknown(), value_in: z.array(z.string()).optional()}); export const condition: z.ZodType = z.object({conditions: z.array(z.lazy(() => condition)).optional(), filters: z.array(z.lazy(() => condition)).optional(), operator: z.string(), path: z.string().optional(), terms: z.array(term).optional()}); export const metadataUpdateTriggerParameters = z.object({event_type: z.enum(["ASSETS", "COLLECTIONS"]), metadata_values: z.record(z.string(), metadataFieldValueSchema)}); export const metadataUpdateTrigger = z.object({parameters: metadataUpdateTriggerParameters, type: z.literal("METADATA_UPDATE")}); export const assetSharedTriggerParameters = z.object({allow_download: z.boolean().nullable().optional()}); export const assetSharedTriggerSchema = z.object({parameters: assetSharedTriggerParameters, type: z.literal("ASSET_SHARE")}); export const subtitleAddedTriggerParameters = z.object({closed_captions: z.boolean().nullable().optional(), language: z.string().nullable().optional()}); export const subtitleAddedTrigger = z.object({parameters: subtitleAddedTriggerParameters, type: z.literal("SUBTITLE_ADDED")}); export const reviewStatusChangedTriggerParameters = z.object({statuses: z.array(z.enum(["N/A", "REQUESTED", "APPROVED", "NOT_APPROVED", "MIXED"])).optional()}); export const reviewStatusChangedTrigger = z.object({parameters: reviewStatusChangedTriggerParameters, type: z.literal("REVIEW_STATUS_CHANGED")}); export const assetOnlineTriggerParameters = z.object({only_first_version: z.literal(true), wait_for_transcode: z.boolean()}); export const assetOnlineTriggerSchema = z.object({parameters: assetOnlineTriggerParameters, type: z.literal("ASSET_ONLINE")}); export const versionOnlineTriggerParameters = z.object({only_first_version: z.literal(false), wait_for_transcode: z.boolean()}); export const versionOnlineTrigger = z.object({parameters: versionOnlineTriggerParameters, type: z.literal("VERSION_ONLINE")}); export const assetTransferredToStorageParameters = z.object({format: z.string().nullable().optional(), storage_id: z.string()}); export const assetTransferredToStorageTriggerSchema = z.object({parameters: assetTransferredToStorageParameters, type: z.literal("TRANSFER_TO_STORAGE")}); export const assetArchivedTriggerParameters = z.object({storage_id: z.string().optional()}); export const assetArchivedTriggerSchema = z.object({parameters: assetArchivedTriggerParameters, type: z.literal("ARCHIVE")}); export const assetRestoredTriggerParameters = z.object({storage_id: z.string().optional()}); export const assetRestoredTriggerSchema = z.object({parameters: assetRestoredTriggerParameters, type: z.literal("RESTORE")}); export const createdAtTransitionTriggerParameters = z.object({days_since_created: z.number().int().gte(1)}); export const createdAtTransitionTrigger = z.object({parameters: createdAtTransitionTriggerParameters, type: z.literal("CREATED_AT_TRANSITION")}); export const modifiedAtTransitionTriggerParameters = z.object({days_since_modified: z.number().int().gte(1)}); export const modifiedAtTransitionTrigger = z.object({parameters: modifiedAtTransitionTriggerParameters, type: z.literal("MODIFIED_AT_TRANSITION")}); export const objectCollectionTriggerParameters = z.object({collection_ids: z.array(z.string()), include_subcollections: z.boolean().optional(), object_type: z.string()}); export const objectAddedToCollectionTrigger = z.object({parameters: objectCollectionTriggerParameters, type: z.literal("OBJECT_ADDED_TO_COLLECTION")}); export const objectRemovedFromCollectionTrigger = z.object({parameters: objectCollectionTriggerParameters, type: z.literal("OBJECT_REMOVED_FROM_COLLECTION")}); export const automationSchema = z.object({actions: z.array(z.union([analyzeActionSchema, extractFacesAction, createPublicationJobAction, archiveActionSchema, restoreAction, exportAction, updateACLAction, metadataUpdateAction, aIMetadataFillingActionSchema, transcodeAction, transferAction, requestOriginalAction, addToCollectionActionSchema, addToPortalActionSchema, removeFromPortalAction, transcribeAction, createShareAction, deleteAction, deleteFileSetAction, restrictAssetAction, removeAssetRestrictionAction, requestReviewAction, triggerCustomAction])), conditions: z.array(condition).optional(), created_by: z.string().optional(), date_created: z.string().optional(), date_modified: z.string().optional(), description: z.string().optional(), id: z.string().optional(), modified_by: z.string().optional(), name: z.string(), status: z.enum(["ACTIVE", "INACTIVE"]).optional(), system_domain_id: z.string().optional(), triggers: z.array(z.union([metadataUpdateTrigger, assetSharedTriggerSchema, subtitleAddedTrigger, reviewStatusChangedTrigger, assetOnlineTriggerSchema, versionOnlineTrigger, assetTransferredToStorageTriggerSchema, assetArchivedTriggerSchema, assetRestoredTriggerSchema, createdAtTransitionTrigger, modifiedAtTransitionTrigger, objectAddedToCollectionTrigger, objectRemovedFromCollectionTrigger]))}); export const validateResponse = async ( schema: { readonly '~standard': { readonly validate: (value: unknown) => ({ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }) | Promise<{ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }> } }, value: unknown ): Promise => { const result = await schema['~standard'].validate(value) if (result.issues !== undefined) { const detail = result.issues .map(({ message, path }) => path?.length ? `${path.map((segment) => String(typeof segment === 'object' ? segment.key : segment)).join('.')}: ${message}` : message ) .join('; ') throw new Error(`Response does not match the schema: ${detail}`, { cause: { issues: result.issues } }) } return result.value }; /** * Update automation * * PATCH /v1/automations/{automation_id}/ */ export const patchApiV1AutomationsAutomationId = async (args: PatchApiV1AutomationsAutomationIdArgs, options: PatchApiV1AutomationsAutomationIdOptions) => { const {baseUrl, fetch: fetchFn = fetch} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/json") headers.set('accept', "application/json") if (args['App-ID'] != null) headers.set("App-ID", String(args['App-ID'])) if (args['Auth-Token'] != null) headers.set("Auth-Token", String(args['Auth-Token'])) const url = `${baseUrl.replace(/\/+$/, '')}/v1/automations/${encodeURIComponent(String(args.automation_id))}/${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "PATCH", headers, body: JSON.stringify(args.body)}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(automationSchema, await res.json()) };