/** * SmartyMeet Dev03 API REST * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * * The version of the OpenAPI document: 1.0.1 * Contact: developer@smartymeet.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech * Do not edit the class manually. */ import type { MeetingRecallSchema } from './MeetingRecallSchema'; import type { MeetingSpeakerStatSchema } from './MeetingSpeakerStatSchema'; import type { MeetingAttributesSchemaDelivery } from './MeetingAttributesSchemaDelivery'; import type { MeetingTranscriptSegmentSchema } from './MeetingTranscriptSegmentSchema'; import type { ResourceTimestampsSchema } from './ResourceTimestampsSchema'; /** * * @export * @interface MeetingAttributesSchema */ export interface MeetingAttributesSchema { /** * * @type {string} * @memberof MeetingAttributesSchema */ title?: string; /** * * @type {string} * @memberof MeetingAttributesSchema */ description?: string; /** * * @type {Date} * @memberof MeetingAttributesSchema */ scheduledAt?: Date; /** * * @type {number} * @memberof MeetingAttributesSchema */ duration?: number; /** * Full BCP-47 locale tag (e.g. `en-US`, `pl-PL`, `fr-FR`, `ar-SA`, * `it-IT`). Set at creation time; controls the UI language of the * public lobby + room pages so a Polish recruiter sharing a link * gets a Polish lobby regardless of the candidate's browser * language. Immutable after creation. * * NOT to be confused with `languageCode`: that field is auto-detected * from the recorded speech and only populated post-meeting (AI * pipeline), whereas `defaultLocale` is human-picked at creation * time and drives UI. * * Validation: primary subtag must be one of {en, fr, ar, pl, it, cs}; * full tags are accepted (en-US, pl-PL, ...). Default chain at * creation: request body -> tenant settings.language -> 'en-US'. * @type {string} * @memberof MeetingAttributesSchema */ defaultLocale?: string; /** * Meeting kind. `chime` = in-product Chime SDK session; `recall` = third-party meeting (Zoom/Meet/Teams/Webex) where a recall.ai bot joins to record + transcribe; `external` = third-party meeting tracked on calendar without a bot. * @type {MeetingAttributesSchemaMeetingTypeEnum} * @memberof MeetingAttributesSchema */ meetingType?: MeetingAttributesSchemaMeetingTypeEnum; /** * Where the meeting actually runs. Drives URL parsing and bot dispatch capability. * @type {MeetingAttributesSchemaProviderEnum} * @memberof MeetingAttributesSchema */ provider?: MeetingAttributesSchemaProviderEnum; /** * Host-declared purpose of the meeting. Set at create time * (FE chip / template picker). Drives Boe's opener tone and * the post-meeting review-page filter. * * Distinct from `topicsDiscussed` which is AI-inferred * multi-value ground truth from the transcript - the two can * disagree (intent vs reality). * * Values: * - `interview` - any candidate-facing screening or interview * - `brief` - recruiter briefing client on a role * - `sales` - sales / commercial conversation * - `1on1` - manager <-> report sync * - `kickoff` - project / engagement kickoff * - `client_demo` - product demo to external party * - `internal_sync` - status update / planning / retro * - `training` - onboarding / knowledge transfer * - `other` - everything else * @type {MeetingAttributesSchemaPurposeEnum} * @memberof MeetingAttributesSchema */ purpose?: MeetingAttributesSchemaPurposeEnum; /** * Third-party meeting URL (Zoom/Meet/Teams/Webex). Null on chime meetings. * @type {string} * @memberof MeetingAttributesSchema */ joinUrl?: string; /** * Optional passcode (most often Zoom). * @type {string} * @memberof MeetingAttributesSchema */ joinPassword?: string; /** * Originating resource type. `emails` when the invite arrived via email; null for manually created meetings. * @type {string} * @memberof MeetingAttributesSchema */ sourceType?: string; /** * ID of the source resource (e.g. emailId). * @type {string} * @memberof MeetingAttributesSchema */ sourceId?: string; /** * * @type {MeetingRecallSchema} * @memberof MeetingAttributesSchema */ recall?: MeetingRecallSchema; /** * Post-meeting recording URL. Populated by different paths * depending on meetingType: * - `chime`: presigned S3 URL minted on read (in showMeeting) * once `concatenationStatus=success`. Null until then. * - `recall`: written by the recall.ai webhook handler with * the recall.ai-hosted recording URL. * - `external`: null - no recording captured. * FE should treat presence-not-null as "playable" regardless * of meetingType. * @type {string} * @memberof MeetingAttributesSchema */ recordingUrl?: string; /** * Post-meeting transcript. Multilingual dict like calls: { langCode: text }. * @type {{ [key: string]: string; }} * @memberof MeetingAttributesSchema */ transcript?: { [key: string]: string; }; /** * * @type {string} * @memberof MeetingAttributesSchema */ mediaRegion?: string; /** * * @type {string} * @memberof MeetingAttributesSchema */ externalMeetingId?: string; /** * * @type {string} * @memberof MeetingAttributesSchema */ chimeMeetingId?: string; /** * Raw AWS Chime CreateMeeting `Meeting` object - passed verbatim to chime-sdk-js. Includes MeetingFeatures.Audio.EchoReduction when enabled server-side. * @type {{ [key: string]: any; }} * @memberof MeetingAttributesSchema */ chimeMeetingData?: { [key: string]: any; }; /** * Top-level scalar mirror of relationships.candidate.data.id, used by the CandidateIdIndex GSI for reverse-lookup ('list meetings for this candidate'). Sparse - present only when the relationship is set. Do NOT set this directly on createMeeting / updateMeeting; pass relationships.candidate instead and the server derives the scalar. * @type {string} * @memberof MeetingAttributesSchema */ candidateId?: string; /** * Top-level scalar mirror of relationships.job.data.id, used by the JobIdIndex GSI ('list meetings for this job'). Derived server-side from relationships.job. * @type {string} * @memberof MeetingAttributesSchema */ jobId?: string; /** * Top-level scalar mirror of relationships.host.data.id (always a users id - human recruiter or boe user). Used by the HostIdIndex GSI for the 'my meetings' dashboard. Derived server-side from relationships.host. * @type {string} * @memberof MeetingAttributesSchema */ hostId?: string; /** * When true (default), human-hosted meetings auto-dispatch a Boe notetaker bot at meeting start time. Set false on createMeeting to opt out for sensitive sessions. Ignored when the meeting is itself AI-hosted (host.data.id is a boe user); the host bot already takes notes. * @type {boolean} * @memberof MeetingAttributesSchema */ notetakerEnabled?: boolean; /** * Chime SDK Media Capture Pipeline lifecycle. Set by the Boe bot when it starts/stops the capture. Set only for `meetingType=chime`; null on recall/external. * @type {MeetingAttributesSchemaRecordingStatusEnum} * @memberof MeetingAttributesSchema */ recordingStatus?: MeetingAttributesSchemaRecordingStatusEnum; /** * Chime SDK Media Capture Pipeline ARN. Internal; FE shouldn't need this directly. Set only for `meetingType=chime`. * @type {string} * @memberof MeetingAttributesSchema */ mediaCapturePipelineArn?: string; /** * S3 key prefix where capture pipeline wrote composited-video chunks. Inside the meeting service bucket. Set only for `meetingType=chime`. * @type {string} * @memberof MeetingAttributesSchema */ recordingS3Prefix?: string; /** * Set only for `meetingType=chime`. * @type {Date} * @memberof MeetingAttributesSchema */ recordingStartedAt?: Date; /** * Set only for `meetingType=chime`. * @type {Date} * @memberof MeetingAttributesSchema */ recordingEndedAt?: Date; /** * Set when `recordingStatus=failed`. Includes the AWS error name + message. Set only for `meetingType=chime`. * @type {string} * @memberof MeetingAttributesSchema */ recordingError?: string; /** * Chime SDK Media Concatenation Pipeline lifecycle. Concat merges the ~5s capture chunks into one composited-video.mp4. Flipped to `success` by the ffmpeg-extract Lambda the moment the merged MP4 lands in S3. Set only for `meetingType=chime`. * @type {MeetingAttributesSchemaConcatenationStatusEnum} * @memberof MeetingAttributesSchema */ concatenationStatus?: MeetingAttributesSchemaConcatenationStatusEnum; /** * Concat pipeline ARN. Last path component is the {concatId} used as the merged MP4 filename. Set only for `meetingType=chime`. * @type {string} * @memberof MeetingAttributesSchema */ concatenationPipelineArn?: string; /** * S3 key prefix where the concat output lands. Usually {shardId}/{meetingId}/merged/. Set only for `meetingType=chime`. * @type {string} * @memberof MeetingAttributesSchema */ concatenationS3Prefix?: string; /** * Set only for `meetingType=chime`. * @type {Date} * @memberof MeetingAttributesSchema */ concatenationStartedAt?: Date; /** * Set only for `meetingType=chime`. * @type {Date} * @memberof MeetingAttributesSchema */ concatenationEndedAt?: Date; /** * Set when `concatenationStatus=failed`. Set only for `meetingType=chime`. * @type {string} * @memberof MeetingAttributesSchema */ concatenationError?: string; /** * Phase 3 Step Function (ffmpeg + gpt-audio + translate + finalize) lifecycle. Set by the finalize Lambda. * @type {MeetingAttributesSchemaAiProcessingStatusEnum} * @memberof MeetingAttributesSchema */ aiProcessingStatus?: MeetingAttributesSchemaAiProcessingStatusEnum; /** * * @type {Date} * @memberof MeetingAttributesSchema */ aiProcessingStartedAt?: Date; /** * * @type {Date} * @memberof MeetingAttributesSchema */ aiProcessingEndedAt?: Date; /** * * @type {string} * @memberof MeetingAttributesSchema */ aiProcessingError?: string; /** * Time-coded transcript turns. Same shape as call transcriptSegments + adds attendeeId so FE can colour-code participants. * @type {Array} * @memberof MeetingAttributesSchema */ transcriptSegments?: Array; /** * Per-speaker talk percentage in basis points (10000 = 100%). * @type {Array} * @memberof MeetingAttributesSchema */ speakerStats?: Array; /** * BCP-47 primary language of the meeting, auto-detected by gpt-audio. * @type {string} * @memberof MeetingAttributesSchema */ languageCode?: string; /** * AI-generated 2-4 paragraph summary per locale. Keyed by * BCP-47 locale (e.g. `en-US`, `pl-PL`); values are strings. * The source language (matches `languageCode`) is always * present; tenant target locales are added by the * post-meeting AI translation step. FE selects the locale to * render (no auto-flatten on read). Same shape as `keyNotes`. * @type {{ [key: string]: string; }} * @memberof MeetingAttributesSchema */ summary?: { [key: string]: string; }; /** * * @type {Date} * @memberof MeetingAttributesSchema */ summaryGeneratedAt?: Date; /** * 3-5 prose bullets per locale distilling the meeting's * substance. Keyed by BCP-47 locale (e.g. `en-US`, `pl-PL`); * values are arrays of strings. The source language (matches * `languageCode`) is always present; tenant target locales are * added by the post-meeting AI translation step. FE selects * the locale to render (no auto-flatten on read). * @type {{ [key: string]: Array; }} * @memberof MeetingAttributesSchema */ keyNotes?: { [key: string]: Array; }; /** * Stable facet keys from the meeting topic dictionary (FE renders human labels via shared dict). * @type {Array} * @memberof MeetingAttributesSchema */ topicsDiscussed?: Array; /** * * @type {MeetingAttributesSchemaSentimentEnum} * @memberof MeetingAttributesSchema */ sentiment?: MeetingAttributesSchemaSentimentEnum; /** * * @type {MeetingAttributesSchemaDelivery} * @memberof MeetingAttributesSchema */ delivery?: MeetingAttributesSchemaDelivery; /** * * @type {MeetingAttributesSchemaStatusEnum} * @memberof MeetingAttributesSchema */ status?: MeetingAttributesSchemaStatusEnum; /** * * @type {ResourceTimestampsSchema} * @memberof MeetingAttributesSchema */ timestamps?: ResourceTimestampsSchema; } /** * @export */ export declare const MeetingAttributesSchemaMeetingTypeEnum: { readonly Chime: "chime"; readonly Recall: "recall"; readonly External: "external"; }; export type MeetingAttributesSchemaMeetingTypeEnum = typeof MeetingAttributesSchemaMeetingTypeEnum[keyof typeof MeetingAttributesSchemaMeetingTypeEnum]; /** * @export */ export declare const MeetingAttributesSchemaProviderEnum: { readonly Chime: "chime"; readonly Zoom: "zoom"; readonly Meet: "meet"; readonly Teams: "teams"; readonly Webex: "webex"; readonly Other: "other"; }; export type MeetingAttributesSchemaProviderEnum = typeof MeetingAttributesSchemaProviderEnum[keyof typeof MeetingAttributesSchemaProviderEnum]; /** * @export */ export declare const MeetingAttributesSchemaPurposeEnum: { readonly Interview: "interview"; readonly Brief: "brief"; readonly Sales: "sales"; readonly _1on1: "1on1"; readonly Kickoff: "kickoff"; readonly ClientDemo: "client_demo"; readonly InternalSync: "internal_sync"; readonly Training: "training"; readonly Other: "other"; }; export type MeetingAttributesSchemaPurposeEnum = typeof MeetingAttributesSchemaPurposeEnum[keyof typeof MeetingAttributesSchemaPurposeEnum]; /** * @export */ export declare const MeetingAttributesSchemaRecordingStatusEnum: { readonly Recording: "recording"; readonly Success: "success"; readonly Failed: "failed"; }; export type MeetingAttributesSchemaRecordingStatusEnum = typeof MeetingAttributesSchemaRecordingStatusEnum[keyof typeof MeetingAttributesSchemaRecordingStatusEnum]; /** * @export */ export declare const MeetingAttributesSchemaConcatenationStatusEnum: { readonly Running: "running"; readonly Success: "success"; readonly Failed: "failed"; }; export type MeetingAttributesSchemaConcatenationStatusEnum = typeof MeetingAttributesSchemaConcatenationStatusEnum[keyof typeof MeetingAttributesSchemaConcatenationStatusEnum]; /** * @export */ export declare const MeetingAttributesSchemaAiProcessingStatusEnum: { readonly Running: "running"; readonly Success: "success"; readonly Failed: "failed"; }; export type MeetingAttributesSchemaAiProcessingStatusEnum = typeof MeetingAttributesSchemaAiProcessingStatusEnum[keyof typeof MeetingAttributesSchemaAiProcessingStatusEnum]; /** * @export */ export declare const MeetingAttributesSchemaSentimentEnum: { readonly Positive: "positive"; readonly Neutral: "neutral"; readonly Negative: "negative"; readonly Mixed: "mixed"; }; export type MeetingAttributesSchemaSentimentEnum = typeof MeetingAttributesSchemaSentimentEnum[keyof typeof MeetingAttributesSchemaSentimentEnum]; /** * @export */ export declare const MeetingAttributesSchemaStatusEnum: { readonly Active: "active"; readonly Scheduled: "scheduled"; readonly Ended: "ended"; readonly Archived: "archived"; }; export type MeetingAttributesSchemaStatusEnum = typeof MeetingAttributesSchemaStatusEnum[keyof typeof MeetingAttributesSchemaStatusEnum]; /** * Check if a given object implements the MeetingAttributesSchema interface. */ export declare function instanceOfMeetingAttributesSchema(value: object): value is MeetingAttributesSchema; export declare function MeetingAttributesSchemaFromJSON(json: any): MeetingAttributesSchema; export declare function MeetingAttributesSchemaFromJSONTyped(json: any, ignoreDiscriminator: boolean): MeetingAttributesSchema; export declare function MeetingAttributesSchemaToJSON(json: any): MeetingAttributesSchema; export declare function MeetingAttributesSchemaToJSONTyped(value?: MeetingAttributesSchema | null, ignoreDiscriminator?: boolean): any; //# sourceMappingURL=MeetingAttributesSchema.d.ts.map