Skip to content

packages/integration-kit/dist

Classes

IntegrationError

Extends

  • Error

Implements

Constructors

Constructor
new IntegrationError(
   code,
   message,
   context?): IntegrationError;
Parameters
Parameter Type
code IntegrationErrorCode
message string
context? IntegrationErrorContext & { cause?: unknown; }
Returns

IntegrationError

Overrides
Error.constructor

Properties

code
readonly code: IntegrationErrorCode;
Implementation of

NormalizedIntegrationErrorShape.code

details?
readonly optional details?: Record<string, unknown>;
Implementation of

NormalizedIntegrationErrorShape.details

name
readonly name: "IntegrationError" = "IntegrationError";
Implementation of

NormalizedIntegrationErrorShape.name

Overrides
Error.name
operationAlias?
readonly optional operationAlias?: string;
Implementation of

NormalizedIntegrationErrorShape.operationAlias

provider?
readonly optional provider?: string;
Implementation of

NormalizedIntegrationErrorShape.provider

providerPackageId?
readonly optional providerPackageId?: string;
Implementation of

NormalizedIntegrationErrorShape.providerPackageId

requestId?
readonly optional requestId?: string;
Implementation of

NormalizedIntegrationErrorShape.requestId

retryable?
readonly optional retryable?: boolean;
Implementation of

NormalizedIntegrationErrorShape.retryable

statusCode?
readonly optional statusCode?: number;
Implementation of

NormalizedIntegrationErrorShape.statusCode

Interfaces

CursorPaginationInput

Type Parameters

Type Parameter Default type
Cursor extends string string

Properties

cursor?
optional cursor?: Cursor;
limit?
optional limit?: number;

DefinedIntegration

Type Parameters

Type Parameter Default type
Manifest extends ProviderManifestAuthorInput -
Credentials unknown
Handlers extends IntegrationOperationHandlers\<Credentials> IntegrationOperationHandlers\<Credentials>

Properties

bindingReport
bindingReport: OperationBindingReport;
manifest
manifest: {
  capabilities: {
     audiences?: ("customer-facing" | "internal-support" | "mixed")[];
     capability: string;
     changesWorkflow?: boolean;
     description?: string;
     exposesSensitiveData?: boolean;
     extension?: boolean;
     label?: string;
     metadata?: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
     providerObjects?: {
        description?: string;
        kind: string;
        label?: string;
        metadata?: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
        schemaName?: string;
     }[];
     requiresCredential?: boolean;
     sideEffect?: boolean;
  }[];
  category: string;
  channelAudiences: ("customer-facing" | "internal-support" | "mixed")[];
  coverage: {
     evidence: {
        label: string;
        url?: string;
     }[];
     notes: string[];
     scope:   | "support-workflow-subset"
        | "provider-api-subset"
        | "connector-required"
        | "local-protocol"
        | "full-provider-api";
  };
  credentialRequirements: {
     description?: string;
     id: string;
     label?: string;
     metadata?: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
     required: boolean;
     scopes: string[];
  }[];
  directions: (
     | "receive-only"
     | "send-only"
     | "inbound-only"
     | "outbound-only"
    | "bidirectional")[];
  id: string;
  limitations: string[];
  maintainers: {
     name: string;
     type: "community" | "official" | "unknown" | "partner";
     url?: string;
  }[];
  metadata?: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
  name: string;
  operations: {
     alias: string;
     audience?: "customer-facing" | "internal-support" | "mixed";
     audiences?: ("customer-facing" | "internal-support" | "mixed")[];
     capability: string;
     changesWorkflow?: boolean;
     description?: string;
     exposesSensitiveData?: boolean;
     extension: boolean;
     externallyVisible?: boolean;
     inputSchema?: unknown;
     inputSchemaName?: string;
     inputSchemaRef?: string;
     label?: string;
     metadata?: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
     outputSchema?: unknown;
     outputSchemaName?: string;
     outputSchemaRef?: string;
     providerObject?: string;
     providerObjects?: {
        description?: string;
        kind: string;
        label?: string;
        metadata?: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
        schemaName?: string;
     }[];
     providerOperation?: string;
     requiredPolicyIds?: string[];
     requiresApproval?: boolean;
     requiresCredential?: boolean;
     sideEffect?: boolean;
  }[];
  packageName: string;
  privacyNotes: string[];
  provider: string;
  trustLevel: "community" | "official" | "verified" | "experimental";
} & Manifest;
Type Declaration
capabilities
capabilities: {
  audiences?: ("customer-facing" | "internal-support" | "mixed")[];
  capability: string;
  changesWorkflow?: boolean;
  description?: string;
  exposesSensitiveData?: boolean;
  extension?: boolean;
  label?: string;
  metadata?: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
  providerObjects?: {
     description?: string;
     kind: string;
     label?: string;
     metadata?: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
     schemaName?: string;
  }[];
  requiresCredential?: boolean;
  sideEffect?: boolean;
}[];
category
category: string;
channelAudiences
channelAudiences: ("customer-facing" | "internal-support" | "mixed")[];
coverage
coverage: {
  evidence: {
     label: string;
     url?: string;
  }[];
  notes: string[];
  scope:   | "support-workflow-subset"
     | "provider-api-subset"
     | "connector-required"
     | "local-protocol"
     | "full-provider-api";
};
coverage.evidence
evidence: {
  label: string;
  url?: string;
}[];
coverage.notes
notes: string[];
coverage.scope
scope:
  | "support-workflow-subset"
  | "provider-api-subset"
  | "connector-required"
  | "local-protocol"
  | "full-provider-api";
credentialRequirements
credentialRequirements: {
  description?: string;
  id: string;
  label?: string;
  metadata?: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
  required: boolean;
  scopes: string[];
}[];
directions
directions: (
  | "receive-only"
  | "send-only"
  | "inbound-only"
  | "outbound-only"
  | "bidirectional")[];
id
id: string;
limitations
limitations: string[];
maintainers
maintainers: {
  name: string;
  type: "community" | "official" | "unknown" | "partner";
  url?: string;
}[];
metadata?
optional metadata?: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
name
name: string;
operations
operations: {
  alias: string;
  audience?: "customer-facing" | "internal-support" | "mixed";
  audiences?: ("customer-facing" | "internal-support" | "mixed")[];
  capability: string;
  changesWorkflow?: boolean;
  description?: string;
  exposesSensitiveData?: boolean;
  extension: boolean;
  externallyVisible?: boolean;
  inputSchema?: unknown;
  inputSchemaName?: string;
  inputSchemaRef?: string;
  label?: string;
  metadata?: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
  outputSchema?: unknown;
  outputSchemaName?: string;
  outputSchemaRef?: string;
  providerObject?: string;
  providerObjects?: {
     description?: string;
     kind: string;
     label?: string;
     metadata?: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
     schemaName?: string;
  }[];
  providerOperation?: string;
  requiredPolicyIds?: string[];
  requiresApproval?: boolean;
  requiresCredential?: boolean;
  sideEffect?: boolean;
}[];
packageName
packageName: string;
privacyNotes
privacyNotes: string[];
provider
provider: string;
trustLevel
trustLevel: "community" | "official" | "verified" | "experimental";
metadata?
optional metadata?: Record<string, unknown>;
operationAliases
operationAliases: ManifestOperationAlias<Manifest>[];
operations
operations: Handlers;

Methods

getOperationHandler()
getOperationHandler<Alias>(alias): Handlers[Alias];
Type Parameters
Type Parameter
Alias extends string
Parameters
Parameter Type
alias Alias
Returns

Handlers[Alias]

requireOperationHandler()
requireOperationHandler<Alias>(alias): Handlers[Alias];
Type Parameters
Type Parameter
Alias extends string
Parameters
Parameter Type
alias Alias
Returns

Handlers[Alias]

run()
run<Alias>(
   alias,
   input,
context?): Promise<Awaited<ReturnType<Handlers[Alias]>>>;
Type Parameters
Type Parameter
Alias extends string
Parameters
Parameter Type
alias Alias
input Parameters\<Handlers[Alias]>[0]
context? Partial\<IntegrationOperationContext\<Credentials>>
Returns

Promise\<Awaited\<ReturnType\<Handlers[Alias]>>>


DefineIntegrationInput

Type Parameters

Type Parameter Default type
Manifest extends ProviderManifestAuthorInput -
Credentials unknown
Handlers extends IntegrationOperationHandlers\<Credentials> IntegrationOperationHandlers\<Credentials>

Properties

credentials?
optional credentials?: Credentials;
instrumentation?
optional instrumentation?: IntegrationInstrumentationHooks;
manifest
manifest: Manifest;
metadata?
optional metadata?: Record<string, unknown>;
operations
operations: ExactIntegrationOperationHandlers<Manifest, Handlers>;

IntegrationErrorContext

Extended by

Properties

details?
optional details?: Record<string, unknown>;
operationAlias?
optional operationAlias?: string;
provider?
optional provider?: string;
providerPackageId?
optional providerPackageId?: string;
requestId?
optional requestId?: string;
retryable?
optional retryable?: boolean;
statusCode?
optional statusCode?: number;

IntegrationInstrumentationEvent

Properties

durationMs?
optional durationMs?: number;
error?
optional error?: NormalizedIntegrationErrorShape;
metadata?
optional metadata?: Record<string, unknown>;
operationAlias
operationAlias: string;
phase
phase: "error" | "start" | "success";
provider?
optional provider?: string;
providerPackageId
providerPackageId: string;
startedAt
startedAt: number;

IntegrationInstrumentationHooks

Methods

onOperationError()?
optional onOperationError(event): void;
Parameters
Parameter Type
event IntegrationInstrumentationEvent
Returns

void

onOperationStart()?
optional onOperationStart(event): void;
Parameters
Parameter Type
event IntegrationInstrumentationEvent
Returns

void

onOperationSuccess()?
optional onOperationSuccess(event): void;
Parameters
Parameter Type
event IntegrationInstrumentationEvent
Returns

void


IntegrationOperationContext

Type Parameters

Type Parameter Default type
Credentials unknown

Properties

abortSignal?
optional abortSignal?: AbortSignal;
credentials?
optional credentials?: Credentials;
metadata?
optional metadata?: Record<string, unknown>;
operationAlias
operationAlias: string;
provider
provider: string;
providerPackageId
providerPackageId: string;

IntegrationPage

Type Parameters

Type Parameter Default type
Item -
Cursor extends string string

Properties

items
items: Item[];
pageInfo
pageInfo: PageInfo<Cursor>;
raw?
optional raw?: unknown;

IntegrationProviderProfileAttachment

Properties

conformant
conformant: boolean;
coverage
coverage: "full" | "partial" | "standard";
extensionOperations
extensionOperations: string[];
id
id: string;
matchedOperations
matchedOperations: string[];
missingOptionalOperations
missingOptionalOperations: string[];
missingRecommendedOperations
missingRecommendedOperations: string[];
missingRequiredOperations
missingRequiredOperations: string[];

IntegrationReadinessSummary

Properties

blockingRequirementIds
blockingRequirementIds: string[];
expiredRequirementIds
expiredRequirementIds: string[];
insufficientScopeRequirementIds
insufficientScopeRequirementIds: string[];
missingRequirementIds
missingRequirementIds: string[];
permissionBlockedRequirementIds
permissionBlockedRequirementIds: string[];
providerPackageId?
optional providerPackageId?: string;
ready
ready: boolean;
statuses
statuses: {
  expiresAt?: string;
  message?: string;
  providerPackageId?: string;
  requirementId: string;
  scopes: string[];
  state:   | "required"
     | "configured"
     | "permission-blocked"
     | "not-required"
     | "missing"
     | "expired"
     | "insufficient-scope"
     | "unavailable";
}[];
expiresAt?
optional expiresAt?: string;
message?
optional message?: string;
providerPackageId?
optional providerPackageId?: string;
requirementId
requirementId: string;
scopes
scopes: string[];
state
state:
  | "required"
  | "configured"
  | "permission-blocked"
  | "not-required"
  | "missing"
  | "expired"
  | "insufficient-scope"
  | "unavailable";

NormalizedIntegrationErrorShape

Extends

Properties

cause?
optional cause?: unknown;
code
code: IntegrationErrorCode;
details?
optional details?: Record<string, unknown>;
Inherited from

IntegrationErrorContext.details

message
message: string;
name
name: "IntegrationError";
operationAlias?
optional operationAlias?: string;
Inherited from

IntegrationErrorContext.operationAlias

provider?
optional provider?: string;
Inherited from

IntegrationErrorContext.provider

providerPackageId?
optional providerPackageId?: string;
Inherited from

IntegrationErrorContext.providerPackageId

requestId?
optional requestId?: string;
Inherited from

IntegrationErrorContext.requestId

retryable?
optional retryable?: boolean;
Inherited from

IntegrationErrorContext.retryable

statusCode?
optional statusCode?: number;
Inherited from

IntegrationErrorContext.statusCode


OffsetPaginationInput

Properties

limit?
optional limit?: number;
offset?
optional offset?: number;

OperationBindingReport

Properties

declaredOperationAliases
declaredOperationAliases: string[];
extraHandlerAliases
extraHandlerAliases: string[];
handlerOperationAliases
handlerOperationAliases: string[];
invalidExtensionOperationAliases
invalidExtensionOperationAliases: string[];
missingHandlerAliases
missingHandlerAliases: string[];

PageInfo

Type Parameters

Type Parameter Default type
Cursor extends string string

Properties

hasNextPage
hasNextPage: boolean;
hasPreviousPage?
optional hasPreviousPage?: boolean;
nextCursor?
optional nextCursor?: Cursor;
previousCursor?
optional previousCursor?: Cursor;

ParsedWebhookEvent

Type Parameters

Type Parameter Default type
Payload unknown

Properties

eventId?
optional eventId?: string;
eventType
eventType: string;
metadata?
optional metadata?: Record<string, unknown>;
payload
payload: Payload;
providerPackageId
providerPackageId: string;
rawBody?
optional rawBody?: string | Uint8Array<ArrayBufferLike>;
receivedAt
receivedAt: string;

ProviderJsonRequestInput

Properties

accessToken?
optional accessToken?: string;
apiKey?
optional apiKey?: string;
apiKeyHeaderName?
optional apiKeyHeaderName?: string;
authorizationHeader?
optional authorizationHeader?: string;
baseUrl
baseUrl: string;
body?
optional body?: unknown;
fetch?
optional fetch?: {
  (input, init?): Promise<Response>;
  (input, init?): Promise<Response>;
};
Call Signature
(input, init?): Promise<Response>;

MDN Reference

Parameters
Parameter Type
input URL | RequestInfo
init? RequestInit
Returns

Promise\<Response>

Call Signature
(input, init?): Promise<Response>;

MDN Reference

Parameters
Parameter Type
input string | Request | URL
init? RequestInit
Returns

Promise\<Response>

headers?
optional headers?: Record<string, string>;
idempotencyKey?
optional idempotencyKey?: string;
method?
optional method?: ProviderHttpMethod;
path
path: string;
pathParams?
optional pathParams?: Record<string, string | number | boolean>;
providerName?
optional providerName?: string;
query?
optional query?: Record<string, ProviderQueryValue>;
retry?
optional retry?: number | ProviderJsonRetryOptions;
signal?
optional signal?: AbortSignal;
timeoutMs?
optional timeoutMs?: number;

ProviderJsonRetryOptions

Properties

attempts?
optional attempts?: number;
baseDelayMs?
optional baseDelayMs?: number;
maxDelayMs?
optional maxDelayMs?: number;
statusCodes?
optional statusCodes?: readonly number[];

ProviderManifestAuthorInput

Properties

category
category: string;
id
id: string;
metadata?
optional metadata?: unknown;
name
name: string;
operations?
optional operations?: readonly {
  alias: string;
}[];
packageName
packageName: string;
provider
provider: string;

WebhookHandlerResult

Type Parameters

Type Parameter Default type
Payload unknown

Properties

event?
optional event?: ParsedWebhookEvent<Payload>;
response?
optional response?: {
  body?: unknown;
  headers?: Record<string, string>;
  status: number;
};
body?
optional body?: unknown;
headers?
optional headers?: Record<string, string>;
status
status: number;
verification
verification: WebhookVerificationResult;

WebhookVerificationResult

Properties

eventId?
optional eventId?: string;
eventType?
optional eventType?: string;
headers?
optional headers?: Record<string, string>;
metadata?
optional metadata?: Record<string, unknown>;
providerPackageId?
optional providerPackageId?: string;
reason?
optional reason?: string;
status
status: WebhookVerificationStatus;

Type Aliases

ExactIntegrationOperationHandlers

type ExactIntegrationOperationHandlers<Manifest, Handlers> = Handlers & MissingOperationHandlers<Manifest, Handlers> & ExtraOperationHandlers<Manifest, Handlers>;

Type Parameters

Type Parameter
Manifest
Handlers extends AnyIntegrationOperationHandlers

IntegrationErrorCode

type IntegrationErrorCode =
  | "contract-violation"
  | "credential-missing"
  | "not-ready"
  | "provider-auth"
  | "provider-permission"
  | "provider-rate-limited"
  | "provider-timeout"
  | "provider-unavailable"
  | "provider-validation"
  | "webhook-verification-failed"
  | "unknown";

IntegrationOperationHandler

type IntegrationOperationHandler<Input, Output, Credentials> = (input, context) => Output | Promise<Output>;

Type Parameters

Type Parameter Default type
Input unknown
Output unknown
Credentials unknown

Parameters

Parameter Type
input Input
context IntegrationOperationContext\<Credentials>

Returns

Output | Promise\<Output>


IntegrationOperationHandlers

type IntegrationOperationHandlers<Credentials> = Record<string, IntegrationOperationHandler<any, any, Credentials>>;

Type Parameters

Type Parameter Default type
Credentials unknown

ManifestOperationAlias

type ManifestOperationAlias<Manifest> = Manifest extends {
  operations: readonly infer Operation[];
} ? Operation extends {
  alias: infer Alias;
} ? Alias : never : Manifest extends {
  operations?: readonly infer Operation[];
} ? Operation extends {
  alias: infer Alias;
} ? Alias : never : never;

Type Parameters

Type Parameter
Manifest

ProviderHttpMethod

type ProviderHttpMethod = "GET" | "POST" | "PUT" | "PATCH" | "DELETE";

ProviderNamespacedOperationAlias

type ProviderNamespacedOperationAlias<Provider> = `${Provider}.${string}`;

Type Parameters

Type Parameter
Provider extends string

ProviderQueryValue

type ProviderQueryValue =
  | string
  | number
  | boolean
  | null
  | undefined
  | readonly (string | number | boolean)[];

WebhookVerificationStatus

type WebhookVerificationStatus = "verified" | "rejected" | "skipped";

Functions

assertIntegrationReady()

function assertIntegrationReady(summary): void;

Parameters

Parameter Type
summary IntegrationReadinessSummary

Returns

void


collectIntegrationPages()

function collectIntegrationPages<Item, Cursor>(
   firstPage,
   loadPage,
options?): Promise<Item[]>;

Type Parameters

Type Parameter Default type
Item -
Cursor extends string string

Parameters

Parameter Type
firstPage CursorPaginationInput\<Cursor>
loadPage (input) => | IntegrationPage\<Item, Cursor> | Promise\<IntegrationPage\<Item, Cursor>>
options? { maxPages?: number; }
options.maxPages? number

Returns

Promise\<Item[]>


createOperationBindingReport()

function createOperationBindingReport(manifest, handlers): OperationBindingReport;

Parameters

Parameter Type
manifest Pick\<ProviderManifest, "operations" | "provider" | "id" | "category" | "packageName">
handlers Record\<string, unknown>

Returns

OperationBindingReport


createOperationInstrumentation()

function createOperationInstrumentation(input): {
  error: void;
  success: void;
};

Parameters

Parameter Type
input { hooks?: IntegrationInstrumentationHooks; metadata?: Record\<string, unknown>; operationAlias: string; provider?: string; providerPackageId: string; }
input.hooks? IntegrationInstrumentationHooks
input.metadata? Record\<string, unknown>
input.operationAlias string
input.provider? string
input.providerPackageId string

Returns

{
  error: void;
  success: void;
}
Name Type
error() (error, metadata?) => void
success() (metadata?) => void

credentialConfigured()

function credentialConfigured(input): {
  expiresAt?: string;
  message?: string;
  providerPackageId?: string;
  requirementId: string;
  scopes?: string[];
  state:   | "required"
     | "configured"
     | "permission-blocked"
     | "not-required"
     | "missing"
     | "expired"
     | "insufficient-scope"
     | "unavailable";
};

Parameters

Parameter Type
input { message?: string; providerPackageId?: string; requirementId: string; scopes?: readonly string[]; }
input.message? string
input.providerPackageId? string
input.requirementId string
input.scopes? readonly string[]

Returns

{
  expiresAt?: string;
  message?: string;
  providerPackageId?: string;
  requirementId: string;
  scopes?: string[];
  state:   | "required"
     | "configured"
     | "permission-blocked"
     | "not-required"
     | "missing"
     | "expired"
     | "insufficient-scope"
     | "unavailable";
}
Name Type
expiresAt? string
message? string
providerPackageId? string
requirementId string
scopes? string[]
state | "required" | "configured" | "permission-blocked" | "not-required" | "missing" | "expired" | "insufficient-scope" | "unavailable"

credentialMissing()

function credentialMissing(input): {
  expiresAt?: string;
  message?: string;
  providerPackageId?: string;
  requirementId: string;
  scopes?: string[];
  state:   | "required"
     | "configured"
     | "permission-blocked"
     | "not-required"
     | "missing"
     | "expired"
     | "insufficient-scope"
     | "unavailable";
};

Parameters

Parameter Type
input { message?: string; providerPackageId?: string; requirementId: string; scopes?: readonly string[]; }
input.message? string
input.providerPackageId? string
input.requirementId string
input.scopes? readonly string[]

Returns

{
  expiresAt?: string;
  message?: string;
  providerPackageId?: string;
  requirementId: string;
  scopes?: string[];
  state:   | "required"
     | "configured"
     | "permission-blocked"
     | "not-required"
     | "missing"
     | "expired"
     | "insufficient-scope"
     | "unavailable";
}
Name Type
expiresAt? string
message? string
providerPackageId? string
requirementId string
scopes? string[]
state | "required" | "configured" | "permission-blocked" | "not-required" | "missing" | "expired" | "insufficient-scope" | "unavailable"

credentialNotRequired()

function credentialNotRequired(input): {
  expiresAt?: string;
  message?: string;
  providerPackageId?: string;
  requirementId: string;
  scopes?: string[];
  state:   | "required"
     | "configured"
     | "permission-blocked"
     | "not-required"
     | "missing"
     | "expired"
     | "insufficient-scope"
     | "unavailable";
};

Parameters

Parameter Type
input { message?: string; providerPackageId?: string; requirementId: string; }
input.message? string
input.providerPackageId? string
input.requirementId string

Returns

{
  expiresAt?: string;
  message?: string;
  providerPackageId?: string;
  requirementId: string;
  scopes?: string[];
  state:   | "required"
     | "configured"
     | "permission-blocked"
     | "not-required"
     | "missing"
     | "expired"
     | "insufficient-scope"
     | "unavailable";
}
Name Type
expiresAt? string
message? string
providerPackageId? string
requirementId string
scopes? string[]
state | "required" | "configured" | "permission-blocked" | "not-required" | "missing" | "expired" | "insufficient-scope" | "unavailable"

credentialStatusesFromManifest()

function credentialStatusesFromManifest(manifest, configuredRequirementIds): {
  expiresAt?: string;
  message?: string;
  providerPackageId?: string;
  requirementId: string;
  scopes: string[];
  state:   | "required"
     | "configured"
     | "permission-blocked"
     | "not-required"
     | "missing"
     | "expired"
     | "insufficient-scope"
     | "unavailable";
}[];

Parameters

Parameter Type
manifest Pick\<ProviderManifest, "id" | "credentialRequirements">
configuredRequirementIds Iterable\<string>

Returns

{ expiresAt?: string; message?: string; providerPackageId?: string; requirementId: string; scopes: string[]; state: | "required" | "configured" | "permission-blocked" | "not-required" | "missing" | "expired" | "insufficient-scope" | "unavailable"; }[]


defineIntegration()

function defineIntegration<Manifest, Credentials, Handlers>(input): DefinedIntegration<Manifest, Credentials, Handlers>;

Type Parameters

Type Parameter Default type
Manifest extends ProviderManifestAuthorInput -
Credentials unknown
Handlers extends IntegrationOperationHandlers\<Credentials> IntegrationOperationHandlers\<Credentials>

Parameters

Parameter Type
input DefineIntegrationInput\<Manifest, Credentials, Handlers>

Returns

DefinedIntegration\<Manifest, Credentials, Handlers>


defineIntegrationProviderPackage()

function defineIntegrationProviderPackage<Manifest>(manifest): {
  capabilities: {
     audiences?: ("customer-facing" | "internal-support" | "mixed")[];
     capability: string;
     changesWorkflow?: boolean;
     description?: string;
     exposesSensitiveData?: boolean;
     extension?: boolean;
     label?: string;
     metadata?: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
     providerObjects?: {
        description?: string;
        kind: string;
        label?: string;
        metadata?: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
        schemaName?: string;
     }[];
     requiresCredential?: boolean;
     sideEffect?: boolean;
  }[];
  category: string;
  channelAudiences: ("customer-facing" | "internal-support" | "mixed")[];
  coverage: {
     evidence: {
        label: string;
        url?: string;
     }[];
     notes: string[];
     scope:   | "support-workflow-subset"
        | "provider-api-subset"
        | "connector-required"
        | "local-protocol"
        | "full-provider-api";
  };
  credentialRequirements: {
     description?: string;
     id: string;
     label?: string;
     metadata?: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
     required: boolean;
     scopes: string[];
  }[];
  directions: (
     | "receive-only"
     | "send-only"
     | "inbound-only"
     | "outbound-only"
    | "bidirectional")[];
  id: string;
  limitations: string[];
  maintainers: {
     name: string;
     type: "community" | "official" | "unknown" | "partner";
     url?: string;
  }[];
  metadata?: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
  name: string;
  operations: {
     alias: string;
     audience?: "customer-facing" | "internal-support" | "mixed";
     audiences?: ("customer-facing" | "internal-support" | "mixed")[];
     capability: string;
     changesWorkflow?: boolean;
     description?: string;
     exposesSensitiveData?: boolean;
     extension: boolean;
     externallyVisible?: boolean;
     inputSchema?: unknown;
     inputSchemaName?: string;
     inputSchemaRef?: string;
     label?: string;
     metadata?: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
     outputSchema?: unknown;
     outputSchemaName?: string;
     outputSchemaRef?: string;
     providerObject?: string;
     providerObjects?: {
        description?: string;
        kind: string;
        label?: string;
        metadata?: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
        schemaName?: string;
     }[];
     providerOperation?: string;
     requiredPolicyIds?: string[];
     requiresApproval?: boolean;
     requiresCredential?: boolean;
     sideEffect?: boolean;
  }[];
  packageName: string;
  privacyNotes: string[];
  provider: string;
  trustLevel: "community" | "official" | "verified" | "experimental";
} & Manifest;

Type Parameters

Type Parameter
Manifest extends ProviderManifestAuthorInput

Parameters

Parameter Type
manifest Manifest

Returns

{ capabilities: { audiences?: ("customer-facing" | "internal-support" | "mixed")[]; capability: string; changesWorkflow?: boolean; description?: string; exposesSensitiveData?: boolean; extension?: boolean; label?: string; metadata?: z.ZodOptional\<z.ZodRecord\<z.ZodString, z.ZodUnknown>>; providerObjects?: { description?: string; kind: string; label?: string; metadata?: z.ZodOptional\<z.ZodRecord\<z.ZodString, z.ZodUnknown>>; schemaName?: string; }[]; requiresCredential?: boolean; sideEffect?: boolean; }[]; category: string; channelAudiences: ("customer-facing" | "internal-support" | "mixed")[]; coverage: { evidence: { label: string; url?: string; }[]; notes: string[]; scope: | "support-workflow-subset" | "provider-api-subset" | "connector-required" | "local-protocol" | "full-provider-api"; }; credentialRequirements: { description?: string; id: string; label?: string; metadata?: z.ZodOptional\<z.ZodRecord\<z.ZodString, z.ZodUnknown>>; required: boolean; scopes: string[]; }[]; directions: ( | "receive-only" | "send-only" | "inbound-only" | "outbound-only" | "bidirectional")[]; id: string; limitations: string[]; maintainers: { name: string; type: "community" | "official" | "unknown" | "partner"; url?: string; }[]; metadata?: z.ZodOptional\<z.ZodRecord\<z.ZodString, z.ZodUnknown>>; name: string; operations: { alias: string; audience?: "customer-facing" | "internal-support" | "mixed"; audiences?: ("customer-facing" | "internal-support" | "mixed")[]; capability: string; changesWorkflow?: boolean; description?: string; exposesSensitiveData?: boolean; extension: boolean; externallyVisible?: boolean; inputSchema?: unknown; inputSchemaName?: string; inputSchemaRef?: string; label?: string; metadata?: z.ZodOptional\<z.ZodRecord\<z.ZodString, z.ZodUnknown>>; outputSchema?: unknown; outputSchemaName?: string; outputSchemaRef?: string; providerObject?: string; providerObjects?: { description?: string; kind: string; label?: string; metadata?: z.ZodOptional\<z.ZodRecord\<z.ZodString, z.ZodUnknown>>; schemaName?: string; }[]; providerOperation?: string; requiredPolicyIds?: string[]; requiresApproval?: boolean; requiresCredential?: boolean; sideEffect?: boolean; }[]; packageName: string; privacyNotes: string[]; provider: string; trustLevel: "community" | "official" | "verified" | "experimental"; } & Manifest


integrationErrorToJSON()

function integrationErrorToJSON(error): NormalizedIntegrationErrorShape;

Parameters

Parameter Type
error IntegrationError

Returns

NormalizedIntegrationErrorShape


integrationPage()

function integrationPage<Item, Cursor>(input): IntegrationPage<Item, Cursor>;

Type Parameters

Type Parameter Default type
Item -
Cursor extends string string

Parameters

Parameter Type
input { hasNextPage?: boolean; hasPreviousPage?: boolean; items: readonly Item[]; nextCursor?: Cursor; previousCursor?: Cursor; raw?: unknown; }
input.hasNextPage? boolean
input.hasPreviousPage? boolean
input.items readonly Item[]
input.nextCursor? Cursor
input.previousCursor? Cursor
input.raw? unknown

Returns

IntegrationPage\<Item, Cursor>


isProviderNamespacedOperationAlias()

function isProviderNamespacedOperationAlias(alias, manifest): boolean;

Parameters

Parameter Type
alias string
manifest Pick\<ProviderManifest, "id" | "provider" | "packageName">

Returns

boolean


normalizeIntegrationError()

function normalizeIntegrationError(error, context?): IntegrationError;

Parameters

Parameter Type
error unknown
context? IntegrationErrorContext

Returns

IntegrationError


parsedWebhookEvent()

function parsedWebhookEvent<Payload>(input): ParsedWebhookEvent<Payload>;

Type Parameters

Type Parameter
Payload

Parameters

Parameter Type
input { eventId?: string; eventType: string; metadata?: Record\<string, unknown>; payload: Payload; providerPackageId: string; rawBody?: string | Uint8Array\<ArrayBufferLike>; receivedAt?: string; }
input.eventId? string
input.eventType string
input.metadata? Record\<string, unknown>
input.payload Payload
input.providerPackageId string
input.rawBody? string | Uint8Array\<ArrayBufferLike>
input.receivedAt? string

Returns

ParsedWebhookEvent\<Payload>


providerJsonRequest()

function providerJsonRequest<T>(input): Promise<T>;

Type Parameters

Type Parameter Default type
T unknown

Parameters

Parameter Type
input ProviderJsonRequestInput

Returns

Promise\<T>


providerOperationAliasNamespaces()

function providerOperationAliasNamespaces(manifest): readonly string[];

Parameters

Parameter Type
manifest Pick\<ProviderManifest, "id" | "provider" | "packageName">

Returns

readonly string[]


providerRequestUrl()

function providerRequestUrl(input): string;

Parameters

Parameter Type
input Pick\<ProviderJsonRequestInput, "baseUrl" | "path" | "pathParams" | "query">

Returns

string


rejectedWebhook()

function rejectedWebhook(input): WebhookVerificationResult;

Parameters

Parameter Type
input Omit\<WebhookVerificationResult, "status"> & { reason: string; }

Returns

WebhookVerificationResult


skippedWebhookVerification()

function skippedWebhookVerification(input): WebhookVerificationResult;

Parameters

Parameter Type
input Omit\<WebhookVerificationResult, "status"> & { reason: string; }

Returns

WebhookVerificationResult


summarizeIntegrationReadiness()

function summarizeIntegrationReadiness(statusesInput, options?): IntegrationReadinessSummary;

Parameters

Parameter Type
statusesInput readonly { expiresAt?: string; message?: string; providerPackageId?: string; requirementId: string; scopes?: string[]; state: | "required" | "configured" | "permission-blocked" | "not-required" | "missing" | "expired" | "insufficient-scope" | "unavailable"; }[]
options? { providerPackageId?: string; requiredRequirementIds?: readonly string[]; }
options.providerPackageId? string
options.requiredRequirementIds? readonly string[]

Returns

IntegrationReadinessSummary


verifiedWebhook()

function verifiedWebhook(input?): WebhookVerificationResult;

Parameters

Parameter Type
input? Omit\<WebhookVerificationResult, "status">

Returns

WebhookVerificationResult

References

CategoryCoverageLevel

Re-exports CategoryCoverageLevel


CategoryDataSourceDeclaration

Re-exports CategoryDataSourceDeclaration


CategoryEventDeclaration

Re-exports CategoryEventDeclaration


CategoryOperationAliasMap

Re-exports CategoryOperationAliasMap


CategoryOperationDeclaration

Re-exports CategoryOperationDeclaration


CategoryOperationLevel

Re-exports CategoryOperationLevel


CategoryOutputDeclaration

Re-exports CategoryOutputDeclaration


ChannelCapabilityDeclaration

Re-exports ChannelCapabilityDeclaration


contactCenterCategoryProfile

Re-exports contactCenterCategoryProfile


ContactCenterOperationAlias

Re-exports ContactCenterOperationAlias


contactCenterOperationAliasMap

Re-exports contactCenterOperationAliasMap


ecommerceCategoryProfile

Re-exports ecommerceCategoryProfile


EcommerceOperationAlias

Re-exports EcommerceOperationAlias


ecommerceOperationAliasMap

Re-exports ecommerceOperationAliasMap


emailCategoryProfile

Re-exports emailCategoryProfile


EmailOperationAlias

Re-exports EmailOperationAlias


emailOperationAliasMap

Re-exports emailOperationAliasMap


getIntegrationCategoryProfile

Re-exports getIntegrationCategoryProfile


handoffCategoryProfile

Re-exports handoffCategoryProfile


integrationCategoryOperationAliasMaps

Re-exports integrationCategoryOperationAliasMaps


IntegrationCategoryProfile

Re-exports IntegrationCategoryProfile


IntegrationCategoryProfileId

Re-exports IntegrationCategoryProfileId


integrationCategoryProfiles

Re-exports integrationCategoryProfiles


integrationCategoryProfilesByCategory

Re-exports integrationCategoryProfilesByCategory


messagingCategoryProfile

Re-exports messagingCategoryProfile


OperationSchemaDescriptor

Re-exports OperationSchemaDescriptor


ProviderCapabilityCoverage

Re-exports ProviderCapabilityCoverage


ProviderCredentialRequirement

Re-exports ProviderCredentialRequirement


ProviderCredentialStatus

Re-exports ProviderCredentialStatus


ProviderCredentialStatusInput

Re-exports ProviderCredentialStatusInput


ProviderManifest

Re-exports ProviderManifest


ProviderManifestInput

Re-exports ProviderManifestInput


ProviderOperationDeclaration

Re-exports ProviderOperationDeclaration


ProviderOperationDeclarationInput

Re-exports ProviderOperationDeclarationInput


requireIntegrationCategoryProfile

Re-exports requireIntegrationCategoryProfile


smsCategoryProfile

Re-exports smsCategoryProfile


SmsOperationAlias

Re-exports SmsOperationAlias


smsOperationAliasMap

Re-exports smsOperationAliasMap


ticketingCategoryProfile

Re-exports ticketingCategoryProfile


TicketingOperationAlias

Re-exports TicketingOperationAlias


ticketingOperationAliasMap

Re-exports ticketingOperationAliasMap


voiceCategoryProfile

Re-exports voiceCategoryProfile


VoiceOperationAlias

Re-exports VoiceOperationAlias


voiceOperationAliasMap

Re-exports voiceOperationAliasMap


workplaceCategoryProfile

Re-exports workplaceCategoryProfile


WorkplaceOperationAlias

Re-exports WorkplaceOperationAlias


workplaceOperationAliasMap

Re-exports workplaceOperationAliasMap