feat: add vonage telephony (#35)

* refactor: telephony integration

* feat: add vonage telephony
This commit is contained in:
Sabiha Khan 2025-10-27 15:29:57 +05:30 committed by Sabiha Khan
parent 6503d806c5
commit 4cfdc3d420
39 changed files with 3382 additions and 335 deletions

View file

@ -1,9 +1,8 @@
// This file is auto-generated by @hey-api/openapi-ts
import { type ClientOptions as DefaultClientOptions, type Config, createClient, createConfig } from '@hey-api/client-fetch';
import { createClientConfig } from '../lib/apiClient';
import type { ClientOptions } from './types.gen';
import { type Config, type ClientOptions as DefaultClientOptions, createClient, createConfig } from '@hey-api/client-fetch';
import { createClientConfig } from '../lib/apiClient';
/**
* The `createClientConfig()` function will be called on client initialization
@ -17,4 +16,4 @@ export type CreateClientConfig<T extends DefaultClientOptions = ClientOptions> =
export const client = createClient(createClientConfig(createConfig<ClientOptions>({
baseUrl: 'http://127.0.0.1:8000'
})));
})));

View file

@ -1,3 +1,3 @@
// This file is auto-generated by @hey-api/openapi-ts
export * from './sdk.gen';
export * from './types.gen';
export * from './sdk.gen';

File diff suppressed because one or more lines are too long

View file

@ -261,11 +261,6 @@ export type ImpersonateResponse = {
access_token: string;
};
export type InitiateCallRequest = {
workflow_id: number;
workflow_run_id?: number | null;
};
export type IntegrationResponse = {
id: number;
integration_id: string;
@ -390,6 +385,7 @@ export type SuperuserWorkflowRunsListResponse = {
*/
export type TelephonyConfigurationResponse = {
twilio?: TwilioConfigurationResponse | null;
vonage?: VonageConfigurationResponse | null;
};
export type TestSessionResponse = {
@ -502,6 +498,45 @@ export type ValidationError = {
type: string;
};
/**
* Request schema for Vonage configuration.
*/
export type VonageConfigurationRequest = {
provider?: string;
/**
* Vonage API Key
*/
api_key?: string | null;
/**
* Vonage API Secret
*/
api_secret?: string | null;
/**
* Vonage Application ID
*/
application_id: string;
/**
* Private key for JWT generation
*/
private_key: string;
/**
* List of Vonage phone numbers (without + prefix)
*/
from_numbers: Array<string>;
};
/**
* Response schema for Vonage configuration with masked sensitive fields.
*/
export type VonageConfigurationResponse = {
provider: string;
application_id: string;
api_key: string | null;
api_secret: string | null;
private_key: string;
from_numbers: Array<string>;
};
export type WorkflowError = {
kind: ItemKind;
id: string | null;
@ -621,8 +656,110 @@ export type WorkflowTemplateResponse = {
created_at: string;
};
export type ApiRoutesTelephonyInitiateCallRequest = {
workflow_id: number;
workflow_run_id?: number | null;
phone_number?: string | null;
};
export type ApiRoutesTwilioInitiateCallRequest = {
workflow_id: number;
workflow_run_id?: number | null;
};
export type InitiateCallApiV1TelephonyInitiateCallPostData = {
body: ApiRoutesTelephonyInitiateCallRequest;
headers?: {
authorization?: string | null;
};
path?: never;
query?: never;
url: '/api/v1/telephony/initiate-call';
};
export type InitiateCallApiV1TelephonyInitiateCallPostErrors = {
/**
* Not found
*/
404: unknown;
/**
* Validation Error
*/
422: HttpValidationError;
};
export type InitiateCallApiV1TelephonyInitiateCallPostError = InitiateCallApiV1TelephonyInitiateCallPostErrors[keyof InitiateCallApiV1TelephonyInitiateCallPostErrors];
export type InitiateCallApiV1TelephonyInitiateCallPostResponses = {
/**
* Successful Response
*/
200: unknown;
};
export type HandleStatusCallbackApiV1TelephonyStatusCallbackWorkflowRunIdPostData = {
body?: never;
headers?: {
'x-twilio-signature'?: string | null;
};
path: {
workflow_run_id: number;
};
query?: never;
url: '/api/v1/telephony/status-callback/{workflow_run_id}';
};
export type HandleStatusCallbackApiV1TelephonyStatusCallbackWorkflowRunIdPostErrors = {
/**
* Not found
*/
404: unknown;
/**
* Validation Error
*/
422: HttpValidationError;
};
export type HandleStatusCallbackApiV1TelephonyStatusCallbackWorkflowRunIdPostError = HandleStatusCallbackApiV1TelephonyStatusCallbackWorkflowRunIdPostErrors[keyof HandleStatusCallbackApiV1TelephonyStatusCallbackWorkflowRunIdPostErrors];
export type HandleStatusCallbackApiV1TelephonyStatusCallbackWorkflowRunIdPostResponses = {
/**
* Successful Response
*/
200: unknown;
};
export type HandleVonageEventsApiV1TelephonyEventsWorkflowRunIdPostData = {
body?: never;
path: {
workflow_run_id: number;
};
query?: never;
url: '/api/v1/telephony/events/{workflow_run_id}';
};
export type HandleVonageEventsApiV1TelephonyEventsWorkflowRunIdPostErrors = {
/**
* Not found
*/
404: unknown;
/**
* Validation Error
*/
422: HttpValidationError;
};
export type HandleVonageEventsApiV1TelephonyEventsWorkflowRunIdPostError = HandleVonageEventsApiV1TelephonyEventsWorkflowRunIdPostErrors[keyof HandleVonageEventsApiV1TelephonyEventsWorkflowRunIdPostErrors];
export type HandleVonageEventsApiV1TelephonyEventsWorkflowRunIdPostResponses = {
/**
* Successful Response
*/
200: unknown;
};
export type InitiateCallApiV1TwilioInitiateCallPostData = {
body: InitiateCallRequest;
body: ApiRoutesTwilioInitiateCallRequest;
headers?: {
authorization?: string | null;
};
@ -1957,7 +2094,9 @@ export type GetTelephonyConfigurationApiV1OrganizationsTelephonyConfigGetData =
authorization?: string | null;
};
path?: never;
query?: never;
query?: {
provider?: string | null;
};
url: '/api/v1/organizations/telephony-config';
};
@ -1984,7 +2123,7 @@ export type GetTelephonyConfigurationApiV1OrganizationsTelephonyConfigGetRespons
export type GetTelephonyConfigurationApiV1OrganizationsTelephonyConfigGetResponse = GetTelephonyConfigurationApiV1OrganizationsTelephonyConfigGetResponses[keyof GetTelephonyConfigurationApiV1OrganizationsTelephonyConfigGetResponses];
export type SaveTelephonyConfigurationApiV1OrganizationsTelephonyConfigPostData = {
body: TwilioConfigurationRequest;
body: TwilioConfigurationRequest | VonageConfigurationRequest;
headers?: {
authorization?: string | null;
};
@ -2809,4 +2948,4 @@ export type HealthApiV1HealthGetResponses = {
export type ClientOptions = {
baseUrl: 'http://127.0.0.1:8000' | (string & {});
};
};