/** Action configured for an integration partner webhook. */ interface IntegrationAction { id: number; hook: string; actionName: string; api: string | null; apiMethod: string | null; fields?: IntegrationField[]; } /** Field/header configured for an integration action webhook. */ interface IntegrationField { id: number; key: string | null; keyReplacement: string | null; valueReplacement: string | null; defaultValue: string | null; type: 'string' | 'int' | 'float' | 'array' | null; modifierId: number; integrationId?: number | null; actionId: number; } /** Partner response returned by the Integrations API. */ interface IntegrationPartner { id: number; name: string; companyId: string; baseUrl: string | null; scope?: string; actions: IntegrationAction[]; } /** Action configured for an automation partner. */ interface AutomationPartnerAction { id?: number; hook?: string; actionName?: string; api?: string | null; path?: string | null; apiMethod?: string | null; method?: string | null; description?: string | null; logo?: string | null; request?: Record | null; command?: string | null; actionTypeId?: number | null; partnerId?: number; } /** Automation partner response returned by the Integrations API. */ interface AutomationPartner { id: number; name: string; companyId?: string | null; baseUrl?: string | null; host?: string | null; logo?: string | null; private?: boolean | null; deleted?: boolean | null; scope?: 'automation' | 'webhook' | null; actions?: AutomationPartnerAction[]; } /** Hook catalog item returned by the Integrations API. */ interface HookCatalogItem { hook: string; alias?: string | null; keys: string[]; } /** Request payload for creating an integration partner. */ interface CreateIntegrationPartnerRequest { name: string; companyId: string; baseUrl: string; } /** Request parameters for retrieving company integration partners. */ interface GetIntegrationPartnersByCompanyRequest { companyId: string; name?: string; } /** Request parameters for listing automation partners. */ interface ListAutomationPartnersRequest { companyId?: string; } /** Request parameters for listing automation partner actions. */ interface ListAutomationActionsRequest { partnerId: number; } /** Request parameters for retrieving an automation partner. */ interface GetAutomationPartnerRequest { id: number; } /** Request parameters for retrieving the webhooks scenario for a company. */ interface GetWebhooksByCompanyRequest { companyId: string; uuid: string; } /** Request payload for creating a webhooks scenario. */ interface CreateWebhookRequest { companyId: string; baseUrl: string; uuid: string; } /** Request parameters for retrieving the hooks catalog. */ interface GetIntegrationHooksCatalogRequest { module?: string; } /** Request payload for creating an automation partner. */ interface CreateAutomationPartnerRequest { name: string; host?: string; baseUrl?: string; logo?: string | null; companyId?: string; private?: boolean; actions?: AutomationPartnerAction[]; } /** Request payload for creating an integration action. */ interface CreateIntegrationActionRequest { partnerId: number; hook: string; api: string; apiMethod: string; actionName?: string; fields?: CreateIntegrationFieldRequest[]; } /** Request payload for updating an integration action. */ type UpdateIntegrationActionRequest = Partial>; /** Request parameters for updating an integration action. */ interface UpdateIntegrationActionParams { actionId: number; payload: UpdateIntegrationActionRequest; } /** Request parameters for deleting an integration partner. */ interface DeleteIntegrationPartnerParams { partnerId: number; } /** Request payload for creating an integration action field/header. */ interface CreateIntegrationFieldRequest { actionId?: number; integrationId?: number | null; key: string; keyReplacement?: string | null; valueReplacement?: string | null; defaultValue?: string | null; type?: 'string' | 'int' | 'float' | 'array' | null; modifierId: number; } /** Request payload for updating an integration action field/header. */ type UpdateIntegrationFieldRequest = Partial; /** Request parameters for updating an integration action field/header. */ interface UpdateIntegrationFieldParams { fieldId: number; payload: UpdateIntegrationFieldRequest; } /** Request parameters for deleting an integration action field/header. */ interface DeleteIntegrationFieldParams { fieldId: number; } /** Request parameters for deleting an integration action. */ interface DeleteIntegrationActionParams { actionId: number; } export type { AutomationPartner, AutomationPartnerAction, CreateAutomationPartnerRequest, CreateIntegrationActionRequest, CreateIntegrationFieldRequest, CreateIntegrationPartnerRequest, CreateWebhookRequest, DeleteIntegrationActionParams, DeleteIntegrationFieldParams, DeleteIntegrationPartnerParams, GetAutomationPartnerRequest, GetIntegrationHooksCatalogRequest, GetIntegrationPartnersByCompanyRequest, GetWebhooksByCompanyRequest, HookCatalogItem, IntegrationAction, IntegrationField, IntegrationPartner, ListAutomationActionsRequest, ListAutomationPartnersRequest, UpdateIntegrationActionParams, UpdateIntegrationActionRequest, UpdateIntegrationFieldParams, UpdateIntegrationFieldRequest };