// This file was auto-generated by Fern from our API Definition.

import type * as Vapi from "../index.js";

export interface ArtifactPlan {
    /**
     * This determines whether assistant's calls are recorded. Defaults to true.
     *
     * Usage:
     * - If you don't want to record the calls, set this to false.
     * - If you want to record the calls when `assistant.hipaaEnabled` (deprecated) or `assistant.compliancePlan.hipaaEnabled` explicity set this to true and make sure to provide S3 or GCP credentials on the Provider Credentials page in the Dashboard.
     *
     * You can find the recording at `call.artifact.recordingUrl` and `call.artifact.stereoRecordingUrl` after the call is ended.
     *
     * @default true
     */
    recordingEnabled?: boolean | undefined;
    /**
     * This determines the format of the recording. Defaults to `wav;l16`.
     *
     * @default 'wav;l16'
     */
    recordingFormat?: Vapi.ArtifactPlanRecordingFormat | undefined;
    /**
     * This determines whether to use custom storage (S3 or GCP) for call recordings when storage credentials are configured.
     *
     * When set to false, recordings will be stored on Vapi's storage instead of your custom storage, even if you have custom storage credentials configured.
     *
     * Usage:
     * - Set to false if you have custom storage configured but want to store recordings on Vapi's storage for this assistant.
     * - Set to true (or leave unset) to use your custom storage for recordings when available.
     *
     * @default true
     */
    recordingUseCustomStorageEnabled?: boolean | undefined;
    /**
     * This determines whether the video is recorded during the call. Defaults to false. Only relevant for `webCall` type.
     *
     * You can find the video recording at `call.artifact.videoRecordingUrl` after the call is ended.
     *
     * @default false
     */
    videoRecordingEnabled?: boolean | undefined;
    /** This determines whether the artifact contains the full message history, even after handoff context engineering. Defaults to false. */
    fullMessageHistoryEnabled?: boolean | undefined;
    /**
     * This determines whether the SIP packet capture is enabled. Defaults to true. Only relevant for `phone` type calls where phone number's provider is `vapi` or `byo-phone-number`.
     *
     * You can find the packet capture at `call.artifact.pcapUrl` after the call is ended.
     *
     * @default true
     */
    pcapEnabled?: boolean | undefined;
    /**
     * This is the path where the SIP packet capture will be uploaded. This is only used if you have provided S3 or GCP credentials on the Provider Credentials page in the Dashboard.
     *
     * If credential.s3PathPrefix or credential.bucketPlan.path is set, this will append to it.
     *
     * Usage:
     * - If you want to upload the packet capture to a specific path, set this to the path. Example: `/my-assistant-captures`.
     * - If you want to upload the packet capture to the root of the bucket, set this to `/`.
     *
     * @default '/'
     */
    pcapS3PathPrefix?: string | undefined;
    /**
     * This determines whether to use custom storage (S3 or GCP) for SIP packet captures when storage credentials are configured.
     *
     * When set to false, packet captures will be stored on Vapi's storage instead of your custom storage, even if you have custom storage credentials configured.
     *
     * Usage:
     * - Set to false if you have custom storage configured but want to store packet captures on Vapi's storage for this assistant.
     * - Set to true (or leave unset) to use your custom storage for packet captures when available.
     *
     * @default true
     */
    pcapUseCustomStorageEnabled?: boolean | undefined;
    /**
     * This determines whether the call logs are enabled. Defaults to true.
     *
     * @default true
     */
    loggingEnabled?: boolean | undefined;
    /**
     * This determines whether to use custom storage (S3 or GCP) for call logs when storage credentials are configured.
     *
     * When set to false, logs will be stored on Vapi's storage instead of your custom storage, even if you have custom storage credentials configured.
     *
     * Usage:
     * - Set to false if you have custom storage configured but want to store logs on Vapi's storage for this assistant.
     * - Set to true (or leave unset) to use your custom storage for logs when available.
     *
     * @default true
     */
    loggingUseCustomStorageEnabled?: boolean | undefined;
    /** This is the plan for `call.artifact.transcript`. To disable, set `transcriptPlan.enabled` to false. */
    transcriptPlan?: Vapi.TranscriptPlan | undefined;
    /**
     * This is the path where the recording will be uploaded. This is only used if you have provided S3 or GCP credentials on the Provider Credentials page in the Dashboard.
     *
     * If credential.s3PathPrefix or credential.bucketPlan.path is set, this will append to it.
     *
     * Usage:
     * - If you want to upload the recording to a specific path, set this to the path. Example: `/my-assistant-recordings`.
     * - If you want to upload the recording to the root of the bucket, set this to `/`.
     *
     * @default '/'
     */
    recordingPath?: string | undefined;
    /**
     * This is an array of structured output IDs to be calculated during the call.
     * The outputs will be extracted and stored in `call.artifact.structuredOutputs` after the call is ended.
     */
    structuredOutputIds?: string[] | undefined;
    /**
     * This is an array of transient structured outputs to be calculated during the call.
     * The outputs will be extracted and stored in `call.artifact.structuredOutputs` after the call is ended.
     * Use this to provide inline structured output configurations instead of referencing existing ones via structuredOutputIds.
     */
    structuredOutputs?: Vapi.CreateStructuredOutputDto[] | undefined;
    /**
     * This is an array of scorecard IDs that will be evaluated based on the structured outputs extracted during the call.
     * The scorecards will be evaluated and the results will be stored in `call.artifact.scorecards` after the call has ended.
     */
    scorecardIds?: string[] | undefined;
    /**
     * This is the array of scorecards that will be evaluated based on the structured outputs extracted during the call.
     * The scorecards will be evaluated and the results will be stored in `call.artifact.scorecards` after the call has ended.
     */
    scorecards?: Vapi.CreateScorecardDto[] | undefined;
    /**
     * This is the path where the call logs will be uploaded. This is only used if you have provided S3 or GCP credentials on the Provider Credentials page in the Dashboard.
     *
     * If credential.s3PathPrefix or credential.bucketPlan.path is set, this will append to it.
     *
     * Usage:
     * - If you want to upload the call logs to a specific path, set this to the path. Example: `/my-assistant-logs`.
     * - If you want to upload the call logs to the root of the bucket, set this to `/`.
     *
     * @default '/'
     */
    loggingPath?: string | undefined;
}
