from typing import Any from spec.jsonschema.job_inputs import JOB_TYPE_TO_CREATE_JOB_INPUTS_SCHEMA_MAP from video.constants import job_io_fields, job_types JOB_TYPE_TO_CREATE_JOB_OUTPUTS_SCHEMA_MAP: dict[str, dict[str, Any]] = { job_types.CALCULATE_AUDIO_STATS: { "type": ["object", "null"], "additionalProperties": False, "properties": { job_io_fields.LEFT_AUDIO_CHANNEL_RMS_VOLUME_DECIBELS: {"type": "number"}, job_io_fields.RIGHT_AUDIO_CHANNEL_RMS_VOLUME_DECIBELS: {"type": "number"}, }, }, job_types.DETECT_BLACK_INTERVALS_AT_BEGINNING_AND_END_OF_VIDEO: { "type": ["object", "null"], "additionalProperties": False, "properties": { job_io_fields.BLACK_INTERVAL_AT_BEGINNING_ENDS_AT_SECONDS: { "type": ["number", "null"] }, job_io_fields.BLACK_INTERVAL_AT_END_BEGINS_AT_SECONDS: { "type": ["number", "null"] }, }, }, job_types.DETECT_MAX_VOLUME: { "type": ["object", "null"], "additionalProperties": False, "properties": {job_io_fields.MAX_VOLUME_DECIBELS: {"type": "number"}}, }, job_types.DETECT_SILENT_INTERVALS_AT_BEGINNING_AND_END_OF_AUDIO: { "type": ["object", "null"], "additionalProperties": False, "properties": { job_io_fields.SILENT_INTERVAL_AT_BEGINNING_ENDS_AT_SECONDS: { "type": ["number", "null"] }, job_io_fields.SILENT_INTERVAL_AT_END_BEGINS_AT_SECONDS: { "type": ["number", "null"] }, }, }, job_types.DETECT_VIDEO_LOCATION_AND_DIMENSIONS_WITHIN_BLACK_BORDER: { "type": ["object", "null"], "additionalProperties": False, "properties": { job_io_fields.VIDEO_INNER_TOP_LEFT_CORNER_X_PIXELS: {"type": "integer"}, job_io_fields.VIDEO_INNER_TOP_LEFT_CORNER_Y_PIXELS: {"type": "integer"}, job_io_fields.VIDEO_INNER_WIDTH_PIXELS: {"type": "integer"}, job_io_fields.VIDEO_INNER_HEIGHT_PIXELS: {"type": "integer"}, }, }, job_types.EXTRACT_METADATA: { "type": ["object", "null"], "additionalProperties": False, "properties": { job_io_fields.NUM_VIDEO_STREAMS: {"type": "integer"}, job_io_fields.NUM_AUDIO_STREAMS: {"type": "integer"}, job_io_fields.VIDEO_STREAM_START_TIME_SECONDS: {"type": ["number", "null"]}, job_io_fields.VIDEO_STREAM_DURATION_SECONDS: {"type": ["number", "null"]}, job_io_fields.VIDEO_STREAM_FRAME_RATE_FRAMES_PER_SECOND: { "type": ["number", "null"] }, job_io_fields.VIDEO_STREAM_SCAN_TYPE: {"type": ["string", "null"]}, job_io_fields.VIDEO_STREAM_WIDTH_PIXELS: {"type": ["number", "null"]}, job_io_fields.VIDEO_STREAM_HEIGHT_PIXELS: {"type": ["number", "null"]}, job_io_fields.VIDEO_STREAM_BIT_DEPTH_BITS: {"type": ["number", "null"]}, job_io_fields.VIDEO_STREAM_BIT_RATE_BITS_PER_SECOND: { "type": ["number", "null"] }, job_io_fields.VIDEO_STREAM_MAX_BIT_RATE_BITS_PER_SECOND: { "type": ["number", "null"] }, job_io_fields.VIDEO_STREAM_CODEC: {"type": ["string", "null"]}, job_io_fields.VIDEO_STREAM_CODEC_PROFILE: {"type": ["string", "null"]}, job_io_fields.VIDEO_STREAM_FORMAT: {"type": ["string", "null"]}, job_io_fields.VIDEO_STREAM_FORMAT_PROFILE: {"type": ["string", "null"]}, job_io_fields.VIDEO_STREAM_PIXEL_ASPECT_RATIO: {"type": ["number", "null"]}, job_io_fields.AUDIO_STREAM_START_TIME_SECONDS: { "type": ["integer", "null"] }, job_io_fields.AUDIO_STREAM_DURATION_SECONDS: {"type": ["number", "null"]}, job_io_fields.AUDIO_STREAM_CHANNEL_COUNT: {"type": ["integer", "null"]}, job_io_fields.AUDIO_STREAM_CHANNEL_LAYOUT: {"type": ["string", "null"]}, job_io_fields.AUDIO_STREAM_BIT_DEPTH_BITS: {"type": ["number", "null"]}, job_io_fields.AUDIO_STREAM_BIT_RATE_BITS_PER_SECOND: { "type": ["number", "null"] }, job_io_fields.AUDIO_STREAM_MAX_BIT_RATE_BITS_PER_SECOND: { "type": ["number", "null"] }, job_io_fields.AUDIO_STREAM_SAMPLE_RATE_SAMPLES_PER_SECOND: { "type": ["number", "null"] }, job_io_fields.AUDIO_STREAM_CODEC: {"type": ["string", "null"]}, job_io_fields.AUDIO_STREAM_CODEC_PROFILE: {"type": ["string", "null"]}, job_io_fields.AUDIO_STREAM_FORMAT: {"type": ["string", "null"]}, job_io_fields.AUDIO_STREAM_FORMAT_PROFILE: {"type": ["string", "null"]}, job_io_fields.CONTAINER_FORMAT: {"type": ["string", "null"]}, job_io_fields.CONTAINER_FORMAT_PROFILE: {"type": ["string", "null"]}, }, }, job_types.VALIDATE_METADATA: { "type": ["object", "null"], "additionalProperties": False, "properties": { job_io_fields.ERROR_MUST_CONTAIN_EXACTLY_1_AUDIO_STREAM: {"type": "string"}, job_io_fields.ERROR_MUST_CONTAIN_EXACTLY_1_VIDEO_STREAM: {"type": "string"}, job_io_fields.ERROR_UNSUPPORTED_CONTAINER: {"type": "string"}, job_io_fields.ERROR_AUDIO_MUST_BE_STEREO: {"type": "string"}, job_io_fields.ERROR_UNSUPPORTED_VIDEO_CODEC: {"type": "string"}, job_io_fields.ERROR_UNSUPPORTED_AUDIO_CODEC: {"type": "string"}, job_io_fields.ERROR_UNSUPPORTED_FRAME_RATE: {"type": "string"}, job_io_fields.ERROR_WIDTH_TOO_SMALL: {"type": "string"}, job_io_fields.ERROR_HEIGHT_TOO_SMALL: {"type": "string"}, job_io_fields.ERROR_WIDTH_TOO_LARGE: {"type": "string"}, job_io_fields.ERROR_HEIGHT_TOO_LARGE: {"type": "string"}, job_io_fields.ERROR_AUDIO_BIT_RATE_TOO_LOW: {"type": "string"}, job_io_fields.ERROR_AUDIO_SAMPLE_RATE_TOO_LOW: {"type": "string"}, job_io_fields.ERROR_VIDEO_BIT_RATE_TOO_LOW: {"type": "string"}, job_io_fields.ERROR_VIDEO_DURATION_TOO_SHORT: {"type": "string"}, }, }, job_types.VALIDATE_ANALYSIS: { "type": ["object", "null"], "additionalProperties": False, "properties": { job_io_fields.DEPRECATED_VIDEO_OUTPUT_WIDTH_PIXELS: { "type": "integer", "deprecated": True, "description": "Replaced by VIDEO_OUTPUT_OUTER_WIDTH_PIXELS.", }, job_io_fields.VIDEO_OUTPUT_OUTER_WIDTH_PIXELS: {"type": "integer"}, job_io_fields.DEPRECATED_VIDEO_OUTPUT_HEIGHT_PIXELS: { "type": "integer", "deprecated": True, "description": "Replaced by VIDEO_OUTPUT_INNER_HEIGHT_PIXELS and VIDEO_OUTPUT_OUTER_HEIGHT_PIXELS.", }, job_io_fields.VIDEO_OUTPUT_OUTER_HEIGHT_PIXELS: {"type": "integer"}, job_io_fields.VIDEO_OUTPUT_INNER_WIDTH_PIXELS: {"type": "integer"}, job_io_fields.VIDEO_OUTPUT_INNER_HEIGHT_PIXELS: {"type": "integer"}, job_io_fields.AUDIO_VOLUME_ADJUSTMENT_DB: {"type": "number"}, job_io_fields.INPUT_CLIP_START_TIMECODE: {"type": ["string", "null"]}, job_io_fields.INPUT_CLIP_END_TIMECODE: {"type": ["string", "null"]}, job_io_fields.ERROR_DUAL_MONO_AUDIO: {"type": "string"}, job_io_fields.ERROR_VOLUME_TOO_LOW: {"type": "string"}, job_io_fields.ERROR_CANNOT_RESIZE_TO_STANDARD_RESOLUTION: { "type": "string" }, }, }, job_types.TRANSFER_PRORES_FROM_S3_TO_RIPPER: { "type": ["object", "null"], "additionalProperties": False, "properties": {}, }, job_types.TRANSFER_H264_FROM_S3_TO_RIPPER: { "type": ["object", "null"], "additionalProperties": False, "properties": {}, }, job_types.TRANSFER_FROM_BROWSER_TO_S3: { "type": ["object", "null"], "additionalProperties": False, "properties": { job_io_fields.ERROR_TRANSFER_FROM_BROWSER_TO_S3_EXPIRED: { "type": "string", }, }, }, job_types.TRANSFER_FROM_S3_TO_S3: { "type": ["object", "null"], "additionalProperties": False, "properties": { job_io_fields.INPUT_VIDEO_S3_BUCKET: { "type": "string", }, job_io_fields.INPUT_VIDEO_S3_KEY: { "type": "string", }, }, }, job_types.TRANSFER_FROM_GOOGLE_DRIVE_TO_S3: { "type": ["object", "null"], "additionalProperties": False, "properties": { job_io_fields.FILE_TRANSFER_PROGRESS_PERCENT: { "type": "integer", }, job_io_fields.FILE_TRANSFER_PROGRESS_BYTES: { "type": "integer", }, job_io_fields.FILE_TRANSFER_TOTAL_BYTES: { "type": "integer", }, job_io_fields.INPUT_VIDEO_S3_BUCKET: { "type": "string", }, job_io_fields.INPUT_VIDEO_S3_KEY: { "type": "string", }, }, }, job_types.TRANSFER_FROM_DROPBOX_TO_S3: { "type": ["object", "null"], "additionalProperties": False, "properties": { job_io_fields.FILE_TRANSFER_PROGRESS_PERCENT: { "type": "integer", }, job_io_fields.FILE_TRANSFER_PROGRESS_BYTES: { "type": "integer", }, job_io_fields.FILE_TRANSFER_TOTAL_BYTES: { "type": "integer", }, job_io_fields.INPUT_VIDEO_S3_BUCKET: { "type": "string", }, job_io_fields.INPUT_VIDEO_S3_KEY: { "type": "string", }, }, }, job_types.CREATE_STREAMABLE_PREVIEW_AND_THUMBNAILS: { "type": ["object", "null"], "additionalProperties": False, "properties": { job_io_fields.CREATE_STREAMABLE_PREVIEW_AND_THUMBNAILS_MEDIACONVERT_JOB_ID: { # noqa "type": "string" }, job_io_fields.SMALL_THUMBNAILS_OUTPUT_S3_KEY: {"type": "string"}, }, }, job_types.CREATE_MEZZANINES: { "type": ["object", "null"], "properties": { job_io_fields.CREATE_MEZZANINES_MEDIACONVERT_JOB_ID: { # noqa "type": "string" }, job_io_fields.PRORES_MEZZANINE_OUTPUT_S3_KEY: {"type": "string"}, job_io_fields.H264_MEZZANINE_OUTPUT_S3_KEY: {"type": "string"}, }, }, job_types.WORKFLOW_INGEST_FROM_BROWSER: { "type": ["object", "null"], "additionalProperties": True, "properties": {}, }, job_types.WORKFLOW_INGEST_FROM_S3: { "type": ["object", "null"], "additionalProperties": True, "properties": {}, }, job_types.WORKFLOW_INGEST_FROM_GOOGLE_DRIVE: { "type": ["object", "null"], "additionalProperties": True, "properties": {}, }, job_types.WORKFLOW_INGEST_FROM_DROPBOX: { "type": ["object", "null"], "additionalProperties": True, "properties": {}, }, job_types.WORKFLOW_APPROVAL: { "type": ["object", "null"], "additionalProperties": True, "properties": {}, }, job_types.WORKFLOW_INGESTION_REENCODE: { "type": ["object", "null"], "additionalProperties": True, "properties": {}, }, job_types.CONVERT_DEFAULT_THUMBNAIL_TO_TIFF: { "type": ["object", "null"], "additionalProperties": False, "properties": { job_io_fields.TIFF_THUMBNAIL_S3_KEY: {"type": "string"}, }, }, job_types.CONVERT_THUMBNAILS_TO_TIFFS: { "type": ["object", "null"], "additionalProperties": False, "properties": { job_io_fields.VIDEO_IMAGE_S2: {"type": "string"}, job_io_fields.VIDEO_IMAGE_S5: {"type": "string"}, job_io_fields.VIDEO_IMAGE_S10: {"type": "string"}, job_io_fields.VIDEO_IMAGE_S11: {"type": "string"}, }, }, job_types.WRITE_THUMBNAIL_LOCATIONS_TO_VIDEO_ASSET_TABLE: { "type": ["object", "null"], "additionalProperties": False, "properties": {}, }, job_types.TRANSFER_H264_FROM_S3_TO_RIPPER_STORAGE: { "type": ["object", "null"], "additionalProperties": False, "properties": {}, }, job_types.TRANSFER_TIFF_THUMBNAIL_FROM_S3_TO_RIPPER: { "type": ["object", "null"], "additionalProperties": False, "properties": {}, }, job_types.GET_CREATE_MEZZANINES_INPUTS: JOB_TYPE_TO_CREATE_JOB_INPUTS_SCHEMA_MAP[ job_types.CREATE_STREAMABLE_PREVIEW_AND_THUMBNAILS ], job_types.GET_PRODUCT_METADATA: { "type": ["object", "null"], "additionalProperties": False, "properties": { job_io_fields.THUMBNAIL_S3_KEY: { "type": "string", }, job_io_fields.CUSTOM_THUMBNAIL_S3_KEY: { "type": ["string", "null"], }, job_io_fields.UPC: { "type": "integer", }, }, }, job_types.EXTRACT_PRORES_MEZZANINE_METADATA: { "type": ["object", "null"], "additionalProperties": False, "properties": { job_io_fields.PRORES_MEZZANINE_METADATA: { "type": "string", }, job_io_fields.TUID: { "type": "integer", }, }, }, job_types.WRITE_MEZZ_VIDEO_LOCATIONS_TO_VIDEO_ASSET_TABLE: { "type": ["object", "null"], "additionalProperties": False, "properties": { job_io_fields.VIDEO_MASTER: { "type": "string", }, job_io_fields.H264_SD: { "type": "string", }, job_io_fields.H264_HD: { "type": "string", }, }, }, job_types.MARK_VIDEO_PRODUCT_AS_APPROVED: { "type": ["object", "null"], "additionalProperties": False, "properties": {}, }, }