{
  "version": 3,
  "sources": ["../node_modules/delayed-stream/lib/delayed_stream.js", "../node_modules/combined-stream/lib/combined_stream.js", "../node_modules/mime-db/db.json", "../node_modules/mime-db/index.js", "../node_modules/mime-types/index.js", "../node_modules/asynckit/lib/defer.js", "../node_modules/asynckit/lib/async.js", "../node_modules/asynckit/lib/abort.js", "../node_modules/asynckit/lib/iterate.js", "../node_modules/asynckit/lib/state.js", "../node_modules/asynckit/lib/terminator.js", "../node_modules/asynckit/parallel.js", "../node_modules/asynckit/serialOrdered.js", "../node_modules/asynckit/serial.js", "../node_modules/asynckit/index.js", "../node_modules/es-object-atoms/index.js", "../node_modules/es-errors/index.js", "../node_modules/es-errors/eval.js", "../node_modules/es-errors/range.js", "../node_modules/es-errors/ref.js", "../node_modules/es-errors/syntax.js", "../node_modules/es-errors/type.js", "../node_modules/es-errors/uri.js", "../node_modules/math-intrinsics/abs.js", "../node_modules/math-intrinsics/floor.js", "../node_modules/math-intrinsics/max.js", "../node_modules/math-intrinsics/min.js", "../node_modules/math-intrinsics/pow.js", "../node_modules/math-intrinsics/round.js", "../node_modules/math-intrinsics/isNaN.js", "../node_modules/math-intrinsics/sign.js", "../node_modules/gopd/gOPD.js", "../node_modules/gopd/index.js", "../node_modules/es-define-property/index.js", "../node_modules/has-symbols/shams.js", "../node_modules/has-symbols/index.js", "../node_modules/get-proto/Reflect.getPrototypeOf.js", "../node_modules/get-proto/Object.getPrototypeOf.js", "../node_modules/function-bind/implementation.js", "../node_modules/function-bind/index.js", "../node_modules/call-bind-apply-helpers/functionCall.js", "../node_modules/call-bind-apply-helpers/functionApply.js", "../node_modules/call-bind-apply-helpers/reflectApply.js", "../node_modules/call-bind-apply-helpers/actualApply.js", "../node_modules/call-bind-apply-helpers/index.js", "../node_modules/dunder-proto/get.js", "../node_modules/get-proto/index.js", "../node_modules/hasown/index.js", "../node_modules/get-intrinsic/index.js", "../node_modules/has-tostringtag/shams.js", "../node_modules/es-set-tostringtag/index.js", "../node_modules/form-data/lib/populate.js", "../node_modules/form-data/lib/form_data.js", "../node_modules/ms/index.js", "../node_modules/debug/src/common.js", "../node_modules/debug/src/browser.js", "../node_modules/has-flag/index.js", "../node_modules/supports-color/index.js", "../node_modules/debug/src/node.js", "../node_modules/debug/src/index.js", "../node_modules/agent-base/src/promisify.ts", "../node_modules/agent-base/src/index.ts", "../node_modules/https-proxy-agent/src/parse-proxy-response.ts", "../node_modules/https-proxy-agent/src/agent.ts", "../node_modules/https-proxy-agent/src/index.ts", "../node_modules/follow-redirects/debug.js", "../node_modules/follow-redirects/index.js", "../node_modules/is-retry-allowed/index.js", "../node_modules/browser-or-node/lib/index.js", "../node_modules/object-inspect/util.inspect.js", "../node_modules/object-inspect/index.js", "../node_modules/side-channel-list/index.js", "../node_modules/call-bound/index.js", "../node_modules/side-channel-map/index.js", "../node_modules/side-channel-weakmap/index.js", "../node_modules/side-channel/index.js", "../node_modules/qs/lib/formats.js", "../node_modules/qs/lib/utils.js", "../node_modules/qs/lib/stringify.js", "../node_modules/qs/lib/parse.js", "../node_modules/qs/lib/index.js", "../src/index.ts", "../node_modules/axios/index.js", "../node_modules/axios/lib/helpers/bind.js", "../node_modules/axios/lib/utils.js", "../node_modules/axios/lib/helpers/parseHeaders.js", "../node_modules/axios/lib/helpers/sanitizeHeaderValue.js", "../node_modules/axios/lib/core/AxiosHeaders.js", "../node_modules/axios/lib/core/AxiosError.js", "../node_modules/axios/lib/platform/node/classes/FormData.js", "../node_modules/axios/lib/helpers/toFormData.js", "../node_modules/axios/lib/helpers/AxiosURLSearchParams.js", "../node_modules/axios/lib/helpers/buildURL.js", "../node_modules/axios/lib/core/InterceptorManager.js", "../node_modules/axios/lib/defaults/transitional.js", "../node_modules/axios/lib/platform/node/index.js", "../node_modules/axios/lib/platform/node/classes/URLSearchParams.js", "../node_modules/axios/lib/platform/common/utils.js", "../node_modules/axios/lib/platform/index.js", "../node_modules/axios/lib/helpers/toURLEncodedForm.js", "../node_modules/axios/lib/helpers/formDataToJSON.js", "../node_modules/axios/lib/defaults/index.js", "../node_modules/axios/lib/core/transformData.js", "../node_modules/axios/lib/cancel/isCancel.js", "../node_modules/axios/lib/cancel/CanceledError.js", "../node_modules/axios/lib/core/settle.js", "../node_modules/axios/lib/helpers/isAbsoluteURL.js", "../node_modules/axios/lib/helpers/combineURLs.js", "../node_modules/axios/lib/core/buildFullPath.js", "../node_modules/proxy-from-env/index.js", "../node_modules/axios/lib/adapters/http.js", "../node_modules/axios/lib/env/data.js", "../node_modules/axios/lib/helpers/parseProtocol.js", "../node_modules/axios/lib/helpers/fromDataURI.js", "../node_modules/axios/lib/helpers/AxiosTransformStream.js", "../node_modules/axios/lib/helpers/formDataToStream.js", "../node_modules/axios/lib/helpers/readBlob.js", "../node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js", "../node_modules/axios/lib/helpers/Http2Sessions.js", "../node_modules/axios/lib/helpers/callbackify.js", "../node_modules/axios/lib/helpers/shouldBypassProxy.js", "../node_modules/axios/lib/helpers/speedometer.js", "../node_modules/axios/lib/helpers/throttle.js", "../node_modules/axios/lib/helpers/progressEventReducer.js", "../node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js", "../node_modules/axios/lib/helpers/isURLSameOrigin.js", "../node_modules/axios/lib/helpers/cookies.js", "../node_modules/axios/lib/core/mergeConfig.js", "../node_modules/axios/lib/helpers/resolveConfig.js", "../node_modules/axios/lib/adapters/xhr.js", "../node_modules/axios/lib/helpers/composeSignals.js", "../node_modules/axios/lib/helpers/trackStream.js", "../node_modules/axios/lib/adapters/fetch.js", "../node_modules/axios/lib/adapters/adapters.js", "../node_modules/axios/lib/core/dispatchRequest.js", "../node_modules/axios/lib/helpers/validator.js", "../node_modules/axios/lib/core/Axios.js", "../node_modules/axios/lib/cancel/CancelToken.js", "../node_modules/axios/lib/helpers/spread.js", "../node_modules/axios/lib/helpers/isAxiosError.js", "../node_modules/axios/lib/helpers/HttpStatusCode.js", "../node_modules/axios/lib/axios.js", "../node_modules/axios-retry/dist/esm/index.js", "../src/runtime/index.ts", "../src/common/consts.ts", "../src/common/config.ts", "../src/common/listing.ts", "../src/common/axios.ts", "../src/common/debug-interceptors.ts", "../src/common/errors.ts", "../src/gen/public/errors.ts", "../src/errors.ts", "../src/gen/runtime/errors.ts", "../src/gen/runtime/to-axios.ts", "../src/gen/runtime/operations/createConversation.ts", "../src/gen/runtime/operations/getConversation.ts", "../src/gen/runtime/operations/listConversations.ts", "../src/gen/runtime/operations/getOrCreateConversation.ts", "../src/gen/runtime/operations/updateConversation.ts", "../src/gen/runtime/operations/deleteConversation.ts", "../src/gen/runtime/operations/listParticipants.ts", "../src/gen/runtime/operations/addParticipant.ts", "../src/gen/runtime/operations/getParticipant.ts", "../src/gen/runtime/operations/removeParticipant.ts", "../src/gen/runtime/operations/createEvent.ts", "../src/gen/runtime/operations/getEvent.ts", "../src/gen/runtime/operations/listEvents.ts", "../src/gen/runtime/operations/cancelScheduledEvent.ts", "../src/gen/runtime/operations/createMessage.ts", "../src/gen/runtime/operations/getOrCreateMessage.ts", "../src/gen/runtime/operations/getMessage.ts", "../src/gen/runtime/operations/updateMessage.ts", "../src/gen/runtime/operations/listMessages.ts", "../src/gen/runtime/operations/deleteMessage.ts", "../src/gen/runtime/operations/initializeIncomingMessage.ts", "../src/gen/runtime/operations/importMessages.ts", "../src/gen/runtime/operations/createUser.ts", "../src/gen/runtime/operations/getUser.ts", "../src/gen/runtime/operations/listUsers.ts", "../src/gen/runtime/operations/getOrCreateUser.ts", "../src/gen/runtime/operations/updateUser.ts", "../src/gen/runtime/operations/deleteUser.ts", "../src/gen/runtime/operations/setStateExpiry.ts", "../src/gen/runtime/operations/getState.ts", "../src/gen/runtime/operations/setState.ts", "../src/gen/runtime/operations/getOrSetState.ts", "../src/gen/runtime/operations/patchState.ts", "../src/gen/runtime/operations/callAction.ts", "../src/gen/runtime/operations/configureIntegration.ts", "../src/gen/runtime/operations/createWorkflow.ts", "../src/gen/runtime/operations/getWorkflow.ts", "../src/gen/runtime/operations/updateWorkflow.ts", "../src/gen/runtime/operations/deleteWorkflow.ts", "../src/gen/runtime/operations/listWorkflows.ts", "../src/gen/runtime/operations/getOrCreateWorkflow.ts", "../src/gen/runtime/operations/listTagValues.ts", "../src/gen/runtime/operations/trackAnalytics.ts", "../src/gen/runtime/operations/captureObservation.ts", "../src/gen/runtime/index.ts", "../src/admin/index.ts", "../src/gen/admin/errors.ts", "../src/gen/admin/to-axios.ts", "../src/gen/admin/operations/runVrl.ts", "../src/gen/admin/operations/getAccount.ts", "../src/gen/admin/operations/updateAccount.ts", "../src/gen/admin/operations/deleteAccount.ts", "../src/gen/admin/operations/listPersonalAccessTokens.ts", "../src/gen/admin/operations/createPersonalAccessToken.ts", "../src/gen/admin/operations/deletePersonalAccessToken.ts", "../src/gen/admin/operations/setAccountPreference.ts", "../src/gen/admin/operations/getAccountPreference.ts", "../src/gen/admin/operations/listPublicIntegrations.ts", "../src/gen/admin/operations/getPublicIntegrationById.ts", "../src/gen/admin/operations/getPublicIntegration.ts", "../src/gen/admin/operations/listPublicPlugins.ts", "../src/gen/admin/operations/getPublicPluginById.ts", "../src/gen/admin/operations/getDereferencedPublicPluginById.ts", "../src/gen/admin/operations/getPublicPlugin.ts", "../src/gen/admin/operations/getPublicPluginCode.ts", "../src/gen/admin/operations/listPublicInterfaces.ts", "../src/gen/admin/operations/getPublicInterfaceById.ts", "../src/gen/admin/operations/getPublicInterface.ts", "../src/gen/admin/operations/createBot.ts", "../src/gen/admin/operations/updateBot.ts", "../src/gen/admin/operations/rotateBotSigningSecrets.ts", "../src/gen/admin/operations/transferBot.ts", "../src/gen/admin/operations/listBots.ts", "../src/gen/admin/operations/getBot.ts", "../src/gen/admin/operations/deleteBot.ts", "../src/gen/admin/operations/getBotLogs.ts", "../src/gen/admin/operations/getBotWebchat.ts", "../src/gen/admin/operations/getBotAnalytics.ts", "../src/gen/admin/operations/listActionRuns.ts", "../src/gen/admin/operations/getBotIssue.ts", "../src/gen/admin/operations/listBotIssues.ts", "../src/gen/admin/operations/deleteBotIssue.ts", "../src/gen/admin/operations/listBotIssueEvents.ts", "../src/gen/admin/operations/listBotVersions.ts", "../src/gen/admin/operations/getBotVersion.ts", "../src/gen/admin/operations/getBotJson.ts", "../src/gen/admin/operations/publishFromBotJson.ts", "../src/gen/admin/operations/createBotVersion.ts", "../src/gen/admin/operations/deployBotVersion.ts", "../src/gen/admin/operations/createIntegrationShareableId.ts", "../src/gen/admin/operations/deleteIntegrationShareableId.ts", "../src/gen/admin/operations/getIntegrationShareableId.ts", "../src/gen/admin/operations/unlinkSandboxedConversations.ts", "../src/gen/admin/operations/listBotApiKeys.ts", "../src/gen/admin/operations/createBotApiKey.ts", "../src/gen/admin/operations/deleteBotApiKey.ts", "../src/gen/admin/operations/getBotAllowlist.ts", "../src/gen/admin/operations/updateBotAllowlist.ts", "../src/gen/admin/operations/migrateWorkspaceToV4.ts", "../src/gen/admin/operations/listWorkspaceInvoices.ts", "../src/gen/admin/operations/getUpcomingInvoice.ts", "../src/gen/admin/operations/chargeWorkspaceUnpaidInvoices.ts", "../src/gen/admin/operations/createWorkspace.ts", "../src/gen/admin/operations/getPublicWorkspace.ts", "../src/gen/admin/operations/getWorkspace.ts", "../src/gen/admin/operations/listWorkspaceUsages.ts", "../src/gen/admin/operations/breakDownWorkspaceUsageByBot.ts", "../src/gen/admin/operations/getAllWorkspaceQuotaCompletion.ts", "../src/gen/admin/operations/getWorkspaceQuota.ts", "../src/gen/admin/operations/listWorkspaceQuotas.ts", "../src/gen/admin/operations/updateWorkspace.ts", "../src/gen/admin/operations/checkHandleAvailability.ts", "../src/gen/admin/operations/listWorkspaces.ts", "../src/gen/admin/operations/listPublicWorkspaces.ts", "../src/gen/admin/operations/deleteWorkspace.ts", "../src/gen/admin/operations/getAuditRecords.ts", "../src/gen/admin/operations/setWorkspacePreference.ts", "../src/gen/admin/operations/getWorkspacePreference.ts", "../src/gen/admin/operations/listWorkspaceMembers.ts", "../src/gen/admin/operations/getWorkspaceMember.ts", "../src/gen/admin/operations/deleteWorkspaceMember.ts", "../src/gen/admin/operations/createWorkspaceMember.ts", "../src/gen/admin/operations/updateWorkspaceMember.ts", "../src/gen/admin/operations/listIntegrationApiKeys.ts", "../src/gen/admin/operations/createIntegrationApiKey.ts", "../src/gen/admin/operations/deleteIntegrationApiKey.ts", "../src/gen/admin/operations/createIntegration.ts", "../src/gen/admin/operations/validateIntegrationCreation.ts", "../src/gen/admin/operations/updateIntegration.ts", "../src/gen/admin/operations/rotateIntegrationSigningSecrets.ts", "../src/gen/admin/operations/validateIntegrationUpdate.ts", "../src/gen/admin/operations/listIntegrations.ts", "../src/gen/admin/operations/getIntegration.ts", "../src/gen/admin/operations/getIntegrationLogs.ts", "../src/gen/admin/operations/getIntegrationByName.ts", "../src/gen/admin/operations/deleteIntegration.ts", "../src/gen/admin/operations/requestIntegrationVerification.ts", "../src/gen/admin/operations/createInterface.ts", "../src/gen/admin/operations/getInterface.ts", "../src/gen/admin/operations/getInterfaceByName.ts", "../src/gen/admin/operations/updateInterface.ts", "../src/gen/admin/operations/deleteInterface.ts", "../src/gen/admin/operations/listInterfaces.ts", "../src/gen/admin/operations/createPlugin.ts", "../src/gen/admin/operations/getPlugin.ts", "../src/gen/admin/operations/getDereferencedPlugin.ts", "../src/gen/admin/operations/getPluginByName.ts", "../src/gen/admin/operations/updatePlugin.ts", "../src/gen/admin/operations/deletePlugin.ts", "../src/gen/admin/operations/listPlugins.ts", "../src/gen/admin/operations/getPluginCode.ts", "../src/gen/admin/operations/getUsage.ts", "../src/gen/admin/operations/getMultipleUsages.ts", "../src/gen/admin/operations/listUsageHistory.ts", "../src/gen/admin/operations/listUsageActivity.ts", "../src/gen/admin/operations/listUsageActivityDaily.ts", "../src/gen/admin/operations/changeAISpendQuota.ts", "../src/gen/admin/operations/listActivities.ts", "../src/gen/admin/operations/introspect.ts", "../src/gen/admin/index.ts", "../src/billing/index.ts", "../src/gen/billing/errors.ts", "../src/gen/billing/to-axios.ts", "../src/gen/billing/operations/getBillingReadonly.ts", "../src/gen/billing/operations/getBillingAddress.ts", "../src/gen/billing/operations/setBillingAddress.ts", "../src/gen/billing/operations/getCustomer.ts", "../src/gen/billing/operations/setCustomer.ts", "../src/gen/billing/operations/getPlan.ts", "../src/gen/billing/operations/listPlans.ts", "../src/gen/billing/operations/getAddon.ts", "../src/gen/billing/operations/listAddons.ts", "../src/gen/billing/operations/getSubscription.ts", "../src/gen/billing/operations/previewSubscriptionUpdate.ts", "../src/gen/billing/operations/setPlan.ts", "../src/gen/billing/operations/setAddons.ts", "../src/gen/billing/operations/setCancelAtPeriodEnd.ts", "../src/gen/billing/operations/getAutoRechargeSettings.ts", "../src/gen/billing/operations/setAutoRechargeSettings.ts", "../src/gen/billing/operations/getTrials.ts", "../src/gen/billing/operations/createTrial.ts", "../src/gen/billing/operations/removeTrial.ts", "../src/gen/billing/operations/createCreditGrant.ts", "../src/gen/billing/operations/listInvoices.ts", "../src/gen/billing/operations/payInvoice.ts", "../src/gen/billing/operations/getPaymentMethod.ts", "../src/gen/billing/operations/setPaymentMethod.ts", "../src/gen/billing/operations/createPaymentMethodIntent.ts", "../src/gen/billing/operations/getQuotas.ts", "../src/gen/billing/operations/getWorkspaceUsage.ts", "../src/gen/billing/operations/getWorkspaceUsages.ts", "../src/gen/billing/index.ts", "../src/files/index.ts", "../src/gen/files/errors.ts", "../src/gen/files/to-axios.ts", "../src/gen/files/operations/upsertFile.ts", "../src/gen/files/operations/deleteFile.ts", "../src/gen/files/operations/listFiles.ts", "../src/gen/files/operations/getFile.ts", "../src/gen/files/operations/updateFileMetadata.ts", "../src/gen/files/operations/copyFile.ts", "../src/gen/files/operations/searchFiles.ts", "../src/gen/files/operations/listFilePassages.ts", "../src/gen/files/operations/setFilePassages.ts", "../src/gen/files/operations/listFileTags.ts", "../src/gen/files/operations/listFileTagValues.ts", "../src/gen/files/operations/createKnowledgeBase.ts", "../src/gen/files/operations/deleteKnowledgeBase.ts", "../src/gen/files/operations/updateKnowledgeBase.ts", "../src/gen/files/operations/listKnowledgeBases.ts", "../src/gen/files/index.ts", "../src/files/download-file-ref.ts", "../src/files/upload-file.ts", "../src/integration-operations/index.ts", "../src/integration-operations/capabilities.ts", "../src/tables/index.ts", "../src/gen/tables/errors.ts", "../src/gen/tables/to-axios.ts", "../src/gen/tables/operations/listTables.ts", "../src/gen/tables/operations/getTable.ts", "../src/gen/tables/operations/getOrCreateTable.ts", "../src/gen/tables/operations/createTable.ts", "../src/gen/tables/operations/duplicateTable.ts", "../src/gen/tables/operations/exportTable.ts", "../src/gen/tables/operations/getTableJobs.ts", "../src/gen/tables/operations/importTable.ts", "../src/gen/tables/operations/updateTable.ts", "../src/gen/tables/operations/renameTableColumn.ts", "../src/gen/tables/operations/deleteTable.ts", "../src/gen/tables/operations/getTableRow.ts", "../src/gen/tables/operations/findTableRows.ts", "../src/gen/tables/operations/createTableRows.ts", "../src/gen/tables/operations/deleteTableRows.ts", "../src/gen/tables/operations/updateTableRows.ts", "../src/gen/tables/operations/upsertTableRows.ts", "../src/gen/tables/index.ts", "../src/tables/atomic.ts", "../src/tables/reserve-key.ts", "../src/public/transition-table-unique-key.ts", "../src/gen/public/to-axios.ts", "../src/gen/public/operations/createConversation.ts", "../src/gen/public/operations/getConversation.ts", "../src/gen/public/operations/listConversations.ts", "../src/gen/public/operations/getOrCreateConversation.ts", "../src/gen/public/operations/updateConversation.ts", "../src/gen/public/operations/deleteConversation.ts", "../src/gen/public/operations/listParticipants.ts", "../src/gen/public/operations/addParticipant.ts", "../src/gen/public/operations/getParticipant.ts", "../src/gen/public/operations/removeParticipant.ts", "../src/gen/public/operations/createEvent.ts", "../src/gen/public/operations/getEvent.ts", "../src/gen/public/operations/listEvents.ts", "../src/gen/public/operations/cancelScheduledEvent.ts", "../src/gen/public/operations/createMessage.ts", "../src/gen/public/operations/getOrCreateMessage.ts", "../src/gen/public/operations/getMessage.ts", "../src/gen/public/operations/updateMessage.ts", "../src/gen/public/operations/listMessages.ts", "../src/gen/public/operations/deleteMessage.ts", "../src/gen/public/operations/initializeIncomingMessage.ts", "../src/gen/public/operations/importMessages.ts", "../src/gen/public/operations/createUser.ts", "../src/gen/public/operations/getUser.ts", "../src/gen/public/operations/listUsers.ts", "../src/gen/public/operations/getOrCreateUser.ts", "../src/gen/public/operations/updateUser.ts", "../src/gen/public/operations/deleteUser.ts", "../src/gen/public/operations/setStateExpiry.ts", "../src/gen/public/operations/getState.ts", "../src/gen/public/operations/setState.ts", "../src/gen/public/operations/getOrSetState.ts", "../src/gen/public/operations/patchState.ts", "../src/gen/public/operations/callAction.ts", "../src/gen/public/operations/configureIntegration.ts", "../src/gen/public/operations/createWorkflow.ts", "../src/gen/public/operations/getWorkflow.ts", "../src/gen/public/operations/updateWorkflow.ts", "../src/gen/public/operations/deleteWorkflow.ts", "../src/gen/public/operations/listWorkflows.ts", "../src/gen/public/operations/getOrCreateWorkflow.ts", "../src/gen/public/operations/listTagValues.ts", "../src/gen/public/operations/trackAnalytics.ts", "../src/gen/public/operations/captureObservation.ts", "../src/gen/public/operations/runVrl.ts", "../src/gen/public/operations/getAccount.ts", "../src/gen/public/operations/updateAccount.ts", "../src/gen/public/operations/deleteAccount.ts", "../src/gen/public/operations/listPersonalAccessTokens.ts", "../src/gen/public/operations/createPersonalAccessToken.ts", "../src/gen/public/operations/deletePersonalAccessToken.ts", "../src/gen/public/operations/setAccountPreference.ts", "../src/gen/public/operations/getAccountPreference.ts", "../src/gen/public/operations/listPublicIntegrations.ts", "../src/gen/public/operations/getPublicIntegrationById.ts", "../src/gen/public/operations/getPublicIntegration.ts", "../src/gen/public/operations/listPublicPlugins.ts", "../src/gen/public/operations/getPublicPluginById.ts", "../src/gen/public/operations/getDereferencedPublicPluginById.ts", "../src/gen/public/operations/getPublicPlugin.ts", "../src/gen/public/operations/getPublicPluginCode.ts", "../src/gen/public/operations/listPublicInterfaces.ts", "../src/gen/public/operations/getPublicInterfaceById.ts", "../src/gen/public/operations/getPublicInterface.ts", "../src/gen/public/operations/createBot.ts", "../src/gen/public/operations/updateBot.ts", "../src/gen/public/operations/rotateBotSigningSecrets.ts", "../src/gen/public/operations/transferBot.ts", "../src/gen/public/operations/listBots.ts", "../src/gen/public/operations/getBot.ts", "../src/gen/public/operations/deleteBot.ts", "../src/gen/public/operations/getBotLogs.ts", "../src/gen/public/operations/getBotWebchat.ts", "../src/gen/public/operations/getBotAnalytics.ts", "../src/gen/public/operations/listActionRuns.ts", "../src/gen/public/operations/getBotIssue.ts", "../src/gen/public/operations/listBotIssues.ts", "../src/gen/public/operations/deleteBotIssue.ts", "../src/gen/public/operations/listBotIssueEvents.ts", "../src/gen/public/operations/listBotVersions.ts", "../src/gen/public/operations/getBotVersion.ts", "../src/gen/public/operations/getBotJson.ts", "../src/gen/public/operations/publishFromBotJson.ts", "../src/gen/public/operations/createBotVersion.ts", "../src/gen/public/operations/deployBotVersion.ts", "../src/gen/public/operations/createIntegrationShareableId.ts", "../src/gen/public/operations/deleteIntegrationShareableId.ts", "../src/gen/public/operations/getIntegrationShareableId.ts", "../src/gen/public/operations/unlinkSandboxedConversations.ts", "../src/gen/public/operations/listBotApiKeys.ts", "../src/gen/public/operations/createBotApiKey.ts", "../src/gen/public/operations/deleteBotApiKey.ts", "../src/gen/public/operations/getBotAllowlist.ts", "../src/gen/public/operations/updateBotAllowlist.ts", "../src/gen/public/operations/migrateWorkspaceToV4.ts", "../src/gen/public/operations/listWorkspaceInvoices.ts", "../src/gen/public/operations/getUpcomingInvoice.ts", "../src/gen/public/operations/chargeWorkspaceUnpaidInvoices.ts", "../src/gen/public/operations/createWorkspace.ts", "../src/gen/public/operations/getPublicWorkspace.ts", "../src/gen/public/operations/getWorkspace.ts", "../src/gen/public/operations/listWorkspaceUsages.ts", "../src/gen/public/operations/breakDownWorkspaceUsageByBot.ts", "../src/gen/public/operations/getAllWorkspaceQuotaCompletion.ts", "../src/gen/public/operations/getWorkspaceQuota.ts", "../src/gen/public/operations/listWorkspaceQuotas.ts", "../src/gen/public/operations/updateWorkspace.ts", "../src/gen/public/operations/checkHandleAvailability.ts", "../src/gen/public/operations/listWorkspaces.ts", "../src/gen/public/operations/listPublicWorkspaces.ts", "../src/gen/public/operations/deleteWorkspace.ts", "../src/gen/public/operations/getAuditRecords.ts", "../src/gen/public/operations/setWorkspacePreference.ts", "../src/gen/public/operations/getWorkspacePreference.ts", "../src/gen/public/operations/listWorkspaceMembers.ts", "../src/gen/public/operations/getWorkspaceMember.ts", "../src/gen/public/operations/deleteWorkspaceMember.ts", "../src/gen/public/operations/createWorkspaceMember.ts", "../src/gen/public/operations/updateWorkspaceMember.ts", "../src/gen/public/operations/listIntegrationApiKeys.ts", "../src/gen/public/operations/createIntegrationApiKey.ts", "../src/gen/public/operations/deleteIntegrationApiKey.ts", "../src/gen/public/operations/createIntegration.ts", "../src/gen/public/operations/validateIntegrationCreation.ts", "../src/gen/public/operations/updateIntegration.ts", "../src/gen/public/operations/rotateIntegrationSigningSecrets.ts", "../src/gen/public/operations/validateIntegrationUpdate.ts", "../src/gen/public/operations/listIntegrations.ts", "../src/gen/public/operations/getIntegration.ts", "../src/gen/public/operations/getIntegrationLogs.ts", "../src/gen/public/operations/getIntegrationByName.ts", "../src/gen/public/operations/deleteIntegration.ts", "../src/gen/public/operations/requestIntegrationVerification.ts", "../src/gen/public/operations/createInterface.ts", "../src/gen/public/operations/getInterface.ts", "../src/gen/public/operations/getInterfaceByName.ts", "../src/gen/public/operations/updateInterface.ts", "../src/gen/public/operations/deleteInterface.ts", "../src/gen/public/operations/listInterfaces.ts", "../src/gen/public/operations/createPlugin.ts", "../src/gen/public/operations/getPlugin.ts", "../src/gen/public/operations/getDereferencedPlugin.ts", "../src/gen/public/operations/getPluginByName.ts", "../src/gen/public/operations/updatePlugin.ts", "../src/gen/public/operations/deletePlugin.ts", "../src/gen/public/operations/listPlugins.ts", "../src/gen/public/operations/getPluginCode.ts", "../src/gen/public/operations/getUsage.ts", "../src/gen/public/operations/getMultipleUsages.ts", "../src/gen/public/operations/listUsageHistory.ts", "../src/gen/public/operations/listUsageActivity.ts", "../src/gen/public/operations/listUsageActivityDaily.ts", "../src/gen/public/operations/changeAISpendQuota.ts", "../src/gen/public/operations/listActivities.ts", "../src/gen/public/operations/introspect.ts", "../src/gen/public/operations/upsertFile.ts", "../src/gen/public/operations/deleteFile.ts", "../src/gen/public/operations/listFiles.ts", "../src/gen/public/operations/getFile.ts", "../src/gen/public/operations/updateFileMetadata.ts", "../src/gen/public/operations/copyFile.ts", "../src/gen/public/operations/searchFiles.ts", "../src/gen/public/operations/listFilePassages.ts", "../src/gen/public/operations/setFilePassages.ts", "../src/gen/public/operations/listFileTags.ts", "../src/gen/public/operations/listFileTagValues.ts", "../src/gen/public/operations/createKnowledgeBase.ts", "../src/gen/public/operations/deleteKnowledgeBase.ts", "../src/gen/public/operations/updateKnowledgeBase.ts", "../src/gen/public/operations/listKnowledgeBases.ts", "../src/gen/public/operations/listTables.ts", "../src/gen/public/operations/getTable.ts", "../src/gen/public/operations/getOrCreateTable.ts", "../src/gen/public/operations/createTable.ts", "../src/gen/public/operations/duplicateTable.ts", "../src/gen/public/operations/exportTable.ts", "../src/gen/public/operations/getTableJobs.ts", "../src/gen/public/operations/importTable.ts", "../src/gen/public/operations/updateTable.ts", "../src/gen/public/operations/renameTableColumn.ts", "../src/gen/public/operations/deleteTable.ts", "../src/gen/public/operations/getTableRow.ts", "../src/gen/public/operations/findTableRows.ts", "../src/gen/public/operations/createTableRows.ts", "../src/gen/public/operations/deleteTableRows.ts", "../src/gen/public/operations/updateTableRows.ts", "../src/gen/public/operations/upsertTableRows.ts", "../src/gen/public/index.ts", "../src/public/index.ts"],
  "sourcesContent": ["var Stream = require('stream').Stream;\nvar util = require('util');\n\nmodule.exports = DelayedStream;\nfunction DelayedStream() {\n  this.source = null;\n  this.dataSize = 0;\n  this.maxDataSize = 1024 * 1024;\n  this.pauseStream = true;\n\n  this._maxDataSizeExceeded = false;\n  this._released = false;\n  this._bufferedEvents = [];\n}\nutil.inherits(DelayedStream, Stream);\n\nDelayedStream.create = function(source, options) {\n  var delayedStream = new this();\n\n  options = options || {};\n  for (var option in options) {\n    delayedStream[option] = options[option];\n  }\n\n  delayedStream.source = source;\n\n  var realEmit = source.emit;\n  source.emit = function() {\n    delayedStream._handleEmit(arguments);\n    return realEmit.apply(source, arguments);\n  };\n\n  source.on('error', function() {});\n  if (delayedStream.pauseStream) {\n    source.pause();\n  }\n\n  return delayedStream;\n};\n\nObject.defineProperty(DelayedStream.prototype, 'readable', {\n  configurable: true,\n  enumerable: true,\n  get: function() {\n    return this.source.readable;\n  }\n});\n\nDelayedStream.prototype.setEncoding = function() {\n  return this.source.setEncoding.apply(this.source, arguments);\n};\n\nDelayedStream.prototype.resume = function() {\n  if (!this._released) {\n    this.release();\n  }\n\n  this.source.resume();\n};\n\nDelayedStream.prototype.pause = function() {\n  this.source.pause();\n};\n\nDelayedStream.prototype.release = function() {\n  this._released = true;\n\n  this._bufferedEvents.forEach(function(args) {\n    this.emit.apply(this, args);\n  }.bind(this));\n  this._bufferedEvents = [];\n};\n\nDelayedStream.prototype.pipe = function() {\n  var r = Stream.prototype.pipe.apply(this, arguments);\n  this.resume();\n  return r;\n};\n\nDelayedStream.prototype._handleEmit = function(args) {\n  if (this._released) {\n    this.emit.apply(this, args);\n    return;\n  }\n\n  if (args[0] === 'data') {\n    this.dataSize += args[1].length;\n    this._checkIfMaxDataSizeExceeded();\n  }\n\n  this._bufferedEvents.push(args);\n};\n\nDelayedStream.prototype._checkIfMaxDataSizeExceeded = function() {\n  if (this._maxDataSizeExceeded) {\n    return;\n  }\n\n  if (this.dataSize <= this.maxDataSize) {\n    return;\n  }\n\n  this._maxDataSizeExceeded = true;\n  var message =\n    'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.'\n  this.emit('error', new Error(message));\n};\n", "var util = require('util');\nvar Stream = require('stream').Stream;\nvar DelayedStream = require('delayed-stream');\n\nmodule.exports = CombinedStream;\nfunction CombinedStream() {\n  this.writable = false;\n  this.readable = true;\n  this.dataSize = 0;\n  this.maxDataSize = 2 * 1024 * 1024;\n  this.pauseStreams = true;\n\n  this._released = false;\n  this._streams = [];\n  this._currentStream = null;\n  this._insideLoop = false;\n  this._pendingNext = false;\n}\nutil.inherits(CombinedStream, Stream);\n\nCombinedStream.create = function(options) {\n  var combinedStream = new this();\n\n  options = options || {};\n  for (var option in options) {\n    combinedStream[option] = options[option];\n  }\n\n  return combinedStream;\n};\n\nCombinedStream.isStreamLike = function(stream) {\n  return (typeof stream !== 'function')\n    && (typeof stream !== 'string')\n    && (typeof stream !== 'boolean')\n    && (typeof stream !== 'number')\n    && (!Buffer.isBuffer(stream));\n};\n\nCombinedStream.prototype.append = function(stream) {\n  var isStreamLike = CombinedStream.isStreamLike(stream);\n\n  if (isStreamLike) {\n    if (!(stream instanceof DelayedStream)) {\n      var newStream = DelayedStream.create(stream, {\n        maxDataSize: Infinity,\n        pauseStream: this.pauseStreams,\n      });\n      stream.on('data', this._checkDataSize.bind(this));\n      stream = newStream;\n    }\n\n    this._handleErrors(stream);\n\n    if (this.pauseStreams) {\n      stream.pause();\n    }\n  }\n\n  this._streams.push(stream);\n  return this;\n};\n\nCombinedStream.prototype.pipe = function(dest, options) {\n  Stream.prototype.pipe.call(this, dest, options);\n  this.resume();\n  return dest;\n};\n\nCombinedStream.prototype._getNext = function() {\n  this._currentStream = null;\n\n  if (this._insideLoop) {\n    this._pendingNext = true;\n    return; // defer call\n  }\n\n  this._insideLoop = true;\n  try {\n    do {\n      this._pendingNext = false;\n      this._realGetNext();\n    } while (this._pendingNext);\n  } finally {\n    this._insideLoop = false;\n  }\n};\n\nCombinedStream.prototype._realGetNext = function() {\n  var stream = this._streams.shift();\n\n\n  if (typeof stream == 'undefined') {\n    this.end();\n    return;\n  }\n\n  if (typeof stream !== 'function') {\n    this._pipeNext(stream);\n    return;\n  }\n\n  var getStream = stream;\n  getStream(function(stream) {\n    var isStreamLike = CombinedStream.isStreamLike(stream);\n    if (isStreamLike) {\n      stream.on('data', this._checkDataSize.bind(this));\n      this._handleErrors(stream);\n    }\n\n    this._pipeNext(stream);\n  }.bind(this));\n};\n\nCombinedStream.prototype._pipeNext = function(stream) {\n  this._currentStream = stream;\n\n  var isStreamLike = CombinedStream.isStreamLike(stream);\n  if (isStreamLike) {\n    stream.on('end', this._getNext.bind(this));\n    stream.pipe(this, {end: false});\n    return;\n  }\n\n  var value = stream;\n  this.write(value);\n  this._getNext();\n};\n\nCombinedStream.prototype._handleErrors = function(stream) {\n  var self = this;\n  stream.on('error', function(err) {\n    self._emitError(err);\n  });\n};\n\nCombinedStream.prototype.write = function(data) {\n  this.emit('data', data);\n};\n\nCombinedStream.prototype.pause = function() {\n  if (!this.pauseStreams) {\n    return;\n  }\n\n  if(this.pauseStreams && this._currentStream && typeof(this._currentStream.pause) == 'function') this._currentStream.pause();\n  this.emit('pause');\n};\n\nCombinedStream.prototype.resume = function() {\n  if (!this._released) {\n    this._released = true;\n    this.writable = true;\n    this._getNext();\n  }\n\n  if(this.pauseStreams && this._currentStream && typeof(this._currentStream.resume) == 'function') this._currentStream.resume();\n  this.emit('resume');\n};\n\nCombinedStream.prototype.end = function() {\n  this._reset();\n  this.emit('end');\n};\n\nCombinedStream.prototype.destroy = function() {\n  this._reset();\n  this.emit('close');\n};\n\nCombinedStream.prototype._reset = function() {\n  this.writable = false;\n  this._streams = [];\n  this._currentStream = null;\n};\n\nCombinedStream.prototype._checkDataSize = function() {\n  this._updateDataSize();\n  if (this.dataSize <= this.maxDataSize) {\n    return;\n  }\n\n  var message =\n    'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.';\n  this._emitError(new Error(message));\n};\n\nCombinedStream.prototype._updateDataSize = function() {\n  this.dataSize = 0;\n\n  var self = this;\n  this._streams.forEach(function(stream) {\n    if (!stream.dataSize) {\n      return;\n    }\n\n    self.dataSize += stream.dataSize;\n  });\n\n  if (this._currentStream && this._currentStream.dataSize) {\n    this.dataSize += this._currentStream.dataSize;\n  }\n};\n\nCombinedStream.prototype._emitError = function(err) {\n  this._reset();\n  this.emit('error', err);\n};\n", "{\n  \"application/1d-interleaved-parityfec\": {\n    \"source\": \"iana\"\n  },\n  \"application/3gpdash-qoe-report+xml\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true\n  },\n  \"application/3gpp-ims+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/3gpphal+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/3gpphalforms+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/a2l\": {\n    \"source\": \"iana\"\n  },\n  \"application/ace+cbor\": {\n    \"source\": \"iana\"\n  },\n  \"application/activemessage\": {\n    \"source\": \"iana\"\n  },\n  \"application/activity+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/alto-costmap+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/alto-costmapfilter+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/alto-directory+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/alto-endpointcost+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/alto-endpointcostparams+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/alto-endpointprop+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/alto-endpointpropparams+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/alto-error+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/alto-networkmap+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/alto-networkmapfilter+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/alto-updatestreamcontrol+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/alto-updatestreamparams+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/aml\": {\n    \"source\": \"iana\"\n  },\n  \"application/andrew-inset\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ez\"]\n  },\n  \"application/applefile\": {\n    \"source\": \"iana\"\n  },\n  \"application/applixware\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"aw\"]\n  },\n  \"application/at+jwt\": {\n    \"source\": \"iana\"\n  },\n  \"application/atf\": {\n    \"source\": \"iana\"\n  },\n  \"application/atfx\": {\n    \"source\": \"iana\"\n  },\n  \"application/atom+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"atom\"]\n  },\n  \"application/atomcat+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"atomcat\"]\n  },\n  \"application/atomdeleted+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"atomdeleted\"]\n  },\n  \"application/atomicmail\": {\n    \"source\": \"iana\"\n  },\n  \"application/atomsvc+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"atomsvc\"]\n  },\n  \"application/atsc-dwd+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"dwd\"]\n  },\n  \"application/atsc-dynamic-event-message\": {\n    \"source\": \"iana\"\n  },\n  \"application/atsc-held+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"held\"]\n  },\n  \"application/atsc-rdt+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/atsc-rsat+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"rsat\"]\n  },\n  \"application/atxml\": {\n    \"source\": \"iana\"\n  },\n  \"application/auth-policy+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/bacnet-xdd+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"application/batch-smtp\": {\n    \"source\": \"iana\"\n  },\n  \"application/bdoc\": {\n    \"compressible\": false,\n    \"extensions\": [\"bdoc\"]\n  },\n  \"application/beep+xml\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true\n  },\n  \"application/calendar+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/calendar+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"xcs\"]\n  },\n  \"application/call-completion\": {\n    \"source\": \"iana\"\n  },\n  \"application/cals-1840\": {\n    \"source\": \"iana\"\n  },\n  \"application/captive+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/cbor\": {\n    \"source\": \"iana\"\n  },\n  \"application/cbor-seq\": {\n    \"source\": \"iana\"\n  },\n  \"application/cccex\": {\n    \"source\": \"iana\"\n  },\n  \"application/ccmp+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/ccxml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"ccxml\"]\n  },\n  \"application/cdfx+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"cdfx\"]\n  },\n  \"application/cdmi-capability\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"cdmia\"]\n  },\n  \"application/cdmi-container\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"cdmic\"]\n  },\n  \"application/cdmi-domain\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"cdmid\"]\n  },\n  \"application/cdmi-object\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"cdmio\"]\n  },\n  \"application/cdmi-queue\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"cdmiq\"]\n  },\n  \"application/cdni\": {\n    \"source\": \"iana\"\n  },\n  \"application/cea\": {\n    \"source\": \"iana\"\n  },\n  \"application/cea-2018+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/cellml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/cfw\": {\n    \"source\": \"iana\"\n  },\n  \"application/city+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/clr\": {\n    \"source\": \"iana\"\n  },\n  \"application/clue+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/clue_info+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/cms\": {\n    \"source\": \"iana\"\n  },\n  \"application/cnrp+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/coap-group+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/coap-payload\": {\n    \"source\": \"iana\"\n  },\n  \"application/commonground\": {\n    \"source\": \"iana\"\n  },\n  \"application/conference-info+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/cose\": {\n    \"source\": \"iana\"\n  },\n  \"application/cose-key\": {\n    \"source\": \"iana\"\n  },\n  \"application/cose-key-set\": {\n    \"source\": \"iana\"\n  },\n  \"application/cpl+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"cpl\"]\n  },\n  \"application/csrattrs\": {\n    \"source\": \"iana\"\n  },\n  \"application/csta+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/cstadata+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/csvm+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/cu-seeme\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"cu\"]\n  },\n  \"application/cwt\": {\n    \"source\": \"iana\"\n  },\n  \"application/cybercash\": {\n    \"source\": \"iana\"\n  },\n  \"application/dart\": {\n    \"compressible\": true\n  },\n  \"application/dash+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"mpd\"]\n  },\n  \"application/dash-patch+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"mpp\"]\n  },\n  \"application/dashdelta\": {\n    \"source\": \"iana\"\n  },\n  \"application/davmount+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"davmount\"]\n  },\n  \"application/dca-rft\": {\n    \"source\": \"iana\"\n  },\n  \"application/dcd\": {\n    \"source\": \"iana\"\n  },\n  \"application/dec-dx\": {\n    \"source\": \"iana\"\n  },\n  \"application/dialog-info+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/dicom\": {\n    \"source\": \"iana\"\n  },\n  \"application/dicom+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/dicom+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/dii\": {\n    \"source\": \"iana\"\n  },\n  \"application/dit\": {\n    \"source\": \"iana\"\n  },\n  \"application/dns\": {\n    \"source\": \"iana\"\n  },\n  \"application/dns+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/dns-message\": {\n    \"source\": \"iana\"\n  },\n  \"application/docbook+xml\": {\n    \"source\": \"apache\",\n    \"compressible\": true,\n    \"extensions\": [\"dbk\"]\n  },\n  \"application/dots+cbor\": {\n    \"source\": \"iana\"\n  },\n  \"application/dskpp+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/dssc+der\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"dssc\"]\n  },\n  \"application/dssc+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"xdssc\"]\n  },\n  \"application/dvcs\": {\n    \"source\": \"iana\"\n  },\n  \"application/ecmascript\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"es\",\"ecma\"]\n  },\n  \"application/edi-consent\": {\n    \"source\": \"iana\"\n  },\n  \"application/edi-x12\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"application/edifact\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"application/efi\": {\n    \"source\": \"iana\"\n  },\n  \"application/elm+json\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true\n  },\n  \"application/elm+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/emergencycalldata.cap+xml\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true\n  },\n  \"application/emergencycalldata.comment+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/emergencycalldata.control+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/emergencycalldata.deviceinfo+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/emergencycalldata.ecall.msd\": {\n    \"source\": \"iana\"\n  },\n  \"application/emergencycalldata.providerinfo+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/emergencycalldata.serviceinfo+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/emergencycalldata.subscriberinfo+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/emergencycalldata.veds+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/emma+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"emma\"]\n  },\n  \"application/emotionml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"emotionml\"]\n  },\n  \"application/encaprtp\": {\n    \"source\": \"iana\"\n  },\n  \"application/epp+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/epub+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"epub\"]\n  },\n  \"application/eshop\": {\n    \"source\": \"iana\"\n  },\n  \"application/exi\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"exi\"]\n  },\n  \"application/expect-ct-report+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/express\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"exp\"]\n  },\n  \"application/fastinfoset\": {\n    \"source\": \"iana\"\n  },\n  \"application/fastsoap\": {\n    \"source\": \"iana\"\n  },\n  \"application/fdt+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"fdt\"]\n  },\n  \"application/fhir+json\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true\n  },\n  \"application/fhir+xml\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true\n  },\n  \"application/fido.trusted-apps+json\": {\n    \"compressible\": true\n  },\n  \"application/fits\": {\n    \"source\": \"iana\"\n  },\n  \"application/flexfec\": {\n    \"source\": \"iana\"\n  },\n  \"application/font-sfnt\": {\n    \"source\": \"iana\"\n  },\n  \"application/font-tdpfr\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"pfr\"]\n  },\n  \"application/font-woff\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"application/framework-attributes+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/geo+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"geojson\"]\n  },\n  \"application/geo+json-seq\": {\n    \"source\": \"iana\"\n  },\n  \"application/geopackage+sqlite3\": {\n    \"source\": \"iana\"\n  },\n  \"application/geoxacml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/gltf-buffer\": {\n    \"source\": \"iana\"\n  },\n  \"application/gml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"gml\"]\n  },\n  \"application/gpx+xml\": {\n    \"source\": \"apache\",\n    \"compressible\": true,\n    \"extensions\": [\"gpx\"]\n  },\n  \"application/gxf\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"gxf\"]\n  },\n  \"application/gzip\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"gz\"]\n  },\n  \"application/h224\": {\n    \"source\": \"iana\"\n  },\n  \"application/held+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/hjson\": {\n    \"extensions\": [\"hjson\"]\n  },\n  \"application/http\": {\n    \"source\": \"iana\"\n  },\n  \"application/hyperstudio\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"stk\"]\n  },\n  \"application/ibe-key-request+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/ibe-pkg-reply+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/ibe-pp-data\": {\n    \"source\": \"iana\"\n  },\n  \"application/iges\": {\n    \"source\": \"iana\"\n  },\n  \"application/im-iscomposing+xml\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true\n  },\n  \"application/index\": {\n    \"source\": \"iana\"\n  },\n  \"application/index.cmd\": {\n    \"source\": \"iana\"\n  },\n  \"application/index.obj\": {\n    \"source\": \"iana\"\n  },\n  \"application/index.response\": {\n    \"source\": \"iana\"\n  },\n  \"application/index.vnd\": {\n    \"source\": \"iana\"\n  },\n  \"application/inkml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"ink\",\"inkml\"]\n  },\n  \"application/iotp\": {\n    \"source\": \"iana\"\n  },\n  \"application/ipfix\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ipfix\"]\n  },\n  \"application/ipp\": {\n    \"source\": \"iana\"\n  },\n  \"application/isup\": {\n    \"source\": \"iana\"\n  },\n  \"application/its+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"its\"]\n  },\n  \"application/java-archive\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"jar\",\"war\",\"ear\"]\n  },\n  \"application/java-serialized-object\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"ser\"]\n  },\n  \"application/java-vm\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"class\"]\n  },\n  \"application/javascript\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true,\n    \"extensions\": [\"js\",\"mjs\"]\n  },\n  \"application/jf2feed+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/jose\": {\n    \"source\": \"iana\"\n  },\n  \"application/jose+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/jrd+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/jscalendar+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/json\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true,\n    \"extensions\": [\"json\",\"map\"]\n  },\n  \"application/json-patch+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/json-seq\": {\n    \"source\": \"iana\"\n  },\n  \"application/json5\": {\n    \"extensions\": [\"json5\"]\n  },\n  \"application/jsonml+json\": {\n    \"source\": \"apache\",\n    \"compressible\": true,\n    \"extensions\": [\"jsonml\"]\n  },\n  \"application/jwk+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/jwk-set+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/jwt\": {\n    \"source\": \"iana\"\n  },\n  \"application/kpml-request+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/kpml-response+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/ld+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"jsonld\"]\n  },\n  \"application/lgr+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"lgr\"]\n  },\n  \"application/link-format\": {\n    \"source\": \"iana\"\n  },\n  \"application/load-control+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/lost+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"lostxml\"]\n  },\n  \"application/lostsync+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/lpf+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"application/lxf\": {\n    \"source\": \"iana\"\n  },\n  \"application/mac-binhex40\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"hqx\"]\n  },\n  \"application/mac-compactpro\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"cpt\"]\n  },\n  \"application/macwriteii\": {\n    \"source\": \"iana\"\n  },\n  \"application/mads+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"mads\"]\n  },\n  \"application/manifest+json\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true,\n    \"extensions\": [\"webmanifest\"]\n  },\n  \"application/marc\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mrc\"]\n  },\n  \"application/marcxml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"mrcx\"]\n  },\n  \"application/mathematica\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ma\",\"nb\",\"mb\"]\n  },\n  \"application/mathml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"mathml\"]\n  },\n  \"application/mathml-content+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/mathml-presentation+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/mbms-associated-procedure-description+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/mbms-deregister+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/mbms-envelope+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/mbms-msk+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/mbms-msk-response+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/mbms-protection-description+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/mbms-reception-report+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/mbms-register+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/mbms-register-response+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/mbms-schedule+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/mbms-user-service-description+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/mbox\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mbox\"]\n  },\n  \"application/media-policy-dataset+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"mpf\"]\n  },\n  \"application/media_control+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/mediaservercontrol+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"mscml\"]\n  },\n  \"application/merge-patch+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/metalink+xml\": {\n    \"source\": \"apache\",\n    \"compressible\": true,\n    \"extensions\": [\"metalink\"]\n  },\n  \"application/metalink4+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"meta4\"]\n  },\n  \"application/mets+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"mets\"]\n  },\n  \"application/mf4\": {\n    \"source\": \"iana\"\n  },\n  \"application/mikey\": {\n    \"source\": \"iana\"\n  },\n  \"application/mipc\": {\n    \"source\": \"iana\"\n  },\n  \"application/missing-blocks+cbor-seq\": {\n    \"source\": \"iana\"\n  },\n  \"application/mmt-aei+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"maei\"]\n  },\n  \"application/mmt-usd+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"musd\"]\n  },\n  \"application/mods+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"mods\"]\n  },\n  \"application/moss-keys\": {\n    \"source\": \"iana\"\n  },\n  \"application/moss-signature\": {\n    \"source\": \"iana\"\n  },\n  \"application/mosskey-data\": {\n    \"source\": \"iana\"\n  },\n  \"application/mosskey-request\": {\n    \"source\": \"iana\"\n  },\n  \"application/mp21\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"m21\",\"mp21\"]\n  },\n  \"application/mp4\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mp4s\",\"m4p\"]\n  },\n  \"application/mpeg4-generic\": {\n    \"source\": \"iana\"\n  },\n  \"application/mpeg4-iod\": {\n    \"source\": \"iana\"\n  },\n  \"application/mpeg4-iod-xmt\": {\n    \"source\": \"iana\"\n  },\n  \"application/mrb-consumer+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/mrb-publish+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/msc-ivr+xml\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true\n  },\n  \"application/msc-mixer+xml\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true\n  },\n  \"application/msword\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"doc\",\"dot\"]\n  },\n  \"application/mud+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/multipart-core\": {\n    \"source\": \"iana\"\n  },\n  \"application/mxf\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mxf\"]\n  },\n  \"application/n-quads\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"nq\"]\n  },\n  \"application/n-triples\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"nt\"]\n  },\n  \"application/nasdata\": {\n    \"source\": \"iana\"\n  },\n  \"application/news-checkgroups\": {\n    \"source\": \"iana\",\n    \"charset\": \"US-ASCII\"\n  },\n  \"application/news-groupinfo\": {\n    \"source\": \"iana\",\n    \"charset\": \"US-ASCII\"\n  },\n  \"application/news-transmission\": {\n    \"source\": \"iana\"\n  },\n  \"application/nlsml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/node\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"cjs\"]\n  },\n  \"application/nss\": {\n    \"source\": \"iana\"\n  },\n  \"application/oauth-authz-req+jwt\": {\n    \"source\": \"iana\"\n  },\n  \"application/oblivious-dns-message\": {\n    \"source\": \"iana\"\n  },\n  \"application/ocsp-request\": {\n    \"source\": \"iana\"\n  },\n  \"application/ocsp-response\": {\n    \"source\": \"iana\"\n  },\n  \"application/octet-stream\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"bin\",\"dms\",\"lrf\",\"mar\",\"so\",\"dist\",\"distz\",\"pkg\",\"bpk\",\"dump\",\"elc\",\"deploy\",\"exe\",\"dll\",\"deb\",\"dmg\",\"iso\",\"img\",\"msi\",\"msp\",\"msm\",\"buffer\"]\n  },\n  \"application/oda\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"oda\"]\n  },\n  \"application/odm+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/odx\": {\n    \"source\": \"iana\"\n  },\n  \"application/oebps-package+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"opf\"]\n  },\n  \"application/ogg\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"ogx\"]\n  },\n  \"application/omdoc+xml\": {\n    \"source\": \"apache\",\n    \"compressible\": true,\n    \"extensions\": [\"omdoc\"]\n  },\n  \"application/onenote\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"onetoc\",\"onetoc2\",\"onetmp\",\"onepkg\"]\n  },\n  \"application/opc-nodeset+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/oscore\": {\n    \"source\": \"iana\"\n  },\n  \"application/oxps\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"oxps\"]\n  },\n  \"application/p21\": {\n    \"source\": \"iana\"\n  },\n  \"application/p21+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"application/p2p-overlay+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"relo\"]\n  },\n  \"application/parityfec\": {\n    \"source\": \"iana\"\n  },\n  \"application/passport\": {\n    \"source\": \"iana\"\n  },\n  \"application/patch-ops-error+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"xer\"]\n  },\n  \"application/pdf\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"pdf\"]\n  },\n  \"application/pdx\": {\n    \"source\": \"iana\"\n  },\n  \"application/pem-certificate-chain\": {\n    \"source\": \"iana\"\n  },\n  \"application/pgp-encrypted\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"pgp\"]\n  },\n  \"application/pgp-keys\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"asc\"]\n  },\n  \"application/pgp-signature\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"asc\",\"sig\"]\n  },\n  \"application/pics-rules\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"prf\"]\n  },\n  \"application/pidf+xml\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true\n  },\n  \"application/pidf-diff+xml\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true\n  },\n  \"application/pkcs10\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"p10\"]\n  },\n  \"application/pkcs12\": {\n    \"source\": \"iana\"\n  },\n  \"application/pkcs7-mime\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"p7m\",\"p7c\"]\n  },\n  \"application/pkcs7-signature\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"p7s\"]\n  },\n  \"application/pkcs8\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"p8\"]\n  },\n  \"application/pkcs8-encrypted\": {\n    \"source\": \"iana\"\n  },\n  \"application/pkix-attr-cert\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ac\"]\n  },\n  \"application/pkix-cert\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"cer\"]\n  },\n  \"application/pkix-crl\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"crl\"]\n  },\n  \"application/pkix-pkipath\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"pkipath\"]\n  },\n  \"application/pkixcmp\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"pki\"]\n  },\n  \"application/pls+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"pls\"]\n  },\n  \"application/poc-settings+xml\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true\n  },\n  \"application/postscript\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"ai\",\"eps\",\"ps\"]\n  },\n  \"application/ppsp-tracker+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/problem+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/problem+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/provenance+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"provx\"]\n  },\n  \"application/prs.alvestrand.titrax-sheet\": {\n    \"source\": \"iana\"\n  },\n  \"application/prs.cww\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"cww\"]\n  },\n  \"application/prs.cyn\": {\n    \"source\": \"iana\",\n    \"charset\": \"7-BIT\"\n  },\n  \"application/prs.hpub+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"application/prs.nprend\": {\n    \"source\": \"iana\"\n  },\n  \"application/prs.plucker\": {\n    \"source\": \"iana\"\n  },\n  \"application/prs.rdf-xml-crypt\": {\n    \"source\": \"iana\"\n  },\n  \"application/prs.xsf+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/pskc+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"pskcxml\"]\n  },\n  \"application/pvd+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/qsig\": {\n    \"source\": \"iana\"\n  },\n  \"application/raml+yaml\": {\n    \"compressible\": true,\n    \"extensions\": [\"raml\"]\n  },\n  \"application/raptorfec\": {\n    \"source\": \"iana\"\n  },\n  \"application/rdap+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/rdf+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"rdf\",\"owl\"]\n  },\n  \"application/reginfo+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"rif\"]\n  },\n  \"application/relax-ng-compact-syntax\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"rnc\"]\n  },\n  \"application/remote-printing\": {\n    \"source\": \"iana\"\n  },\n  \"application/reputon+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/resource-lists+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"rl\"]\n  },\n  \"application/resource-lists-diff+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"rld\"]\n  },\n  \"application/rfc+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/riscos\": {\n    \"source\": \"iana\"\n  },\n  \"application/rlmi+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/rls-services+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"rs\"]\n  },\n  \"application/route-apd+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"rapd\"]\n  },\n  \"application/route-s-tsid+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"sls\"]\n  },\n  \"application/route-usd+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"rusd\"]\n  },\n  \"application/rpki-ghostbusters\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"gbr\"]\n  },\n  \"application/rpki-manifest\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mft\"]\n  },\n  \"application/rpki-publication\": {\n    \"source\": \"iana\"\n  },\n  \"application/rpki-roa\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"roa\"]\n  },\n  \"application/rpki-updown\": {\n    \"source\": \"iana\"\n  },\n  \"application/rsd+xml\": {\n    \"source\": \"apache\",\n    \"compressible\": true,\n    \"extensions\": [\"rsd\"]\n  },\n  \"application/rss+xml\": {\n    \"source\": \"apache\",\n    \"compressible\": true,\n    \"extensions\": [\"rss\"]\n  },\n  \"application/rtf\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"rtf\"]\n  },\n  \"application/rtploopback\": {\n    \"source\": \"iana\"\n  },\n  \"application/rtx\": {\n    \"source\": \"iana\"\n  },\n  \"application/samlassertion+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/samlmetadata+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/sarif+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/sarif-external-properties+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/sbe\": {\n    \"source\": \"iana\"\n  },\n  \"application/sbml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"sbml\"]\n  },\n  \"application/scaip+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/scim+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/scvp-cv-request\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"scq\"]\n  },\n  \"application/scvp-cv-response\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"scs\"]\n  },\n  \"application/scvp-vp-request\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"spq\"]\n  },\n  \"application/scvp-vp-response\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"spp\"]\n  },\n  \"application/sdp\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"sdp\"]\n  },\n  \"application/secevent+jwt\": {\n    \"source\": \"iana\"\n  },\n  \"application/senml+cbor\": {\n    \"source\": \"iana\"\n  },\n  \"application/senml+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/senml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"senmlx\"]\n  },\n  \"application/senml-etch+cbor\": {\n    \"source\": \"iana\"\n  },\n  \"application/senml-etch+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/senml-exi\": {\n    \"source\": \"iana\"\n  },\n  \"application/sensml+cbor\": {\n    \"source\": \"iana\"\n  },\n  \"application/sensml+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/sensml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"sensmlx\"]\n  },\n  \"application/sensml-exi\": {\n    \"source\": \"iana\"\n  },\n  \"application/sep+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/sep-exi\": {\n    \"source\": \"iana\"\n  },\n  \"application/session-info\": {\n    \"source\": \"iana\"\n  },\n  \"application/set-payment\": {\n    \"source\": \"iana\"\n  },\n  \"application/set-payment-initiation\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"setpay\"]\n  },\n  \"application/set-registration\": {\n    \"source\": \"iana\"\n  },\n  \"application/set-registration-initiation\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"setreg\"]\n  },\n  \"application/sgml\": {\n    \"source\": \"iana\"\n  },\n  \"application/sgml-open-catalog\": {\n    \"source\": \"iana\"\n  },\n  \"application/shf+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"shf\"]\n  },\n  \"application/sieve\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"siv\",\"sieve\"]\n  },\n  \"application/simple-filter+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/simple-message-summary\": {\n    \"source\": \"iana\"\n  },\n  \"application/simplesymbolcontainer\": {\n    \"source\": \"iana\"\n  },\n  \"application/sipc\": {\n    \"source\": \"iana\"\n  },\n  \"application/slate\": {\n    \"source\": \"iana\"\n  },\n  \"application/smil\": {\n    \"source\": \"iana\"\n  },\n  \"application/smil+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"smi\",\"smil\"]\n  },\n  \"application/smpte336m\": {\n    \"source\": \"iana\"\n  },\n  \"application/soap+fastinfoset\": {\n    \"source\": \"iana\"\n  },\n  \"application/soap+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/sparql-query\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"rq\"]\n  },\n  \"application/sparql-results+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"srx\"]\n  },\n  \"application/spdx+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/spirits-event+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/sql\": {\n    \"source\": \"iana\"\n  },\n  \"application/srgs\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"gram\"]\n  },\n  \"application/srgs+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"grxml\"]\n  },\n  \"application/sru+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"sru\"]\n  },\n  \"application/ssdl+xml\": {\n    \"source\": \"apache\",\n    \"compressible\": true,\n    \"extensions\": [\"ssdl\"]\n  },\n  \"application/ssml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"ssml\"]\n  },\n  \"application/stix+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/swid+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"swidtag\"]\n  },\n  \"application/tamp-apex-update\": {\n    \"source\": \"iana\"\n  },\n  \"application/tamp-apex-update-confirm\": {\n    \"source\": \"iana\"\n  },\n  \"application/tamp-community-update\": {\n    \"source\": \"iana\"\n  },\n  \"application/tamp-community-update-confirm\": {\n    \"source\": \"iana\"\n  },\n  \"application/tamp-error\": {\n    \"source\": \"iana\"\n  },\n  \"application/tamp-sequence-adjust\": {\n    \"source\": \"iana\"\n  },\n  \"application/tamp-sequence-adjust-confirm\": {\n    \"source\": \"iana\"\n  },\n  \"application/tamp-status-query\": {\n    \"source\": \"iana\"\n  },\n  \"application/tamp-status-response\": {\n    \"source\": \"iana\"\n  },\n  \"application/tamp-update\": {\n    \"source\": \"iana\"\n  },\n  \"application/tamp-update-confirm\": {\n    \"source\": \"iana\"\n  },\n  \"application/tar\": {\n    \"compressible\": true\n  },\n  \"application/taxii+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/td+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/tei+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"tei\",\"teicorpus\"]\n  },\n  \"application/tetra_isi\": {\n    \"source\": \"iana\"\n  },\n  \"application/thraud+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"tfi\"]\n  },\n  \"application/timestamp-query\": {\n    \"source\": \"iana\"\n  },\n  \"application/timestamp-reply\": {\n    \"source\": \"iana\"\n  },\n  \"application/timestamped-data\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"tsd\"]\n  },\n  \"application/tlsrpt+gzip\": {\n    \"source\": \"iana\"\n  },\n  \"application/tlsrpt+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/tnauthlist\": {\n    \"source\": \"iana\"\n  },\n  \"application/token-introspection+jwt\": {\n    \"source\": \"iana\"\n  },\n  \"application/toml\": {\n    \"compressible\": true,\n    \"extensions\": [\"toml\"]\n  },\n  \"application/trickle-ice-sdpfrag\": {\n    \"source\": \"iana\"\n  },\n  \"application/trig\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"trig\"]\n  },\n  \"application/ttml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"ttml\"]\n  },\n  \"application/tve-trigger\": {\n    \"source\": \"iana\"\n  },\n  \"application/tzif\": {\n    \"source\": \"iana\"\n  },\n  \"application/tzif-leap\": {\n    \"source\": \"iana\"\n  },\n  \"application/ubjson\": {\n    \"compressible\": false,\n    \"extensions\": [\"ubj\"]\n  },\n  \"application/ulpfec\": {\n    \"source\": \"iana\"\n  },\n  \"application/urc-grpsheet+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/urc-ressheet+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"rsheet\"]\n  },\n  \"application/urc-targetdesc+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"td\"]\n  },\n  \"application/urc-uisocketdesc+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vcard+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vcard+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vemmi\": {\n    \"source\": \"iana\"\n  },\n  \"application/vividence.scriptfile\": {\n    \"source\": \"apache\"\n  },\n  \"application/vnd.1000minds.decision-model+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"1km\"]\n  },\n  \"application/vnd.3gpp-prose+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp-prose-pc3ch+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp-v2x-local-service-information\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.3gpp.5gnas\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.3gpp.access-transfer-events+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.bsf+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.gmop+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.gtpc\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.3gpp.interworking-data\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.3gpp.lpp\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.3gpp.mc-signalling-ear\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.3gpp.mcdata-affiliation-command+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcdata-info+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcdata-payload\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.3gpp.mcdata-service-config+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcdata-signalling\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.3gpp.mcdata-ue-config+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcdata-user-profile+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcptt-affiliation-command+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcptt-floor-request+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcptt-info+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcptt-location-info+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcptt-mbms-usage-info+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcptt-service-config+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcptt-signed+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcptt-ue-config+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcptt-ue-init-config+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcptt-user-profile+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcvideo-affiliation-command+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcvideo-affiliation-info+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcvideo-info+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcvideo-location-info+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcvideo-mbms-usage-info+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcvideo-service-config+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcvideo-transmission-request+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcvideo-ue-config+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mcvideo-user-profile+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.mid-call+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.ngap\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.3gpp.pfcp\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.3gpp.pic-bw-large\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"plb\"]\n  },\n  \"application/vnd.3gpp.pic-bw-small\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"psb\"]\n  },\n  \"application/vnd.3gpp.pic-bw-var\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"pvb\"]\n  },\n  \"application/vnd.3gpp.s1ap\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.3gpp.sms\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.3gpp.sms+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.srvcc-ext+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.srvcc-info+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.state-and-event-info+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp.ussd+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp2.bcmcsinfo+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.3gpp2.sms\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.3gpp2.tcap\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"tcap\"]\n  },\n  \"application/vnd.3lightssoftware.imagescal\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.3m.post-it-notes\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"pwn\"]\n  },\n  \"application/vnd.accpac.simply.aso\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"aso\"]\n  },\n  \"application/vnd.accpac.simply.imp\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"imp\"]\n  },\n  \"application/vnd.acucobol\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"acu\"]\n  },\n  \"application/vnd.acucorp\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"atc\",\"acutc\"]\n  },\n  \"application/vnd.adobe.air-application-installer-package+zip\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"air\"]\n  },\n  \"application/vnd.adobe.flash.movie\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.adobe.formscentral.fcdt\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"fcdt\"]\n  },\n  \"application/vnd.adobe.fxp\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"fxp\",\"fxpl\"]\n  },\n  \"application/vnd.adobe.partial-upload\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.adobe.xdp+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"xdp\"]\n  },\n  \"application/vnd.adobe.xfdf\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"xfdf\"]\n  },\n  \"application/vnd.aether.imp\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.afpc.afplinedata\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.afpc.afplinedata-pagedef\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.afpc.cmoca-cmresource\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.afpc.foca-charset\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.afpc.foca-codedfont\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.afpc.foca-codepage\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.afpc.modca\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.afpc.modca-cmtable\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.afpc.modca-formdef\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.afpc.modca-mediummap\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.afpc.modca-objectcontainer\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.afpc.modca-overlay\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.afpc.modca-pagesegment\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.age\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"age\"]\n  },\n  \"application/vnd.ah-barcode\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ahead.space\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ahead\"]\n  },\n  \"application/vnd.airzip.filesecure.azf\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"azf\"]\n  },\n  \"application/vnd.airzip.filesecure.azs\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"azs\"]\n  },\n  \"application/vnd.amadeus+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.amazon.ebook\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"azw\"]\n  },\n  \"application/vnd.amazon.mobi8-ebook\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.americandynamics.acc\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"acc\"]\n  },\n  \"application/vnd.amiga.ami\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ami\"]\n  },\n  \"application/vnd.amundsen.maze+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.android.ota\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.android.package-archive\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"apk\"]\n  },\n  \"application/vnd.anki\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.anser-web-certificate-issue-initiation\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"cii\"]\n  },\n  \"application/vnd.anser-web-funds-transfer-initiation\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"fti\"]\n  },\n  \"application/vnd.antix.game-component\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"atx\"]\n  },\n  \"application/vnd.apache.arrow.file\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.apache.arrow.stream\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.apache.thrift.binary\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.apache.thrift.compact\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.apache.thrift.json\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.api+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.aplextor.warrp+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.apothekende.reservation+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.apple.installer+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"mpkg\"]\n  },\n  \"application/vnd.apple.keynote\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"key\"]\n  },\n  \"application/vnd.apple.mpegurl\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"m3u8\"]\n  },\n  \"application/vnd.apple.numbers\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"numbers\"]\n  },\n  \"application/vnd.apple.pages\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"pages\"]\n  },\n  \"application/vnd.apple.pkpass\": {\n    \"compressible\": false,\n    \"extensions\": [\"pkpass\"]\n  },\n  \"application/vnd.arastra.swi\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.aristanetworks.swi\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"swi\"]\n  },\n  \"application/vnd.artisan+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.artsquare\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.astraea-software.iota\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"iota\"]\n  },\n  \"application/vnd.audiograph\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"aep\"]\n  },\n  \"application/vnd.autopackage\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.avalon+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.avistar+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.balsamiq.bmml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"bmml\"]\n  },\n  \"application/vnd.balsamiq.bmpr\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.banana-accounting\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.bbf.usp.error\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.bbf.usp.msg\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.bbf.usp.msg+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.bekitzur-stech+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.bint.med-content\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.biopax.rdf+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.blink-idb-value-wrapper\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.blueice.multipass\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mpm\"]\n  },\n  \"application/vnd.bluetooth.ep.oob\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.bluetooth.le.oob\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.bmi\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"bmi\"]\n  },\n  \"application/vnd.bpf\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.bpf3\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.businessobjects\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"rep\"]\n  },\n  \"application/vnd.byu.uapi+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.cab-jscript\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.canon-cpdl\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.canon-lips\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.capasystems-pg+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.cendio.thinlinc.clientconf\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.century-systems.tcp_stream\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.chemdraw+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"cdxml\"]\n  },\n  \"application/vnd.chess-pgn\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.chipnuts.karaoke-mmd\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mmd\"]\n  },\n  \"application/vnd.ciedi\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.cinderella\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"cdy\"]\n  },\n  \"application/vnd.cirpack.isdn-ext\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.citationstyles.style+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"csl\"]\n  },\n  \"application/vnd.claymore\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"cla\"]\n  },\n  \"application/vnd.cloanto.rp9\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"rp9\"]\n  },\n  \"application/vnd.clonk.c4group\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"c4g\",\"c4d\",\"c4f\",\"c4p\",\"c4u\"]\n  },\n  \"application/vnd.cluetrust.cartomobile-config\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"c11amc\"]\n  },\n  \"application/vnd.cluetrust.cartomobile-config-pkg\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"c11amz\"]\n  },\n  \"application/vnd.coffeescript\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.collabio.xodocuments.document\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.collabio.xodocuments.document-template\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.collabio.xodocuments.presentation\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.collabio.xodocuments.presentation-template\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.collabio.xodocuments.spreadsheet\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.collabio.xodocuments.spreadsheet-template\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.collection+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.collection.doc+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.collection.next+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.comicbook+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"application/vnd.comicbook-rar\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.commerce-battelle\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.commonspace\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"csp\"]\n  },\n  \"application/vnd.contact.cmsg\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"cdbcmsg\"]\n  },\n  \"application/vnd.coreos.ignition+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.cosmocaller\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"cmc\"]\n  },\n  \"application/vnd.crick.clicker\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"clkx\"]\n  },\n  \"application/vnd.crick.clicker.keyboard\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"clkk\"]\n  },\n  \"application/vnd.crick.clicker.palette\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"clkp\"]\n  },\n  \"application/vnd.crick.clicker.template\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"clkt\"]\n  },\n  \"application/vnd.crick.clicker.wordbank\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"clkw\"]\n  },\n  \"application/vnd.criticaltools.wbs+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"wbs\"]\n  },\n  \"application/vnd.cryptii.pipe+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.crypto-shade-file\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.cryptomator.encrypted\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.cryptomator.vault\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ctc-posml\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"pml\"]\n  },\n  \"application/vnd.ctct.ws+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.cups-pdf\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.cups-postscript\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.cups-ppd\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ppd\"]\n  },\n  \"application/vnd.cups-raster\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.cups-raw\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.curl\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.curl.car\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"car\"]\n  },\n  \"application/vnd.curl.pcurl\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"pcurl\"]\n  },\n  \"application/vnd.cyan.dean.root+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.cybank\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.cyclonedx+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.cyclonedx+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.d2l.coursepackage1p0+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"application/vnd.d3m-dataset\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.d3m-problem\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.dart\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"dart\"]\n  },\n  \"application/vnd.data-vision.rdz\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"rdz\"]\n  },\n  \"application/vnd.datapackage+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.dataresource+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.dbf\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"dbf\"]\n  },\n  \"application/vnd.debian.binary-package\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.dece.data\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"uvf\",\"uvvf\",\"uvd\",\"uvvd\"]\n  },\n  \"application/vnd.dece.ttml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"uvt\",\"uvvt\"]\n  },\n  \"application/vnd.dece.unspecified\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"uvx\",\"uvvx\"]\n  },\n  \"application/vnd.dece.zip\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"uvz\",\"uvvz\"]\n  },\n  \"application/vnd.denovo.fcselayout-link\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"fe_launch\"]\n  },\n  \"application/vnd.desmume.movie\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.dir-bi.plate-dl-nosuffix\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.dm.delegation+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.dna\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"dna\"]\n  },\n  \"application/vnd.document+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.dolby.mlp\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"mlp\"]\n  },\n  \"application/vnd.dolby.mobile.1\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.dolby.mobile.2\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.doremir.scorecloud-binary-document\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.dpgraph\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"dpg\"]\n  },\n  \"application/vnd.dreamfactory\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"dfac\"]\n  },\n  \"application/vnd.drive+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.ds-keypoint\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"kpxx\"]\n  },\n  \"application/vnd.dtg.local\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.dtg.local.flash\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.dtg.local.html\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.dvb.ait\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ait\"]\n  },\n  \"application/vnd.dvb.dvbisl+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.dvb.dvbj\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.dvb.esgcontainer\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.dvb.ipdcdftnotifaccess\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.dvb.ipdcesgaccess\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.dvb.ipdcesgaccess2\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.dvb.ipdcesgpdd\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.dvb.ipdcroaming\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.dvb.iptv.alfec-base\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.dvb.iptv.alfec-enhancement\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.dvb.notif-aggregate-root+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.dvb.notif-container+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.dvb.notif-generic+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.dvb.notif-ia-msglist+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.dvb.notif-ia-registration-request+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.dvb.notif-ia-registration-response+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.dvb.notif-init+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.dvb.pfr\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.dvb.service\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"svc\"]\n  },\n  \"application/vnd.dxr\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.dynageo\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"geo\"]\n  },\n  \"application/vnd.dzr\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.easykaraoke.cdgdownload\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ecdis-update\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ecip.rlp\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.eclipse.ditto+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.ecowin.chart\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mag\"]\n  },\n  \"application/vnd.ecowin.filerequest\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ecowin.fileupdate\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ecowin.series\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ecowin.seriesrequest\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ecowin.seriesupdate\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.efi.img\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.efi.iso\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.emclient.accessrequest+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.enliven\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"nml\"]\n  },\n  \"application/vnd.enphase.envoy\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.eprints.data+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.epson.esf\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"esf\"]\n  },\n  \"application/vnd.epson.msf\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"msf\"]\n  },\n  \"application/vnd.epson.quickanime\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"qam\"]\n  },\n  \"application/vnd.epson.salt\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"slt\"]\n  },\n  \"application/vnd.epson.ssf\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ssf\"]\n  },\n  \"application/vnd.ericsson.quickcall\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.espass-espass+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"application/vnd.eszigno3+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"es3\",\"et3\"]\n  },\n  \"application/vnd.etsi.aoc+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.etsi.asic-e+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"application/vnd.etsi.asic-s+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"application/vnd.etsi.cug+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.etsi.iptvcommand+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.etsi.iptvdiscovery+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.etsi.iptvprofile+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.etsi.iptvsad-bc+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.etsi.iptvsad-cod+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.etsi.iptvsad-npvr+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.etsi.iptvservice+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.etsi.iptvsync+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.etsi.iptvueprofile+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.etsi.mcid+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.etsi.mheg5\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.etsi.overload-control-policy-dataset+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.etsi.pstn+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.etsi.sci+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.etsi.simservs+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.etsi.timestamp-token\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.etsi.tsl+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.etsi.tsl.der\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.eu.kasparian.car+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.eudora.data\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.evolv.ecig.profile\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.evolv.ecig.settings\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.evolv.ecig.theme\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.exstream-empower+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"application/vnd.exstream-package\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ezpix-album\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ez2\"]\n  },\n  \"application/vnd.ezpix-package\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ez3\"]\n  },\n  \"application/vnd.f-secure.mobile\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.familysearch.gedcom+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"application/vnd.fastcopy-disk-image\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.fdf\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"fdf\"]\n  },\n  \"application/vnd.fdsn.mseed\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mseed\"]\n  },\n  \"application/vnd.fdsn.seed\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"seed\",\"dataless\"]\n  },\n  \"application/vnd.ffsns\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ficlab.flb+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"application/vnd.filmit.zfc\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.fints\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.firemonkeys.cloudcell\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.flographit\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"gph\"]\n  },\n  \"application/vnd.fluxtime.clip\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ftc\"]\n  },\n  \"application/vnd.font-fontforge-sfd\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.framemaker\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"fm\",\"frame\",\"maker\",\"book\"]\n  },\n  \"application/vnd.frogans.fnc\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"fnc\"]\n  },\n  \"application/vnd.frogans.ltf\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ltf\"]\n  },\n  \"application/vnd.fsc.weblaunch\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"fsc\"]\n  },\n  \"application/vnd.fujifilm.fb.docuworks\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.fujifilm.fb.docuworks.binder\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.fujifilm.fb.docuworks.container\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.fujifilm.fb.jfi+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.fujitsu.oasys\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"oas\"]\n  },\n  \"application/vnd.fujitsu.oasys2\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"oa2\"]\n  },\n  \"application/vnd.fujitsu.oasys3\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"oa3\"]\n  },\n  \"application/vnd.fujitsu.oasysgp\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"fg5\"]\n  },\n  \"application/vnd.fujitsu.oasysprs\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"bh2\"]\n  },\n  \"application/vnd.fujixerox.art-ex\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.fujixerox.art4\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.fujixerox.ddd\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ddd\"]\n  },\n  \"application/vnd.fujixerox.docuworks\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"xdw\"]\n  },\n  \"application/vnd.fujixerox.docuworks.binder\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"xbd\"]\n  },\n  \"application/vnd.fujixerox.docuworks.container\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.fujixerox.hbpl\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.fut-misnet\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.futoin+cbor\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.futoin+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.fuzzysheet\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"fzs\"]\n  },\n  \"application/vnd.genomatix.tuxedo\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"txd\"]\n  },\n  \"application/vnd.gentics.grd+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.geo+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.geocube+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.geogebra.file\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ggb\"]\n  },\n  \"application/vnd.geogebra.slides\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.geogebra.tool\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ggt\"]\n  },\n  \"application/vnd.geometry-explorer\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"gex\",\"gre\"]\n  },\n  \"application/vnd.geonext\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"gxt\"]\n  },\n  \"application/vnd.geoplan\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"g2w\"]\n  },\n  \"application/vnd.geospace\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"g3w\"]\n  },\n  \"application/vnd.gerber\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.globalplatform.card-content-mgt\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.globalplatform.card-content-mgt-response\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.gmx\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"gmx\"]\n  },\n  \"application/vnd.google-apps.document\": {\n    \"compressible\": false,\n    \"extensions\": [\"gdoc\"]\n  },\n  \"application/vnd.google-apps.presentation\": {\n    \"compressible\": false,\n    \"extensions\": [\"gslides\"]\n  },\n  \"application/vnd.google-apps.spreadsheet\": {\n    \"compressible\": false,\n    \"extensions\": [\"gsheet\"]\n  },\n  \"application/vnd.google-earth.kml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"kml\"]\n  },\n  \"application/vnd.google-earth.kmz\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"kmz\"]\n  },\n  \"application/vnd.gov.sk.e-form+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.gov.sk.e-form+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"application/vnd.gov.sk.xmldatacontainer+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.grafeq\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"gqf\",\"gqs\"]\n  },\n  \"application/vnd.gridmp\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.groove-account\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"gac\"]\n  },\n  \"application/vnd.groove-help\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ghf\"]\n  },\n  \"application/vnd.groove-identity-message\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"gim\"]\n  },\n  \"application/vnd.groove-injector\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"grv\"]\n  },\n  \"application/vnd.groove-tool-message\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"gtm\"]\n  },\n  \"application/vnd.groove-tool-template\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"tpl\"]\n  },\n  \"application/vnd.groove-vcard\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"vcg\"]\n  },\n  \"application/vnd.hal+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.hal+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"hal\"]\n  },\n  \"application/vnd.handheld-entertainment+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"zmm\"]\n  },\n  \"application/vnd.hbci\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"hbci\"]\n  },\n  \"application/vnd.hc+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.hcl-bireports\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.hdt\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.heroku+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.hhe.lesson-player\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"les\"]\n  },\n  \"application/vnd.hl7cda+xml\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true\n  },\n  \"application/vnd.hl7v2+xml\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true\n  },\n  \"application/vnd.hp-hpgl\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"hpgl\"]\n  },\n  \"application/vnd.hp-hpid\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"hpid\"]\n  },\n  \"application/vnd.hp-hps\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"hps\"]\n  },\n  \"application/vnd.hp-jlyt\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"jlt\"]\n  },\n  \"application/vnd.hp-pcl\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"pcl\"]\n  },\n  \"application/vnd.hp-pclxl\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"pclxl\"]\n  },\n  \"application/vnd.httphone\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.hydrostatix.sof-data\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"sfd-hdstx\"]\n  },\n  \"application/vnd.hyper+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.hyper-item+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.hyperdrive+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.hzn-3d-crossword\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ibm.afplinedata\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ibm.electronic-media\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ibm.minipay\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mpy\"]\n  },\n  \"application/vnd.ibm.modcap\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"afp\",\"listafp\",\"list3820\"]\n  },\n  \"application/vnd.ibm.rights-management\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"irm\"]\n  },\n  \"application/vnd.ibm.secure-container\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"sc\"]\n  },\n  \"application/vnd.iccprofile\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"icc\",\"icm\"]\n  },\n  \"application/vnd.ieee.1905\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.igloader\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"igl\"]\n  },\n  \"application/vnd.imagemeter.folder+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"application/vnd.imagemeter.image+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"application/vnd.immervision-ivp\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ivp\"]\n  },\n  \"application/vnd.immervision-ivu\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ivu\"]\n  },\n  \"application/vnd.ims.imsccv1p1\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ims.imsccv1p2\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ims.imsccv1p3\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ims.lis.v2.result+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.ims.lti.v2.toolconsumerprofile+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.ims.lti.v2.toolproxy+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.ims.lti.v2.toolproxy.id+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.ims.lti.v2.toolsettings+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.ims.lti.v2.toolsettings.simple+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.informedcontrol.rms+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.informix-visionary\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.infotech.project\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.infotech.project+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.innopath.wamp.notification\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.insors.igm\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"igm\"]\n  },\n  \"application/vnd.intercon.formnet\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"xpw\",\"xpx\"]\n  },\n  \"application/vnd.intergeo\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"i2g\"]\n  },\n  \"application/vnd.intertrust.digibox\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.intertrust.nncp\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.intu.qbo\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"qbo\"]\n  },\n  \"application/vnd.intu.qfx\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"qfx\"]\n  },\n  \"application/vnd.iptc.g2.catalogitem+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.iptc.g2.conceptitem+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.iptc.g2.knowledgeitem+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.iptc.g2.newsitem+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.iptc.g2.newsmessage+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.iptc.g2.packageitem+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.iptc.g2.planningitem+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.ipunplugged.rcprofile\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"rcprofile\"]\n  },\n  \"application/vnd.irepository.package+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"irp\"]\n  },\n  \"application/vnd.is-xpr\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"xpr\"]\n  },\n  \"application/vnd.isac.fcs\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"fcs\"]\n  },\n  \"application/vnd.iso11783-10+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"application/vnd.jam\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"jam\"]\n  },\n  \"application/vnd.japannet-directory-service\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.japannet-jpnstore-wakeup\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.japannet-payment-wakeup\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.japannet-registration\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.japannet-registration-wakeup\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.japannet-setstore-wakeup\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.japannet-verification\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.japannet-verification-wakeup\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.jcp.javame.midlet-rms\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"rms\"]\n  },\n  \"application/vnd.jisp\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"jisp\"]\n  },\n  \"application/vnd.joost.joda-archive\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"joda\"]\n  },\n  \"application/vnd.jsk.isdn-ngn\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.kahootz\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ktz\",\"ktr\"]\n  },\n  \"application/vnd.kde.karbon\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"karbon\"]\n  },\n  \"application/vnd.kde.kchart\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"chrt\"]\n  },\n  \"application/vnd.kde.kformula\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"kfo\"]\n  },\n  \"application/vnd.kde.kivio\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"flw\"]\n  },\n  \"application/vnd.kde.kontour\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"kon\"]\n  },\n  \"application/vnd.kde.kpresenter\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"kpr\",\"kpt\"]\n  },\n  \"application/vnd.kde.kspread\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ksp\"]\n  },\n  \"application/vnd.kde.kword\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"kwd\",\"kwt\"]\n  },\n  \"application/vnd.kenameaapp\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"htke\"]\n  },\n  \"application/vnd.kidspiration\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"kia\"]\n  },\n  \"application/vnd.kinar\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"kne\",\"knp\"]\n  },\n  \"application/vnd.koan\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"skp\",\"skd\",\"skt\",\"skm\"]\n  },\n  \"application/vnd.kodak-descriptor\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"sse\"]\n  },\n  \"application/vnd.las\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.las.las+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.las.las+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"lasxml\"]\n  },\n  \"application/vnd.laszip\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.leap+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.liberty-request+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.llamagraphics.life-balance.desktop\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"lbd\"]\n  },\n  \"application/vnd.llamagraphics.life-balance.exchange+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"lbe\"]\n  },\n  \"application/vnd.logipipe.circuit+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"application/vnd.loom\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.lotus-1-2-3\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"123\"]\n  },\n  \"application/vnd.lotus-approach\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"apr\"]\n  },\n  \"application/vnd.lotus-freelance\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"pre\"]\n  },\n  \"application/vnd.lotus-notes\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"nsf\"]\n  },\n  \"application/vnd.lotus-organizer\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"org\"]\n  },\n  \"application/vnd.lotus-screencam\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"scm\"]\n  },\n  \"application/vnd.lotus-wordpro\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"lwp\"]\n  },\n  \"application/vnd.macports.portpkg\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"portpkg\"]\n  },\n  \"application/vnd.mapbox-vector-tile\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mvt\"]\n  },\n  \"application/vnd.marlin.drm.actiontoken+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.marlin.drm.conftoken+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.marlin.drm.license+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.marlin.drm.mdcf\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.mason+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.maxar.archive.3tz+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"application/vnd.maxmind.maxmind-db\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.mcd\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mcd\"]\n  },\n  \"application/vnd.medcalcdata\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mc1\"]\n  },\n  \"application/vnd.mediastation.cdkey\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"cdkey\"]\n  },\n  \"application/vnd.meridian-slingshot\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.mfer\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mwf\"]\n  },\n  \"application/vnd.mfmp\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mfm\"]\n  },\n  \"application/vnd.micro+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.micrografx.flo\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"flo\"]\n  },\n  \"application/vnd.micrografx.igx\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"igx\"]\n  },\n  \"application/vnd.microsoft.portable-executable\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.microsoft.windows.thumbnail-cache\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.miele+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.mif\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mif\"]\n  },\n  \"application/vnd.minisoft-hp3000-save\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.mitsubishi.misty-guard.trustweb\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.mobius.daf\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"daf\"]\n  },\n  \"application/vnd.mobius.dis\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"dis\"]\n  },\n  \"application/vnd.mobius.mbk\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mbk\"]\n  },\n  \"application/vnd.mobius.mqy\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mqy\"]\n  },\n  \"application/vnd.mobius.msl\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"msl\"]\n  },\n  \"application/vnd.mobius.plc\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"plc\"]\n  },\n  \"application/vnd.mobius.txf\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"txf\"]\n  },\n  \"application/vnd.mophun.application\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mpn\"]\n  },\n  \"application/vnd.mophun.certificate\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mpc\"]\n  },\n  \"application/vnd.motorola.flexsuite\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.motorola.flexsuite.adsi\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.motorola.flexsuite.fis\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.motorola.flexsuite.gotap\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.motorola.flexsuite.kmr\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.motorola.flexsuite.ttc\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.motorola.flexsuite.wem\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.motorola.iprm\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.mozilla.xul+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"xul\"]\n  },\n  \"application/vnd.ms-3mfdocument\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ms-artgalry\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"cil\"]\n  },\n  \"application/vnd.ms-asf\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ms-cab-compressed\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"cab\"]\n  },\n  \"application/vnd.ms-color.iccprofile\": {\n    \"source\": \"apache\"\n  },\n  \"application/vnd.ms-excel\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"xls\",\"xlm\",\"xla\",\"xlc\",\"xlt\",\"xlw\"]\n  },\n  \"application/vnd.ms-excel.addin.macroenabled.12\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"xlam\"]\n  },\n  \"application/vnd.ms-excel.sheet.binary.macroenabled.12\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"xlsb\"]\n  },\n  \"application/vnd.ms-excel.sheet.macroenabled.12\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"xlsm\"]\n  },\n  \"application/vnd.ms-excel.template.macroenabled.12\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"xltm\"]\n  },\n  \"application/vnd.ms-fontobject\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"eot\"]\n  },\n  \"application/vnd.ms-htmlhelp\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"chm\"]\n  },\n  \"application/vnd.ms-ims\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ims\"]\n  },\n  \"application/vnd.ms-lrm\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"lrm\"]\n  },\n  \"application/vnd.ms-office.activex+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.ms-officetheme\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"thmx\"]\n  },\n  \"application/vnd.ms-opentype\": {\n    \"source\": \"apache\",\n    \"compressible\": true\n  },\n  \"application/vnd.ms-outlook\": {\n    \"compressible\": false,\n    \"extensions\": [\"msg\"]\n  },\n  \"application/vnd.ms-package.obfuscated-opentype\": {\n    \"source\": \"apache\"\n  },\n  \"application/vnd.ms-pki.seccat\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"cat\"]\n  },\n  \"application/vnd.ms-pki.stl\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"stl\"]\n  },\n  \"application/vnd.ms-playready.initiator+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.ms-powerpoint\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"ppt\",\"pps\",\"pot\"]\n  },\n  \"application/vnd.ms-powerpoint.addin.macroenabled.12\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ppam\"]\n  },\n  \"application/vnd.ms-powerpoint.presentation.macroenabled.12\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"pptm\"]\n  },\n  \"application/vnd.ms-powerpoint.slide.macroenabled.12\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"sldm\"]\n  },\n  \"application/vnd.ms-powerpoint.slideshow.macroenabled.12\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ppsm\"]\n  },\n  \"application/vnd.ms-powerpoint.template.macroenabled.12\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"potm\"]\n  },\n  \"application/vnd.ms-printdevicecapabilities+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.ms-printing.printticket+xml\": {\n    \"source\": \"apache\",\n    \"compressible\": true\n  },\n  \"application/vnd.ms-printschematicket+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.ms-project\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mpp\",\"mpt\"]\n  },\n  \"application/vnd.ms-tnef\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ms-windows.devicepairing\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ms-windows.nwprinting.oob\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ms-windows.printerpairing\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ms-windows.wsd.oob\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ms-wmdrm.lic-chlg-req\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ms-wmdrm.lic-resp\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ms-wmdrm.meter-chlg-req\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ms-wmdrm.meter-resp\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ms-word.document.macroenabled.12\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"docm\"]\n  },\n  \"application/vnd.ms-word.template.macroenabled.12\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"dotm\"]\n  },\n  \"application/vnd.ms-works\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"wps\",\"wks\",\"wcm\",\"wdb\"]\n  },\n  \"application/vnd.ms-wpl\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"wpl\"]\n  },\n  \"application/vnd.ms-xpsdocument\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"xps\"]\n  },\n  \"application/vnd.msa-disk-image\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.mseq\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mseq\"]\n  },\n  \"application/vnd.msign\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.multiad.creator\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.multiad.creator.cif\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.music-niff\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.musician\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mus\"]\n  },\n  \"application/vnd.muvee.style\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"msty\"]\n  },\n  \"application/vnd.mynfc\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"taglet\"]\n  },\n  \"application/vnd.nacamar.ybrid+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.ncd.control\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ncd.reference\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.nearst.inv+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.nebumind.line\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.nervana\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.netfpx\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.neurolanguage.nlu\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"nlu\"]\n  },\n  \"application/vnd.nimn\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.nintendo.nitro.rom\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.nintendo.snes.rom\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.nitf\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ntf\",\"nitf\"]\n  },\n  \"application/vnd.noblenet-directory\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"nnd\"]\n  },\n  \"application/vnd.noblenet-sealer\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"nns\"]\n  },\n  \"application/vnd.noblenet-web\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"nnw\"]\n  },\n  \"application/vnd.nokia.catalogs\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.nokia.conml+wbxml\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.nokia.conml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.nokia.iptv.config+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.nokia.isds-radio-presets\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.nokia.landmark+wbxml\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.nokia.landmark+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.nokia.landmarkcollection+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.nokia.n-gage.ac+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"ac\"]\n  },\n  \"application/vnd.nokia.n-gage.data\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ngdat\"]\n  },\n  \"application/vnd.nokia.n-gage.symbian.install\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"n-gage\"]\n  },\n  \"application/vnd.nokia.ncd\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.nokia.pcd+wbxml\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.nokia.pcd+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.nokia.radio-preset\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"rpst\"]\n  },\n  \"application/vnd.nokia.radio-presets\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"rpss\"]\n  },\n  \"application/vnd.novadigm.edm\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"edm\"]\n  },\n  \"application/vnd.novadigm.edx\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"edx\"]\n  },\n  \"application/vnd.novadigm.ext\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ext\"]\n  },\n  \"application/vnd.ntt-local.content-share\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ntt-local.file-transfer\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ntt-local.ogw_remote-access\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ntt-local.sip-ta_remote\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ntt-local.sip-ta_tcp_stream\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.oasis.opendocument.chart\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"odc\"]\n  },\n  \"application/vnd.oasis.opendocument.chart-template\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"otc\"]\n  },\n  \"application/vnd.oasis.opendocument.database\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"odb\"]\n  },\n  \"application/vnd.oasis.opendocument.formula\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"odf\"]\n  },\n  \"application/vnd.oasis.opendocument.formula-template\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"odft\"]\n  },\n  \"application/vnd.oasis.opendocument.graphics\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"odg\"]\n  },\n  \"application/vnd.oasis.opendocument.graphics-template\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"otg\"]\n  },\n  \"application/vnd.oasis.opendocument.image\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"odi\"]\n  },\n  \"application/vnd.oasis.opendocument.image-template\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"oti\"]\n  },\n  \"application/vnd.oasis.opendocument.presentation\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"odp\"]\n  },\n  \"application/vnd.oasis.opendocument.presentation-template\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"otp\"]\n  },\n  \"application/vnd.oasis.opendocument.spreadsheet\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"ods\"]\n  },\n  \"application/vnd.oasis.opendocument.spreadsheet-template\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ots\"]\n  },\n  \"application/vnd.oasis.opendocument.text\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"odt\"]\n  },\n  \"application/vnd.oasis.opendocument.text-master\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"odm\"]\n  },\n  \"application/vnd.oasis.opendocument.text-template\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ott\"]\n  },\n  \"application/vnd.oasis.opendocument.text-web\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"oth\"]\n  },\n  \"application/vnd.obn\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ocf+cbor\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.oci.image.manifest.v1+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oftn.l10n+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oipf.contentaccessdownload+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oipf.contentaccessstreaming+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oipf.cspg-hexbinary\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.oipf.dae.svg+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oipf.dae.xhtml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oipf.mippvcontrolmessage+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oipf.pae.gem\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.oipf.spdiscovery+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oipf.spdlist+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oipf.ueprofile+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oipf.userprofile+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.olpc-sugar\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"xo\"]\n  },\n  \"application/vnd.oma-scws-config\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.oma-scws-http-request\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.oma-scws-http-response\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.oma.bcast.associated-procedure-parameter+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oma.bcast.drm-trigger+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oma.bcast.imd+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oma.bcast.ltkm\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.oma.bcast.notification+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oma.bcast.provisioningtrigger\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.oma.bcast.sgboot\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.oma.bcast.sgdd+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oma.bcast.sgdu\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.oma.bcast.simple-symbol-container\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.oma.bcast.smartcard-trigger+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oma.bcast.sprov+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oma.bcast.stkm\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.oma.cab-address-book+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oma.cab-feature-handler+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oma.cab-pcc+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oma.cab-subs-invite+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oma.cab-user-prefs+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oma.dcd\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.oma.dcdc\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.oma.dd2+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"dd2\"]\n  },\n  \"application/vnd.oma.drm.risd+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oma.group-usage-list+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oma.lwm2m+cbor\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.oma.lwm2m+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oma.lwm2m+tlv\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.oma.pal+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oma.poc.detailed-progress-report+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oma.poc.final-report+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oma.poc.groups+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oma.poc.invocation-descriptor+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oma.poc.optimized-progress-report+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oma.push\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.oma.scidm.messages+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oma.xcap-directory+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.omads-email+xml\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true\n  },\n  \"application/vnd.omads-file+xml\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true\n  },\n  \"application/vnd.omads-folder+xml\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true\n  },\n  \"application/vnd.omaloc-supl-init\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.onepager\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.onepagertamp\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.onepagertamx\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.onepagertat\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.onepagertatp\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.onepagertatx\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.openblox.game+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"obgx\"]\n  },\n  \"application/vnd.openblox.game-binary\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.openeye.oeb\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.openofficeorg.extension\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"oxt\"]\n  },\n  \"application/vnd.openstreetmap.data+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"osm\"]\n  },\n  \"application/vnd.opentimestamps.ots\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.openxmlformats-officedocument.custom-properties+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.customxmlproperties+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.drawing+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.drawingml.chart+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.extended-properties+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.presentationml.comments+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.presentationml.presentation\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"pptx\"]\n  },\n  \"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.presentationml.slide\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"sldx\"]\n  },\n  \"application/vnd.openxmlformats-officedocument.presentationml.slide+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.presentationml.slideshow\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ppsx\"]\n  },\n  \"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.presentationml.tags+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.presentationml.template\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"potx\"]\n  },\n  \"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"xlsx\"]\n  },\n  \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.spreadsheetml.template\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"xltx\"]\n  },\n  \"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.theme+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.themeoverride+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.vmldrawing\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"docx\"]\n  },\n  \"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.wordprocessingml.template\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"dotx\"]\n  },\n  \"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-package.core-properties+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.openxmlformats-package.relationships+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oracle.resource+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.orange.indata\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.osa.netdeploy\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.osgeo.mapguide.package\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mgp\"]\n  },\n  \"application/vnd.osgi.bundle\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.osgi.dp\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"dp\"]\n  },\n  \"application/vnd.osgi.subsystem\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"esa\"]\n  },\n  \"application/vnd.otps.ct-kip+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.oxli.countgraph\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.pagerduty+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.palm\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"pdb\",\"pqa\",\"oprc\"]\n  },\n  \"application/vnd.panoply\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.paos.xml\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.patentdive\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.patientecommsdoc\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.pawaafile\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"paw\"]\n  },\n  \"application/vnd.pcos\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.pg.format\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"str\"]\n  },\n  \"application/vnd.pg.osasli\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ei6\"]\n  },\n  \"application/vnd.piaccess.application-licence\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.picsel\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"efif\"]\n  },\n  \"application/vnd.pmi.widget\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"wg\"]\n  },\n  \"application/vnd.poc.group-advertisement+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.pocketlearn\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"plf\"]\n  },\n  \"application/vnd.powerbuilder6\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"pbd\"]\n  },\n  \"application/vnd.powerbuilder6-s\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.powerbuilder7\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.powerbuilder7-s\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.powerbuilder75\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.powerbuilder75-s\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.preminet\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.previewsystems.box\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"box\"]\n  },\n  \"application/vnd.proteus.magazine\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mgz\"]\n  },\n  \"application/vnd.psfs\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.publishare-delta-tree\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"qps\"]\n  },\n  \"application/vnd.pvi.ptid1\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ptid\"]\n  },\n  \"application/vnd.pwg-multiplexed\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.pwg-xhtml-print+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.qualcomm.brew-app-res\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.quarantainenet\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.quark.quarkxpress\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"qxd\",\"qxt\",\"qwd\",\"qwt\",\"qxl\",\"qxb\"]\n  },\n  \"application/vnd.quobject-quoxdocument\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.radisys.moml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.radisys.msml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.radisys.msml-audit+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.radisys.msml-audit-conf+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.radisys.msml-audit-conn+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.radisys.msml-audit-dialog+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.radisys.msml-audit-stream+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.radisys.msml-conf+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.radisys.msml-dialog+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.radisys.msml-dialog-base+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.radisys.msml-dialog-fax-detect+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.radisys.msml-dialog-fax-sendrecv+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.radisys.msml-dialog-group+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.radisys.msml-dialog-speech+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.radisys.msml-dialog-transform+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.rainstor.data\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.rapid\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.rar\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"rar\"]\n  },\n  \"application/vnd.realvnc.bed\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"bed\"]\n  },\n  \"application/vnd.recordare.musicxml\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mxl\"]\n  },\n  \"application/vnd.recordare.musicxml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"musicxml\"]\n  },\n  \"application/vnd.renlearn.rlprint\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.resilient.logic\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.restful+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.rig.cryptonote\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"cryptonote\"]\n  },\n  \"application/vnd.rim.cod\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"cod\"]\n  },\n  \"application/vnd.rn-realmedia\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"rm\"]\n  },\n  \"application/vnd.rn-realmedia-vbr\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"rmvb\"]\n  },\n  \"application/vnd.route66.link66+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"link66\"]\n  },\n  \"application/vnd.rs-274x\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ruckus.download\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.s3sms\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.sailingtracker.track\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"st\"]\n  },\n  \"application/vnd.sar\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.sbm.cid\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.sbm.mid2\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.scribus\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.sealed.3df\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.sealed.csf\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.sealed.doc\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.sealed.eml\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.sealed.mht\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.sealed.net\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.sealed.ppt\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.sealed.tiff\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.sealed.xls\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.sealedmedia.softseal.html\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.sealedmedia.softseal.pdf\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.seemail\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"see\"]\n  },\n  \"application/vnd.seis+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.sema\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"sema\"]\n  },\n  \"application/vnd.semd\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"semd\"]\n  },\n  \"application/vnd.semf\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"semf\"]\n  },\n  \"application/vnd.shade-save-file\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.shana.informed.formdata\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ifm\"]\n  },\n  \"application/vnd.shana.informed.formtemplate\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"itp\"]\n  },\n  \"application/vnd.shana.informed.interchange\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"iif\"]\n  },\n  \"application/vnd.shana.informed.package\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ipk\"]\n  },\n  \"application/vnd.shootproof+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.shopkick+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.shp\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.shx\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.sigrok.session\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.simtech-mindmapper\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"twd\",\"twds\"]\n  },\n  \"application/vnd.siren+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.smaf\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mmf\"]\n  },\n  \"application/vnd.smart.notebook\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.smart.teacher\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"teacher\"]\n  },\n  \"application/vnd.snesdev-page-table\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.software602.filler.form+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"fo\"]\n  },\n  \"application/vnd.software602.filler.form-xml-zip\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.solent.sdkm+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"sdkm\",\"sdkd\"]\n  },\n  \"application/vnd.spotfire.dxp\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"dxp\"]\n  },\n  \"application/vnd.spotfire.sfs\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"sfs\"]\n  },\n  \"application/vnd.sqlite3\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.sss-cod\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.sss-dtf\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.sss-ntf\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.stardivision.calc\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"sdc\"]\n  },\n  \"application/vnd.stardivision.draw\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"sda\"]\n  },\n  \"application/vnd.stardivision.impress\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"sdd\"]\n  },\n  \"application/vnd.stardivision.math\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"smf\"]\n  },\n  \"application/vnd.stardivision.writer\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"sdw\",\"vor\"]\n  },\n  \"application/vnd.stardivision.writer-global\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"sgl\"]\n  },\n  \"application/vnd.stepmania.package\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"smzip\"]\n  },\n  \"application/vnd.stepmania.stepchart\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"sm\"]\n  },\n  \"application/vnd.street-stream\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.sun.wadl+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"wadl\"]\n  },\n  \"application/vnd.sun.xml.calc\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"sxc\"]\n  },\n  \"application/vnd.sun.xml.calc.template\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"stc\"]\n  },\n  \"application/vnd.sun.xml.draw\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"sxd\"]\n  },\n  \"application/vnd.sun.xml.draw.template\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"std\"]\n  },\n  \"application/vnd.sun.xml.impress\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"sxi\"]\n  },\n  \"application/vnd.sun.xml.impress.template\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"sti\"]\n  },\n  \"application/vnd.sun.xml.math\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"sxm\"]\n  },\n  \"application/vnd.sun.xml.writer\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"sxw\"]\n  },\n  \"application/vnd.sun.xml.writer.global\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"sxg\"]\n  },\n  \"application/vnd.sun.xml.writer.template\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"stw\"]\n  },\n  \"application/vnd.sus-calendar\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"sus\",\"susp\"]\n  },\n  \"application/vnd.svd\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"svd\"]\n  },\n  \"application/vnd.swiftview-ics\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.sycle+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.syft+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.symbian.install\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"sis\",\"sisx\"]\n  },\n  \"application/vnd.syncml+xml\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true,\n    \"extensions\": [\"xsm\"]\n  },\n  \"application/vnd.syncml.dm+wbxml\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"extensions\": [\"bdm\"]\n  },\n  \"application/vnd.syncml.dm+xml\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true,\n    \"extensions\": [\"xdm\"]\n  },\n  \"application/vnd.syncml.dm.notification\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.syncml.dmddf+wbxml\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.syncml.dmddf+xml\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true,\n    \"extensions\": [\"ddf\"]\n  },\n  \"application/vnd.syncml.dmtnds+wbxml\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.syncml.dmtnds+xml\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true\n  },\n  \"application/vnd.syncml.ds.notification\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.tableschema+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.tao.intent-module-archive\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"tao\"]\n  },\n  \"application/vnd.tcpdump.pcap\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"pcap\",\"cap\",\"dmp\"]\n  },\n  \"application/vnd.think-cell.ppttc+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.tmd.mediaflex.api+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.tml\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.tmobile-livetv\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"tmo\"]\n  },\n  \"application/vnd.tri.onesource\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.trid.tpt\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"tpt\"]\n  },\n  \"application/vnd.triscape.mxs\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mxs\"]\n  },\n  \"application/vnd.trueapp\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"tra\"]\n  },\n  \"application/vnd.truedoc\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ubisoft.webplayer\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ufdl\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ufd\",\"ufdl\"]\n  },\n  \"application/vnd.uiq.theme\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"utz\"]\n  },\n  \"application/vnd.umajin\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"umj\"]\n  },\n  \"application/vnd.unity\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"unityweb\"]\n  },\n  \"application/vnd.uoml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"uoml\"]\n  },\n  \"application/vnd.uplanet.alert\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.uplanet.alert-wbxml\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.uplanet.bearer-choice\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.uplanet.bearer-choice-wbxml\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.uplanet.cacheop\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.uplanet.cacheop-wbxml\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.uplanet.channel\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.uplanet.channel-wbxml\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.uplanet.list\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.uplanet.list-wbxml\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.uplanet.listcmd\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.uplanet.listcmd-wbxml\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.uplanet.signal\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.uri-map\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.valve.source.material\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.vcx\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"vcx\"]\n  },\n  \"application/vnd.vd-study\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.vectorworks\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.vel+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.verimatrix.vcas\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.veritone.aion+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.veryant.thin\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.ves.encrypted\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.vidsoft.vidconference\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.visio\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"vsd\",\"vst\",\"vss\",\"vsw\"]\n  },\n  \"application/vnd.visionary\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"vis\"]\n  },\n  \"application/vnd.vividence.scriptfile\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.vsf\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"vsf\"]\n  },\n  \"application/vnd.wap.sic\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.wap.slc\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.wap.wbxml\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"extensions\": [\"wbxml\"]\n  },\n  \"application/vnd.wap.wmlc\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"wmlc\"]\n  },\n  \"application/vnd.wap.wmlscriptc\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"wmlsc\"]\n  },\n  \"application/vnd.webturbo\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"wtb\"]\n  },\n  \"application/vnd.wfa.dpp\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.wfa.p2p\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.wfa.wsc\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.windows.devicepairing\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.wmc\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.wmf.bootstrap\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.wolfram.mathematica\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.wolfram.mathematica.package\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.wolfram.player\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"nbp\"]\n  },\n  \"application/vnd.wordperfect\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"wpd\"]\n  },\n  \"application/vnd.wqd\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"wqd\"]\n  },\n  \"application/vnd.wrq-hp3000-labelled\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.wt.stf\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"stf\"]\n  },\n  \"application/vnd.wv.csp+wbxml\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.wv.csp+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.wv.ssp+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.xacml+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.xara\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"xar\"]\n  },\n  \"application/vnd.xfdl\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"xfdl\"]\n  },\n  \"application/vnd.xfdl.webform\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.xmi+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vnd.xmpie.cpkg\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.xmpie.dpkg\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.xmpie.plan\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.xmpie.ppkg\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.xmpie.xlim\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.yamaha.hv-dic\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"hvd\"]\n  },\n  \"application/vnd.yamaha.hv-script\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"hvs\"]\n  },\n  \"application/vnd.yamaha.hv-voice\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"hvp\"]\n  },\n  \"application/vnd.yamaha.openscoreformat\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"osf\"]\n  },\n  \"application/vnd.yamaha.openscoreformat.osfpvg+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"osfpvg\"]\n  },\n  \"application/vnd.yamaha.remote-setup\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.yamaha.smaf-audio\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"saf\"]\n  },\n  \"application/vnd.yamaha.smaf-phrase\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"spf\"]\n  },\n  \"application/vnd.yamaha.through-ngn\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.yamaha.tunnel-udpencap\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.yaoweme\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.yellowriver-custom-menu\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"cmp\"]\n  },\n  \"application/vnd.youtube.yt\": {\n    \"source\": \"iana\"\n  },\n  \"application/vnd.zul\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"zir\",\"zirz\"]\n  },\n  \"application/vnd.zzazz.deck+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"zaz\"]\n  },\n  \"application/voicexml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"vxml\"]\n  },\n  \"application/voucher-cms+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/vq-rtcpxr\": {\n    \"source\": \"iana\"\n  },\n  \"application/wasm\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"wasm\"]\n  },\n  \"application/watcherinfo+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"wif\"]\n  },\n  \"application/webpush-options+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/whoispp-query\": {\n    \"source\": \"iana\"\n  },\n  \"application/whoispp-response\": {\n    \"source\": \"iana\"\n  },\n  \"application/widget\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"wgt\"]\n  },\n  \"application/winhlp\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"hlp\"]\n  },\n  \"application/wita\": {\n    \"source\": \"iana\"\n  },\n  \"application/wordperfect5.1\": {\n    \"source\": \"iana\"\n  },\n  \"application/wsdl+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"wsdl\"]\n  },\n  \"application/wspolicy+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"wspolicy\"]\n  },\n  \"application/x-7z-compressed\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"7z\"]\n  },\n  \"application/x-abiword\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"abw\"]\n  },\n  \"application/x-ace-compressed\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"ace\"]\n  },\n  \"application/x-amf\": {\n    \"source\": \"apache\"\n  },\n  \"application/x-apple-diskimage\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"dmg\"]\n  },\n  \"application/x-arj\": {\n    \"compressible\": false,\n    \"extensions\": [\"arj\"]\n  },\n  \"application/x-authorware-bin\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"aab\",\"x32\",\"u32\",\"vox\"]\n  },\n  \"application/x-authorware-map\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"aam\"]\n  },\n  \"application/x-authorware-seg\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"aas\"]\n  },\n  \"application/x-bcpio\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"bcpio\"]\n  },\n  \"application/x-bdoc\": {\n    \"compressible\": false,\n    \"extensions\": [\"bdoc\"]\n  },\n  \"application/x-bittorrent\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"torrent\"]\n  },\n  \"application/x-blorb\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"blb\",\"blorb\"]\n  },\n  \"application/x-bzip\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"bz\"]\n  },\n  \"application/x-bzip2\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"bz2\",\"boz\"]\n  },\n  \"application/x-cbr\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"cbr\",\"cba\",\"cbt\",\"cbz\",\"cb7\"]\n  },\n  \"application/x-cdlink\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"vcd\"]\n  },\n  \"application/x-cfs-compressed\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"cfs\"]\n  },\n  \"application/x-chat\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"chat\"]\n  },\n  \"application/x-chess-pgn\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"pgn\"]\n  },\n  \"application/x-chrome-extension\": {\n    \"extensions\": [\"crx\"]\n  },\n  \"application/x-cocoa\": {\n    \"source\": \"nginx\",\n    \"extensions\": [\"cco\"]\n  },\n  \"application/x-compress\": {\n    \"source\": \"apache\"\n  },\n  \"application/x-conference\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"nsc\"]\n  },\n  \"application/x-cpio\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"cpio\"]\n  },\n  \"application/x-csh\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"csh\"]\n  },\n  \"application/x-deb\": {\n    \"compressible\": false\n  },\n  \"application/x-debian-package\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"deb\",\"udeb\"]\n  },\n  \"application/x-dgc-compressed\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"dgc\"]\n  },\n  \"application/x-director\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"dir\",\"dcr\",\"dxr\",\"cst\",\"cct\",\"cxt\",\"w3d\",\"fgd\",\"swa\"]\n  },\n  \"application/x-doom\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"wad\"]\n  },\n  \"application/x-dtbncx+xml\": {\n    \"source\": \"apache\",\n    \"compressible\": true,\n    \"extensions\": [\"ncx\"]\n  },\n  \"application/x-dtbook+xml\": {\n    \"source\": \"apache\",\n    \"compressible\": true,\n    \"extensions\": [\"dtb\"]\n  },\n  \"application/x-dtbresource+xml\": {\n    \"source\": \"apache\",\n    \"compressible\": true,\n    \"extensions\": [\"res\"]\n  },\n  \"application/x-dvi\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"dvi\"]\n  },\n  \"application/x-envoy\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"evy\"]\n  },\n  \"application/x-eva\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"eva\"]\n  },\n  \"application/x-font-bdf\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"bdf\"]\n  },\n  \"application/x-font-dos\": {\n    \"source\": \"apache\"\n  },\n  \"application/x-font-framemaker\": {\n    \"source\": \"apache\"\n  },\n  \"application/x-font-ghostscript\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"gsf\"]\n  },\n  \"application/x-font-libgrx\": {\n    \"source\": \"apache\"\n  },\n  \"application/x-font-linux-psf\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"psf\"]\n  },\n  \"application/x-font-pcf\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"pcf\"]\n  },\n  \"application/x-font-snf\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"snf\"]\n  },\n  \"application/x-font-speedo\": {\n    \"source\": \"apache\"\n  },\n  \"application/x-font-sunos-news\": {\n    \"source\": \"apache\"\n  },\n  \"application/x-font-type1\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"pfa\",\"pfb\",\"pfm\",\"afm\"]\n  },\n  \"application/x-font-vfont\": {\n    \"source\": \"apache\"\n  },\n  \"application/x-freearc\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"arc\"]\n  },\n  \"application/x-futuresplash\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"spl\"]\n  },\n  \"application/x-gca-compressed\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"gca\"]\n  },\n  \"application/x-glulx\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"ulx\"]\n  },\n  \"application/x-gnumeric\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"gnumeric\"]\n  },\n  \"application/x-gramps-xml\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"gramps\"]\n  },\n  \"application/x-gtar\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"gtar\"]\n  },\n  \"application/x-gzip\": {\n    \"source\": \"apache\"\n  },\n  \"application/x-hdf\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"hdf\"]\n  },\n  \"application/x-httpd-php\": {\n    \"compressible\": true,\n    \"extensions\": [\"php\"]\n  },\n  \"application/x-install-instructions\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"install\"]\n  },\n  \"application/x-iso9660-image\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"iso\"]\n  },\n  \"application/x-iwork-keynote-sffkey\": {\n    \"extensions\": [\"key\"]\n  },\n  \"application/x-iwork-numbers-sffnumbers\": {\n    \"extensions\": [\"numbers\"]\n  },\n  \"application/x-iwork-pages-sffpages\": {\n    \"extensions\": [\"pages\"]\n  },\n  \"application/x-java-archive-diff\": {\n    \"source\": \"nginx\",\n    \"extensions\": [\"jardiff\"]\n  },\n  \"application/x-java-jnlp-file\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"jnlp\"]\n  },\n  \"application/x-javascript\": {\n    \"compressible\": true\n  },\n  \"application/x-keepass2\": {\n    \"extensions\": [\"kdbx\"]\n  },\n  \"application/x-latex\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"latex\"]\n  },\n  \"application/x-lua-bytecode\": {\n    \"extensions\": [\"luac\"]\n  },\n  \"application/x-lzh-compressed\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"lzh\",\"lha\"]\n  },\n  \"application/x-makeself\": {\n    \"source\": \"nginx\",\n    \"extensions\": [\"run\"]\n  },\n  \"application/x-mie\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"mie\"]\n  },\n  \"application/x-mobipocket-ebook\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"prc\",\"mobi\"]\n  },\n  \"application/x-mpegurl\": {\n    \"compressible\": false\n  },\n  \"application/x-ms-application\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"application\"]\n  },\n  \"application/x-ms-shortcut\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"lnk\"]\n  },\n  \"application/x-ms-wmd\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"wmd\"]\n  },\n  \"application/x-ms-wmz\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"wmz\"]\n  },\n  \"application/x-ms-xbap\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"xbap\"]\n  },\n  \"application/x-msaccess\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"mdb\"]\n  },\n  \"application/x-msbinder\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"obd\"]\n  },\n  \"application/x-mscardfile\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"crd\"]\n  },\n  \"application/x-msclip\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"clp\"]\n  },\n  \"application/x-msdos-program\": {\n    \"extensions\": [\"exe\"]\n  },\n  \"application/x-msdownload\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"exe\",\"dll\",\"com\",\"bat\",\"msi\"]\n  },\n  \"application/x-msmediaview\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"mvb\",\"m13\",\"m14\"]\n  },\n  \"application/x-msmetafile\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"wmf\",\"wmz\",\"emf\",\"emz\"]\n  },\n  \"application/x-msmoney\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"mny\"]\n  },\n  \"application/x-mspublisher\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"pub\"]\n  },\n  \"application/x-msschedule\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"scd\"]\n  },\n  \"application/x-msterminal\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"trm\"]\n  },\n  \"application/x-mswrite\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"wri\"]\n  },\n  \"application/x-netcdf\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"nc\",\"cdf\"]\n  },\n  \"application/x-ns-proxy-autoconfig\": {\n    \"compressible\": true,\n    \"extensions\": [\"pac\"]\n  },\n  \"application/x-nzb\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"nzb\"]\n  },\n  \"application/x-perl\": {\n    \"source\": \"nginx\",\n    \"extensions\": [\"pl\",\"pm\"]\n  },\n  \"application/x-pilot\": {\n    \"source\": \"nginx\",\n    \"extensions\": [\"prc\",\"pdb\"]\n  },\n  \"application/x-pkcs12\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"p12\",\"pfx\"]\n  },\n  \"application/x-pkcs7-certificates\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"p7b\",\"spc\"]\n  },\n  \"application/x-pkcs7-certreqresp\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"p7r\"]\n  },\n  \"application/x-pki-message\": {\n    \"source\": \"iana\"\n  },\n  \"application/x-rar-compressed\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"rar\"]\n  },\n  \"application/x-redhat-package-manager\": {\n    \"source\": \"nginx\",\n    \"extensions\": [\"rpm\"]\n  },\n  \"application/x-research-info-systems\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"ris\"]\n  },\n  \"application/x-sea\": {\n    \"source\": \"nginx\",\n    \"extensions\": [\"sea\"]\n  },\n  \"application/x-sh\": {\n    \"source\": \"apache\",\n    \"compressible\": true,\n    \"extensions\": [\"sh\"]\n  },\n  \"application/x-shar\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"shar\"]\n  },\n  \"application/x-shockwave-flash\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"swf\"]\n  },\n  \"application/x-silverlight-app\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"xap\"]\n  },\n  \"application/x-sql\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"sql\"]\n  },\n  \"application/x-stuffit\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"sit\"]\n  },\n  \"application/x-stuffitx\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"sitx\"]\n  },\n  \"application/x-subrip\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"srt\"]\n  },\n  \"application/x-sv4cpio\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"sv4cpio\"]\n  },\n  \"application/x-sv4crc\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"sv4crc\"]\n  },\n  \"application/x-t3vm-image\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"t3\"]\n  },\n  \"application/x-tads\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"gam\"]\n  },\n  \"application/x-tar\": {\n    \"source\": \"apache\",\n    \"compressible\": true,\n    \"extensions\": [\"tar\"]\n  },\n  \"application/x-tcl\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"tcl\",\"tk\"]\n  },\n  \"application/x-tex\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"tex\"]\n  },\n  \"application/x-tex-tfm\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"tfm\"]\n  },\n  \"application/x-texinfo\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"texinfo\",\"texi\"]\n  },\n  \"application/x-tgif\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"obj\"]\n  },\n  \"application/x-ustar\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"ustar\"]\n  },\n  \"application/x-virtualbox-hdd\": {\n    \"compressible\": true,\n    \"extensions\": [\"hdd\"]\n  },\n  \"application/x-virtualbox-ova\": {\n    \"compressible\": true,\n    \"extensions\": [\"ova\"]\n  },\n  \"application/x-virtualbox-ovf\": {\n    \"compressible\": true,\n    \"extensions\": [\"ovf\"]\n  },\n  \"application/x-virtualbox-vbox\": {\n    \"compressible\": true,\n    \"extensions\": [\"vbox\"]\n  },\n  \"application/x-virtualbox-vbox-extpack\": {\n    \"compressible\": false,\n    \"extensions\": [\"vbox-extpack\"]\n  },\n  \"application/x-virtualbox-vdi\": {\n    \"compressible\": true,\n    \"extensions\": [\"vdi\"]\n  },\n  \"application/x-virtualbox-vhd\": {\n    \"compressible\": true,\n    \"extensions\": [\"vhd\"]\n  },\n  \"application/x-virtualbox-vmdk\": {\n    \"compressible\": true,\n    \"extensions\": [\"vmdk\"]\n  },\n  \"application/x-wais-source\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"src\"]\n  },\n  \"application/x-web-app-manifest+json\": {\n    \"compressible\": true,\n    \"extensions\": [\"webapp\"]\n  },\n  \"application/x-www-form-urlencoded\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/x-x509-ca-cert\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"der\",\"crt\",\"pem\"]\n  },\n  \"application/x-x509-ca-ra-cert\": {\n    \"source\": \"iana\"\n  },\n  \"application/x-x509-next-ca-cert\": {\n    \"source\": \"iana\"\n  },\n  \"application/x-xfig\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"fig\"]\n  },\n  \"application/x-xliff+xml\": {\n    \"source\": \"apache\",\n    \"compressible\": true,\n    \"extensions\": [\"xlf\"]\n  },\n  \"application/x-xpinstall\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"xpi\"]\n  },\n  \"application/x-xz\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"xz\"]\n  },\n  \"application/x-zmachine\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"z1\",\"z2\",\"z3\",\"z4\",\"z5\",\"z6\",\"z7\",\"z8\"]\n  },\n  \"application/x400-bp\": {\n    \"source\": \"iana\"\n  },\n  \"application/xacml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/xaml+xml\": {\n    \"source\": \"apache\",\n    \"compressible\": true,\n    \"extensions\": [\"xaml\"]\n  },\n  \"application/xcap-att+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"xav\"]\n  },\n  \"application/xcap-caps+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"xca\"]\n  },\n  \"application/xcap-diff+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"xdf\"]\n  },\n  \"application/xcap-el+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"xel\"]\n  },\n  \"application/xcap-error+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/xcap-ns+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"xns\"]\n  },\n  \"application/xcon-conference-info+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/xcon-conference-info-diff+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/xenc+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"xenc\"]\n  },\n  \"application/xhtml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"xhtml\",\"xht\"]\n  },\n  \"application/xhtml-voice+xml\": {\n    \"source\": \"apache\",\n    \"compressible\": true\n  },\n  \"application/xliff+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"xlf\"]\n  },\n  \"application/xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"xml\",\"xsl\",\"xsd\",\"rng\"]\n  },\n  \"application/xml-dtd\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"dtd\"]\n  },\n  \"application/xml-external-parsed-entity\": {\n    \"source\": \"iana\"\n  },\n  \"application/xml-patch+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/xmpp+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/xop+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"xop\"]\n  },\n  \"application/xproc+xml\": {\n    \"source\": \"apache\",\n    \"compressible\": true,\n    \"extensions\": [\"xpl\"]\n  },\n  \"application/xslt+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"xsl\",\"xslt\"]\n  },\n  \"application/xspf+xml\": {\n    \"source\": \"apache\",\n    \"compressible\": true,\n    \"extensions\": [\"xspf\"]\n  },\n  \"application/xv+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"mxml\",\"xhvml\",\"xvml\",\"xvm\"]\n  },\n  \"application/yang\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"yang\"]\n  },\n  \"application/yang-data+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/yang-data+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/yang-patch+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/yang-patch+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"application/yin+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"yin\"]\n  },\n  \"application/zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"zip\"]\n  },\n  \"application/zlib\": {\n    \"source\": \"iana\"\n  },\n  \"application/zstd\": {\n    \"source\": \"iana\"\n  },\n  \"audio/1d-interleaved-parityfec\": {\n    \"source\": \"iana\"\n  },\n  \"audio/32kadpcm\": {\n    \"source\": \"iana\"\n  },\n  \"audio/3gpp\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"3gpp\"]\n  },\n  \"audio/3gpp2\": {\n    \"source\": \"iana\"\n  },\n  \"audio/aac\": {\n    \"source\": \"iana\"\n  },\n  \"audio/ac3\": {\n    \"source\": \"iana\"\n  },\n  \"audio/adpcm\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"adp\"]\n  },\n  \"audio/amr\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"amr\"]\n  },\n  \"audio/amr-wb\": {\n    \"source\": \"iana\"\n  },\n  \"audio/amr-wb+\": {\n    \"source\": \"iana\"\n  },\n  \"audio/aptx\": {\n    \"source\": \"iana\"\n  },\n  \"audio/asc\": {\n    \"source\": \"iana\"\n  },\n  \"audio/atrac-advanced-lossless\": {\n    \"source\": \"iana\"\n  },\n  \"audio/atrac-x\": {\n    \"source\": \"iana\"\n  },\n  \"audio/atrac3\": {\n    \"source\": \"iana\"\n  },\n  \"audio/basic\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"au\",\"snd\"]\n  },\n  \"audio/bv16\": {\n    \"source\": \"iana\"\n  },\n  \"audio/bv32\": {\n    \"source\": \"iana\"\n  },\n  \"audio/clearmode\": {\n    \"source\": \"iana\"\n  },\n  \"audio/cn\": {\n    \"source\": \"iana\"\n  },\n  \"audio/dat12\": {\n    \"source\": \"iana\"\n  },\n  \"audio/dls\": {\n    \"source\": \"iana\"\n  },\n  \"audio/dsr-es201108\": {\n    \"source\": \"iana\"\n  },\n  \"audio/dsr-es202050\": {\n    \"source\": \"iana\"\n  },\n  \"audio/dsr-es202211\": {\n    \"source\": \"iana\"\n  },\n  \"audio/dsr-es202212\": {\n    \"source\": \"iana\"\n  },\n  \"audio/dv\": {\n    \"source\": \"iana\"\n  },\n  \"audio/dvi4\": {\n    \"source\": \"iana\"\n  },\n  \"audio/eac3\": {\n    \"source\": \"iana\"\n  },\n  \"audio/encaprtp\": {\n    \"source\": \"iana\"\n  },\n  \"audio/evrc\": {\n    \"source\": \"iana\"\n  },\n  \"audio/evrc-qcp\": {\n    \"source\": \"iana\"\n  },\n  \"audio/evrc0\": {\n    \"source\": \"iana\"\n  },\n  \"audio/evrc1\": {\n    \"source\": \"iana\"\n  },\n  \"audio/evrcb\": {\n    \"source\": \"iana\"\n  },\n  \"audio/evrcb0\": {\n    \"source\": \"iana\"\n  },\n  \"audio/evrcb1\": {\n    \"source\": \"iana\"\n  },\n  \"audio/evrcnw\": {\n    \"source\": \"iana\"\n  },\n  \"audio/evrcnw0\": {\n    \"source\": \"iana\"\n  },\n  \"audio/evrcnw1\": {\n    \"source\": \"iana\"\n  },\n  \"audio/evrcwb\": {\n    \"source\": \"iana\"\n  },\n  \"audio/evrcwb0\": {\n    \"source\": \"iana\"\n  },\n  \"audio/evrcwb1\": {\n    \"source\": \"iana\"\n  },\n  \"audio/evs\": {\n    \"source\": \"iana\"\n  },\n  \"audio/flexfec\": {\n    \"source\": \"iana\"\n  },\n  \"audio/fwdred\": {\n    \"source\": \"iana\"\n  },\n  \"audio/g711-0\": {\n    \"source\": \"iana\"\n  },\n  \"audio/g719\": {\n    \"source\": \"iana\"\n  },\n  \"audio/g722\": {\n    \"source\": \"iana\"\n  },\n  \"audio/g7221\": {\n    \"source\": \"iana\"\n  },\n  \"audio/g723\": {\n    \"source\": \"iana\"\n  },\n  \"audio/g726-16\": {\n    \"source\": \"iana\"\n  },\n  \"audio/g726-24\": {\n    \"source\": \"iana\"\n  },\n  \"audio/g726-32\": {\n    \"source\": \"iana\"\n  },\n  \"audio/g726-40\": {\n    \"source\": \"iana\"\n  },\n  \"audio/g728\": {\n    \"source\": \"iana\"\n  },\n  \"audio/g729\": {\n    \"source\": \"iana\"\n  },\n  \"audio/g7291\": {\n    \"source\": \"iana\"\n  },\n  \"audio/g729d\": {\n    \"source\": \"iana\"\n  },\n  \"audio/g729e\": {\n    \"source\": \"iana\"\n  },\n  \"audio/gsm\": {\n    \"source\": \"iana\"\n  },\n  \"audio/gsm-efr\": {\n    \"source\": \"iana\"\n  },\n  \"audio/gsm-hr-08\": {\n    \"source\": \"iana\"\n  },\n  \"audio/ilbc\": {\n    \"source\": \"iana\"\n  },\n  \"audio/ip-mr_v2.5\": {\n    \"source\": \"iana\"\n  },\n  \"audio/isac\": {\n    \"source\": \"apache\"\n  },\n  \"audio/l16\": {\n    \"source\": \"iana\"\n  },\n  \"audio/l20\": {\n    \"source\": \"iana\"\n  },\n  \"audio/l24\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"audio/l8\": {\n    \"source\": \"iana\"\n  },\n  \"audio/lpc\": {\n    \"source\": \"iana\"\n  },\n  \"audio/melp\": {\n    \"source\": \"iana\"\n  },\n  \"audio/melp1200\": {\n    \"source\": \"iana\"\n  },\n  \"audio/melp2400\": {\n    \"source\": \"iana\"\n  },\n  \"audio/melp600\": {\n    \"source\": \"iana\"\n  },\n  \"audio/mhas\": {\n    \"source\": \"iana\"\n  },\n  \"audio/midi\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"mid\",\"midi\",\"kar\",\"rmi\"]\n  },\n  \"audio/mobile-xmf\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mxmf\"]\n  },\n  \"audio/mp3\": {\n    \"compressible\": false,\n    \"extensions\": [\"mp3\"]\n  },\n  \"audio/mp4\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"m4a\",\"mp4a\"]\n  },\n  \"audio/mp4a-latm\": {\n    \"source\": \"iana\"\n  },\n  \"audio/mpa\": {\n    \"source\": \"iana\"\n  },\n  \"audio/mpa-robust\": {\n    \"source\": \"iana\"\n  },\n  \"audio/mpeg\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"mpga\",\"mp2\",\"mp2a\",\"mp3\",\"m2a\",\"m3a\"]\n  },\n  \"audio/mpeg4-generic\": {\n    \"source\": \"iana\"\n  },\n  \"audio/musepack\": {\n    \"source\": \"apache\"\n  },\n  \"audio/ogg\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"oga\",\"ogg\",\"spx\",\"opus\"]\n  },\n  \"audio/opus\": {\n    \"source\": \"iana\"\n  },\n  \"audio/parityfec\": {\n    \"source\": \"iana\"\n  },\n  \"audio/pcma\": {\n    \"source\": \"iana\"\n  },\n  \"audio/pcma-wb\": {\n    \"source\": \"iana\"\n  },\n  \"audio/pcmu\": {\n    \"source\": \"iana\"\n  },\n  \"audio/pcmu-wb\": {\n    \"source\": \"iana\"\n  },\n  \"audio/prs.sid\": {\n    \"source\": \"iana\"\n  },\n  \"audio/qcelp\": {\n    \"source\": \"iana\"\n  },\n  \"audio/raptorfec\": {\n    \"source\": \"iana\"\n  },\n  \"audio/red\": {\n    \"source\": \"iana\"\n  },\n  \"audio/rtp-enc-aescm128\": {\n    \"source\": \"iana\"\n  },\n  \"audio/rtp-midi\": {\n    \"source\": \"iana\"\n  },\n  \"audio/rtploopback\": {\n    \"source\": \"iana\"\n  },\n  \"audio/rtx\": {\n    \"source\": \"iana\"\n  },\n  \"audio/s3m\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"s3m\"]\n  },\n  \"audio/scip\": {\n    \"source\": \"iana\"\n  },\n  \"audio/silk\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"sil\"]\n  },\n  \"audio/smv\": {\n    \"source\": \"iana\"\n  },\n  \"audio/smv-qcp\": {\n    \"source\": \"iana\"\n  },\n  \"audio/smv0\": {\n    \"source\": \"iana\"\n  },\n  \"audio/sofa\": {\n    \"source\": \"iana\"\n  },\n  \"audio/sp-midi\": {\n    \"source\": \"iana\"\n  },\n  \"audio/speex\": {\n    \"source\": \"iana\"\n  },\n  \"audio/t140c\": {\n    \"source\": \"iana\"\n  },\n  \"audio/t38\": {\n    \"source\": \"iana\"\n  },\n  \"audio/telephone-event\": {\n    \"source\": \"iana\"\n  },\n  \"audio/tetra_acelp\": {\n    \"source\": \"iana\"\n  },\n  \"audio/tetra_acelp_bb\": {\n    \"source\": \"iana\"\n  },\n  \"audio/tone\": {\n    \"source\": \"iana\"\n  },\n  \"audio/tsvcis\": {\n    \"source\": \"iana\"\n  },\n  \"audio/uemclip\": {\n    \"source\": \"iana\"\n  },\n  \"audio/ulpfec\": {\n    \"source\": \"iana\"\n  },\n  \"audio/usac\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vdvi\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vmr-wb\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.3gpp.iufp\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.4sb\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.audiokoz\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.celp\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.cisco.nse\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.cmles.radio-events\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.cns.anp1\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.cns.inf1\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.dece.audio\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"uva\",\"uvva\"]\n  },\n  \"audio/vnd.digital-winds\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"eol\"]\n  },\n  \"audio/vnd.dlna.adts\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.dolby.heaac.1\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.dolby.heaac.2\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.dolby.mlp\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.dolby.mps\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.dolby.pl2\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.dolby.pl2x\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.dolby.pl2z\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.dolby.pulse.1\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.dra\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"dra\"]\n  },\n  \"audio/vnd.dts\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"dts\"]\n  },\n  \"audio/vnd.dts.hd\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"dtshd\"]\n  },\n  \"audio/vnd.dts.uhd\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.dvb.file\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.everad.plj\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.hns.audio\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.lucent.voice\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"lvp\"]\n  },\n  \"audio/vnd.ms-playready.media.pya\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"pya\"]\n  },\n  \"audio/vnd.nokia.mobile-xmf\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.nortel.vbk\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.nuera.ecelp4800\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ecelp4800\"]\n  },\n  \"audio/vnd.nuera.ecelp7470\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ecelp7470\"]\n  },\n  \"audio/vnd.nuera.ecelp9600\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ecelp9600\"]\n  },\n  \"audio/vnd.octel.sbc\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.presonus.multitrack\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.qcelp\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.rhetorex.32kadpcm\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.rip\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"rip\"]\n  },\n  \"audio/vnd.rn-realaudio\": {\n    \"compressible\": false\n  },\n  \"audio/vnd.sealedmedia.softseal.mpeg\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.vmx.cvsd\": {\n    \"source\": \"iana\"\n  },\n  \"audio/vnd.wave\": {\n    \"compressible\": false\n  },\n  \"audio/vorbis\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"audio/vorbis-config\": {\n    \"source\": \"iana\"\n  },\n  \"audio/wav\": {\n    \"compressible\": false,\n    \"extensions\": [\"wav\"]\n  },\n  \"audio/wave\": {\n    \"compressible\": false,\n    \"extensions\": [\"wav\"]\n  },\n  \"audio/webm\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"weba\"]\n  },\n  \"audio/x-aac\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"aac\"]\n  },\n  \"audio/x-aiff\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"aif\",\"aiff\",\"aifc\"]\n  },\n  \"audio/x-caf\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"caf\"]\n  },\n  \"audio/x-flac\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"flac\"]\n  },\n  \"audio/x-m4a\": {\n    \"source\": \"nginx\",\n    \"extensions\": [\"m4a\"]\n  },\n  \"audio/x-matroska\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"mka\"]\n  },\n  \"audio/x-mpegurl\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"m3u\"]\n  },\n  \"audio/x-ms-wax\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"wax\"]\n  },\n  \"audio/x-ms-wma\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"wma\"]\n  },\n  \"audio/x-pn-realaudio\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"ram\",\"ra\"]\n  },\n  \"audio/x-pn-realaudio-plugin\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"rmp\"]\n  },\n  \"audio/x-realaudio\": {\n    \"source\": \"nginx\",\n    \"extensions\": [\"ra\"]\n  },\n  \"audio/x-tta\": {\n    \"source\": \"apache\"\n  },\n  \"audio/x-wav\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"wav\"]\n  },\n  \"audio/xm\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"xm\"]\n  },\n  \"chemical/x-cdx\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"cdx\"]\n  },\n  \"chemical/x-cif\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"cif\"]\n  },\n  \"chemical/x-cmdf\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"cmdf\"]\n  },\n  \"chemical/x-cml\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"cml\"]\n  },\n  \"chemical/x-csml\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"csml\"]\n  },\n  \"chemical/x-pdb\": {\n    \"source\": \"apache\"\n  },\n  \"chemical/x-xyz\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"xyz\"]\n  },\n  \"font/collection\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ttc\"]\n  },\n  \"font/otf\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"otf\"]\n  },\n  \"font/sfnt\": {\n    \"source\": \"iana\"\n  },\n  \"font/ttf\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"ttf\"]\n  },\n  \"font/woff\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"woff\"]\n  },\n  \"font/woff2\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"woff2\"]\n  },\n  \"image/aces\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"exr\"]\n  },\n  \"image/apng\": {\n    \"compressible\": false,\n    \"extensions\": [\"apng\"]\n  },\n  \"image/avci\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"avci\"]\n  },\n  \"image/avcs\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"avcs\"]\n  },\n  \"image/avif\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"avif\"]\n  },\n  \"image/bmp\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"bmp\"]\n  },\n  \"image/cgm\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"cgm\"]\n  },\n  \"image/dicom-rle\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"drle\"]\n  },\n  \"image/emf\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"emf\"]\n  },\n  \"image/fits\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"fits\"]\n  },\n  \"image/g3fax\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"g3\"]\n  },\n  \"image/gif\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"gif\"]\n  },\n  \"image/heic\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"heic\"]\n  },\n  \"image/heic-sequence\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"heics\"]\n  },\n  \"image/heif\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"heif\"]\n  },\n  \"image/heif-sequence\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"heifs\"]\n  },\n  \"image/hej2k\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"hej2\"]\n  },\n  \"image/hsj2\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"hsj2\"]\n  },\n  \"image/ief\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ief\"]\n  },\n  \"image/jls\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"jls\"]\n  },\n  \"image/jp2\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"jp2\",\"jpg2\"]\n  },\n  \"image/jpeg\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"jpeg\",\"jpg\",\"jpe\"]\n  },\n  \"image/jph\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"jph\"]\n  },\n  \"image/jphc\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"jhc\"]\n  },\n  \"image/jpm\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"jpm\"]\n  },\n  \"image/jpx\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"jpx\",\"jpf\"]\n  },\n  \"image/jxr\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"jxr\"]\n  },\n  \"image/jxra\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"jxra\"]\n  },\n  \"image/jxrs\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"jxrs\"]\n  },\n  \"image/jxs\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"jxs\"]\n  },\n  \"image/jxsc\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"jxsc\"]\n  },\n  \"image/jxsi\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"jxsi\"]\n  },\n  \"image/jxss\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"jxss\"]\n  },\n  \"image/ktx\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ktx\"]\n  },\n  \"image/ktx2\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ktx2\"]\n  },\n  \"image/naplps\": {\n    \"source\": \"iana\"\n  },\n  \"image/pjpeg\": {\n    \"compressible\": false\n  },\n  \"image/png\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"png\"]\n  },\n  \"image/prs.btif\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"btif\"]\n  },\n  \"image/prs.pti\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"pti\"]\n  },\n  \"image/pwg-raster\": {\n    \"source\": \"iana\"\n  },\n  \"image/sgi\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"sgi\"]\n  },\n  \"image/svg+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"svg\",\"svgz\"]\n  },\n  \"image/t38\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"t38\"]\n  },\n  \"image/tiff\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"tif\",\"tiff\"]\n  },\n  \"image/tiff-fx\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"tfx\"]\n  },\n  \"image/vnd.adobe.photoshop\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"psd\"]\n  },\n  \"image/vnd.airzip.accelerator.azv\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"azv\"]\n  },\n  \"image/vnd.cns.inf2\": {\n    \"source\": \"iana\"\n  },\n  \"image/vnd.dece.graphic\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"uvi\",\"uvvi\",\"uvg\",\"uvvg\"]\n  },\n  \"image/vnd.djvu\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"djvu\",\"djv\"]\n  },\n  \"image/vnd.dvb.subtitle\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"sub\"]\n  },\n  \"image/vnd.dwg\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"dwg\"]\n  },\n  \"image/vnd.dxf\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"dxf\"]\n  },\n  \"image/vnd.fastbidsheet\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"fbs\"]\n  },\n  \"image/vnd.fpx\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"fpx\"]\n  },\n  \"image/vnd.fst\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"fst\"]\n  },\n  \"image/vnd.fujixerox.edmics-mmr\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mmr\"]\n  },\n  \"image/vnd.fujixerox.edmics-rlc\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"rlc\"]\n  },\n  \"image/vnd.globalgraphics.pgb\": {\n    \"source\": \"iana\"\n  },\n  \"image/vnd.microsoft.icon\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"ico\"]\n  },\n  \"image/vnd.mix\": {\n    \"source\": \"iana\"\n  },\n  \"image/vnd.mozilla.apng\": {\n    \"source\": \"iana\"\n  },\n  \"image/vnd.ms-dds\": {\n    \"compressible\": true,\n    \"extensions\": [\"dds\"]\n  },\n  \"image/vnd.ms-modi\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mdi\"]\n  },\n  \"image/vnd.ms-photo\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"wdp\"]\n  },\n  \"image/vnd.net-fpx\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"npx\"]\n  },\n  \"image/vnd.pco.b16\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"b16\"]\n  },\n  \"image/vnd.radiance\": {\n    \"source\": \"iana\"\n  },\n  \"image/vnd.sealed.png\": {\n    \"source\": \"iana\"\n  },\n  \"image/vnd.sealedmedia.softseal.gif\": {\n    \"source\": \"iana\"\n  },\n  \"image/vnd.sealedmedia.softseal.jpg\": {\n    \"source\": \"iana\"\n  },\n  \"image/vnd.svf\": {\n    \"source\": \"iana\"\n  },\n  \"image/vnd.tencent.tap\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"tap\"]\n  },\n  \"image/vnd.valve.source.texture\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"vtf\"]\n  },\n  \"image/vnd.wap.wbmp\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"wbmp\"]\n  },\n  \"image/vnd.xiff\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"xif\"]\n  },\n  \"image/vnd.zbrush.pcx\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"pcx\"]\n  },\n  \"image/webp\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"webp\"]\n  },\n  \"image/wmf\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"wmf\"]\n  },\n  \"image/x-3ds\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"3ds\"]\n  },\n  \"image/x-cmu-raster\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"ras\"]\n  },\n  \"image/x-cmx\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"cmx\"]\n  },\n  \"image/x-freehand\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"fh\",\"fhc\",\"fh4\",\"fh5\",\"fh7\"]\n  },\n  \"image/x-icon\": {\n    \"source\": \"apache\",\n    \"compressible\": true,\n    \"extensions\": [\"ico\"]\n  },\n  \"image/x-jng\": {\n    \"source\": \"nginx\",\n    \"extensions\": [\"jng\"]\n  },\n  \"image/x-mrsid-image\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"sid\"]\n  },\n  \"image/x-ms-bmp\": {\n    \"source\": \"nginx\",\n    \"compressible\": true,\n    \"extensions\": [\"bmp\"]\n  },\n  \"image/x-pcx\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"pcx\"]\n  },\n  \"image/x-pict\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"pic\",\"pct\"]\n  },\n  \"image/x-portable-anymap\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"pnm\"]\n  },\n  \"image/x-portable-bitmap\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"pbm\"]\n  },\n  \"image/x-portable-graymap\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"pgm\"]\n  },\n  \"image/x-portable-pixmap\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"ppm\"]\n  },\n  \"image/x-rgb\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"rgb\"]\n  },\n  \"image/x-tga\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"tga\"]\n  },\n  \"image/x-xbitmap\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"xbm\"]\n  },\n  \"image/x-xcf\": {\n    \"compressible\": false\n  },\n  \"image/x-xpixmap\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"xpm\"]\n  },\n  \"image/x-xwindowdump\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"xwd\"]\n  },\n  \"message/cpim\": {\n    \"source\": \"iana\"\n  },\n  \"message/delivery-status\": {\n    \"source\": \"iana\"\n  },\n  \"message/disposition-notification\": {\n    \"source\": \"iana\",\n    \"extensions\": [\n      \"disposition-notification\"\n    ]\n  },\n  \"message/external-body\": {\n    \"source\": \"iana\"\n  },\n  \"message/feedback-report\": {\n    \"source\": \"iana\"\n  },\n  \"message/global\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"u8msg\"]\n  },\n  \"message/global-delivery-status\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"u8dsn\"]\n  },\n  \"message/global-disposition-notification\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"u8mdn\"]\n  },\n  \"message/global-headers\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"u8hdr\"]\n  },\n  \"message/http\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"message/imdn+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"message/news\": {\n    \"source\": \"iana\"\n  },\n  \"message/partial\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"message/rfc822\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"eml\",\"mime\"]\n  },\n  \"message/s-http\": {\n    \"source\": \"iana\"\n  },\n  \"message/sip\": {\n    \"source\": \"iana\"\n  },\n  \"message/sipfrag\": {\n    \"source\": \"iana\"\n  },\n  \"message/tracking-status\": {\n    \"source\": \"iana\"\n  },\n  \"message/vnd.si.simp\": {\n    \"source\": \"iana\"\n  },\n  \"message/vnd.wfa.wsc\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"wsc\"]\n  },\n  \"model/3mf\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"3mf\"]\n  },\n  \"model/e57\": {\n    \"source\": \"iana\"\n  },\n  \"model/gltf+json\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"gltf\"]\n  },\n  \"model/gltf-binary\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"glb\"]\n  },\n  \"model/iges\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"igs\",\"iges\"]\n  },\n  \"model/mesh\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"msh\",\"mesh\",\"silo\"]\n  },\n  \"model/mtl\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mtl\"]\n  },\n  \"model/obj\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"obj\"]\n  },\n  \"model/step\": {\n    \"source\": \"iana\"\n  },\n  \"model/step+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"stpx\"]\n  },\n  \"model/step+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"stpz\"]\n  },\n  \"model/step-xml+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"stpxz\"]\n  },\n  \"model/stl\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"stl\"]\n  },\n  \"model/vnd.collada+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"dae\"]\n  },\n  \"model/vnd.dwf\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"dwf\"]\n  },\n  \"model/vnd.flatland.3dml\": {\n    \"source\": \"iana\"\n  },\n  \"model/vnd.gdl\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"gdl\"]\n  },\n  \"model/vnd.gs-gdl\": {\n    \"source\": \"apache\"\n  },\n  \"model/vnd.gs.gdl\": {\n    \"source\": \"iana\"\n  },\n  \"model/vnd.gtw\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"gtw\"]\n  },\n  \"model/vnd.moml+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"model/vnd.mts\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mts\"]\n  },\n  \"model/vnd.opengex\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ogex\"]\n  },\n  \"model/vnd.parasolid.transmit.binary\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"x_b\"]\n  },\n  \"model/vnd.parasolid.transmit.text\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"x_t\"]\n  },\n  \"model/vnd.pytha.pyox\": {\n    \"source\": \"iana\"\n  },\n  \"model/vnd.rosette.annotated-data-model\": {\n    \"source\": \"iana\"\n  },\n  \"model/vnd.sap.vds\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"vds\"]\n  },\n  \"model/vnd.usdz+zip\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"usdz\"]\n  },\n  \"model/vnd.valve.source.compiled-map\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"bsp\"]\n  },\n  \"model/vnd.vtu\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"vtu\"]\n  },\n  \"model/vrml\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"wrl\",\"vrml\"]\n  },\n  \"model/x3d+binary\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"x3db\",\"x3dbz\"]\n  },\n  \"model/x3d+fastinfoset\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"x3db\"]\n  },\n  \"model/x3d+vrml\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"x3dv\",\"x3dvz\"]\n  },\n  \"model/x3d+xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"x3d\",\"x3dz\"]\n  },\n  \"model/x3d-vrml\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"x3dv\"]\n  },\n  \"multipart/alternative\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"multipart/appledouble\": {\n    \"source\": \"iana\"\n  },\n  \"multipart/byteranges\": {\n    \"source\": \"iana\"\n  },\n  \"multipart/digest\": {\n    \"source\": \"iana\"\n  },\n  \"multipart/encrypted\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"multipart/form-data\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"multipart/header-set\": {\n    \"source\": \"iana\"\n  },\n  \"multipart/mixed\": {\n    \"source\": \"iana\"\n  },\n  \"multipart/multilingual\": {\n    \"source\": \"iana\"\n  },\n  \"multipart/parallel\": {\n    \"source\": \"iana\"\n  },\n  \"multipart/related\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"multipart/report\": {\n    \"source\": \"iana\"\n  },\n  \"multipart/signed\": {\n    \"source\": \"iana\",\n    \"compressible\": false\n  },\n  \"multipart/vnd.bint.med-plus\": {\n    \"source\": \"iana\"\n  },\n  \"multipart/voice-message\": {\n    \"source\": \"iana\"\n  },\n  \"multipart/x-mixed-replace\": {\n    \"source\": \"iana\"\n  },\n  \"text/1d-interleaved-parityfec\": {\n    \"source\": \"iana\"\n  },\n  \"text/cache-manifest\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"appcache\",\"manifest\"]\n  },\n  \"text/calendar\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ics\",\"ifb\"]\n  },\n  \"text/calender\": {\n    \"compressible\": true\n  },\n  \"text/cmd\": {\n    \"compressible\": true\n  },\n  \"text/coffeescript\": {\n    \"extensions\": [\"coffee\",\"litcoffee\"]\n  },\n  \"text/cql\": {\n    \"source\": \"iana\"\n  },\n  \"text/cql-expression\": {\n    \"source\": \"iana\"\n  },\n  \"text/cql-identifier\": {\n    \"source\": \"iana\"\n  },\n  \"text/css\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true,\n    \"extensions\": [\"css\"]\n  },\n  \"text/csv\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"csv\"]\n  },\n  \"text/csv-schema\": {\n    \"source\": \"iana\"\n  },\n  \"text/directory\": {\n    \"source\": \"iana\"\n  },\n  \"text/dns\": {\n    \"source\": \"iana\"\n  },\n  \"text/ecmascript\": {\n    \"source\": \"iana\"\n  },\n  \"text/encaprtp\": {\n    \"source\": \"iana\"\n  },\n  \"text/enriched\": {\n    \"source\": \"iana\"\n  },\n  \"text/fhirpath\": {\n    \"source\": \"iana\"\n  },\n  \"text/flexfec\": {\n    \"source\": \"iana\"\n  },\n  \"text/fwdred\": {\n    \"source\": \"iana\"\n  },\n  \"text/gff3\": {\n    \"source\": \"iana\"\n  },\n  \"text/grammar-ref-list\": {\n    \"source\": \"iana\"\n  },\n  \"text/html\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"html\",\"htm\",\"shtml\"]\n  },\n  \"text/jade\": {\n    \"extensions\": [\"jade\"]\n  },\n  \"text/javascript\": {\n    \"source\": \"iana\",\n    \"compressible\": true\n  },\n  \"text/jcr-cnd\": {\n    \"source\": \"iana\"\n  },\n  \"text/jsx\": {\n    \"compressible\": true,\n    \"extensions\": [\"jsx\"]\n  },\n  \"text/less\": {\n    \"compressible\": true,\n    \"extensions\": [\"less\"]\n  },\n  \"text/markdown\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"markdown\",\"md\"]\n  },\n  \"text/mathml\": {\n    \"source\": \"nginx\",\n    \"extensions\": [\"mml\"]\n  },\n  \"text/mdx\": {\n    \"compressible\": true,\n    \"extensions\": [\"mdx\"]\n  },\n  \"text/mizar\": {\n    \"source\": \"iana\"\n  },\n  \"text/n3\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true,\n    \"extensions\": [\"n3\"]\n  },\n  \"text/parameters\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\"\n  },\n  \"text/parityfec\": {\n    \"source\": \"iana\"\n  },\n  \"text/plain\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"txt\",\"text\",\"conf\",\"def\",\"list\",\"log\",\"in\",\"ini\"]\n  },\n  \"text/provenance-notation\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\"\n  },\n  \"text/prs.fallenstein.rst\": {\n    \"source\": \"iana\"\n  },\n  \"text/prs.lines.tag\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"dsc\"]\n  },\n  \"text/prs.prop.logic\": {\n    \"source\": \"iana\"\n  },\n  \"text/raptorfec\": {\n    \"source\": \"iana\"\n  },\n  \"text/red\": {\n    \"source\": \"iana\"\n  },\n  \"text/rfc822-headers\": {\n    \"source\": \"iana\"\n  },\n  \"text/richtext\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"rtx\"]\n  },\n  \"text/rtf\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"rtf\"]\n  },\n  \"text/rtp-enc-aescm128\": {\n    \"source\": \"iana\"\n  },\n  \"text/rtploopback\": {\n    \"source\": \"iana\"\n  },\n  \"text/rtx\": {\n    \"source\": \"iana\"\n  },\n  \"text/sgml\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"sgml\",\"sgm\"]\n  },\n  \"text/shaclc\": {\n    \"source\": \"iana\"\n  },\n  \"text/shex\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"shex\"]\n  },\n  \"text/slim\": {\n    \"extensions\": [\"slim\",\"slm\"]\n  },\n  \"text/spdx\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"spdx\"]\n  },\n  \"text/strings\": {\n    \"source\": \"iana\"\n  },\n  \"text/stylus\": {\n    \"extensions\": [\"stylus\",\"styl\"]\n  },\n  \"text/t140\": {\n    \"source\": \"iana\"\n  },\n  \"text/tab-separated-values\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"tsv\"]\n  },\n  \"text/troff\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"t\",\"tr\",\"roff\",\"man\",\"me\",\"ms\"]\n  },\n  \"text/turtle\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"extensions\": [\"ttl\"]\n  },\n  \"text/ulpfec\": {\n    \"source\": \"iana\"\n  },\n  \"text/uri-list\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"uri\",\"uris\",\"urls\"]\n  },\n  \"text/vcard\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"vcard\"]\n  },\n  \"text/vnd.a\": {\n    \"source\": \"iana\"\n  },\n  \"text/vnd.abc\": {\n    \"source\": \"iana\"\n  },\n  \"text/vnd.ascii-art\": {\n    \"source\": \"iana\"\n  },\n  \"text/vnd.curl\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"curl\"]\n  },\n  \"text/vnd.curl.dcurl\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"dcurl\"]\n  },\n  \"text/vnd.curl.mcurl\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"mcurl\"]\n  },\n  \"text/vnd.curl.scurl\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"scurl\"]\n  },\n  \"text/vnd.debian.copyright\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\"\n  },\n  \"text/vnd.dmclientscript\": {\n    \"source\": \"iana\"\n  },\n  \"text/vnd.dvb.subtitle\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"sub\"]\n  },\n  \"text/vnd.esmertec.theme-descriptor\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\"\n  },\n  \"text/vnd.familysearch.gedcom\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ged\"]\n  },\n  \"text/vnd.ficlab.flt\": {\n    \"source\": \"iana\"\n  },\n  \"text/vnd.fly\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"fly\"]\n  },\n  \"text/vnd.fmi.flexstor\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"flx\"]\n  },\n  \"text/vnd.gml\": {\n    \"source\": \"iana\"\n  },\n  \"text/vnd.graphviz\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"gv\"]\n  },\n  \"text/vnd.hans\": {\n    \"source\": \"iana\"\n  },\n  \"text/vnd.hgl\": {\n    \"source\": \"iana\"\n  },\n  \"text/vnd.in3d.3dml\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"3dml\"]\n  },\n  \"text/vnd.in3d.spot\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"spot\"]\n  },\n  \"text/vnd.iptc.newsml\": {\n    \"source\": \"iana\"\n  },\n  \"text/vnd.iptc.nitf\": {\n    \"source\": \"iana\"\n  },\n  \"text/vnd.latex-z\": {\n    \"source\": \"iana\"\n  },\n  \"text/vnd.motorola.reflex\": {\n    \"source\": \"iana\"\n  },\n  \"text/vnd.ms-mediapackage\": {\n    \"source\": \"iana\"\n  },\n  \"text/vnd.net2phone.commcenter.command\": {\n    \"source\": \"iana\"\n  },\n  \"text/vnd.radisys.msml-basic-layout\": {\n    \"source\": \"iana\"\n  },\n  \"text/vnd.senx.warpscript\": {\n    \"source\": \"iana\"\n  },\n  \"text/vnd.si.uricatalogue\": {\n    \"source\": \"iana\"\n  },\n  \"text/vnd.sosi\": {\n    \"source\": \"iana\"\n  },\n  \"text/vnd.sun.j2me.app-descriptor\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"extensions\": [\"jad\"]\n  },\n  \"text/vnd.trolltech.linguist\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\"\n  },\n  \"text/vnd.wap.si\": {\n    \"source\": \"iana\"\n  },\n  \"text/vnd.wap.sl\": {\n    \"source\": \"iana\"\n  },\n  \"text/vnd.wap.wml\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"wml\"]\n  },\n  \"text/vnd.wap.wmlscript\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"wmls\"]\n  },\n  \"text/vtt\": {\n    \"source\": \"iana\",\n    \"charset\": \"UTF-8\",\n    \"compressible\": true,\n    \"extensions\": [\"vtt\"]\n  },\n  \"text/x-asm\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"s\",\"asm\"]\n  },\n  \"text/x-c\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"c\",\"cc\",\"cxx\",\"cpp\",\"h\",\"hh\",\"dic\"]\n  },\n  \"text/x-component\": {\n    \"source\": \"nginx\",\n    \"extensions\": [\"htc\"]\n  },\n  \"text/x-fortran\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"f\",\"for\",\"f77\",\"f90\"]\n  },\n  \"text/x-gwt-rpc\": {\n    \"compressible\": true\n  },\n  \"text/x-handlebars-template\": {\n    \"extensions\": [\"hbs\"]\n  },\n  \"text/x-java-source\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"java\"]\n  },\n  \"text/x-jquery-tmpl\": {\n    \"compressible\": true\n  },\n  \"text/x-lua\": {\n    \"extensions\": [\"lua\"]\n  },\n  \"text/x-markdown\": {\n    \"compressible\": true,\n    \"extensions\": [\"mkd\"]\n  },\n  \"text/x-nfo\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"nfo\"]\n  },\n  \"text/x-opml\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"opml\"]\n  },\n  \"text/x-org\": {\n    \"compressible\": true,\n    \"extensions\": [\"org\"]\n  },\n  \"text/x-pascal\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"p\",\"pas\"]\n  },\n  \"text/x-processing\": {\n    \"compressible\": true,\n    \"extensions\": [\"pde\"]\n  },\n  \"text/x-sass\": {\n    \"extensions\": [\"sass\"]\n  },\n  \"text/x-scss\": {\n    \"extensions\": [\"scss\"]\n  },\n  \"text/x-setext\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"etx\"]\n  },\n  \"text/x-sfv\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"sfv\"]\n  },\n  \"text/x-suse-ymp\": {\n    \"compressible\": true,\n    \"extensions\": [\"ymp\"]\n  },\n  \"text/x-uuencode\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"uu\"]\n  },\n  \"text/x-vcalendar\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"vcs\"]\n  },\n  \"text/x-vcard\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"vcf\"]\n  },\n  \"text/xml\": {\n    \"source\": \"iana\",\n    \"compressible\": true,\n    \"extensions\": [\"xml\"]\n  },\n  \"text/xml-external-parsed-entity\": {\n    \"source\": \"iana\"\n  },\n  \"text/yaml\": {\n    \"compressible\": true,\n    \"extensions\": [\"yaml\",\"yml\"]\n  },\n  \"video/1d-interleaved-parityfec\": {\n    \"source\": \"iana\"\n  },\n  \"video/3gpp\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"3gp\",\"3gpp\"]\n  },\n  \"video/3gpp-tt\": {\n    \"source\": \"iana\"\n  },\n  \"video/3gpp2\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"3g2\"]\n  },\n  \"video/av1\": {\n    \"source\": \"iana\"\n  },\n  \"video/bmpeg\": {\n    \"source\": \"iana\"\n  },\n  \"video/bt656\": {\n    \"source\": \"iana\"\n  },\n  \"video/celb\": {\n    \"source\": \"iana\"\n  },\n  \"video/dv\": {\n    \"source\": \"iana\"\n  },\n  \"video/encaprtp\": {\n    \"source\": \"iana\"\n  },\n  \"video/ffv1\": {\n    \"source\": \"iana\"\n  },\n  \"video/flexfec\": {\n    \"source\": \"iana\"\n  },\n  \"video/h261\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"h261\"]\n  },\n  \"video/h263\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"h263\"]\n  },\n  \"video/h263-1998\": {\n    \"source\": \"iana\"\n  },\n  \"video/h263-2000\": {\n    \"source\": \"iana\"\n  },\n  \"video/h264\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"h264\"]\n  },\n  \"video/h264-rcdo\": {\n    \"source\": \"iana\"\n  },\n  \"video/h264-svc\": {\n    \"source\": \"iana\"\n  },\n  \"video/h265\": {\n    \"source\": \"iana\"\n  },\n  \"video/iso.segment\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"m4s\"]\n  },\n  \"video/jpeg\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"jpgv\"]\n  },\n  \"video/jpeg2000\": {\n    \"source\": \"iana\"\n  },\n  \"video/jpm\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"jpm\",\"jpgm\"]\n  },\n  \"video/jxsv\": {\n    \"source\": \"iana\"\n  },\n  \"video/mj2\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mj2\",\"mjp2\"]\n  },\n  \"video/mp1s\": {\n    \"source\": \"iana\"\n  },\n  \"video/mp2p\": {\n    \"source\": \"iana\"\n  },\n  \"video/mp2t\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"ts\"]\n  },\n  \"video/mp4\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"mp4\",\"mp4v\",\"mpg4\"]\n  },\n  \"video/mp4v-es\": {\n    \"source\": \"iana\"\n  },\n  \"video/mpeg\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"mpeg\",\"mpg\",\"mpe\",\"m1v\",\"m2v\"]\n  },\n  \"video/mpeg4-generic\": {\n    \"source\": \"iana\"\n  },\n  \"video/mpv\": {\n    \"source\": \"iana\"\n  },\n  \"video/nv\": {\n    \"source\": \"iana\"\n  },\n  \"video/ogg\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"ogv\"]\n  },\n  \"video/parityfec\": {\n    \"source\": \"iana\"\n  },\n  \"video/pointer\": {\n    \"source\": \"iana\"\n  },\n  \"video/quicktime\": {\n    \"source\": \"iana\",\n    \"compressible\": false,\n    \"extensions\": [\"qt\",\"mov\"]\n  },\n  \"video/raptorfec\": {\n    \"source\": \"iana\"\n  },\n  \"video/raw\": {\n    \"source\": \"iana\"\n  },\n  \"video/rtp-enc-aescm128\": {\n    \"source\": \"iana\"\n  },\n  \"video/rtploopback\": {\n    \"source\": \"iana\"\n  },\n  \"video/rtx\": {\n    \"source\": \"iana\"\n  },\n  \"video/scip\": {\n    \"source\": \"iana\"\n  },\n  \"video/smpte291\": {\n    \"source\": \"iana\"\n  },\n  \"video/smpte292m\": {\n    \"source\": \"iana\"\n  },\n  \"video/ulpfec\": {\n    \"source\": \"iana\"\n  },\n  \"video/vc1\": {\n    \"source\": \"iana\"\n  },\n  \"video/vc2\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.cctv\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.dece.hd\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"uvh\",\"uvvh\"]\n  },\n  \"video/vnd.dece.mobile\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"uvm\",\"uvvm\"]\n  },\n  \"video/vnd.dece.mp4\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.dece.pd\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"uvp\",\"uvvp\"]\n  },\n  \"video/vnd.dece.sd\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"uvs\",\"uvvs\"]\n  },\n  \"video/vnd.dece.video\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"uvv\",\"uvvv\"]\n  },\n  \"video/vnd.directv.mpeg\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.directv.mpeg-tts\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.dlna.mpeg-tts\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.dvb.file\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"dvb\"]\n  },\n  \"video/vnd.fvt\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"fvt\"]\n  },\n  \"video/vnd.hns.video\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.iptvforum.1dparityfec-1010\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.iptvforum.1dparityfec-2005\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.iptvforum.2dparityfec-1010\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.iptvforum.2dparityfec-2005\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.iptvforum.ttsavc\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.iptvforum.ttsmpeg2\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.motorola.video\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.motorola.videop\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.mpegurl\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"mxu\",\"m4u\"]\n  },\n  \"video/vnd.ms-playready.media.pyv\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"pyv\"]\n  },\n  \"video/vnd.nokia.interleaved-multimedia\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.nokia.mp4vr\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.nokia.videovoip\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.objectvideo\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.radgamettools.bink\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.radgamettools.smacker\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.sealed.mpeg1\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.sealed.mpeg4\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.sealed.swf\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.sealedmedia.softseal.mov\": {\n    \"source\": \"iana\"\n  },\n  \"video/vnd.uvvu.mp4\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"uvu\",\"uvvu\"]\n  },\n  \"video/vnd.vivo\": {\n    \"source\": \"iana\",\n    \"extensions\": [\"viv\"]\n  },\n  \"video/vnd.youtube.yt\": {\n    \"source\": \"iana\"\n  },\n  \"video/vp8\": {\n    \"source\": \"iana\"\n  },\n  \"video/vp9\": {\n    \"source\": \"iana\"\n  },\n  \"video/webm\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"webm\"]\n  },\n  \"video/x-f4v\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"f4v\"]\n  },\n  \"video/x-fli\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"fli\"]\n  },\n  \"video/x-flv\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"flv\"]\n  },\n  \"video/x-m4v\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"m4v\"]\n  },\n  \"video/x-matroska\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"mkv\",\"mk3d\",\"mks\"]\n  },\n  \"video/x-mng\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"mng\"]\n  },\n  \"video/x-ms-asf\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"asf\",\"asx\"]\n  },\n  \"video/x-ms-vob\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"vob\"]\n  },\n  \"video/x-ms-wm\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"wm\"]\n  },\n  \"video/x-ms-wmv\": {\n    \"source\": \"apache\",\n    \"compressible\": false,\n    \"extensions\": [\"wmv\"]\n  },\n  \"video/x-ms-wmx\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"wmx\"]\n  },\n  \"video/x-ms-wvx\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"wvx\"]\n  },\n  \"video/x-msvideo\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"avi\"]\n  },\n  \"video/x-sgi-movie\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"movie\"]\n  },\n  \"video/x-smv\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"smv\"]\n  },\n  \"x-conference/x-cooltalk\": {\n    \"source\": \"apache\",\n    \"extensions\": [\"ice\"]\n  },\n  \"x-shader/x-fragment\": {\n    \"compressible\": true\n  },\n  \"x-shader/x-vertex\": {\n    \"compressible\": true\n  }\n}\n", "/*!\n * mime-db\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2015-2022 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n/**\n * Module exports.\n */\n\nmodule.exports = require('./db.json')\n", "/*!\n * mime-types\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar db = require('mime-db')\nvar extname = require('path').extname\n\n/**\n * Module variables.\n * @private\n */\n\nvar EXTRACT_TYPE_REGEXP = /^\\s*([^;\\s]*)(?:;|\\s|$)/\nvar TEXT_TYPE_REGEXP = /^text\\//i\n\n/**\n * Module exports.\n * @public\n */\n\nexports.charset = charset\nexports.charsets = { lookup: charset }\nexports.contentType = contentType\nexports.extension = extension\nexports.extensions = Object.create(null)\nexports.lookup = lookup\nexports.types = Object.create(null)\n\n// Populate the extensions/types maps\npopulateMaps(exports.extensions, exports.types)\n\n/**\n * Get the default charset for a MIME type.\n *\n * @param {string} type\n * @return {boolean|string}\n */\n\nfunction charset (type) {\n  if (!type || typeof type !== 'string') {\n    return false\n  }\n\n  // TODO: use media-typer\n  var match = EXTRACT_TYPE_REGEXP.exec(type)\n  var mime = match && db[match[1].toLowerCase()]\n\n  if (mime && mime.charset) {\n    return mime.charset\n  }\n\n  // default text/* to utf-8\n  if (match && TEXT_TYPE_REGEXP.test(match[1])) {\n    return 'UTF-8'\n  }\n\n  return false\n}\n\n/**\n * Create a full Content-Type header given a MIME type or extension.\n *\n * @param {string} str\n * @return {boolean|string}\n */\n\nfunction contentType (str) {\n  // TODO: should this even be in this module?\n  if (!str || typeof str !== 'string') {\n    return false\n  }\n\n  var mime = str.indexOf('/') === -1\n    ? exports.lookup(str)\n    : str\n\n  if (!mime) {\n    return false\n  }\n\n  // TODO: use content-type or other module\n  if (mime.indexOf('charset') === -1) {\n    var charset = exports.charset(mime)\n    if (charset) mime += '; charset=' + charset.toLowerCase()\n  }\n\n  return mime\n}\n\n/**\n * Get the default extension for a MIME type.\n *\n * @param {string} type\n * @return {boolean|string}\n */\n\nfunction extension (type) {\n  if (!type || typeof type !== 'string') {\n    return false\n  }\n\n  // TODO: use media-typer\n  var match = EXTRACT_TYPE_REGEXP.exec(type)\n\n  // get extensions\n  var exts = match && exports.extensions[match[1].toLowerCase()]\n\n  if (!exts || !exts.length) {\n    return false\n  }\n\n  return exts[0]\n}\n\n/**\n * Lookup the MIME type for a file path/extension.\n *\n * @param {string} path\n * @return {boolean|string}\n */\n\nfunction lookup (path) {\n  if (!path || typeof path !== 'string') {\n    return false\n  }\n\n  // get the extension (\"ext\" or \".ext\" or full path)\n  var extension = extname('x.' + path)\n    .toLowerCase()\n    .substr(1)\n\n  if (!extension) {\n    return false\n  }\n\n  return exports.types[extension] || false\n}\n\n/**\n * Populate the extensions and types maps.\n * @private\n */\n\nfunction populateMaps (extensions, types) {\n  // source preference (least -> most)\n  var preference = ['nginx', 'apache', undefined, 'iana']\n\n  Object.keys(db).forEach(function forEachMimeType (type) {\n    var mime = db[type]\n    var exts = mime.extensions\n\n    if (!exts || !exts.length) {\n      return\n    }\n\n    // mime -> extensions\n    extensions[type] = exts\n\n    // extension -> mime\n    for (var i = 0; i < exts.length; i++) {\n      var extension = exts[i]\n\n      if (types[extension]) {\n        var from = preference.indexOf(db[types[extension]].source)\n        var to = preference.indexOf(mime.source)\n\n        if (types[extension] !== 'application/octet-stream' &&\n          (from > to || (from === to && types[extension].substr(0, 12) === 'application/'))) {\n          // skip the remapping\n          continue\n        }\n      }\n\n      // set the extension -> mime\n      types[extension] = type\n    }\n  })\n}\n", "module.exports = defer;\n\n/**\n * Runs provided function on next iteration of the event loop\n *\n * @param {function} fn - function to run\n */\nfunction defer(fn)\n{\n  var nextTick = typeof setImmediate == 'function'\n    ? setImmediate\n    : (\n      typeof process == 'object' && typeof process.nextTick == 'function'\n      ? process.nextTick\n      : null\n    );\n\n  if (nextTick)\n  {\n    nextTick(fn);\n  }\n  else\n  {\n    setTimeout(fn, 0);\n  }\n}\n", "var defer = require('./defer.js');\n\n// API\nmodule.exports = async;\n\n/**\n * Runs provided callback asynchronously\n * even if callback itself is not\n *\n * @param   {function} callback - callback to invoke\n * @returns {function} - augmented callback\n */\nfunction async(callback)\n{\n  var isAsync = false;\n\n  // check if async happened\n  defer(function() { isAsync = true; });\n\n  return function async_callback(err, result)\n  {\n    if (isAsync)\n    {\n      callback(err, result);\n    }\n    else\n    {\n      defer(function nextTick_callback()\n      {\n        callback(err, result);\n      });\n    }\n  };\n}\n", "// API\nmodule.exports = abort;\n\n/**\n * Aborts leftover active jobs\n *\n * @param {object} state - current state object\n */\nfunction abort(state)\n{\n  Object.keys(state.jobs).forEach(clean.bind(state));\n\n  // reset leftover jobs\n  state.jobs = {};\n}\n\n/**\n * Cleans up leftover job by invoking abort function for the provided job id\n *\n * @this  state\n * @param {string|number} key - job id to abort\n */\nfunction clean(key)\n{\n  if (typeof this.jobs[key] == 'function')\n  {\n    this.jobs[key]();\n  }\n}\n", "var async = require('./async.js')\n  , abort = require('./abort.js')\n  ;\n\n// API\nmodule.exports = iterate;\n\n/**\n * Iterates over each job object\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {object} state - current job status\n * @param {function} callback - invoked when all elements processed\n */\nfunction iterate(list, iterator, state, callback)\n{\n  // store current index\n  var key = state['keyedList'] ? state['keyedList'][state.index] : state.index;\n\n  state.jobs[key] = runJob(iterator, key, list[key], function(error, output)\n  {\n    // don't repeat yourself\n    // skip secondary callbacks\n    if (!(key in state.jobs))\n    {\n      return;\n    }\n\n    // clean up jobs\n    delete state.jobs[key];\n\n    if (error)\n    {\n      // don't process rest of the results\n      // stop still active jobs\n      // and reset the list\n      abort(state);\n    }\n    else\n    {\n      state.results[key] = output;\n    }\n\n    // return salvaged results\n    callback(error, state.results);\n  });\n}\n\n/**\n * Runs iterator over provided job element\n *\n * @param   {function} iterator - iterator to invoke\n * @param   {string|number} key - key/index of the element in the list of jobs\n * @param   {mixed} item - job description\n * @param   {function} callback - invoked after iterator is done with the job\n * @returns {function|mixed} - job abort function or something else\n */\nfunction runJob(iterator, key, item, callback)\n{\n  var aborter;\n\n  // allow shortcut if iterator expects only two arguments\n  if (iterator.length == 2)\n  {\n    aborter = iterator(item, async(callback));\n  }\n  // otherwise go with full three arguments\n  else\n  {\n    aborter = iterator(item, key, async(callback));\n  }\n\n  return aborter;\n}\n", "// API\nmodule.exports = state;\n\n/**\n * Creates initial state object\n * for iteration over list\n *\n * @param   {array|object} list - list to iterate over\n * @param   {function|null} sortMethod - function to use for keys sort,\n *                                     or `null` to keep them as is\n * @returns {object} - initial state object\n */\nfunction state(list, sortMethod)\n{\n  var isNamedList = !Array.isArray(list)\n    , initState =\n    {\n      index    : 0,\n      keyedList: isNamedList || sortMethod ? Object.keys(list) : null,\n      jobs     : {},\n      results  : isNamedList ? {} : [],\n      size     : isNamedList ? Object.keys(list).length : list.length\n    }\n    ;\n\n  if (sortMethod)\n  {\n    // sort array keys based on it's values\n    // sort object's keys just on own merit\n    initState.keyedList.sort(isNamedList ? sortMethod : function(a, b)\n    {\n      return sortMethod(list[a], list[b]);\n    });\n  }\n\n  return initState;\n}\n", "var abort = require('./abort.js')\n  , async = require('./async.js')\n  ;\n\n// API\nmodule.exports = terminator;\n\n/**\n * Terminates jobs in the attached state context\n *\n * @this  AsyncKitState#\n * @param {function} callback - final callback to invoke after termination\n */\nfunction terminator(callback)\n{\n  if (!Object.keys(this.jobs).length)\n  {\n    return;\n  }\n\n  // fast forward iteration index\n  this.index = this.size;\n\n  // abort jobs\n  abort(this);\n\n  // send back results we have so far\n  async(callback)(null, this.results);\n}\n", "var iterate    = require('./lib/iterate.js')\n  , initState  = require('./lib/state.js')\n  , terminator = require('./lib/terminator.js')\n  ;\n\n// Public API\nmodule.exports = parallel;\n\n/**\n * Runs iterator over provided array elements in parallel\n *\n * @param   {array|object} list - array or object (named list) to iterate over\n * @param   {function} iterator - iterator to run\n * @param   {function} callback - invoked when all elements processed\n * @returns {function} - jobs terminator\n */\nfunction parallel(list, iterator, callback)\n{\n  var state = initState(list);\n\n  while (state.index < (state['keyedList'] || list).length)\n  {\n    iterate(list, iterator, state, function(error, result)\n    {\n      if (error)\n      {\n        callback(error, result);\n        return;\n      }\n\n      // looks like it's the last one\n      if (Object.keys(state.jobs).length === 0)\n      {\n        callback(null, state.results);\n        return;\n      }\n    });\n\n    state.index++;\n  }\n\n  return terminator.bind(state, callback);\n}\n", "var iterate    = require('./lib/iterate.js')\n  , initState  = require('./lib/state.js')\n  , terminator = require('./lib/terminator.js')\n  ;\n\n// Public API\nmodule.exports = serialOrdered;\n// sorting helpers\nmodule.exports.ascending  = ascending;\nmodule.exports.descending = descending;\n\n/**\n * Runs iterator over provided sorted array elements in series\n *\n * @param   {array|object} list - array or object (named list) to iterate over\n * @param   {function} iterator - iterator to run\n * @param   {function} sortMethod - custom sort function\n * @param   {function} callback - invoked when all elements processed\n * @returns {function} - jobs terminator\n */\nfunction serialOrdered(list, iterator, sortMethod, callback)\n{\n  var state = initState(list, sortMethod);\n\n  iterate(list, iterator, state, function iteratorHandler(error, result)\n  {\n    if (error)\n    {\n      callback(error, result);\n      return;\n    }\n\n    state.index++;\n\n    // are we there yet?\n    if (state.index < (state['keyedList'] || list).length)\n    {\n      iterate(list, iterator, state, iteratorHandler);\n      return;\n    }\n\n    // done here\n    callback(null, state.results);\n  });\n\n  return terminator.bind(state, callback);\n}\n\n/*\n * -- Sort methods\n */\n\n/**\n * sort helper to sort array elements in ascending order\n *\n * @param   {mixed} a - an item to compare\n * @param   {mixed} b - an item to compare\n * @returns {number} - comparison result\n */\nfunction ascending(a, b)\n{\n  return a < b ? -1 : a > b ? 1 : 0;\n}\n\n/**\n * sort helper to sort array elements in descending order\n *\n * @param   {mixed} a - an item to compare\n * @param   {mixed} b - an item to compare\n * @returns {number} - comparison result\n */\nfunction descending(a, b)\n{\n  return -1 * ascending(a, b);\n}\n", "var serialOrdered = require('./serialOrdered.js');\n\n// Public API\nmodule.exports = serial;\n\n/**\n * Runs iterator over provided array elements in series\n *\n * @param   {array|object} list - array or object (named list) to iterate over\n * @param   {function} iterator - iterator to run\n * @param   {function} callback - invoked when all elements processed\n * @returns {function} - jobs terminator\n */\nfunction serial(list, iterator, callback)\n{\n  return serialOrdered(list, iterator, null, callback);\n}\n", "module.exports =\n{\n  parallel      : require('./parallel.js'),\n  serial        : require('./serial.js'),\n  serialOrdered : require('./serialOrdered.js')\n};\n", "'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Object;\n", "'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Error;\n", "'use strict';\n\n/** @type {import('./eval')} */\nmodule.exports = EvalError;\n", "'use strict';\n\n/** @type {import('./range')} */\nmodule.exports = RangeError;\n", "'use strict';\n\n/** @type {import('./ref')} */\nmodule.exports = ReferenceError;\n", "'use strict';\n\n/** @type {import('./syntax')} */\nmodule.exports = SyntaxError;\n", "'use strict';\n\n/** @type {import('./type')} */\nmodule.exports = TypeError;\n", "'use strict';\n\n/** @type {import('./uri')} */\nmodule.exports = URIError;\n", "'use strict';\n\n/** @type {import('./abs')} */\nmodule.exports = Math.abs;\n", "'use strict';\n\n/** @type {import('./floor')} */\nmodule.exports = Math.floor;\n", "'use strict';\n\n/** @type {import('./max')} */\nmodule.exports = Math.max;\n", "'use strict';\n\n/** @type {import('./min')} */\nmodule.exports = Math.min;\n", "'use strict';\n\n/** @type {import('./pow')} */\nmodule.exports = Math.pow;\n", "'use strict';\n\n/** @type {import('./round')} */\nmodule.exports = Math.round;\n", "'use strict';\n\n/** @type {import('./isNaN')} */\nmodule.exports = Number.isNaN || function isNaN(a) {\n\treturn a !== a;\n};\n", "'use strict';\n\nvar $isNaN = require('./isNaN');\n\n/** @type {import('./sign')} */\nmodule.exports = function sign(number) {\n\tif ($isNaN(number) || number === 0) {\n\t\treturn number;\n\t}\n\treturn number < 0 ? -1 : +1;\n};\n", "'use strict';\n\n/** @type {import('./gOPD')} */\nmodule.exports = Object.getOwnPropertyDescriptor;\n", "'use strict';\n\n/** @type {import('.')} */\nvar $gOPD = require('./gOPD');\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n", "'use strict';\n\n/** @type {import('.')} */\nvar $defineProperty = Object.defineProperty || false;\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = false;\n\t}\n}\n\nmodule.exports = $defineProperty;\n", "'use strict';\n\n/** @type {import('./shams')} */\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\t/** @type {{ [k in symbol]?: unknown }} */\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (var _ in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\t// eslint-disable-next-line no-extra-parens\n\t\tvar descriptor = /** @type {PropertyDescriptor} */ (Object.getOwnPropertyDescriptor(obj, sym));\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n", "'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n", "'use strict';\n\n/** @type {import('./Reflect.getPrototypeOf')} */\nmodule.exports = (typeof Reflect !== 'undefined' && Reflect.getPrototypeOf) || null;\n", "'use strict';\n\nvar $Object = require('es-object-atoms');\n\n/** @type {import('./Object.getPrototypeOf')} */\nmodule.exports = $Object.getPrototypeOf || null;\n", "'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar toStr = Object.prototype.toString;\nvar max = Math.max;\nvar funcType = '[object Function]';\n\nvar concatty = function concatty(a, b) {\n    var arr = [];\n\n    for (var i = 0; i < a.length; i += 1) {\n        arr[i] = a[i];\n    }\n    for (var j = 0; j < b.length; j += 1) {\n        arr[j + a.length] = b[j];\n    }\n\n    return arr;\n};\n\nvar slicy = function slicy(arrLike, offset) {\n    var arr = [];\n    for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {\n        arr[j] = arrLike[i];\n    }\n    return arr;\n};\n\nvar joiny = function (arr, joiner) {\n    var str = '';\n    for (var i = 0; i < arr.length; i += 1) {\n        str += arr[i];\n        if (i + 1 < arr.length) {\n            str += joiner;\n        }\n    }\n    return str;\n};\n\nmodule.exports = function bind(that) {\n    var target = this;\n    if (typeof target !== 'function' || toStr.apply(target) !== funcType) {\n        throw new TypeError(ERROR_MESSAGE + target);\n    }\n    var args = slicy(arguments, 1);\n\n    var bound;\n    var binder = function () {\n        if (this instanceof bound) {\n            var result = target.apply(\n                this,\n                concatty(args, arguments)\n            );\n            if (Object(result) === result) {\n                return result;\n            }\n            return this;\n        }\n        return target.apply(\n            that,\n            concatty(args, arguments)\n        );\n\n    };\n\n    var boundLength = max(0, target.length - args.length);\n    var boundArgs = [];\n    for (var i = 0; i < boundLength; i++) {\n        boundArgs[i] = '$' + i;\n    }\n\n    bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);\n\n    if (target.prototype) {\n        var Empty = function Empty() {};\n        Empty.prototype = target.prototype;\n        bound.prototype = new Empty();\n        Empty.prototype = null;\n    }\n\n    return bound;\n};\n", "'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n", "'use strict';\n\n/** @type {import('./functionCall')} */\nmodule.exports = Function.prototype.call;\n", "'use strict';\n\n/** @type {import('./functionApply')} */\nmodule.exports = Function.prototype.apply;\n", "'use strict';\n\n/** @type {import('./reflectApply')} */\nmodule.exports = typeof Reflect !== 'undefined' && Reflect && Reflect.apply;\n", "'use strict';\n\nvar bind = require('function-bind');\n\nvar $apply = require('./functionApply');\nvar $call = require('./functionCall');\nvar $reflectApply = require('./reflectApply');\n\n/** @type {import('./actualApply')} */\nmodule.exports = $reflectApply || bind.call($call, $apply);\n", "'use strict';\n\nvar bind = require('function-bind');\nvar $TypeError = require('es-errors/type');\n\nvar $call = require('./functionCall');\nvar $actualApply = require('./actualApply');\n\n/** @type {(args: [Function, thisArg?: unknown, ...args: unknown[]]) => Function} TODO FIXME, find a way to use import('.') */\nmodule.exports = function callBindBasic(args) {\n\tif (args.length < 1 || typeof args[0] !== 'function') {\n\t\tthrow new $TypeError('a function is required');\n\t}\n\treturn $actualApply(bind, $call, args);\n};\n", "'use strict';\n\nvar callBind = require('call-bind-apply-helpers');\nvar gOPD = require('gopd');\n\nvar hasProtoAccessor;\ntry {\n\t// eslint-disable-next-line no-extra-parens, no-proto\n\thasProtoAccessor = /** @type {{ __proto__?: typeof Array.prototype }} */ ([]).__proto__ === Array.prototype;\n} catch (e) {\n\tif (!e || typeof e !== 'object' || !('code' in e) || e.code !== 'ERR_PROTO_ACCESS') {\n\t\tthrow e;\n\t}\n}\n\n// eslint-disable-next-line no-extra-parens\nvar desc = !!hasProtoAccessor && gOPD && gOPD(Object.prototype, /** @type {keyof typeof Object.prototype} */ ('__proto__'));\n\nvar $Object = Object;\nvar $getPrototypeOf = $Object.getPrototypeOf;\n\n/** @type {import('./get')} */\nmodule.exports = desc && typeof desc.get === 'function'\n\t? callBind([desc.get])\n\t: typeof $getPrototypeOf === 'function'\n\t\t? /** @type {import('./get')} */ function getDunder(value) {\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\treturn $getPrototypeOf(value == null ? value : $Object(value));\n\t\t}\n\t\t: false;\n", "'use strict';\n\nvar reflectGetProto = require('./Reflect.getPrototypeOf');\nvar originalGetProto = require('./Object.getPrototypeOf');\n\nvar getDunderProto = require('dunder-proto/get');\n\n/** @type {import('.')} */\nmodule.exports = reflectGetProto\n\t? function getProto(O) {\n\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\treturn reflectGetProto(O);\n\t}\n\t: originalGetProto\n\t\t? function getProto(O) {\n\t\t\tif (!O || (typeof O !== 'object' && typeof O !== 'function')) {\n\t\t\t\tthrow new TypeError('getProto: not an object');\n\t\t\t}\n\t\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\t\treturn originalGetProto(O);\n\t\t}\n\t\t: getDunderProto\n\t\t\t? function getProto(O) {\n\t\t\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\t\t\treturn getDunderProto(O);\n\t\t\t}\n\t\t\t: null;\n", "'use strict';\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = require('function-bind');\n\n/** @type {import('.')} */\nmodule.exports = bind.call(call, $hasOwn);\n", "'use strict';\n\nvar undefined;\n\nvar $Object = require('es-object-atoms');\n\nvar $Error = require('es-errors');\nvar $EvalError = require('es-errors/eval');\nvar $RangeError = require('es-errors/range');\nvar $ReferenceError = require('es-errors/ref');\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\nvar $URIError = require('es-errors/uri');\n\nvar abs = require('math-intrinsics/abs');\nvar floor = require('math-intrinsics/floor');\nvar max = require('math-intrinsics/max');\nvar min = require('math-intrinsics/min');\nvar pow = require('math-intrinsics/pow');\nvar round = require('math-intrinsics/round');\nvar sign = require('math-intrinsics/sign');\n\nvar $Function = Function;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = require('gopd');\nvar $defineProperty = require('es-define-property');\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = require('get-proto');\nvar $ObjectGPO = require('get-proto/Object.getPrototypeOf');\nvar $ReflectGPO = require('get-proto/Reflect.getPrototypeOf');\n\nvar $apply = require('call-bind-apply-helpers/functionApply');\nvar $call = require('call-bind-apply-helpers/functionCall');\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t__proto__: null,\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': $Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': $EvalError,\n\t'%Float16Array%': typeof Float16Array === 'undefined' ? undefined : Float16Array,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': $Object,\n\t'%Object.getOwnPropertyDescriptor%': $gOPD,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': $RangeError,\n\t'%ReferenceError%': $ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': $URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet,\n\n\t'%Function.prototype.call%': $call,\n\t'%Function.prototype.apply%': $apply,\n\t'%Object.defineProperty%': $defineProperty,\n\t'%Object.getPrototypeOf%': $ObjectGPO,\n\t'%Math.abs%': abs,\n\t'%Math.floor%': floor,\n\t'%Math.max%': max,\n\t'%Math.min%': min,\n\t'%Math.pow%': pow,\n\t'%Math.round%': round,\n\t'%Math.sign%': sign,\n\t'%Reflect.getPrototypeOf%': $ReflectGPO\n};\n\nif (getProto) {\n\ttry {\n\t\tnull.error; // eslint-disable-line no-unused-expressions\n\t} catch (e) {\n\t\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\t\tvar errorProto = getProto(getProto(e));\n\t\tINTRINSICS['%Error.prototype%'] = errorProto;\n\t}\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen && getProto) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t__proto__: null,\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('hasown');\nvar $concat = bind.call($call, Array.prototype.concat);\nvar $spliceApply = bind.call($apply, Array.prototype.splice);\nvar $replace = bind.call($call, String.prototype.replace);\nvar $strSlice = bind.call($call, String.prototype.slice);\nvar $exec = bind.call($call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n", "'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n", "'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\n\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar hasOwn = require('hasown');\nvar $TypeError = require('es-errors/type');\n\nvar toStringTag = hasToStringTag ? Symbol.toStringTag : null;\n\n/** @type {import('.')} */\nmodule.exports = function setToStringTag(object, value) {\n\tvar overrideIfSet = arguments.length > 2 && !!arguments[2] && arguments[2].force;\n\tvar nonConfigurable = arguments.length > 2 && !!arguments[2] && arguments[2].nonConfigurable;\n\tif (\n\t\t(typeof overrideIfSet !== 'undefined' && typeof overrideIfSet !== 'boolean')\n\t\t|| (typeof nonConfigurable !== 'undefined' && typeof nonConfigurable !== 'boolean')\n\t) {\n\t\tthrow new $TypeError('if provided, the `overrideIfSet` and `nonConfigurable` options must be booleans');\n\t}\n\tif (toStringTag && (overrideIfSet || !hasOwn(object, toStringTag))) {\n\t\tif ($defineProperty) {\n\t\t\t$defineProperty(object, toStringTag, {\n\t\t\t\tconfigurable: !nonConfigurable,\n\t\t\t\tenumerable: false,\n\t\t\t\tvalue: value,\n\t\t\t\twritable: false\n\t\t\t});\n\t\t} else {\n\t\t\tobject[toStringTag] = value; // eslint-disable-line no-param-reassign\n\t\t}\n\t}\n};\n", "'use strict';\n\n// populates missing values\nmodule.exports = function (dst, src) {\n  Object.keys(src).forEach(function (prop) {\n    dst[prop] = dst[prop] || src[prop]; // eslint-disable-line no-param-reassign\n  });\n\n  return dst;\n};\n", "'use strict';\n\nvar CombinedStream = require('combined-stream');\nvar util = require('util');\nvar path = require('path');\nvar http = require('http');\nvar https = require('https');\nvar parseUrl = require('url').parse;\nvar fs = require('fs');\nvar Stream = require('stream').Stream;\nvar crypto = require('crypto');\nvar mime = require('mime-types');\nvar asynckit = require('asynckit');\nvar setToStringTag = require('es-set-tostringtag');\nvar hasOwn = require('hasown');\nvar populate = require('./populate.js');\n\n/**\n * Escape CR, LF, and `\"` in a multipart `name`/`filename` parameter, so a field\n * name or filename can not break out of its header line to inject headers or\n * smuggle additional parts. Matches the WHATWG HTML multipart/form-data encoding.\n *\n * @param {string} str - the parameter value to escape\n * @returns {string} the escaped value\n */\nfunction escapeHeaderParam(str) {\n  return String(str).replace(/\\r/g, '%0D').replace(/\\n/g, '%0A').replace(/\"/g, '%22');\n}\n\n/**\n * Create readable \"multipart/form-data\" streams.\n * Can be used to submit forms\n * and file uploads to other web applications.\n *\n * @constructor\n * @param {object} options - Properties to be added/overriden for FormData and CombinedStream\n */\nfunction FormData(options) {\n  if (!(this instanceof FormData)) {\n    return new FormData(options);\n  }\n\n  this._overheadLength = 0;\n  this._valueLength = 0;\n  this._valuesToMeasure = [];\n\n  CombinedStream.call(this);\n\n  options = options || {}; // eslint-disable-line no-param-reassign\n  for (var option in options) { // eslint-disable-line no-restricted-syntax\n    this[option] = options[option];\n  }\n}\n\n// make it a Stream\nutil.inherits(FormData, CombinedStream);\n\nFormData.LINE_BREAK = '\\r\\n';\nFormData.DEFAULT_CONTENT_TYPE = 'application/octet-stream';\n\nFormData.prototype.append = function (field, value, options) {\n  options = options || {}; // eslint-disable-line no-param-reassign\n\n  // allow filename as single option\n  if (typeof options === 'string') {\n    options = { filename: options }; // eslint-disable-line no-param-reassign\n  }\n\n  var append = CombinedStream.prototype.append.bind(this);\n\n  // all that streamy business can't handle numbers\n  if (typeof value === 'number' || value == null) {\n    value = String(value); // eslint-disable-line no-param-reassign\n  }\n\n  // https://github.com/felixge/node-form-data/issues/38\n  if (Array.isArray(value)) {\n    /*\n     * Please convert your array into string\n     * the way web server expects it\n     */\n    this._error(new Error('Arrays are not supported.'));\n    return;\n  }\n\n  var header = this._multiPartHeader(field, value, options);\n  var footer = this._multiPartFooter();\n\n  append(header);\n  append(value);\n  append(footer);\n\n  // pass along options.knownLength\n  this._trackLength(header, value, options);\n};\n\nFormData.prototype._trackLength = function (header, value, options) {\n  var valueLength = 0;\n\n  /*\n   * used w/ getLengthSync(), when length is known.\n   * e.g. for streaming directly from a remote server,\n   * w/ a known file a size, and not wanting to wait for\n   * incoming file to finish to get its size.\n   */\n  if (options.knownLength != null) {\n    valueLength += Number(options.knownLength);\n  } else if (Buffer.isBuffer(value)) {\n    valueLength = value.length;\n  } else if (typeof value === 'string') {\n    valueLength = Buffer.byteLength(value);\n  }\n\n  this._valueLength += valueLength;\n\n  // @check why add CRLF? does this account for custom/multiple CRLFs?\n  this._overheadLength += Buffer.byteLength(header) + FormData.LINE_BREAK.length;\n\n  // empty or either doesn't have path or not an http response or not a stream\n  if (!value || (!value.path && !(value.readable && hasOwn(value, 'httpVersion')) && !(value instanceof Stream))) {\n    return;\n  }\n\n  // no need to bother with the length\n  if (!options.knownLength) {\n    this._valuesToMeasure.push(value);\n  }\n};\n\nFormData.prototype._lengthRetriever = function (value, callback) {\n  if (hasOwn(value, 'fd')) {\n    // take read range into a account\n    // `end` = Infinity \u2013> read file till the end\n    //\n    // TODO: Looks like there is bug in Node fs.createReadStream\n    // it doesn't respect `end` options without `start` options\n    // Fix it when node fixes it.\n    // https://github.com/joyent/node/issues/7819\n    if (value.end != undefined && value.end != Infinity && value.start != undefined) {\n      // when end specified\n      // no need to calculate range\n      // inclusive, starts with 0\n      callback(null, value.end + 1 - (value.start ? value.start : 0)); // eslint-disable-line callback-return\n\n      // not that fast snoopy\n    } else {\n      // still need to fetch file size from fs\n      fs.stat(value.path, function (err, stat) {\n        if (err) {\n          callback(err);\n          return;\n        }\n\n        // update final size based on the range options\n        var fileSize = stat.size - (value.start ? value.start : 0);\n        callback(null, fileSize);\n      });\n    }\n\n    // or http response\n  } else if (hasOwn(value, 'httpVersion')) {\n    callback(null, Number(value.headers['content-length'])); // eslint-disable-line callback-return\n\n    // or request stream http://github.com/mikeal/request\n  } else if (hasOwn(value, 'httpModule')) {\n    // wait till response come back\n    value.on('response', function (response) {\n      value.pause();\n      callback(null, Number(response.headers['content-length']));\n    });\n    value.resume();\n\n    // something else\n  } else {\n    callback('Unknown stream'); // eslint-disable-line callback-return\n  }\n};\n\nFormData.prototype._multiPartHeader = function (field, value, options) {\n  /*\n   * custom header specified (as string)?\n   * it becomes responsible for boundary\n   * (e.g. to handle extra CRLFs on .NET servers)\n   */\n  if (typeof options.header === 'string') {\n    return options.header;\n  }\n\n  var contentDisposition = this._getContentDisposition(value, options);\n  var contentType = this._getContentType(value, options);\n\n  var contents = '';\n  var headers = {\n    // add custom disposition as third element or keep it two elements if not\n    'Content-Disposition': ['form-data', 'name=\"' + escapeHeaderParam(field) + '\"'].concat(contentDisposition || []),\n    // if no content type. allow it to be empty array\n    'Content-Type': [].concat(contentType || [])\n  };\n\n  // allow custom headers.\n  if (typeof options.header === 'object') {\n    populate(headers, options.header);\n  }\n\n  var header;\n  for (var prop in headers) { // eslint-disable-line no-restricted-syntax\n    if (hasOwn(headers, prop)) {\n      header = headers[prop];\n\n      // skip nullish headers.\n      if (header == null) {\n        continue; // eslint-disable-line no-restricted-syntax, no-continue\n      }\n\n      // convert all headers to arrays.\n      if (!Array.isArray(header)) {\n        header = [header];\n      }\n\n      // add non-empty headers.\n      if (header.length) {\n        contents += prop + ': ' + header.join('; ') + FormData.LINE_BREAK;\n      }\n    }\n  }\n\n  return '--' + this.getBoundary() + FormData.LINE_BREAK + contents + FormData.LINE_BREAK;\n};\n\nFormData.prototype._getContentDisposition = function (value, options) { // eslint-disable-line consistent-return\n  var filename;\n\n  if (typeof options.filepath === 'string') {\n    // custom filepath for relative paths\n    filename = path.normalize(options.filepath).replace(/\\\\/g, '/');\n  } else if (options.filename || (value && (value.name || value.path))) {\n    /*\n     * custom filename take precedence\n     * formidable and the browser add a name property\n     * fs- and request- streams have path property\n     */\n    filename = path.basename(options.filename || (value && (value.name || value.path)));\n  } else if (value && value.readable && hasOwn(value, 'httpVersion')) {\n    // or try http response\n    filename = path.basename(value.client._httpMessage.path || '');\n  }\n\n  if (filename) {\n    return 'filename=\"' + escapeHeaderParam(filename) + '\"';\n  }\n};\n\nFormData.prototype._getContentType = function (value, options) {\n  // use custom content-type above all\n  var contentType = options.contentType;\n\n  // or try `name` from formidable, browser\n  if (!contentType && value && value.name) {\n    contentType = mime.lookup(value.name);\n  }\n\n  // or try `path` from fs-, request- streams\n  if (!contentType && value && value.path) {\n    contentType = mime.lookup(value.path);\n  }\n\n  // or if it's http-reponse\n  if (!contentType && value && value.readable && hasOwn(value, 'httpVersion')) {\n    contentType = value.headers['content-type'];\n  }\n\n  // or guess it from the filepath or filename\n  if (!contentType && (options.filepath || options.filename)) {\n    contentType = mime.lookup(options.filepath || options.filename);\n  }\n\n  // fallback to the default content type if `value` is not simple value\n  if (!contentType && value && typeof value === 'object') {\n    contentType = FormData.DEFAULT_CONTENT_TYPE;\n  }\n\n  return contentType;\n};\n\nFormData.prototype._multiPartFooter = function () {\n  return function (next) {\n    var footer = FormData.LINE_BREAK;\n\n    var lastPart = this._streams.length === 0;\n    if (lastPart) {\n      footer += this._lastBoundary();\n    }\n\n    next(footer);\n  }.bind(this);\n};\n\nFormData.prototype._lastBoundary = function () {\n  return '--' + this.getBoundary() + '--' + FormData.LINE_BREAK;\n};\n\nFormData.prototype.getHeaders = function (userHeaders) {\n  var header;\n  var formHeaders = {\n    'content-type': 'multipart/form-data; boundary=' + this.getBoundary()\n  };\n\n  for (header in userHeaders) { // eslint-disable-line no-restricted-syntax\n    if (hasOwn(userHeaders, header)) {\n      formHeaders[header.toLowerCase()] = userHeaders[header];\n    }\n  }\n\n  return formHeaders;\n};\n\nFormData.prototype.setBoundary = function (boundary) {\n  if (typeof boundary !== 'string') {\n    throw new TypeError('FormData boundary must be a string');\n  }\n  this._boundary = boundary;\n};\n\nFormData.prototype.getBoundary = function () {\n  if (!this._boundary) {\n    this._generateBoundary();\n  }\n\n  return this._boundary;\n};\n\nFormData.prototype.getBuffer = function () {\n  var dataBuffer = new Buffer.alloc(0); // eslint-disable-line new-cap\n  var boundary = this.getBoundary();\n\n  // Create the form content. Add Line breaks to the end of data.\n  for (var i = 0, len = this._streams.length; i < len; i++) {\n    if (typeof this._streams[i] !== 'function') {\n      // Add content to the buffer.\n      if (Buffer.isBuffer(this._streams[i])) {\n        dataBuffer = Buffer.concat([dataBuffer, this._streams[i]]);\n      } else {\n        dataBuffer = Buffer.concat([dataBuffer, Buffer.from(this._streams[i])]);\n      }\n\n      // Add break after content.\n      if (typeof this._streams[i] !== 'string' || this._streams[i].substring(2, boundary.length + 2) !== boundary) {\n        dataBuffer = Buffer.concat([dataBuffer, Buffer.from(FormData.LINE_BREAK)]);\n      }\n    }\n  }\n\n  // Add the footer and return the Buffer object.\n  return Buffer.concat([dataBuffer, Buffer.from(this._lastBoundary())]);\n};\n\nFormData.prototype._generateBoundary = function () {\n  // This generates a 50 character boundary similar to those used by Firefox.\n\n  // They are optimized for boyer-moore parsing.\n  this._boundary = '--------------------------' + crypto.randomBytes(12).toString('hex');\n};\n\n// Note: getLengthSync DOESN'T calculate streams length\n// As workaround one can calculate file size manually and add it as knownLength option\nFormData.prototype.getLengthSync = function () {\n  var knownLength = this._overheadLength + this._valueLength;\n\n  // Don't get confused, there are 3 \"internal\" streams for each keyval pair so it basically checks if there is any value added to the form\n  if (this._streams.length) {\n    knownLength += this._lastBoundary().length;\n  }\n\n  // https://github.com/form-data/form-data/issues/40\n  if (!this.hasKnownLength()) {\n    /*\n     * Some async length retrievers are present\n     * therefore synchronous length calculation is false.\n     * Please use getLength(callback) to get proper length\n     */\n    this._error(new Error('Cannot calculate proper length in synchronous way.'));\n  }\n\n  return knownLength;\n};\n\n// Public API to check if length of added values is known\n// https://github.com/form-data/form-data/issues/196\n// https://github.com/form-data/form-data/issues/262\nFormData.prototype.hasKnownLength = function () {\n  var hasKnownLength = true;\n\n  if (this._valuesToMeasure.length) {\n    hasKnownLength = false;\n  }\n\n  return hasKnownLength;\n};\n\nFormData.prototype.getLength = function (cb) {\n  var knownLength = this._overheadLength + this._valueLength;\n\n  if (this._streams.length) {\n    knownLength += this._lastBoundary().length;\n  }\n\n  if (!this._valuesToMeasure.length) {\n    process.nextTick(cb.bind(this, null, knownLength));\n    return;\n  }\n\n  asynckit.parallel(this._valuesToMeasure, this._lengthRetriever, function (err, values) {\n    if (err) {\n      cb(err);\n      return;\n    }\n\n    values.forEach(function (length) {\n      knownLength += length;\n    });\n\n    cb(null, knownLength);\n  });\n};\n\nFormData.prototype.submit = function (params, cb) {\n  var request;\n  var options;\n  var defaults = { method: 'post' };\n\n  // parse provided url if it's string or treat it as options object\n  if (typeof params === 'string') {\n    params = parseUrl(params); // eslint-disable-line no-param-reassign\n    /* eslint sort-keys: 0 */\n    options = populate({\n      port: params.port,\n      path: params.pathname,\n      host: params.hostname,\n      protocol: params.protocol\n    }, defaults);\n  } else { // use custom params\n    options = populate(params, defaults);\n    // if no port provided use default one\n    if (!options.port) {\n      options.port = options.protocol === 'https:' ? 443 : 80;\n    }\n  }\n\n  // put that good code in getHeaders to some use\n  options.headers = this.getHeaders(params.headers);\n\n  // https if specified, fallback to http in any other case\n  if (options.protocol === 'https:') {\n    request = https.request(options);\n  } else {\n    request = http.request(options);\n  }\n\n  // get content length and fire away\n  this.getLength(function (err, length) {\n    if (err && err !== 'Unknown stream') {\n      this._error(err);\n      return;\n    }\n\n    // add content length\n    if (length) {\n      request.setHeader('Content-Length', length);\n    }\n\n    this.pipe(request);\n    if (cb) {\n      var onResponse;\n\n      var callback = function (error, responce) {\n        request.removeListener('error', callback);\n        request.removeListener('response', onResponse);\n\n        return cb.call(this, error, responce);\n      };\n\n      onResponse = callback.bind(this, null);\n\n      request.on('error', callback);\n      request.on('response', onResponse);\n    }\n  }.bind(this));\n\n  return request;\n};\n\nFormData.prototype._error = function (err) {\n  if (!this.error) {\n    this.error = err;\n    this.pause();\n    this.emit('error', err);\n  }\n};\n\nFormData.prototype.toString = function () {\n  return '[object FormData]';\n};\nsetToStringTag(FormData.prototype, 'FormData');\n\n// Public API\nmodule.exports = FormData;\n", "/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n *  - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function (val, options) {\n  options = options || {};\n  var type = typeof val;\n  if (type === 'string' && val.length > 0) {\n    return parse(val);\n  } else if (type === 'number' && isFinite(val)) {\n    return options.long ? fmtLong(val) : fmtShort(val);\n  }\n  throw new Error(\n    'val is not a non-empty string or a valid number. val=' +\n      JSON.stringify(val)\n  );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n  str = String(str);\n  if (str.length > 100) {\n    return;\n  }\n  var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n    str\n  );\n  if (!match) {\n    return;\n  }\n  var n = parseFloat(match[1]);\n  var type = (match[2] || 'ms').toLowerCase();\n  switch (type) {\n    case 'years':\n    case 'year':\n    case 'yrs':\n    case 'yr':\n    case 'y':\n      return n * y;\n    case 'weeks':\n    case 'week':\n    case 'w':\n      return n * w;\n    case 'days':\n    case 'day':\n    case 'd':\n      return n * d;\n    case 'hours':\n    case 'hour':\n    case 'hrs':\n    case 'hr':\n    case 'h':\n      return n * h;\n    case 'minutes':\n    case 'minute':\n    case 'mins':\n    case 'min':\n    case 'm':\n      return n * m;\n    case 'seconds':\n    case 'second':\n    case 'secs':\n    case 'sec':\n    case 's':\n      return n * s;\n    case 'milliseconds':\n    case 'millisecond':\n    case 'msecs':\n    case 'msec':\n    case 'ms':\n      return n;\n    default:\n      return undefined;\n  }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n  var msAbs = Math.abs(ms);\n  if (msAbs >= d) {\n    return Math.round(ms / d) + 'd';\n  }\n  if (msAbs >= h) {\n    return Math.round(ms / h) + 'h';\n  }\n  if (msAbs >= m) {\n    return Math.round(ms / m) + 'm';\n  }\n  if (msAbs >= s) {\n    return Math.round(ms / s) + 's';\n  }\n  return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n  var msAbs = Math.abs(ms);\n  if (msAbs >= d) {\n    return plural(ms, msAbs, d, 'day');\n  }\n  if (msAbs >= h) {\n    return plural(ms, msAbs, h, 'hour');\n  }\n  if (msAbs >= m) {\n    return plural(ms, msAbs, m, 'minute');\n  }\n  if (msAbs >= s) {\n    return plural(ms, msAbs, s, 'second');\n  }\n  return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n  var isPlural = msAbs >= n * 1.5;\n  return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n", "\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '')\n\t\t\t.trim()\n\t\t\t.replace(/\\s+/g, ',')\n\t\t\t.split(',')\n\t\t\t.filter(Boolean);\n\n\t\tfor (const ns of split) {\n\t\t\tif (ns[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(ns.slice(1));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(ns);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Checks if the given string matches a namespace template, honoring\n\t * asterisks as wildcards.\n\t *\n\t * @param {String} search\n\t * @param {String} template\n\t * @return {Boolean}\n\t */\n\tfunction matchesTemplate(search, template) {\n\t\tlet searchIndex = 0;\n\t\tlet templateIndex = 0;\n\t\tlet starIndex = -1;\n\t\tlet matchIndex = 0;\n\n\t\twhile (searchIndex < search.length) {\n\t\t\tif (templateIndex < template.length && (template[templateIndex] === search[searchIndex] || template[templateIndex] === '*')) {\n\t\t\t\t// Match character or proceed with wildcard\n\t\t\t\tif (template[templateIndex] === '*') {\n\t\t\t\t\tstarIndex = templateIndex;\n\t\t\t\t\tmatchIndex = searchIndex;\n\t\t\t\t\ttemplateIndex++; // Skip the '*'\n\t\t\t\t} else {\n\t\t\t\t\tsearchIndex++;\n\t\t\t\t\ttemplateIndex++;\n\t\t\t\t}\n\t\t\t} else if (starIndex !== -1) { // eslint-disable-line no-negated-condition\n\t\t\t\t// Backtrack to the last '*' and try to match more characters\n\t\t\t\ttemplateIndex = starIndex + 1;\n\t\t\t\tmatchIndex++;\n\t\t\t\tsearchIndex = matchIndex;\n\t\t\t} else {\n\t\t\t\treturn false; // No match\n\t\t\t}\n\t\t}\n\n\t\t// Handle trailing '*' in template\n\t\twhile (templateIndex < template.length && template[templateIndex] === '*') {\n\t\t\ttemplateIndex++;\n\t\t}\n\n\t\treturn templateIndex === template.length;\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names,\n\t\t\t...createDebug.skips.map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tfor (const skip of createDebug.skips) {\n\t\t\tif (matchesTemplate(name, skip)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (const ns of createDebug.names) {\n\t\t\tif (matchesTemplate(name, ns)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n", "/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\tlet m;\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\t// eslint-disable-next-line no-return-assign\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/)) && parseInt(m[1], 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug') || exports.storage.getItem('DEBUG') ;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n", "'use strict';\n\nmodule.exports = (flag, argv = process.argv) => {\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst position = argv.indexOf(prefix + flag);\n\tconst terminatorPosition = argv.indexOf('--');\n\treturn position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);\n};\n", "'use strict';\nconst os = require('os');\nconst tty = require('tty');\nconst hasFlag = require('has-flag');\n\nconst {env} = process;\n\nlet forceColor;\nif (hasFlag('no-color') ||\n\thasFlag('no-colors') ||\n\thasFlag('color=false') ||\n\thasFlag('color=never')) {\n\tforceColor = 0;\n} else if (hasFlag('color') ||\n\thasFlag('colors') ||\n\thasFlag('color=true') ||\n\thasFlag('color=always')) {\n\tforceColor = 1;\n}\n\nif ('FORCE_COLOR' in env) {\n\tif (env.FORCE_COLOR === 'true') {\n\t\tforceColor = 1;\n\t} else if (env.FORCE_COLOR === 'false') {\n\t\tforceColor = 0;\n\t} else {\n\t\tforceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3);\n\t}\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3\n\t};\n}\n\nfunction supportsColor(haveStream, streamIsTTY) {\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (hasFlag('color=16m') ||\n\t\thasFlag('color=full') ||\n\t\thasFlag('color=truecolor')) {\n\t\treturn 3;\n\t}\n\n\tif (hasFlag('color=256')) {\n\t\treturn 2;\n\t}\n\n\tif (haveStream && !streamIsTTY && forceColor === undefined) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor || 0;\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\t// Windows 10 build 10586 is the first Windows release that supports 256 colors.\n\t\t// Windows 10 build 14931 is the first release that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(osRelease[0]) >= 10 &&\n\t\t\tNumber(osRelease[2]) >= 10586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app':\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\tcase 'Apple_Terminal':\n\t\t\t\treturn 2;\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\treturn min;\n}\n\nfunction getSupportLevel(stream) {\n\tconst level = supportsColor(stream, stream && stream.isTTY);\n\treturn translateLevel(level);\n}\n\nmodule.exports = {\n\tsupportsColor: getSupportLevel,\n\tstdout: translateLevel(supportsColor(true, tty.isatty(1))),\n\tstderr: translateLevel(supportsColor(true, tty.isatty(2)))\n};\n", "/**\n * Module dependencies.\n */\n\nconst tty = require('tty');\nconst util = require('util');\n\n/**\n * This is the Node.js implementation of `debug()`.\n */\n\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.destroy = util.deprecate(\n\t() => {},\n\t'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'\n);\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\ntry {\n\t// Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json)\n\t// eslint-disable-next-line import/no-extraneous-dependencies\n\tconst supportsColor = require('supports-color');\n\n\tif (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {\n\t\texports.colors = [\n\t\t\t20,\n\t\t\t21,\n\t\t\t26,\n\t\t\t27,\n\t\t\t32,\n\t\t\t33,\n\t\t\t38,\n\t\t\t39,\n\t\t\t40,\n\t\t\t41,\n\t\t\t42,\n\t\t\t43,\n\t\t\t44,\n\t\t\t45,\n\t\t\t56,\n\t\t\t57,\n\t\t\t62,\n\t\t\t63,\n\t\t\t68,\n\t\t\t69,\n\t\t\t74,\n\t\t\t75,\n\t\t\t76,\n\t\t\t77,\n\t\t\t78,\n\t\t\t79,\n\t\t\t80,\n\t\t\t81,\n\t\t\t92,\n\t\t\t93,\n\t\t\t98,\n\t\t\t99,\n\t\t\t112,\n\t\t\t113,\n\t\t\t128,\n\t\t\t129,\n\t\t\t134,\n\t\t\t135,\n\t\t\t148,\n\t\t\t149,\n\t\t\t160,\n\t\t\t161,\n\t\t\t162,\n\t\t\t163,\n\t\t\t164,\n\t\t\t165,\n\t\t\t166,\n\t\t\t167,\n\t\t\t168,\n\t\t\t169,\n\t\t\t170,\n\t\t\t171,\n\t\t\t172,\n\t\t\t173,\n\t\t\t178,\n\t\t\t179,\n\t\t\t184,\n\t\t\t185,\n\t\t\t196,\n\t\t\t197,\n\t\t\t198,\n\t\t\t199,\n\t\t\t200,\n\t\t\t201,\n\t\t\t202,\n\t\t\t203,\n\t\t\t204,\n\t\t\t205,\n\t\t\t206,\n\t\t\t207,\n\t\t\t208,\n\t\t\t209,\n\t\t\t214,\n\t\t\t215,\n\t\t\t220,\n\t\t\t221\n\t\t];\n\t}\n} catch (error) {\n\t// Swallow - we only care if `supports-color` is available; it doesn't have to be.\n}\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n *   $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(key => {\n\treturn /^debug_/i.test(key);\n}).reduce((obj, key) => {\n\t// Camel-case\n\tconst prop = key\n\t\t.substring(6)\n\t\t.toLowerCase()\n\t\t.replace(/_([a-z])/g, (_, k) => {\n\t\t\treturn k.toUpperCase();\n\t\t});\n\n\t// Coerce string value into JS value\n\tlet val = process.env[key];\n\tif (/^(yes|on|true|enabled)$/i.test(val)) {\n\t\tval = true;\n\t} else if (/^(no|off|false|disabled)$/i.test(val)) {\n\t\tval = false;\n\t} else if (val === 'null') {\n\t\tval = null;\n\t} else {\n\t\tval = Number(val);\n\t}\n\n\tobj[prop] = val;\n\treturn obj;\n}, {});\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n\treturn 'colors' in exports.inspectOpts ?\n\t\tBoolean(exports.inspectOpts.colors) :\n\t\ttty.isatty(process.stderr.fd);\n}\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\tconst {namespace: name, useColors} = this;\n\n\tif (useColors) {\n\t\tconst c = this.color;\n\t\tconst colorCode = '\\u001B[3' + (c < 8 ? c : '8;5;' + c);\n\t\tconst prefix = `  ${colorCode};1m${name} \\u001B[0m`;\n\n\t\targs[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n\t\targs.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\\u001B[0m');\n\t} else {\n\t\targs[0] = getDate() + name + ' ' + args[0];\n\t}\n}\n\nfunction getDate() {\n\tif (exports.inspectOpts.hideDate) {\n\t\treturn '';\n\t}\n\treturn new Date().toISOString() + ' ';\n}\n\n/**\n * Invokes `util.formatWithOptions()` with the specified arguments and writes to stderr.\n */\n\nfunction log(...args) {\n\treturn process.stderr.write(util.formatWithOptions(exports.inspectOpts, ...args) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\tif (namespaces) {\n\t\tprocess.env.DEBUG = namespaces;\n\t} else {\n\t\t// If you set a process.env field to null or undefined, it gets cast to the\n\t\t// string 'null' or 'undefined'. Just delete instead.\n\t\tdelete process.env.DEBUG;\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n\treturn process.env.DEBUG;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init(debug) {\n\tdebug.inspectOpts = {};\n\n\tconst keys = Object.keys(exports.inspectOpts);\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tdebug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nformatters.o = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts)\n\t\t.split('\\n')\n\t\t.map(str => str.trim())\n\t\t.join(' ');\n};\n\n/**\n * Map %O to `util.inspect()`, allowing multiple lines if needed.\n */\n\nformatters.O = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts);\n};\n", "/**\n * Detect Electron renderer / nwjs process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) {\n\tmodule.exports = require('./browser.js');\n} else {\n\tmodule.exports = require('./node.js');\n}\n", "import {\n\tAgent,\n\tClientRequest,\n\tRequestOptions,\n\tAgentCallbackCallback,\n\tAgentCallbackPromise,\n\tAgentCallbackReturn\n} from './index';\n\ntype LegacyCallback = (\n\treq: ClientRequest,\n\topts: RequestOptions,\n\tfn: AgentCallbackCallback\n) => void;\n\nexport default function promisify(fn: LegacyCallback): AgentCallbackPromise {\n\treturn function(this: Agent, req: ClientRequest, opts: RequestOptions) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tfn.call(\n\t\t\t\tthis,\n\t\t\t\treq,\n\t\t\t\topts,\n\t\t\t\t(err: Error | null | undefined, rtn?: AgentCallbackReturn) => {\n\t\t\t\t\tif (err) {\n\t\t\t\t\t\treject(err);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresolve(rtn);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t});\n\t};\n}\n", "import net from 'net';\nimport http from 'http';\nimport https from 'https';\nimport { Duplex } from 'stream';\nimport { EventEmitter } from 'events';\nimport createDebug from 'debug';\nimport promisify from './promisify';\n\nconst debug = createDebug('agent-base');\n\nfunction isAgent(v: any): v is createAgent.AgentLike {\n\treturn Boolean(v) && typeof v.addRequest === 'function';\n}\n\nfunction isSecureEndpoint(): boolean {\n\tconst { stack } = new Error();\n\tif (typeof stack !== 'string') return false;\n\treturn stack.split('\\n').some(l => l.indexOf('(https.js:') !== -1  || l.indexOf('node:https:') !== -1);\n}\n\nfunction createAgent(opts?: createAgent.AgentOptions): createAgent.Agent;\nfunction createAgent(\n\tcallback: createAgent.AgentCallback,\n\topts?: createAgent.AgentOptions\n): createAgent.Agent;\nfunction createAgent(\n\tcallback?: createAgent.AgentCallback | createAgent.AgentOptions,\n\topts?: createAgent.AgentOptions\n) {\n\treturn new createAgent.Agent(callback, opts);\n}\n\nnamespace createAgent {\n\texport interface ClientRequest extends http.ClientRequest {\n\t\t_last?: boolean;\n\t\t_hadError?: boolean;\n\t\tmethod: string;\n\t}\n\n\texport interface AgentRequestOptions {\n\t\thost?: string;\n\t\tpath?: string;\n\t\t// `port` on `http.RequestOptions` can be a string or undefined,\n\t\t// but `net.TcpNetConnectOpts` expects only a number\n\t\tport: number;\n\t}\n\n\texport interface HttpRequestOptions\n\t\textends AgentRequestOptions,\n\t\t\tOmit<http.RequestOptions, keyof AgentRequestOptions> {\n\t\tsecureEndpoint: false;\n\t}\n\n\texport interface HttpsRequestOptions\n\t\textends AgentRequestOptions,\n\t\t\tOmit<https.RequestOptions, keyof AgentRequestOptions> {\n\t\tsecureEndpoint: true;\n\t}\n\n\texport type RequestOptions = HttpRequestOptions | HttpsRequestOptions;\n\n\texport type AgentLike = Pick<createAgent.Agent, 'addRequest'> | http.Agent;\n\n\texport type AgentCallbackReturn = Duplex | AgentLike;\n\n\texport type AgentCallbackCallback = (\n\t\terr?: Error | null,\n\t\tsocket?: createAgent.AgentCallbackReturn\n\t) => void;\n\n\texport type AgentCallbackPromise = (\n\t\treq: createAgent.ClientRequest,\n\t\topts: createAgent.RequestOptions\n\t) =>\n\t\t| createAgent.AgentCallbackReturn\n\t\t| Promise<createAgent.AgentCallbackReturn>;\n\n\texport type AgentCallback = typeof Agent.prototype.callback;\n\n\texport type AgentOptions = {\n\t\ttimeout?: number;\n\t};\n\n\t/**\n\t * Base `http.Agent` implementation.\n\t * No pooling/keep-alive is implemented by default.\n\t *\n\t * @param {Function} callback\n\t * @api public\n\t */\n\texport class Agent extends EventEmitter {\n\t\tpublic timeout: number | null;\n\t\tpublic maxFreeSockets: number;\n\t\tpublic maxTotalSockets: number;\n\t\tpublic maxSockets: number;\n\t\tpublic sockets: {\n\t\t\t[key: string]: net.Socket[];\n\t\t};\n\t\tpublic freeSockets: {\n\t\t\t[key: string]: net.Socket[];\n\t\t};\n\t\tpublic requests: {\n\t\t\t[key: string]: http.IncomingMessage[];\n\t\t};\n\t\tpublic options: https.AgentOptions;\n\t\tprivate promisifiedCallback?: createAgent.AgentCallbackPromise;\n\t\tprivate explicitDefaultPort?: number;\n\t\tprivate explicitProtocol?: string;\n\n\t\tconstructor(\n\t\t\tcallback?: createAgent.AgentCallback | createAgent.AgentOptions,\n\t\t\t_opts?: createAgent.AgentOptions\n\t\t) {\n\t\t\tsuper();\n\n\t\t\tlet opts = _opts;\n\t\t\tif (typeof callback === 'function') {\n\t\t\t\tthis.callback = callback;\n\t\t\t} else if (callback) {\n\t\t\t\topts = callback;\n\t\t\t}\n\n\t\t\t// Timeout for the socket to be returned from the callback\n\t\t\tthis.timeout = null;\n\t\t\tif (opts && typeof opts.timeout === 'number') {\n\t\t\t\tthis.timeout = opts.timeout;\n\t\t\t}\n\n\t\t\t// These aren't actually used by `agent-base`, but are required\n\t\t\t// for the TypeScript definition files in `@types/node` :/\n\t\t\tthis.maxFreeSockets = 1;\n\t\t\tthis.maxSockets = 1;\n\t\t\tthis.maxTotalSockets = Infinity;\n\t\t\tthis.sockets = {};\n\t\t\tthis.freeSockets = {};\n\t\t\tthis.requests = {};\n\t\t\tthis.options = {};\n\t\t}\n\n\t\tget defaultPort(): number {\n\t\t\tif (typeof this.explicitDefaultPort === 'number') {\n\t\t\t\treturn this.explicitDefaultPort;\n\t\t\t}\n\t\t\treturn isSecureEndpoint() ? 443 : 80;\n\t\t}\n\n\t\tset defaultPort(v: number) {\n\t\t\tthis.explicitDefaultPort = v;\n\t\t}\n\n\t\tget protocol(): string {\n\t\t\tif (typeof this.explicitProtocol === 'string') {\n\t\t\t\treturn this.explicitProtocol;\n\t\t\t}\n\t\t\treturn isSecureEndpoint() ? 'https:' : 'http:';\n\t\t}\n\n\t\tset protocol(v: string) {\n\t\t\tthis.explicitProtocol = v;\n\t\t}\n\n\t\tcallback(\n\t\t\treq: createAgent.ClientRequest,\n\t\t\topts: createAgent.RequestOptions,\n\t\t\tfn: createAgent.AgentCallbackCallback\n\t\t): void;\n\t\tcallback(\n\t\t\treq: createAgent.ClientRequest,\n\t\t\topts: createAgent.RequestOptions\n\t\t):\n\t\t\t| createAgent.AgentCallbackReturn\n\t\t\t| Promise<createAgent.AgentCallbackReturn>;\n\t\tcallback(\n\t\t\treq: createAgent.ClientRequest,\n\t\t\topts: createAgent.AgentOptions,\n\t\t\tfn?: createAgent.AgentCallbackCallback\n\t\t):\n\t\t\t| createAgent.AgentCallbackReturn\n\t\t\t| Promise<createAgent.AgentCallbackReturn>\n\t\t\t| void {\n\t\t\tthrow new Error(\n\t\t\t\t'\"agent-base\" has no default implementation, you must subclass and override `callback()`'\n\t\t\t);\n\t\t}\n\n\t\t/**\n\t\t * Called by node-core's \"_http_client.js\" module when creating\n\t\t * a new HTTP request with this Agent instance.\n\t\t *\n\t\t * @api public\n\t\t */\n\t\taddRequest(req: ClientRequest, _opts: RequestOptions): void {\n\t\t\tconst opts: RequestOptions = { ..._opts };\n\n\t\t\tif (typeof opts.secureEndpoint !== 'boolean') {\n\t\t\t\topts.secureEndpoint = isSecureEndpoint();\n\t\t\t}\n\n\t\t\tif (opts.host == null) {\n\t\t\t\topts.host = 'localhost';\n\t\t\t}\n\n\t\t\tif (opts.port == null) {\n\t\t\t\topts.port = opts.secureEndpoint ? 443 : 80;\n\t\t\t}\n\n\t\t\tif (opts.protocol == null) {\n\t\t\t\topts.protocol = opts.secureEndpoint ? 'https:' : 'http:';\n\t\t\t}\n\n\t\t\tif (opts.host && opts.path) {\n\t\t\t\t// If both a `host` and `path` are specified then it's most\n\t\t\t\t// likely the result of a `url.parse()` call... we need to\n\t\t\t\t// remove the `path` portion so that `net.connect()` doesn't\n\t\t\t\t// attempt to open that as a unix socket file.\n\t\t\t\tdelete opts.path;\n\t\t\t}\n\n\t\t\tdelete opts.agent;\n\t\t\tdelete opts.hostname;\n\t\t\tdelete opts._defaultAgent;\n\t\t\tdelete opts.defaultPort;\n\t\t\tdelete opts.createConnection;\n\n\t\t\t// Hint to use \"Connection: close\"\n\t\t\t// XXX: non-documented `http` module API :(\n\t\t\treq._last = true;\n\t\t\treq.shouldKeepAlive = false;\n\n\t\t\tlet timedOut = false;\n\t\t\tlet timeoutId: ReturnType<typeof setTimeout> | null = null;\n\t\t\tconst timeoutMs = opts.timeout || this.timeout;\n\n\t\t\tconst onerror = (err: NodeJS.ErrnoException) => {\n\t\t\t\tif (req._hadError) return;\n\t\t\t\treq.emit('error', err);\n\t\t\t\t// For Safety. Some additional errors might fire later on\n\t\t\t\t// and we need to make sure we don't double-fire the error event.\n\t\t\t\treq._hadError = true;\n\t\t\t};\n\n\t\t\tconst ontimeout = () => {\n\t\t\t\ttimeoutId = null;\n\t\t\t\ttimedOut = true;\n\t\t\t\tconst err: NodeJS.ErrnoException = new Error(\n\t\t\t\t\t`A \"socket\" was not created for HTTP request before ${timeoutMs}ms`\n\t\t\t\t);\n\t\t\t\terr.code = 'ETIMEOUT';\n\t\t\t\tonerror(err);\n\t\t\t};\n\n\t\t\tconst callbackError = (err: NodeJS.ErrnoException) => {\n\t\t\t\tif (timedOut) return;\n\t\t\t\tif (timeoutId !== null) {\n\t\t\t\t\tclearTimeout(timeoutId);\n\t\t\t\t\ttimeoutId = null;\n\t\t\t\t}\n\t\t\t\tonerror(err);\n\t\t\t};\n\n\t\t\tconst onsocket = (socket: AgentCallbackReturn) => {\n\t\t\t\tif (timedOut) return;\n\t\t\t\tif (timeoutId != null) {\n\t\t\t\t\tclearTimeout(timeoutId);\n\t\t\t\t\ttimeoutId = null;\n\t\t\t\t}\n\n\t\t\t\tif (isAgent(socket)) {\n\t\t\t\t\t// `socket` is actually an `http.Agent` instance, so\n\t\t\t\t\t// relinquish responsibility for this `req` to the Agent\n\t\t\t\t\t// from here on\n\t\t\t\t\tdebug(\n\t\t\t\t\t\t'Callback returned another Agent instance %o',\n\t\t\t\t\t\tsocket.constructor.name\n\t\t\t\t\t);\n\t\t\t\t\t(socket as createAgent.Agent).addRequest(req, opts);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (socket) {\n\t\t\t\t\tsocket.once('free', () => {\n\t\t\t\t\t\tthis.freeSocket(socket as net.Socket, opts);\n\t\t\t\t\t});\n\t\t\t\t\treq.onSocket(socket as net.Socket);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst err = new Error(\n\t\t\t\t\t`no Duplex stream was returned to agent-base for \\`${req.method} ${req.path}\\``\n\t\t\t\t);\n\t\t\t\tonerror(err);\n\t\t\t};\n\n\t\t\tif (typeof this.callback !== 'function') {\n\t\t\t\tonerror(new Error('`callback` is not defined'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!this.promisifiedCallback) {\n\t\t\t\tif (this.callback.length >= 3) {\n\t\t\t\t\tdebug('Converting legacy callback function to promise');\n\t\t\t\t\tthis.promisifiedCallback = promisify(this.callback);\n\t\t\t\t} else {\n\t\t\t\t\tthis.promisifiedCallback = this.callback;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (typeof timeoutMs === 'number' && timeoutMs > 0) {\n\t\t\t\ttimeoutId = setTimeout(ontimeout, timeoutMs);\n\t\t\t}\n\n\t\t\tif ('port' in opts && typeof opts.port !== 'number') {\n\t\t\t\topts.port = Number(opts.port);\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tdebug(\n\t\t\t\t\t'Resolving socket for %o request: %o',\n\t\t\t\t\topts.protocol,\n\t\t\t\t\t`${req.method} ${req.path}`\n\t\t\t\t);\n\t\t\t\tPromise.resolve(this.promisifiedCallback(req, opts)).then(\n\t\t\t\t\tonsocket,\n\t\t\t\t\tcallbackError\n\t\t\t\t);\n\t\t\t} catch (err) {\n\t\t\t\tPromise.reject(err).catch(callbackError);\n\t\t\t}\n\t\t}\n\n\t\tfreeSocket(socket: net.Socket, opts: AgentOptions) {\n\t\t\tdebug('Freeing socket %o %o', socket.constructor.name, opts);\n\t\t\tsocket.destroy();\n\t\t}\n\n\t\tdestroy() {\n\t\t\tdebug('Destroying agent %o', this.constructor.name);\n\t\t}\n\t}\n\n\t// So that `instanceof` works correctly\n\tcreateAgent.prototype = createAgent.Agent.prototype;\n}\n\nexport = createAgent;\n", null, null, null, "var debug;\n\nmodule.exports = function () {\n  if (!debug) {\n    try {\n      /* eslint global-require: off */\n      debug = require(\"debug\")(\"follow-redirects\");\n    }\n    catch (error) { /* */ }\n    if (typeof debug !== \"function\") {\n      debug = function () { /* */ };\n    }\n  }\n  debug.apply(null, arguments);\n};\n", "var url = require(\"url\");\nvar URL = url.URL;\nvar http = require(\"http\");\nvar https = require(\"https\");\nvar Writable = require(\"stream\").Writable;\nvar assert = require(\"assert\");\nvar debug = require(\"./debug\");\n\n// Preventive platform detection\n// istanbul ignore next\n(function detectUnsupportedEnvironment() {\n  var looksLikeNode = typeof process !== \"undefined\";\n  var looksLikeBrowser = typeof window !== \"undefined\" && typeof document !== \"undefined\";\n  var looksLikeV8 = isFunction(Error.captureStackTrace);\n  if (!looksLikeNode && (looksLikeBrowser || !looksLikeV8)) {\n    console.warn(\"The follow-redirects package should be excluded from browser builds.\");\n  }\n}());\n\n// Whether to use the native URL object or the legacy url module\nvar useNativeURL = false;\ntry {\n  assert(new URL(\"\"));\n}\ncatch (error) {\n  useNativeURL = error.code === \"ERR_INVALID_URL\";\n}\n\n// HTTP headers to drop across HTTP/HTTPS and domain boundaries\nvar sensitiveHeaders = [\n  \"Authorization\",\n  \"Proxy-Authorization\",\n  \"Cookie\",\n];\n\n// URL fields to preserve in copy operations\nvar preservedUrlFields = [\n  \"auth\",\n  \"host\",\n  \"hostname\",\n  \"href\",\n  \"path\",\n  \"pathname\",\n  \"port\",\n  \"protocol\",\n  \"query\",\n  \"search\",\n  \"hash\",\n];\n\n// Create handlers that pass events from native requests\nvar events = [\"abort\", \"aborted\", \"connect\", \"error\", \"socket\", \"timeout\"];\nvar eventHandlers = Object.create(null);\nevents.forEach(function (event) {\n  eventHandlers[event] = function (arg1, arg2, arg3) {\n    this._redirectable.emit(event, arg1, arg2, arg3);\n  };\n});\n\n// Error types with codes\nvar InvalidUrlError = createErrorType(\n  \"ERR_INVALID_URL\",\n  \"Invalid URL\",\n  TypeError\n);\nvar RedirectionError = createErrorType(\n  \"ERR_FR_REDIRECTION_FAILURE\",\n  \"Redirected request failed\"\n);\nvar TooManyRedirectsError = createErrorType(\n  \"ERR_FR_TOO_MANY_REDIRECTS\",\n  \"Maximum number of redirects exceeded\",\n  RedirectionError\n);\nvar MaxBodyLengthExceededError = createErrorType(\n  \"ERR_FR_MAX_BODY_LENGTH_EXCEEDED\",\n  \"Request body larger than maxBodyLength limit\"\n);\nvar WriteAfterEndError = createErrorType(\n  \"ERR_STREAM_WRITE_AFTER_END\",\n  \"write after end\"\n);\n\n// istanbul ignore next\nvar destroy = Writable.prototype.destroy || noop;\n\n// An HTTP(S) request that can be redirected\nfunction RedirectableRequest(options, responseCallback) {\n  // Initialize the request\n  Writable.call(this);\n  this._sanitizeOptions(options);\n  this._options = options;\n  this._ended = false;\n  this._ending = false;\n  this._redirectCount = 0;\n  this._redirects = [];\n  this._requestBodyLength = 0;\n  this._requestBodyBuffers = [];\n\n  // Attach a callback if passed\n  if (responseCallback) {\n    this.on(\"response\", responseCallback);\n  }\n\n  // React to responses of native requests\n  var self = this;\n  this._onNativeResponse = function (response) {\n    try {\n      self._processResponse(response);\n    }\n    catch (cause) {\n      self.emit(\"error\", cause instanceof RedirectionError ?\n        cause : new RedirectionError({ cause: cause }));\n    }\n  };\n\n  // Create filter for sensitive HTTP headers\n  this._headerFilter = new RegExp(\"^(?:\" +\n      sensitiveHeaders.concat(options.sensitiveHeaders).map(escapeRegex).join(\"|\") +\n    \")$\", \"i\");\n\n  // Perform the first request\n  this._performRequest();\n}\nRedirectableRequest.prototype = Object.create(Writable.prototype);\n\nRedirectableRequest.prototype.abort = function () {\n  destroyRequest(this._currentRequest);\n  this._currentRequest.abort();\n  this.emit(\"abort\");\n};\n\nRedirectableRequest.prototype.destroy = function (error) {\n  destroyRequest(this._currentRequest, error);\n  destroy.call(this, error);\n  return this;\n};\n\n// Writes buffered data to the current native request\nRedirectableRequest.prototype.write = function (data, encoding, callback) {\n  // Writing is not allowed if end has been called\n  if (this._ending) {\n    throw new WriteAfterEndError();\n  }\n\n  // Validate input and shift parameters if necessary\n  if (!isString(data) && !isBuffer(data)) {\n    throw new TypeError(\"data should be a string, Buffer or Uint8Array\");\n  }\n  if (isFunction(encoding)) {\n    callback = encoding;\n    encoding = null;\n  }\n\n  // Ignore empty buffers, since writing them doesn't invoke the callback\n  // https://github.com/nodejs/node/issues/22066\n  if (data.length === 0) {\n    if (callback) {\n      callback();\n    }\n    return;\n  }\n  // Only write when we don't exceed the maximum body length\n  if (this._requestBodyLength + data.length <= this._options.maxBodyLength) {\n    this._requestBodyLength += data.length;\n    this._requestBodyBuffers.push({ data: data, encoding: encoding });\n    this._currentRequest.write(data, encoding, callback);\n  }\n  // Error when we exceed the maximum body length\n  else {\n    this.emit(\"error\", new MaxBodyLengthExceededError());\n    this.abort();\n  }\n};\n\n// Ends the current native request\nRedirectableRequest.prototype.end = function (data, encoding, callback) {\n  // Shift parameters if necessary\n  if (isFunction(data)) {\n    callback = data;\n    data = encoding = null;\n  }\n  else if (isFunction(encoding)) {\n    callback = encoding;\n    encoding = null;\n  }\n\n  // Write data if needed and end\n  if (!data) {\n    this._ended = this._ending = true;\n    this._currentRequest.end(null, null, callback);\n  }\n  else {\n    var self = this;\n    var currentRequest = this._currentRequest;\n    this.write(data, encoding, function () {\n      self._ended = true;\n      currentRequest.end(null, null, callback);\n    });\n    this._ending = true;\n  }\n};\n\n// Sets a header value on the current native request\nRedirectableRequest.prototype.setHeader = function (name, value) {\n  this._options.headers[name] = value;\n  this._currentRequest.setHeader(name, value);\n};\n\n// Clears a header value on the current native request\nRedirectableRequest.prototype.removeHeader = function (name) {\n  delete this._options.headers[name];\n  this._currentRequest.removeHeader(name);\n};\n\n// Global timeout for all underlying requests\nRedirectableRequest.prototype.setTimeout = function (msecs, callback) {\n  var self = this;\n\n  // Destroys the socket on timeout\n  function destroyOnTimeout(socket) {\n    socket.setTimeout(msecs);\n    socket.removeListener(\"timeout\", socket.destroy);\n    socket.addListener(\"timeout\", socket.destroy);\n  }\n\n  // Sets up a timer to trigger a timeout event\n  function startTimer(socket) {\n    if (self._timeout) {\n      clearTimeout(self._timeout);\n    }\n    self._timeout = setTimeout(function () {\n      self.emit(\"timeout\");\n      clearTimer();\n    }, msecs);\n    destroyOnTimeout(socket);\n  }\n\n  // Stops a timeout from triggering\n  function clearTimer() {\n    // Clear the timeout\n    if (self._timeout) {\n      clearTimeout(self._timeout);\n      self._timeout = null;\n    }\n\n    // Clean up all attached listeners\n    self.removeListener(\"abort\", clearTimer);\n    self.removeListener(\"error\", clearTimer);\n    self.removeListener(\"response\", clearTimer);\n    self.removeListener(\"close\", clearTimer);\n    if (callback) {\n      self.removeListener(\"timeout\", callback);\n    }\n    if (!self.socket) {\n      self._currentRequest.removeListener(\"socket\", startTimer);\n    }\n  }\n\n  // Attach callback if passed\n  if (callback) {\n    this.on(\"timeout\", callback);\n  }\n\n  // Start the timer if or when the socket is opened\n  if (this.socket) {\n    startTimer(this.socket);\n  }\n  else {\n    this._currentRequest.once(\"socket\", startTimer);\n  }\n\n  // Clean up on events\n  this.on(\"socket\", destroyOnTimeout);\n  this.on(\"abort\", clearTimer);\n  this.on(\"error\", clearTimer);\n  this.on(\"response\", clearTimer);\n  this.on(\"close\", clearTimer);\n\n  return this;\n};\n\n// Proxy all other public ClientRequest methods\n[\n  \"flushHeaders\", \"getHeader\",\n  \"setNoDelay\", \"setSocketKeepAlive\",\n].forEach(function (method) {\n  RedirectableRequest.prototype[method] = function (a, b) {\n    return this._currentRequest[method](a, b);\n  };\n});\n\n// Proxy all public ClientRequest properties\n[\"aborted\", \"connection\", \"socket\"].forEach(function (property) {\n  Object.defineProperty(RedirectableRequest.prototype, property, {\n    get: function () { return this._currentRequest[property]; },\n  });\n});\n\nRedirectableRequest.prototype._sanitizeOptions = function (options) {\n  // Ensure headers are always present\n  if (!options.headers) {\n    options.headers = {};\n  }\n  if (!isArray(options.sensitiveHeaders)) {\n    options.sensitiveHeaders = [];\n  }\n\n  // Since http.request treats host as an alias of hostname,\n  // but the url module interprets host as hostname plus port,\n  // eliminate the host property to avoid confusion.\n  if (options.host) {\n    // Use hostname if set, because it has precedence\n    if (!options.hostname) {\n      options.hostname = options.host;\n    }\n    delete options.host;\n  }\n\n  // Complete the URL object when necessary\n  if (!options.pathname && options.path) {\n    var searchPos = options.path.indexOf(\"?\");\n    if (searchPos < 0) {\n      options.pathname = options.path;\n    }\n    else {\n      options.pathname = options.path.substring(0, searchPos);\n      options.search = options.path.substring(searchPos);\n    }\n  }\n};\n\n\n// Executes the next native request (initial or redirect)\nRedirectableRequest.prototype._performRequest = function () {\n  // Load the native protocol\n  var protocol = this._options.protocol;\n  var nativeProtocol = this._options.nativeProtocols[protocol];\n  if (!nativeProtocol) {\n    throw new TypeError(\"Unsupported protocol \" + protocol);\n  }\n\n  // If specified, use the agent corresponding to the protocol\n  // (HTTP and HTTPS use different types of agents)\n  if (this._options.agents) {\n    var scheme = protocol.slice(0, -1);\n    this._options.agent = this._options.agents[scheme];\n  }\n\n  // Create the native request and set up its event handlers\n  var request = this._currentRequest =\n        nativeProtocol.request(this._options, this._onNativeResponse);\n  request._redirectable = this;\n  for (var event of events) {\n    request.on(event, eventHandlers[event]);\n  }\n\n  // RFC7230\u00A75.3.1: When making a request directly to an origin server, [\u2026]\n  // a client MUST send only the absolute path [\u2026] as the request-target.\n  this._currentUrl = /^\\//.test(this._options.path) ?\n    url.format(this._options) :\n    // When making a request to a proxy, [\u2026]\n    // a client MUST send the target URI in absolute-form [\u2026].\n    this._options.path;\n\n  // End a redirected request\n  // (The first request must be ended explicitly with RedirectableRequest#end)\n  if (this._isRedirect) {\n    // Write the request entity and end\n    var i = 0;\n    var self = this;\n    var buffers = this._requestBodyBuffers;\n    (function writeNext(error) {\n      // Only write if this request has not been redirected yet\n      // istanbul ignore else\n      if (request === self._currentRequest) {\n        // Report any write errors\n        // istanbul ignore if\n        if (error) {\n          self.emit(\"error\", error);\n        }\n        // Write the next buffer if there are still left\n        else if (i < buffers.length) {\n          var buffer = buffers[i++];\n          // istanbul ignore else\n          if (!request.finished) {\n            request.write(buffer.data, buffer.encoding, writeNext);\n          }\n        }\n        // End the request if `end` has been called on us\n        else if (self._ended) {\n          request.end();\n        }\n      }\n    }());\n  }\n};\n\n// Processes a response from the current native request\nRedirectableRequest.prototype._processResponse = function (response) {\n  // Store the redirected response\n  var statusCode = response.statusCode;\n  if (this._options.trackRedirects) {\n    this._redirects.push({\n      url: this._currentUrl,\n      headers: response.headers,\n      statusCode: statusCode,\n    });\n  }\n\n  // RFC7231\u00A76.4: The 3xx (Redirection) class of status code indicates\n  // that further action needs to be taken by the user agent in order to\n  // fulfill the request. If a Location header field is provided,\n  // the user agent MAY automatically redirect its request to the URI\n  // referenced by the Location field value,\n  // even if the specific status code is not understood.\n\n  // If the response is not a redirect; return it as-is\n  var location = response.headers.location;\n  if (!location || this._options.followRedirects === false ||\n      statusCode < 300 || statusCode >= 400) {\n    response.responseUrl = this._currentUrl;\n    response.redirects = this._redirects;\n    this.emit(\"response\", response);\n\n    // Clean up\n    this._requestBodyBuffers = [];\n    return;\n  }\n\n  // The response is a redirect, so abort the current request\n  destroyRequest(this._currentRequest);\n  // Discard the remainder of the response to avoid waiting for data\n  response.destroy();\n\n  // RFC7231\u00A76.4: A client SHOULD detect and intervene\n  // in cyclical redirections (i.e., \"infinite\" redirection loops).\n  if (++this._redirectCount > this._options.maxRedirects) {\n    throw new TooManyRedirectsError();\n  }\n\n  // Store the request headers if applicable\n  var requestHeaders;\n  var beforeRedirect = this._options.beforeRedirect;\n  if (beforeRedirect) {\n    requestHeaders = Object.assign({\n      // The Host header was set by nativeProtocol.request\n      Host: response.req.getHeader(\"host\"),\n    }, this._options.headers);\n  }\n\n  // RFC7231\u00A76.4: Automatic redirection needs to done with\n  // care for methods not known to be safe, [\u2026]\n  // RFC7231\u00A76.4.2\u20133: For historical reasons, a user agent MAY change\n  // the request method from POST to GET for the subsequent request.\n  var method = this._options.method;\n  if ((statusCode === 301 || statusCode === 302) && this._options.method === \"POST\" ||\n      // RFC7231\u00A76.4.4: The 303 (See Other) status code indicates that\n      // the server is redirecting the user agent to a different resource [\u2026]\n      // A user agent can perform a retrieval request targeting that URI\n      // (a GET or HEAD request if using HTTP) [\u2026]\n      (statusCode === 303) && !/^(?:GET|HEAD)$/.test(this._options.method)) {\n    this._options.method = \"GET\";\n    // Drop a possible entity and headers related to it\n    this._requestBodyBuffers = [];\n    removeMatchingHeaders(/^content-/i, this._options.headers);\n  }\n\n  // Drop the Host header, as the redirect might lead to a different host\n  var currentHostHeader = removeMatchingHeaders(/^host$/i, this._options.headers);\n\n  // If the redirect is relative, carry over the host of the last request\n  var currentUrlParts = parseUrl(this._currentUrl);\n  var currentHost = currentHostHeader || currentUrlParts.host;\n  var currentUrl = /^\\w+:/.test(location) ? this._currentUrl :\n    url.format(Object.assign(currentUrlParts, { host: currentHost }));\n\n  // Create the redirected request\n  var redirectUrl = resolveUrl(location, currentUrl);\n  debug(\"redirecting to\", redirectUrl.href);\n  this._isRedirect = true;\n  spreadUrlObject(redirectUrl, this._options);\n\n  // Drop confidential headers when redirecting to a less secure protocol\n  // or to a different domain that is not a superdomain\n  if (redirectUrl.protocol !== currentUrlParts.protocol &&\n     redirectUrl.protocol !== \"https:\" ||\n     redirectUrl.host !== currentHost &&\n     !isSubdomain(redirectUrl.host, currentHost)) {\n    removeMatchingHeaders(this._headerFilter, this._options.headers);\n  }\n\n  // Evaluate the beforeRedirect callback\n  if (isFunction(beforeRedirect)) {\n    var responseDetails = {\n      headers: response.headers,\n      statusCode: statusCode,\n    };\n    var requestDetails = {\n      url: currentUrl,\n      method: method,\n      headers: requestHeaders,\n    };\n    beforeRedirect(this._options, responseDetails, requestDetails);\n    this._sanitizeOptions(this._options);\n  }\n\n  // Perform the redirected request\n  this._performRequest();\n};\n\n// Wraps the key/value object of protocols with redirect functionality\nfunction wrap(protocols) {\n  // Default settings\n  var exports = {\n    maxRedirects: 21,\n    maxBodyLength: 10 * 1024 * 1024,\n  };\n\n  // Wrap each protocol\n  var nativeProtocols = {};\n  Object.keys(protocols).forEach(function (scheme) {\n    var protocol = scheme + \":\";\n    var nativeProtocol = nativeProtocols[protocol] = protocols[scheme];\n    var wrappedProtocol = exports[scheme] = Object.create(nativeProtocol);\n\n    // Executes a request, following redirects\n    function request(input, options, callback) {\n      // Parse parameters, ensuring that input is an object\n      if (isURL(input)) {\n        input = spreadUrlObject(input);\n      }\n      else if (isString(input)) {\n        input = spreadUrlObject(parseUrl(input));\n      }\n      else {\n        callback = options;\n        options = validateUrl(input);\n        input = { protocol: protocol };\n      }\n      if (isFunction(options)) {\n        callback = options;\n        options = null;\n      }\n\n      // Set defaults\n      options = Object.assign({\n        maxRedirects: exports.maxRedirects,\n        maxBodyLength: exports.maxBodyLength,\n      }, input, options);\n      options.nativeProtocols = nativeProtocols;\n      if (!isString(options.host) && !isString(options.hostname)) {\n        options.hostname = \"::1\";\n      }\n\n      assert.equal(options.protocol, protocol, \"protocol mismatch\");\n      debug(\"options\", options);\n      return new RedirectableRequest(options, callback);\n    }\n\n    // Executes a GET request, following redirects\n    function get(input, options, callback) {\n      var wrappedRequest = wrappedProtocol.request(input, options, callback);\n      wrappedRequest.end();\n      return wrappedRequest;\n    }\n\n    // Expose the properties on the wrapped protocol\n    Object.defineProperties(wrappedProtocol, {\n      request: { value: request, configurable: true, enumerable: true, writable: true },\n      get: { value: get, configurable: true, enumerable: true, writable: true },\n    });\n  });\n  return exports;\n}\n\nfunction noop() { /* empty */ }\n\nfunction parseUrl(input) {\n  var parsed;\n  // istanbul ignore else\n  if (useNativeURL) {\n    parsed = new URL(input);\n  }\n  else {\n    // Ensure the URL is valid and absolute\n    parsed = validateUrl(url.parse(input));\n    if (!isString(parsed.protocol)) {\n      throw new InvalidUrlError({ input });\n    }\n  }\n  return parsed;\n}\n\nfunction resolveUrl(relative, base) {\n  // istanbul ignore next\n  return useNativeURL ? new URL(relative, base) : parseUrl(url.resolve(base, relative));\n}\n\nfunction validateUrl(input) {\n  if (/^\\[/.test(input.hostname) && !/^\\[[:0-9a-f]+\\]$/i.test(input.hostname)) {\n    throw new InvalidUrlError({ input: input.href || input });\n  }\n  if (/^\\[/.test(input.host) && !/^\\[[:0-9a-f]+\\](:\\d+)?$/i.test(input.host)) {\n    throw new InvalidUrlError({ input: input.href || input });\n  }\n  return input;\n}\n\nfunction spreadUrlObject(urlObject, target) {\n  var spread = target || {};\n  for (var key of preservedUrlFields) {\n    spread[key] = urlObject[key];\n  }\n\n  // Fix IPv6 hostname\n  if (spread.hostname.startsWith(\"[\")) {\n    spread.hostname = spread.hostname.slice(1, -1);\n  }\n  // Ensure port is a number\n  if (spread.port !== \"\") {\n    spread.port = Number(spread.port);\n  }\n  // Concatenate path\n  spread.path = spread.search ? spread.pathname + spread.search : spread.pathname;\n\n  return spread;\n}\n\nfunction removeMatchingHeaders(regex, headers) {\n  var lastValue;\n  for (var header in headers) {\n    if (regex.test(header)) {\n      lastValue = headers[header];\n      delete headers[header];\n    }\n  }\n  return (lastValue === null || typeof lastValue === \"undefined\") ?\n    undefined : String(lastValue).trim();\n}\n\nfunction createErrorType(code, message, baseClass) {\n  // Create constructor\n  function CustomError(properties) {\n    // istanbul ignore else\n    if (isFunction(Error.captureStackTrace)) {\n      Error.captureStackTrace(this, this.constructor);\n    }\n    Object.assign(this, properties || {});\n    this.code = code;\n    this.message = this.cause ? message + \": \" + this.cause.message : message;\n  }\n\n  // Attach constructor and set default properties\n  CustomError.prototype = new (baseClass || Error)();\n  Object.defineProperties(CustomError.prototype, {\n    constructor: {\n      value: CustomError,\n      enumerable: false,\n    },\n    name: {\n      value: \"Error [\" + code + \"]\",\n      enumerable: false,\n    },\n  });\n  return CustomError;\n}\n\nfunction destroyRequest(request, error) {\n  for (var event of events) {\n    request.removeListener(event, eventHandlers[event]);\n  }\n  request.on(\"error\", noop);\n  request.destroy(error);\n}\n\nfunction isSubdomain(subdomain, domain) {\n  assert(isString(subdomain) && isString(domain));\n  var dot = subdomain.length - domain.length - 1;\n  return dot > 0 && subdomain[dot] === \".\" && subdomain.endsWith(domain);\n}\n\nfunction isArray(value) {\n  return value instanceof Array;\n}\n\nfunction isString(value) {\n  return typeof value === \"string\" || value instanceof String;\n}\n\nfunction isFunction(value) {\n  return typeof value === \"function\";\n}\n\nfunction isBuffer(value) {\n  return typeof value === \"object\" && (\"length\" in value);\n}\n\nfunction isURL(value) {\n  return URL && value instanceof URL;\n}\n\nfunction escapeRegex(regex) {\n  return regex.replace(/[\\]\\\\/()*+?.$]/g, \"\\\\$&\");\n}\n\n// Exports\nmodule.exports = wrap({ http: http, https: https });\nmodule.exports.wrap = wrap;\n", "'use strict';\n\nconst denyList = new Set([\n\t'ENOTFOUND',\n\t'ENETUNREACH',\n\n\t// SSL errors from https://github.com/nodejs/node/blob/fc8e3e2cdc521978351de257030db0076d79e0ab/src/crypto/crypto_common.cc#L301-L328\n\t'UNABLE_TO_GET_ISSUER_CERT',\n\t'UNABLE_TO_GET_CRL',\n\t'UNABLE_TO_DECRYPT_CERT_SIGNATURE',\n\t'UNABLE_TO_DECRYPT_CRL_SIGNATURE',\n\t'UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY',\n\t'CERT_SIGNATURE_FAILURE',\n\t'CRL_SIGNATURE_FAILURE',\n\t'CERT_NOT_YET_VALID',\n\t'CERT_HAS_EXPIRED',\n\t'CRL_NOT_YET_VALID',\n\t'CRL_HAS_EXPIRED',\n\t'ERROR_IN_CERT_NOT_BEFORE_FIELD',\n\t'ERROR_IN_CERT_NOT_AFTER_FIELD',\n\t'ERROR_IN_CRL_LAST_UPDATE_FIELD',\n\t'ERROR_IN_CRL_NEXT_UPDATE_FIELD',\n\t'OUT_OF_MEM',\n\t'DEPTH_ZERO_SELF_SIGNED_CERT',\n\t'SELF_SIGNED_CERT_IN_CHAIN',\n\t'UNABLE_TO_GET_ISSUER_CERT_LOCALLY',\n\t'UNABLE_TO_VERIFY_LEAF_SIGNATURE',\n\t'CERT_CHAIN_TOO_LONG',\n\t'CERT_REVOKED',\n\t'INVALID_CA',\n\t'PATH_LENGTH_EXCEEDED',\n\t'INVALID_PURPOSE',\n\t'CERT_UNTRUSTED',\n\t'CERT_REJECTED',\n\t'HOSTNAME_MISMATCH'\n]);\n\n// TODO: Use `error?.code` when targeting Node.js 14\nmodule.exports = error => !denyList.has(error && error.code);\n", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar isBrowser = typeof window !== \"undefined\" && typeof window.document !== \"undefined\";\n\nvar isNode = typeof process !== \"undefined\" && process.versions != null && process.versions.node != null;\n\nvar isWebWorker = (typeof self === \"undefined\" ? \"undefined\" : _typeof(self)) === \"object\" && self.constructor && self.constructor.name === \"DedicatedWorkerGlobalScope\";\n\n/**\n * @see https://github.com/jsdom/jsdom/releases/tag/12.0.0\n * @see https://github.com/jsdom/jsdom/issues/1537\n */\nvar isJsDom = typeof window !== \"undefined\" && window.name === \"nodejs\" || typeof navigator !== \"undefined\" && (navigator.userAgent.includes(\"Node.js\") || navigator.userAgent.includes(\"jsdom\"));\n\nvar isDeno = typeof Deno !== \"undefined\" && typeof Deno.version !== \"undefined\" && typeof Deno.version.deno !== \"undefined\";\n\nexports.isBrowser = isBrowser;\nexports.isWebWorker = isWebWorker;\nexports.isNode = isNode;\nexports.isJsDom = isJsDom;\nexports.isDeno = isDeno;", "module.exports = require('util').inspect;\n", "var hasMap = typeof Map === 'function' && Map.prototype;\nvar mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;\nvar mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;\nvar mapForEach = hasMap && Map.prototype.forEach;\nvar hasSet = typeof Set === 'function' && Set.prototype;\nvar setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;\nvar setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;\nvar setForEach = hasSet && Set.prototype.forEach;\nvar hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;\nvar weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;\nvar hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;\nvar weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;\nvar hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;\nvar weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;\nvar booleanValueOf = Boolean.prototype.valueOf;\nvar objectToString = Object.prototype.toString;\nvar functionToString = Function.prototype.toString;\nvar $match = String.prototype.match;\nvar $slice = String.prototype.slice;\nvar $replace = String.prototype.replace;\nvar $toUpperCase = String.prototype.toUpperCase;\nvar $toLowerCase = String.prototype.toLowerCase;\nvar $test = RegExp.prototype.test;\nvar $concat = Array.prototype.concat;\nvar $join = Array.prototype.join;\nvar $arrSlice = Array.prototype.slice;\nvar $floor = Math.floor;\nvar bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;\nvar gOPS = Object.getOwnPropertySymbols;\nvar symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;\nvar hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';\n// ie, `has-tostringtag/shams\nvar toStringTag = typeof Symbol === 'function' && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? 'object' : 'symbol')\n    ? Symbol.toStringTag\n    : null;\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (\n    [].__proto__ === Array.prototype // eslint-disable-line no-proto\n        ? function (O) {\n            return O.__proto__; // eslint-disable-line no-proto\n        }\n        : null\n);\n\nfunction addNumericSeparator(num, str) {\n    if (\n        num === Infinity\n        || num === -Infinity\n        || num !== num\n        || (num && num > -1000 && num < 1000)\n        || $test.call(/e/, str)\n    ) {\n        return str;\n    }\n    var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;\n    if (typeof num === 'number') {\n        var int = num < 0 ? -$floor(-num) : $floor(num); // trunc(num)\n        if (int !== num) {\n            var intStr = String(int);\n            var dec = $slice.call(str, intStr.length + 1);\n            return $replace.call(intStr, sepRegex, '$&_') + '.' + $replace.call($replace.call(dec, /([0-9]{3})/g, '$&_'), /_$/, '');\n        }\n    }\n    return $replace.call(str, sepRegex, '$&_');\n}\n\nvar utilInspect = require('./util.inspect');\nvar inspectCustom = utilInspect.custom;\nvar inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null;\n\nvar quotes = {\n    __proto__: null,\n    'double': '\"',\n    single: \"'\"\n};\nvar quoteREs = {\n    __proto__: null,\n    'double': /([\"\\\\])/g,\n    single: /(['\\\\])/g\n};\n\nmodule.exports = function inspect_(obj, options, depth, seen) {\n    var opts = options || {};\n\n    if (has(opts, 'quoteStyle') && !has(quotes, opts.quoteStyle)) {\n        throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n    }\n    if (\n        has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'\n            ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity\n            : opts.maxStringLength !== null\n        )\n    ) {\n        throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n    }\n    var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;\n    if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {\n        throw new TypeError('option \"customInspect\", if provided, must be `true`, `false`, or `\\'symbol\\'`');\n    }\n\n    if (\n        has(opts, 'indent')\n        && opts.indent !== null\n        && opts.indent !== '\\t'\n        && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)\n    ) {\n        throw new TypeError('option \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n    }\n    if (has(opts, 'numericSeparator') && typeof opts.numericSeparator !== 'boolean') {\n        throw new TypeError('option \"numericSeparator\", if provided, must be `true` or `false`');\n    }\n    var numericSeparator = opts.numericSeparator;\n\n    if (typeof obj === 'undefined') {\n        return 'undefined';\n    }\n    if (obj === null) {\n        return 'null';\n    }\n    if (typeof obj === 'boolean') {\n        return obj ? 'true' : 'false';\n    }\n\n    if (typeof obj === 'string') {\n        return inspectString(obj, opts);\n    }\n    if (typeof obj === 'number') {\n        if (obj === 0) {\n            return Infinity / obj > 0 ? '0' : '-0';\n        }\n        var str = String(obj);\n        return numericSeparator ? addNumericSeparator(obj, str) : str;\n    }\n    if (typeof obj === 'bigint') {\n        var bigIntStr = String(obj) + 'n';\n        return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr;\n    }\n\n    var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;\n    if (typeof depth === 'undefined') { depth = 0; }\n    if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {\n        return isArray(obj) ? '[Array]' : '[Object]';\n    }\n\n    var indent = getIndent(opts, depth);\n\n    if (typeof seen === 'undefined') {\n        seen = [];\n    } else if (indexOf(seen, obj) >= 0) {\n        return '[Circular]';\n    }\n\n    function inspect(value, from, noIndent) {\n        if (from) {\n            seen = $arrSlice.call(seen);\n            seen.push(from);\n        }\n        if (noIndent) {\n            var newOpts = {\n                depth: opts.depth\n            };\n            if (has(opts, 'quoteStyle')) {\n                newOpts.quoteStyle = opts.quoteStyle;\n            }\n            return inspect_(value, newOpts, depth + 1, seen);\n        }\n        return inspect_(value, opts, depth + 1, seen);\n    }\n\n    if (typeof obj === 'function' && !isRegExp(obj)) { // in older engines, regexes are callable\n        var name = nameOf(obj);\n        var keys = arrObjKeys(obj, inspect);\n        return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + $join.call(keys, ', ') + ' }' : '');\n    }\n    if (isSymbol(obj)) {\n        var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\\(.*\\))_[^)]*$/, '$1') : symToString.call(obj);\n        return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;\n    }\n    if (isElement(obj)) {\n        var s = '<' + $toLowerCase.call(String(obj.nodeName));\n        var attrs = obj.attributes || [];\n        for (var i = 0; i < attrs.length; i++) {\n            s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);\n        }\n        s += '>';\n        if (obj.childNodes && obj.childNodes.length) { s += '...'; }\n        s += '</' + $toLowerCase.call(String(obj.nodeName)) + '>';\n        return s;\n    }\n    if (isArray(obj)) {\n        if (obj.length === 0) { return '[]'; }\n        var xs = arrObjKeys(obj, inspect);\n        if (indent && !singleLineValues(xs)) {\n            return '[' + indentedJoin(xs, indent) + ']';\n        }\n        return '[ ' + $join.call(xs, ', ') + ' ]';\n    }\n    if (isError(obj)) {\n        var parts = arrObjKeys(obj, inspect);\n        if (!('cause' in Error.prototype) && 'cause' in obj && !isEnumerable.call(obj, 'cause')) {\n            return '{ [' + String(obj) + '] ' + $join.call($concat.call('[cause]: ' + inspect(obj.cause), parts), ', ') + ' }';\n        }\n        if (parts.length === 0) { return '[' + String(obj) + ']'; }\n        return '{ [' + String(obj) + '] ' + $join.call(parts, ', ') + ' }';\n    }\n    if (typeof obj === 'object' && customInspect) {\n        if (inspectSymbol && typeof obj[inspectSymbol] === 'function' && utilInspect) {\n            return utilInspect(obj, { depth: maxDepth - depth });\n        } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {\n            return obj.inspect();\n        }\n    }\n    if (isMap(obj)) {\n        var mapParts = [];\n        if (mapForEach) {\n            mapForEach.call(obj, function (value, key) {\n                mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));\n            });\n        }\n        return collectionOf('Map', mapSize.call(obj), mapParts, indent);\n    }\n    if (isSet(obj)) {\n        var setParts = [];\n        if (setForEach) {\n            setForEach.call(obj, function (value) {\n                setParts.push(inspect(value, obj));\n            });\n        }\n        return collectionOf('Set', setSize.call(obj), setParts, indent);\n    }\n    if (isWeakMap(obj)) {\n        return weakCollectionOf('WeakMap');\n    }\n    if (isWeakSet(obj)) {\n        return weakCollectionOf('WeakSet');\n    }\n    if (isWeakRef(obj)) {\n        return weakCollectionOf('WeakRef');\n    }\n    if (isNumber(obj)) {\n        return markBoxed(inspect(Number(obj)));\n    }\n    if (isBigInt(obj)) {\n        return markBoxed(inspect(bigIntValueOf.call(obj)));\n    }\n    if (isBoolean(obj)) {\n        return markBoxed(booleanValueOf.call(obj));\n    }\n    if (isString(obj)) {\n        return markBoxed(inspect(String(obj)));\n    }\n    // note: in IE 8, sometimes `global !== window` but both are the prototypes of each other\n    /* eslint-env browser */\n    if (typeof window !== 'undefined' && obj === window) {\n        return '{ [object Window] }';\n    }\n    if (\n        (typeof globalThis !== 'undefined' && obj === globalThis)\n        || (typeof global !== 'undefined' && obj === global)\n    ) {\n        return '{ [object globalThis] }';\n    }\n    if (!isDate(obj) && !isRegExp(obj)) {\n        var ys = arrObjKeys(obj, inspect);\n        var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;\n        var protoTag = obj instanceof Object ? '' : 'null prototype';\n        var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? 'Object' : '';\n        var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';\n        var tag = constructorTag + (stringTag || protoTag ? '[' + $join.call($concat.call([], stringTag || [], protoTag || []), ': ') + '] ' : '');\n        if (ys.length === 0) { return tag + '{}'; }\n        if (indent) {\n            return tag + '{' + indentedJoin(ys, indent) + '}';\n        }\n        return tag + '{ ' + $join.call(ys, ', ') + ' }';\n    }\n    return String(obj);\n};\n\nfunction wrapQuotes(s, defaultStyle, opts) {\n    var style = opts.quoteStyle || defaultStyle;\n    var quoteChar = quotes[style];\n    return quoteChar + s + quoteChar;\n}\n\nfunction quote(s) {\n    return $replace.call(String(s), /\"/g, '&quot;');\n}\n\nfunction canTrustToString(obj) {\n    return !toStringTag || !(typeof obj === 'object' && (toStringTag in obj || typeof obj[toStringTag] !== 'undefined'));\n}\nfunction isArray(obj) { return toStr(obj) === '[object Array]' && canTrustToString(obj); }\nfunction isDate(obj) { return toStr(obj) === '[object Date]' && canTrustToString(obj); }\nfunction isRegExp(obj) { return toStr(obj) === '[object RegExp]' && canTrustToString(obj); }\nfunction isError(obj) { return toStr(obj) === '[object Error]' && canTrustToString(obj); }\nfunction isString(obj) { return toStr(obj) === '[object String]' && canTrustToString(obj); }\nfunction isNumber(obj) { return toStr(obj) === '[object Number]' && canTrustToString(obj); }\nfunction isBoolean(obj) { return toStr(obj) === '[object Boolean]' && canTrustToString(obj); }\n\n// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives\nfunction isSymbol(obj) {\n    if (hasShammedSymbols) {\n        return obj && typeof obj === 'object' && obj instanceof Symbol;\n    }\n    if (typeof obj === 'symbol') {\n        return true;\n    }\n    if (!obj || typeof obj !== 'object' || !symToString) {\n        return false;\n    }\n    try {\n        symToString.call(obj);\n        return true;\n    } catch (e) {}\n    return false;\n}\n\nfunction isBigInt(obj) {\n    if (!obj || typeof obj !== 'object' || !bigIntValueOf) {\n        return false;\n    }\n    try {\n        bigIntValueOf.call(obj);\n        return true;\n    } catch (e) {}\n    return false;\n}\n\nvar hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };\nfunction has(obj, key) {\n    return hasOwn.call(obj, key);\n}\n\nfunction toStr(obj) {\n    return objectToString.call(obj);\n}\n\nfunction nameOf(f) {\n    if (f.name) { return f.name; }\n    var m = $match.call(functionToString.call(f), /^function\\s*([\\w$]+)/);\n    if (m) { return m[1]; }\n    return null;\n}\n\nfunction indexOf(xs, x) {\n    if (xs.indexOf) { return xs.indexOf(x); }\n    for (var i = 0, l = xs.length; i < l; i++) {\n        if (xs[i] === x) { return i; }\n    }\n    return -1;\n}\n\nfunction isMap(x) {\n    if (!mapSize || !x || typeof x !== 'object') {\n        return false;\n    }\n    try {\n        mapSize.call(x);\n        try {\n            setSize.call(x);\n        } catch (s) {\n            return true;\n        }\n        return x instanceof Map; // core-js workaround, pre-v2.5.0\n    } catch (e) {}\n    return false;\n}\n\nfunction isWeakMap(x) {\n    if (!weakMapHas || !x || typeof x !== 'object') {\n        return false;\n    }\n    try {\n        weakMapHas.call(x, weakMapHas);\n        try {\n            weakSetHas.call(x, weakSetHas);\n        } catch (s) {\n            return true;\n        }\n        return x instanceof WeakMap; // core-js workaround, pre-v2.5.0\n    } catch (e) {}\n    return false;\n}\n\nfunction isWeakRef(x) {\n    if (!weakRefDeref || !x || typeof x !== 'object') {\n        return false;\n    }\n    try {\n        weakRefDeref.call(x);\n        return true;\n    } catch (e) {}\n    return false;\n}\n\nfunction isSet(x) {\n    if (!setSize || !x || typeof x !== 'object') {\n        return false;\n    }\n    try {\n        setSize.call(x);\n        try {\n            mapSize.call(x);\n        } catch (m) {\n            return true;\n        }\n        return x instanceof Set; // core-js workaround, pre-v2.5.0\n    } catch (e) {}\n    return false;\n}\n\nfunction isWeakSet(x) {\n    if (!weakSetHas || !x || typeof x !== 'object') {\n        return false;\n    }\n    try {\n        weakSetHas.call(x, weakSetHas);\n        try {\n            weakMapHas.call(x, weakMapHas);\n        } catch (s) {\n            return true;\n        }\n        return x instanceof WeakSet; // core-js workaround, pre-v2.5.0\n    } catch (e) {}\n    return false;\n}\n\nfunction isElement(x) {\n    if (!x || typeof x !== 'object') { return false; }\n    if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {\n        return true;\n    }\n    return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';\n}\n\nfunction inspectString(str, opts) {\n    if (str.length > opts.maxStringLength) {\n        var remaining = str.length - opts.maxStringLength;\n        var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');\n        return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer;\n    }\n    var quoteRE = quoteREs[opts.quoteStyle || 'single'];\n    quoteRE.lastIndex = 0;\n    // eslint-disable-next-line no-control-regex\n    var s = $replace.call($replace.call(str, quoteRE, '\\\\$1'), /[\\x00-\\x1f]/g, lowbyte);\n    return wrapQuotes(s, 'single', opts);\n}\n\nfunction lowbyte(c) {\n    var n = c.charCodeAt(0);\n    var x = {\n        8: 'b',\n        9: 't',\n        10: 'n',\n        12: 'f',\n        13: 'r'\n    }[n];\n    if (x) { return '\\\\' + x; }\n    return '\\\\x' + (n < 0x10 ? '0' : '') + $toUpperCase.call(n.toString(16));\n}\n\nfunction markBoxed(str) {\n    return 'Object(' + str + ')';\n}\n\nfunction weakCollectionOf(type) {\n    return type + ' { ? }';\n}\n\nfunction collectionOf(type, size, entries, indent) {\n    var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ', ');\n    return type + ' (' + size + ') {' + joinedEntries + '}';\n}\n\nfunction singleLineValues(xs) {\n    for (var i = 0; i < xs.length; i++) {\n        if (indexOf(xs[i], '\\n') >= 0) {\n            return false;\n        }\n    }\n    return true;\n}\n\nfunction getIndent(opts, depth) {\n    var baseIndent;\n    if (opts.indent === '\\t') {\n        baseIndent = '\\t';\n    } else if (typeof opts.indent === 'number' && opts.indent > 0) {\n        baseIndent = $join.call(Array(opts.indent + 1), ' ');\n    } else {\n        return null;\n    }\n    return {\n        base: baseIndent,\n        prev: $join.call(Array(depth + 1), baseIndent)\n    };\n}\n\nfunction indentedJoin(xs, indent) {\n    if (xs.length === 0) { return ''; }\n    var lineJoiner = '\\n' + indent.prev + indent.base;\n    return lineJoiner + $join.call(xs, ',' + lineJoiner) + '\\n' + indent.prev;\n}\n\nfunction arrObjKeys(obj, inspect) {\n    var isArr = isArray(obj);\n    var xs = [];\n    if (isArr) {\n        xs.length = obj.length;\n        for (var i = 0; i < obj.length; i++) {\n            xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';\n        }\n    }\n    var syms = typeof gOPS === 'function' ? gOPS(obj) : [];\n    var symMap;\n    if (hasShammedSymbols) {\n        symMap = {};\n        for (var k = 0; k < syms.length; k++) {\n            symMap['$' + syms[k]] = syms[k];\n        }\n    }\n\n    for (var key in obj) { // eslint-disable-line no-restricted-syntax\n        if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n        if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n        if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {\n            // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section\n            continue; // eslint-disable-line no-restricted-syntax, no-continue\n        } else if ($test.call(/[^\\w$]/, key)) {\n            xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));\n        } else {\n            xs.push(key + ': ' + inspect(obj[key], obj));\n        }\n    }\n    if (typeof gOPS === 'function') {\n        for (var j = 0; j < syms.length; j++) {\n            if (isEnumerable.call(obj, syms[j])) {\n                xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));\n            }\n        }\n    }\n    return xs;\n}\n", "'use strict';\n\nvar inspect = require('object-inspect');\n\nvar $TypeError = require('es-errors/type');\n\n/*\n* This function traverses the list returning the node corresponding to the given key.\n*\n* That node is also moved to the head of the list, so that if it's accessed again we don't need to traverse the whole list.\n* By doing so, all the recently used nodes can be accessed relatively quickly.\n*/\n/** @type {import('./list.d.ts').listGetNode} */\n// eslint-disable-next-line consistent-return\nvar listGetNode = function (list, key, isDelete) {\n\t/** @type {typeof list | NonNullable<(typeof list)['next']>} */\n\tvar prev = list;\n\t/** @type {(typeof list)['next']} */\n\tvar curr;\n\t// eslint-disable-next-line eqeqeq\n\tfor (; (curr = prev.next) != null; prev = curr) {\n\t\tif (curr.key === key) {\n\t\t\tprev.next = curr.next;\n\t\t\tif (!isDelete) {\n\t\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\t\tcurr.next = /** @type {NonNullable<typeof list.next>} */ (list.next);\n\t\t\t\tlist.next = curr; // eslint-disable-line no-param-reassign\n\t\t\t}\n\t\t\treturn curr;\n\t\t}\n\t}\n};\n\n/** @type {import('./list.d.ts').listGet} */\nvar listGet = function (objects, key) {\n\tif (!objects) {\n\t\treturn void undefined;\n\t}\n\tvar node = listGetNode(objects, key);\n\treturn node && node.value;\n};\n/** @type {import('./list.d.ts').listSet} */\nvar listSet = function (objects, key, value) {\n\tvar node = listGetNode(objects, key);\n\tif (node) {\n\t\tnode.value = value;\n\t} else {\n\t\t// Prepend the new node to the beginning of the list\n\t\tobjects.next = /** @type {import('./list.d.ts').ListNode<typeof value, typeof key>} */ ({ // eslint-disable-line no-param-reassign, no-extra-parens\n\t\t\tkey: key,\n\t\t\tnext: objects.next,\n\t\t\tvalue: value\n\t\t});\n\t}\n};\n/** @type {import('./list.d.ts').listHas} */\nvar listHas = function (objects, key) {\n\tif (!objects) {\n\t\treturn false;\n\t}\n\treturn !!listGetNode(objects, key);\n};\n/** @type {import('./list.d.ts').listDelete} */\n// eslint-disable-next-line consistent-return\nvar listDelete = function (objects, key) {\n\tif (objects) {\n\t\treturn listGetNode(objects, key, true);\n\t}\n};\n\n/** @type {import('.')} */\nmodule.exports = function getSideChannelList() {\n\t/** @typedef {ReturnType<typeof getSideChannelList>} Channel */\n\t/** @typedef {Parameters<Channel['get']>[0]} K */\n\t/** @typedef {Parameters<Channel['set']>[1]} V */\n\n\t/** @type {import('./list.d.ts').RootNode<V, K> | undefined} */ var $o;\n\n\t/** @type {Channel} */\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\t'delete': function (key) {\n\t\t\tvar deletedNode = listDelete($o, key);\n\t\t\tif (deletedNode && $o && !$o.next) {\n\t\t\t\t$o = void undefined;\n\t\t\t}\n\t\t\treturn !!deletedNode;\n\t\t},\n\t\tget: function (key) {\n\t\t\treturn listGet($o, key);\n\t\t},\n\t\thas: function (key) {\n\t\t\treturn listHas($o, key);\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif (!$o) {\n\t\t\t\t// Initialize the linked list as an empty node, so that we don't have to special-case handling of the first node: we can always refer to it as (previous node).next, instead of something like (list).head\n\t\t\t\t$o = {\n\t\t\t\t\tnext: void undefined\n\t\t\t\t};\n\t\t\t}\n\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\tlistSet(/** @type {NonNullable<typeof $o>} */ ($o), key, value);\n\t\t}\n\t};\n\treturn channel;\n};\n", "'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBindBasic = require('call-bind-apply-helpers');\n\n/** @type {(thisArg: string, searchString: string, position?: number) => number} */\nvar $indexOf = callBindBasic([GetIntrinsic('%String.prototype.indexOf%')]);\n\n/** @type {import('.')} */\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\t/* eslint no-extra-parens: 0 */\n\n\tvar intrinsic = /** @type {(this: unknown, ...args: unknown[]) => unknown} */ (GetIntrinsic(name, !!allowMissing));\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBindBasic(/** @type {const} */ ([intrinsic]));\n\t}\n\treturn intrinsic;\n};\n", "'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bound');\nvar inspect = require('object-inspect');\n\nvar $TypeError = require('es-errors/type');\nvar $Map = GetIntrinsic('%Map%', true);\n\n/** @type {<K, V>(thisArg: Map<K, V>, key: K) => V} */\nvar $mapGet = callBound('Map.prototype.get', true);\n/** @type {<K, V>(thisArg: Map<K, V>, key: K, value: V) => void} */\nvar $mapSet = callBound('Map.prototype.set', true);\n/** @type {<K, V>(thisArg: Map<K, V>, key: K) => boolean} */\nvar $mapHas = callBound('Map.prototype.has', true);\n/** @type {<K, V>(thisArg: Map<K, V>, key: K) => boolean} */\nvar $mapDelete = callBound('Map.prototype.delete', true);\n/** @type {<K, V>(thisArg: Map<K, V>) => number} */\nvar $mapSize = callBound('Map.prototype.size', true);\n\n/** @type {import('.')} */\nmodule.exports = !!$Map && /** @type {Exclude<import('.'), false>} */ function getSideChannelMap() {\n\t/** @typedef {ReturnType<typeof getSideChannelMap>} Channel */\n\t/** @typedef {Parameters<Channel['get']>[0]} K */\n\t/** @typedef {Parameters<Channel['set']>[1]} V */\n\n\t/** @type {Map<K, V> | undefined} */ var $m;\n\n\t/** @type {Channel} */\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\t'delete': function (key) {\n\t\t\tif ($m) {\n\t\t\t\tvar result = $mapDelete($m, key);\n\t\t\t\tif ($mapSize($m) === 0) {\n\t\t\t\t\t$m = void undefined;\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tget: function (key) { // eslint-disable-line consistent-return\n\t\t\tif ($m) {\n\t\t\t\treturn $mapGet($m, key);\n\t\t\t}\n\t\t},\n\t\thas: function (key) {\n\t\t\tif ($m) {\n\t\t\t\treturn $mapHas($m, key);\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif (!$m) {\n\t\t\t\t// @ts-expect-error TS can't handle narrowing a variable inside a closure\n\t\t\t\t$m = new $Map();\n\t\t\t}\n\t\t\t$mapSet($m, key, value);\n\t\t}\n\t};\n\n\t// @ts-expect-error TODO: figure out why TS is erroring here\n\treturn channel;\n};\n", "'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bound');\nvar inspect = require('object-inspect');\nvar getSideChannelMap = require('side-channel-map');\n\nvar $TypeError = require('es-errors/type');\nvar $WeakMap = GetIntrinsic('%WeakMap%', true);\n\n/** @type {<K extends object, V>(thisArg: WeakMap<K, V>, key: K) => V} */\nvar $weakMapGet = callBound('WeakMap.prototype.get', true);\n/** @type {<K extends object, V>(thisArg: WeakMap<K, V>, key: K, value: V) => void} */\nvar $weakMapSet = callBound('WeakMap.prototype.set', true);\n/** @type {<K extends object, V>(thisArg: WeakMap<K, V>, key: K) => boolean} */\nvar $weakMapHas = callBound('WeakMap.prototype.has', true);\n/** @type {<K extends object, V>(thisArg: WeakMap<K, V>, key: K) => boolean} */\nvar $weakMapDelete = callBound('WeakMap.prototype.delete', true);\n\n/** @type {import('.')} */\nmodule.exports = $WeakMap\n\t? /** @type {Exclude<import('.'), false>} */ function getSideChannelWeakMap() {\n\t\t/** @typedef {ReturnType<typeof getSideChannelWeakMap>} Channel */\n\t\t/** @typedef {Parameters<Channel['get']>[0]} K */\n\t\t/** @typedef {Parameters<Channel['set']>[1]} V */\n\n\t\t/** @type {WeakMap<K & object, V> | undefined} */ var $wm;\n\t\t/** @type {Channel | undefined} */ var $m;\n\n\t\t/** @type {Channel} */\n\t\tvar channel = {\n\t\t\tassert: function (key) {\n\t\t\t\tif (!channel.has(key)) {\n\t\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t\t}\n\t\t\t},\n\t\t\t'delete': function (key) {\n\t\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\t\tif ($wm) {\n\t\t\t\t\t\treturn $weakMapDelete($wm, key);\n\t\t\t\t\t}\n\t\t\t\t} else if (getSideChannelMap) {\n\t\t\t\t\tif ($m) {\n\t\t\t\t\t\treturn $m['delete'](key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\tget: function (key) {\n\t\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\t\tif ($wm) {\n\t\t\t\t\t\treturn $weakMapGet($wm, key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn $m && $m.get(key);\n\t\t\t},\n\t\t\thas: function (key) {\n\t\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\t\tif ($wm) {\n\t\t\t\t\t\treturn $weakMapHas($wm, key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn !!$m && $m.has(key);\n\t\t\t},\n\t\t\tset: function (key, value) {\n\t\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\t\tif (!$wm) {\n\t\t\t\t\t\t$wm = new $WeakMap();\n\t\t\t\t\t}\n\t\t\t\t\t$weakMapSet($wm, key, value);\n\t\t\t\t} else if (getSideChannelMap) {\n\t\t\t\t\tif (!$m) {\n\t\t\t\t\t\t$m = getSideChannelMap();\n\t\t\t\t\t}\n\t\t\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\t\t\t/** @type {NonNullable<typeof $m>} */ ($m).set(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t// @ts-expect-error TODO: figure out why this is erroring\n\t\treturn channel;\n\t}\n\t: getSideChannelMap;\n", "'use strict';\n\nvar $TypeError = require('es-errors/type');\nvar inspect = require('object-inspect');\nvar getSideChannelList = require('side-channel-list');\nvar getSideChannelMap = require('side-channel-map');\nvar getSideChannelWeakMap = require('side-channel-weakmap');\n\nvar makeChannel = getSideChannelWeakMap || getSideChannelMap || getSideChannelList;\n\n/** @type {import('.')} */\nmodule.exports = function getSideChannel() {\n\t/** @typedef {ReturnType<typeof getSideChannel>} Channel */\n\n\t/** @type {Channel | undefined} */ var $channelData;\n\n\t/** @type {Channel} */\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tvar keyDesc = key && Object(key) === key\n\t\t\t\t\t? 'the given object key'\n\t\t\t\t\t: inspect(key);\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + keyDesc);\n\t\t\t}\n\t\t},\n\t\t'delete': function (key) {\n\t\t\treturn !!$channelData && $channelData['delete'](key);\n\t\t},\n\t\tget: function (key) {\n\t\t\treturn $channelData && $channelData.get(key);\n\t\t},\n\t\thas: function (key) {\n\t\t\treturn !!$channelData && $channelData.has(key);\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif (!$channelData) {\n\t\t\t\t$channelData = makeChannel();\n\t\t\t}\n\n\t\t\t$channelData.set(key, value);\n\t\t}\n\t};\n\n\treturn channel;\n};\n", "'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar Format = {\n    RFC1738: 'RFC1738',\n    RFC3986: 'RFC3986'\n};\n\nmodule.exports = {\n    'default': Format.RFC3986,\n    formatters: {\n        RFC1738: function (value) {\n            return replace.call(value, percentTwenties, '+');\n        },\n        RFC3986: function (value) {\n            return String(value);\n        }\n    },\n    RFC1738: Format.RFC1738,\n    RFC3986: Format.RFC3986\n};\n", "'use strict';\n\nvar formats = require('./formats');\nvar getSideChannel = require('side-channel');\nvar defineProperty = require('es-define-property');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\n// Track objects created from arrayLimit overflow using side-channel\n// Stores the current max numeric index for O(1) lookup\nvar overflowChannel = getSideChannel();\n\nvar markOverflow = function markOverflow(obj, maxIndex) {\n    overflowChannel.set(obj, maxIndex);\n    return obj;\n};\n\nvar isOverflow = function isOverflow(obj) {\n    return overflowChannel.has(obj);\n};\n\nvar getMaxIndex = function getMaxIndex(obj) {\n    return overflowChannel.get(obj);\n};\n\nvar setMaxIndex = function setMaxIndex(obj, maxIndex) {\n    overflowChannel.set(obj, maxIndex);\n};\n\nvar hexTable = (function () {\n    var array = [];\n    for (var i = 0; i < 256; ++i) {\n        array[array.length] = '%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase();\n    }\n\n    return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n    while (queue.length > 1) {\n        var item = queue.pop();\n        var obj = item.obj[item.prop];\n\n        if (isArray(obj)) {\n            var compacted = [];\n\n            for (var j = 0; j < obj.length; ++j) {\n                if (typeof obj[j] !== 'undefined') {\n                    compacted[compacted.length] = obj[j];\n                }\n            }\n\n            item.obj[item.prop] = compacted;\n        }\n    }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n    var obj = options && options.plainObjects ? { __proto__: null } : {};\n    for (var i = 0; i < source.length; ++i) {\n        if (typeof source[i] !== 'undefined') {\n            obj[i] = source[i];\n        }\n    }\n\n    return obj;\n};\n\nvar setProperty = function setProperty(obj, key, value) {\n    if (key === '__proto__' && defineProperty) {\n        defineProperty(obj, key, {\n            configurable: true,\n            enumerable: true,\n            value: value,\n            writable: true\n        });\n    } else {\n        obj[key] = value;\n    }\n};\n\nvar merge = function merge(target, source, options) {\n    /* eslint no-param-reassign: 0 */\n    if (!source) {\n        return target;\n    }\n\n    if (typeof source !== 'object' && typeof source !== 'function') {\n        if (isArray(target)) {\n            var nextIndex = target.length;\n            if (options && typeof options.arrayLimit === 'number' && nextIndex >= options.arrayLimit) {\n                if (options.throwOnLimitExceeded) {\n                    throw new RangeError('Array limit exceeded. Only ' + options.arrayLimit + ' element' + (options.arrayLimit === 1 ? '' : 's') + ' allowed in an array.');\n                }\n                return markOverflow(arrayToObject(target.concat(source), options), nextIndex);\n            }\n            target[nextIndex] = source;\n        } else if (target && typeof target === 'object') {\n            if (isOverflow(target)) {\n                // Add at next numeric index for overflow objects\n                var newIndex = getMaxIndex(target) + 1;\n                target[newIndex] = source;\n                setMaxIndex(target, newIndex);\n            } else if (options && options.strictMerge) {\n                return [target, source];\n            } else if (\n                (options && (options.plainObjects || options.allowPrototypes))\n                || !has.call(Object.prototype, source)\n            ) {\n                target[source] = true;\n            }\n        } else {\n            return [target, source];\n        }\n\n        return target;\n    }\n\n    if (!target || typeof target !== 'object') {\n        if (isOverflow(source)) {\n            // Create new object with target at 0, source values shifted by 1\n            var sourceKeys = Object.keys(source);\n            var result = options && options.plainObjects\n                ? { __proto__: null, 0: target }\n                : { 0: target };\n            for (var m = 0; m < sourceKeys.length; m++) {\n                var oldKey = parseInt(sourceKeys[m], 10);\n                result[oldKey + 1] = source[sourceKeys[m]];\n            }\n            return markOverflow(result, getMaxIndex(source) + 1);\n        }\n        var combined = [target].concat(source);\n        if (options && typeof options.arrayLimit === 'number' && combined.length > options.arrayLimit) {\n            if (options.throwOnLimitExceeded) {\n                throw new RangeError('Array limit exceeded. Only ' + options.arrayLimit + ' element' + (options.arrayLimit === 1 ? '' : 's') + ' allowed in an array.');\n            }\n            return markOverflow(arrayToObject(combined, options), combined.length - 1);\n        }\n        return combined;\n    }\n\n    var mergeTarget = target;\n    if (isArray(target) && !isArray(source)) {\n        mergeTarget = arrayToObject(target, options);\n    }\n\n    if (isArray(target) && isArray(source)) {\n        source.forEach(function (item, i) {\n            if (has.call(target, i)) {\n                var targetItem = target[i];\n                if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n                    target[i] = merge(targetItem, item, options);\n                } else {\n                    target[target.length] = item;\n                }\n            } else {\n                target[i] = item;\n            }\n        });\n        if (options && typeof options.arrayLimit === 'number' && target.length > options.arrayLimit) {\n            if (options.throwOnLimitExceeded) {\n                throw new RangeError('Array limit exceeded. Only ' + options.arrayLimit + ' element' + (options.arrayLimit === 1 ? '' : 's') + ' allowed in an array.');\n            }\n            return markOverflow(arrayToObject(target, options), target.length - 1);\n        }\n        return target;\n    }\n\n    return Object.keys(source).reduce(function (acc, key) {\n        var value = source[key];\n\n        if (has.call(acc, key)) {\n            setProperty(acc, key, merge(acc[key], value, options));\n        } else {\n            setProperty(acc, key, value);\n        }\n\n        if (isOverflow(source) && !isOverflow(acc)) {\n            markOverflow(acc, getMaxIndex(source));\n        }\n        if (isOverflow(acc)) {\n            var keyNum = parseInt(key, 10);\n            if (String(keyNum) === key && keyNum >= 0 && keyNum > getMaxIndex(acc)) {\n                setMaxIndex(acc, keyNum);\n            }\n        }\n\n        return acc;\n    }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n    return Object.keys(source).reduce(function (acc, key) {\n        setProperty(acc, key, source[key]);\n        return acc;\n    }, target);\n};\n\nvar decode = function (str, defaultDecoder, charset) {\n    var strWithoutPlus = str.replace(/\\+/g, ' ');\n    if (charset === 'iso-8859-1') {\n        // unescape never throws, no try...catch needed:\n        return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n    }\n    // utf-8\n    try {\n        return decodeURIComponent(strWithoutPlus);\n    } catch (e) {\n        return strWithoutPlus;\n    }\n};\n\nvar limit = 1024;\n\n/* eslint operator-linebreak: [2, \"before\"] */\n\nvar encode = function encode(str, defaultEncoder, charset, kind, format) {\n    // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n    // It has been adapted here for stricter adherence to RFC 3986\n    if (str.length === 0) {\n        return str;\n    }\n\n    var string = str;\n    if (typeof str === 'symbol') {\n        string = Symbol.prototype.toString.call(str);\n    } else if (typeof str !== 'string') {\n        string = String(str);\n    }\n\n    if (charset === 'iso-8859-1') {\n        return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n            return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n        });\n    }\n\n    var out = '';\n    for (var j = 0; j < string.length; j += limit) {\n        var segment = string.length >= limit ? string.slice(j, j + limit) : string;\n        if (j + limit < string.length) {\n            var last = segment.charCodeAt(segment.length - 1);\n            if (last >= 0xD800 && last <= 0xDBFF) {\n                segment = segment.slice(0, -1);\n                j -= 1;\n            }\n        }\n        var arr = [];\n\n        for (var i = 0; i < segment.length; ++i) {\n            var c = segment.charCodeAt(i);\n            if (\n                c === 0x2D // -\n                || c === 0x2E // .\n                || c === 0x5F // _\n                || c === 0x7E // ~\n                || (c >= 0x30 && c <= 0x39) // 0-9\n                || (c >= 0x41 && c <= 0x5A) // a-z\n                || (c >= 0x61 && c <= 0x7A) // A-Z\n                || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( )\n            ) {\n                arr[arr.length] = segment.charAt(i);\n                continue;\n            }\n\n            if (c < 0x80) {\n                arr[arr.length] = hexTable[c];\n                continue;\n            }\n\n            if (c < 0x800) {\n                arr[arr.length] = hexTable[0xC0 | (c >> 6)]\n                    + hexTable[0x80 | (c & 0x3F)];\n                continue;\n            }\n\n            if (c < 0xD800 || c >= 0xE000) {\n                arr[arr.length] = hexTable[0xE0 | (c >> 12)]\n                    + hexTable[0x80 | ((c >> 6) & 0x3F)]\n                    + hexTable[0x80 | (c & 0x3F)];\n                continue;\n            }\n\n            i += 1;\n            c = 0x10000 + (((c & 0x3FF) << 10) | (segment.charCodeAt(i) & 0x3FF));\n\n            arr[arr.length] = hexTable[0xF0 | (c >> 18)]\n                + hexTable[0x80 | ((c >> 12) & 0x3F)]\n                + hexTable[0x80 | ((c >> 6) & 0x3F)]\n                + hexTable[0x80 | (c & 0x3F)];\n        }\n\n        out += arr.join('');\n    }\n\n    return out;\n};\n\nvar compact = function compact(value) {\n    var queue = [{ obj: { o: value }, prop: 'o' }];\n    var refs = getSideChannel();\n\n    for (var i = 0; i < queue.length; ++i) {\n        var item = queue[i];\n        var obj = item.obj[item.prop];\n\n        var keys = Object.keys(obj);\n        for (var j = 0; j < keys.length; ++j) {\n            var key = keys[j];\n            var val = obj[key];\n            if (typeof val === 'object' && val !== null && !refs.has(val)) {\n                queue[queue.length] = { obj: obj, prop: key };\n                refs.set(val, true);\n            }\n        }\n    }\n\n    compactQueue(queue);\n\n    return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n    return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n    if (!obj || typeof obj !== 'object') {\n        return false;\n    }\n\n    return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b, arrayLimit, plainObjects, throwOnLimitExceeded) {\n    // If 'a' is already an overflow object, add to it\n    if (isOverflow(a)) {\n        if (throwOnLimitExceeded) {\n            throw new RangeError('Array limit exceeded. Only ' + arrayLimit + ' element' + (arrayLimit === 1 ? '' : 's') + ' allowed in an array.');\n        }\n        var newIndex = getMaxIndex(a) + 1;\n        a[newIndex] = b;\n        setMaxIndex(a, newIndex);\n        return a;\n    }\n\n    var result = [].concat(a, b);\n    if (result.length > arrayLimit) {\n        if (throwOnLimitExceeded) {\n            throw new RangeError('Array limit exceeded. Only ' + arrayLimit + ' element' + (arrayLimit === 1 ? '' : 's') + ' allowed in an array.');\n        }\n        return markOverflow(arrayToObject(result, { plainObjects: plainObjects }), result.length - 1);\n    }\n    return result;\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n    if (isArray(val)) {\n        var mapped = [];\n        for (var i = 0; i < val.length; i += 1) {\n            mapped[mapped.length] = fn(val[i]);\n        }\n        return mapped;\n    }\n    return fn(val);\n};\n\nmodule.exports = {\n    arrayToObject: arrayToObject,\n    assign: assign,\n    combine: combine,\n    compact: compact,\n    decode: decode,\n    encode: encode,\n    isBuffer: isBuffer,\n    isOverflow: isOverflow,\n    isRegExp: isRegExp,\n    markOverflow: markOverflow,\n    maybeMap: maybeMap,\n    merge: merge\n};\n", "'use strict';\n\nvar getSideChannel = require('side-channel');\nvar utils = require('./utils');\nvar formats = require('./formats');\nvar has = Object.prototype.hasOwnProperty;\n\nvar arrayPrefixGenerators = {\n    brackets: function brackets(prefix) {\n        return prefix + '[]';\n    },\n    comma: 'comma',\n    indices: function indices(prefix, key) {\n        return prefix + '[' + key + ']';\n    },\n    repeat: function repeat(prefix) {\n        return prefix;\n    }\n};\n\nvar isArray = Array.isArray;\nvar push = Array.prototype.push;\nvar pushToArray = function (arr, valueOrArray) {\n    push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaultFormat = formats['default'];\nvar defaults = {\n    addQueryPrefix: false,\n    allowDots: false,\n    allowEmptyArrays: false,\n    arrayFormat: 'indices',\n    charset: 'utf-8',\n    charsetSentinel: false,\n    commaRoundTrip: false,\n    delimiter: '&',\n    encode: true,\n    encodeDotInKeys: false,\n    encoder: utils.encode,\n    encodeValuesOnly: false,\n    filter: void undefined,\n    format: defaultFormat,\n    formatter: formats.formatters[defaultFormat],\n    // deprecated\n    indices: false,\n    serializeDate: function serializeDate(date) {\n        return toISO.call(date);\n    },\n    skipNulls: false,\n    strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n    return typeof v === 'string'\n        || typeof v === 'number'\n        || typeof v === 'boolean'\n        || typeof v === 'symbol'\n        || typeof v === 'bigint';\n};\n\nvar sentinel = {};\n\nvar stringify = function stringify(\n    object,\n    prefix,\n    generateArrayPrefix,\n    commaRoundTrip,\n    allowEmptyArrays,\n    strictNullHandling,\n    skipNulls,\n    encodeDotInKeys,\n    encoder,\n    filter,\n    sort,\n    allowDots,\n    serializeDate,\n    format,\n    formatter,\n    encodeValuesOnly,\n    charset,\n    sideChannel\n) {\n    var obj = object;\n\n    var tmpSc = sideChannel;\n    var step = 0;\n    var findFlag = false;\n    while ((tmpSc = tmpSc.get(sentinel)) !== void undefined && !findFlag) {\n        // Where object last appeared in the ref tree\n        var pos = tmpSc.get(object);\n        step += 1;\n        if (typeof pos !== 'undefined') {\n            if (pos === step) {\n                throw new RangeError('Cyclic object value');\n            } else {\n                findFlag = true; // Break while\n            }\n        }\n        if (typeof tmpSc.get(sentinel) === 'undefined') {\n            step = 0;\n        }\n    }\n\n    if (typeof filter === 'function') {\n        obj = filter(prefix, obj);\n    } else if (obj instanceof Date) {\n        obj = serializeDate(obj);\n    } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n        obj = utils.maybeMap(obj, function (value) {\n            if (value instanceof Date) {\n                return serializeDate(value);\n            }\n            return value;\n        });\n    }\n\n    if (obj === null) {\n        if (strictNullHandling) {\n            return formatter(encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix);\n        }\n\n        obj = '';\n    }\n\n    if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n        if (encoder) {\n            var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format);\n            return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];\n        }\n        return [formatter(prefix) + '=' + formatter(String(obj))];\n    }\n\n    var values = [];\n\n    if (typeof obj === 'undefined') {\n        return values;\n    }\n\n    var objKeys;\n    if (generateArrayPrefix === 'comma' && isArray(obj)) {\n        // we need to join elements in\n        if (encodeValuesOnly && encoder) {\n            obj = utils.maybeMap(obj, function (v) {\n                return v == null ? v : encoder(v);\n            });\n        }\n        objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : void undefined }];\n    } else if (isArray(filter)) {\n        objKeys = filter;\n    } else {\n        var keys = Object.keys(obj);\n        objKeys = sort ? keys.sort(sort) : keys;\n    }\n\n    var encodedPrefix = encodeDotInKeys ? String(prefix).replace(/\\./g, '%2E') : String(prefix);\n\n    var adjustedPrefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? encodedPrefix + '[]' : encodedPrefix;\n\n    if (allowEmptyArrays && isArray(obj) && obj.length === 0) {\n        return adjustedPrefix + '[]';\n    }\n\n    for (var j = 0; j < objKeys.length; ++j) {\n        var key = objKeys[j];\n        var value = typeof key === 'object' && key && typeof key.value !== 'undefined'\n            ? key.value\n            : obj[key];\n\n        if (skipNulls && value === null) {\n            continue;\n        }\n\n        var encodedKey = allowDots && encodeDotInKeys ? String(key).replace(/\\./g, '%2E') : String(key);\n        var keyPrefix = isArray(obj)\n            ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(adjustedPrefix, encodedKey) : adjustedPrefix\n            : adjustedPrefix + (allowDots ? '.' + encodedKey : '[' + encodedKey + ']');\n\n        sideChannel.set(object, step);\n        var valueSideChannel = getSideChannel();\n        valueSideChannel.set(sentinel, sideChannel);\n        pushToArray(values, stringify(\n            value,\n            keyPrefix,\n            generateArrayPrefix,\n            commaRoundTrip,\n            allowEmptyArrays,\n            strictNullHandling,\n            skipNulls,\n            encodeDotInKeys,\n            generateArrayPrefix === 'comma' && encodeValuesOnly && isArray(obj) ? null : encoder,\n            filter,\n            sort,\n            allowDots,\n            serializeDate,\n            format,\n            formatter,\n            encodeValuesOnly,\n            charset,\n            valueSideChannel\n        ));\n    }\n\n    return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n    if (!opts) {\n        return defaults;\n    }\n\n    if (typeof opts.allowEmptyArrays !== 'undefined' && typeof opts.allowEmptyArrays !== 'boolean') {\n        throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided');\n    }\n\n    if (typeof opts.encodeDotInKeys !== 'undefined' && typeof opts.encodeDotInKeys !== 'boolean') {\n        throw new TypeError('`encodeDotInKeys` option can only be `true` or `false`, when provided');\n    }\n\n    if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') {\n        throw new TypeError('Encoder has to be a function.');\n    }\n\n    var charset = opts.charset || defaults.charset;\n    if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n        throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n    }\n\n    var format = formats['default'];\n    if (typeof opts.format !== 'undefined') {\n        if (!has.call(formats.formatters, opts.format)) {\n            throw new TypeError('Unknown format option provided.');\n        }\n        format = opts.format;\n    }\n    var formatter = formats.formatters[format];\n\n    var filter = defaults.filter;\n    if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n        filter = opts.filter;\n    }\n\n    var arrayFormat;\n    if (opts.arrayFormat in arrayPrefixGenerators) {\n        arrayFormat = opts.arrayFormat;\n    } else if ('indices' in opts) {\n        arrayFormat = opts.indices ? 'indices' : 'repeat';\n    } else {\n        arrayFormat = defaults.arrayFormat;\n    }\n\n    if ('commaRoundTrip' in opts && typeof opts.commaRoundTrip !== 'boolean') {\n        throw new TypeError('`commaRoundTrip` must be a boolean, or absent');\n    }\n\n    var allowDots = typeof opts.allowDots === 'undefined' ? opts.encodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots;\n\n    return {\n        addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n        allowDots: allowDots,\n        allowEmptyArrays: typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,\n        arrayFormat: arrayFormat,\n        charset: charset,\n        charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n        commaRoundTrip: !!opts.commaRoundTrip,\n        delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n        encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n        encodeDotInKeys: typeof opts.encodeDotInKeys === 'boolean' ? opts.encodeDotInKeys : defaults.encodeDotInKeys,\n        encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n        encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n        filter: filter,\n        format: format,\n        formatter: formatter,\n        serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n        skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n        sort: typeof opts.sort === 'function' ? opts.sort : null,\n        strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n    };\n};\n\nmodule.exports = function (object, opts) {\n    var obj = object;\n    var options = normalizeStringifyOptions(opts);\n\n    var objKeys;\n    var filter;\n\n    if (typeof options.filter === 'function') {\n        filter = options.filter;\n        obj = filter('', obj);\n    } else if (isArray(options.filter)) {\n        filter = options.filter;\n        objKeys = filter;\n    }\n\n    var keys = [];\n\n    if (typeof obj !== 'object' || obj === null) {\n        return '';\n    }\n\n    var generateArrayPrefix = arrayPrefixGenerators[options.arrayFormat];\n    var commaRoundTrip = generateArrayPrefix === 'comma' && options.commaRoundTrip;\n\n    if (!objKeys) {\n        objKeys = Object.keys(obj);\n    }\n\n    if (options.sort) {\n        objKeys.sort(options.sort);\n    }\n\n    var sideChannel = getSideChannel();\n    for (var i = 0; i < objKeys.length; ++i) {\n        var key = objKeys[i];\n\n        if (typeof key === 'undefined' || key === null) {\n            continue;\n        }\n\n        var value = obj[key];\n\n        if (options.skipNulls && value === null) {\n            continue;\n        }\n        pushToArray(keys, stringify(\n            value,\n            key,\n            generateArrayPrefix,\n            commaRoundTrip,\n            options.allowEmptyArrays,\n            options.strictNullHandling,\n            options.skipNulls,\n            options.encodeDotInKeys,\n            options.encode ? options.encoder : null,\n            options.filter,\n            options.sort,\n            options.allowDots,\n            options.serializeDate,\n            options.format,\n            options.formatter,\n            options.encodeValuesOnly,\n            options.charset,\n            sideChannel\n        ));\n    }\n\n    var joined = keys.join(options.delimiter);\n    var prefix = options.addQueryPrefix === true ? '?' : '';\n\n    if (options.charsetSentinel) {\n        if (options.charset === 'iso-8859-1') {\n            // encodeURIComponent('&#10003;'), the \"numeric entity\" representation of a checkmark\n            prefix += 'utf8=%26%2310003%3B' + options.delimiter;\n        } else {\n            // encodeURIComponent('\u2713')\n            prefix += 'utf8=%E2%9C%93' + options.delimiter;\n        }\n    }\n\n    return joined.length > 0 ? prefix + joined : '';\n};\n", "'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar defaults = {\n    allowDots: false,\n    allowEmptyArrays: false,\n    allowPrototypes: false,\n    allowSparse: false,\n    arrayLimit: 20,\n    charset: 'utf-8',\n    charsetSentinel: false,\n    comma: false,\n    decodeDotInKeys: false,\n    decoder: utils.decode,\n    delimiter: '&',\n    depth: 5,\n    duplicates: 'combine',\n    ignoreQueryPrefix: false,\n    interpretNumericEntities: false,\n    parameterLimit: 1000,\n    parseArrays: true,\n    plainObjects: false,\n    strictDepth: false,\n    strictMerge: true,\n    strictNullHandling: false,\n    throwOnLimitExceeded: false\n};\n\nvar interpretNumericEntities = function (str) {\n    return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n        return String.fromCharCode(parseInt(numberStr, 10));\n    });\n};\n\nvar parseArrayValue = function (val, options, currentArrayLength, isFlatArrayValue) {\n    if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n        if (isFlatArrayValue && options.throwOnLimitExceeded) {\n            var commaCount = 0;\n            var commaIndex = val.indexOf(',');\n            while (commaIndex > -1) {\n                commaCount += 1;\n                if (commaCount >= options.arrayLimit) {\n                    throw new RangeError('Array limit exceeded. Only ' + options.arrayLimit + ' element' + (options.arrayLimit === 1 ? '' : 's') + ' allowed in an array.');\n                }\n                commaIndex = val.indexOf(',', commaIndex + 1);\n            }\n        }\n        return val.split(',');\n    }\n\n    if (options.throwOnLimitExceeded && currentArrayLength >= options.arrayLimit) {\n        throw new RangeError('Array limit exceeded. Only ' + options.arrayLimit + ' element' + (options.arrayLimit === 1 ? '' : 's') + ' allowed in an array.');\n    }\n\n    return val;\n};\n\n// This is what browsers will submit when the \u2713 character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the \u2713 character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('&#10003;')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('\u2713')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n    var obj = { __proto__: null };\n\n    var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n    cleanStr = cleanStr.replace(/%5B/gi, '[').replace(/%5D/gi, ']');\n\n    var limit = options.parameterLimit === Infinity ? void undefined : options.parameterLimit;\n    var parts = cleanStr.split(\n        options.delimiter,\n        options.throwOnLimitExceeded && typeof limit !== 'undefined' ? limit + 1 : limit\n    );\n\n    if (options.throwOnLimitExceeded && typeof limit !== 'undefined' && parts.length > limit) {\n        throw new RangeError('Parameter limit exceeded. Only ' + limit + ' parameter' + (limit === 1 ? '' : 's') + ' allowed.');\n    }\n\n    var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n    var i;\n\n    var charset = options.charset;\n    if (options.charsetSentinel) {\n        for (i = 0; i < parts.length; ++i) {\n            if (parts[i].indexOf('utf8=') === 0) {\n                if (parts[i] === charsetSentinel) {\n                    charset = 'utf-8';\n                } else if (parts[i] === isoSentinel) {\n                    charset = 'iso-8859-1';\n                }\n                skipIndex = i;\n                i = parts.length; // The eslint settings do not allow break;\n            }\n        }\n    }\n\n    for (i = 0; i < parts.length; ++i) {\n        if (i === skipIndex) {\n            continue;\n        }\n        var part = parts[i];\n\n        var bracketEqualsPos = part.indexOf(']=');\n        var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n        var key;\n        var val;\n        if (pos === -1) {\n            key = options.decoder(part, defaults.decoder, charset, 'key');\n            val = options.strictNullHandling ? null : '';\n        } else {\n            key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n\n            if (key !== null) {\n                val = utils.maybeMap(\n                    parseArrayValue(\n                        part.slice(pos + 1),\n                        options,\n                        isArray(obj[key]) ? obj[key].length : 0,\n                        part.indexOf('[]=') === -1\n                    ),\n                    function (encodedVal) {\n                        return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n                    }\n                );\n            }\n        }\n\n        if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n            val = interpretNumericEntities(String(val));\n        }\n\n        if (part.indexOf('[]=') > -1) {\n            val = isArray(val) ? [val] : val;\n        }\n\n        if (options.comma && isArray(val) && val.length > options.arrayLimit) {\n            val = utils.combine([], val, options.arrayLimit, options.plainObjects, options.throwOnLimitExceeded);\n        }\n\n        if (key !== null) {\n            var existing = has.call(obj, key);\n            if (existing && (options.duplicates === 'combine' || part.indexOf('[]=') > -1)) {\n                obj[key] = utils.combine(\n                    obj[key],\n                    val,\n                    options.arrayLimit,\n                    options.plainObjects,\n                    options.throwOnLimitExceeded\n                );\n            } else if (!existing || options.duplicates === 'last') {\n                obj[key] = val;\n            }\n        }\n    }\n\n    return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n    var currentArrayLength = 0;\n    if (chain.length > 0 && chain[chain.length - 1] === '[]') {\n        var parentKey = chain.slice(0, -1).join('');\n        currentArrayLength = Array.isArray(val) && val[parentKey] ? val[parentKey].length : 0;\n    }\n\n    var leaf = valuesParsed ? val : parseArrayValue(val, options, currentArrayLength);\n\n    for (var i = chain.length - 1; i >= 0; --i) {\n        var obj;\n        var root = chain[i];\n\n        if (root === '[]' && options.parseArrays) {\n            if (utils.isOverflow(leaf)) {\n                // leaf is already an overflow object, preserve it\n                obj = leaf;\n            } else {\n                obj = options.allowEmptyArrays && (leaf === '' || (options.strictNullHandling && leaf === null))\n                    ? []\n                    : utils.combine(\n                        [],\n                        leaf,\n                        options.arrayLimit,\n                        options.plainObjects,\n                        options.throwOnLimitExceeded\n                    );\n            }\n        } else {\n            obj = options.plainObjects ? { __proto__: null } : {};\n            var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n            var decodedRoot = options.decodeDotInKeys ? cleanRoot.replace(/%2E/g, '.') : cleanRoot;\n            var index = parseInt(decodedRoot, 10);\n            var isValidArrayIndex = !isNaN(index)\n                && root !== decodedRoot\n                && String(index) === decodedRoot\n                && index >= 0\n                && options.parseArrays;\n            if (!options.parseArrays && decodedRoot === '') {\n                obj = { 0: leaf };\n            } else if (isValidArrayIndex && index < options.arrayLimit) {\n                obj = [];\n                obj[index] = leaf;\n            } else if (isValidArrayIndex && options.throwOnLimitExceeded) {\n                throw new RangeError('Array limit exceeded. Only ' + options.arrayLimit + ' element' + (options.arrayLimit === 1 ? '' : 's') + ' allowed in an array.');\n            } else if (isValidArrayIndex) {\n                obj[index] = leaf;\n                utils.markOverflow(obj, index);\n            } else if (decodedRoot !== '__proto__') {\n                obj[decodedRoot] = leaf;\n            }\n        }\n\n        leaf = obj;\n    }\n\n    return leaf;\n};\n\n// Split a key like \"a[b][c[]]\" into ['a', '[b]', '[c[]]'] while preserving\n// qs parse semantics for depth/prototype guards.\nvar splitKeyIntoSegments = function splitKeyIntoSegments(originalKey, options) {\n    var key = options.allowDots ? originalKey.replace(/\\.([^.[]+)/g, '[$1]') : originalKey;\n\n    // depth <= 0 keeps the whole key as one segment\n    if (options.depth <= 0) {\n        if (!options.plainObjects && has.call(Object.prototype, key)) {\n            if (!options.allowPrototypes) {\n                return;\n            }\n        }\n\n        return [key];\n    }\n\n    var segments = [];\n\n    // parent before the first '[' (may be empty if key starts with '[')\n    var first = key.indexOf('[');\n    var parent = first >= 0 ? key.slice(0, first) : key;\n    if (parent) {\n        if (!options.plainObjects && has.call(Object.prototype, parent)) {\n            if (!options.allowPrototypes) {\n                return;\n            }\n        }\n\n        segments[segments.length] = parent;\n    }\n\n    var n = key.length;\n    var open = first;\n    var collected = 0;\n\n    while (open >= 0 && collected < options.depth) {\n        var level = 1;\n        var i = open + 1;\n        var close = -1;\n\n        // balance nested '[' and ']' inside this bracket group using a nesting level counter\n        while (i < n && close < 0) {\n            var cu = key.charCodeAt(i);\n            if (cu === 0x5B) { // '['\n                level += 1;\n            } else if (cu === 0x5D) { // ']'\n                level -= 1;\n                if (level === 0) {\n                    close = i; // found matching close; loop will exit by condition\n                }\n            }\n            i += 1;\n        }\n\n        if (close < 0) {\n            // Unterminated group: wrap the raw remainder in one bracket pair so it stays\n            // a single literal segment (e.g. \"[[]b\" -> \"[[]b]\"); we do not infer missing ']'.\n            segments[segments.length] = '[' + key.slice(open) + ']';\n            return segments;\n        }\n\n        var seg = key.slice(open, close + 1);\n        // prototype guard for the content of this group\n        var content = seg.slice(1, -1);\n        if (!options.plainObjects && has.call(Object.prototype, content) && !options.allowPrototypes) {\n            return;\n        }\n\n        segments[segments.length] = seg;\n        collected += 1;\n\n        // find the next '[' after this balanced group\n        open = key.indexOf('[', close + 1);\n    }\n\n    if (open >= 0) {\n        if (options.strictDepth === true) {\n            throw new RangeError('Input depth exceeded depth option of ' + options.depth + ' and strictDepth is true');\n        }\n\n        segments[segments.length] = '[' + key.slice(open) + ']';\n    }\n\n    return segments;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n    if (!givenKey) {\n        return;\n    }\n\n    var keys = splitKeyIntoSegments(givenKey, options);\n\n    if (!keys) {\n        return;\n    }\n\n    return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n    if (!opts) {\n        return defaults;\n    }\n\n    if (typeof opts.allowEmptyArrays !== 'undefined' && typeof opts.allowEmptyArrays !== 'boolean') {\n        throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided');\n    }\n\n    if (typeof opts.decodeDotInKeys !== 'undefined' && typeof opts.decodeDotInKeys !== 'boolean') {\n        throw new TypeError('`decodeDotInKeys` option can only be `true` or `false`, when provided');\n    }\n\n    if (opts.decoder !== null && typeof opts.decoder !== 'undefined' && typeof opts.decoder !== 'function') {\n        throw new TypeError('Decoder has to be a function.');\n    }\n\n    if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n        throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n    }\n\n    if (typeof opts.throwOnLimitExceeded !== 'undefined' && typeof opts.throwOnLimitExceeded !== 'boolean') {\n        throw new TypeError('`throwOnLimitExceeded` option must be a boolean');\n    }\n\n    var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n    var duplicates = typeof opts.duplicates === 'undefined' ? defaults.duplicates : opts.duplicates;\n\n    if (duplicates !== 'combine' && duplicates !== 'first' && duplicates !== 'last') {\n        throw new TypeError('The duplicates option must be either combine, first, or last');\n    }\n\n    var allowDots = typeof opts.allowDots === 'undefined' ? opts.decodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots;\n\n    return {\n        allowDots: allowDots,\n        allowEmptyArrays: typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,\n        allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n        allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,\n        arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n        charset: charset,\n        charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n        comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n        decodeDotInKeys: typeof opts.decodeDotInKeys === 'boolean' ? opts.decodeDotInKeys : defaults.decodeDotInKeys,\n        decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n        delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n        // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n        depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\n        duplicates: duplicates,\n        ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n        interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n        parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n        parseArrays: opts.parseArrays !== false,\n        plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n        strictDepth: typeof opts.strictDepth === 'boolean' ? !!opts.strictDepth : defaults.strictDepth,\n        strictMerge: typeof opts.strictMerge === 'boolean' ? !!opts.strictMerge : defaults.strictMerge,\n        strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling,\n        throwOnLimitExceeded: typeof opts.throwOnLimitExceeded === 'boolean' ? opts.throwOnLimitExceeded : false\n    };\n};\n\nmodule.exports = function (str, opts) {\n    var options = normalizeParseOptions(opts);\n\n    if (str === '' || str === null || typeof str === 'undefined') {\n        return options.plainObjects ? { __proto__: null } : {};\n    }\n\n    var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n    var obj = options.plainObjects ? { __proto__: null } : {};\n\n    // Iterate over the keys and setup the new object\n\n    var keys = Object.keys(tempObj);\n    for (var i = 0; i < keys.length; ++i) {\n        var key = keys[i];\n        var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n        obj = utils.merge(obj, newObj, options);\n    }\n\n    if (options.allowSparse === true) {\n        return obj;\n    }\n\n    return utils.compact(obj);\n};\n", "'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n    formats: formats,\n    parse: parse,\n    stringify: stringify\n};\n", "export * as axios from 'axios'\nexport * as axiosRetry from 'axios-retry'\nexport * as runtime from './runtime'\nexport * as admin from './admin'\nexport * as billing from './billing'\nexport * as files from './files'\nexport * as integrationOperations from './integration-operations'\nexport * as tables from './tables'\nexport * from './public'\nexport * from './errors'\nexport * from './types'\nexport type {\n  CancelIntegrationOperationInput,\n  FileRefV1,\n  GetIntegrationOperationInput,\n  IntegrationOperation,\n  IntegrationOperationStatus,\n  OperationCheckpointClient,\n  OperationCheckpointSnapshot,\n  OperationFilesClient,\n  StartIntegrationOperationInput,\n} from './integration-operations'\nexport type {\n  DownloadFileRefInput,\n  DownloadFileRefOutput,\n  ExactFileRef,\n} from './files/download-file-ref'\nexport type {\n  AtomicCreateRowsOperation,\n  AtomicDeleteRowsOperation,\n  AtomicOperationResult,\n  AtomicReference,\n  AtomicReserveKeyOperation,\n  AtomicTableOperation,\n  AtomicTablesInput,\n  AtomicTablesOutput,\n  AtomicUpdateRowsOperation,\n  AtomicUpsertRowsOperation,\n} from './tables/atomic'\nexport { atomicReference } from './tables/atomic'\nexport type {\n  TableSystemDateCondition,\n  TableSystemFilter,\n  TableSystemNumberCondition,\n  TableSystemOrderBy,\n} from './tables/system-fields'\nexport type {\n  ReserveTableKeyInput,\n  ReserveTableKeyOutput,\n  TableRowMetadata,\n} from './tables/reserve-key'\nexport type {\n  TableUniqueKeyContract,\n  TableUniqueKeyState,\n  TransitionTableUniqueKeyInput,\n  TransitionTableUniqueKeyOutput,\n} from './public/transition-table-unique-key'\nexport { DownloadFileRefError } from './files/download-file-ref'\nexport { OperationCapabilityError } from './integration-operations'\nexport * from './gen/public/models'\nexport { installAxiosErrorFidelity } from './common/axios'\nexport { toApiError } from './common/errors'\n", "import axios from './lib/axios.js';\n\n// This module is intended to unwrap Axios default export as named.\n// Keep top-level export same with static properties\n// so that it can keep same with es module or cjs\nconst {\n  Axios,\n  AxiosError,\n  CanceledError,\n  isCancel,\n  CancelToken,\n  VERSION,\n  all,\n  Cancel,\n  isAxiosError,\n  spread,\n  toFormData,\n  AxiosHeaders,\n  HttpStatusCode,\n  formToJSON,\n  getAdapter,\n  mergeConfig,\n  create,\n} = axios;\n\nexport {\n  axios as default,\n  create,\n  Axios,\n  AxiosError,\n  CanceledError,\n  isCancel,\n  CancelToken,\n  VERSION,\n  all,\n  Cancel,\n  isAxiosError,\n  spread,\n  toFormData,\n  AxiosHeaders,\n  HttpStatusCode,\n  formToJSON,\n  getAdapter,\n  mergeConfig,\n};\n", "'use strict';\n\n/**\n * Create a bound version of a function with a specified `this` context\n *\n * @param {Function} fn - The function to bind\n * @param {*} thisArg - The value to be passed as the `this` parameter\n * @returns {Function} A new function that will call the original function with the specified `this` context\n */\nexport default function bind(fn, thisArg) {\n  return function wrap() {\n    return fn.apply(thisArg, arguments);\n  };\n}\n", "'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst { toString } = Object.prototype;\nconst { getPrototypeOf } = Object;\nconst { iterator, toStringTag } = Symbol;\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (\n  ({ hasOwnProperty }) =>\n  (obj, prop) =>\n    hasOwnProperty.call(obj, prop)\n)(Object.prototype);\n\n/**\n * Walk the prototype chain (excluding the shared Object.prototype) looking for\n * an own `prop`. This distinguishes genuine own/inherited members \u2014 including\n * class accessors and template prototypes \u2014 from members injected via\n * Object.prototype pollution (e.g. `Object.prototype.username = '...'`), which\n * live on Object.prototype itself and are therefore never matched.\n *\n * @param {*} thing The value whose chain to inspect\n * @param {string|symbol} prop The property key to look for\n *\n * @returns {boolean} True when `prop` is owned below Object.prototype\n */\nconst hasOwnInPrototypeChain = (thing, prop) => {\n  let obj = thing;\n  const seen = [];\n\n  while (obj != null && obj !== Object.prototype) {\n    if (seen.indexOf(obj) !== -1) {\n      return false;\n    }\n    seen.push(obj);\n\n    if (hasOwnProperty(obj, prop)) {\n      return true;\n    }\n    obj = getPrototypeOf(obj);\n  }\n  return false;\n};\n\n/**\n * Read `obj[prop]` only when it is safe from Object.prototype pollution. Own\n * properties and members inherited from a non-Object.prototype source (a class\n * instance or template object) are honored; a value reachable only through a\n * polluted Object.prototype is ignored and `undefined` is returned.\n *\n * @param {*} obj The source object\n * @param {string|symbol} prop The property key to read\n *\n * @returns {*} The resolved value, or undefined when unsafe/absent\n */\nconst getSafeProp = (obj, prop) =>\n  obj != null && hasOwnInPrototypeChain(obj, prop) ? obj[prop] : undefined;\n\nconst kindOf = ((cache) => (thing) => {\n  const str = toString.call(thing);\n  return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n  type = type.toLowerCase();\n  return (thing) => kindOf(thing) === type;\n};\n\nconst typeOfTest = (type) => (thing) => typeof thing === type;\n\n/**\n * Determine if a value is a non-null object\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst { isArray } = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n  return (\n    val !== null &&\n    !isUndefined(val) &&\n    val.constructor !== null &&\n    !isUndefined(val.constructor) &&\n    isFunction(val.constructor.isBuffer) &&\n    val.constructor.isBuffer(val)\n  );\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n  let result;\n  if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n    result = ArrayBuffer.isView(val);\n  } else {\n    result = val && val.buffer && isArrayBuffer(val.buffer);\n  }\n  return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = (thing) => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n  if (!isObject(val)) {\n    return false;\n  }\n\n  const prototype = getPrototypeOf(val);\n  return (\n    (prototype === null ||\n      prototype === Object.prototype ||\n      getPrototypeOf(prototype) === null) &&\n    // Treat any genuine (non-Object.prototype-polluted) Symbol.toStringTag or\n    // Symbol.iterator as evidence the value is a tagged/iterable type rather\n    // than a plain object, while ignoring keys injected onto Object.prototype.\n    !hasOwnInPrototypeChain(val, toStringTag) &&\n    !hasOwnInPrototypeChain(val, iterator)\n  );\n};\n\n/**\n * Determine if a value is an empty object (safely handles Buffers)\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an empty object, otherwise false\n */\nconst isEmptyObject = (val) => {\n  // Early return for non-objects or Buffers to prevent RangeError\n  if (!isObject(val) || isBuffer(val)) {\n    return false;\n  }\n\n  try {\n    return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;\n  } catch (e) {\n    // Fallback for any other objects that might cause RangeError with Object.keys()\n    return false;\n  }\n};\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a React Native Blob\n * React Native \"blob\": an object with a `uri` attribute. Optionally, it can\n * also have a `name` and `type` attribute to specify filename and content type\n *\n * @see https://github.com/facebook/react-native/blob/26684cf3adf4094eb6c405d345a75bf8c7c0bf88/Libraries/Network/FormData.js#L68-L71\n *\n * @param {*} value The value to test\n *\n * @returns {boolean} True if value is a React Native Blob, otherwise false\n */\nconst isReactNativeBlob = (value) => {\n  return !!(value && typeof value.uri !== 'undefined');\n};\n\n/**\n * Determine if environment is React Native\n * ReactNative `FormData` has a non-standard `getParts()` method\n *\n * @param {*} formData The formData to test\n *\n * @returns {boolean} True if environment is React Native, otherwise false\n */\nconst isReactNative = (formData) => formData && typeof formData.getParts !== 'undefined';\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a FileList, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction getGlobal() {\n  if (typeof globalThis !== 'undefined') return globalThis;\n  if (typeof self !== 'undefined') return self;\n  if (typeof window !== 'undefined') return window;\n  if (typeof global !== 'undefined') return global;\n  return {};\n}\n\nconst G = getGlobal();\nconst FormDataCtor = typeof G.FormData !== 'undefined' ? G.FormData : undefined;\n\nconst isFormData = (thing) => {\n  if (!thing) return false;\n  if (FormDataCtor && thing instanceof FormDataCtor) return true;\n  // Reject plain objects inheriting directly from Object.prototype so prototype-pollution gadgets can't spoof FormData.\n  const proto = getPrototypeOf(thing);\n  if (!proto || proto === Object.prototype) return false;\n  if (!isFunction(thing.append)) return false;\n  const kind = kindOf(thing);\n  return (\n    kind === 'formdata' ||\n    // detect form-data instance\n    (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n  );\n};\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = [\n  'ReadableStream',\n  'Request',\n  'Response',\n  'Headers',\n].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => {\n  return str.trim ? str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n};\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array<unknown>} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, { allOwnKeys = false } = {}) {\n  // Don't bother if no value provided\n  if (obj === null || typeof obj === 'undefined') {\n    return;\n  }\n\n  let i;\n  let l;\n\n  // Force an array if not already something iterable\n  if (typeof obj !== 'object') {\n    /*eslint no-param-reassign:0*/\n    obj = [obj];\n  }\n\n  if (isArray(obj)) {\n    // Iterate over array values\n    for (i = 0, l = obj.length; i < l; i++) {\n      fn.call(null, obj[i], i, obj);\n    }\n  } else {\n    // Buffer check\n    if (isBuffer(obj)) {\n      return;\n    }\n\n    // Iterate over object keys\n    const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n    const len = keys.length;\n    let key;\n\n    for (i = 0; i < len; i++) {\n      key = keys[i];\n      fn.call(null, obj[key], key, obj);\n    }\n  }\n}\n\n/**\n * Finds a key in an object, case-insensitive, returning the actual key name.\n * Returns null if the object is a Buffer or if no match is found.\n *\n * @param {Object} obj - The object to search.\n * @param {string} key - The key to find (case-insensitive).\n * @returns {?string} The actual key name if found, otherwise null.\n */\nfunction findKey(obj, key) {\n  if (isBuffer(obj)) {\n    return null;\n  }\n\n  key = key.toLowerCase();\n  const keys = Object.keys(obj);\n  let i = keys.length;\n  let _key;\n  while (i-- > 0) {\n    _key = keys[i];\n    if (key === _key.toLowerCase()) {\n      return _key;\n    }\n  }\n  return null;\n}\n\nconst _global = (() => {\n  /*eslint no-undef:0*/\n  if (typeof globalThis !== 'undefined') return globalThis;\n  return typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : global;\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * const result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(...objs) {\n  const { caseless, skipUndefined } = (isContextDefined(this) && this) || {};\n  const result = {};\n  const assignValue = (val, key) => {\n    // Skip dangerous property names to prevent prototype pollution\n    if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n      return;\n    }\n\n    // findKey lowercases the key, so caseless lookup only applies to strings \u2014\n    // symbol keys are identity-matched.\n    const targetKey = (caseless && typeof key === 'string' && findKey(result, key)) || key;\n    // Read via own-prop only \u2014 a bare `result[targetKey]` walks the prototype\n    // chain, so a polluted Object.prototype value could surface here and get\n    // copied into the merged result.\n    const existing = hasOwnProperty(result, targetKey) ? result[targetKey] : undefined;\n    if (isPlainObject(existing) && isPlainObject(val)) {\n      result[targetKey] = merge(existing, val);\n    } else if (isPlainObject(val)) {\n      result[targetKey] = merge({}, val);\n    } else if (isArray(val)) {\n      result[targetKey] = val.slice();\n    } else if (!skipUndefined || !isUndefined(val)) {\n      result[targetKey] = val;\n    }\n  };\n\n  for (let i = 0, l = objs.length; i < l; i++) {\n    const source = objs[i];\n    if (!source || isBuffer(source)) {\n      continue;\n    }\n\n    forEach(source, assignValue);\n\n    if (typeof source !== 'object' || isArray(source)) {\n      continue;\n    }\n\n    const symbols = Object.getOwnPropertySymbols(source);\n    for (let j = 0; j < symbols.length; j++) {\n      const symbol = symbols[j];\n      if (propertyIsEnumerable.call(source, symbol)) {\n        assignValue(source[symbol], symbol);\n      }\n    }\n  }\n  return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, { allOwnKeys } = {}) => {\n  forEach(\n    b,\n    (val, key) => {\n      if (thisArg && isFunction(val)) {\n        Object.defineProperty(a, key, {\n          // Null-proto descriptor so a polluted Object.prototype.get cannot\n          // hijack defineProperty's accessor-vs-data resolution.\n          __proto__: null,\n          value: bind(val, thisArg),\n          writable: true,\n          enumerable: true,\n          configurable: true,\n        });\n      } else {\n        Object.defineProperty(a, key, {\n          __proto__: null,\n          value: val,\n          writable: true,\n          enumerable: true,\n          configurable: true,\n        });\n      }\n    },\n    { allOwnKeys }\n  );\n  return a;\n};\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n  if (content.charCodeAt(0) === 0xfeff) {\n    content = content.slice(1);\n  }\n  return content;\n};\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n  constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n  Object.defineProperty(constructor.prototype, 'constructor', {\n    __proto__: null,\n    value: constructor,\n    writable: true,\n    enumerable: false,\n    configurable: true,\n  });\n  Object.defineProperty(constructor, 'super', {\n    __proto__: null,\n    value: superConstructor.prototype,\n  });\n  props && Object.assign(constructor.prototype, props);\n};\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n  let props;\n  let i;\n  let prop;\n  const merged = {};\n\n  destObj = destObj || {};\n  // eslint-disable-next-line no-eq-null,eqeqeq\n  if (sourceObj == null) return destObj;\n\n  do {\n    props = Object.getOwnPropertyNames(sourceObj);\n    i = props.length;\n    while (i-- > 0) {\n      prop = props[i];\n      if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n        destObj[prop] = sourceObj[prop];\n        merged[prop] = true;\n      }\n    }\n    sourceObj = filter !== false && getPrototypeOf(sourceObj);\n  } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n  return destObj;\n};\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n  str = String(str);\n  if (position === undefined || position > str.length) {\n    position = str.length;\n  }\n  position -= searchString.length;\n  const lastIndex = str.indexOf(searchString, position);\n  return lastIndex !== -1 && lastIndex === position;\n};\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n  if (!thing) return null;\n  if (isArray(thing)) return thing;\n  let i = thing.length;\n  if (!isNumber(i)) return null;\n  const arr = new Array(i);\n  while (i-- > 0) {\n    arr[i] = thing[i];\n  }\n  return arr;\n};\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = ((TypedArray) => {\n  // eslint-disable-next-line func-names\n  return (thing) => {\n    return TypedArray && thing instanceof TypedArray;\n  };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n  const generator = obj && obj[iterator];\n\n  const _iterator = generator.call(obj);\n\n  let result;\n\n  while ((result = _iterator.next()) && !result.done) {\n    const pair = result.value;\n    fn.call(obj, pair[0], pair[1]);\n  }\n};\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n  let matches;\n  const arr = [];\n\n  while ((matches = regExp.exec(str)) !== null) {\n    arr.push(matches);\n  }\n\n  return arr;\n};\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = (str) => {\n  return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g, function replacer(m, p1, p2) {\n    return p1.toUpperCase() + p2;\n  });\n};\n\nconst { propertyIsEnumerable } = Object.prototype;\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n  const descriptors = Object.getOwnPropertyDescriptors(obj);\n  const reducedDescriptors = {};\n\n  forEach(descriptors, (descriptor, name) => {\n    let ret;\n    if ((ret = reducer(descriptor, name, obj)) !== false) {\n      reducedDescriptors[name] = ret || descriptor;\n    }\n  });\n\n  Object.defineProperties(obj, reducedDescriptors);\n};\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n  reduceDescriptors(obj, (descriptor, name) => {\n    // skip restricted props in strict mode\n    if (isFunction(obj) && ['arguments', 'caller', 'callee'].includes(name)) {\n      return false;\n    }\n\n    const value = obj[name];\n\n    if (!isFunction(value)) return;\n\n    descriptor.enumerable = false;\n\n    if ('writable' in descriptor) {\n      descriptor.writable = false;\n      return;\n    }\n\n    if (!descriptor.set) {\n      descriptor.set = () => {\n        throw Error(\"Can not rewrite read-only method '\" + name + \"'\");\n      };\n    }\n  });\n};\n\n/**\n * Converts an array or a delimited string into an object set with values as keys and true as values.\n * Useful for fast membership checks.\n *\n * @param {Array|string} arrayOrString - The array or string to convert.\n * @param {string} delimiter - The delimiter to use if input is a string.\n * @returns {Object} An object with keys from the array or string, values set to true.\n */\nconst toObjectSet = (arrayOrString, delimiter) => {\n  const obj = {};\n\n  const define = (arr) => {\n    arr.forEach((value) => {\n      obj[value] = true;\n    });\n  };\n\n  isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n  return obj;\n};\n\nconst noop = () => {};\n\nconst toFiniteNumber = (value, defaultValue) => {\n  return value != null && Number.isFinite((value = +value)) ? value : defaultValue;\n};\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n  return !!(\n    thing &&\n    isFunction(thing.append) &&\n    thing[toStringTag] === 'FormData' &&\n    thing[iterator]\n  );\n}\n\n/**\n * Recursively converts an object to a JSON-compatible object, handling circular references and Buffers.\n *\n * @param {Object} obj - The object to convert.\n * @returns {Object} The JSON-compatible object.\n */\nconst toJSONObject = (obj) => {\n  const visited = new WeakSet();\n\n  const visit = (source) => {\n    if (isObject(source)) {\n      if (visited.has(source)) {\n        return;\n      }\n\n      //Buffer check\n      if (isBuffer(source)) {\n        return source;\n      }\n\n      if (!('toJSON' in source)) {\n        // add-on descent / delete-on-ascent: preserves path semantics, so DAG nodes serialise at every occurrence (see #7230).\n        visited.add(source);\n        const target = isArray(source) ? [] : {};\n\n        forEach(source, (value, key) => {\n          const reducedValue = visit(value);\n          !isUndefined(reducedValue) && (target[key] = reducedValue);\n        });\n\n        visited.delete(source);\n\n        return target;\n      }\n    }\n\n    return source;\n  };\n\n  return visit(obj);\n};\n\n/**\n * Determines if a value is an async function.\n *\n * @param {*} thing - The value to test.\n * @returns {boolean} True if value is an async function, otherwise false.\n */\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\n/**\n * Determines if a value is thenable (has then and catch methods).\n *\n * @param {*} thing - The value to test.\n * @returns {boolean} True if value is thenable, otherwise false.\n */\nconst isThenable = (thing) =>\n  thing &&\n  (isObject(thing) || isFunction(thing)) &&\n  isFunction(thing.then) &&\n  isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\n/**\n * Provides a cross-platform setImmediate implementation.\n * Uses native setImmediate if available, otherwise falls back to postMessage or setTimeout.\n *\n * @param {boolean} setImmediateSupported - Whether setImmediate is supported.\n * @param {boolean} postMessageSupported - Whether postMessage is supported.\n * @returns {Function} A function to schedule a callback asynchronously.\n */\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n  if (setImmediateSupported) {\n    return setImmediate;\n  }\n\n  return postMessageSupported\n    ? ((token, callbacks) => {\n        _global.addEventListener(\n          'message',\n          ({ source, data }) => {\n            if (source === _global && data === token) {\n              callbacks.length && callbacks.shift()();\n            }\n          },\n          false\n        );\n\n        return (cb) => {\n          callbacks.push(cb);\n          _global.postMessage(token, '*');\n        };\n      })(`axios@${Math.random()}`, [])\n    : (cb) => setTimeout(cb);\n})(typeof setImmediate === 'function', isFunction(_global.postMessage));\n\n/**\n * Schedules a microtask or asynchronous callback as soon as possible.\n * Uses queueMicrotask if available, otherwise falls back to process.nextTick or _setImmediate.\n *\n * @type {Function}\n */\nconst asap =\n  typeof queueMicrotask !== 'undefined'\n    ? queueMicrotask.bind(_global)\n    : (typeof process !== 'undefined' && process.nextTick) || _setImmediate;\n\n// *********************\n\nconst isIterable = (thing) => thing != null && isFunction(thing[iterator]);\n\n/**\n * Determine if a value is iterable via an iterator that is NOT sourced solely\n * from a polluted Object.prototype. Use this instead of `isIterable` whenever\n * the iterable comes from untrusted input (e.g. user-supplied header sources),\n * so `Object.prototype[Symbol.iterator] = ...` cannot turn an ordinary object\n * into an attacker-controlled entries iterator.\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value has a non-polluted iterator\n */\nconst isSafeIterable = (thing) =>\n  thing != null && hasOwnInPrototypeChain(thing, iterator) && isIterable(thing);\n\nexport default {\n  isArray,\n  isArrayBuffer,\n  isBuffer,\n  isFormData,\n  isArrayBufferView,\n  isString,\n  isNumber,\n  isBoolean,\n  isObject,\n  isPlainObject,\n  isEmptyObject,\n  isReadableStream,\n  isRequest,\n  isResponse,\n  isHeaders,\n  isUndefined,\n  isDate,\n  isFile,\n  isReactNativeBlob,\n  isReactNative,\n  isBlob,\n  isRegExp,\n  isFunction,\n  isStream,\n  isURLSearchParams,\n  isTypedArray,\n  isFileList,\n  forEach,\n  merge,\n  extend,\n  trim,\n  stripBOM,\n  inherits,\n  toFlatObject,\n  kindOf,\n  kindOfTest,\n  endsWith,\n  toArray,\n  forEachEntry,\n  matchAll,\n  isHTMLForm,\n  hasOwnProperty,\n  hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n  hasOwnInPrototypeChain,\n  getSafeProp,\n  reduceDescriptors,\n  freezeMethods,\n  toObjectSet,\n  toCamelCase,\n  noop,\n  toFiniteNumber,\n  findKey,\n  global: _global,\n  isContextDefined,\n  isSpecCompliantForm,\n  toJSONObject,\n  isAsyncFn,\n  isThenable,\n  setImmediate: _setImmediate,\n  asap,\n  isIterable,\n  isSafeIterable,\n};\n", "'use strict';\n\nimport utils from '../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n  'age',\n  'authorization',\n  'content-length',\n  'content-type',\n  'etag',\n  'expires',\n  'from',\n  'host',\n  'if-modified-since',\n  'if-unmodified-since',\n  'last-modified',\n  'location',\n  'max-forwards',\n  'proxy-authorization',\n  'referer',\n  'retry-after',\n  'user-agent',\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default (rawHeaders) => {\n  const parsed = {};\n  let key;\n  let val;\n  let i;\n\n  rawHeaders &&\n    rawHeaders.split('\\n').forEach(function parser(line) {\n      i = line.indexOf(':');\n      key = line.substring(0, i).trim().toLowerCase();\n      val = line.substring(i + 1).trim();\n\n      if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n        return;\n      }\n\n      if (key === 'set-cookie') {\n        if (parsed[key]) {\n          parsed[key].push(val);\n        } else {\n          parsed[key] = [val];\n        }\n      } else {\n        parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n      }\n    });\n\n  return parsed;\n};\n", "'use strict';\n\nimport utils from '../utils.js';\n\nfunction trimSPorHTAB(str) {\n  let start = 0;\n  let end = str.length;\n\n  while (start < end) {\n    const code = str.charCodeAt(start);\n\n    if (code !== 0x09 && code !== 0x20) {\n      break;\n    }\n\n    start += 1;\n  }\n\n  while (end > start) {\n    const code = str.charCodeAt(end - 1);\n\n    if (code !== 0x09 && code !== 0x20) {\n      break;\n    }\n\n    end -= 1;\n  }\n\n  return start === 0 && end === str.length ? str : str.slice(start, end);\n}\n\n// The control-code ranges are intentional: header sanitization strips C0/DEL bytes.\n// eslint-disable-next-line no-control-regex\nconst INVALID_UNICODE_HEADER_VALUE_CHARS = new RegExp('[\\\\u0000-\\\\u0008\\\\u000a-\\\\u001f\\\\u007f]+', 'g');\n// eslint-disable-next-line no-control-regex\nconst INVALID_BYTE_STRING_HEADER_VALUE_CHARS = new RegExp('[^\\\\u0009\\\\u0020-\\\\u007e\\\\u0080-\\\\u00ff]+', 'g');\n\nfunction sanitizeValue(value, invalidChars) {\n  if (utils.isArray(value)) {\n    return value.map((item) => sanitizeValue(item, invalidChars));\n  }\n\n  return trimSPorHTAB(String(value).replace(invalidChars, ''));\n}\n\nexport const sanitizeHeaderValue = (value) =>\n  sanitizeValue(value, INVALID_UNICODE_HEADER_VALUE_CHARS);\n\nexport const sanitizeByteStringHeaderValue = (value) =>\n  sanitizeValue(value, INVALID_BYTE_STRING_HEADER_VALUE_CHARS);\n\nexport function toByteStringHeaderObject(headers) {\n  const byteStringHeaders = Object.create(null);\n\n  utils.forEach(headers.toJSON(), (value, header) => {\n    byteStringHeaders[header] = sanitizeByteStringHeaderValue(value);\n  });\n\n  return byteStringHeaders;\n}\n", "'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\nimport { sanitizeHeaderValue } from '../helpers/sanitizeHeaderValue.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n  return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n  if (value === false || value == null) {\n    return value;\n  }\n\n  return utils.isArray(value) ? value.map(normalizeValue) : sanitizeHeaderValue(String(value));\n}\n\nfunction parseTokens(str) {\n  const tokens = Object.create(null);\n  const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n  let match;\n\n  while ((match = tokensRE.exec(str))) {\n    tokens[match[1]] = match[2];\n  }\n\n  return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n  if (utils.isFunction(filter)) {\n    return filter.call(this, value, header);\n  }\n\n  if (isHeaderNameFilter) {\n    value = header;\n  }\n\n  if (!utils.isString(value)) return;\n\n  if (utils.isString(filter)) {\n    return value.indexOf(filter) !== -1;\n  }\n\n  if (utils.isRegExp(filter)) {\n    return filter.test(value);\n  }\n}\n\nfunction formatHeader(header) {\n  return header\n    .trim()\n    .toLowerCase()\n    .replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n      return char.toUpperCase() + str;\n    });\n}\n\nfunction buildAccessors(obj, header) {\n  const accessorName = utils.toCamelCase(' ' + header);\n\n  ['get', 'set', 'has'].forEach((methodName) => {\n    Object.defineProperty(obj, methodName + accessorName, {\n      // Null-proto descriptor so a polluted Object.prototype.get cannot turn\n      // this data descriptor into an accessor descriptor on the way in.\n      __proto__: null,\n      value: function (arg1, arg2, arg3) {\n        return this[methodName].call(this, header, arg1, arg2, arg3);\n      },\n      configurable: true,\n    });\n  });\n}\n\nclass AxiosHeaders {\n  constructor(headers) {\n    headers && this.set(headers);\n  }\n\n  set(header, valueOrRewrite, rewrite) {\n    const self = this;\n\n    function setHeader(_value, _header, _rewrite) {\n      const lHeader = normalizeHeader(_header);\n\n      if (!lHeader) {\n        return;\n      }\n\n      const key = utils.findKey(self, lHeader);\n\n      if (\n        !key ||\n        self[key] === undefined ||\n        _rewrite === true ||\n        (_rewrite === undefined && self[key] !== false)\n      ) {\n        self[key || _header] = normalizeValue(_value);\n      }\n    }\n\n    const setHeaders = (headers, _rewrite) =>\n      utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n    if (utils.isPlainObject(header) || header instanceof this.constructor) {\n      setHeaders(header, valueOrRewrite);\n    } else if (utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n      setHeaders(parseHeaders(header), valueOrRewrite);\n    } else if (utils.isObject(header) && utils.isSafeIterable(header)) {\n      let obj = Object.create(null),\n        dest,\n        key;\n      for (const entry of header) {\n        if (!utils.isArray(entry)) {\n          throw new TypeError('Object iterator must return a key-value pair');\n        }\n\n        key = entry[0];\n\n        if (utils.hasOwnProp(obj, key)) {\n          dest = obj[key];\n          obj[key] = utils.isArray(dest) ? [...dest, entry[1]] : [dest, entry[1]];\n        } else {\n          obj[key] = entry[1];\n        }\n      }\n\n      setHeaders(obj, valueOrRewrite);\n    } else {\n      header != null && setHeader(valueOrRewrite, header, rewrite);\n    }\n\n    return this;\n  }\n\n  get(header, parser) {\n    header = normalizeHeader(header);\n\n    if (header) {\n      const key = utils.findKey(this, header);\n\n      if (key) {\n        const value = this[key];\n\n        if (!parser) {\n          return value;\n        }\n\n        if (parser === true) {\n          return parseTokens(value);\n        }\n\n        if (utils.isFunction(parser)) {\n          return parser.call(this, value, key);\n        }\n\n        if (utils.isRegExp(parser)) {\n          return parser.exec(value);\n        }\n\n        throw new TypeError('parser must be boolean|regexp|function');\n      }\n    }\n  }\n\n  has(header, matcher) {\n    header = normalizeHeader(header);\n\n    if (header) {\n      const key = utils.findKey(this, header);\n\n      return !!(\n        key &&\n        this[key] !== undefined &&\n        (!matcher || matchHeaderValue(this, this[key], key, matcher))\n      );\n    }\n\n    return false;\n  }\n\n  delete(header, matcher) {\n    const self = this;\n    let deleted = false;\n\n    function deleteHeader(_header) {\n      _header = normalizeHeader(_header);\n\n      if (_header) {\n        const key = utils.findKey(self, _header);\n\n        if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n          delete self[key];\n\n          deleted = true;\n        }\n      }\n    }\n\n    if (utils.isArray(header)) {\n      header.forEach(deleteHeader);\n    } else {\n      deleteHeader(header);\n    }\n\n    return deleted;\n  }\n\n  clear(matcher) {\n    const keys = Object.keys(this);\n    let i = keys.length;\n    let deleted = false;\n\n    while (i--) {\n      const key = keys[i];\n      if (!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n        delete this[key];\n        deleted = true;\n      }\n    }\n\n    return deleted;\n  }\n\n  normalize(format) {\n    const self = this;\n    const headers = {};\n\n    utils.forEach(this, (value, header) => {\n      const key = utils.findKey(headers, header);\n\n      if (key) {\n        self[key] = normalizeValue(value);\n        delete self[header];\n        return;\n      }\n\n      const normalized = format ? formatHeader(header) : String(header).trim();\n\n      if (normalized !== header) {\n        delete self[header];\n      }\n\n      self[normalized] = normalizeValue(value);\n\n      headers[normalized] = true;\n    });\n\n    return this;\n  }\n\n  concat(...targets) {\n    return this.constructor.concat(this, ...targets);\n  }\n\n  toJSON(asStrings) {\n    const obj = Object.create(null);\n\n    utils.forEach(this, (value, header) => {\n      value != null &&\n        value !== false &&\n        (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n    });\n\n    return obj;\n  }\n\n  [Symbol.iterator]() {\n    return Object.entries(this.toJSON())[Symbol.iterator]();\n  }\n\n  toString() {\n    return Object.entries(this.toJSON())\n      .map(([header, value]) => header + ': ' + value)\n      .join('\\n');\n  }\n\n  getSetCookie() {\n    return this.get('set-cookie') || [];\n  }\n\n  get [Symbol.toStringTag]() {\n    return 'AxiosHeaders';\n  }\n\n  static from(thing) {\n    return thing instanceof this ? thing : new this(thing);\n  }\n\n  static concat(first, ...targets) {\n    const computed = new this(first);\n\n    targets.forEach((target) => computed.set(target));\n\n    return computed;\n  }\n\n  static accessor(header) {\n    const internals =\n      (this[$internals] =\n      this[$internals] =\n        {\n          accessors: {},\n        });\n\n    const accessors = internals.accessors;\n    const prototype = this.prototype;\n\n    function defineAccessor(_header) {\n      const lHeader = normalizeHeader(_header);\n\n      if (!accessors[lHeader]) {\n        buildAccessors(prototype, _header);\n        accessors[lHeader] = true;\n      }\n    }\n\n    utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n    return this;\n  }\n}\n\nAxiosHeaders.accessor([\n  'Content-Type',\n  'Content-Length',\n  'Accept',\n  'Accept-Encoding',\n  'User-Agent',\n  'Authorization',\n]);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({ value }, key) => {\n  let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n  return {\n    get: () => value,\n    set(headerValue) {\n      this[mapped] = headerValue;\n    },\n  };\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n", "'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst REDACTED = '[REDACTED ****]';\n\nfunction hasOwnOrPrototypeToJSON(source) {\n  if (utils.hasOwnProp(source, 'toJSON')) {\n    return true;\n  }\n\n  let prototype = Object.getPrototypeOf(source);\n\n  while (prototype && prototype !== Object.prototype) {\n    if (utils.hasOwnProp(prototype, 'toJSON')) {\n      return true;\n    }\n\n    prototype = Object.getPrototypeOf(prototype);\n  }\n\n  return false;\n}\n\n// Build a plain-object snapshot of `config` and replace the value of any key\n// (case-insensitive) listed in `redactKeys` with REDACTED. Walks through arrays\n// and AxiosHeaders, and short-circuits on circular references.\nfunction redactConfig(config, redactKeys) {\n  const lowerKeys = new Set(redactKeys.map((k) => String(k).toLowerCase()));\n  const seen = [];\n\n  const visit = (source) => {\n    if (source === null || typeof source !== 'object') return source;\n    if (utils.isBuffer(source)) return source;\n    if (seen.indexOf(source) !== -1) return undefined;\n\n    if (source instanceof AxiosHeaders) {\n      source = source.toJSON();\n    }\n\n    seen.push(source);\n\n    let result;\n    if (utils.isArray(source)) {\n      result = [];\n      source.forEach((v, i) => {\n        const reducedValue = visit(v);\n        if (!utils.isUndefined(reducedValue)) {\n          result[i] = reducedValue;\n        }\n      });\n    } else {\n      if (!utils.isPlainObject(source) && hasOwnOrPrototypeToJSON(source)) {\n        seen.pop();\n        return source;\n      }\n\n      result = Object.create(null);\n      for (const [key, value] of Object.entries(source)) {\n        const reducedValue = lowerKeys.has(key.toLowerCase()) ? REDACTED : visit(value);\n        if (!utils.isUndefined(reducedValue)) {\n          result[key] = reducedValue;\n        }\n      }\n    }\n\n    seen.pop();\n    return result;\n  };\n\n  return visit(config);\n}\n\nclass AxiosError extends Error {\n  static from(error, code, config, request, response, customProps) {\n    const axiosError = new AxiosError(error.message, code || error.code, config, request, response);\n    // Match native `Error` `cause` semantics: non-enumerable. The wrapped\n    // error often carries circular internals (sockets, requests, agents), so\n    // an enumerable `cause` makes structured loggers (pino/winston) and any\n    // own-property walk throw \"Converting circular structure to JSON\".\n    // Regression from #6982; see #7205. `__proto__: null` mirrors the\n    // `message` descriptor below (prototype-pollution-safe descriptor).\n    Object.defineProperty(axiosError, 'cause', {\n      __proto__: null,\n      value: error,\n      writable: true,\n      enumerable: false,\n      configurable: true,\n    });\n    axiosError.name = error.name;\n\n    // Preserve status from the original error if not already set from response\n    if (error.status != null && axiosError.status == null) {\n      axiosError.status = error.status;\n    }\n\n    customProps && Object.assign(axiosError, customProps);\n    return axiosError;\n  }\n\n  /**\n   * Create an Error with the specified message, config, error code, request and response.\n   *\n   * @param {string} message The error message.\n   * @param {string} [code] The error code (for example, 'ECONNABORTED').\n   * @param {Object} [config] The config.\n   * @param {Object} [request] The request.\n   * @param {Object} [response] The response.\n   *\n   * @returns {Error} The created error.\n   */\n  constructor(message, code, config, request, response) {\n    super(message);\n\n    // Make message enumerable to maintain backward compatibility\n    // The native Error constructor sets message as non-enumerable,\n    // but axios < v1.13.3 had it as enumerable\n    Object.defineProperty(this, 'message', {\n      // Null-proto descriptor so a polluted Object.prototype.get cannot turn\n      // this data descriptor into an accessor descriptor on the way in.\n      __proto__: null,\n      value: message,\n      enumerable: true,\n      writable: true,\n      configurable: true,\n    });\n\n    this.name = 'AxiosError';\n    this.isAxiosError = true;\n    code && (this.code = code);\n    config && (this.config = config);\n    request && (this.request = request);\n    if (response) {\n      this.response = response;\n      this.status = response.status;\n    }\n  }\n\n  toJSON() {\n    // Opt-in redaction: when the request config carries a `redact` array, the\n    // value of any matching key (case-insensitive, at any depth) is replaced\n    // with REDACTED in the serialized snapshot. Undefined or empty leaves the\n    // existing serialization behavior unchanged.\n    const config = this.config;\n    const redactKeys = config && utils.hasOwnProp(config, 'redact') ? config.redact : undefined;\n    const serializedConfig =\n      utils.isArray(redactKeys) && redactKeys.length > 0\n        ? redactConfig(config, redactKeys)\n        : utils.toJSONObject(config);\n\n    return {\n      // Standard\n      message: this.message,\n      name: this.name,\n      // Microsoft\n      description: this.description,\n      number: this.number,\n      // Mozilla\n      fileName: this.fileName,\n      lineNumber: this.lineNumber,\n      columnNumber: this.columnNumber,\n      stack: this.stack,\n      // Axios\n      config: serializedConfig,\n      code: this.code,\n      status: this.status,\n    };\n  }\n}\n\n// This can be changed to static properties as soon as the parser options in .eslint.cjs are updated.\nAxiosError.ERR_BAD_OPTION_VALUE = 'ERR_BAD_OPTION_VALUE';\nAxiosError.ERR_BAD_OPTION = 'ERR_BAD_OPTION';\nAxiosError.ECONNABORTED = 'ECONNABORTED';\nAxiosError.ETIMEDOUT = 'ETIMEDOUT';\nAxiosError.ECONNREFUSED = 'ECONNREFUSED';\nAxiosError.ERR_NETWORK = 'ERR_NETWORK';\nAxiosError.ERR_FR_TOO_MANY_REDIRECTS = 'ERR_FR_TOO_MANY_REDIRECTS';\nAxiosError.ERR_DEPRECATED = 'ERR_DEPRECATED';\nAxiosError.ERR_BAD_RESPONSE = 'ERR_BAD_RESPONSE';\nAxiosError.ERR_BAD_REQUEST = 'ERR_BAD_REQUEST';\nAxiosError.ERR_CANCELED = 'ERR_CANCELED';\nAxiosError.ERR_NOT_SUPPORT = 'ERR_NOT_SUPPORT';\nAxiosError.ERR_INVALID_URL = 'ERR_INVALID_URL';\nAxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED = 'ERR_FORM_DATA_DEPTH_EXCEEDED';\n\nexport default AxiosError;\n", "import FormData from 'form-data';\n\nexport default FormData;\n", "'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n// Default nesting limit shared with the inverse transform (formDataToJSON) so\n// the FormData <-> JSON round-trip stays symmetric.\nexport const DEFAULT_FORM_DATA_MAX_DEPTH = 100;\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n  return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n  return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n  if (!path) return key;\n  return path\n    .concat(key)\n    .map(function each(token, i) {\n      // eslint-disable-next-line no-param-reassign\n      token = removeBrackets(token);\n      return !dots && i ? '[' + token + ']' : token;\n    })\n    .join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n  return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n  return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n  if (!utils.isObject(obj)) {\n    throw new TypeError('target must be an object');\n  }\n\n  // eslint-disable-next-line no-param-reassign\n  formData = formData || new (PlatformFormData || FormData)();\n\n  // eslint-disable-next-line no-param-reassign\n  options = utils.toFlatObject(\n    options,\n    {\n      metaTokens: true,\n      dots: false,\n      indexes: false,\n    },\n    false,\n    function defined(option, source) {\n      // eslint-disable-next-line no-eq-null,eqeqeq\n      return !utils.isUndefined(source[option]);\n    }\n  );\n\n  const metaTokens = options.metaTokens;\n  // eslint-disable-next-line no-use-before-define\n  const visitor = options.visitor || defaultVisitor;\n  const dots = options.dots;\n  const indexes = options.indexes;\n  const _Blob = options.Blob || (typeof Blob !== 'undefined' && Blob);\n  const maxDepth = options.maxDepth === undefined ? DEFAULT_FORM_DATA_MAX_DEPTH : options.maxDepth;\n  const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n  const stack = [];\n\n  if (!utils.isFunction(visitor)) {\n    throw new TypeError('visitor must be a function');\n  }\n\n  function convertValue(value) {\n    if (value === null) return '';\n\n    if (utils.isDate(value)) {\n      return value.toISOString();\n    }\n\n    if (utils.isBoolean(value)) {\n      return value.toString();\n    }\n\n    if (!useBlob && utils.isBlob(value)) {\n      throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n    }\n\n    if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n      if (useBlob && typeof _Blob === 'function') {\n        return new _Blob([value]);\n      }\n      if (typeof Buffer !== 'undefined') {\n        return Buffer.from(value);\n      }\n      throw new AxiosError('Blob is not supported. Use a Buffer instead.', AxiosError.ERR_NOT_SUPPORT);\n    }\n\n    return value;\n  }\n\n  function throwIfMaxDepthExceeded(depth) {\n    if (depth > maxDepth) {\n      throw new AxiosError(\n        'Object is too deeply nested (' + depth + ' levels). Max depth: ' + maxDepth,\n        AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED\n      );\n    }\n  }\n\n  function stringifyWithDepthLimit(value, depth) {\n    if (maxDepth === Infinity) {\n      return JSON.stringify(value);\n    }\n\n    const ancestors = [];\n\n    return JSON.stringify(value, function limitDepth(_key, currentValue) {\n      if (!utils.isObject(currentValue)) {\n        return currentValue;\n      }\n\n      while (ancestors.length && ancestors[ancestors.length - 1] !== this) {\n        ancestors.pop();\n      }\n\n      ancestors.push(currentValue);\n      throwIfMaxDepthExceeded(depth + ancestors.length - 1);\n\n      return currentValue;\n    });\n  }\n\n  /**\n   * Default visitor.\n   *\n   * @param {*} value\n   * @param {String|Number} key\n   * @param {Array<String|Number>} path\n   * @this {FormData}\n   *\n   * @returns {boolean} return true to visit the each prop of the value recursively\n   */\n  function defaultVisitor(value, key, path) {\n    let arr = value;\n\n    if (utils.isReactNative(formData) && utils.isReactNativeBlob(value)) {\n      formData.append(renderKey(path, key, dots), convertValue(value));\n      return false;\n    }\n\n    if (value && !path && typeof value === 'object') {\n      if (utils.endsWith(key, '{}')) {\n        // eslint-disable-next-line no-param-reassign\n        key = metaTokens ? key : key.slice(0, -2);\n        // eslint-disable-next-line no-param-reassign\n        value = stringifyWithDepthLimit(value, 1);\n      } else if (\n        (utils.isArray(value) && isFlatArray(value)) ||\n        ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value)))\n      ) {\n        // eslint-disable-next-line no-param-reassign\n        key = removeBrackets(key);\n\n        arr.forEach(function each(el, index) {\n          !(utils.isUndefined(el) || el === null) &&\n            formData.append(\n              // eslint-disable-next-line no-nested-ternary\n              indexes === true\n                ? renderKey([key], index, dots)\n                : indexes === null\n                  ? key\n                  : key + '[]',\n              convertValue(el)\n            );\n        });\n        return false;\n      }\n    }\n\n    if (isVisitable(value)) {\n      return true;\n    }\n\n    formData.append(renderKey(path, key, dots), convertValue(value));\n\n    return false;\n  }\n\n  const exposedHelpers = Object.assign(predicates, {\n    defaultVisitor,\n    convertValue,\n    isVisitable,\n  });\n\n  function build(value, path, depth = 0) {\n    if (utils.isUndefined(value)) return;\n\n    throwIfMaxDepthExceeded(depth);\n\n    if (stack.indexOf(value) !== -1) {\n      throw new Error('Circular reference detected in ' + path.join('.'));\n    }\n\n    stack.push(value);\n\n    utils.forEach(value, function each(el, key) {\n      const result =\n        !(utils.isUndefined(el) || el === null) &&\n        visitor.call(formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers);\n\n      if (result === true) {\n        build(el, path ? path.concat(key) : [key], depth + 1);\n      }\n    });\n\n    stack.pop();\n  }\n\n  if (!utils.isObject(obj)) {\n    throw new TypeError('data must be an object');\n  }\n\n  build(obj);\n\n  return formData;\n}\n\nexport default toFormData;\n", "'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n  const charMap = {\n    '!': '%21',\n    \"'\": '%27',\n    '(': '%28',\n    ')': '%29',\n    '~': '%7E',\n    '%20': '+',\n  };\n  return encodeURIComponent(str).replace(/[!'()~]|%20/g, function replacer(match) {\n    return charMap[match];\n  });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n  this._pairs = [];\n\n  params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n  this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n  const _encode = encoder\n    ? (value) => encoder.call(this, value, encode)\n    : encode;\n\n  return this._pairs\n    .map(function each(pair) {\n      return _encode(pair[0]) + '=' + _encode(pair[1]);\n    }, '')\n    .join('&');\n};\n\nexport default AxiosURLSearchParams;\n", "'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from './AxiosURLSearchParams.js';\n\n/**\n * It replaces URL-encoded forms of `:`, `$`, `,`, and spaces with\n * their plain counterparts (`:`, `$`, `,`, `+`).\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nexport function encode(val) {\n  return encodeURIComponent(val)\n    .replace(/%3A/gi, ':')\n    .replace(/%24/g, '$')\n    .replace(/%2C/gi, ',')\n    .replace(/%20/g, '+');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n  if (!params) {\n    return url;\n  }\n  url = url || '';\n\n  const _options = utils.isFunction(options)\n    ? {\n        serialize: options,\n      }\n    : options;\n\n  // Read serializer options pollution-safely: own properties and methods on a\n  // class/template prototype are honored, but values injected onto a polluted\n  // Object.prototype are ignored.\n  const _encode = utils.getSafeProp(_options, 'encode') || encode;\n  const serializeFn = utils.getSafeProp(_options, 'serialize');\n\n  let serializedParams;\n\n  if (serializeFn) {\n    serializedParams = serializeFn(params, _options);\n  } else {\n    serializedParams = utils.isURLSearchParams(params)\n      ? params.toString()\n      : new AxiosURLSearchParams(params, _options).toString(_encode);\n  }\n\n  if (serializedParams) {\n    const hashmarkIndex = url.indexOf('#');\n\n    if (hashmarkIndex !== -1) {\n      url = url.slice(0, hashmarkIndex);\n    }\n    url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n  }\n\n  return url;\n}\n", "'use strict';\n\nimport utils from '../utils.js';\n\nclass InterceptorManager {\n  constructor() {\n    this.handlers = [];\n  }\n\n  /**\n   * Add a new interceptor to the stack\n   *\n   * @param {Function} fulfilled The function to handle `then` for a `Promise`\n   * @param {Function} rejected The function to handle `reject` for a `Promise`\n   * @param {Object} options The options for the interceptor, synchronous and runWhen\n   *\n   * @return {Number} An ID used to remove interceptor later\n   */\n  use(fulfilled, rejected, options) {\n    this.handlers.push({\n      fulfilled,\n      rejected,\n      synchronous: options ? options.synchronous : false,\n      runWhen: options ? options.runWhen : null,\n    });\n    return this.handlers.length - 1;\n  }\n\n  /**\n   * Remove an interceptor from the stack\n   *\n   * @param {Number} id The ID that was returned by `use`\n   *\n   * @returns {void}\n   */\n  eject(id) {\n    if (this.handlers[id]) {\n      this.handlers[id] = null;\n    }\n  }\n\n  /**\n   * Clear all interceptors from the stack\n   *\n   * @returns {void}\n   */\n  clear() {\n    if (this.handlers) {\n      this.handlers = [];\n    }\n  }\n\n  /**\n   * Iterate over all the registered interceptors\n   *\n   * This method is particularly useful for skipping over any\n   * interceptors that may have become `null` calling `eject`.\n   *\n   * @param {Function} fn The function to call for each interceptor\n   *\n   * @returns {void}\n   */\n  forEach(fn) {\n    utils.forEach(this.handlers, function forEachHandler(h) {\n      if (h !== null) {\n        fn(h);\n      }\n    });\n  }\n}\n\nexport default InterceptorManager;\n", "'use strict';\n\nexport default {\n  silentJSONParsing: true,\n  forcedJSONParsing: true,\n  clarifyTimeoutError: false,\n  legacyInterceptorReqResOrdering: true,\n  advertiseZstdAcceptEncoding: false,\n  validateStatusUndefinedResolves: true,\n};\n", "import crypto from 'crypto';\nimport URLSearchParams from './classes/URLSearchParams.js';\nimport FormData from './classes/FormData.js';\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz';\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n  DIGIT,\n  ALPHA,\n  ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT,\n};\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n  let str = '';\n  const { length } = alphabet;\n  const randomValues = new Uint32Array(size);\n  crypto.randomFillSync(randomValues);\n  for (let i = 0; i < size; i++) {\n    str += alphabet[randomValues[i] % length];\n  }\n\n  return str;\n};\n\nexport default {\n  isNode: true,\n  classes: {\n    URLSearchParams,\n    FormData,\n    Blob: (typeof Blob !== 'undefined' && Blob) || null,\n  },\n  ALPHABET,\n  generateString,\n  protocols: ['http', 'https', 'file', 'data'],\n};\n", "'use strict';\n\nimport url from 'url';\nexport default url.URLSearchParams;\n", "const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = (typeof navigator === 'object' && navigator) || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n *  typeof window -> undefined\n *  typeof document -> undefined\n *\n * react-native:\n *  navigator.product -> 'ReactNative'\n * nativescript\n *  navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv =\n  hasBrowserEnv &&\n  (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n  return (\n    typeof WorkerGlobalScope !== 'undefined' &&\n    // eslint-disable-next-line no-undef\n    self instanceof WorkerGlobalScope &&\n    typeof self.importScripts === 'function'\n  );\n})();\n\nconst origin = (hasBrowserEnv && window.location.href) || 'http://localhost';\n\nexport {\n  hasBrowserEnv,\n  hasStandardBrowserWebWorkerEnv,\n  hasStandardBrowserEnv,\n  _navigator as navigator,\n  origin,\n};\n", "import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n  ...utils,\n  ...platform,\n};\n", "'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n  return toFormData(data, new platform.classes.URLSearchParams(), {\n    visitor: function (value, key, path, helpers) {\n      if (platform.isNode && utils.isBuffer(value)) {\n        this.append(key, value.toString('base64'));\n        return false;\n      }\n\n      return helpers.defaultVisitor.apply(this, arguments);\n    },\n    ...options,\n  });\n}\n", "'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport { DEFAULT_FORM_DATA_MAX_DEPTH } from './toFormData.js';\n\nconst MAX_DEPTH = DEFAULT_FORM_DATA_MAX_DEPTH;\n\nfunction throwIfDepthExceeded(index) {\n  if (index > MAX_DEPTH) {\n    throw new AxiosError(\n      'FormData field is too deeply nested (' + index + ' levels). Max depth: ' + MAX_DEPTH,\n      AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED\n    );\n  }\n}\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n  // foo[x][y][z]\n  // foo.x.y.z\n  // foo-x-y-z\n  // foo x y z\n  const path = [];\n  const pattern = /\\w+|\\[(\\w*)]/g;\n  let match;\n\n  while ((match = pattern.exec(name)) !== null) {\n    throwIfDepthExceeded(path.length);\n    path.push(match[0] === '[]' ? '' : match[1] || match[0]);\n  }\n\n  return path;\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n  const obj = {};\n  const keys = Object.keys(arr);\n  let i;\n  const len = keys.length;\n  let key;\n  for (i = 0; i < len; i++) {\n    key = keys[i];\n    obj[key] = arr[key];\n  }\n  return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n  function buildPath(path, value, target, index) {\n    throwIfDepthExceeded(index);\n\n    let name = path[index++];\n\n    if (name === '__proto__') return true;\n\n    const isNumericKey = Number.isFinite(+name);\n    const isLast = index >= path.length;\n    name = !name && utils.isArray(target) ? target.length : name;\n\n    if (isLast) {\n      if (utils.hasOwnProp(target, name)) {\n        target[name] = utils.isArray(target[name])\n          ? target[name].concat(value)\n          : [target[name], value];\n      } else {\n        target[name] = value;\n      }\n\n      return !isNumericKey;\n    }\n\n    if (!utils.hasOwnProp(target, name) || !utils.isObject(target[name])) {\n      target[name] = [];\n    }\n\n    const result = buildPath(path, value, target[name], index);\n\n    if (result && utils.isArray(target[name])) {\n      target[name] = arrayToObject(target[name]);\n    }\n\n    return !isNumericKey;\n  }\n\n  if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n    const obj = {};\n\n    utils.forEachEntry(formData, (name, value) => {\n      buildPath(parsePropPath(name), value, obj, 0);\n    });\n\n    return obj;\n  }\n\n  return null;\n}\n\nexport default formDataToJSON;\n", "'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\nconst own = (obj, key) => (obj != null && utils.hasOwnProp(obj, key) ? obj[key] : undefined);\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n  if (utils.isString(rawValue)) {\n    try {\n      (parser || JSON.parse)(rawValue);\n      return utils.trim(rawValue);\n    } catch (e) {\n      if (e.name !== 'SyntaxError') {\n        throw e;\n      }\n    }\n  }\n\n  return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n  transitional: transitionalDefaults,\n\n  adapter: ['xhr', 'http', 'fetch'],\n\n  transformRequest: [\n    function transformRequest(data, headers) {\n      const contentType = headers.getContentType() || '';\n      const hasJSONContentType = contentType.indexOf('application/json') > -1;\n      const isObjectPayload = utils.isObject(data);\n\n      if (isObjectPayload && utils.isHTMLForm(data)) {\n        data = new FormData(data);\n      }\n\n      const isFormData = utils.isFormData(data);\n\n      if (isFormData) {\n        return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n      }\n\n      if (\n        utils.isArrayBuffer(data) ||\n        utils.isBuffer(data) ||\n        utils.isStream(data) ||\n        utils.isFile(data) ||\n        utils.isBlob(data) ||\n        utils.isReadableStream(data)\n      ) {\n        return data;\n      }\n      if (utils.isArrayBufferView(data)) {\n        return data.buffer;\n      }\n      if (utils.isURLSearchParams(data)) {\n        headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n        return data.toString();\n      }\n\n      let isFileList;\n\n      if (isObjectPayload) {\n        const formSerializer = own(this, 'formSerializer');\n        if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n          return toURLEncodedForm(data, formSerializer).toString();\n        }\n\n        if (\n          (isFileList = utils.isFileList(data)) ||\n          contentType.indexOf('multipart/form-data') > -1\n        ) {\n          const env = own(this, 'env');\n          const _FormData = env && env.FormData;\n\n          return toFormData(\n            isFileList ? { 'files[]': data } : data,\n            _FormData && new _FormData(),\n            formSerializer\n          );\n        }\n      }\n\n      if (isObjectPayload || hasJSONContentType) {\n        headers.setContentType('application/json', false);\n        return stringifySafely(data);\n      }\n\n      return data;\n    },\n  ],\n\n  transformResponse: [\n    function transformResponse(data) {\n      const transitional = own(this, 'transitional') || defaults.transitional;\n      const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n      const responseType = own(this, 'responseType');\n      const JSONRequested = responseType === 'json';\n\n      if (utils.isResponse(data) || utils.isReadableStream(data)) {\n        return data;\n      }\n\n      if (\n        data &&\n        utils.isString(data) &&\n        ((forcedJSONParsing && !responseType) || JSONRequested)\n      ) {\n        const silentJSONParsing = transitional && transitional.silentJSONParsing;\n        const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n        try {\n          return JSON.parse(data, own(this, 'parseReviver'));\n        } catch (e) {\n          if (strictJSONParsing) {\n            if (e.name === 'SyntaxError') {\n              throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, own(this, 'response'));\n            }\n            throw e;\n          }\n        }\n      }\n\n      return data;\n    },\n  ],\n\n  /**\n   * A timeout in milliseconds to abort a request. If set to 0 (default) a\n   * timeout is not created.\n   */\n  timeout: 0,\n\n  xsrfCookieName: 'XSRF-TOKEN',\n  xsrfHeaderName: 'X-XSRF-TOKEN',\n\n  maxContentLength: -1,\n  maxBodyLength: -1,\n\n  env: {\n    FormData: platform.classes.FormData,\n    Blob: platform.classes.Blob,\n  },\n\n  validateStatus: function validateStatus(status) {\n    return status >= 200 && status < 300;\n  },\n\n  headers: {\n    common: {\n      Accept: 'application/json, text/plain, */*',\n      'Content-Type': undefined,\n    },\n  },\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'query'], (method) => {\n  defaults.headers[method] = {};\n});\n\nexport default defaults;\n", "'use strict';\n\nimport utils from '../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n  const config = this || defaults;\n  const context = response || config;\n  const headers = AxiosHeaders.from(context.headers);\n  let data = context.data;\n\n  utils.forEach(fns, function transform(fn) {\n    data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n  });\n\n  headers.normalize();\n\n  return data;\n}\n", "'use strict';\n\nexport default function isCancel(value) {\n  return !!(value && value.__CANCEL__);\n}\n", "'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\n\nclass CanceledError extends AxiosError {\n  /**\n   * A `CanceledError` is an object that is thrown when an operation is canceled.\n   *\n   * @param {string=} message The message.\n   * @param {Object=} config The config.\n   * @param {Object=} request The request.\n   *\n   * @returns {CanceledError} The created error.\n   */\n  constructor(message, config, request) {\n    super(message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n    this.name = 'CanceledError';\n    this.__CANCEL__ = true;\n  }\n}\n\nexport default CanceledError;\n", "'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n  const validateStatus = response.config.validateStatus;\n  if (!response.status || !validateStatus || validateStatus(response.status)) {\n    resolve(response);\n  } else {\n    reject(new AxiosError(\n      'Request failed with status code ' + response.status,\n      response.status >= 400 && response.status < 500 ? AxiosError.ERR_BAD_REQUEST : AxiosError.ERR_BAD_RESPONSE,\n      response.config,\n      response.request,\n      response\n    ));\n  }\n}\n", "'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n  // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n  // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n  // by any combination of letters, digits, plus, period, or hyphen.\n  if (typeof url !== 'string') {\n    return false;\n  }\n\n  return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n", "'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n  return relativeURL\n    ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n    : baseURL;\n}\n", "'use strict';\n\nimport AxiosError from './AxiosError.js';\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\nconst malformedHttpProtocol = /^https?:(?!\\/\\/)/i;\nconst httpProtocolControlCharacters = /[\\t\\n\\r]/g;\n\nfunction stripLeadingC0ControlOrSpace(url) {\n  let i = 0;\n  while (i < url.length && url.charCodeAt(i) <= 0x20) {\n    i++;\n  }\n  return url.slice(i);\n}\n\nfunction normalizeURLForProtocolCheck(url) {\n  return stripLeadingC0ControlOrSpace(url).replace(httpProtocolControlCharacters, '');\n}\n\nfunction assertValidHttpProtocolURL(url, config) {\n  if (typeof url === 'string' && malformedHttpProtocol.test(normalizeURLForProtocolCheck(url))) {\n    throw new AxiosError(\n      'Invalid URL: missing \"//\" after protocol',\n      AxiosError.ERR_INVALID_URL,\n      config\n    );\n  }\n}\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls, config) {\n  assertValidHttpProtocolURL(requestedURL, config);\n  let isRelativeUrl = !isAbsoluteURL(requestedURL);\n  if (baseURL && (isRelativeUrl || allowAbsoluteUrls === false)) {\n    assertValidHttpProtocolURL(baseURL, config);\n    return combineURLs(baseURL, requestedURL);\n  }\n  return requestedURL;\n}\n", "'use strict';\n\nvar DEFAULT_PORTS = {\n  ftp: 21,\n  gopher: 70,\n  http: 80,\n  https: 443,\n  ws: 80,\n  wss: 443,\n};\n\nfunction parseUrl(urlString) {\n  try {\n    return new URL(urlString);\n  } catch {\n    return null;\n  }\n}\n\n/**\n * @param {string|object|URL} url - The URL as a string or URL instance, or a\n *   compatible object (such as the result from legacy url.parse).\n * @return {string} The URL of the proxy that should handle the request to the\n *  given URL. If no proxy is set, this will be an empty string.\n */\nexport function getProxyForUrl(url) {\n  var parsedUrl = (typeof url === 'string' ? parseUrl(url) : url) || {};\n  var proto = parsedUrl.protocol;\n  var hostname = parsedUrl.host;\n  var port = parsedUrl.port;\n  if (typeof hostname !== 'string' || !hostname || typeof proto !== 'string') {\n    return '';  // Don't proxy URLs without a valid scheme or host.\n  }\n\n  proto = proto.split(':', 1)[0];\n  // Stripping ports in this way instead of using parsedUrl.hostname to make\n  // sure that the brackets around IPv6 addresses are kept.\n  hostname = hostname.replace(/:\\d*$/, '');\n  port = parseInt(port) || DEFAULT_PORTS[proto] || 0;\n  if (!shouldProxy(hostname, port)) {\n    return '';  // Don't proxy URLs that match NO_PROXY.\n  }\n\n  var proxy = getEnv(proto + '_proxy') || getEnv('all_proxy');\n  if (proxy && proxy.indexOf('://') === -1) {\n    // Missing scheme in proxy, default to the requested URL's scheme.\n    proxy = proto + '://' + proxy;\n  }\n  return proxy;\n}\n\n/**\n * Determines whether a given URL should be proxied.\n *\n * @param {string} hostname - The host name of the URL.\n * @param {number} port - The effective port of the URL.\n * @returns {boolean} Whether the given URL should be proxied.\n * @private\n */\nfunction shouldProxy(hostname, port) {\n  var NO_PROXY = getEnv('no_proxy').toLowerCase();\n  if (!NO_PROXY) {\n    return true;  // Always proxy if NO_PROXY is not set.\n  }\n  if (NO_PROXY === '*') {\n    return false;  // Never proxy if wildcard is set.\n  }\n\n  return NO_PROXY.split(/[,\\s]/).every(function(proxy) {\n    if (!proxy) {\n      return true;  // Skip zero-length hosts.\n    }\n    var parsedProxy = proxy.match(/^(.+):(\\d+)$/);\n    var parsedProxyHostname = parsedProxy ? parsedProxy[1] : proxy;\n    var parsedProxyPort = parsedProxy ? parseInt(parsedProxy[2]) : 0;\n    if (parsedProxyPort && parsedProxyPort !== port) {\n      return true;  // Skip if ports don't match.\n    }\n\n    if (!/^[.*]/.test(parsedProxyHostname)) {\n      // No wildcards, so stop proxying if there is an exact match.\n      return hostname !== parsedProxyHostname;\n    }\n\n    if (parsedProxyHostname.charAt(0) === '*') {\n      // Remove leading wildcard.\n      parsedProxyHostname = parsedProxyHostname.slice(1);\n    }\n    // Stop proxying if the hostname ends with the no_proxy host.\n    return !hostname.endsWith(parsedProxyHostname);\n  });\n}\n\n/**\n * Get the value for an environment variable.\n *\n * @param {string} key - The name of the environment variable.\n * @return {string} The value of the environment variable.\n * @private\n */\nfunction getEnv(key) {\n  return process.env[key.toLowerCase()] || process.env[key.toUpperCase()] || '';\n}\n", "import utils from '../utils.js';\nimport settle from '../core/settle.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport buildURL from '../helpers/buildURL.js';\nimport { getProxyForUrl } from 'proxy-from-env';\nimport HttpsProxyAgent from 'https-proxy-agent';\nimport http from 'http';\nimport https from 'https';\nimport http2 from 'http2';\nimport util from 'util';\nimport { resolve as resolvePath } from 'path';\nimport followRedirects from 'follow-redirects';\nimport zlib from 'zlib';\nimport { VERSION } from '../env/data.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport platform from '../platform/index.js';\nimport fromDataURI from '../helpers/fromDataURI.js';\nimport stream from 'stream';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport AxiosTransformStream from '../helpers/AxiosTransformStream.js';\nimport { EventEmitter } from 'events';\nimport formDataToStream from '../helpers/formDataToStream.js';\nimport readBlob from '../helpers/readBlob.js';\nimport ZlibHeaderTransformStream from '../helpers/ZlibHeaderTransformStream.js';\nimport Http2Sessions from '../helpers/Http2Sessions.js';\nimport callbackify from '../helpers/callbackify.js';\nimport shouldBypassProxy from '../helpers/shouldBypassProxy.js';\nimport { toByteStringHeaderObject } from '../helpers/sanitizeHeaderValue.js';\nimport {\n  progressEventReducer,\n  progressEventDecorator,\n  asyncDecorator,\n} from '../helpers/progressEventReducer.js';\nimport estimateDataURLDecodedBytes from '../helpers/estimateDataURLDecodedBytes.js';\n\nconst zlibOptions = {\n  flush: zlib.constants.Z_SYNC_FLUSH,\n  finishFlush: zlib.constants.Z_SYNC_FLUSH,\n};\n\nconst brotliOptions = {\n  flush: zlib.constants.BROTLI_OPERATION_FLUSH,\n  finishFlush: zlib.constants.BROTLI_OPERATION_FLUSH,\n};\n\nconst zstdOptions = {\n  flush: zlib.constants.ZSTD_e_flush,\n  finishFlush: zlib.constants.ZSTD_e_flush,\n};\n\nconst isBrotliSupported = utils.isFunction(zlib.createBrotliDecompress);\nconst isZstdSupported = utils.isFunction(zlib.createZstdDecompress);\nconst ACCEPT_ENCODING = 'gzip, compress, deflate' + (isBrotliSupported ? ', br' : '');\nconst ACCEPT_ENCODING_WITH_ZSTD = ACCEPT_ENCODING + (isZstdSupported ? ', zstd' : '');\n\nconst { http: httpFollow, https: httpsFollow } = followRedirects;\n\nconst isHttps = /https:?/;\nconst FORM_DATA_CONTENT_HEADERS = ['content-type', 'content-length'];\n\nfunction setFormDataHeaders(headers, formHeaders, policy) {\n  if (policy !== 'content-only') {\n    headers.set(formHeaders);\n    return;\n  }\n\n  Object.entries(formHeaders).forEach(([key, val]) => {\n    if (FORM_DATA_CONTENT_HEADERS.includes(key.toLowerCase())) {\n      headers.set(key, val);\n    }\n  });\n}\n\n// Symbols used to bind a single 'error' listener to a pooled socket and track\n// the request currently owning that socket across keep-alive reuse (issue #10780).\nconst kAxiosSocketListener = Symbol('axios.http.socketListener');\nconst kAxiosCurrentReq = Symbol('axios.http.currentReq');\n\n// Tags HttpsProxyAgent instances installed by setProxy() so the redirect path\n// can strip them without clobbering a user-supplied agent that happens to be\n// an HttpsProxyAgent.\nconst kAxiosInstalledTunnel = Symbol('axios.http.installedTunnel');\n\n// Cache of CONNECT-tunneling agents keyed by proxy config so repeat requests\n// through the same proxy reuse a single agent (and its socket pool). The\n// keyspace is bounded by the set of distinct proxy configs the process uses,\n// so unbounded growth is not a concern in practice.\nconst tunnelingAgentCache = new Map();\nconst tunnelingAgentCacheUser = new WeakMap();\n// Minimum minor versions where Node's HTTP Agent supports native proxyEnv\n// handling. Checking the selected agent below also covers startup modes such\n// as NODE_OPTIONS=--use-env-proxy and --no-use-env-proxy precedence.\nconst NODE_NATIVE_ENV_PROXY_SUPPORT = {\n  22: 21,\n  24: 5,\n};\n\nfunction isNodeNativeEnvProxySupported(nodeVersion = process.versions && process.versions.node) {\n  if (!nodeVersion) {\n    return false;\n  }\n\n  const [major, minor] = nodeVersion.split('.').map((part) => Number(part));\n\n  if (!Number.isInteger(major) || !Number.isInteger(minor)) {\n    return false;\n  }\n\n  if (major > 24) {\n    return true;\n  }\n\n  return (\n    NODE_NATIVE_ENV_PROXY_SUPPORT[major] != null && minor >= NODE_NATIVE_ENV_PROXY_SUPPORT[major]\n  );\n}\n\nfunction isNodeEnvProxyEnabled(agent, nodeVersion = process.versions && process.versions.node) {\n  if (!isNodeNativeEnvProxySupported(nodeVersion)) {\n    return false;\n  }\n\n  const agentOptions = agent && agent.options;\n\n  return Boolean(\n    agentOptions &&\n      utils.hasOwnProp(agentOptions, 'proxyEnv') &&\n      agentOptions.proxyEnv != null\n  );\n}\n\nfunction getProxyEnvAgent(options, configHttpAgent, configHttpsAgent) {\n  return isHttps.test(options.protocol)\n    ? (configHttpsAgent || https.globalAgent)\n    : (configHttpAgent || http.globalAgent);\n}\n\nfunction getTunnelingAgent(agentOptions, userHttpsAgent) {\n  const key =\n    agentOptions.protocol +\n    '//' +\n    agentOptions.hostname +\n    ':' +\n    (agentOptions.port || '') +\n    '#' +\n    (agentOptions.auth || '');\n  const cache = userHttpsAgent\n    ? (tunnelingAgentCacheUser.get(userHttpsAgent) ||\n        tunnelingAgentCacheUser.set(userHttpsAgent, new Map()).get(userHttpsAgent))\n    : tunnelingAgentCache;\n  let agent = cache.get(key);\n  if (agent) return agent;\n  // Forward the user's TLS options (custom CA, rejectUnauthorized, client cert,\n  // etc.) into the tunneling agent so they apply to the origin TLS upgrade\n  // performed after CONNECT. Our proxy fields take precedence on conflict.\n  const merged = userHttpsAgent && userHttpsAgent.options\n    ? { ...userHttpsAgent.options, ...agentOptions }\n    : agentOptions;\n  agent = new HttpsProxyAgent(merged);\n  if (userHttpsAgent && userHttpsAgent.options) {\n    const originTLSOptions = { ...userHttpsAgent.options };\n    const callback = agent.callback;\n    agent.callback = function axiosTunnelingAgentCallback(req, opts) {\n      // HttpsProxyAgent v5 reads callback opts for the post-CONNECT origin TLS upgrade.\n      return callback.call(this, req, { ...originTLSOptions, ...opts });\n    };\n  }\n  agent[kAxiosInstalledTunnel] = true;\n  cache.set(key, agent);\n  return agent;\n}\n\nconst supportedProtocols = platform.protocols.map((protocol) => {\n  return protocol + ':';\n});\n\n// Node's WHATWG URL parser returns `username` and `password` percent-encoded.\n// Decode before composing the `auth` option so credentials such as\n// `my%40email.com:pass` are sent as `my@email.com:pass`. Falls back to the\n// original value for malformed input so a bad encoding never throws.\nconst decodeURIComponentSafe = (value) => {\n  if (!utils.isString(value)) {\n    return value;\n  }\n\n  try {\n    return decodeURIComponent(value);\n  } catch (error) {\n    return value;\n  }\n};\n\nconst flushOnFinish = (stream, [throttled, flush]) => {\n  stream.on('end', flush).on('error', flush);\n\n  return throttled;\n};\n\nconst http2Sessions = new Http2Sessions();\n\n/**\n * If the proxy, auth, sensitive header, or config beforeRedirects functions are defined,\n * call them with the options object.\n *\n * @param {Object<string, any>} options - The options object that was passed to the request.\n *\n * @returns {Object<string, any>}\n */\nfunction dispatchBeforeRedirect(options, responseDetails, requestDetails) {\n  if (options.beforeRedirects.proxy) {\n    options.beforeRedirects.proxy(options);\n  }\n  if (options.beforeRedirects.auth) {\n    options.beforeRedirects.auth(options);\n  }\n  if (options.beforeRedirects.sensitiveHeaders) {\n    options.beforeRedirects.sensitiveHeaders(options, requestDetails);\n  }\n  if (options.beforeRedirects.config) {\n    options.beforeRedirects.config(options, responseDetails, requestDetails);\n  }\n}\n\nfunction stripMatchingHeaders(headers, sensitiveSet) {\n  if (!headers) {\n    return;\n  }\n\n  Object.keys(headers).forEach((header) => {\n    if (sensitiveSet.has(header.toLowerCase())) {\n      delete headers[header];\n    }\n  });\n}\n\nfunction isSameOriginRedirect(redirectOptions, requestDetails) {\n  if (!requestDetails) {\n    return false;\n  }\n\n  try {\n    return new URL(requestDetails.url).origin === new URL(redirectOptions.href).origin;\n  } catch (e) {\n    // If origin comparison fails, treat the redirect as unsafe.\n    return false;\n  }\n}\n\n/**\n * If the proxy or config afterRedirects functions are defined, call them with the options\n *\n * @param {http.ClientRequestArgs} options\n * @param {AxiosProxyConfig} configProxy configuration from Axios options object\n * @param {string} location\n *\n * @returns {http.ClientRequestArgs}\n */\nfunction setProxy(options, configProxy, location, isRedirect, configHttpsAgent, configHttpAgent) {\n  let proxy = configProxy;\n  const proxyEnvAgent = getProxyEnvAgent(options, configHttpAgent, configHttpsAgent);\n  if (!proxy && proxy !== false && !isNodeEnvProxyEnabled(proxyEnvAgent)) {\n    const proxyUrl = getProxyForUrl(location);\n    if (proxyUrl) {\n      if (!shouldBypassProxy(location)) {\n        proxy = new URL(proxyUrl);\n      }\n    }\n  }\n  // On redirect re-invocation, strip any stale Proxy-Authorization header carried\n  // over from the prior request (e.g. new target no longer uses a proxy, or uses\n  // a different proxy). Skip on the initial request so user-supplied headers are\n  // preserved. Header names are case-insensitive, so remove every case variant.\n  if (isRedirect && options.headers) {\n    for (const name of Object.keys(options.headers)) {\n      if (name.toLowerCase() === 'proxy-authorization') {\n        delete options.headers[name];\n      }\n    }\n  }\n  // Strip any tunneling agent we installed for the previous hop so a redirect\n  // that drops the proxy or crosses an HTTPS\u2194HTTP boundary doesn't reuse a\n  // stale one. Match on our Symbol marker so a user-supplied HttpsProxyAgent\n  // (which won't carry the marker) is left alone.\n  if (isRedirect && options.agent && options.agent[kAxiosInstalledTunnel]) {\n    options.agent = undefined;\n  }\n  if (proxy) {\n    // Read proxy fields without traversing the prototype chain. URL instances expose\n    // username/password/hostname/host/port/protocol via getters on URL.prototype (so\n    // direct reads are shielded), but plain object proxies \u2014 and the `auth` field\n    // (which URL does not expose) \u2014 must be guarded so a polluted Object.prototype\n    // (e.g. Object.prototype.auth = { username, password }) cannot inject\n    // attacker-controlled credentials into the Proxy-Authorization header or\n    // redirect proxying to an attacker-controlled host.\n    const isProxyURL = proxy instanceof URL;\n    const readProxyField = (key) =>\n      isProxyURL || utils.hasOwnProp(proxy, key) ? proxy[key] : undefined;\n\n    const proxyUsername = readProxyField('username');\n    const proxyPassword = readProxyField('password');\n    let proxyAuth = utils.hasOwnProp(proxy, 'auth') ? proxy.auth : undefined;\n\n    // Basic proxy authorization\n    if (proxyUsername) {\n      proxyAuth = (proxyUsername || '') + ':' + (proxyPassword || '');\n    }\n\n    if (proxyAuth) {\n      // Support proxy auth object form. Read sub-fields via own-prop checks so a\n      // plain object inheriting from polluted Object.prototype cannot leak creds.\n      const authIsObject = typeof proxyAuth === 'object';\n      const authUsername =\n        authIsObject && utils.hasOwnProp(proxyAuth, 'username') ? proxyAuth.username : undefined;\n      const authPassword =\n        authIsObject && utils.hasOwnProp(proxyAuth, 'password') ? proxyAuth.password : undefined;\n      const validProxyAuth = Boolean(authUsername || authPassword);\n\n      if (validProxyAuth) {\n        proxyAuth = (authUsername || '') + ':' + (authPassword || '');\n      } else if (authIsObject) {\n        throw new AxiosError('Invalid proxy authorization', AxiosError.ERR_BAD_OPTION, { proxy });\n      }\n    }\n\n    const targetIsHttps = isHttps.test(options.protocol);\n\n    if (targetIsHttps) {\n      // CONNECT-tunneling path for HTTPS targets. Preserves end-to-end TLS to\n      // the origin so the proxy cannot inspect the URL, headers, or body \u2014 the\n      // behavior already promised by THREATMODEL.md (T-R9). HttpsProxyAgent\n      // sends Proxy-Authorization on the CONNECT request only, never on the\n      // wrapped TLS request, which is why we don't stamp it onto\n      // options.headers here. If the user already supplied an HttpsProxyAgent,\n      // they own tunneling end-to-end and we leave them alone; otherwise we\n      // install our own tunneling agent and forward their TLS options (if any)\n      // so a custom httpsAgent for cert pinning / rejectUnauthorized still\n      // applies to the origin TLS upgrade.\n      if (!(configHttpsAgent instanceof HttpsProxyAgent)) {\n        const proxyHost = readProxyField('hostname') || readProxyField('host');\n        const proxyPort = readProxyField('port');\n        const rawProxyProtocol = readProxyField('protocol');\n        const normalizedProtocol = rawProxyProtocol\n          ? rawProxyProtocol.includes(':')\n            ? rawProxyProtocol\n            : `${rawProxyProtocol}:`\n          : 'http:';\n        // Bracket IPv6 literals for URL parsing; URL.hostname strips the\n        // brackets again on read so the agent receives the raw form.\n        const proxyHostForURL =\n          proxyHost && proxyHost.includes(':') && !proxyHost.startsWith('[')\n            ? `[${proxyHost}]`\n            : proxyHost;\n        const proxyURL = new URL(\n          `${normalizedProtocol}//${proxyHostForURL}${proxyPort ? ':' + proxyPort : ''}`\n        );\n        const agentOptions = {\n          protocol: proxyURL.protocol,\n          hostname: proxyURL.hostname.replace(/^\\[|\\]$/g, ''),\n          port: proxyURL.port,\n          auth: proxyAuth && typeof proxyAuth === 'string' ? proxyAuth : undefined,\n        };\n        if (proxyURL.protocol === 'https:') {\n          agentOptions.ALPNProtocols = ['http/1.1'];\n        }\n        const tunnelingAgent = getTunnelingAgent(agentOptions, configHttpsAgent);\n        // Set both: `options.agent` is consumed by the native https.request path\n        // (maxRedirects === 0); `options.agents.https` is consumed by\n        // follow-redirects, which ignores `options.agent` when `options.agents`\n        // is present.\n        options.agent = tunnelingAgent;\n        if (options.agents) {\n          options.agents.https = tunnelingAgent;\n        }\n      }\n    } else {\n      // Forward-proxy mode for plaintext HTTP targets. The request line carries\n      // the absolute URL and the proxy sees everything \u2014 acceptable for plain\n      // HTTP since the wire was already plaintext.\n      if (proxyAuth) {\n        const base64 = Buffer.from(proxyAuth, 'utf8').toString('base64');\n        options.headers['Proxy-Authorization'] = 'Basic ' + base64;\n      }\n\n      // Preserve a user-supplied Host header (case-insensitive) so callers can override\n      // the value forwarded to the proxy; otherwise default to the request URL's host.\n      let hasUserHostHeader = false;\n      for (const name of Object.keys(options.headers)) {\n        if (name.toLowerCase() === 'host') {\n          hasUserHostHeader = true;\n          break;\n        }\n      }\n      if (!hasUserHostHeader) {\n        options.headers.host = options.hostname + (options.port ? ':' + options.port : '');\n      }\n      const proxyHost = readProxyField('hostname') || readProxyField('host');\n      options.hostname = proxyHost;\n      // Replace 'host' since options is not a URL object\n      options.host = proxyHost;\n      options.port = readProxyField('port');\n      options.path = location;\n      const proxyProtocol = readProxyField('protocol');\n      if (proxyProtocol) {\n        options.protocol = proxyProtocol.includes(':') ? proxyProtocol : `${proxyProtocol}:`;\n      }\n    }\n  }\n\n  options.beforeRedirects.proxy = function beforeRedirect(redirectOptions) {\n    // Configure proxy for redirected request, passing the original config proxy to apply\n    // the exact same logic as if the redirected request was performed by axios directly.\n    setProxy(\n      redirectOptions,\n      configProxy,\n      redirectOptions.href,\n      true,\n      configHttpsAgent,\n      configHttpAgent\n    );\n  };\n}\n\nconst isHttpAdapterSupported =\n  typeof process !== 'undefined' && utils.kindOf(process) === 'process';\n\n// temporary hotfix\n\nconst wrapAsync = (asyncExecutor) => {\n  return new Promise((resolve, reject) => {\n    let onDone;\n    let isDone;\n\n    const done = (value, isRejected) => {\n      if (isDone) return;\n      isDone = true;\n      onDone && onDone(value, isRejected);\n    };\n\n    const _resolve = (value) => {\n      done(value);\n      resolve(value);\n    };\n\n    const _reject = (reason) => {\n      done(reason, true);\n      reject(reason);\n    };\n\n    asyncExecutor(_resolve, _reject, (onDoneHandler) => (onDone = onDoneHandler)).catch(_reject);\n  });\n};\n\nconst resolveFamily = ({ address, family }) => {\n  if (!utils.isString(address)) {\n    throw TypeError('address must be a string');\n  }\n  return {\n    address,\n    family: family || (address.indexOf('.') < 0 ? 6 : 4),\n  };\n};\n\nconst buildAddressEntry = (address, family) =>\n  resolveFamily(utils.isObject(address) ? address : { address, family });\n\nconst http2Transport = {\n  request(options, cb) {\n    const authority =\n      options.protocol +\n      '//' +\n      options.hostname +\n      ':' +\n      (options.port || (options.protocol === 'https:' ? 443 : 80));\n\n    const { http2Options, headers } = options;\n\n    const session = http2Sessions.getSession(authority, http2Options);\n\n    const { HTTP2_HEADER_SCHEME, HTTP2_HEADER_METHOD, HTTP2_HEADER_PATH, HTTP2_HEADER_STATUS } =\n      http2.constants;\n\n    const http2Headers = {\n      [HTTP2_HEADER_SCHEME]: options.protocol.replace(':', ''),\n      [HTTP2_HEADER_METHOD]: options.method,\n      [HTTP2_HEADER_PATH]: options.path,\n    };\n\n    utils.forEach(headers, (header, name) => {\n      name.charAt(0) !== ':' && (http2Headers[name] = header);\n    });\n\n    const req = session.request(http2Headers);\n\n    req.once('response', (responseHeaders) => {\n      const response = req; //duplex\n\n      responseHeaders = Object.assign({}, responseHeaders);\n\n      const status = responseHeaders[HTTP2_HEADER_STATUS];\n\n      delete responseHeaders[HTTP2_HEADER_STATUS];\n\n      response.headers = responseHeaders;\n\n      response.statusCode = +status;\n\n      cb(response);\n    });\n\n    return req;\n  },\n};\n\n/*eslint consistent-return:0*/\nexport default isHttpAdapterSupported &&\n  function httpAdapter(config) {\n    return wrapAsync(async function dispatchHttpRequest(resolve, reject, onDone) {\n      // Read config pollution-safely: own properties and members inherited from\n      // a non-Object.prototype source (e.g. an Object.create(defaults) template)\n      // are honored, but values injected onto a polluted Object.prototype are\n      // ignored. All behavior-affecting reads in this adapter go through own()\n      // so the protection boundary stays consistent.\n      const own = (key) => utils.getSafeProp(config, key);\n      const transitional = own('transitional') || transitionalDefaults;\n      let data = own('data');\n      let lookup = own('lookup');\n      let family = own('family');\n      let httpVersion = own('httpVersion');\n      if (httpVersion === undefined) httpVersion = 1;\n      let http2Options = own('http2Options');\n      const httpAgent = own('httpAgent');\n      const httpsAgent = own('httpsAgent');\n      const configProxy = own('proxy');\n      const responseType = own('responseType');\n      const responseEncoding = own('responseEncoding');\n      const socketPath = own('socketPath');\n      const method = own('method').toUpperCase();\n      const maxRedirects = own('maxRedirects');\n      const maxBodyLength = own('maxBodyLength');\n      const maxContentLength = own('maxContentLength');\n      const decompress = own('decompress');\n      let isDone;\n      let rejected = false;\n      let req;\n      let connectPhaseTimer;\n\n      httpVersion = +httpVersion;\n\n      if (Number.isNaN(httpVersion)) {\n        throw TypeError(`Invalid protocol version: '${config.httpVersion}' is not a number`);\n      }\n\n      if (httpVersion !== 1 && httpVersion !== 2) {\n        throw TypeError(`Unsupported protocol version '${httpVersion}'`);\n      }\n\n      const isHttp2 = httpVersion === 2;\n\n      if (lookup) {\n        const _lookup = callbackify(lookup, (value) => (utils.isArray(value) ? value : [value]));\n        // hotfix to support opt.all option which is required for node 20.x\n        lookup = (hostname, opt, cb) => {\n          _lookup(hostname, opt, (err, arg0, arg1) => {\n            if (err) {\n              return cb(err);\n            }\n\n            const addresses = utils.isArray(arg0)\n              ? arg0.map((addr) => buildAddressEntry(addr))\n              : [buildAddressEntry(arg0, arg1)];\n\n            opt.all ? cb(err, addresses) : cb(err, addresses[0].address, addresses[0].family);\n          });\n        };\n      }\n\n      const abortEmitter = new EventEmitter();\n\n      function abort(reason) {\n        try {\n          abortEmitter.emit(\n            'abort',\n            !reason || reason.type ? new CanceledError(null, config, req) : reason\n          );\n        } catch (err) {\n          // ignore emit errors\n        }\n      }\n\n      function clearConnectPhaseTimer() {\n        if (connectPhaseTimer) {\n          clearTimeout(connectPhaseTimer);\n          connectPhaseTimer = null;\n        }\n      }\n\n      function createTimeoutError() {\n        const configTimeout = own('timeout');\n        let timeoutErrorMessage = configTimeout\n          ? 'timeout of ' + configTimeout + 'ms exceeded'\n          : 'timeout exceeded';\n        const configTimeoutErrorMessage = own('timeoutErrorMessage');\n        if (configTimeoutErrorMessage) {\n          timeoutErrorMessage = configTimeoutErrorMessage;\n        }\n        return new AxiosError(\n          timeoutErrorMessage,\n          transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n          config,\n          req\n        );\n      }\n\n      abortEmitter.once('abort', reject);\n\n      const onFinished = () => {\n        clearConnectPhaseTimer();\n\n        if (config.cancelToken) {\n          config.cancelToken.unsubscribe(abort);\n        }\n\n        if (config.signal) {\n          config.signal.removeEventListener('abort', abort);\n        }\n\n        abortEmitter.removeAllListeners();\n      };\n\n      if (config.cancelToken || config.signal) {\n        config.cancelToken && config.cancelToken.subscribe(abort);\n        if (config.signal) {\n          config.signal.aborted ? abort() : config.signal.addEventListener('abort', abort);\n        }\n      }\n\n      onDone((response, isRejected) => {\n        isDone = true;\n        clearConnectPhaseTimer();\n\n        if (isRejected) {\n          rejected = true;\n          onFinished();\n          return;\n        }\n\n        const { data } = response;\n\n        if (data instanceof stream.Readable || data instanceof stream.Duplex) {\n          const offListeners = stream.finished(data, () => {\n            offListeners();\n            onFinished();\n          });\n        } else {\n          onFinished();\n        }\n      });\n\n      // Parse url\n      const fullPath = buildFullPath(own('baseURL'), own('url'), own('allowAbsoluteUrls'), config);\n      // Unix-socket requests (own socketPath) commonly pass a path-only url\n      // like '/foo'; supply a synthetic base so new URL() can still parse it.\n      // Use the own-property value (not config.socketPath) so a polluted\n      // prototype cannot influence URL base selection.\n      const urlBase = socketPath\n        ? 'http://localhost'\n        : (platform.hasBrowserEnv ? platform.origin : undefined);\n      const parsed = new URL(fullPath, urlBase);\n      const protocol = parsed.protocol || supportedProtocols[0];\n\n      if (protocol === 'data:') {\n        // Apply the same semantics as HTTP: only enforce if a finite, non-negative cap is set.\n        if (maxContentLength > -1) {\n          // Use the exact string passed to fromDataURI (the configured url); fall back to fullPath if needed.\n          const dataUrl = String(own('url') || fullPath || '');\n          const estimated = estimateDataURLDecodedBytes(dataUrl);\n\n          if (estimated > maxContentLength) {\n            return reject(\n              new AxiosError(\n                'maxContentLength size of ' + maxContentLength + ' exceeded',\n                AxiosError.ERR_BAD_RESPONSE,\n                config\n              )\n            );\n          }\n        }\n\n        let convertedData;\n\n        if (method !== 'GET') {\n          return settle(resolve, reject, {\n            status: 405,\n            statusText: 'method not allowed',\n            headers: {},\n            config,\n          });\n        }\n\n        try {\n          convertedData = fromDataURI(own('url'), responseType === 'blob', {\n            Blob: config.env && config.env.Blob,\n          });\n        } catch (err) {\n          throw AxiosError.from(err, AxiosError.ERR_BAD_REQUEST, config);\n        }\n\n        if (responseType === 'text') {\n          convertedData = convertedData.toString(responseEncoding);\n\n          if (!responseEncoding || responseEncoding === 'utf8') {\n            convertedData = utils.stripBOM(convertedData);\n          }\n        } else if (responseType === 'stream') {\n          convertedData = stream.Readable.from(convertedData);\n        }\n\n        return settle(resolve, reject, {\n          data: convertedData,\n          status: 200,\n          statusText: 'OK',\n          headers: new AxiosHeaders(),\n          config,\n        });\n      }\n\n      if (supportedProtocols.indexOf(protocol) === -1) {\n        return reject(\n          new AxiosError('Unsupported protocol ' + protocol, AxiosError.ERR_BAD_REQUEST, config)\n        );\n      }\n\n      const headers = AxiosHeaders.from(config.headers).normalize();\n\n      // Set User-Agent (required by some servers)\n      // See https://github.com/axios/axios/issues/69\n      // User-Agent is specified; handle case where no UA header is desired\n      // Only set header if it hasn't been set in config\n      headers.set('User-Agent', 'axios/' + VERSION, false);\n\n      const { onUploadProgress, onDownloadProgress } = config;\n      const maxRate = config.maxRate;\n      let maxUploadRate = undefined;\n      let maxDownloadRate = undefined;\n\n      // support for spec compliant FormData objects\n      if (utils.isSpecCompliantForm(data)) {\n        const userBoundary = headers.getContentType(/boundary=([-_\\w\\d]{10,70})/i);\n\n        data = formDataToStream(\n          data,\n          (formHeaders) => {\n            headers.set(formHeaders);\n          },\n          {\n            tag: `axios-${VERSION}-boundary`,\n            boundary: (userBoundary && userBoundary[1]) || undefined,\n          }\n        );\n        // support for https://www.npmjs.com/package/form-data api\n      } else if (\n        utils.isFormData(data) &&\n        utils.isFunction(data.getHeaders) &&\n        data.getHeaders !== Object.prototype.getHeaders\n      ) {\n        setFormDataHeaders(headers, data.getHeaders(), own('formDataHeaderPolicy'));\n\n        if (!headers.hasContentLength()) {\n          try {\n            const knownLength = await util.promisify(data.getLength).call(data);\n            Number.isFinite(knownLength) &&\n              knownLength >= 0 &&\n              headers.setContentLength(knownLength);\n            /*eslint no-empty:0*/\n          } catch (e) {}\n        }\n      } else if (utils.isBlob(data) || utils.isFile(data)) {\n        data.size && headers.setContentType(data.type || 'application/octet-stream');\n        headers.setContentLength(data.size || 0);\n        data = stream.Readable.from(readBlob(data));\n      } else if (data && !utils.isStream(data)) {\n        if (Buffer.isBuffer(data)) {\n          // Nothing to do...\n        } else if (utils.isArrayBuffer(data)) {\n          data = Buffer.from(new Uint8Array(data));\n        } else if (utils.isString(data)) {\n          data = Buffer.from(data, 'utf-8');\n        } else {\n          return reject(\n            new AxiosError(\n              'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream',\n              AxiosError.ERR_BAD_REQUEST,\n              config\n            )\n          );\n        }\n\n        // Add Content-Length header if data exists\n        headers.setContentLength(data.length, false);\n\n        if (maxBodyLength > -1 && data.length > maxBodyLength) {\n          return reject(\n            new AxiosError(\n              'Request body larger than maxBodyLength limit',\n              AxiosError.ERR_BAD_REQUEST,\n              config\n            )\n          );\n        }\n      }\n\n      const contentLength = utils.toFiniteNumber(headers.getContentLength());\n\n      if (utils.isArray(maxRate)) {\n        maxUploadRate = maxRate[0];\n        maxDownloadRate = maxRate[1];\n      } else {\n        maxUploadRate = maxDownloadRate = maxRate;\n      }\n\n      if (data && (onUploadProgress || maxUploadRate)) {\n        if (!utils.isStream(data)) {\n          data = stream.Readable.from(data, { objectMode: false });\n        }\n\n        data = stream.pipeline(\n          [\n            data,\n            new AxiosTransformStream({\n              maxRate: utils.toFiniteNumber(maxUploadRate),\n            }),\n          ],\n          utils.noop\n        );\n\n        onUploadProgress &&\n          data.on(\n            'progress',\n            flushOnFinish(\n              data,\n              progressEventDecorator(\n                contentLength,\n                progressEventReducer(asyncDecorator(onUploadProgress), false, 3)\n              )\n            )\n          );\n      }\n\n      // HTTP basic authentication\n      let auth = undefined;\n      const configAuth = own('auth');\n      if (configAuth) {\n        const username = utils.getSafeProp(configAuth, 'username') || '';\n        const password = utils.getSafeProp(configAuth, 'password') || '';\n        auth = username + ':' + password;\n      }\n\n      if (!auth && (parsed.username || parsed.password)) {\n        const urlUsername = decodeURIComponentSafe(parsed.username);\n        const urlPassword = decodeURIComponentSafe(parsed.password);\n        auth = urlUsername + ':' + urlPassword;\n      }\n\n      auth && headers.delete('authorization');\n\n      let path;\n\n      try {\n        path = buildURL(\n          parsed.pathname + parsed.search,\n          own('params'),\n          own('paramsSerializer')\n        ).replace(/^\\?/, '');\n      } catch (err) {\n        return reject(\n          AxiosError.from(err, AxiosError.ERR_BAD_REQUEST, config, null, null, {\n            url: own('url'),\n            exists: true\n          })\n        );\n      }\n\n      headers.set(\n        'Accept-Encoding',\n        utils.hasOwnProp(transitional, 'advertiseZstdAcceptEncoding') &&\n        transitional.advertiseZstdAcceptEncoding === true ? ACCEPT_ENCODING_WITH_ZSTD : ACCEPT_ENCODING,\n        false\n      );\n\n      // Null-prototype to block prototype pollution gadgets on properties read\n      // directly by Node's http.request (e.g. insecureHTTPParser, lookup).\n      const options = Object.assign(Object.create(null), {\n        path,\n        method: method,\n        headers: toByteStringHeaderObject(headers),\n        agents: { http: httpAgent, https: httpsAgent },\n        auth,\n        protocol,\n        family,\n        beforeRedirect: dispatchBeforeRedirect,\n        beforeRedirects: Object.create(null),\n        http2Options,\n      });\n\n      // cacheable-lookup integration hotfix\n      !utils.isUndefined(lookup) && (options.lookup = lookup);\n\n      if (socketPath) {\n        if (typeof socketPath !== 'string') {\n          return reject(\n            new AxiosError('socketPath must be a string', AxiosError.ERR_BAD_OPTION_VALUE, config)\n          );\n        }\n\n        const allowedSocketPaths = own('allowedSocketPaths');\n        if (allowedSocketPaths != null) {\n          const allowed = Array.isArray(allowedSocketPaths)\n            ? allowedSocketPaths\n            : [allowedSocketPaths];\n\n          const resolvedSocket = resolvePath(socketPath);\n          const isAllowed = allowed.some(\n            (entry) => typeof entry === 'string' && resolvePath(entry) === resolvedSocket\n          );\n\n          if (!isAllowed) {\n            return reject(\n              new AxiosError(\n                `socketPath \"${socketPath}\" is not permitted by allowedSocketPaths`,\n                AxiosError.ERR_BAD_OPTION_VALUE,\n                config\n              )\n            );\n          }\n        }\n\n        options.socketPath = socketPath;\n      } else {\n        options.hostname = parsed.hostname.startsWith('[')\n          ? parsed.hostname.slice(1, -1)\n          : parsed.hostname;\n        options.port = parsed.port;\n        setProxy(\n          options,\n          configProxy,\n          protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path,\n          false,\n          httpsAgent,\n          httpAgent\n        );\n      }\n      let transport;\n      let isNativeTransport = false;\n      // True only for the follow-redirects transport, which applies\n      // options.maxBodyLength itself. Every other transport (http2, native\n      // http/https, a user-supplied custom transport) needs the explicit\n      // byte-counting pipeline below to enforce maxBodyLength on streamed uploads.\n      let transportEnforcesMaxBodyLength = false;\n      const isHttpsRequest = isHttps.test(options.protocol);\n      // Don't clobber a CONNECT-tunneling agent installed by setProxy() for an\n      // HTTPS target.\n      if (options.agent == null) {\n        options.agent = isHttpsRequest ? httpsAgent : httpAgent;\n      }\n\n      if (isHttp2) {\n        transport = http2Transport;\n      } else {\n        const configTransport = own('transport');\n        if (configTransport) {\n          transport = configTransport;\n        } else if (maxRedirects === 0) {\n          transport = isHttpsRequest ? https : http;\n          isNativeTransport = true;\n        } else {\n          transportEnforcesMaxBodyLength = true;\n          options.sensitiveHeaders = [];\n          if (maxRedirects) {\n            options.maxRedirects = maxRedirects;\n          }\n          const configBeforeRedirect = own('beforeRedirect');\n          if (configBeforeRedirect) {\n            options.beforeRedirects.config = configBeforeRedirect;\n          }\n          if (auth) {\n            // Restore HTTP Basic credentials on same-origin redirects only.\n            // follow-redirects >= 1.15.8 strips Authorization on every redirect (see #6929);\n            // cross-origin stripping is the documented mitigation for T-R2 in THREATMODEL.md\n            // and is preserved by deliberately not restoring on origin change.\n            const requestOrigin = parsed.origin;\n            const authToRestore = auth;\n            options.beforeRedirects.auth = function beforeRedirectAuth(redirectOptions) {\n              try {\n                if (new URL(redirectOptions.href).origin === requestOrigin) {\n                  redirectOptions.auth = authToRestore;\n                }\n              } catch (e) {\n                // ignore malformed URL: leaving auth stripped is fail-safe\n              }\n            };\n          }\n          const sensitiveHeaders = own('sensitiveHeaders');\n          if (sensitiveHeaders != null) {\n            if (!utils.isArray(sensitiveHeaders)) {\n              return reject(\n                new AxiosError(\n                  'sensitiveHeaders must be an array of strings',\n                  AxiosError.ERR_BAD_OPTION_VALUE,\n                  config\n                )\n              );\n            }\n\n            const sensitiveSet = new Set();\n            for (const header of sensitiveHeaders) {\n              if (!utils.isString(header)) {\n                return reject(\n                  new AxiosError(\n                    'sensitiveHeaders must be an array of strings',\n                    AxiosError.ERR_BAD_OPTION_VALUE,\n                    config\n                  )\n                );\n              }\n\n              sensitiveSet.add(header.toLowerCase());\n            }\n\n            if (sensitiveSet.size) {\n              options.sensitiveHeaders = Array.from(sensitiveSet);\n              options.beforeRedirects.sensitiveHeaders = function beforeRedirectSensitiveHeaders(\n                redirectOptions,\n                requestDetails\n              ) {\n                if (!isSameOriginRedirect(redirectOptions, requestDetails)) {\n                  stripMatchingHeaders(redirectOptions.headers, sensitiveSet);\n                }\n              };\n            }\n          }\n          transport = isHttpsRequest ? httpsFollow : httpFollow;\n        }\n      }\n\n      // Set an explicit maxBodyLength option for transports that inspect it.\n      // When maxBodyLength is -1 (default/unlimited), use Infinity so\n      // follow-redirects does not fall back to its own 10MB default.\n      if (maxBodyLength > -1) {\n        options.maxBodyLength = maxBodyLength;\n      } else {\n        options.maxBodyLength = Infinity;\n      }\n\n      // Always set an explicit own value so a polluted\n      // Object.prototype.insecureHTTPParser cannot enable the lenient parser\n      // through Node's internal options copy\n      options.insecureHTTPParser = Boolean(own('insecureHTTPParser'));\n\n      // Create the request\n      req = transport.request(options, function handleResponse(res) {\n        clearConnectPhaseTimer();\n\n        if (req.destroyed) return;\n\n        const streams = [res];\n\n        const responseLength = utils.toFiniteNumber(res.headers['content-length']);\n\n        if (onDownloadProgress || maxDownloadRate) {\n          const transformStream = new AxiosTransformStream({\n            maxRate: utils.toFiniteNumber(maxDownloadRate),\n          });\n\n          onDownloadProgress &&\n            transformStream.on(\n              'progress',\n              flushOnFinish(\n                transformStream,\n                progressEventDecorator(\n                  responseLength,\n                  progressEventReducer(asyncDecorator(onDownloadProgress), true, 3)\n                )\n              )\n            );\n\n          streams.push(transformStream);\n        }\n\n        // decompress the response body transparently if required\n        let responseStream = res;\n\n        // return the last request in case of redirects\n        const lastRequest = res.req || req;\n\n        // if decompress disabled we should not decompress\n        if (decompress !== false && res.headers['content-encoding']) {\n          // if no content, but headers still say that it is encoded,\n          // remove the header not confuse downstream operations\n          if (method === 'HEAD' || res.statusCode === 204) {\n            delete res.headers['content-encoding'];\n          }\n\n          switch ((res.headers['content-encoding'] || '').toLowerCase()) {\n            /*eslint default-case:0*/\n            case 'gzip':\n            case 'x-gzip':\n            case 'compress':\n            case 'x-compress':\n              // add the unzipper to the body stream processing pipeline\n              streams.push(zlib.createUnzip(zlibOptions));\n\n              // remove the content-encoding in order to not confuse downstream operations\n              delete res.headers['content-encoding'];\n              break;\n            case 'deflate':\n              streams.push(new ZlibHeaderTransformStream());\n\n              // add the unzipper to the body stream processing pipeline\n              streams.push(zlib.createUnzip(zlibOptions));\n\n              // remove the content-encoding in order to not confuse downstream operations\n              delete res.headers['content-encoding'];\n              break;\n            case 'br':\n              if (isBrotliSupported) {\n                streams.push(zlib.createBrotliDecompress(brotliOptions));\n                delete res.headers['content-encoding'];\n              }\n              break;\n            case 'zstd':\n              if (isZstdSupported) {\n                streams.push(zlib.createZstdDecompress(zstdOptions));\n                delete res.headers['content-encoding'];\n              }\n              break;\n          }\n        }\n\n        responseStream = streams.length > 1 ? stream.pipeline(streams, utils.noop) : streams[0];\n\n        const response = {\n          status: res.statusCode,\n          statusText: res.statusMessage,\n          headers: new AxiosHeaders(res.headers),\n          config,\n          request: lastRequest,\n        };\n\n        if (responseType === 'stream') {\n          // Enforce maxContentLength on streamed responses; previously this\n          // was applied only to buffered responses.\n          if (maxContentLength > -1) {\n            const limit = maxContentLength;\n            const source = responseStream;\n            async function* enforceMaxContentLength() {\n              let totalResponseBytes = 0;\n              for await (const chunk of source) {\n                totalResponseBytes += chunk.length;\n                if (totalResponseBytes > limit) {\n                  throw new AxiosError(\n                    'maxContentLength size of ' + limit + ' exceeded',\n                    AxiosError.ERR_BAD_RESPONSE,\n                    config,\n                    lastRequest\n                  );\n                }\n                yield chunk;\n              }\n            }\n            responseStream = stream.Readable.from(enforceMaxContentLength(), {\n              objectMode: false,\n            });\n          }\n          response.data = responseStream;\n          settle(resolve, reject, response);\n        } else {\n          const responseBuffer = [];\n          let totalResponseBytes = 0;\n\n          responseStream.on('data', function handleStreamData(chunk) {\n            responseBuffer.push(chunk);\n            totalResponseBytes += chunk.length;\n\n            // make sure the content length is not over the maxContentLength if specified\n            if (maxContentLength > -1 && totalResponseBytes > maxContentLength) {\n              // stream.destroy() emit aborted event before calling reject() on Node.js v16\n              rejected = true;\n              responseStream.destroy();\n              abort(\n                new AxiosError(\n                  'maxContentLength size of ' + maxContentLength + ' exceeded',\n                  AxiosError.ERR_BAD_RESPONSE,\n                  config,\n                  lastRequest\n                )\n              );\n            }\n          });\n\n          responseStream.on('aborted', function handlerStreamAborted() {\n            if (rejected) {\n              return;\n            }\n\n            const err = new AxiosError(\n              'stream has been aborted',\n              AxiosError.ERR_BAD_RESPONSE,\n              config,\n              lastRequest,\n              response\n            );\n            responseStream.destroy(err);\n            reject(err);\n          });\n\n          responseStream.on('error', function handleStreamError(err) {\n            if (rejected) return;\n            reject(AxiosError.from(err, null, config, lastRequest, response));\n          });\n\n          responseStream.on('end', function handleStreamEnd() {\n            try {\n              let responseData =\n                responseBuffer.length === 1 ? responseBuffer[0] : Buffer.concat(responseBuffer);\n              if (responseType !== 'arraybuffer') {\n                responseData = responseData.toString(responseEncoding);\n                if (!responseEncoding || responseEncoding === 'utf8') {\n                  responseData = utils.stripBOM(responseData);\n                }\n              }\n              response.data = responseData;\n            } catch (err) {\n              return reject(AxiosError.from(err, null, config, response.request, response));\n            }\n            settle(resolve, reject, response);\n          });\n        }\n\n        abortEmitter.once('abort', (err) => {\n          if (!responseStream.destroyed) {\n            responseStream.emit('error', err);\n            responseStream.destroy();\n          }\n        });\n      });\n\n      abortEmitter.once('abort', (err) => {\n        if (req.close) {\n          req.close();\n        } else {\n          req.destroy(err);\n        }\n      });\n\n      // Handle errors\n      req.on('error', function handleRequestError(err) {\n        reject(AxiosError.from(err, null, config, req));\n      });\n\n      // set tcp keep alive to prevent drop connection by peer\n      // Track every socket bound to this outer RedirectableRequest so a single\n      // 'close' listener can release ownership on all of them. follow-redirects\n      // re-emits the 'socket' event for each hop's native request onto the same\n      // outer request, so attaching per-request listeners inside this handler\n      // would accumulate across hops and trigger MaxListenersExceededWarning at\n      // >= 11 redirects. Clearing only the last-bound socket would leave stale\n      // kAxiosCurrentReq refs on earlier hop sockets returned to the keep-alive\n      // pool, causing an idle-pool 'error' to be attributed to a closed req.\n      const boundSockets = new Set();\n\n      req.on('socket', function handleRequestSocket(socket) {\n        // default interval of sending ack packet is 1 minute\n        // proxy agents (e.g. agent-base) may return a generic Duplex stream\n        // that doesn't have setKeepAlive, so guard before calling\n        if (typeof socket.setKeepAlive === 'function') {\n          socket.setKeepAlive(true, 1000 * 60);\n        }\n\n        // Install a single 'error' listener per socket (not per request) to avoid\n        // accumulating listeners on pooled keep-alive sockets that get reassigned\n        // to new requests before the previous request's 'close' fires (issue #10780).\n        // The listener is bound to the socket's currently-active request via a\n        // symbol, which is swapped as the socket is reassigned.\n        if (!socket[kAxiosSocketListener]) {\n          socket.on('error', function handleSocketError(err) {\n            const current = socket[kAxiosCurrentReq];\n            if (current && !current.destroyed) {\n              current.destroy(err);\n            }\n          });\n          socket[kAxiosSocketListener] = true;\n        }\n\n        socket[kAxiosCurrentReq] = req;\n        boundSockets.add(socket);\n      });\n\n      req.once('close', function clearCurrentReq() {\n        clearConnectPhaseTimer();\n\n        for (const socket of boundSockets) {\n          if (socket[kAxiosCurrentReq] === req) {\n            socket[kAxiosCurrentReq] = null;\n          }\n        }\n        boundSockets.clear();\n      });\n\n      // Handle request timeout\n      if (own('timeout')) {\n        // This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types.\n        const timeout = parseInt(own('timeout'), 10);\n\n        if (Number.isNaN(timeout)) {\n          abort(\n            new AxiosError(\n              'error trying to parse `config.timeout` to int',\n              AxiosError.ERR_BAD_OPTION_VALUE,\n              config,\n              req\n            )\n          );\n\n          return;\n        }\n\n        const handleTimeout = function handleTimeout() {\n          if (isDone) return;\n          abort(createTimeoutError());\n        };\n\n        if (isNativeTransport && timeout > 0) {\n          // Native ClientRequest#setTimeout starts from the socket lifecycle and\n          // may not fire while TCP connect is still pending. Mirror the\n          // follow-redirects wall-clock timer for the maxRedirects === 0 path.\n          connectPhaseTimer = setTimeout(handleTimeout, timeout);\n        }\n\n        // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system.\n        // And timer callback will be fired, and abort() will be invoked before connection, then get \"socket hang up\" and code ECONNRESET.\n        // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up.\n        // And then these socket which be hang up will devouring CPU little by little.\n        // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect.\n        req.setTimeout(timeout, handleTimeout);\n      } else {\n        // explicitly reset the socket timeout value for a possible `keep-alive` request\n        req.setTimeout(0);\n      }\n\n      // Send the request\n      if (utils.isStream(data)) {\n        let ended = false;\n        let errored = false;\n\n        data.on('end', () => {\n          ended = true;\n        });\n\n        data.once('error', (err) => {\n          errored = true;\n          req.destroy(err);\n        });\n\n        data.on('close', () => {\n          if (!ended && !errored) {\n            abort(new CanceledError('Request stream has been aborted', config, req));\n          }\n        });\n\n        // Enforce maxBodyLength for streamed uploads on every transport that\n        // does not apply options.maxBodyLength itself (native http/https, http2,\n        // and user-supplied custom transports). The follow-redirects transport\n        // enforces it on the redirected HTTP/1 path.\n        let uploadStream = data;\n        if (maxBodyLength > -1 && !transportEnforcesMaxBodyLength) {\n          const limit = maxBodyLength;\n          let bytesSent = 0;\n          uploadStream = stream.pipeline(\n            [\n              data,\n              new stream.Transform({\n                transform(chunk, _enc, cb) {\n                  bytesSent += chunk.length;\n                  if (bytesSent > limit) {\n                    return cb(\n                      new AxiosError(\n                        'Request body larger than maxBodyLength limit',\n                        AxiosError.ERR_BAD_REQUEST,\n                        config,\n                        req\n                      )\n                    );\n                  }\n                  cb(null, chunk);\n                },\n              }),\n            ],\n            utils.noop\n          );\n          uploadStream.on('error', (err) => {\n            if (!req.destroyed) req.destroy(err);\n          });\n        }\n\n        uploadStream.pipe(req);\n      } else {\n        data && req.write(data);\n        req.end();\n      }\n    });\n  };\n\nexport const __setProxy = setProxy;\nexport const __isNodeEnvProxyEnabled = isNodeEnvProxyEnabled;\nexport const __isSameOriginRedirect = isSameOriginRedirect;\n", "export const VERSION = \"1.18.1\";", "'use strict';\n\nexport default function parseProtocol(url) {\n  const match = /^([-+\\w]{1,25}):(?:\\/\\/)?/.exec(url);\n  return (match && match[1]) || '';\n}\n", "'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport parseProtocol from './parseProtocol.js';\nimport platform from '../platform/index.js';\n\n// RFC 2397: data:[<mediatype>][;base64],<data>\n// mediatype = type/subtype followed by optional ;name=value parameters\nconst DATA_URL_PATTERN = /^([^,;]+\\/[^,;]+)?((?:;[^,;=]+=[^,;]+)*)(;base64)?,([\\s\\S]*)$/;\n\n/**\n * Parse data uri to a Buffer or Blob\n *\n * @param {String} uri\n * @param {?Boolean} asBlob\n * @param {?Object} options\n * @param {?Function} options.Blob\n *\n * @returns {Buffer|Blob}\n */\nexport default function fromDataURI(uri, asBlob, options) {\n  const _Blob = (options && options.Blob) || platform.classes.Blob;\n  const protocol = parseProtocol(uri);\n\n  if (asBlob === undefined && _Blob) {\n    asBlob = true;\n  }\n\n  if (protocol === 'data') {\n    uri = protocol.length ? uri.slice(protocol.length + 1) : uri;\n\n    const match = DATA_URL_PATTERN.exec(uri);\n\n    if (!match) {\n      throw new AxiosError('Invalid URL', AxiosError.ERR_INVALID_URL);\n    }\n\n    const type = match[1];\n    const params = match[2];\n    const encoding = match[3] ? 'base64' : 'utf8';\n    const body = match[4];\n\n    // RFC 2397 section 3: default mediatype is text/plain;charset=US-ASCII\n    // Bare `data:,` leaves mime undefined; Blob normalises that to \"\" per spec.\n    let mime = '';\n    if (type) {\n      mime = params ? type + params : type;\n    } else if (params) {\n      mime = 'text/plain' + params;\n    }\n\n    const buffer = encoding === 'base64'\n      ? Buffer.from(body, 'base64')\n      : Buffer.from(decodeURIComponent(body), encoding);\n\n    if (asBlob) {\n      if (!_Blob) {\n        throw new AxiosError('Blob is not supported', AxiosError.ERR_NOT_SUPPORT);\n      }\n\n      return new _Blob([buffer], { type: mime });\n    }\n\n    return buffer;\n  }\n\n  throw new AxiosError('Unsupported protocol ' + protocol, AxiosError.ERR_NOT_SUPPORT);\n}\n", "'use strict';\n\nimport stream from 'stream';\nimport utils from '../utils.js';\n\nconst kInternals = Symbol('internals');\n\nclass AxiosTransformStream extends stream.Transform {\n  constructor(options) {\n    options = utils.toFlatObject(\n      options,\n      {\n        maxRate: 0,\n        chunkSize: 64 * 1024,\n        minChunkSize: 100,\n        timeWindow: 500,\n        ticksRate: 2,\n        samplesCount: 15,\n      },\n      null,\n      (prop, source) => {\n        return !utils.isUndefined(source[prop]);\n      }\n    );\n\n    super({\n      readableHighWaterMark: options.chunkSize,\n    });\n\n    const internals = (this[kInternals] = {\n      timeWindow: options.timeWindow,\n      chunkSize: options.chunkSize,\n      maxRate: options.maxRate,\n      minChunkSize: options.minChunkSize,\n      bytesSeen: 0,\n      isCaptured: false,\n      notifiedBytesLoaded: 0,\n      ts: Date.now(),\n      bytes: 0,\n      onReadCallback: null,\n    });\n\n    this.on('newListener', (event) => {\n      if (event === 'progress') {\n        if (!internals.isCaptured) {\n          internals.isCaptured = true;\n        }\n      }\n    });\n  }\n\n  _read(size) {\n    const internals = this[kInternals];\n\n    if (internals.onReadCallback) {\n      internals.onReadCallback();\n    }\n\n    return super._read(size);\n  }\n\n  _transform(chunk, encoding, callback) {\n    const internals = this[kInternals];\n    const maxRate = internals.maxRate;\n\n    const readableHighWaterMark = this.readableHighWaterMark;\n\n    const timeWindow = internals.timeWindow;\n\n    const divider = 1000 / timeWindow;\n    const bytesThreshold = maxRate / divider;\n    const minChunkSize =\n      internals.minChunkSize !== false\n        ? Math.max(internals.minChunkSize, bytesThreshold * 0.01)\n        : 0;\n\n    const pushChunk = (_chunk, _callback) => {\n      const bytes = Buffer.byteLength(_chunk);\n      internals.bytesSeen += bytes;\n      internals.bytes += bytes;\n\n      internals.isCaptured && this.emit('progress', internals.bytesSeen);\n\n      if (this.push(_chunk)) {\n        process.nextTick(_callback);\n      } else {\n        internals.onReadCallback = () => {\n          internals.onReadCallback = null;\n          process.nextTick(_callback);\n        };\n      }\n    };\n\n    const transformChunk = (_chunk, _callback) => {\n      const chunkSize = Buffer.byteLength(_chunk);\n      let chunkRemainder = null;\n      let maxChunkSize = readableHighWaterMark;\n      let bytesLeft;\n      let passed = 0;\n\n      if (maxRate) {\n        const now = Date.now();\n\n        if (!internals.ts || (passed = now - internals.ts) >= timeWindow) {\n          internals.ts = now;\n          bytesLeft = bytesThreshold - internals.bytes;\n          internals.bytes = bytesLeft < 0 ? -bytesLeft : 0;\n          passed = 0;\n        }\n\n        bytesLeft = bytesThreshold - internals.bytes;\n      }\n\n      if (maxRate) {\n        if (bytesLeft <= 0) {\n          // next time window\n          return setTimeout(() => {\n            _callback(null, _chunk);\n          }, timeWindow - passed);\n        }\n\n        if (bytesLeft < maxChunkSize) {\n          maxChunkSize = bytesLeft;\n        }\n      }\n\n      if (maxChunkSize && chunkSize > maxChunkSize && chunkSize - maxChunkSize > minChunkSize) {\n        chunkRemainder = _chunk.subarray(maxChunkSize);\n        _chunk = _chunk.subarray(0, maxChunkSize);\n      }\n\n      pushChunk(\n        _chunk,\n        chunkRemainder\n          ? () => {\n              process.nextTick(_callback, null, chunkRemainder);\n            }\n          : _callback\n      );\n    };\n\n    transformChunk(chunk, function transformNextChunk(err, _chunk) {\n      if (err) {\n        return callback(err);\n      }\n\n      if (_chunk) {\n        transformChunk(_chunk, transformNextChunk);\n      } else {\n        callback(null);\n      }\n    });\n  }\n}\n\nexport default AxiosTransformStream;\n", "import util from 'util';\nimport { Readable } from 'stream';\nimport utils from '../utils.js';\nimport readBlob from './readBlob.js';\nimport platform from '../platform/index.js';\n\nconst BOUNDARY_ALPHABET = platform.ALPHABET.ALPHA_DIGIT + '-_';\n\nconst textEncoder = typeof TextEncoder === 'function' ? new TextEncoder() : new util.TextEncoder();\n\nconst CRLF = '\\r\\n';\nconst CRLF_BYTES = textEncoder.encode(CRLF);\nconst CRLF_BYTES_COUNT = 2;\n\nclass FormDataPart {\n  constructor(name, value) {\n    const { escapeName } = this.constructor;\n    const isStringValue = utils.isString(value);\n\n    let headers = `Content-Disposition: form-data; name=\"${escapeName(name)}\"${\n      !isStringValue && value.name ? `; filename=\"${escapeName(value.name)}\"` : ''\n    }${CRLF}`;\n\n    if (isStringValue) {\n      value = textEncoder.encode(String(value).replace(/\\r?\\n|\\r\\n?/g, CRLF));\n    } else {\n      const safeType = String(value.type || 'application/octet-stream').replace(/[\\r\\n]/g, '');\n      headers += `Content-Type: ${safeType}${CRLF}`;\n    }\n\n    this.headers = textEncoder.encode(headers + CRLF);\n\n    this.contentLength = isStringValue ? value.byteLength : value.size;\n\n    this.size = this.headers.byteLength + this.contentLength + CRLF_BYTES_COUNT;\n\n    this.name = name;\n    this.value = value;\n  }\n\n  async *encode() {\n    yield this.headers;\n\n    const { value } = this;\n\n    if (utils.isTypedArray(value)) {\n      yield value;\n    } else {\n      yield* readBlob(value);\n    }\n\n    yield CRLF_BYTES;\n  }\n\n  static escapeName(name) {\n    return String(name).replace(\n      /[\\r\\n\"]/g,\n      (match) =>\n        ({\n          '\\r': '%0D',\n          '\\n': '%0A',\n          '\"': '%22',\n        })[match]\n    );\n  }\n}\n\nconst formDataToStream = (form, headersHandler, options) => {\n  const {\n    tag = 'form-data-boundary',\n    size = 25,\n    boundary = tag + '-' + platform.generateString(size, BOUNDARY_ALPHABET),\n  } = options || {};\n\n  if (!utils.isFormData(form)) {\n    throw new TypeError('FormData instance required');\n  }\n\n  if (boundary.length < 1 || boundary.length > 70) {\n    throw new Error('boundary must be 1-70 characters long');\n  }\n\n  const boundaryBytes = textEncoder.encode('--' + boundary + CRLF);\n  const footerBytes = textEncoder.encode('--' + boundary + '--' + CRLF);\n  let contentLength = footerBytes.byteLength;\n\n  const parts = Array.from(form.entries()).map(([name, value]) => {\n    const part = new FormDataPart(name, value);\n    contentLength += part.size;\n    return part;\n  });\n\n  contentLength += boundaryBytes.byteLength * parts.length;\n\n  contentLength = utils.toFiniteNumber(contentLength);\n\n  const computedHeaders = {\n    'Content-Type': `multipart/form-data; boundary=${boundary}`,\n  };\n\n  if (Number.isFinite(contentLength)) {\n    computedHeaders['Content-Length'] = contentLength;\n  }\n\n  headersHandler && headersHandler(computedHeaders);\n\n  return Readable.from(\n    (async function* () {\n      for (const part of parts) {\n        yield boundaryBytes;\n        yield* part.encode();\n      }\n\n      yield footerBytes;\n    })()\n  );\n};\n\nexport default formDataToStream;\n", "const { asyncIterator } = Symbol;\n\nconst readBlob = async function* (blob) {\n  if (blob.stream) {\n    yield* blob.stream();\n  } else if (blob.arrayBuffer) {\n    yield await blob.arrayBuffer();\n  } else if (blob[asyncIterator]) {\n    yield* blob[asyncIterator]();\n  } else {\n    yield blob;\n  }\n};\n\nexport default readBlob;\n", "'use strict';\n\nimport stream from 'stream';\n\nclass ZlibHeaderTransformStream extends stream.Transform {\n  __transform(chunk, encoding, callback) {\n    this.push(chunk);\n    callback();\n  }\n\n  _transform(chunk, encoding, callback) {\n    if (chunk.length !== 0) {\n      this._transform = this.__transform;\n\n      // Add Default Compression headers if no zlib headers are present\n      if (chunk[0] !== 120) {\n        // Hex: 78\n        const header = Buffer.alloc(2);\n        header[0] = 120; // Hex: 78\n        header[1] = 156; // Hex: 9C\n        this.push(header, encoding);\n      }\n    }\n\n    this.__transform(chunk, encoding, callback);\n  }\n}\n\nexport default ZlibHeaderTransformStream;\n", "'use strict';\n\n// Node-only: relies on the built-in `http2` module. Browser/react-native\n// builds replace `lib/adapters/http.js` (the sole importer) with `lib/helpers/null.js`\n// via the `browser` package.json field, so this module is never reached in\n// those environments. Do not import it from any browser-reachable code path.\n\nimport http2 from 'http2';\nimport util from 'util';\n\nclass Http2Sessions {\n  constructor() {\n    this.sessions = Object.create(null);\n  }\n\n  getSession(authority, options) {\n    options = Object.assign(\n      {\n        sessionTimeout: 1000,\n      },\n      options\n    );\n\n    let authoritySessions = this.sessions[authority];\n\n    if (authoritySessions) {\n      let len = authoritySessions.length;\n\n      for (let i = 0; i < len; i++) {\n        const [sessionHandle, sessionOptions] = authoritySessions[i];\n        if (\n          !sessionHandle.destroyed &&\n          !sessionHandle.closed &&\n          util.isDeepStrictEqual(sessionOptions, options)\n        ) {\n          return sessionHandle;\n        }\n      }\n    }\n\n    const session = http2.connect(authority, options);\n\n    let removed;\n    let timer;\n\n    const removeSession = () => {\n      if (removed) {\n        return;\n      }\n\n      removed = true;\n\n      if (timer) {\n        clearTimeout(timer);\n        timer = null;\n      }\n\n      let entries = authoritySessions,\n        len = entries.length,\n        i = len;\n\n      while (i--) {\n        if (entries[i][0] === session) {\n          if (len === 1) {\n            delete this.sessions[authority];\n          } else {\n            entries.splice(i, 1);\n          }\n          if (!session.closed) {\n            session.close();\n          }\n          return;\n        }\n      }\n    };\n\n    const originalRequestFn = session.request;\n\n    const { sessionTimeout } = options;\n\n    if (sessionTimeout != null) {\n      let streamsCount = 0;\n\n      session.request = function () {\n        const stream = originalRequestFn.apply(this, arguments);\n\n        streamsCount++;\n\n        if (timer) {\n          clearTimeout(timer);\n          timer = null;\n        }\n\n        stream.once('close', () => {\n          if (!--streamsCount) {\n            timer = setTimeout(() => {\n              timer = null;\n              removeSession();\n            }, sessionTimeout);\n          }\n        });\n\n        return stream;\n      };\n    }\n\n    session.once('close', removeSession);\n\n    let entry = [session, options];\n\n    authoritySessions\n      ? authoritySessions.push(entry)\n      : (authoritySessions = this.sessions[authority] = [entry]);\n\n    return session;\n  }\n}\n\nexport default Http2Sessions;\n", "import utils from '../utils.js';\n\nconst callbackify = (fn, reducer) => {\n  return utils.isAsyncFn(fn)\n    ? function (...args) {\n        const cb = args.pop();\n        fn.apply(this, args).then((value) => {\n          try {\n            reducer ? cb(null, ...reducer(value)) : cb(null, value);\n          } catch (err) {\n            cb(err);\n          }\n        }, cb);\n      }\n    : fn;\n};\n\nexport default callbackify;\n", "const LOOPBACK_HOSTNAMES = new Set(['localhost', '0.0.0.0']);\n\nconst isIPv4Loopback = (host) => {\n  const parts = host.split('.');\n  if (parts.length !== 4) return false;\n  if (parts[0] !== '127') return false;\n  return parts.every((p) => /^\\d+$/.test(p) && Number(p) >= 0 && Number(p) <= 255);\n};\n\nconst isIPv6ZeroGroup = (group) => /^0{1,4}$/.test(group);\n\n// The unspecified address (IPv4 0.0.0.0 / IPv6 ::) resolves to the local host\n// for outbound connections, so treat it as loopback-equivalent for NO_PROXY\n// matching. 0.0.0.0 is covered by LOOPBACK_HOSTNAMES; this handles compressed\n// and full IPv6 all-zero forms so both families bypass symmetrically.\nconst isIPv6Unspecified = (host) => {\n  if (host === '::') return true;\n\n  const compressionIndex = host.indexOf('::');\n\n  if (compressionIndex !== -1) {\n    if (compressionIndex !== host.lastIndexOf('::')) return false;\n\n    const left = host.slice(0, compressionIndex);\n    const right = host.slice(compressionIndex + 2);\n    const leftGroups = left ? left.split(':') : [];\n    const rightGroups = right ? right.split(':') : [];\n    const explicitGroups = leftGroups.length + rightGroups.length;\n\n    return (\n      explicitGroups < 8 &&\n      leftGroups.every(isIPv6ZeroGroup) &&\n      rightGroups.every(isIPv6ZeroGroup)\n    );\n  }\n\n  const groups = host.split(':');\n  return groups.length === 8 && groups.every(isIPv6ZeroGroup);\n};\n\nconst isIPv6Loopback = (host) => {\n  // Collapse all-zero groups: any form of ::1 / 0:0:...:0:1\n  // First, strip any leading \"::\" by normalising with Set lookup of common forms,\n  // then fall back to structural check.\n  if (host === '::1') return true;\n\n  // Check IPv4-mapped IPv6 loopback: ::ffff:<v4-loopback> or ::ffff:<hex-v4-loopback>\n  // Node's URL parser normalises ::ffff:127.0.0.1 \u2192 ::ffff:7f00:1\n  const v4MappedDotted = host.match(/^::ffff:(\\d+\\.\\d+\\.\\d+\\.\\d+)$/i);\n  if (v4MappedDotted) return isIPv4Loopback(v4MappedDotted[1]);\n\n  const v4MappedHex = host.match(/^::ffff:([0-9a-f]{1,4}):([0-9a-f]{1,4})$/i);\n  if (v4MappedHex) {\n    const high = parseInt(v4MappedHex[1], 16);\n    // High 16 bits must start with 127 (0x7f) \u2014 i.e. 0x7f00..0x7fff\n    return high >= 0x7f00 && high <= 0x7fff;\n  }\n\n  // Full-form ::1 variants: any number of zero groups followed by trailing 1\n  // e.g. 0:0:0:0:0:0:0:1, 0000:...:0001\n  const groups = host.split(':');\n  if (groups.length === 8) {\n    for (let i = 0; i < 7; i++) {\n      if (!/^0+$/.test(groups[i])) return false;\n    }\n    return /^0*1$/.test(groups[7]);\n  }\n\n  return false;\n};\n\nconst isLoopback = (host) => {\n  if (!host) return false;\n  if (LOOPBACK_HOSTNAMES.has(host)) return true;\n  if (isIPv4Loopback(host)) return true;\n  if (isIPv6Unspecified(host)) return true;\n  return isIPv6Loopback(host);\n};\n\nconst DEFAULT_PORTS = {\n  http: 80,\n  https: 443,\n  ws: 80,\n  wss: 443,\n  ftp: 21,\n};\n\nconst parseNoProxyEntry = (entry) => {\n  let entryHost = entry;\n  let entryPort = 0;\n\n  if (entryHost.charAt(0) === '[') {\n    const bracketIndex = entryHost.indexOf(']');\n\n    if (bracketIndex !== -1) {\n      const host = entryHost.slice(1, bracketIndex);\n      const rest = entryHost.slice(bracketIndex + 1);\n\n      if (rest.charAt(0) === ':' && /^\\d+$/.test(rest.slice(1))) {\n        entryPort = Number.parseInt(rest.slice(1), 10);\n      }\n\n      return [host, entryPort];\n    }\n  }\n\n  const firstColon = entryHost.indexOf(':');\n  const lastColon = entryHost.lastIndexOf(':');\n\n  if (\n    firstColon !== -1 &&\n    firstColon === lastColon &&\n    /^\\d+$/.test(entryHost.slice(lastColon + 1))\n  ) {\n    entryPort = Number.parseInt(entryHost.slice(lastColon + 1), 10);\n    entryHost = entryHost.slice(0, lastColon);\n  }\n\n  return [entryHost, entryPort];\n};\n\n// Convert IPv4-mapped IPv6 (::ffff:0:0/96 prefix) to IPv4 dotted form so both\n// sides of a NO_PROXY comparison see the same canonical address. Without this,\n// `NO_PROXY=192.168.1.5` would not match a request to `http://[::ffff:192.168.1.5]/`\n// (Node's URL parser normalises that to `[::ffff:c0a8:105]`), and vice-versa,\n// allowing the proxy-bypass policy to be circumvented by using the alternate\n// representation. Returns the input unchanged when not IPv4-mapped.\nconst IPV4_MAPPED_DOTTED_RE = /^(?:::|(?:0{1,4}:){1,4}:|(?:0{1,4}:){5})ffff:(\\d+\\.\\d+\\.\\d+\\.\\d+)$/i;\nconst IPV4_MAPPED_HEX_RE = /^(?:::|(?:0{1,4}:){1,4}:|(?:0{1,4}:){5})ffff:([0-9a-f]{1,4}):([0-9a-f]{1,4})$/i;\n\nconst unmapIPv4MappedIPv6 = (host) => {\n  if (typeof host !== 'string' || host.indexOf(':') === -1) return host;\n\n  const dotted = host.match(IPV4_MAPPED_DOTTED_RE);\n  if (dotted) return dotted[1];\n\n  const hex = host.match(IPV4_MAPPED_HEX_RE);\n  if (hex) {\n    const high = parseInt(hex[1], 16);\n    const low = parseInt(hex[2], 16);\n    return `${high >> 8}.${high & 0xff}.${low >> 8}.${low & 0xff}`;\n  }\n\n  return host;\n};\n\nconst normalizeNoProxyHost = (hostname) => {\n  if (!hostname) {\n    return hostname;\n  }\n\n  if (hostname.charAt(0) === '[' && hostname.charAt(hostname.length - 1) === ']') {\n    hostname = hostname.slice(1, -1);\n  }\n\n  return unmapIPv4MappedIPv6(hostname.replace(/\\.+$/, ''));\n};\n\nexport default function shouldBypassProxy(location) {\n  let parsed;\n\n  try {\n    parsed = new URL(location);\n  } catch (_err) {\n    return false;\n  }\n\n  const noProxy = (process.env.no_proxy || process.env.NO_PROXY || '').toLowerCase();\n\n  if (!noProxy) {\n    return false;\n  }\n\n  if (noProxy === '*') {\n    return true;\n  }\n\n  const port =\n    Number.parseInt(parsed.port, 10) || DEFAULT_PORTS[parsed.protocol.split(':', 1)[0]] || 0;\n\n  const hostname = normalizeNoProxyHost(parsed.hostname.toLowerCase());\n\n  return noProxy.split(/[\\s,]+/).some((entry) => {\n    if (!entry) {\n      return false;\n    }\n\n    let [entryHost, entryPort] = parseNoProxyEntry(entry);\n\n    entryHost = normalizeNoProxyHost(entryHost);\n\n    if (!entryHost) {\n      return false;\n    }\n\n    if (entryPort && entryPort !== port) {\n      return false;\n    }\n\n    if (entryHost.charAt(0) === '*') {\n      entryHost = entryHost.slice(1);\n    }\n\n    if (entryHost.charAt(0) === '.') {\n      return hostname.endsWith(entryHost);\n    }\n\n    return hostname === entryHost || (isLoopback(hostname) && isLoopback(entryHost));\n  });\n}\n", "'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n  samplesCount = samplesCount || 10;\n  const bytes = new Array(samplesCount);\n  const timestamps = new Array(samplesCount);\n  let head = 0;\n  let tail = 0;\n  let firstSampleTS;\n\n  min = min !== undefined ? min : 1000;\n\n  return function push(chunkLength) {\n    const now = Date.now();\n\n    const startedAt = timestamps[tail];\n\n    if (!firstSampleTS) {\n      firstSampleTS = now;\n    }\n\n    bytes[head] = chunkLength;\n    timestamps[head] = now;\n\n    let i = tail;\n    let bytesCount = 0;\n\n    while (i !== head) {\n      bytesCount += bytes[i++];\n      i = i % samplesCount;\n    }\n\n    head = (head + 1) % samplesCount;\n\n    if (head === tail) {\n      tail = (tail + 1) % samplesCount;\n    }\n\n    if (now - firstSampleTS < min) {\n      return;\n    }\n\n    const passed = startedAt && now - startedAt;\n\n    return passed ? Math.round((bytesCount * 1000) / passed) : undefined;\n  };\n}\n\nexport default speedometer;\n", "/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n  let timestamp = 0;\n  let threshold = 1000 / freq;\n  let lastArgs;\n  let timer;\n\n  const invoke = (args, now = Date.now()) => {\n    timestamp = now;\n    lastArgs = null;\n    if (timer) {\n      clearTimeout(timer);\n      timer = null;\n    }\n    fn(...args);\n  };\n\n  const throttled = (...args) => {\n    const now = Date.now();\n    const passed = now - timestamp;\n    if (passed >= threshold) {\n      invoke(args, now);\n    } else {\n      lastArgs = args;\n      if (!timer) {\n        timer = setTimeout(() => {\n          timer = null;\n          invoke(lastArgs);\n        }, threshold - passed);\n      }\n    }\n  };\n\n  const flush = () => lastArgs && invoke(lastArgs);\n\n  return [throttled, flush];\n}\n\nexport default throttle;\n", "import speedometer from './speedometer.js';\nimport throttle from './throttle.js';\nimport utils from '../utils.js';\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n  let bytesNotified = 0;\n  const _speedometer = speedometer(50, 250);\n\n  return throttle((e) => {\n    if (!e || typeof e.loaded !== 'number') {\n      return;\n    }\n    const rawLoaded = e.loaded;\n    const total = e.lengthComputable ? e.total : undefined;\n    const loaded = total != null ? Math.min(rawLoaded, total) : rawLoaded;\n    const progressBytes = Math.max(0, loaded - bytesNotified);\n    const rate = _speedometer(progressBytes);\n\n    bytesNotified = Math.max(bytesNotified, loaded);\n\n    const data = {\n      loaded,\n      total,\n      progress: total ? loaded / total : undefined,\n      bytes: progressBytes,\n      rate: rate ? rate : undefined,\n      estimated: rate && total ? (total - loaded) / rate : undefined,\n      event: e,\n      lengthComputable: total != null,\n      [isDownloadStream ? 'download' : 'upload']: true,\n    };\n\n    listener(data);\n  }, freq);\n};\n\nexport const progressEventDecorator = (total, throttled) => {\n  const lengthComputable = total != null;\n\n  return [\n    (loaded) =>\n      throttled[0]({\n        lengthComputable,\n        total,\n        loaded,\n      }),\n    throttled[1],\n  ];\n};\n\nexport const asyncDecorator =\n  (fn) =>\n  (...args) =>\n    utils.asap(() => fn(...args));\n", "/**\n * Estimate decoded byte length of a data:// URL *without* allocating large buffers.\n * - For base64: compute exact decoded size using length and padding;\n *               handle %XX at the character-count level (no string allocation).\n * - For non-base64: compute the exact percent-decoded UTF-8 byte length.\n *\n * @param {string} url\n * @returns {number}\n */\nconst isHexDigit = (charCode) =>\n  (charCode >= 48 && charCode <= 57) ||\n  (charCode >= 65 && charCode <= 70) ||\n  (charCode >= 97 && charCode <= 102);\n\nconst isPercentEncodedByte = (str, i, len) =>\n  i + 2 < len && isHexDigit(str.charCodeAt(i + 1)) && isHexDigit(str.charCodeAt(i + 2));\n\nexport default function estimateDataURLDecodedBytes(url) {\n  if (!url || typeof url !== 'string') return 0;\n  if (!url.startsWith('data:')) return 0;\n\n  const comma = url.indexOf(',');\n  if (comma < 0) return 0;\n\n  const meta = url.slice(5, comma);\n  const body = url.slice(comma + 1);\n  const isBase64 = /;base64/i.test(meta);\n\n  if (isBase64) {\n    let effectiveLen = body.length;\n    const len = body.length; // cache length\n\n    for (let i = 0; i < len; i++) {\n      if (body.charCodeAt(i) === 37 /* '%' */ && i + 2 < len) {\n        const a = body.charCodeAt(i + 1);\n        const b = body.charCodeAt(i + 2);\n        const isHex = isHexDigit(a) && isHexDigit(b);\n\n        if (isHex) {\n          effectiveLen -= 2;\n          i += 2;\n        }\n      }\n    }\n\n    let pad = 0;\n    let idx = len - 1;\n\n    const tailIsPct3D = (j) =>\n      j >= 2 &&\n      body.charCodeAt(j - 2) === 37 && // '%'\n      body.charCodeAt(j - 1) === 51 && // '3'\n      (body.charCodeAt(j) === 68 || body.charCodeAt(j) === 100); // 'D' or 'd'\n\n    if (idx >= 0) {\n      if (body.charCodeAt(idx) === 61 /* '=' */) {\n        pad++;\n        idx--;\n      } else if (tailIsPct3D(idx)) {\n        pad++;\n        idx -= 3;\n      }\n    }\n\n    if (pad === 1 && idx >= 0) {\n      if (body.charCodeAt(idx) === 61 /* '=' */) {\n        pad++;\n      } else if (tailIsPct3D(idx)) {\n        pad++;\n      }\n    }\n\n    const groups = Math.floor(effectiveLen / 4);\n    const bytes = groups * 3 - (pad || 0);\n    return bytes > 0 ? bytes : 0;\n  }\n\n  // Compute UTF-8 byte length directly from UTF-16 code units without allocating\n  // a byte buffer (TextEncoder.encode would defeat the DoS guard on large bodies).\n  // Valid %XX triplets count as one decoded byte; this matches the bytes that\n  // decodeURIComponent(body) would produce before Buffer re-encodes the string.\n  let bytes = 0;\n  for (let i = 0, len = body.length; i < len; i++) {\n    const c = body.charCodeAt(i);\n    if (c === 37 /* '%' */ && isPercentEncodedByte(body, i, len)) {\n      bytes += 1;\n      i += 2;\n    } else if (c < 0x80) {\n      bytes += 1;\n    } else if (c < 0x800) {\n      bytes += 2;\n    } else if (c >= 0xd800 && c <= 0xdbff && i + 1 < len) {\n      const next = body.charCodeAt(i + 1);\n      if (next >= 0xdc00 && next <= 0xdfff) {\n        bytes += 4;\n        i++;\n      } else {\n        bytes += 3;\n      }\n    } else {\n      bytes += 3;\n    }\n  }\n  return bytes;\n}\n", "import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv\n  ? ((origin, isMSIE) => (url) => {\n      url = new URL(url, platform.origin);\n\n      return (\n        origin.protocol === url.protocol &&\n        origin.host === url.host &&\n        (isMSIE || origin.port === url.port)\n      );\n    })(\n      new URL(platform.origin),\n      platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n    )\n  : () => true;\n", "import utils from '../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv\n  ? // Standard browser envs support document.cookie\n    {\n      write(name, value, expires, path, domain, secure, sameSite) {\n        if (typeof document === 'undefined') return;\n\n        const cookie = [`${name}=${encodeURIComponent(value)}`];\n\n        if (utils.isNumber(expires)) {\n          cookie.push(`expires=${new Date(expires).toUTCString()}`);\n        }\n        if (utils.isString(path)) {\n          cookie.push(`path=${path}`);\n        }\n        if (utils.isString(domain)) {\n          cookie.push(`domain=${domain}`);\n        }\n        if (secure === true) {\n          cookie.push('secure');\n        }\n        if (utils.isString(sameSite)) {\n          cookie.push(`SameSite=${sameSite}`);\n        }\n\n        document.cookie = cookie.join('; ');\n      },\n\n      read(name) {\n        if (typeof document === 'undefined') return null;\n        // Match name=value by splitting on the semicolon separator instead of building a\n        // RegExp from `name` \u2014 interpolating an unescaped string into a RegExp would let\n        // metacharacters (e.g. `.+?` in an attacker-influenced cookie name) cause ReDoS or\n        // match the wrong cookie. Browsers may serialize cookie pairs as either \";\" or\n        // \"; \", so ignore optional whitespace before each cookie name.\n        const cookies = document.cookie.split(';');\n        for (let i = 0; i < cookies.length; i++) {\n          const cookie = cookies[i].replace(/^\\s+/, '');\n          const eq = cookie.indexOf('=');\n          if (eq !== -1 && cookie.slice(0, eq) === name) {\n            try {\n              return decodeURIComponent(cookie.slice(eq + 1));\n            } catch (e) {\n              return cookie.slice(eq + 1);\n            }\n          }\n        }\n        return null;\n      },\n\n      remove(name) {\n        this.write(name, '', Date.now() - 86400000, '/');\n      },\n    }\n  : // Non-standard browser env (web workers, react-native) lack needed support.\n    {\n      write() {},\n      read() {\n        return null;\n      },\n      remove() {},\n    };\n", "'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst headersToObject = (thing) => (thing instanceof AxiosHeaders ? { ...thing } : thing);\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n  // eslint-disable-next-line no-param-reassign\n  config1 = config1 || {};\n  config2 = config2 || {};\n\n  // Use a null-prototype object so that downstream reads such as `config.auth`\n  // or `config.baseURL` cannot inherit polluted values from Object.prototype.\n  // `hasOwnProperty` is restored as a non-enumerable own slot to preserve\n  // ergonomics for user code that relies on it.\n  const config = Object.create(null);\n  Object.defineProperty(config, 'hasOwnProperty', {\n    // Null-proto descriptor so a polluted Object.prototype.get cannot turn\n    // this data descriptor into an accessor descriptor on the way in.\n    __proto__: null,\n    value: Object.prototype.hasOwnProperty,\n    enumerable: false,\n    writable: true,\n    configurable: true,\n  });\n\n  function getMergedValue(target, source, prop, caseless) {\n    if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n      return utils.merge.call({ caseless }, target, source);\n    } else if (utils.isPlainObject(source)) {\n      return utils.merge({}, source);\n    } else if (utils.isArray(source)) {\n      return source.slice();\n    }\n    return source;\n  }\n\n  function mergeDeepProperties(a, b, prop, caseless) {\n    if (!utils.isUndefined(b)) {\n      return getMergedValue(a, b, prop, caseless);\n    } else if (!utils.isUndefined(a)) {\n      return getMergedValue(undefined, a, prop, caseless);\n    }\n  }\n\n  // eslint-disable-next-line consistent-return\n  function valueFromConfig2(a, b) {\n    if (!utils.isUndefined(b)) {\n      return getMergedValue(undefined, b);\n    }\n  }\n\n  // eslint-disable-next-line consistent-return\n  function defaultToConfig2(a, b) {\n    if (!utils.isUndefined(b)) {\n      return getMergedValue(undefined, b);\n    } else if (!utils.isUndefined(a)) {\n      return getMergedValue(undefined, a);\n    }\n  }\n\n  function getMergedTransitionalOption(prop) {\n    const transitional2 = utils.hasOwnProp(config2, 'transitional') ? config2.transitional : undefined;\n\n    if (!utils.isUndefined(transitional2)) {\n      if (utils.isPlainObject(transitional2)) {\n        if (utils.hasOwnProp(transitional2, prop)) {\n          return transitional2[prop];\n        }\n      } else {\n        return undefined;\n      }\n    }\n\n    const transitional1 = utils.hasOwnProp(config1, 'transitional') ? config1.transitional : undefined;\n\n    if (utils.isPlainObject(transitional1) && utils.hasOwnProp(transitional1, prop)) {\n      return transitional1[prop];\n    }\n\n    return undefined;\n  }\n\n  // eslint-disable-next-line consistent-return\n  function mergeDirectKeys(a, b, prop) {\n    if (utils.hasOwnProp(config2, prop)) {\n      return getMergedValue(a, b);\n    } else if (utils.hasOwnProp(config1, prop)) {\n      return getMergedValue(undefined, a);\n    }\n  }\n\n  const mergeMap = {\n    url: valueFromConfig2,\n    method: valueFromConfig2,\n    data: valueFromConfig2,\n    baseURL: defaultToConfig2,\n    transformRequest: defaultToConfig2,\n    transformResponse: defaultToConfig2,\n    paramsSerializer: defaultToConfig2,\n    timeout: defaultToConfig2,\n    timeoutMessage: defaultToConfig2,\n    withCredentials: defaultToConfig2,\n    withXSRFToken: defaultToConfig2,\n    adapter: defaultToConfig2,\n    responseType: defaultToConfig2,\n    xsrfCookieName: defaultToConfig2,\n    xsrfHeaderName: defaultToConfig2,\n    onUploadProgress: defaultToConfig2,\n    onDownloadProgress: defaultToConfig2,\n    decompress: defaultToConfig2,\n    maxContentLength: defaultToConfig2,\n    maxBodyLength: defaultToConfig2,\n    beforeRedirect: defaultToConfig2,\n    transport: defaultToConfig2,\n    httpAgent: defaultToConfig2,\n    httpsAgent: defaultToConfig2,\n    cancelToken: defaultToConfig2,\n    socketPath: defaultToConfig2,\n    allowedSocketPaths: defaultToConfig2,\n    responseEncoding: defaultToConfig2,\n    validateStatus: mergeDirectKeys,\n    headers: (a, b, prop) =>\n      mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true),\n  };\n\n  utils.forEach(Object.keys({ ...config1, ...config2 }), function computeConfigValue(prop) {\n    if (prop === '__proto__' || prop === 'constructor' || prop === 'prototype') return;\n    const merge = utils.hasOwnProp(mergeMap, prop) ? mergeMap[prop] : mergeDeepProperties;\n    const a = utils.hasOwnProp(config1, prop) ? config1[prop] : undefined;\n    const b = utils.hasOwnProp(config2, prop) ? config2[prop] : undefined;\n    const configValue = merge(a, b, prop);\n    (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n  });\n\n  if (\n    utils.hasOwnProp(config2, 'validateStatus') &&\n    utils.isUndefined(config2.validateStatus) &&\n    getMergedTransitionalOption('validateStatusUndefinedResolves') === false\n  ) {\n    if (utils.hasOwnProp(config1, 'validateStatus')) {\n      config.validateStatus = getMergedValue(undefined, config1.validateStatus);\n    } else {\n      delete config.validateStatus;\n    }\n  }\n\n  return config;\n}\n", "import platform from '../platform/index.js';\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport isURLSameOrigin from './isURLSameOrigin.js';\nimport cookies from './cookies.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport mergeConfig from '../core/mergeConfig.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport buildURL from './buildURL.js';\n\nconst FORM_DATA_CONTENT_HEADERS = ['content-type', 'content-length'];\n\nfunction setFormDataHeaders(headers, formHeaders, policy) {\n  if (policy !== 'content-only') {\n    headers.set(formHeaders);\n    return;\n  }\n\n  Object.entries(formHeaders || {}).forEach(([key, val]) => {\n    if (FORM_DATA_CONTENT_HEADERS.includes(key.toLowerCase())) {\n      headers.set(key, val);\n    }\n  });\n}\n\n/**\n * Encode a UTF-8 string to a Latin-1 byte string for use with btoa().\n * This is a modern replacement for the deprecated unescape(encodeURIComponent(str)) pattern.\n *\n * @param {string} str The string to encode\n *\n * @returns {string} UTF-8 bytes as a Latin-1 string\n */\nconst encodeUTF8 = (str) =>\n  encodeURIComponent(str).replace(/%([0-9A-F]{2})/gi, (_, hex) =>\n    String.fromCharCode(parseInt(hex, 16))\n  );\n\nfunction resolveConfig(config) {\n  const newConfig = mergeConfig({}, config);\n\n  // Read only own properties to prevent prototype pollution gadgets\n  // (e.g. Object.prototype.baseURL = 'https://evil.com').\n  const own = (key) => (utils.hasOwnProp(newConfig, key) ? newConfig[key] : undefined);\n\n  const data = own('data');\n  let withXSRFToken = own('withXSRFToken');\n  const xsrfHeaderName = own('xsrfHeaderName');\n  const xsrfCookieName = own('xsrfCookieName');\n  let headers = own('headers');\n  const auth = own('auth');\n  const baseURL = own('baseURL');\n  const allowAbsoluteUrls = own('allowAbsoluteUrls');\n  const url = own('url');\n\n  newConfig.headers = headers = AxiosHeaders.from(headers);\n\n  newConfig.url = buildURL(\n    buildFullPath(baseURL, url, allowAbsoluteUrls, newConfig),\n    own('params'),\n    own('paramsSerializer')\n  );\n\n  // HTTP basic authentication\n  if (auth) {\n    const username = utils.getSafeProp(auth, 'username') || '';\n    const password = utils.getSafeProp(auth, 'password') || '';\n\n    try {\n      headers.set(\n        'Authorization',\n        'Basic ' + btoa(username + ':' + (password ? encodeUTF8(password) : ''))\n      );\n    } catch (e) {\n      throw AxiosError.from(e, AxiosError.ERR_BAD_OPTION_VALUE, config);\n    }\n  }\n\n  if (utils.isFormData(data)) {\n    if (\n      platform.hasStandardBrowserEnv ||\n      platform.hasStandardBrowserWebWorkerEnv ||\n      utils.isReactNative(data)\n    ) {\n      headers.setContentType(undefined); // browser/web worker/RN handles it\n    } else if (utils.isFunction(data.getHeaders)) {\n      // Node.js FormData (like form-data package)\n      setFormDataHeaders(headers, data.getHeaders(), own('formDataHeaderPolicy'));\n    }\n  }\n\n  // Add xsrf header\n  // This is only done if running in a standard browser environment.\n  // Specifically not if we're in a web worker, or react-native.\n\n  if (platform.hasStandardBrowserEnv) {\n    if (utils.isFunction(withXSRFToken)) {\n      withXSRFToken = withXSRFToken(newConfig);\n    }\n\n    // Strict boolean check \u2014 prevents proto-pollution gadgets (e.g. Object.prototype.withXSRFToken = 1)\n    // and misconfigurations (e.g. \"false\") from short-circuiting the same-origin check and leaking\n    // the XSRF token cross-origin.\n    const shouldSendXSRF =\n      withXSRFToken === true || (withXSRFToken == null && isURLSameOrigin(newConfig.url));\n\n    if (shouldSendXSRF) {\n      const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n      if (xsrfValue) {\n        headers.set(xsrfHeaderName, xsrfValue);\n      }\n    }\n  }\n\n  return newConfig;\n}\n\nexport default resolveConfig;\n", "import utils from '../utils.js';\nimport settle from '../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport { progressEventReducer } from '../helpers/progressEventReducer.js';\nimport resolveConfig from '../helpers/resolveConfig.js';\nimport { toByteStringHeaderObject } from '../helpers/sanitizeHeaderValue.js';\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported &&\n  function (config) {\n    return new Promise(function dispatchXhrRequest(resolve, reject) {\n      const _config = resolveConfig(config);\n      let requestData = _config.data;\n      const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n      let { responseType, onUploadProgress, onDownloadProgress } = _config;\n      let onCanceled;\n      let uploadThrottled, downloadThrottled;\n      let flushUpload, flushDownload;\n\n      function done() {\n        flushUpload && flushUpload(); // flush events\n        flushDownload && flushDownload(); // flush events\n\n        _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n        _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n      }\n\n      let request = new XMLHttpRequest();\n\n      request.open(_config.method.toUpperCase(), _config.url, true);\n\n      // Set the request timeout in MS\n      request.timeout = _config.timeout;\n\n      function onloadend() {\n        if (!request) {\n          return;\n        }\n        // Prepare the response\n        const responseHeaders = AxiosHeaders.from(\n          'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n        );\n        const responseData =\n          !responseType || responseType === 'text' || responseType === 'json'\n            ? request.responseText\n            : request.response;\n        const response = {\n          data: responseData,\n          status: request.status,\n          statusText: request.statusText,\n          headers: responseHeaders,\n          config,\n          request,\n        };\n\n        settle(\n          function _resolve(value) {\n            resolve(value);\n            done();\n          },\n          function _reject(err) {\n            reject(err);\n            done();\n          },\n          response\n        );\n\n        // Clean up request\n        request = null;\n      }\n\n      if ('onloadend' in request) {\n        // Use onloadend if available\n        request.onloadend = onloadend;\n      } else {\n        // Listen for ready state to emulate onloadend\n        request.onreadystatechange = function handleLoad() {\n          if (!request || request.readyState !== 4) {\n            return;\n          }\n\n          // The request errored out and we didn't get a response, this will be\n          // handled by onerror instead\n          // With one exception: request that using file: protocol, most browsers\n          // will return status as 0 even though it's a successful request\n          if (\n            request.status === 0 &&\n            !(request.responseURL && request.responseURL.startsWith('file:'))\n          ) {\n            return;\n          }\n          // readystate handler is calling before onerror or ontimeout handlers,\n          // so we should call onloadend on the next 'tick'\n          setTimeout(onloadend);\n        };\n      }\n\n      // Handle browser request cancellation (as opposed to a manual cancellation)\n      request.onabort = function handleAbort() {\n        if (!request) {\n          return;\n        }\n\n        reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n        done();\n\n        // Clean up request\n        request = null;\n      };\n\n      // Handle low level network errors\n      request.onerror = function handleError(event) {\n        // Browsers deliver a ProgressEvent in XHR onerror\n        // (message may be empty; when present, surface it)\n        // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event\n        const msg = event && event.message ? event.message : 'Network Error';\n        const err = new AxiosError(msg, AxiosError.ERR_NETWORK, config, request);\n        // attach the underlying event for consumers who want details\n        err.event = event || null;\n        reject(err);\n        done();\n        request = null;\n      };\n\n      // Handle timeout\n      request.ontimeout = function handleTimeout() {\n        let timeoutErrorMessage = _config.timeout\n          ? 'timeout of ' + _config.timeout + 'ms exceeded'\n          : 'timeout exceeded';\n        const transitional = _config.transitional || transitionalDefaults;\n        if (_config.timeoutErrorMessage) {\n          timeoutErrorMessage = _config.timeoutErrorMessage;\n        }\n        reject(\n          new AxiosError(\n            timeoutErrorMessage,\n            transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n            config,\n            request\n          )\n        );\n        done();\n\n        // Clean up request\n        request = null;\n      };\n\n      // Remove Content-Type if data is undefined\n      requestData === undefined && requestHeaders.setContentType(null);\n\n      // Add headers to the request\n      if ('setRequestHeader' in request) {\n        utils.forEach(toByteStringHeaderObject(requestHeaders), function setRequestHeader(val, key) {\n          request.setRequestHeader(key, val);\n        });\n      }\n\n      // Add withCredentials to request if needed\n      if (!utils.isUndefined(_config.withCredentials)) {\n        request.withCredentials = !!_config.withCredentials;\n      }\n\n      // Add responseType to request if needed\n      if (responseType && responseType !== 'json') {\n        request.responseType = _config.responseType;\n      }\n\n      // Handle progress if needed\n      if (onDownloadProgress) {\n        [downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true);\n        request.addEventListener('progress', downloadThrottled);\n      }\n\n      // Not all browsers support upload events\n      if (onUploadProgress && request.upload) {\n        [uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress);\n\n        request.upload.addEventListener('progress', uploadThrottled);\n\n        request.upload.addEventListener('loadend', flushUpload);\n      }\n\n      if (_config.cancelToken || _config.signal) {\n        // Handle cancellation\n        // eslint-disable-next-line func-names\n        onCanceled = (cancel) => {\n          if (!request) {\n            return;\n          }\n          reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n          request.abort();\n          done();\n          request = null;\n        };\n\n        _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n        if (_config.signal) {\n          _config.signal.aborted\n            ? onCanceled()\n            : _config.signal.addEventListener('abort', onCanceled);\n        }\n      }\n\n      const protocol = parseProtocol(_config.url);\n\n      if (protocol && !platform.protocols.includes(protocol)) {\n        reject(\n          new AxiosError(\n            'Unsupported protocol ' + protocol + ':',\n            AxiosError.ERR_BAD_REQUEST,\n            config\n          )\n        );\n        done();\n        return;\n      }\n\n      // Send the request\n      request.send(requestData || null);\n    });\n  };\n", "import CanceledError from '../cancel/CanceledError.js';\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n  signals = signals ? signals.filter(Boolean) : [];\n\n  if (!timeout && !signals.length) {\n    return;\n  }\n\n  const controller = new AbortController();\n\n  let aborted = false;\n\n  const onabort = function (reason) {\n    if (!aborted) {\n      aborted = true;\n      unsubscribe();\n      const err = reason instanceof Error ? reason : this.reason;\n      controller.abort(\n        err instanceof AxiosError\n          ? err\n          : new CanceledError(err instanceof Error ? err.message : err)\n      );\n    }\n  };\n\n  let timer =\n    timeout &&\n    setTimeout(() => {\n      timer = null;\n      onabort(new AxiosError(`timeout of ${timeout}ms exceeded`, AxiosError.ETIMEDOUT));\n    }, timeout);\n\n  const unsubscribe = () => {\n    if (!signals) { return; }\n    timer && clearTimeout(timer);\n    timer = null;\n    signals.forEach((signal) => {\n      signal.unsubscribe\n        ? signal.unsubscribe(onabort)\n        : signal.removeEventListener('abort', onabort);\n    });\n    signals = null;\n  };\n\n  signals.forEach((signal) => signal.addEventListener('abort', onabort, { once: true }));\n\n  const { signal } = controller;\n\n  signal.unsubscribe = () => utils.asap(unsubscribe);\n\n  return signal;\n};\n\nexport default composeSignals;\n", "export const streamChunk = function* (chunk, chunkSize) {\n  let len = chunk.byteLength;\n\n  if (!chunkSize || len < chunkSize) {\n    yield chunk;\n    return;\n  }\n\n  let pos = 0;\n  let end;\n\n  while (pos < len) {\n    end = pos + chunkSize;\n    yield chunk.slice(pos, end);\n    pos = end;\n  }\n};\n\nexport const readBytes = async function* (iterable, chunkSize) {\n  for await (const chunk of readStream(iterable)) {\n    yield* streamChunk(chunk, chunkSize);\n  }\n};\n\nconst readStream = async function* (stream) {\n  if (stream[Symbol.asyncIterator]) {\n    yield* stream;\n    return;\n  }\n\n  const reader = stream.getReader();\n  try {\n    for (;;) {\n      const { done, value } = await reader.read();\n      if (done) {\n        break;\n      }\n      yield value;\n    }\n  } finally {\n    await reader.cancel();\n  }\n};\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n  const iterator = readBytes(stream, chunkSize);\n\n  let bytes = 0;\n  let done;\n  let _onFinish = (e) => {\n    if (!done) {\n      done = true;\n      onFinish && onFinish(e);\n    }\n  };\n\n  return new ReadableStream(\n    {\n      async pull(controller) {\n        try {\n          const { done, value } = await iterator.next();\n\n          if (done) {\n            _onFinish();\n            controller.close();\n            return;\n          }\n\n          let len = value.byteLength;\n          if (onProgress) {\n            let loadedBytes = (bytes += len);\n            onProgress(loadedBytes);\n          }\n          controller.enqueue(new Uint8Array(value));\n        } catch (err) {\n          _onFinish(err);\n          throw err;\n        }\n      },\n      cancel(reason) {\n        _onFinish(reason);\n        return iterator.return();\n      },\n    },\n    {\n      highWaterMark: 2,\n    }\n  );\n};\n", "import platform from '../platform/index.js';\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport composeSignals from '../helpers/composeSignals.js';\nimport { trackStream } from '../helpers/trackStream.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {\n  progressEventReducer,\n  progressEventDecorator,\n  asyncDecorator,\n} from '../helpers/progressEventReducer.js';\nimport resolveConfig from '../helpers/resolveConfig.js';\nimport settle from '../core/settle.js';\nimport estimateDataURLDecodedBytes from '../helpers/estimateDataURLDecodedBytes.js';\nimport { VERSION } from '../env/data.js';\nimport { toByteStringHeaderObject } from '../helpers/sanitizeHeaderValue.js';\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst { isFunction } = utils;\n\n/**\n * Encode a UTF-8 string to a Latin-1 byte string for use with btoa().\n * This is a modern replacement for the deprecated unescape(encodeURIComponent(str)) pattern.\n *\n * @param {string} str The string to encode\n *\n * @returns {string} UTF-8 bytes as a Latin-1 string\n */\nconst encodeUTF8 = (str) =>\n  encodeURIComponent(str).replace(/%([0-9A-F]{2})/gi, (_, hex) =>\n    String.fromCharCode(parseInt(hex, 16))\n  );\n\n// Node's WHATWG URL parser returns `username` and `password` percent-encoded.\n// Decode before composing the `auth` option so credentials such as\n// `my%40email.com:pass` are sent as `my@email.com:pass`. Falls back to the\n// original value for malformed input so a bad encoding never throws.\nconst decodeURIComponentSafe = (value) => {\n  if (!utils.isString(value)) {\n    return value;\n  }\n\n  try {\n    return decodeURIComponent(value);\n  } catch (error) {\n    return value;\n  }\n};\n\nconst test = (fn, ...args) => {\n  try {\n    return !!fn(...args);\n  } catch (e) {\n    return false;\n  }\n};\n\nconst maybeWithAuthCredentials = (url) => {\n  const protocolIndex = url.indexOf('://');\n  let urlToCheck = url;\n  if (protocolIndex !== -1) {\n    urlToCheck = urlToCheck.slice(protocolIndex + 3);\n  }\n  return urlToCheck.includes('@') || urlToCheck.includes(':');\n};\n\nconst factory = (env) => {\n  const globalObject =\n    utils.global !== undefined && utils.global !== null\n      ? utils.global\n      : globalThis;\n  const { ReadableStream, TextEncoder } = globalObject;\n\n  env = utils.merge.call(\n    {\n      skipUndefined: true,\n    },\n    {\n      Request: globalObject.Request,\n      Response: globalObject.Response,\n    },\n    env\n  );\n\n  const { fetch: envFetch, Request, Response } = env;\n  const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function';\n  const isRequestSupported = isFunction(Request);\n  const isResponseSupported = isFunction(Response);\n\n  if (!isFetchSupported) {\n    return false;\n  }\n\n  const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream);\n\n  const encodeText =\n    isFetchSupported &&\n    (typeof TextEncoder === 'function'\n      ? (\n          (encoder) => (str) =>\n            encoder.encode(str)\n        )(new TextEncoder())\n      : async (str) => new Uint8Array(await new Request(str).arrayBuffer()));\n\n  const supportsRequestStream =\n    isRequestSupported &&\n    isReadableStreamSupported &&\n    test(() => {\n      let duplexAccessed = false;\n\n      const request = new Request(platform.origin, {\n        body: new ReadableStream(),\n        method: 'POST',\n        get duplex() {\n          duplexAccessed = true;\n          return 'half';\n        },\n      });\n\n      const hasContentType = request.headers.has('Content-Type');\n\n      if (request.body != null) {\n        request.body.cancel();\n      }\n\n      return duplexAccessed && !hasContentType;\n    });\n\n  const supportsResponseStream =\n    isResponseSupported &&\n    isReadableStreamSupported &&\n    test(() => utils.isReadableStream(new Response('').body));\n\n  const resolvers = {\n    stream: supportsResponseStream && ((res) => res.body),\n  };\n\n  isFetchSupported &&\n    (() => {\n      ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach((type) => {\n        !resolvers[type] &&\n          (resolvers[type] = (res, config) => {\n            let method = res && res[type];\n\n            if (method) {\n              return method.call(res);\n            }\n\n            throw new AxiosError(\n              `Response type '${type}' is not supported`,\n              AxiosError.ERR_NOT_SUPPORT,\n              config\n            );\n          });\n      });\n    })();\n\n  const getBodyLength = async (body) => {\n    if (body == null) {\n      return 0;\n    }\n\n    if (utils.isBlob(body)) {\n      return body.size;\n    }\n\n    if (utils.isSpecCompliantForm(body)) {\n      const _request = new Request(platform.origin, {\n        method: 'POST',\n        body,\n      });\n      return (await _request.arrayBuffer()).byteLength;\n    }\n\n    if (utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n      return body.byteLength;\n    }\n\n    if (utils.isURLSearchParams(body)) {\n      body = body + '';\n    }\n\n    if (utils.isString(body)) {\n      return (await encodeText(body)).byteLength;\n    }\n  };\n\n  const resolveBodyLength = async (headers, body) => {\n    const length = utils.toFiniteNumber(headers.getContentLength());\n\n    return length == null ? getBodyLength(body) : length;\n  };\n\n  return async (config) => {\n    let {\n      url,\n      method,\n      data,\n      signal,\n      cancelToken,\n      timeout,\n      onDownloadProgress,\n      onUploadProgress,\n      responseType,\n      headers,\n      withCredentials = 'same-origin',\n      fetchOptions,\n      maxContentLength,\n      maxBodyLength,\n    } = resolveConfig(config);\n\n    const hasMaxContentLength = utils.isNumber(maxContentLength) && maxContentLength > -1;\n    const hasMaxBodyLength = utils.isNumber(maxBodyLength) && maxBodyLength > -1;\n    const own = (key) => (utils.hasOwnProp(config, key) ? config[key] : undefined);\n\n    let _fetch = envFetch || fetch;\n\n    responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n    let composedSignal = composeSignals(\n      [signal, cancelToken && cancelToken.toAbortSignal()],\n      timeout\n    );\n\n    let request = null;\n\n    const unsubscribe =\n      composedSignal &&\n      composedSignal.unsubscribe &&\n      (() => {\n        composedSignal.unsubscribe();\n      });\n\n    let requestContentLength;\n\n    // AxiosError we raise while the request body is being streamed. Captured\n    // by identity so the catch block can surface it directly, regardless of\n    // how the runtime wraps the resulting fetch rejection (undici exposes it\n    // as `err.cause`; some browsers drop the original error entirely).\n    let pendingBodyError = null;\n\n    const maxBodyLengthError = () =>\n      new AxiosError(\n        'Request body larger than maxBodyLength limit',\n        AxiosError.ERR_BAD_REQUEST,\n        config,\n        request\n      );\n\n    try {\n      // HTTP basic authentication\n      let auth = undefined;\n      const configAuth = own('auth');\n\n      if (configAuth) {\n        const username = utils.getSafeProp(configAuth, 'username') || '';\n        const password = utils.getSafeProp(configAuth, 'password') || '';\n        auth = {\n          username,\n          password\n        };\n      }\n\n      if (maybeWithAuthCredentials(url)) {\n        const parsedURL = new URL(url, platform.origin);\n\n        if (!auth && (parsedURL.username || parsedURL.password)) {\n          const urlUsername = decodeURIComponentSafe(parsedURL.username);\n          const urlPassword = decodeURIComponentSafe(parsedURL.password);\n          auth = {\n            username: urlUsername,\n            password: urlPassword\n          };\n        }\n\n        if (parsedURL.username || parsedURL.password) {\n          parsedURL.username = '';\n          parsedURL.password = '';\n          url = parsedURL.href;\n        }\n      }\n\n      if (auth) {\n        headers.delete('authorization');\n        headers.set(\n          'Authorization',\n          'Basic ' + btoa(encodeUTF8((auth.username || '') + ':' + (auth.password || '')))\n        );\n      }\n\n      // Enforce maxContentLength for data: URLs up-front so we never materialize\n      // an oversized payload. The HTTP adapter applies the same check (see http.js\n      // \"if (protocol === 'data:')\" branch).\n      if (hasMaxContentLength && typeof url === 'string' && url.startsWith('data:')) {\n        const estimated = estimateDataURLDecodedBytes(url);\n        if (estimated > maxContentLength) {\n          throw new AxiosError(\n            'maxContentLength size of ' + maxContentLength + ' exceeded',\n            AxiosError.ERR_BAD_RESPONSE,\n            config,\n            request\n          );\n        }\n      }\n\n      // Enforce maxBodyLength against known-size bodies before dispatch using\n      // the body's *actual* size \u2014 never a caller-declared Content-Length,\n      // which could under-report to slip an oversized body past the check.\n      // Unknown-size streams return undefined here and are counted per-chunk\n      // below as fetch consumes them.\n      if (hasMaxBodyLength && method !== 'get' && method !== 'head') {\n        const outboundLength = await getBodyLength(data);\n        if (typeof outboundLength === 'number' && isFinite(outboundLength)) {\n          requestContentLength = outboundLength;\n          if (outboundLength > maxBodyLength) {\n            throw maxBodyLengthError();\n          }\n        }\n      }\n\n      // A streamed body under maxBodyLength must be counted as fetch consumes\n      // it; its size is never trusted from a caller-declared Content-Length.\n      const mustEnforceStreamBody =\n        hasMaxBodyLength && (utils.isReadableStream(data) || utils.isStream(data));\n\n      const trackRequestStream = (stream, onProgress, flush) =>\n        trackStream(\n          stream,\n          DEFAULT_CHUNK_SIZE,\n          (loadedBytes) => {\n            if (hasMaxBodyLength && loadedBytes > maxBodyLength) {\n              throw (pendingBodyError = maxBodyLengthError());\n            }\n            onProgress && onProgress(loadedBytes);\n          },\n          flush\n        );\n\n      if (\n        supportsRequestStream &&\n        method !== 'get' &&\n        method !== 'head' &&\n        (onUploadProgress || mustEnforceStreamBody)\n      ) {\n        requestContentLength =\n          requestContentLength == null ? await resolveBodyLength(headers, data) : requestContentLength;\n\n        // A declared length of 0 is only trusted to skip the wrap when we are\n        // not enforcing a stream limit (which must not rely on that header).\n        if (requestContentLength !== 0 || mustEnforceStreamBody) {\n          let _request = new Request(url, {\n            method: 'POST',\n            body: data,\n            duplex: 'half',\n          });\n\n          let contentTypeHeader;\n\n          if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n            headers.setContentType(contentTypeHeader);\n          }\n\n          if (_request.body) {\n            const [onProgress, flush] =\n              (onUploadProgress &&\n                progressEventDecorator(\n                  requestContentLength,\n                  progressEventReducer(asyncDecorator(onUploadProgress))\n                )) ||\n              [];\n\n            data = trackRequestStream(_request.body, onProgress, flush);\n          }\n        }\n      } else if (\n        mustEnforceStreamBody &&\n        !isRequestSupported &&\n        isReadableStreamSupported &&\n        method !== 'get' &&\n        method !== 'head'\n      ) {\n        data = trackRequestStream(data);\n      } else if (\n        mustEnforceStreamBody &&\n        isRequestSupported &&\n        !supportsRequestStream &&\n        method !== 'get' &&\n        method !== 'head'\n      ) {\n        throw new AxiosError(\n          'Stream request bodies are not supported by the current fetch implementation',\n          AxiosError.ERR_NOT_SUPPORT,\n          config,\n          request\n        );\n      }\n\n      if (!utils.isString(withCredentials)) {\n        withCredentials = withCredentials ? 'include' : 'omit';\n      }\n\n      // Cloudflare Workers throws when credentials are defined\n      // see https://github.com/cloudflare/workerd/issues/902\n      const isCredentialsSupported = isRequestSupported && 'credentials' in Request.prototype;\n\n      // If data is FormData and Content-Type is multipart/form-data without boundary,\n      // delete it so fetch can set it correctly with the boundary\n      if (utils.isFormData(data)) {\n        const contentType = headers.getContentType();\n        if (\n          contentType &&\n          /^multipart\\/form-data/i.test(contentType) &&\n          !/boundary=/i.test(contentType)\n        ) {\n          headers.delete('content-type');\n        }\n      }\n\n      // Set User-Agent header if not already set (fetch defaults to 'node' in Node.js)\n      headers.set('User-Agent', 'axios/' + VERSION, false);\n\n      const resolvedOptions = {\n        ...fetchOptions,\n        signal: composedSignal,\n        method: method.toUpperCase(),\n        headers: toByteStringHeaderObject(headers.normalize()),\n        body: data,\n        duplex: 'half',\n        credentials: isCredentialsSupported ? withCredentials : undefined,\n      };\n\n      request = isRequestSupported && new Request(url, resolvedOptions);\n\n      let response = await (isRequestSupported\n        ? _fetch(request, fetchOptions)\n        : _fetch(url, resolvedOptions));\n\n      const responseHeaders = AxiosHeaders.from(response.headers);\n\n      // Cheap pre-check: if the server honestly declares a content-length that\n      // already exceeds the cap, reject before we start streaming.\n      if (hasMaxContentLength) {\n        const declaredLength = utils.toFiniteNumber(responseHeaders.getContentLength());\n        if (declaredLength != null && declaredLength > maxContentLength) {\n          throw new AxiosError(\n            'maxContentLength size of ' + maxContentLength + ' exceeded',\n            AxiosError.ERR_BAD_RESPONSE,\n            config,\n            request\n          );\n        }\n      }\n\n      const isStreamResponse =\n        supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n      if (\n        supportsResponseStream &&\n        response.body &&\n        (onDownloadProgress || hasMaxContentLength || (isStreamResponse && unsubscribe))\n      ) {\n        const options = {};\n\n        ['status', 'statusText', 'headers'].forEach((prop) => {\n          options[prop] = response[prop];\n        });\n\n        const responseContentLength = utils.toFiniteNumber(responseHeaders.getContentLength());\n\n        const [onProgress, flush] =\n          (onDownloadProgress &&\n            progressEventDecorator(\n              responseContentLength,\n              progressEventReducer(asyncDecorator(onDownloadProgress), true)\n            )) ||\n          [];\n\n        let bytesRead = 0;\n        const onChunkProgress = (loadedBytes) => {\n          if (hasMaxContentLength) {\n            bytesRead = loadedBytes;\n            if (bytesRead > maxContentLength) {\n              throw new AxiosError(\n                'maxContentLength size of ' + maxContentLength + ' exceeded',\n                AxiosError.ERR_BAD_RESPONSE,\n                config,\n                request\n              );\n            }\n          }\n          onProgress && onProgress(loadedBytes);\n        };\n\n        response = new Response(\n          trackStream(response.body, DEFAULT_CHUNK_SIZE, onChunkProgress, () => {\n            flush && flush();\n            unsubscribe && unsubscribe();\n          }),\n          options\n        );\n      }\n\n      responseType = responseType || 'text';\n\n      let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](\n        response,\n        config\n      );\n\n      // Fallback enforcement for environments without ReadableStream support\n      // (legacy runtimes). Detect materialized size from typed output; skip\n      // streams/Response passthrough since the user will read those themselves.\n      if (hasMaxContentLength && !supportsResponseStream && !isStreamResponse) {\n        let materializedSize;\n        if (responseData != null) {\n          if (typeof responseData.byteLength === 'number') {\n            materializedSize = responseData.byteLength;\n          } else if (typeof responseData.size === 'number') {\n            materializedSize = responseData.size;\n          } else if (typeof responseData === 'string') {\n            materializedSize =\n              typeof TextEncoder === 'function'\n                ? new TextEncoder().encode(responseData).byteLength\n                : responseData.length;\n          }\n        }\n        if (typeof materializedSize === 'number' && materializedSize > maxContentLength) {\n          throw new AxiosError(\n            'maxContentLength size of ' + maxContentLength + ' exceeded',\n            AxiosError.ERR_BAD_RESPONSE,\n            config,\n            request\n          );\n        }\n      }\n\n      !isStreamResponse && unsubscribe && unsubscribe();\n\n      return await new Promise((resolve, reject) => {\n        settle(resolve, reject, {\n          data: responseData,\n          headers: AxiosHeaders.from(response.headers),\n          status: response.status,\n          statusText: response.statusText,\n          config,\n          request,\n        });\n      });\n    } catch (err) {\n      unsubscribe && unsubscribe();\n\n      // Safari can surface fetch aborts as a DOMException-like object whose\n      // branded getters throw. Prefer our composed signal reason before reading\n      // the caught error, preserving timeout vs cancellation semantics.\n      if (composedSignal && composedSignal.aborted && composedSignal.reason instanceof AxiosError) {\n        const canceledError = composedSignal.reason;\n        canceledError.config = config;\n        request && (canceledError.request = request);\n        if (err !== canceledError) {\n          // Non-enumerable to match native Error `cause` semantics so loggers\n          // don't recurse into circular fetch internals (see #7205).\n          Object.defineProperty(canceledError, 'cause', {\n            __proto__: null,\n            value: err,\n            writable: true,\n            enumerable: false,\n            configurable: true,\n          });\n        }\n        throw canceledError;\n      }\n\n      // Surface a maxBodyLength violation we raised while the request body was\n      // being streamed. Matching by identity (rather than reading\n      // `err.cause.isAxiosError`) keeps the error deterministic across runtimes\n      // and avoids both prototype-pollution reads and mis-attributing a foreign\n      // AxiosError that merely happened to land in `err.cause`.\n      if (pendingBodyError) {\n        request && !pendingBodyError.request && (pendingBodyError.request = request);\n        throw pendingBodyError;\n      }\n\n      // Re-throw AxiosErrors we raised synchronously (data: URL / content-length\n      // pre-checks, response size enforcement) without re-wrapping them.\n      if (err instanceof AxiosError) {\n        request && !err.request && (err.request = request);\n        throw err;\n      }\n\n      if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {\n        const networkError = new AxiosError(\n          'Network Error',\n          AxiosError.ERR_NETWORK,\n          config,\n          request,\n          err && err.response\n        );\n        // Non-enumerable to match native Error `cause` semantics so loggers\n        // don't recurse into circular fetch internals (see #7205).\n        Object.defineProperty(networkError, 'cause', {\n          __proto__: null,\n          value: err.cause || err,\n          writable: true,\n          enumerable: false,\n          configurable: true,\n        });\n        throw networkError;\n      }\n\n      throw AxiosError.from(err, err && err.code, config, request, err && err.response);\n    }\n  };\n};\n\nconst seedCache = new Map();\n\nexport const getFetch = (config) => {\n  let env = (config && config.env) || {};\n  const { fetch, Request, Response } = env;\n  const seeds = [Request, Response, fetch];\n\n  let len = seeds.length,\n    i = len,\n    seed,\n    target,\n    map = seedCache;\n\n  while (i--) {\n    seed = seeds[i];\n    target = map.get(seed);\n\n    target === undefined && map.set(seed, (target = i ? new Map() : factory(env)));\n\n    map = target;\n  }\n\n  return target;\n};\n\nconst adapter = getFetch();\n\nexport default adapter;\n", "import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport * as fetchAdapter from './fetch.js';\nimport AxiosError from '../core/AxiosError.js';\n\n/**\n * Known adapters mapping.\n * Provides environment-specific adapters for Axios:\n * - `http` for Node.js\n * - `xhr` for browsers\n * - `fetch` for fetch API-based requests\n *\n * @type {Object<string, Function|Object>}\n */\nconst knownAdapters = {\n  http: httpAdapter,\n  xhr: xhrAdapter,\n  fetch: {\n    get: fetchAdapter.getFetch,\n  },\n};\n\n// Assign adapter names for easier debugging and identification\nutils.forEach(knownAdapters, (fn, value) => {\n  if (fn) {\n    try {\n      // Null-proto descriptors so a polluted Object.prototype.get cannot turn\n      // these data descriptors into accessor descriptors on the way in.\n      Object.defineProperty(fn, 'name', { __proto__: null, value });\n    } catch (e) {\n      // eslint-disable-next-line no-empty\n    }\n    Object.defineProperty(fn, 'adapterName', { __proto__: null, value });\n  }\n});\n\n/**\n * Render a rejection reason string for unknown or unsupported adapters\n *\n * @param {string} reason\n * @returns {string}\n */\nconst renderReason = (reason) => `- ${reason}`;\n\n/**\n * Check if the adapter is resolved (function, null, or false)\n *\n * @param {Function|null|false} adapter\n * @returns {boolean}\n */\nconst isResolvedHandle = (adapter) =>\n  utils.isFunction(adapter) || adapter === null || adapter === false;\n\n/**\n * Get the first suitable adapter from the provided list.\n * Tries each adapter in order until a supported one is found.\n * Throws an AxiosError if no adapter is suitable.\n *\n * @param {Array<string|Function>|string|Function} adapters - Adapter(s) by name or function.\n * @param {Object} config - Axios request configuration\n * @throws {AxiosError} If no suitable adapter is available\n * @returns {Function} The resolved adapter function\n */\nfunction getAdapter(adapters, config) {\n  adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n  const { length } = adapters;\n  let nameOrAdapter;\n  let adapter;\n\n  const rejectedReasons = {};\n\n  for (let i = 0; i < length; i++) {\n    nameOrAdapter = adapters[i];\n    let id;\n\n    adapter = nameOrAdapter;\n\n    if (!isResolvedHandle(nameOrAdapter)) {\n      adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n      if (adapter === undefined) {\n        throw new AxiosError(`Unknown adapter '${id}'`);\n      }\n    }\n\n    if (adapter && (utils.isFunction(adapter) || (adapter = adapter.get(config)))) {\n      break;\n    }\n\n    rejectedReasons[id || '#' + i] = adapter;\n  }\n\n  if (!adapter) {\n    const reasons = Object.entries(rejectedReasons).map(\n      ([id, state]) =>\n        `adapter ${id} ` +\n        (state === false ? 'is not supported by the environment' : 'is not available in the build')\n    );\n\n    let s = length\n      ? reasons.length > 1\n        ? 'since :\\n' + reasons.map(renderReason).join('\\n')\n        : ' ' + renderReason(reasons[0])\n      : 'as no adapter specified';\n\n    throw new AxiosError(\n      `There is no suitable adapter to dispatch the request ` + s,\n      AxiosError.ERR_NOT_SUPPORT\n    );\n  }\n\n  return adapter;\n}\n\n/**\n * Exports Axios adapters and utility to resolve an adapter\n */\nexport default {\n  /**\n   * Resolve an adapter from a list of adapter names or functions.\n   * @type {Function}\n   */\n  getAdapter,\n\n  /**\n   * Exposes all known adapters\n   * @type {Object<string, Function|Object>}\n   */\n  adapters: knownAdapters,\n};\n", "'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from '../adapters/adapters.js';\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n  if (config.cancelToken) {\n    config.cancelToken.throwIfRequested();\n  }\n\n  if (config.signal && config.signal.aborted) {\n    throw new CanceledError(null, config);\n  }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n  throwIfCancellationRequested(config);\n\n  config.headers = AxiosHeaders.from(config.headers);\n\n  // Transform request data\n  config.data = transformData.call(config, config.transformRequest);\n\n  if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n    config.headers.setContentType('application/x-www-form-urlencoded', false);\n  }\n\n  const adapter = adapters.getAdapter(config.adapter || defaults.adapter, config);\n\n  return adapter(config).then(\n    function onAdapterResolution(response) {\n      throwIfCancellationRequested(config);\n\n      // Expose the current response on config so that transformResponse can\n      // attach it to any AxiosError it throws (e.g. on JSON parse failure).\n      // We clean it up afterwards to avoid polluting the config object.\n      config.response = response;\n      try {\n        response.data = transformData.call(config, config.transformResponse, response);\n      } finally {\n        delete config.response;\n      }\n\n      response.headers = AxiosHeaders.from(response.headers);\n\n      return response;\n    },\n    function onAdapterRejection(reason) {\n      if (!isCancel(reason)) {\n        throwIfCancellationRequested(config);\n\n        // Transform response data\n        if (reason && reason.response) {\n          config.response = reason.response;\n          try {\n            reason.response.data = transformData.call(\n              config,\n              config.transformResponse,\n              reason.response\n            );\n          } finally {\n            delete config.response;\n          }\n          reason.response.headers = AxiosHeaders.from(reason.response.headers);\n        }\n      }\n\n      return Promise.reject(reason);\n    }\n  );\n}\n", "'use strict';\n\nimport { VERSION } from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n  validators[type] = function validator(thing) {\n    return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n  };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n  function formatMessage(opt, desc) {\n    return (\n      '[Axios v' +\n      VERSION +\n      \"] Transitional option '\" +\n      opt +\n      \"'\" +\n      desc +\n      (message ? '. ' + message : '')\n    );\n  }\n\n  // eslint-disable-next-line func-names\n  return (value, opt, opts) => {\n    if (validator === false) {\n      throw new AxiosError(\n        formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n        AxiosError.ERR_DEPRECATED\n      );\n    }\n\n    if (version && !deprecatedWarnings[opt]) {\n      deprecatedWarnings[opt] = true;\n      // eslint-disable-next-line no-console\n      console.warn(\n        formatMessage(\n          opt,\n          ' has been deprecated since v' + version + ' and will be removed in the near future'\n        )\n      );\n    }\n\n    return validator ? validator(value, opt, opts) : true;\n  };\n};\n\nvalidators.spelling = function spelling(correctSpelling) {\n  return (value, opt) => {\n    // eslint-disable-next-line no-console\n    console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n    return true;\n  };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n  if (typeof options !== 'object' || options === null) {\n    throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n  }\n  const keys = Object.keys(options);\n  let i = keys.length;\n  while (i-- > 0) {\n    const opt = keys[i];\n    // Use hasOwnProperty so a polluted Object.prototype.<opt> cannot supply\n    // a non-function validator and cause a TypeError.\n    const validator = Object.prototype.hasOwnProperty.call(schema, opt) ? schema[opt] : undefined;\n    if (validator) {\n      const value = options[opt];\n      const result = value === undefined || validator(value, opt, options);\n      if (result !== true) {\n        throw new AxiosError(\n          'option ' + opt + ' must be ' + result,\n          AxiosError.ERR_BAD_OPTION_VALUE\n        );\n      }\n      continue;\n    }\n    if (allowUnknown !== true) {\n      throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n    }\n  }\n}\n\nexport default {\n  assertOptions,\n  validators,\n};\n", "'use strict';\n\nimport utils from '../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\nimport transitionalDefaults from '../defaults/transitional.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n  constructor(instanceConfig) {\n    this.defaults = instanceConfig || {};\n    this.interceptors = {\n      request: new InterceptorManager(),\n      response: new InterceptorManager(),\n    };\n  }\n\n  /**\n   * Dispatch a request\n   *\n   * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n   * @param {?Object} config\n   *\n   * @returns {Promise} The Promise to be fulfilled\n   */\n  async request(configOrUrl, config) {\n    try {\n      return await this._request(configOrUrl, config);\n    } catch (err) {\n      if (err instanceof Error) {\n        let dummy = {};\n\n        Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n        // slice off the Error: ... line\n        const stack = (() => {\n          if (!dummy.stack) {\n            return '';\n          }\n\n          const firstNewlineIndex = dummy.stack.indexOf('\\n');\n\n          return firstNewlineIndex === -1 ? '' : dummy.stack.slice(firstNewlineIndex + 1);\n        })();\n        try {\n          if (!err.stack) {\n            err.stack = stack;\n            // match without the 2 top stack lines\n          } else if (stack) {\n            const firstNewlineIndex = stack.indexOf('\\n');\n            const secondNewlineIndex =\n              firstNewlineIndex === -1 ? -1 : stack.indexOf('\\n', firstNewlineIndex + 1);\n            const stackWithoutTwoTopLines =\n              secondNewlineIndex === -1 ? '' : stack.slice(secondNewlineIndex + 1);\n\n            if (!String(err.stack).endsWith(stackWithoutTwoTopLines)) {\n              err.stack += '\\n' + stack;\n            }\n          }\n        } catch (e) {\n          // ignore the case where \"stack\" is an un-writable property\n        }\n      }\n\n      throw err;\n    }\n  }\n\n  _request(configOrUrl, config) {\n    /*eslint no-param-reassign:0*/\n    // Allow for axios('example/url'[, config]) a la fetch API\n    if (typeof configOrUrl === 'string') {\n      config = config || {};\n      config.url = configOrUrl;\n    } else {\n      config = configOrUrl || {};\n    }\n\n    config = mergeConfig(this.defaults, config);\n\n    const { transitional, paramsSerializer, headers } = config;\n\n    if (transitional !== undefined) {\n      validator.assertOptions(\n        transitional,\n        {\n          silentJSONParsing: validators.transitional(validators.boolean),\n          forcedJSONParsing: validators.transitional(validators.boolean),\n          clarifyTimeoutError: validators.transitional(validators.boolean),\n          legacyInterceptorReqResOrdering: validators.transitional(validators.boolean),\n          advertiseZstdAcceptEncoding: validators.transitional(validators.boolean),\n          validateStatusUndefinedResolves: validators.transitional(validators.boolean),\n        },\n        false\n      );\n    }\n\n    if (paramsSerializer != null) {\n      if (utils.isFunction(paramsSerializer)) {\n        config.paramsSerializer = {\n          serialize: paramsSerializer,\n        };\n      } else {\n        validator.assertOptions(\n          paramsSerializer,\n          {\n            encode: validators.function,\n            serialize: validators.function,\n          },\n          true\n        );\n      }\n    }\n\n    // Set config.allowAbsoluteUrls\n    if (config.allowAbsoluteUrls !== undefined) {\n      // do nothing\n    } else if (this.defaults.allowAbsoluteUrls !== undefined) {\n      config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n    } else {\n      config.allowAbsoluteUrls = true;\n    }\n\n    validator.assertOptions(\n      config,\n      {\n        baseUrl: validators.spelling('baseURL'),\n        withXsrfToken: validators.spelling('withXSRFToken'),\n      },\n      true\n    );\n\n    // Set config.method\n    config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n    // Flatten headers\n    let contextHeaders = headers && utils.merge(headers.common, headers[config.method]);\n\n    headers &&\n      utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'query', 'common'], (method) => {\n        delete headers[method];\n      });\n\n    config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n    // filter out skipped interceptors\n    const requestInterceptorChain = [];\n    let synchronousRequestInterceptors = true;\n    this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n      if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n        return;\n      }\n\n      synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n      const transitional = config.transitional || transitionalDefaults;\n      const legacyInterceptorReqResOrdering =\n        transitional && transitional.legacyInterceptorReqResOrdering;\n\n      if (legacyInterceptorReqResOrdering) {\n        requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n      } else {\n        requestInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n      }\n    });\n\n    const responseInterceptorChain = [];\n    this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n      responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n    });\n\n    let promise;\n    let i = 0;\n    let len;\n\n    if (!synchronousRequestInterceptors) {\n      const chain = [dispatchRequest.bind(this), undefined];\n      chain.unshift(...requestInterceptorChain);\n      chain.push(...responseInterceptorChain);\n      len = chain.length;\n\n      promise = Promise.resolve(config);\n\n      while (i < len) {\n        promise = promise.then(chain[i++], chain[i++]);\n      }\n\n      return promise;\n    }\n\n    len = requestInterceptorChain.length;\n\n    let newConfig = config;\n\n    while (i < len) {\n      const onFulfilled = requestInterceptorChain[i++];\n      const onRejected = requestInterceptorChain[i++];\n      try {\n        newConfig = onFulfilled(newConfig);\n      } catch (error) {\n        onRejected.call(this, error);\n        break;\n      }\n    }\n\n    try {\n      promise = dispatchRequest.call(this, newConfig);\n    } catch (error) {\n      return Promise.reject(error);\n    }\n\n    i = 0;\n    len = responseInterceptorChain.length;\n\n    while (i < len) {\n      promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n    }\n\n    return promise;\n  }\n\n  getUri(config) {\n    config = mergeConfig(this.defaults, config);\n    const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls, config);\n    return buildURL(fullPath, config.params, config.paramsSerializer);\n  }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n  /*eslint func-names:0*/\n  Axios.prototype[method] = function (url, config) {\n    return this.request(\n      mergeConfig(config || {}, {\n        method,\n        url,\n        data: config && utils.hasOwnProp(config, 'data') ? config.data : undefined,\n      })\n    );\n  };\n});\n\nutils.forEach(['post', 'put', 'patch', 'query'], function forEachMethodWithData(method) {\n  function generateHTTPMethod(isForm) {\n    return function httpMethod(url, data, config) {\n      return this.request(\n        mergeConfig(config || {}, {\n          method,\n          headers: isForm\n            ? {\n                'Content-Type': 'multipart/form-data',\n              }\n            : {},\n          url,\n          data,\n        })\n      );\n    };\n  }\n\n  Axios.prototype[method] = generateHTTPMethod();\n\n  // QUERY is a safe/idempotent read method; multipart form bodies don't fit\n  // its semantics, so no queryForm shorthand is generated.\n  if (method !== 'query') {\n    Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n  }\n});\n\nexport default Axios;\n", "'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n  constructor(executor) {\n    if (typeof executor !== 'function') {\n      throw new TypeError('executor must be a function.');\n    }\n\n    let resolvePromise;\n\n    this.promise = new Promise(function promiseExecutor(resolve) {\n      resolvePromise = resolve;\n    });\n\n    const token = this;\n\n    // eslint-disable-next-line func-names\n    this.promise.then((cancel) => {\n      if (!token._listeners) return;\n\n      let i = token._listeners.length;\n\n      while (i-- > 0) {\n        token._listeners[i](cancel);\n      }\n      token._listeners = null;\n    });\n\n    // eslint-disable-next-line func-names\n    this.promise.then = (onfulfilled) => {\n      let _resolve;\n      // eslint-disable-next-line func-names\n      const promise = new Promise((resolve) => {\n        token.subscribe(resolve);\n        _resolve = resolve;\n      }).then(onfulfilled);\n\n      promise.cancel = function reject() {\n        token.unsubscribe(_resolve);\n      };\n\n      return promise;\n    };\n\n    executor(function cancel(message, config, request) {\n      if (token.reason) {\n        // Cancellation has already been requested\n        return;\n      }\n\n      token.reason = new CanceledError(message, config, request);\n      resolvePromise(token.reason);\n    });\n  }\n\n  /**\n   * Throws a `CanceledError` if cancellation has been requested.\n   */\n  throwIfRequested() {\n    if (this.reason) {\n      throw this.reason;\n    }\n  }\n\n  /**\n   * Subscribe to the cancel signal\n   */\n\n  subscribe(listener) {\n    if (this.reason) {\n      listener(this.reason);\n      return;\n    }\n\n    if (this._listeners) {\n      this._listeners.push(listener);\n    } else {\n      this._listeners = [listener];\n    }\n  }\n\n  /**\n   * Unsubscribe from the cancel signal\n   */\n\n  unsubscribe(listener) {\n    if (!this._listeners) {\n      return;\n    }\n    const index = this._listeners.indexOf(listener);\n    if (index !== -1) {\n      this._listeners.splice(index, 1);\n    }\n  }\n\n  toAbortSignal() {\n    const controller = new AbortController();\n\n    const abort = (err) => {\n      controller.abort(err);\n    };\n\n    this.subscribe(abort);\n\n    controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n    return controller.signal;\n  }\n\n  /**\n   * Returns an object that contains a new `CancelToken` and a function that, when called,\n   * cancels the `CancelToken`.\n   */\n  static source() {\n    let cancel;\n    const token = new CancelToken(function executor(c) {\n      cancel = c;\n    });\n    return {\n      token,\n      cancel,\n    };\n  }\n}\n\nexport default CancelToken;\n", "'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n *  ```js\n *  function f(x, y, z) {}\n *  const args = [1, 2, 3];\n *  f.apply(null, args);\n *  ```\n *\n * With `spread` this example can be re-written.\n *\n *  ```js\n *  spread(function(x, y, z) {})([1, 2, 3]);\n *  ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n  return function wrap(arr) {\n    return callback.apply(null, arr);\n  };\n}\n", "'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n  return utils.isObject(payload) && payload.isAxiosError === true;\n}\n", "const HttpStatusCode = {\n  Continue: 100,\n  SwitchingProtocols: 101,\n  Processing: 102,\n  EarlyHints: 103,\n  Ok: 200,\n  Created: 201,\n  Accepted: 202,\n  NonAuthoritativeInformation: 203,\n  NoContent: 204,\n  ResetContent: 205,\n  PartialContent: 206,\n  MultiStatus: 207,\n  AlreadyReported: 208,\n  ImUsed: 226,\n  MultipleChoices: 300,\n  MovedPermanently: 301,\n  Found: 302,\n  SeeOther: 303,\n  NotModified: 304,\n  UseProxy: 305,\n  Unused: 306,\n  TemporaryRedirect: 307,\n  PermanentRedirect: 308,\n  BadRequest: 400,\n  Unauthorized: 401,\n  PaymentRequired: 402,\n  Forbidden: 403,\n  NotFound: 404,\n  MethodNotAllowed: 405,\n  NotAcceptable: 406,\n  ProxyAuthenticationRequired: 407,\n  RequestTimeout: 408,\n  Conflict: 409,\n  Gone: 410,\n  LengthRequired: 411,\n  PreconditionFailed: 412,\n  PayloadTooLarge: 413,\n  UriTooLong: 414,\n  UnsupportedMediaType: 415,\n  RangeNotSatisfiable: 416,\n  ExpectationFailed: 417,\n  ImATeapot: 418,\n  MisdirectedRequest: 421,\n  UnprocessableEntity: 422,\n  Locked: 423,\n  FailedDependency: 424,\n  TooEarly: 425,\n  UpgradeRequired: 426,\n  PreconditionRequired: 428,\n  TooManyRequests: 429,\n  RequestHeaderFieldsTooLarge: 431,\n  UnavailableForLegalReasons: 451,\n  InternalServerError: 500,\n  NotImplemented: 501,\n  BadGateway: 502,\n  ServiceUnavailable: 503,\n  GatewayTimeout: 504,\n  HttpVersionNotSupported: 505,\n  VariantAlsoNegotiates: 506,\n  InsufficientStorage: 507,\n  LoopDetected: 508,\n  NotExtended: 510,\n  NetworkAuthenticationRequired: 511,\n  WebServerIsDown: 521,\n  ConnectionTimedOut: 522,\n  OriginIsUnreachable: 523,\n  TimeoutOccurred: 524,\n  SslHandshakeFailed: 525,\n  InvalidSslCertificate: 526,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n  HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n", "'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport { VERSION } from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from './core/AxiosHeaders.js';\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n  const context = new Axios(defaultConfig);\n  const instance = bind(Axios.prototype.request, context);\n\n  // Copy axios.prototype to instance\n  utils.extend(instance, Axios.prototype, context, { allOwnKeys: true });\n\n  // Copy context to instance\n  utils.extend(instance, context, null, { allOwnKeys: true });\n\n  // Factory for creating new instances\n  instance.create = function create(instanceConfig) {\n    return createInstance(mergeConfig(defaultConfig, instanceConfig));\n  };\n\n  return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n  return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = (thing) => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios;\n", "import isRetryAllowed from 'is-retry-allowed';\nexport const namespace = 'axios-retry';\nexport function isNetworkError(error) {\n    const CODE_EXCLUDE_LIST = ['ERR_CANCELED', 'ECONNABORTED'];\n    if (error.response) {\n        return false;\n    }\n    if (!error.code) {\n        return false;\n    }\n    // Prevents retrying timed out & cancelled requests\n    if (CODE_EXCLUDE_LIST.includes(error.code)) {\n        return false;\n    }\n    // Prevents retrying unsafe errors\n    return isRetryAllowed(error);\n}\nconst SAFE_HTTP_METHODS = ['get', 'head', 'options'];\nconst IDEMPOTENT_HTTP_METHODS = SAFE_HTTP_METHODS.concat(['put', 'delete']);\nexport function isRetryableError(error) {\n    return (error.code !== 'ECONNABORTED' &&\n        (!error.response ||\n            error.response.status === 429 ||\n            (error.response.status >= 500 && error.response.status <= 599)));\n}\nexport function isSafeRequestError(error) {\n    if (!error.config?.method) {\n        // Cannot determine if the request can be retried\n        return false;\n    }\n    return isRetryableError(error) && SAFE_HTTP_METHODS.indexOf(error.config.method) !== -1;\n}\nexport function isIdempotentRequestError(error) {\n    if (!error.config?.method) {\n        // Cannot determine if the request can be retried\n        return false;\n    }\n    return isRetryableError(error) && IDEMPOTENT_HTTP_METHODS.indexOf(error.config.method) !== -1;\n}\nexport function isNetworkOrIdempotentRequestError(error) {\n    return isNetworkError(error) || isIdempotentRequestError(error);\n}\nexport function retryAfter(error = undefined) {\n    const retryAfterHeader = error?.response?.headers['retry-after'];\n    if (!retryAfterHeader) {\n        return 0;\n    }\n    // if the retry after header is a number, convert it to milliseconds\n    let retryAfterMs = (Number(retryAfterHeader) || 0) * 1000;\n    // If the retry after header is a date, get the number of milliseconds until that date\n    if (retryAfterMs === 0) {\n        retryAfterMs = (new Date(retryAfterHeader).valueOf() || 0) - Date.now();\n    }\n    return Math.max(0, retryAfterMs);\n}\nfunction noDelay(_retryNumber = 0, error = undefined) {\n    return Math.max(0, retryAfter(error));\n}\nexport function exponentialDelay(retryNumber = 0, error = undefined, delayFactor = 100) {\n    const calculatedDelay = 2 ** retryNumber * delayFactor;\n    const delay = Math.max(calculatedDelay, retryAfter(error));\n    const randomSum = delay * 0.2 * Math.random(); // 0-20% of the delay\n    return delay + randomSum;\n}\n/**\n * Linear delay\n * @param {number | undefined} delayFactor - delay factor in milliseconds (default: 100)\n * @returns {function} (retryNumber: number, error: AxiosError | undefined) => number\n */\nexport function linearDelay(delayFactor = 100) {\n    return (retryNumber = 0, error = undefined) => {\n        const delay = retryNumber * delayFactor;\n        return Math.max(delay, retryAfter(error));\n    };\n}\nexport const DEFAULT_OPTIONS = {\n    retries: 3,\n    retryCondition: isNetworkOrIdempotentRequestError,\n    retryDelay: noDelay,\n    shouldResetTimeout: false,\n    onRetry: () => { },\n    onMaxRetryTimesExceeded: () => { },\n    validateResponse: null\n};\nfunction getRequestOptions(config, defaultOptions) {\n    return { ...DEFAULT_OPTIONS, ...defaultOptions, ...config[namespace] };\n}\nfunction setCurrentState(config, defaultOptions, resetLastRequestTime = false) {\n    const currentState = getRequestOptions(config, defaultOptions || {});\n    currentState.retryCount = currentState.retryCount || 0;\n    if (!currentState.lastRequestTime || resetLastRequestTime) {\n        currentState.lastRequestTime = Date.now();\n    }\n    config[namespace] = currentState;\n    return currentState;\n}\nfunction fixConfig(axiosInstance, config) {\n    // @ts-ignore\n    if (axiosInstance.defaults.agent === config.agent) {\n        // @ts-ignore\n        delete config.agent;\n    }\n    if (axiosInstance.defaults.httpAgent === config.httpAgent) {\n        delete config.httpAgent;\n    }\n    if (axiosInstance.defaults.httpsAgent === config.httpsAgent) {\n        delete config.httpsAgent;\n    }\n}\nasync function shouldRetry(currentState, error) {\n    const { retries, retryCondition } = currentState;\n    const shouldRetryOrPromise = (currentState.retryCount || 0) < retries && retryCondition(error);\n    // This could be a promise\n    if (typeof shouldRetryOrPromise === 'object') {\n        try {\n            const shouldRetryPromiseResult = await shouldRetryOrPromise;\n            // keep return true unless shouldRetryPromiseResult return false for compatibility\n            return shouldRetryPromiseResult !== false;\n        }\n        catch (_err) {\n            return false;\n        }\n    }\n    return shouldRetryOrPromise;\n}\nasync function handleRetry(axiosInstance, currentState, error, config) {\n    currentState.retryCount += 1;\n    const { retryDelay, shouldResetTimeout, onRetry } = currentState;\n    const delay = retryDelay(currentState.retryCount, error);\n    // Axios fails merging this configuration to the default configuration because it has an issue\n    // with circular structures: https://github.com/mzabriskie/axios/issues/370\n    fixConfig(axiosInstance, config);\n    if (!shouldResetTimeout && config.timeout && currentState.lastRequestTime) {\n        const lastRequestDuration = Date.now() - currentState.lastRequestTime;\n        const timeout = config.timeout - lastRequestDuration - delay;\n        if (timeout <= 0) {\n            return Promise.reject(error);\n        }\n        config.timeout = timeout;\n    }\n    config.transformRequest = [(data) => data];\n    await onRetry(currentState.retryCount, error, config);\n    if (config.signal?.aborted) {\n        return Promise.resolve(axiosInstance(config));\n    }\n    return new Promise((resolve) => {\n        const abortListener = () => {\n            clearTimeout(timeout);\n            resolve(axiosInstance(config));\n        };\n        const timeout = setTimeout(() => {\n            resolve(axiosInstance(config));\n            if (config.signal?.removeEventListener) {\n                config.signal.removeEventListener('abort', abortListener);\n            }\n        }, delay);\n        if (config.signal?.addEventListener) {\n            config.signal.addEventListener('abort', abortListener, { once: true });\n        }\n    });\n}\nasync function handleMaxRetryTimesExceeded(currentState, error) {\n    if (currentState.retryCount >= currentState.retries)\n        await currentState.onMaxRetryTimesExceeded(error, currentState.retryCount);\n}\nconst axiosRetry = (axiosInstance, defaultOptions) => {\n    const requestInterceptorId = axiosInstance.interceptors.request.use((config) => {\n        setCurrentState(config, defaultOptions, true);\n        if (config[namespace]?.validateResponse) {\n            // by setting this, all HTTP responses will be go through the error interceptor first\n            config.validateStatus = () => false;\n        }\n        return config;\n    });\n    const responseInterceptorId = axiosInstance.interceptors.response.use(null, async (error) => {\n        const { config } = error;\n        // If we have no information to retry the request\n        if (!config) {\n            return Promise.reject(error);\n        }\n        const currentState = setCurrentState(config, defaultOptions);\n        if (error.response && currentState.validateResponse?.(error.response)) {\n            // no issue with response\n            return error.response;\n        }\n        if (await shouldRetry(currentState, error)) {\n            return handleRetry(axiosInstance, currentState, error, config);\n        }\n        await handleMaxRetryTimesExceeded(currentState, error);\n        return Promise.reject(error);\n    });\n    return { requestInterceptorId, responseInterceptorId };\n};\n// Compatibility with CommonJS\naxiosRetry.isNetworkError = isNetworkError;\naxiosRetry.isSafeRequestError = isSafeRequestError;\naxiosRetry.isIdempotentRequestError = isIdempotentRequestError;\naxiosRetry.isNetworkOrIdempotentRequestError = isNetworkOrIdempotentRequestError;\naxiosRetry.exponentialDelay = exponentialDelay;\naxiosRetry.linearDelay = linearDelay;\naxiosRetry.isRetryableError = isRetryableError;\nexport default axiosRetry;\n", "import * as common from '../common'\nimport * as gen from '../gen/runtime'\nimport * as types from '../types'\n\ntype IClient = common.types.Simplify<gen.Client>\nexport type Operation = common.types.Operation<IClient>\nexport type ClientInputs = common.types.Inputs<IClient>\nexport type ClientOutputs = common.types.Outputs<IClient>\n\nexport type ClientProps = common.types.CommonClientProps & {\n  token: string\n  botId: string\n  integrationId?: string\n  integrationAlias?: string\n}\n\nexport class Client extends gen.Client {\n  public readonly config: Readonly<types.ClientConfig>\n\n  public constructor(clientProps: ClientProps) {\n    const clientConfig = common.config.getClientConfig(clientProps)\n    const axiosInstance = common.axios.createAxiosInstance(clientConfig, clientProps.retry)\n\n    super(axiosInstance, {\n      toApiError: common.errors.toApiError,\n    })\n\n    this.config = clientConfig\n  }\n\n  public get list() {\n    type ListInputs = common.types.ListInputs<IClient>\n    return {\n      conversations: (props: ListInputs['listConversations']) =>\n        new common.listing.AsyncCollection(({ nextToken }) =>\n          this.listConversations({ nextToken, ...props }).then((r) => ({ ...r, items: r.conversations }))\n        ),\n      participants: (props: ListInputs['listParticipants']) =>\n        new common.listing.AsyncCollection(({ nextToken }) =>\n          this.listParticipants({ nextToken, ...props }).then((r) => ({ ...r, items: r.participants }))\n        ),\n      events: (props: ListInputs['listEvents']) =>\n        new common.listing.AsyncCollection(({ nextToken }) =>\n          this.listEvents({ nextToken, ...props }).then((r) => ({ ...r, items: r.events }))\n        ),\n      messages: (props: ListInputs['listMessages']) =>\n        new common.listing.AsyncCollection(({ nextToken }) =>\n          this.listMessages({ nextToken, ...props }).then((r) => ({ ...r, items: r.messages }))\n        ),\n      users: (props: ListInputs['listUsers']) =>\n        new common.listing.AsyncCollection(({ nextToken }) =>\n          this.listUsers({ nextToken, ...props }).then((r) => ({ ...r, items: r.users }))\n        ),\n    }\n  }\n}\n", "import { isNode } from 'browser-or-node'\nimport http from 'http'\nimport https from 'https'\n\nconst _100mb = 100 * 1024 * 1024\n\nexport const maxBodyLength = _100mb\nexport const maxContentLength = _100mb\nexport const httpAgent = isNode && http && http.Agent ? new http.Agent({ keepAlive: true }) : undefined\nexport const httpsAgent = isNode && https && https.Agent ? new https.Agent({ keepAlive: true }) : undefined\n", "import { isBrowser, isNode } from 'browser-or-node'\nimport * as types from './types'\n\nconst defaultApiUrl = 'https://botruntime.ru'\nexport const DEFAULT_API_REQUEST_TIMEOUT_MS = 125_000\n// An action may spend up to 30s in the host queue, 30s in process startup, and\n// 119s in integration execution. The 190s transport budget covers that 179s\n// lifecycle with 11s left for request/response transit. This longer value is\n// action-specific; other API calls retain the released 125-second default.\nexport const DEFAULT_ACTION_REQUEST_TIMEOUT_MS = 190_000\nconst defaultDebug = false\n\nconst apiUrlEnvName = 'BP_API_URL'\nconst botIdEnvName = 'BP_BOT_ID'\nconst integrationIdEnvName = 'BP_INTEGRATION_ID'\nconst workspaceIdEnvName = 'BP_WORKSPACE_ID'\nconst tokenEnvName = 'BP_TOKEN'\n\ntype AnyClientProps = types.CommonClientProps & {\n  integrationId?: string\n  integrationAlias?: string\n  workspaceId?: string\n  botId?: string\n  token?: string\n}\n\nexport function getClientConfig(clientProps: AnyClientProps): types.ClientConfig {\n  const props = readEnvConfig(clientProps)\n\n  let headers: Record<string, string | string[]> = {}\n\n  if (props.workspaceId) {\n    headers['x-workspace-id'] = props.workspaceId\n  }\n\n  if (props.botId) {\n    headers['x-bot-id'] = props.botId\n  }\n\n  if (props.integrationId) {\n    headers['x-integration-id'] = props.integrationId\n  }\n\n  if (props.integrationAlias) {\n    headers['x-integration-alias'] = props.integrationAlias\n  }\n\n  if (props.token) {\n    headers.Authorization = `Bearer ${props.token}`\n  }\n\n  headers = {\n    ...headers,\n    ...props.headers,\n  }\n\n  const apiUrl = props.apiUrl ?? defaultApiUrl\n  const timeout = props.timeout ?? DEFAULT_API_REQUEST_TIMEOUT_MS\n  const actionTransportTimeoutMs = props.timeout ?? DEFAULT_ACTION_REQUEST_TIMEOUT_MS\n  const debug = props.debug ?? defaultDebug\n\n  return {\n    apiUrl,\n    timeout,\n    actionTransportTimeoutMs,\n    actionTimeoutMs: props.actionTimeoutMs,\n    withCredentials: isBrowser,\n    headers,\n    debug,\n  }\n}\n\nfunction readEnvConfig(props: AnyClientProps): AnyClientProps {\n  if (isBrowser) {\n    return getBrowserConfig(props)\n  }\n\n  if (isNode) {\n    return getNodeConfig(props)\n  }\n\n  return props\n}\n\nfunction getNodeConfig(props: AnyClientProps): AnyClientProps {\n  const config: AnyClientProps = {\n    ...props,\n    apiUrl: props.apiUrl ?? process.env[apiUrlEnvName],\n    botId: props.botId ?? process.env[botIdEnvName],\n    integrationId: props.integrationId ?? process.env[integrationIdEnvName],\n    integrationAlias: props.integrationAlias,\n    workspaceId: props.workspaceId ?? process.env[workspaceIdEnvName],\n  }\n\n  const token = config.token ?? process.env[tokenEnvName]\n\n  if (token) {\n    config.token = token\n  }\n\n  return config\n}\n\nfunction getBrowserConfig(props: AnyClientProps): AnyClientProps {\n  return props\n}\n", "export type PageLister<R> = (t: { nextToken?: string }) => Promise<{ items: R[]; meta: { nextToken?: string } }>\nexport class AsyncCollection<T> {\n  public constructor(private _list: PageLister<T>) {}\n\n  public async *[Symbol.asyncIterator]() {\n    let nextToken: string | undefined\n    do {\n      const { items, meta } = await this._list({ nextToken })\n      nextToken = meta.nextToken\n      for (const item of items) {\n        yield item\n      }\n    } while (nextToken)\n  }\n\n  public async collect(props: { limit?: number } = {}) {\n    const limit = props.limit ?? Number.POSITIVE_INFINITY\n    const arr: T[] = []\n    let count = 0\n    for await (const item of this) {\n      arr.push(item)\n      count++\n      if (count >= limit) {\n        break\n      }\n    }\n    return arr\n  }\n}\n", "import * as axios from 'axios'\nimport axiosRetry from 'axios-retry'\nimport * as consts from './consts'\nimport { DEFAULT_ACTION_REQUEST_TIMEOUT_MS } from './config'\nimport * as interceptors from './debug-interceptors'\nimport * as types from './types'\n\nexport const ACTION_TIMEOUT_HEADER = 'x-bp-action-timeout-ms'\nconst CALL_ACTION_PATH = '/v1/chat/actions'\nconst ACTION_TIMEOUT_APPLIED = 'botruntime-action-timeout-applied'\n\ntype ActionRequestConfig = axios.InternalAxiosRequestConfig & {\n  [ACTION_TIMEOUT_APPLIED]?: true\n}\n\nconst createAxios = (config: types.ClientConfig): axios.AxiosRequestConfig => ({\n  baseURL: config.apiUrl,\n  headers: config.headers,\n  withCredentials: config.withCredentials,\n  timeout: config.timeout,\n  maxBodyLength: consts.maxBodyLength,\n  maxContentLength: consts.maxContentLength,\n  httpAgent: consts.httpAgent,\n  httpsAgent: consts.httpsAgent,\n})\n\nconst isCallActionRequest = (request: axios.InternalAxiosRequestConfig): boolean => {\n  if (request.method?.toLowerCase() !== 'post' || !request.url) {\n    return false\n  }\n\n  try {\n    return new URL(request.url, 'https://botruntime.invalid').pathname === CALL_ACTION_PATH\n  } catch {\n    return false\n  }\n}\n\nconst boundedTransportTimeout = (timeout: unknown): number => {\n  // Axios uses zero to mean no transport timeout. Such a client can safely\n  // advertise the platform ceiling, but invalid or sub-millisecond values\n  // cannot support an honest positive millisecond budget and fail closed.\n  if (timeout === 0) {\n    return DEFAULT_ACTION_REQUEST_TIMEOUT_MS\n  }\n  if (typeof timeout !== 'number' || !Number.isFinite(timeout) || timeout < 1) {\n    return 0\n  }\n  return Math.min(Math.floor(timeout), DEFAULT_ACTION_REQUEST_TIMEOUT_MS)\n}\n\nconst boundedActionTimeout = (value: number | (() => number) | undefined): number => {\n  if (value === undefined) {\n    return DEFAULT_ACTION_REQUEST_TIMEOUT_MS\n  }\n\n  let resolved: number\n  try {\n    resolved = typeof value === 'function' ? value() : value\n  } catch {\n    return 0\n  }\n  if (!Number.isFinite(resolved) || resolved < 1) {\n    return 0\n  }\n  return Math.min(Math.floor(resolved), DEFAULT_ACTION_REQUEST_TIMEOUT_MS)\n}\n\nconst installActionTimeoutHeader = (\n  instance: axios.AxiosInstance,\n  config: types.ClientConfig,\n): void => {\n  instance.interceptors.request.use((request) => {\n    const actionRequest = request as ActionRequestConfig\n    const headers = axios.AxiosHeaders.from(request.headers)\n    // This is a platform-owned capability signal. Ignore a caller-supplied\n    // value and never leak it onto non-action endpoints.\n    headers.delete(ACTION_TIMEOUT_HEADER)\n    request.headers = headers\n\n    if (!isCallActionRequest(request)) {\n      return request\n    }\n\n    if (!actionRequest[ACTION_TIMEOUT_APPLIED]) {\n      // Generated calls inherit the ordinary instance timeout. Replace that\n      // inherited value with the action-specific transport budget, while\n      // preserving a lower-level caller's explicit per-request override.\n      if (request.timeout === config.timeout) {\n        request.timeout = config.actionTransportTimeoutMs ?? config.timeout\n      }\n      actionRequest[ACTION_TIMEOUT_APPLIED] = true\n    }\n\n    const transportTimeout = boundedTransportTimeout(request.timeout)\n    const actionTimeout = boundedActionTimeout(config.actionTimeoutMs)\n    // Relative milliseconds are deliberate: unlike an absolute timestamp,\n    // this remains correct across client/server clock skew. It is a bounded\n    // upper limit, not permission to truncate a handler after it has started.\n    headers.set(ACTION_TIMEOUT_HEADER, String(Math.min(transportTimeout, actionTimeout)))\n    return request\n  })\n}\n\nexport const createAxiosInstance = (\n  config: types.ClientConfig,\n  retry?: types.RetryConfig,\n): axios.AxiosInstance => {\n  const axiosConfig = createAxios(config)\n  const axiosInstance = axios.default.create(axiosConfig)\n\n  if (config.debug) {\n    interceptors.addDebugInterceptors(axiosInstance)\n  }\n  installActionTimeoutHeader(axiosInstance, config)\n  if (retry) {\n    axiosRetry(axiosInstance, retry)\n  }\n  installAxiosErrorFidelity(axiosInstance)\n\n  return axiosInstance\n}\n\nexport const installAxiosErrorFidelity = (instance: axios.AxiosInstance): void => {\n  instance.interceptors.response.use(undefined, (error: unknown) => {\n    if (!axios.isAxiosError(error) || !(error instanceof Error)) return Promise.reject(error)\n\n    // Axios 1.7.8+ calls Error.captureStackTrace with a plain object after the\n    // interceptor chain, but only when the rejection is still an Error. Bun rejects\n    // that target and masks the API response, so this interceptor must stay after\n    // retry and deliberately reject an Axios-compatible non-Error snapshot.\n    return Promise.reject({\n      isAxiosError: true,\n      name: error.name,\n      message: error.message,\n      code: error.code,\n      config: error.config,\n      request: error.request,\n      response: error.response,\n      status: error.status,\n      stack: error.stack,\n      // Preserve the real transport Error for UnknownError/debugging paths.\n      cause: error,\n    } satisfies Partial<axios.AxiosError> & { isAxiosError: true; cause: Error })\n  })\n}\n", "import * as axios from 'axios'\nimport { isNode } from 'browser-or-node'\nlet randomUUID: () => string\nif (isNode) {\n  randomUUID = require('crypto').randomUUID\n} else if (typeof crypto !== 'undefined' && crypto.randomUUID) {\n  randomUUID = () => crypto.randomUUID()\n} else {\n  randomUUID = () => Math.random().toString(36).substring(2, 15)\n}\n\ntype AxiosRequestConfigWithMetadata<T = unknown> = {\n  headers: axios.AxiosRequestHeaders\n  metadata?: {\n    id?: string\n    startTime?: number\n  }\n} & axios.AxiosRequestConfig<T>\n\ntype AxiosResponseWithMetadata<T = unknown, D = unknown> = {\n  config: AxiosRequestConfigWithMetadata<D>\n} & axios.AxiosResponse<T, D>\n\ntype AxiosErrorWithMetadata<T = unknown, D = unknown> = {\n  config: AxiosRequestConfigWithMetadata<D>\n} & axios.AxiosError<T, D>\n\nexport const addDebugInterceptors = (axiosInstance: axios.AxiosInstance) => {\n  axiosInstance.interceptors.request.use((config: AxiosRequestConfigWithMetadata) => {\n    config.metadata = { startTime: new Date().getTime(), id: randomUUID() }\n    console.debug(_formatRequestLog(config))\n    return config\n  })\n\n  axiosInstance.interceptors.response.use(\n    (response) => {\n      console.debug(_formatResponseLog(response))\n      return response\n    },\n\n    (error) => {\n      console.debug(_formatErrorLog(error))\n      return Promise.reject(error)\n    }\n  )\n}\n\nconst _formatRequestLog = (config: AxiosRequestConfigWithMetadata): string => {\n  const { method, url, headers, data } = config\n\n  const fullUrl = config.baseURL ? new URL(url!, config.baseURL).toString() : url\n\n  return (\n    'REQUEST: ' +\n    JSON.stringify({\n      method: method?.toUpperCase(),\n      url: fullUrl,\n      timestamp: new Date().toISOString(),\n      requestId: config.metadata?.id,\n      headers,\n      body: data,\n    }) +\n    '\\n'\n  )\n}\n\nconst _formatResponseLog = (response: AxiosResponseWithMetadata): string => {\n  const { config, status, headers, data } = response\n  const duration = _formatDuration(response)\n  const fullUrl = config.baseURL ? new URL(response.config.url!, config.baseURL).toString() : response.config.url\n\n  return (\n    'RESPONSE: ' +\n    JSON.stringify({\n      method: config.method?.toUpperCase(),\n      status,\n      url: fullUrl,\n      timestamp: new Date().toISOString(),\n      requestId: config.metadata?.id,\n      duration,\n      headers,\n      body: data,\n    }) +\n    '\\n'\n  )\n}\n\nconst _formatErrorLog = (error: AxiosErrorWithMetadata): string => {\n  const duration = error ? _formatDuration(error) : 'N/A'\n  const fullUrl = error.config.baseURL ? new URL(error.config.url!, error.config.baseURL).toString() : error.config.url\n\n  return (\n    'ERROR: ' +\n    JSON.stringify({\n      status: error.code,\n      url: fullUrl,\n      timestamp: new Date().toISOString(),\n      requestId: error.config.metadata?.id ?? 'N/A',\n      duration,\n    })\n  )\n}\n\nconst _formatDuration = (response: AxiosResponseWithMetadata | AxiosErrorWithMetadata) => {\n  const startTime = response.config.metadata?.startTime\n  const endTime = new Date().getTime()\n  const duration = startTime ? `${endTime - startTime}ms` : 'N/A'\n  return duration\n}\n", "import axios, { type AxiosError } from 'axios'\nimport * as errors from '../errors'\n\nconst CALL_ACTION_PATH = '/v1/chat/actions'\nconst conservativeActionMetadata = (): Readonly<Record<string, unknown>> =>\n  Object.freeze({\n    errorKind: 'integration_execution',\n    executionCode: 'transport_outcome_unknown',\n    executionState: 'outcome_unknown',\n    retryable: false,\n  })\n\n// errors.errorFrom is GENERATED code (src/gen/public/errors.ts, ADR-0005) that bun run\n// generate overwrites wholesale \u2014 it must never be hand-patched, so its two known\n// crash-prone inputs are guarded HERE, at this owned boundary, instead:\n//   - `typeof null === 'object'` slips past errorFrom's own object-shape gate into\n//     `'code' in null`, which throws. normalizeForGen() pre-empts this one outright by\n//     routing null through errorFrom's own `instanceof Error` branch instead.\n//   - an object with a circular reference reaches JSON.stringify deep inside errorFrom and\n//     throws \"Converting circular structure to JSON\". normalizeForGen() can't anticipate\n//     every such shape, so safeErrorFrom()'s try/catch is the general backstop: errorFrom is\n//     the error HANDLER, so letting a crash inside it propagate would replace the real cause\n//     with an unrelated TypeError \u2014 the same masking this whole file exists to prevent.\nconst normalizeForGen = (err: unknown): unknown => (err === null ? new Error('null') : err)\n\nconst safeErrorFrom = (err: unknown): errors.ApiError => {\n  try {\n    return errors.errorFrom(normalizeForGen(err))\n  }\n  catch {\n    return new errors.UnknownError(String(err), toErrorCause(err))\n  }\n}\n\nconst preserveWireCode = (apiError: errors.ApiError, envelope: unknown): errors.ApiError => {\n  if (\n    typeof envelope === 'object'\n    && envelope !== null\n    && 'code' in envelope\n    && typeof envelope.code === 'number'\n    && apiError.code !== envelope.code\n  ) {\n    // Generated Botpress classes use their canonical status (for example,\n    // InternalError=500), while an owned gateway may legitimately return the\n    // same type with HTTP 502. The received envelope is authoritative for\n    // retry/telemetry, so retain its exact code instead of silently rewriting it.\n    Object.defineProperty(apiError, 'code', { value: envelope.code, enumerable: true })\n  }\n  return apiError\n}\n\n// UnknownError's `error` field is typed as Error \u2014 wrap non-Error causes (e.g. the circular\n// object itself) via the native `cause` option so the original value stays reachable at\n// `.error.cause` instead of being discarded, without widening the field's type.\nconst toErrorCause = (err: unknown): Error => {\n  if (err instanceof Error) return err\n  if (typeof err === 'object' && err !== null && 'cause' in err && err.cause instanceof Error) return err.cause\n  return new Error(String(err), { cause: err })\n}\n\nconst isCallActionError = (err: AxiosError): boolean => {\n  if (err.config?.method?.toLowerCase() !== 'post' || !err.config.url) {\n    return false\n  }\n\n  try {\n    return new URL(err.config.url, 'https://botruntime.invalid').pathname === CALL_ACTION_PATH\n  }\n  catch {\n    return false\n  }\n}\n\nconst validIntegrationExecutionMetadata = (\n  envelope: unknown,\n): Readonly<Record<string, unknown>> | undefined => {\n  if (typeof envelope !== 'object' || envelope === null) {\n    return undefined\n  }\n  const metadata = (envelope as { metadata?: unknown }).metadata\n  if (typeof metadata !== 'object' || metadata === null) {\n    return undefined\n  }\n  const execution = metadata as {\n    errorKind?: unknown\n    executionCode?: unknown\n    executionState?: unknown\n    retryable?: unknown\n  }\n  if (\n    execution.errorKind !== 'integration_execution'\n    || typeof execution.executionCode !== 'string'\n    || execution.executionCode.length === 0\n    || (\n      execution.executionState !== 'not_started'\n      && execution.executionState !== 'outcome_unknown'\n    )\n    || typeof execution.retryable !== 'boolean'\n  ) {\n    return undefined\n  }\n  return Object.freeze({\n    errorKind: 'integration_execution',\n    executionCode: execution.executionCode,\n    executionState: execution.executionState,\n    retryable: execution.retryable,\n  })\n}\n\nconst attachActionExecutionMetadata = (\n  apiError: Error,\n  transportError: AxiosError,\n): Error => {\n  if (!isCallActionError(transportError)) {\n    return apiError\n  }\n\n  // A response-less or legacy/untyped action failure may already have crossed\n  // the provider boundary. Make that ambiguity explicit so downstream durable\n  // retries cannot replay it. Only the server's complete fixed metadata may\n  // prove that execution did not start.\n  const metadata =\n    validIntegrationExecutionMetadata(transportError.response?.data)\n    ?? conservativeActionMetadata()\n  Object.defineProperty(apiError, 'metadata', {\n    value: metadata,\n    enumerable: true,\n    configurable: true,\n  })\n  return apiError\n}\n\n// A transport failure (ECONNRESET/ETIMEDOUT/DNS/socket-closed/...) has no confirmed response;\n// the request may still have reached the server. Branch on err.response, not\n// err.response.data: an egress-gateway 500/502 with a falsy body (data: '' or null, a live\n// scenario) DOES have a response, and reporting it as \"no response\" is self-contradictory and\n// destroys the diagnostic value of the real status code. The no-response branch is its own\n// case so err.code/err.message land in the surfaced message (previously buried in the nested\n// `.error` cause, unreadable by a naive `catch (e) { log(e.message) }` \u2014 the prod-observed\n// masking of the real transport cause).\nexport const toApiError = (err: unknown): Error => {\n  if (axios.isAxiosError(err)) {\n    let apiError: Error\n    if (err.response) {\n      if (err.response.data) {\n        apiError = preserveWireCode(safeErrorFrom(err.response.data), err.response.data)\n      }\n      else {\n        apiError = new errors.UnknownError(`Request failed with status ${err.response.status} and empty body`, err)\n      }\n    }\n    else {\n      apiError = transportError(err)\n    }\n    return attachActionExecutionMetadata(apiError, err)\n  }\n  return safeErrorFrom(err)\n}\n\nconst transportError = (err: AxiosError): errors.UnknownError => {\n  const detail = [err.code, err.message].filter(Boolean).join(': ')\n  // axios.isAxiosError() duck-types on `isAxiosError === true` (no instanceof guard), so a\n  // cross-realm/deserialized object can reach here without actually extending Error.\n  const cause = err instanceof Error ? err : new Error(detail || 'no response received')\n  return new errors.UnknownError(detail ? `Request failed with no response: ${detail}` : 'Request failed with no response', cause)\n}\n", "\nimport crypto from 'crypto'\n\nconst codes = {\n  HTTP_STATUS_BAD_REQUEST: 400,\n  HTTP_STATUS_UNAUTHORIZED: 401,\n  HTTP_STATUS_PAYMENT_REQUIRED: 402,\n  HTTP_STATUS_FORBIDDEN: 403,\n  HTTP_STATUS_NOT_FOUND: 404,\n  HTTP_STATUS_METHOD_NOT_ALLOWED: 405,\n  HTTP_STATUS_REQUEST_TIMEOUT: 408,\n  HTTP_STATUS_CONFLICT: 409,\n  HTTP_STATUS_GONE: 410,\n  HTTP_STATUS_PAYLOAD_TOO_LARGE: 413,\n  HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE: 415,\n  HTTP_STATUS_DEPENDENCY_FAILED: 424,\n  HTTP_STATUS_TOO_MANY_REQUESTS: 429,\n  HTTP_STATUS_INTERNAL_SERVER_ERROR: 500,\n  HTTP_STATUS_NOT_IMPLEMENTED: 501,\n  HTTP_STATUS_BAD_GATEWAY: 502,\n  HTTP_STATUS_SERVICE_UNAVAILABLE: 503,\n  HTTP_STATUS_GATEWAY_TIMEOUT: 504,\n} as const\n\ntype ErrorCode = typeof codes[keyof typeof codes]\n\ndeclare const window: any\ntype CryptoLib = { getRandomValues(array: Uint8Array): Uint8Array }\n\nconst cryptoLibPolyfill: CryptoLib = {\n  // Fallback in case crypto isn't available.\n  getRandomValues: (array: Uint8Array) => new Uint8Array(array.map(() => Math.floor(Math.random() * 256))),\n}\n\nlet cryptoLib: CryptoLib =\n  typeof window !== 'undefined' && typeof window.document !== 'undefined'\n    ? window.crypto // Note: On browsers we need to use window.crypto instead of the imported crypto module as the latter is externalized and doesn't have getRandomValues().\n    : crypto\n\nif (!cryptoLib.getRandomValues) {\n  // Use a polyfill in older environments that have a crypto implementaton missing getRandomValues()\n  cryptoLib = cryptoLibPolyfill\n}\n\nabstract class BaseApiError<Code extends ErrorCode, Type extends string, Description extends string> extends Error {\n  public readonly isApiError = true\n\n  constructor(\n    public readonly code: Code,\n    public readonly description: Description,\n    public readonly type: Type,\n    public override readonly message: string,\n    public readonly error?: Error,\n    public readonly id?: string,\n    public readonly metadata?: Record<string, unknown>,\n  ) {\n    super(message)\n\n    if (!this.id) {\n      this.id = BaseApiError.generateId()\n    }\n  }\n\n  format() {\n    return `[${this.type}] ${this.message} (Error ID: ${this.id})`\n  }\n\n  toJSON() {\n    return {\n      id: this.id,\n      code: this.code,\n      type: this.type,\n      message: this.message,\n      metadata: this.metadata,\n    }\n  }\n\n  static generateId() {\n    const prefix = this.getPrefix();\n    const timestamp = new Date().toISOString().replace(/[\\-:TZ]/g, \"\").split(\".\")[0] // UTC time in YYMMDDHHMMSS format\n\n    const randomSuffixByteLength = 4\n    const randomHexSuffix = Array.from(cryptoLib.getRandomValues(new Uint8Array(randomSuffixByteLength)))\n      .map(x => x.toString(16).padStart(2, '0'))\n      .join('')\n      .toUpperCase()\n\n    return `${prefix}_${timestamp}x${randomHexSuffix}`\n  }\n\n  private static getPrefix() {\n    if (typeof window !== 'undefined' && typeof window.document !== 'undefined') {\n      // Browser environment\n      return 'err_bwsr'\n    }\n    return 'err'\n  }\n}\n\nconst isObject = (obj: unknown): obj is object => typeof obj === 'object' && !Array.isArray(obj) && obj !== null\n\nexport const isApiError = (thrown: unknown): thrown is ApiError => {\n  return thrown instanceof BaseApiError || isObject(thrown) && (thrown as ApiError).isApiError === true\n}\n\ntype UnknownType = 'Unknown'\n\n/**\n *  An unknown error occurred\n */\nexport class UnknownError extends BaseApiError<500, UnknownType, 'An unknown error occurred'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(500, 'An unknown error occurred', 'Unknown', message, error, id, metadata)\n  }\n}\n\ntype InternalType = 'Internal'\n\n/**\n *  An internal error occurred\n */\nexport class InternalError extends BaseApiError<500, InternalType, 'An internal error occurred'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(500, 'An internal error occurred', 'Internal', message, error, id, metadata)\n  }\n}\n\ntype UnauthorizedType = 'Unauthorized'\n\n/**\n *  The request requires to be authenticated.\n */\nexport class UnauthorizedError extends BaseApiError<401, UnauthorizedType, 'The request requires to be authenticated.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(401, 'The request requires to be authenticated.', 'Unauthorized', message, error, id, metadata)\n  }\n}\n\ntype ForbiddenType = 'Forbidden'\n\n/**\n *  The requested action can\\'t be peform by this resource.\n */\nexport class ForbiddenError extends BaseApiError<403, ForbiddenType, 'The requested action can\\'t be peform by this resource.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(403, 'The requested action can\\'t be peform by this resource.', 'Forbidden', message, error, id, metadata)\n  }\n}\n\ntype PayloadTooLargeType = 'PayloadTooLarge'\n\n/**\n *  The request payload is too large.\n */\nexport class PayloadTooLargeError extends BaseApiError<413, PayloadTooLargeType, 'The request payload is too large.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(413, 'The request payload is too large.', 'PayloadTooLarge', message, error, id, metadata)\n  }\n}\n\ntype InvalidPayloadType = 'InvalidPayload'\n\n/**\n *  The request payload is invalid.\n */\nexport class InvalidPayloadError extends BaseApiError<400, InvalidPayloadType, 'The request payload is invalid.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'The request payload is invalid.', 'InvalidPayload', message, error, id, metadata)\n  }\n}\n\ntype UnsupportedMediaTypeType = 'UnsupportedMediaType'\n\n/**\n *  The request is invalid because the content-type is not supported.\n */\nexport class UnsupportedMediaTypeError extends BaseApiError<415, UnsupportedMediaTypeType, 'The request is invalid because the content-type is not supported.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(415, 'The request is invalid because the content-type is not supported.', 'UnsupportedMediaType', message, error, id, metadata)\n  }\n}\n\ntype MethodNotFoundType = 'MethodNotFound'\n\n/**\n *  The requested method does not exist.\n */\nexport class MethodNotFoundError extends BaseApiError<405, MethodNotFoundType, 'The requested method does not exist.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(405, 'The requested method does not exist.', 'MethodNotFound', message, error, id, metadata)\n  }\n}\n\ntype ResourceNotFoundType = 'ResourceNotFound'\n\n/**\n *  The requested resource does not exist.\n */\nexport class ResourceNotFoundError extends BaseApiError<404, ResourceNotFoundType, 'The requested resource does not exist.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(404, 'The requested resource does not exist.', 'ResourceNotFound', message, error, id, metadata)\n  }\n}\n\ntype InvalidJsonSchemaType = 'InvalidJsonSchema'\n\n/**\n *  The provided JSON schema is invalid.\n */\nexport class InvalidJsonSchemaError extends BaseApiError<400, InvalidJsonSchemaType, 'The provided JSON schema is invalid.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'The provided JSON schema is invalid.', 'InvalidJsonSchema', message, error, id, metadata)\n  }\n}\n\ntype InvalidDataFormatType = 'InvalidDataFormat'\n\n/**\n *  The provided data doesn\\'t respect the provided JSON schema.\n */\nexport class InvalidDataFormatError extends BaseApiError<400, InvalidDataFormatType, 'The provided data doesn\\'t respect the provided JSON schema.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'The provided data doesn\\'t respect the provided JSON schema.', 'InvalidDataFormat', message, error, id, metadata)\n  }\n}\n\ntype InvalidIdentifierType = 'InvalidIdentifier'\n\n/**\n *  The provided identifier is not valid. An identifier must start with a lowercase letter, be between 2 and 100 characters long and use only alphanumeric characters.\n */\nexport class InvalidIdentifierError extends BaseApiError<400, InvalidIdentifierType, 'The provided identifier is not valid. An identifier must start with a lowercase letter, be between 2 and 100 characters long and use only alphanumeric characters.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'The provided identifier is not valid. An identifier must start with a lowercase letter, be between 2 and 100 characters long and use only alphanumeric characters.', 'InvalidIdentifier', message, error, id, metadata)\n  }\n}\n\ntype RelationConflictType = 'RelationConflict'\n\n/**\n *  The resource is related with a different resource that the one referenced in the request. This is usually caused when providing two resource identifiers that aren\\'t linked together.\n */\nexport class RelationConflictError extends BaseApiError<409, RelationConflictType, 'The resource is related with a different resource that the one referenced in the request. This is usually caused when providing two resource identifiers that aren\\'t linked together.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(409, 'The resource is related with a different resource that the one referenced in the request. This is usually caused when providing two resource identifiers that aren\\'t linked together.', 'RelationConflict', message, error, id, metadata)\n  }\n}\n\ntype ReferenceConstraintType = 'ReferenceConstraint'\n\n/**\n *  The resource cannot be deleted because it\\'s referenced by another resource\n */\nexport class ReferenceConstraintError extends BaseApiError<409, ReferenceConstraintType, 'The resource cannot be deleted because it\\'s referenced by another resource'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(409, 'The resource cannot be deleted because it\\'s referenced by another resource', 'ReferenceConstraint', message, error, id, metadata)\n  }\n}\n\ntype ResourceLockedConflictType = 'ResourceLockedConflict'\n\n/**\n *  The resource is current locked and cannot be operated on until the lock is released.\n */\nexport class ResourceLockedConflictError extends BaseApiError<409, ResourceLockedConflictType, 'The resource is current locked and cannot be operated on until the lock is released.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(409, 'The resource is current locked and cannot be operated on until the lock is released.', 'ResourceLockedConflict', message, error, id, metadata)\n  }\n}\n\ntype ResourceGoneType = 'ResourceGone'\n\n/**\n *  The requested resource is no longer available.\n */\nexport class ResourceGoneError extends BaseApiError<410, ResourceGoneType, 'The requested resource is no longer available.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(410, 'The requested resource is no longer available.', 'ResourceGone', message, error, id, metadata)\n  }\n}\n\ntype ReferenceNotFoundType = 'ReferenceNotFound'\n\n/**\n *  The provided resource reference is missing. This is usually caused when providing an invalid id inside the payload of a request.\n */\nexport class ReferenceNotFoundError extends BaseApiError<400, ReferenceNotFoundType, 'The provided resource reference is missing. This is usually caused when providing an invalid id inside the payload of a request.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'The provided resource reference is missing. This is usually caused when providing an invalid id inside the payload of a request.', 'ReferenceNotFound', message, error, id, metadata)\n  }\n}\n\ntype InvalidQueryType = 'InvalidQuery'\n\n/**\n *  The provided query is invalid. This is usually caused when providing an invalid parameter for querying a resource.\n */\nexport class InvalidQueryError extends BaseApiError<400, InvalidQueryType, 'The provided query is invalid. This is usually caused when providing an invalid parameter for querying a resource.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'The provided query is invalid. This is usually caused when providing an invalid parameter for querying a resource.', 'InvalidQuery', message, error, id, metadata)\n  }\n}\n\ntype RuntimeType = 'Runtime'\n\n/**\n *  An error happened during the execution of a runtime (bot or integration).\n */\nexport class RuntimeError extends BaseApiError<400, RuntimeType, 'An error happened during the execution of a runtime (bot or integration).'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'An error happened during the execution of a runtime (bot or integration).', 'Runtime', message, error, id, metadata)\n  }\n}\n\ntype AlreadyExistsType = 'AlreadyExists'\n\n/**\n *  The record attempted to be created already exists.\n */\nexport class AlreadyExistsError extends BaseApiError<409, AlreadyExistsType, 'The record attempted to be created already exists.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(409, 'The record attempted to be created already exists.', 'AlreadyExists', message, error, id, metadata)\n  }\n}\n\ntype RateLimitedType = 'RateLimited'\n\n/**\n *  The request has been rate limited.\n */\nexport class RateLimitedError extends BaseApiError<429, RateLimitedType, 'The request has been rate limited.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(429, 'The request has been rate limited.', 'RateLimited', message, error, id, metadata)\n  }\n}\n\ntype PaymentRequiredType = 'PaymentRequired'\n\n/**\n *  A payment is required to perform this request.\n */\nexport class PaymentRequiredError extends BaseApiError<402, PaymentRequiredType, 'A payment is required to perform this request.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(402, 'A payment is required to perform this request.', 'PaymentRequired', message, error, id, metadata)\n  }\n}\n\ntype QuotaExceededType = 'QuotaExceeded'\n\n/**\n *  The request exceeds the allowed quota. Quotas are a soft limit that can be increased.\n */\nexport class QuotaExceededError extends BaseApiError<403, QuotaExceededType, 'The request exceeds the allowed quota. Quotas are a soft limit that can be increased.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(403, 'The request exceeds the allowed quota. Quotas are a soft limit that can be increased.', 'QuotaExceeded', message, error, id, metadata)\n  }\n}\n\ntype LimitExceededType = 'LimitExceeded'\n\n/**\n *  The request exceeds the allowed limit. Limits are a hard limit that cannot be increased.\n */\nexport class LimitExceededError extends BaseApiError<413, LimitExceededType, 'The request exceeds the allowed limit. Limits are a hard limit that cannot be increased.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(413, 'The request exceeds the allowed limit. Limits are a hard limit that cannot be increased.', 'LimitExceeded', message, error, id, metadata)\n  }\n}\n\ntype BreakingChangesType = 'BreakingChanges'\n\n/**\n *  Request payload contains breaking changes which is not allowed for this resource without a version increment.\n */\nexport class BreakingChangesError extends BaseApiError<400, BreakingChangesType, 'Request payload contains breaking changes which is not allowed for this resource without a version increment.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'Request payload contains breaking changes which is not allowed for this resource without a version increment.', 'BreakingChanges', message, error, id, metadata)\n  }\n}\n\ntype OperationTimeoutType = 'OperationTimeout'\n\n/**\n *  The operation timed out.\n */\nexport class OperationTimeoutError extends BaseApiError<504, OperationTimeoutType, 'The operation timed out.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(504, 'The operation timed out.', 'OperationTimeout', message, error, id, metadata)\n  }\n}\n\nexport type ErrorType =\n  | 'Unknown'\n  | 'Internal'\n  | 'Unauthorized'\n  | 'Forbidden'\n  | 'PayloadTooLarge'\n  | 'InvalidPayload'\n  | 'UnsupportedMediaType'\n  | 'MethodNotFound'\n  | 'ResourceNotFound'\n  | 'InvalidJsonSchema'\n  | 'InvalidDataFormat'\n  | 'InvalidIdentifier'\n  | 'RelationConflict'\n  | 'ReferenceConstraint'\n  | 'ResourceLockedConflict'\n  | 'ResourceGone'\n  | 'ReferenceNotFound'\n  | 'InvalidQuery'\n  | 'Runtime'\n  | 'AlreadyExists'\n  | 'RateLimited'\n  | 'PaymentRequired'\n  | 'QuotaExceeded'\n  | 'LimitExceeded'\n  | 'BreakingChanges'\n  | 'OperationTimeout'\n\nexport type ApiError =\n  | UnknownError\n  | InternalError\n  | UnauthorizedError\n  | ForbiddenError\n  | PayloadTooLargeError\n  | InvalidPayloadError\n  | UnsupportedMediaTypeError\n  | MethodNotFoundError\n  | ResourceNotFoundError\n  | InvalidJsonSchemaError\n  | InvalidDataFormatError\n  | InvalidIdentifierError\n  | RelationConflictError\n  | ReferenceConstraintError\n  | ResourceLockedConflictError\n  | ResourceGoneError\n  | ReferenceNotFoundError\n  | InvalidQueryError\n  | RuntimeError\n  | AlreadyExistsError\n  | RateLimitedError\n  | PaymentRequiredError\n  | QuotaExceededError\n  | LimitExceededError\n  | BreakingChangesError\n  | OperationTimeoutError\n\nconst errorTypes: { [type: string]: new (message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) => ApiError } = {\n  Unknown: UnknownError,\n  Internal: InternalError,\n  Unauthorized: UnauthorizedError,\n  Forbidden: ForbiddenError,\n  PayloadTooLarge: PayloadTooLargeError,\n  InvalidPayload: InvalidPayloadError,\n  UnsupportedMediaType: UnsupportedMediaTypeError,\n  MethodNotFound: MethodNotFoundError,\n  ResourceNotFound: ResourceNotFoundError,\n  InvalidJsonSchema: InvalidJsonSchemaError,\n  InvalidDataFormat: InvalidDataFormatError,\n  InvalidIdentifier: InvalidIdentifierError,\n  RelationConflict: RelationConflictError,\n  ReferenceConstraint: ReferenceConstraintError,\n  ResourceLockedConflict: ResourceLockedConflictError,\n  ResourceGone: ResourceGoneError,\n  ReferenceNotFound: ReferenceNotFoundError,\n  InvalidQuery: InvalidQueryError,\n  Runtime: RuntimeError,\n  AlreadyExists: AlreadyExistsError,\n  RateLimited: RateLimitedError,\n  PaymentRequired: PaymentRequiredError,\n  QuotaExceeded: QuotaExceededError,\n  LimitExceeded: LimitExceededError,\n  BreakingChanges: BreakingChangesError,\n  OperationTimeout: OperationTimeoutError,\n}\n\nexport const errorFrom = (err: unknown): ApiError => {\n  if (isApiError(err)) {\n    return err\n  }\n  else if (err instanceof Error) {\n    return new UnknownError(err.message, err)\n  }\n  else if (typeof err === 'string') {\n    return new UnknownError(err)\n  }\n  else {\n    return getApiErrorFromObject(err)\n  }\n}\n\nfunction getApiErrorFromObject(err: any) {\n  // Check if it's an deserialized API error object\n  if (typeof err === 'object' && 'code' in err && 'type' in err && 'id' in err && 'message' in err && typeof err.type === 'string' && typeof err.message === 'string') {\n    const ErrorClass = errorTypes[err.type]\n    if (!ErrorClass) {\n      return new UnknownError(`An unclassified API error occurred: ${err.message} (Type: ${err.type}, Code: ${err.code})`)\n    }\n\n    return new ErrorClass(err.message, undefined, <string>err.id || 'UNKNOWN', err.metadata) // If error ID was not received do not pass undefined to generate a new one, flag it as UNKNOWN so we can fix the issue.\n  }\n\n  return new UnknownError('An invalid error occurred: ' + JSON.stringify(err))\n}\n", "import { AxiosError } from 'axios'\nimport {\n  errorFrom as generatedErrorFrom,\n  isApiError as isGeneratedApiError,\n  type ApiError as GeneratedApiError,\n} from './gen/public/errors'\nimport { UpsertFileResponse } from './gen/public/operations/upsertFile'\n\nexport * from './gen/public/errors'\n\nexport class IntegrationOperationConflictError extends Error {\n  public readonly isApiError = true as const\n  public readonly code = 409 as const\n  public readonly type = 'Conflict' as const\n  public readonly description = 'The integration operation conflicts with an existing operation.' as const\n\n  public constructor(\n    message: string,\n    public readonly id: string,\n    public readonly metadata?: Record<string, unknown>,\n    public readonly error?: Error\n  ) {\n    super(message, error ? { cause: error } : undefined)\n    this.name = 'IntegrationOperationConflictError'\n  }\n\n  public format() {\n    return `[${this.type}] ${this.message} (Error ID: ${this.id})`\n  }\n\n  public toJSON() {\n    return {\n      id: this.id,\n      code: this.code,\n      type: this.type,\n      message: this.message,\n      metadata: this.metadata,\n    }\n  }\n}\n\nexport type ApiError = GeneratedApiError | IntegrationOperationConflictError\n\nexport const isApiError = (thrown: unknown): thrown is ApiError =>\n  thrown instanceof IntegrationOperationConflictError || isGeneratedApiError(thrown)\n\nexport const errorFrom = (error: unknown): ApiError =>\n  error instanceof IntegrationOperationConflictError ? error : generatedErrorFrom(error)\n\nexport const isRowVersionConflict = (\n  thrown: unknown\n): thrown is ApiError & {\n  metadata: {\n    errorCode: 'TABLE_ROW_VERSION_CONFLICT'\n    retryable: false\n    recovery: 'reread_and_reapply'\n  }\n} => {\n  if (!isApiError(thrown) || typeof thrown.metadata !== 'object' || thrown.metadata === null) {\n    return false\n  }\n  const metadata = thrown.metadata as Record<string, unknown>\n  return (\n    thrown.code === 409 &&\n    metadata.errorCode === 'TABLE_ROW_VERSION_CONFLICT' &&\n    metadata.retryable === false &&\n    metadata.recovery === 'reread_and_reapply'\n  )\n}\n\nexport class UploadFileError extends Error {\n  public constructor(\n    message: string,\n    public readonly innerError?: AxiosError,\n    public readonly file?: UpsertFileResponse['file']\n  ) {\n    super(message)\n    this.name = 'FileUploadError'\n  }\n}\n", "\nimport crypto from 'crypto'\n\nconst codes = {\n  HTTP_STATUS_BAD_REQUEST: 400,\n  HTTP_STATUS_UNAUTHORIZED: 401,\n  HTTP_STATUS_PAYMENT_REQUIRED: 402,\n  HTTP_STATUS_FORBIDDEN: 403,\n  HTTP_STATUS_NOT_FOUND: 404,\n  HTTP_STATUS_METHOD_NOT_ALLOWED: 405,\n  HTTP_STATUS_REQUEST_TIMEOUT: 408,\n  HTTP_STATUS_CONFLICT: 409,\n  HTTP_STATUS_GONE: 410,\n  HTTP_STATUS_PAYLOAD_TOO_LARGE: 413,\n  HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE: 415,\n  HTTP_STATUS_DEPENDENCY_FAILED: 424,\n  HTTP_STATUS_TOO_MANY_REQUESTS: 429,\n  HTTP_STATUS_INTERNAL_SERVER_ERROR: 500,\n  HTTP_STATUS_NOT_IMPLEMENTED: 501,\n  HTTP_STATUS_BAD_GATEWAY: 502,\n  HTTP_STATUS_SERVICE_UNAVAILABLE: 503,\n  HTTP_STATUS_GATEWAY_TIMEOUT: 504,\n} as const\n\ntype ErrorCode = typeof codes[keyof typeof codes]\n\ndeclare const window: any\ntype CryptoLib = { getRandomValues(array: Uint8Array): Uint8Array }\n\nconst cryptoLibPolyfill: CryptoLib = {\n  // Fallback in case crypto isn't available.\n  getRandomValues: (array: Uint8Array) => new Uint8Array(array.map(() => Math.floor(Math.random() * 256))),\n}\n\nlet cryptoLib: CryptoLib =\n  typeof window !== 'undefined' && typeof window.document !== 'undefined'\n    ? window.crypto // Note: On browsers we need to use window.crypto instead of the imported crypto module as the latter is externalized and doesn't have getRandomValues().\n    : crypto\n\nif (!cryptoLib.getRandomValues) {\n  // Use a polyfill in older environments that have a crypto implementaton missing getRandomValues()\n  cryptoLib = cryptoLibPolyfill\n}\n\nabstract class BaseApiError<Code extends ErrorCode, Type extends string, Description extends string> extends Error {\n  public readonly isApiError = true\n\n  constructor(\n    public readonly code: Code,\n    public readonly description: Description,\n    public readonly type: Type,\n    public override readonly message: string,\n    public readonly error?: Error,\n    public readonly id?: string,\n    public readonly metadata?: Record<string, unknown>,\n  ) {\n    super(message)\n\n    if (!this.id) {\n      this.id = BaseApiError.generateId()\n    }\n  }\n\n  format() {\n    return `[${this.type}] ${this.message} (Error ID: ${this.id})`\n  }\n\n  toJSON() {\n    return {\n      id: this.id,\n      code: this.code,\n      type: this.type,\n      message: this.message,\n      metadata: this.metadata,\n    }\n  }\n\n  static generateId() {\n    const prefix = this.getPrefix();\n    const timestamp = new Date().toISOString().replace(/[\\-:TZ]/g, \"\").split(\".\")[0] // UTC time in YYMMDDHHMMSS format\n\n    const randomSuffixByteLength = 4\n    const randomHexSuffix = Array.from(cryptoLib.getRandomValues(new Uint8Array(randomSuffixByteLength)))\n      .map(x => x.toString(16).padStart(2, '0'))\n      .join('')\n      .toUpperCase()\n\n    return `${prefix}_${timestamp}x${randomHexSuffix}`\n  }\n\n  private static getPrefix() {\n    if (typeof window !== 'undefined' && typeof window.document !== 'undefined') {\n      // Browser environment\n      return 'err_bwsr'\n    }\n    return 'err'\n  }\n}\n\nconst isObject = (obj: unknown): obj is object => typeof obj === 'object' && !Array.isArray(obj) && obj !== null\n\nexport const isApiError = (thrown: unknown): thrown is ApiError => {\n  return thrown instanceof BaseApiError || isObject(thrown) && (thrown as ApiError).isApiError === true\n}\n\ntype UnknownType = 'Unknown'\n\n/**\n *  An unknown error occurred\n */\nexport class UnknownError extends BaseApiError<500, UnknownType, 'An unknown error occurred'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(500, 'An unknown error occurred', 'Unknown', message, error, id, metadata)\n  }\n}\n\ntype InternalType = 'Internal'\n\n/**\n *  An internal error occurred\n */\nexport class InternalError extends BaseApiError<500, InternalType, 'An internal error occurred'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(500, 'An internal error occurred', 'Internal', message, error, id, metadata)\n  }\n}\n\ntype UnauthorizedType = 'Unauthorized'\n\n/**\n *  The request requires to be authenticated.\n */\nexport class UnauthorizedError extends BaseApiError<401, UnauthorizedType, 'The request requires to be authenticated.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(401, 'The request requires to be authenticated.', 'Unauthorized', message, error, id, metadata)\n  }\n}\n\ntype ForbiddenType = 'Forbidden'\n\n/**\n *  The requested action can\\'t be peform by this resource.\n */\nexport class ForbiddenError extends BaseApiError<403, ForbiddenType, 'The requested action can\\'t be peform by this resource.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(403, 'The requested action can\\'t be peform by this resource.', 'Forbidden', message, error, id, metadata)\n  }\n}\n\ntype PayloadTooLargeType = 'PayloadTooLarge'\n\n/**\n *  The request payload is too large.\n */\nexport class PayloadTooLargeError extends BaseApiError<413, PayloadTooLargeType, 'The request payload is too large.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(413, 'The request payload is too large.', 'PayloadTooLarge', message, error, id, metadata)\n  }\n}\n\ntype InvalidPayloadType = 'InvalidPayload'\n\n/**\n *  The request payload is invalid.\n */\nexport class InvalidPayloadError extends BaseApiError<400, InvalidPayloadType, 'The request payload is invalid.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'The request payload is invalid.', 'InvalidPayload', message, error, id, metadata)\n  }\n}\n\ntype UnsupportedMediaTypeType = 'UnsupportedMediaType'\n\n/**\n *  The request is invalid because the content-type is not supported.\n */\nexport class UnsupportedMediaTypeError extends BaseApiError<415, UnsupportedMediaTypeType, 'The request is invalid because the content-type is not supported.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(415, 'The request is invalid because the content-type is not supported.', 'UnsupportedMediaType', message, error, id, metadata)\n  }\n}\n\ntype MethodNotFoundType = 'MethodNotFound'\n\n/**\n *  The requested method does not exist.\n */\nexport class MethodNotFoundError extends BaseApiError<405, MethodNotFoundType, 'The requested method does not exist.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(405, 'The requested method does not exist.', 'MethodNotFound', message, error, id, metadata)\n  }\n}\n\ntype ResourceNotFoundType = 'ResourceNotFound'\n\n/**\n *  The requested resource does not exist.\n */\nexport class ResourceNotFoundError extends BaseApiError<404, ResourceNotFoundType, 'The requested resource does not exist.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(404, 'The requested resource does not exist.', 'ResourceNotFound', message, error, id, metadata)\n  }\n}\n\ntype InvalidJsonSchemaType = 'InvalidJsonSchema'\n\n/**\n *  The provided JSON schema is invalid.\n */\nexport class InvalidJsonSchemaError extends BaseApiError<400, InvalidJsonSchemaType, 'The provided JSON schema is invalid.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'The provided JSON schema is invalid.', 'InvalidJsonSchema', message, error, id, metadata)\n  }\n}\n\ntype InvalidDataFormatType = 'InvalidDataFormat'\n\n/**\n *  The provided data doesn\\'t respect the provided JSON schema.\n */\nexport class InvalidDataFormatError extends BaseApiError<400, InvalidDataFormatType, 'The provided data doesn\\'t respect the provided JSON schema.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'The provided data doesn\\'t respect the provided JSON schema.', 'InvalidDataFormat', message, error, id, metadata)\n  }\n}\n\ntype InvalidIdentifierType = 'InvalidIdentifier'\n\n/**\n *  The provided identifier is not valid. An identifier must start with a lowercase letter, be between 2 and 100 characters long and use only alphanumeric characters.\n */\nexport class InvalidIdentifierError extends BaseApiError<400, InvalidIdentifierType, 'The provided identifier is not valid. An identifier must start with a lowercase letter, be between 2 and 100 characters long and use only alphanumeric characters.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'The provided identifier is not valid. An identifier must start with a lowercase letter, be between 2 and 100 characters long and use only alphanumeric characters.', 'InvalidIdentifier', message, error, id, metadata)\n  }\n}\n\ntype RelationConflictType = 'RelationConflict'\n\n/**\n *  The resource is related with a different resource that the one referenced in the request. This is usually caused when providing two resource identifiers that aren\\'t linked together.\n */\nexport class RelationConflictError extends BaseApiError<409, RelationConflictType, 'The resource is related with a different resource that the one referenced in the request. This is usually caused when providing two resource identifiers that aren\\'t linked together.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(409, 'The resource is related with a different resource that the one referenced in the request. This is usually caused when providing two resource identifiers that aren\\'t linked together.', 'RelationConflict', message, error, id, metadata)\n  }\n}\n\ntype ReferenceConstraintType = 'ReferenceConstraint'\n\n/**\n *  The resource cannot be deleted because it\\'s referenced by another resource\n */\nexport class ReferenceConstraintError extends BaseApiError<409, ReferenceConstraintType, 'The resource cannot be deleted because it\\'s referenced by another resource'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(409, 'The resource cannot be deleted because it\\'s referenced by another resource', 'ReferenceConstraint', message, error, id, metadata)\n  }\n}\n\ntype ResourceLockedConflictType = 'ResourceLockedConflict'\n\n/**\n *  The resource is current locked and cannot be operated on until the lock is released.\n */\nexport class ResourceLockedConflictError extends BaseApiError<409, ResourceLockedConflictType, 'The resource is current locked and cannot be operated on until the lock is released.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(409, 'The resource is current locked and cannot be operated on until the lock is released.', 'ResourceLockedConflict', message, error, id, metadata)\n  }\n}\n\ntype ResourceGoneType = 'ResourceGone'\n\n/**\n *  The requested resource is no longer available.\n */\nexport class ResourceGoneError extends BaseApiError<410, ResourceGoneType, 'The requested resource is no longer available.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(410, 'The requested resource is no longer available.', 'ResourceGone', message, error, id, metadata)\n  }\n}\n\ntype ReferenceNotFoundType = 'ReferenceNotFound'\n\n/**\n *  The provided resource reference is missing. This is usually caused when providing an invalid id inside the payload of a request.\n */\nexport class ReferenceNotFoundError extends BaseApiError<400, ReferenceNotFoundType, 'The provided resource reference is missing. This is usually caused when providing an invalid id inside the payload of a request.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'The provided resource reference is missing. This is usually caused when providing an invalid id inside the payload of a request.', 'ReferenceNotFound', message, error, id, metadata)\n  }\n}\n\ntype InvalidQueryType = 'InvalidQuery'\n\n/**\n *  The provided query is invalid. This is usually caused when providing an invalid parameter for querying a resource.\n */\nexport class InvalidQueryError extends BaseApiError<400, InvalidQueryType, 'The provided query is invalid. This is usually caused when providing an invalid parameter for querying a resource.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'The provided query is invalid. This is usually caused when providing an invalid parameter for querying a resource.', 'InvalidQuery', message, error, id, metadata)\n  }\n}\n\ntype RuntimeType = 'Runtime'\n\n/**\n *  An error happened during the execution of a runtime (bot or integration).\n */\nexport class RuntimeError extends BaseApiError<400, RuntimeType, 'An error happened during the execution of a runtime (bot or integration).'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'An error happened during the execution of a runtime (bot or integration).', 'Runtime', message, error, id, metadata)\n  }\n}\n\ntype AlreadyExistsType = 'AlreadyExists'\n\n/**\n *  The record attempted to be created already exists.\n */\nexport class AlreadyExistsError extends BaseApiError<409, AlreadyExistsType, 'The record attempted to be created already exists.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(409, 'The record attempted to be created already exists.', 'AlreadyExists', message, error, id, metadata)\n  }\n}\n\ntype RateLimitedType = 'RateLimited'\n\n/**\n *  The request has been rate limited.\n */\nexport class RateLimitedError extends BaseApiError<429, RateLimitedType, 'The request has been rate limited.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(429, 'The request has been rate limited.', 'RateLimited', message, error, id, metadata)\n  }\n}\n\ntype PaymentRequiredType = 'PaymentRequired'\n\n/**\n *  A payment is required to perform this request.\n */\nexport class PaymentRequiredError extends BaseApiError<402, PaymentRequiredType, 'A payment is required to perform this request.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(402, 'A payment is required to perform this request.', 'PaymentRequired', message, error, id, metadata)\n  }\n}\n\ntype QuotaExceededType = 'QuotaExceeded'\n\n/**\n *  The request exceeds the allowed quota. Quotas are a soft limit that can be increased.\n */\nexport class QuotaExceededError extends BaseApiError<403, QuotaExceededType, 'The request exceeds the allowed quota. Quotas are a soft limit that can be increased.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(403, 'The request exceeds the allowed quota. Quotas are a soft limit that can be increased.', 'QuotaExceeded', message, error, id, metadata)\n  }\n}\n\ntype LimitExceededType = 'LimitExceeded'\n\n/**\n *  The request exceeds the allowed limit. Limits are a hard limit that cannot be increased.\n */\nexport class LimitExceededError extends BaseApiError<413, LimitExceededType, 'The request exceeds the allowed limit. Limits are a hard limit that cannot be increased.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(413, 'The request exceeds the allowed limit. Limits are a hard limit that cannot be increased.', 'LimitExceeded', message, error, id, metadata)\n  }\n}\n\ntype BreakingChangesType = 'BreakingChanges'\n\n/**\n *  Request payload contains breaking changes which is not allowed for this resource without a version increment.\n */\nexport class BreakingChangesError extends BaseApiError<400, BreakingChangesType, 'Request payload contains breaking changes which is not allowed for this resource without a version increment.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'Request payload contains breaking changes which is not allowed for this resource without a version increment.', 'BreakingChanges', message, error, id, metadata)\n  }\n}\n\ntype OperationTimeoutType = 'OperationTimeout'\n\n/**\n *  The operation timed out.\n */\nexport class OperationTimeoutError extends BaseApiError<504, OperationTimeoutType, 'The operation timed out.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(504, 'The operation timed out.', 'OperationTimeout', message, error, id, metadata)\n  }\n}\n\nexport type ErrorType =\n  | 'Unknown'\n  | 'Internal'\n  | 'Unauthorized'\n  | 'Forbidden'\n  | 'PayloadTooLarge'\n  | 'InvalidPayload'\n  | 'UnsupportedMediaType'\n  | 'MethodNotFound'\n  | 'ResourceNotFound'\n  | 'InvalidJsonSchema'\n  | 'InvalidDataFormat'\n  | 'InvalidIdentifier'\n  | 'RelationConflict'\n  | 'ReferenceConstraint'\n  | 'ResourceLockedConflict'\n  | 'ResourceGone'\n  | 'ReferenceNotFound'\n  | 'InvalidQuery'\n  | 'Runtime'\n  | 'AlreadyExists'\n  | 'RateLimited'\n  | 'PaymentRequired'\n  | 'QuotaExceeded'\n  | 'LimitExceeded'\n  | 'BreakingChanges'\n  | 'OperationTimeout'\n\nexport type ApiError =\n  | UnknownError\n  | InternalError\n  | UnauthorizedError\n  | ForbiddenError\n  | PayloadTooLargeError\n  | InvalidPayloadError\n  | UnsupportedMediaTypeError\n  | MethodNotFoundError\n  | ResourceNotFoundError\n  | InvalidJsonSchemaError\n  | InvalidDataFormatError\n  | InvalidIdentifierError\n  | RelationConflictError\n  | ReferenceConstraintError\n  | ResourceLockedConflictError\n  | ResourceGoneError\n  | ReferenceNotFoundError\n  | InvalidQueryError\n  | RuntimeError\n  | AlreadyExistsError\n  | RateLimitedError\n  | PaymentRequiredError\n  | QuotaExceededError\n  | LimitExceededError\n  | BreakingChangesError\n  | OperationTimeoutError\n\nconst errorTypes: { [type: string]: new (message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) => ApiError } = {\n  Unknown: UnknownError,\n  Internal: InternalError,\n  Unauthorized: UnauthorizedError,\n  Forbidden: ForbiddenError,\n  PayloadTooLarge: PayloadTooLargeError,\n  InvalidPayload: InvalidPayloadError,\n  UnsupportedMediaType: UnsupportedMediaTypeError,\n  MethodNotFound: MethodNotFoundError,\n  ResourceNotFound: ResourceNotFoundError,\n  InvalidJsonSchema: InvalidJsonSchemaError,\n  InvalidDataFormat: InvalidDataFormatError,\n  InvalidIdentifier: InvalidIdentifierError,\n  RelationConflict: RelationConflictError,\n  ReferenceConstraint: ReferenceConstraintError,\n  ResourceLockedConflict: ResourceLockedConflictError,\n  ResourceGone: ResourceGoneError,\n  ReferenceNotFound: ReferenceNotFoundError,\n  InvalidQuery: InvalidQueryError,\n  Runtime: RuntimeError,\n  AlreadyExists: AlreadyExistsError,\n  RateLimited: RateLimitedError,\n  PaymentRequired: PaymentRequiredError,\n  QuotaExceeded: QuotaExceededError,\n  LimitExceeded: LimitExceededError,\n  BreakingChanges: BreakingChangesError,\n  OperationTimeout: OperationTimeoutError,\n}\n\nexport const errorFrom = (err: unknown): ApiError => {\n  if (isApiError(err)) {\n    return err\n  }\n  else if (err instanceof Error) {\n    return new UnknownError(err.message, err)\n  }\n  else if (typeof err === 'string') {\n    return new UnknownError(err)\n  }\n  else {\n    return getApiErrorFromObject(err)\n  }\n}\n\nfunction getApiErrorFromObject(err: any) {\n  // Check if it's an deserialized API error object\n  if (typeof err === 'object' && 'code' in err && 'type' in err && 'id' in err && 'message' in err && typeof err.type === 'string' && typeof err.message === 'string') {\n    const ErrorClass = errorTypes[err.type]\n    if (!ErrorClass) {\n      return new UnknownError(`An unclassified API error occurred: ${err.message} (Type: ${err.type}, Code: ${err.code})`)\n    }\n\n    return new ErrorClass(err.message, undefined, <string>err.id || 'UNKNOWN', err.metadata) // If error ID was not received do not pass undefined to generate a new one, flag it as UNKNOWN so we can fix the issue.\n  }\n\n  return new UnknownError('An invalid error occurred: ' + JSON.stringify(err))\n}\n", "\nimport { AxiosRequestConfig } from \"axios\"\nimport qs from \"qs\"\n\nexport type Primitive = string | number | boolean\nexport type Value<P extends Primitive> = P | P[] | Record<string, P>\nexport type QueryValue = Value<string> | Value<boolean> | Value<number> | undefined\nexport type AnyQueryParams = Record<string, QueryValue>\nexport type HeaderValue = string | undefined\nexport type AnyHeaderParams = Record<string, HeaderValue>\nexport type AnyBodyParams = Record<string, any>\nexport type ParsedRequest = {\n  method: string\n  path: string\n  query: AnyQueryParams\n  headers: AnyHeaderParams\n  body: AnyBodyParams\n}\n\nconst isDefined = <T>(pair: [string, T | undefined]): pair is [string, T] => pair[1] !== undefined\n\nexport const toAxiosRequest = (req: ParsedRequest): AxiosRequestConfig => {\n  const { method, path, query, headers: headerParams, body } = req\n\n  // prepare headers\n  const headerEntries: [string, string][] = Object.entries(headerParams).filter(isDefined)\n  const headers = Object.fromEntries(headerEntries)\n\n  // prepare query params\n  const queryString = qs.stringify(query, { encode: true, arrayFormat: 'repeat', allowDots: true })\n\n  const url = queryString ? [path, queryString].join('?') : path\n  const data =\n    ['put', 'post', 'delete', 'patch'].includes(method.toLowerCase())\n      ? body\n      : undefined\n\n  return {\n    method,\n    url,\n    headers,\n    data,\n  }\n}\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CreateConversationRequestHeaders {}\n\nexport interface CreateConversationRequestQuery {}\n\nexport interface CreateConversationRequestParams {}\n\nexport interface CreateConversationRequestBody {\n  /**\n   * Channel name\n   */\n  channel: string;\n  /**\n   * Tags for the [Conversation](#schema_conversation)\n   */\n  tags: {\n    [k: string]: string;\n  };\n  /**\n   * @deprecated\n   * [DEPRECATED] To create a conversation from within a bot, call an action of the integration instead.\n   */\n  integrationName?: string;\n  /**\n   * **EXPERIMENTAL** - Optional shared properties that can be accessed and modified by both the bot and any of its integrations.\n   */\n  properties?: {\n    [k: string]: string;\n  };\n}\n\nexport type CreateConversationInput = CreateConversationRequestBody & CreateConversationRequestHeaders & CreateConversationRequestQuery & CreateConversationRequestParams\n\nexport type CreateConversationRequest = {\n  headers: CreateConversationRequestHeaders;\n  query: CreateConversationRequestQuery;\n  params: CreateConversationRequestParams;\n  body: CreateConversationRequestBody;\n}\n\nexport const parseReq = (input: CreateConversationInput): CreateConversationRequest & { path: string } => {\n  return {\n    path: `/v1/chat/conversations`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'channel': input['channel'], 'tags': input['tags'], 'integrationName': input['integrationName'], 'properties': input['properties'] },\n  }\n}\n\nexport interface CreateConversationResponse {\n  /**\n   * The [Conversation](#schema_conversation) object represents an exchange of messages between one or more users. A [Conversation](#schema_conversation) is always linked to an integration's channels. For example, a Slack channel represents a conversation.\n   */\n  conversation: {\n    /**\n     * Id of the [Conversation](#schema_conversation)\n     */\n    id: string;\n    /**\n     * @deprecated\n     * Unused. This field will be removed in the future.\n     */\n    currentTaskId?: string;\n    /**\n     * Creation date of the [Conversation](#schema_conversation) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Conversation](#schema_conversation) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Name of the channel where the [Conversation](#schema_conversation) is happening\n     */\n    channel: string;\n    /**\n     * Name of the integration that created the [Conversation](#schema_conversation)\n     */\n    integration: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [Conversation](#schema_conversation). The set of [Tags](/docs/developers/concepts/tags) available on a [Conversation](#schema_conversation) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Number of messages in the conversation\n     */\n    messageCount: number;\n    /**\n     * **EXPERIMENTAL** - Optional shared properties that can be accessed and modified by both the bot and any of its integrations.\n     */\n    properties?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetConversationRequestHeaders {}\n\nexport interface GetConversationRequestQuery {}\n\nexport interface GetConversationRequestParams {\n  id: string;\n}\n\nexport interface GetConversationRequestBody {}\n\nexport type GetConversationInput = GetConversationRequestBody & GetConversationRequestHeaders & GetConversationRequestQuery & GetConversationRequestParams\n\nexport type GetConversationRequest = {\n  headers: GetConversationRequestHeaders;\n  query: GetConversationRequestQuery;\n  params: GetConversationRequestParams;\n  body: GetConversationRequestBody;\n}\n\nexport const parseReq = (input: GetConversationInput): GetConversationRequest & { path: string } => {\n  return {\n    path: `/v1/chat/conversations/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetConversationResponse {\n  /**\n   * The [Conversation](#schema_conversation) object represents an exchange of messages between one or more users. A [Conversation](#schema_conversation) is always linked to an integration's channels. For example, a Slack channel represents a conversation.\n   */\n  conversation: {\n    /**\n     * Id of the [Conversation](#schema_conversation)\n     */\n    id: string;\n    /**\n     * @deprecated\n     * Unused. This field will be removed in the future.\n     */\n    currentTaskId?: string;\n    /**\n     * Creation date of the [Conversation](#schema_conversation) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Conversation](#schema_conversation) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Name of the channel where the [Conversation](#schema_conversation) is happening\n     */\n    channel: string;\n    /**\n     * Name of the integration that created the [Conversation](#schema_conversation)\n     */\n    integration: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [Conversation](#schema_conversation). The set of [Tags](/docs/developers/concepts/tags) available on a [Conversation](#schema_conversation) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Number of messages in the conversation\n     */\n    messageCount: number;\n    /**\n     * **EXPERIMENTAL** - Optional shared properties that can be accessed and modified by both the bot and any of its integrations.\n     */\n    properties?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListConversationsRequestHeaders {}\n\nexport interface ListConversationsRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n  sortField?: \"createdAt\" | \"updatedAt\";\n  sortDirection?: \"asc\" | \"desc\";\n  tags?: {\n    [k: string]: string;\n  };\n  participantIds?: string[];\n  integrationName?: string;\n  channel?: string;\n  afterDate?: string;\n  beforeDate?: string;\n  minMessageCount?: number;\n  maxMessageCount?: number;\n}\n\nexport interface ListConversationsRequestParams {}\n\nexport interface ListConversationsRequestBody {}\n\nexport type ListConversationsInput = ListConversationsRequestBody & ListConversationsRequestHeaders & ListConversationsRequestQuery & ListConversationsRequestParams\n\nexport type ListConversationsRequest = {\n  headers: ListConversationsRequestHeaders;\n  query: ListConversationsRequestQuery;\n  params: ListConversationsRequestParams;\n  body: ListConversationsRequestBody;\n}\n\nexport const parseReq = (input: ListConversationsInput): ListConversationsRequest & { path: string } => {\n  return {\n    path: `/v1/chat/conversations`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'], 'sortField': input['sortField'], 'sortDirection': input['sortDirection'], 'tags': input['tags'], 'participantIds': input['participantIds'], 'integrationName': input['integrationName'], 'channel': input['channel'], 'afterDate': input['afterDate'], 'beforeDate': input['beforeDate'], 'minMessageCount': input['minMessageCount'], 'maxMessageCount': input['maxMessageCount'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListConversationsResponse {\n  conversations: {\n    /**\n     * Id of the [Conversation](#schema_conversation)\n     */\n    id: string;\n    /**\n     * @deprecated\n     * Unused. This field will be removed in the future.\n     */\n    currentTaskId?: string;\n    /**\n     * Creation date of the [Conversation](#schema_conversation) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Conversation](#schema_conversation) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Name of the channel where the [Conversation](#schema_conversation) is happening\n     */\n    channel: string;\n    /**\n     * Name of the integration that created the [Conversation](#schema_conversation)\n     */\n    integration: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [Conversation](#schema_conversation). The set of [Tags](/docs/developers/concepts/tags) available on a [Conversation](#schema_conversation) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Number of messages in the conversation\n     */\n    messageCount: number;\n    /**\n     * **EXPERIMENTAL** - Optional shared properties that can be accessed and modified by both the bot and any of its integrations.\n     */\n    properties?: {\n      [k: string]: string;\n    };\n  }[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetOrCreateConversationRequestHeaders {}\n\nexport interface GetOrCreateConversationRequestQuery {}\n\nexport interface GetOrCreateConversationRequestParams {}\n\nexport interface GetOrCreateConversationRequestBody {\n  /**\n   * Channel name\n   */\n  channel: string;\n  /**\n   * Tags for the [Conversation](#schema_conversation). Set to null or empty string to remove.\n   */\n  tags: {\n    [k: string]: string | null;\n  };\n  /**\n   * @deprecated\n   * [DEPRECATED] To create a conversation from within a bot, call an action of the integration instead.\n   */\n  integrationName?: string;\n  /**\n   * **EXPERIMENTAL** - Optional shared properties. Set individual properties to null or empty string to remove them.\n   */\n  properties?: {\n    [k: string]: string | null;\n  };\n  /**\n   * Optional list of tag names to use for strict matching when looking up existing conversations. If provided, all specified tags must match exactly for a conversation to be considered a match. For example, with an existing conversation whose tags are {\"foo\": \"a\", \"bar\": \"b\", baz: \"c\"}: Without this parameter, ALL tags must match exactly. With [\"bar\",\"baz\"], all listed tags must match their values, and other tags are not considered.\n   */\n  discriminateByTags?: string[];\n}\n\nexport type GetOrCreateConversationInput = GetOrCreateConversationRequestBody & GetOrCreateConversationRequestHeaders & GetOrCreateConversationRequestQuery & GetOrCreateConversationRequestParams\n\nexport type GetOrCreateConversationRequest = {\n  headers: GetOrCreateConversationRequestHeaders;\n  query: GetOrCreateConversationRequestQuery;\n  params: GetOrCreateConversationRequestParams;\n  body: GetOrCreateConversationRequestBody;\n}\n\nexport const parseReq = (input: GetOrCreateConversationInput): GetOrCreateConversationRequest & { path: string } => {\n  return {\n    path: `/v1/chat/conversations/get-or-create`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'channel': input['channel'], 'tags': input['tags'], 'integrationName': input['integrationName'], 'properties': input['properties'], 'discriminateByTags': input['discriminateByTags'] },\n  }\n}\n\nexport interface GetOrCreateConversationResponse {\n  /**\n   * The [Conversation](#schema_conversation) object represents an exchange of messages between one or more users. A [Conversation](#schema_conversation) is always linked to an integration's channels. For example, a Slack channel represents a conversation.\n   */\n  conversation: {\n    /**\n     * Id of the [Conversation](#schema_conversation)\n     */\n    id: string;\n    /**\n     * @deprecated\n     * Unused. This field will be removed in the future.\n     */\n    currentTaskId?: string;\n    /**\n     * Creation date of the [Conversation](#schema_conversation) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Conversation](#schema_conversation) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Name of the channel where the [Conversation](#schema_conversation) is happening\n     */\n    channel: string;\n    /**\n     * Name of the integration that created the [Conversation](#schema_conversation)\n     */\n    integration: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [Conversation](#schema_conversation). The set of [Tags](/docs/developers/concepts/tags) available on a [Conversation](#schema_conversation) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Number of messages in the conversation\n     */\n    messageCount: number;\n    /**\n     * **EXPERIMENTAL** - Optional shared properties that can be accessed and modified by both the bot and any of its integrations.\n     */\n    properties?: {\n      [k: string]: string;\n    };\n  };\n  meta: {\n    created: boolean;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface UpdateConversationRequestHeaders {}\n\nexport interface UpdateConversationRequestQuery {}\n\nexport interface UpdateConversationRequestParams {\n  id: string;\n}\n\nexport interface UpdateConversationRequestBody {\n  /**\n   * @deprecated\n   * Unused. This parameter will be ignored if provided and should not be used when updating a conversation.\n   */\n  currentTaskId?: string;\n  /**\n   * Tags for the [Conversation](#schema_conversation). Set to null or empty string to remove.\n   */\n  tags?: {\n    [k: string]: string | null;\n  };\n  /**\n   * **EXPERIMENTAL** - Optional shared properties that can be accessed and modified by both the bot and any of its integrations. Set individual properties to null to remove them.\n   */\n  properties?: {\n    [k: string]: string | null;\n  };\n}\n\nexport type UpdateConversationInput = UpdateConversationRequestBody & UpdateConversationRequestHeaders & UpdateConversationRequestQuery & UpdateConversationRequestParams\n\nexport type UpdateConversationRequest = {\n  headers: UpdateConversationRequestHeaders;\n  query: UpdateConversationRequestQuery;\n  params: UpdateConversationRequestParams;\n  body: UpdateConversationRequestBody;\n}\n\nexport const parseReq = (input: UpdateConversationInput): UpdateConversationRequest & { path: string } => {\n  return {\n    path: `/v1/chat/conversations/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: { 'currentTaskId': input['currentTaskId'], 'tags': input['tags'], 'properties': input['properties'] },\n  }\n}\n\nexport interface UpdateConversationResponse {\n  /**\n   * The [Conversation](#schema_conversation) object represents an exchange of messages between one or more users. A [Conversation](#schema_conversation) is always linked to an integration's channels. For example, a Slack channel represents a conversation.\n   */\n  conversation: {\n    /**\n     * Id of the [Conversation](#schema_conversation)\n     */\n    id: string;\n    /**\n     * @deprecated\n     * Unused. This field will be removed in the future.\n     */\n    currentTaskId?: string;\n    /**\n     * Creation date of the [Conversation](#schema_conversation) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Conversation](#schema_conversation) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Name of the channel where the [Conversation](#schema_conversation) is happening\n     */\n    channel: string;\n    /**\n     * Name of the integration that created the [Conversation](#schema_conversation)\n     */\n    integration: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [Conversation](#schema_conversation). The set of [Tags](/docs/developers/concepts/tags) available on a [Conversation](#schema_conversation) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Number of messages in the conversation\n     */\n    messageCount: number;\n    /**\n     * **EXPERIMENTAL** - Optional shared properties that can be accessed and modified by both the bot and any of its integrations.\n     */\n    properties?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface DeleteConversationRequestHeaders {}\n\nexport interface DeleteConversationRequestQuery {}\n\nexport interface DeleteConversationRequestParams {\n  id: string;\n}\n\nexport interface DeleteConversationRequestBody {}\n\nexport type DeleteConversationInput = DeleteConversationRequestBody & DeleteConversationRequestHeaders & DeleteConversationRequestQuery & DeleteConversationRequestParams\n\nexport type DeleteConversationRequest = {\n  headers: DeleteConversationRequestHeaders;\n  query: DeleteConversationRequestQuery;\n  params: DeleteConversationRequestParams;\n  body: DeleteConversationRequestBody;\n}\n\nexport const parseReq = (input: DeleteConversationInput): DeleteConversationRequest & { path: string } => {\n  return {\n    path: `/v1/chat/conversations/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface DeleteConversationResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListParticipantsRequestHeaders {}\n\nexport interface ListParticipantsRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n}\n\nexport interface ListParticipantsRequestParams {\n  id: string;\n}\n\nexport interface ListParticipantsRequestBody {}\n\nexport type ListParticipantsInput = ListParticipantsRequestBody & ListParticipantsRequestHeaders & ListParticipantsRequestQuery & ListParticipantsRequestParams\n\nexport type ListParticipantsRequest = {\n  headers: ListParticipantsRequestHeaders;\n  query: ListParticipantsRequestQuery;\n  params: ListParticipantsRequestParams;\n  body: ListParticipantsRequestBody;\n}\n\nexport const parseReq = (input: ListParticipantsInput): ListParticipantsRequest & { path: string } => {\n  return {\n    path: `/v1/chat/conversations/${encodeURIComponent(input['id'])}/participants`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'] },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface ListParticipantsResponse {\n  participants: {\n    /**\n     * Id of the [User](#schema_user)\n     */\n    id: string;\n    /**\n     * Creation date of the [User](#schema_user) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [User](#schema_user) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [User](#schema_user). The set of [Tags](/docs/developers/concepts/tags) available on a [User](#schema_user) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Name of the [User](#schema_user)\n     */\n    name?: string;\n    /**\n     * Picture URL of the [User](#schema_user)\n     */\n    pictureUrl?: string;\n    /**\n     * Optional properties\n     */\n    properties?: {\n      [k: string]: string;\n    };\n    /**\n     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  }[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface AddParticipantRequestHeaders {}\n\nexport interface AddParticipantRequestQuery {}\n\nexport interface AddParticipantRequestParams {\n  id: string;\n}\n\nexport interface AddParticipantRequestBody {\n  /**\n   * User id\n   */\n  userId: string;\n}\n\nexport type AddParticipantInput = AddParticipantRequestBody & AddParticipantRequestHeaders & AddParticipantRequestQuery & AddParticipantRequestParams\n\nexport type AddParticipantRequest = {\n  headers: AddParticipantRequestHeaders;\n  query: AddParticipantRequestQuery;\n  params: AddParticipantRequestParams;\n  body: AddParticipantRequestBody;\n}\n\nexport const parseReq = (input: AddParticipantInput): AddParticipantRequest & { path: string } => {\n  return {\n    path: `/v1/chat/conversations/${encodeURIComponent(input['id'])}/participants`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: { 'userId': input['userId'] },\n  }\n}\n\nexport interface AddParticipantResponse {\n  /**\n   * The user object represents someone interacting with the bot within a specific integration. The same person interacting with a bot in slack and messenger will be represented with two different users.\n   */\n  participant: {\n    /**\n     * Id of the [User](#schema_user)\n     */\n    id: string;\n    /**\n     * Creation date of the [User](#schema_user) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [User](#schema_user) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [User](#schema_user). The set of [Tags](/docs/developers/concepts/tags) available on a [User](#schema_user) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Name of the [User](#schema_user)\n     */\n    name?: string;\n    /**\n     * Picture URL of the [User](#schema_user)\n     */\n    pictureUrl?: string;\n    /**\n     * Optional properties\n     */\n    properties?: {\n      [k: string]: string;\n    };\n    /**\n     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetParticipantRequestHeaders {}\n\nexport interface GetParticipantRequestQuery {}\n\nexport interface GetParticipantRequestParams {\n  id: string;\n  userId: string;\n}\n\nexport interface GetParticipantRequestBody {}\n\nexport type GetParticipantInput = GetParticipantRequestBody & GetParticipantRequestHeaders & GetParticipantRequestQuery & GetParticipantRequestParams\n\nexport type GetParticipantRequest = {\n  headers: GetParticipantRequestHeaders;\n  query: GetParticipantRequestQuery;\n  params: GetParticipantRequestParams;\n  body: GetParticipantRequestBody;\n}\n\nexport const parseReq = (input: GetParticipantInput): GetParticipantRequest & { path: string } => {\n  return {\n    path: `/v1/chat/conversations/${encodeURIComponent(input['id'])}/participants/${encodeURIComponent(input['userId'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'], 'userId': input['userId'] },\n    body: {  },\n  }\n}\n\nexport interface GetParticipantResponse {\n  /**\n   * The user object represents someone interacting with the bot within a specific integration. The same person interacting with a bot in slack and messenger will be represented with two different users.\n   */\n  participant: {\n    /**\n     * Id of the [User](#schema_user)\n     */\n    id: string;\n    /**\n     * Creation date of the [User](#schema_user) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [User](#schema_user) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [User](#schema_user). The set of [Tags](/docs/developers/concepts/tags) available on a [User](#schema_user) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Name of the [User](#schema_user)\n     */\n    name?: string;\n    /**\n     * Picture URL of the [User](#schema_user)\n     */\n    pictureUrl?: string;\n    /**\n     * Optional properties\n     */\n    properties?: {\n      [k: string]: string;\n    };\n    /**\n     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface RemoveParticipantRequestHeaders {}\n\nexport interface RemoveParticipantRequestQuery {}\n\nexport interface RemoveParticipantRequestParams {\n  id: string;\n  userId: string;\n}\n\nexport interface RemoveParticipantRequestBody {}\n\nexport type RemoveParticipantInput = RemoveParticipantRequestBody & RemoveParticipantRequestHeaders & RemoveParticipantRequestQuery & RemoveParticipantRequestParams\n\nexport type RemoveParticipantRequest = {\n  headers: RemoveParticipantRequestHeaders;\n  query: RemoveParticipantRequestQuery;\n  params: RemoveParticipantRequestParams;\n  body: RemoveParticipantRequestBody;\n}\n\nexport const parseReq = (input: RemoveParticipantInput): RemoveParticipantRequest & { path: string } => {\n  return {\n    path: `/v1/chat/conversations/${encodeURIComponent(input['id'])}/participants/${encodeURIComponent(input['userId'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'], 'userId': input['userId'] },\n    body: {  },\n  }\n}\n\nexport interface RemoveParticipantResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CreateEventRequestHeaders {}\n\nexport interface CreateEventRequestQuery {}\n\nexport interface CreateEventRequestParams {}\n\nexport interface CreateEventRequestBody {\n  /**\n   * Type of the [Event](#schema_event).\n   */\n  type: string;\n  /**\n   * Payload is the content of the event defined by the integration installed on your bot or one of the default events created by our API.\n   */\n  payload: {\n    [k: string]: any;\n  };\n  /**\n   * Schedule the Event to be sent at a specific time. Either dateTime or delay must be provided.\n   */\n  schedule?: {\n    /**\n     * When the [Event](#schema_event) will be sent, in the ISO 8601 format\n     */\n    dateTime?: string;\n    /**\n     * Delay in milliseconds before sending the [Event](#schema_event)\n     */\n    delay?: number;\n  };\n  /**\n   * ID of the [Conversation](#schema_conversation) to link the event to.\n   */\n  conversationId?: string;\n  /**\n   * ID of the [User](#schema_user) to link the event to.\n   */\n  userId?: string;\n  /**\n   * ID of the [Workflow](#schema_workflow) to link the event to.\n   */\n  workflowId?: string;\n  /**\n   * ID of the [Message](#schema_message) to link the event to.\n   */\n  messageId?: string;\n}\n\nexport type CreateEventInput = CreateEventRequestBody & CreateEventRequestHeaders & CreateEventRequestQuery & CreateEventRequestParams\n\nexport type CreateEventRequest = {\n  headers: CreateEventRequestHeaders;\n  query: CreateEventRequestQuery;\n  params: CreateEventRequestParams;\n  body: CreateEventRequestBody;\n}\n\nexport const parseReq = (input: CreateEventInput): CreateEventRequest & { path: string } => {\n  return {\n    path: `/v1/chat/events`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'type': input['type'], 'payload': input['payload'], 'schedule': input['schedule'], 'conversationId': input['conversationId'], 'userId': input['userId'], 'workflowId': input['workflowId'], 'messageId': input['messageId'] },\n  }\n}\n\nexport interface CreateEventResponse {\n  /**\n   * The event object represents an action or an occurrence.\n   */\n  event: {\n    /**\n     * Id of the [Event](#schema_event)\n     */\n    id: string;\n    /**\n     * Creation date of the [Event](#schema_event) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Type of the [Event](#schema_event).\n     */\n    type: string;\n    /**\n     * Payload is the content of the event defined by the integration installed on your bot or one of the default events created by our api.\n     */\n    payload: {\n      [k: string]: any;\n    };\n    /**\n     * ID of the [Conversation](#schema_conversation) to link the event to.\n     */\n    conversationId?: string;\n    /**\n     * ID of the [User](#schema_user) to link the event to.\n     */\n    userId?: string;\n    /**\n     * ID of the [Message](#schema_message) to link the event to.\n     */\n    messageId?: string;\n    status: \"pending\" | \"processed\" | \"ignored\" | \"failed\" | \"scheduled\" | \"canceled\";\n    /**\n     * Reason why the event failed to be processed\n     */\n    failureReason: string | null;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetEventRequestHeaders {}\n\nexport interface GetEventRequestQuery {}\n\nexport interface GetEventRequestParams {\n  id: string;\n}\n\nexport interface GetEventRequestBody {}\n\nexport type GetEventInput = GetEventRequestBody & GetEventRequestHeaders & GetEventRequestQuery & GetEventRequestParams\n\nexport type GetEventRequest = {\n  headers: GetEventRequestHeaders;\n  query: GetEventRequestQuery;\n  params: GetEventRequestParams;\n  body: GetEventRequestBody;\n}\n\nexport const parseReq = (input: GetEventInput): GetEventRequest & { path: string } => {\n  return {\n    path: `/v1/chat/events/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetEventResponse {\n  /**\n   * The event object represents an action or an occurrence.\n   */\n  event: {\n    /**\n     * Id of the [Event](#schema_event)\n     */\n    id: string;\n    /**\n     * Creation date of the [Event](#schema_event) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Type of the [Event](#schema_event).\n     */\n    type: string;\n    /**\n     * Payload is the content of the event defined by the integration installed on your bot or one of the default events created by our api.\n     */\n    payload: {\n      [k: string]: any;\n    };\n    /**\n     * ID of the [Conversation](#schema_conversation) to link the event to.\n     */\n    conversationId?: string;\n    /**\n     * ID of the [User](#schema_user) to link the event to.\n     */\n    userId?: string;\n    /**\n     * ID of the [Message](#schema_message) to link the event to.\n     */\n    messageId?: string;\n    status: \"pending\" | \"processed\" | \"ignored\" | \"failed\" | \"scheduled\" | \"canceled\";\n    /**\n     * Reason why the event failed to be processed\n     */\n    failureReason: string | null;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListEventsRequestHeaders {}\n\nexport interface ListEventsRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n  type?: string;\n  conversationId?: string;\n  userId?: string;\n  messageId?: string;\n  workflowId?: string;\n  status?: \"pending\" | \"ignored\" | \"processed\" | \"failed\" | \"scheduled\";\n}\n\nexport interface ListEventsRequestParams {}\n\nexport interface ListEventsRequestBody {}\n\nexport type ListEventsInput = ListEventsRequestBody & ListEventsRequestHeaders & ListEventsRequestQuery & ListEventsRequestParams\n\nexport type ListEventsRequest = {\n  headers: ListEventsRequestHeaders;\n  query: ListEventsRequestQuery;\n  params: ListEventsRequestParams;\n  body: ListEventsRequestBody;\n}\n\nexport const parseReq = (input: ListEventsInput): ListEventsRequest & { path: string } => {\n  return {\n    path: `/v1/chat/events`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'], 'type': input['type'], 'conversationId': input['conversationId'], 'userId': input['userId'], 'messageId': input['messageId'], 'workflowId': input['workflowId'], 'status': input['status'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListEventsResponse {\n  events: {\n    /**\n     * Id of the [Event](#schema_event)\n     */\n    id: string;\n    /**\n     * Creation date of the [Event](#schema_event) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Type of the [Event](#schema_event).\n     */\n    type: string;\n    /**\n     * Payload is the content of the event defined by the integration installed on your bot or one of the default events created by our api.\n     */\n    payload: {\n      [k: string]: any;\n    };\n    /**\n     * ID of the [Conversation](#schema_conversation) to link the event to.\n     */\n    conversationId?: string;\n    /**\n     * ID of the [User](#schema_user) to link the event to.\n     */\n    userId?: string;\n    /**\n     * ID of the [Message](#schema_message) to link the event to.\n     */\n    messageId?: string;\n    status: \"pending\" | \"processed\" | \"ignored\" | \"failed\" | \"scheduled\" | \"canceled\";\n    /**\n     * Reason why the event failed to be processed\n     */\n    failureReason: string | null;\n  }[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CancelScheduledEventRequestHeaders {}\n\nexport interface CancelScheduledEventRequestQuery {}\n\nexport interface CancelScheduledEventRequestParams {\n  id: string;\n}\n\nexport interface CancelScheduledEventRequestBody {}\n\nexport type CancelScheduledEventInput = CancelScheduledEventRequestBody & CancelScheduledEventRequestHeaders & CancelScheduledEventRequestQuery & CancelScheduledEventRequestParams\n\nexport type CancelScheduledEventRequest = {\n  headers: CancelScheduledEventRequestHeaders;\n  query: CancelScheduledEventRequestQuery;\n  params: CancelScheduledEventRequestParams;\n  body: CancelScheduledEventRequestBody;\n}\n\nexport const parseReq = (input: CancelScheduledEventInput): CancelScheduledEventRequest & { path: string } => {\n  return {\n    path: `/v1/chat/events/scheduled/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface CancelScheduledEventResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CreateMessageRequestHeaders {}\n\nexport interface CreateMessageRequestQuery {}\n\nexport interface CreateMessageRequestParams {}\n\nexport interface CreateMessageRequestBody {\n  /**\n   * Payload is the content type of the message. Accepted payload options: Text, Image, Choice, Dropdown, Card, Carousel, File, Audio, Video, Location\n   */\n  payload: {\n    [k: string]: any;\n  };\n  /**\n   * ID of the [User](#schema_user)\n   */\n  userId: string;\n  /**\n   * ID of the [Conversation](#schema_conversation)\n   */\n  conversationId: string;\n  /**\n   * Type of the [Message](#schema_message) represents the resource type that the message is related to\n   */\n  type: string;\n  /**\n   * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [Message](#schema_message). The set of [Tags](/docs/developers/concepts/tags) available on a [Message](#schema_message) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n   */\n  tags: {\n    [k: string]: string;\n  };\n  /**\n   * Schedule the Message to be sent at a specific time. Either dateTime or delay must be provided.\n   */\n  schedule?: {\n    /**\n     * When the [Message](#schema_message) will be sent, in the ISO 8601 format\n     */\n    dateTime?: string;\n    /**\n     * Delay in milliseconds before sending the [Message](#schema_message)\n     */\n    delay?: number;\n  };\n  origin?: \"synthetic\";\n}\n\nexport type CreateMessageInput = CreateMessageRequestBody & CreateMessageRequestHeaders & CreateMessageRequestQuery & CreateMessageRequestParams\n\nexport type CreateMessageRequest = {\n  headers: CreateMessageRequestHeaders;\n  query: CreateMessageRequestQuery;\n  params: CreateMessageRequestParams;\n  body: CreateMessageRequestBody;\n}\n\nexport const parseReq = (input: CreateMessageInput): CreateMessageRequest & { path: string } => {\n  return {\n    path: `/v1/chat/messages`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'payload': input['payload'], 'userId': input['userId'], 'conversationId': input['conversationId'], 'type': input['type'], 'tags': input['tags'], 'schedule': input['schedule'], 'origin': input['origin'] },\n  }\n}\n\nexport interface CreateMessageResponse {\n  /**\n   * The Message object represents a message in a [Conversation](#schema_conversation) for a specific [User](#schema_user).\n   */\n  message: {\n    /**\n     * Id of the [Message](#schema_message)\n     */\n    id: string;\n    /**\n     * Creation date of the [Message](#schema_message) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Update date of the [Message](#schema_message) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Type of the [Message](#schema_message) represents the resource type that the message is related to\n     */\n    type: string;\n    /**\n     * Payload is the content type of the message. Accepted payload options: Text, Image, Choice, Dropdown, Card, Carousel, File, Audio, Video, Location\n     */\n    payload: {\n      [k: string]: any;\n    };\n    /**\n     * Direction of the message (`incoming` or `outgoing`).\n     */\n    direction: \"incoming\" | \"outgoing\";\n    /**\n     * ID of the [User](#schema_user)\n     */\n    userId: string;\n    /**\n     * ID of the [Conversation](#schema_conversation)\n     */\n    conversationId: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [Conversation](#schema_conversation). The set of [Tags](/docs/developers/concepts/tags) available on a [Conversation](#schema_conversation) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Origin of the message (`synthetic`).\n     */\n    origin?: \"synthetic\";\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetOrCreateMessageRequestHeaders {}\n\nexport interface GetOrCreateMessageRequestQuery {}\n\nexport interface GetOrCreateMessageRequestParams {}\n\nexport interface GetOrCreateMessageRequestBody {\n  /**\n   * Payload is the content type of the message. Accepted payload options: Text, Image, Choice, Dropdown, Card, Carousel, File, Audio, Video, Location\n   */\n  payload?: {\n    [k: string]: any;\n  };\n  /**\n   * ID of the [User](#schema_user)\n   */\n  userId: string;\n  /**\n   * ID of the [Conversation](#schema_conversation)\n   */\n  conversationId: string;\n  /**\n   * Type of the [Message](#schema_message) represents the resource type that the message is related to\n   */\n  type: string;\n  /**\n   * Tags for the message. Set to null or empty string to remove.\n   */\n  tags: {\n    [k: string]: string | null;\n  };\n  /**\n   * Schedule the Message to be sent at a specific time. Either dateTime or delay must be provided.\n   */\n  schedule?: {\n    /**\n     * When the [Message](#schema_message) will be sent, in the ISO 8601 format\n     */\n    dateTime?: string;\n    /**\n     * Delay in milliseconds before sending the [Message](#schema_message)\n     */\n    delay?: number;\n  };\n  origin?: \"synthetic\";\n  /**\n   * Optional list of tag names to use for strict matching when looking up existing messages. If provided, all specified tags must match exactly for a message to be considered a match. For example, with an existing message whose tags are {\"foo\": \"a\", \"bar\": \"b\", baz: \"c\"}: Without this parameter, ALL tags must match exactly. With [\"bar\",\"baz\"], all listed tags must match their values, and other tags are not considered.\n   */\n  discriminateByTags?: string[];\n}\n\nexport type GetOrCreateMessageInput = GetOrCreateMessageRequestBody & GetOrCreateMessageRequestHeaders & GetOrCreateMessageRequestQuery & GetOrCreateMessageRequestParams\n\nexport type GetOrCreateMessageRequest = {\n  headers: GetOrCreateMessageRequestHeaders;\n  query: GetOrCreateMessageRequestQuery;\n  params: GetOrCreateMessageRequestParams;\n  body: GetOrCreateMessageRequestBody;\n}\n\nexport const parseReq = (input: GetOrCreateMessageInput): GetOrCreateMessageRequest & { path: string } => {\n  return {\n    path: `/v1/chat/messages/get-or-create`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'payload': input['payload'], 'userId': input['userId'], 'conversationId': input['conversationId'], 'type': input['type'], 'tags': input['tags'], 'schedule': input['schedule'], 'origin': input['origin'], 'discriminateByTags': input['discriminateByTags'] },\n  }\n}\n\nexport interface GetOrCreateMessageResponse {\n  /**\n   * The Message object represents a message in a [Conversation](#schema_conversation) for a specific [User](#schema_user).\n   */\n  message: {\n    /**\n     * Id of the [Message](#schema_message)\n     */\n    id: string;\n    /**\n     * Creation date of the [Message](#schema_message) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Update date of the [Message](#schema_message) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Type of the [Message](#schema_message) represents the resource type that the message is related to\n     */\n    type: string;\n    /**\n     * Payload is the content type of the message. Accepted payload options: Text, Image, Choice, Dropdown, Card, Carousel, File, Audio, Video, Location\n     */\n    payload: {\n      [k: string]: any;\n    };\n    /**\n     * Direction of the message (`incoming` or `outgoing`).\n     */\n    direction: \"incoming\" | \"outgoing\";\n    /**\n     * ID of the [User](#schema_user)\n     */\n    userId: string;\n    /**\n     * ID of the [Conversation](#schema_conversation)\n     */\n    conversationId: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [Conversation](#schema_conversation). The set of [Tags](/docs/developers/concepts/tags) available on a [Conversation](#schema_conversation) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Origin of the message (`synthetic`).\n     */\n    origin?: \"synthetic\";\n  };\n  meta: {\n    created: boolean;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetMessageRequestHeaders {}\n\nexport interface GetMessageRequestQuery {}\n\nexport interface GetMessageRequestParams {\n  id: string;\n}\n\nexport interface GetMessageRequestBody {}\n\nexport type GetMessageInput = GetMessageRequestBody & GetMessageRequestHeaders & GetMessageRequestQuery & GetMessageRequestParams\n\nexport type GetMessageRequest = {\n  headers: GetMessageRequestHeaders;\n  query: GetMessageRequestQuery;\n  params: GetMessageRequestParams;\n  body: GetMessageRequestBody;\n}\n\nexport const parseReq = (input: GetMessageInput): GetMessageRequest & { path: string } => {\n  return {\n    path: `/v1/chat/messages/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetMessageResponse {\n  /**\n   * The Message object represents a message in a [Conversation](#schema_conversation) for a specific [User](#schema_user).\n   */\n  message: {\n    /**\n     * Id of the [Message](#schema_message)\n     */\n    id: string;\n    /**\n     * Creation date of the [Message](#schema_message) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Update date of the [Message](#schema_message) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Type of the [Message](#schema_message) represents the resource type that the message is related to\n     */\n    type: string;\n    /**\n     * Payload is the content type of the message. Accepted payload options: Text, Image, Choice, Dropdown, Card, Carousel, File, Audio, Video, Location\n     */\n    payload: {\n      [k: string]: any;\n    };\n    /**\n     * Direction of the message (`incoming` or `outgoing`).\n     */\n    direction: \"incoming\" | \"outgoing\";\n    /**\n     * ID of the [User](#schema_user)\n     */\n    userId: string;\n    /**\n     * ID of the [Conversation](#schema_conversation)\n     */\n    conversationId: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [Conversation](#schema_conversation). The set of [Tags](/docs/developers/concepts/tags) available on a [Conversation](#schema_conversation) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Origin of the message (`synthetic`).\n     */\n    origin?: \"synthetic\";\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface UpdateMessageRequestHeaders {}\n\nexport interface UpdateMessageRequestQuery {}\n\nexport interface UpdateMessageRequestParams {\n  id: string;\n}\n\nexport interface UpdateMessageRequestBody {\n  /**\n   * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [Message](#schema_message). The set of [Tags](/docs/developers/concepts/tags) available on a [Message](#schema_message) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Set to null or empty string to remove.\n   */\n  tags?: {\n    [k: string]: string | null;\n  };\n  /**\n   * Payload is the content type of the message. Accepted payload options: Text, Image, Choice, Dropdown, Card, Carousel, File, Audio, Video, Location\n   */\n  payload?: {\n    [k: string]: any;\n  };\n}\n\nexport type UpdateMessageInput = UpdateMessageRequestBody & UpdateMessageRequestHeaders & UpdateMessageRequestQuery & UpdateMessageRequestParams\n\nexport type UpdateMessageRequest = {\n  headers: UpdateMessageRequestHeaders;\n  query: UpdateMessageRequestQuery;\n  params: UpdateMessageRequestParams;\n  body: UpdateMessageRequestBody;\n}\n\nexport const parseReq = (input: UpdateMessageInput): UpdateMessageRequest & { path: string } => {\n  return {\n    path: `/v1/chat/messages/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: { 'tags': input['tags'], 'payload': input['payload'] },\n  }\n}\n\nexport interface UpdateMessageResponse {\n  /**\n   * The Message object represents a message in a [Conversation](#schema_conversation) for a specific [User](#schema_user).\n   */\n  message: {\n    /**\n     * Id of the [Message](#schema_message)\n     */\n    id: string;\n    /**\n     * Creation date of the [Message](#schema_message) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Update date of the [Message](#schema_message) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Type of the [Message](#schema_message) represents the resource type that the message is related to\n     */\n    type: string;\n    /**\n     * Payload is the content type of the message. Accepted payload options: Text, Image, Choice, Dropdown, Card, Carousel, File, Audio, Video, Location\n     */\n    payload: {\n      [k: string]: any;\n    };\n    /**\n     * Direction of the message (`incoming` or `outgoing`).\n     */\n    direction: \"incoming\" | \"outgoing\";\n    /**\n     * ID of the [User](#schema_user)\n     */\n    userId: string;\n    /**\n     * ID of the [Conversation](#schema_conversation)\n     */\n    conversationId: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [Conversation](#schema_conversation). The set of [Tags](/docs/developers/concepts/tags) available on a [Conversation](#schema_conversation) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Origin of the message (`synthetic`).\n     */\n    origin?: \"synthetic\";\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListMessagesRequestHeaders {}\n\nexport interface ListMessagesRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n  conversationId?: string;\n  tags?: {\n    [k: string]: string;\n  };\n  afterDate?: string;\n  beforeDate?: string;\n}\n\nexport interface ListMessagesRequestParams {}\n\nexport interface ListMessagesRequestBody {}\n\nexport type ListMessagesInput = ListMessagesRequestBody & ListMessagesRequestHeaders & ListMessagesRequestQuery & ListMessagesRequestParams\n\nexport type ListMessagesRequest = {\n  headers: ListMessagesRequestHeaders;\n  query: ListMessagesRequestQuery;\n  params: ListMessagesRequestParams;\n  body: ListMessagesRequestBody;\n}\n\nexport const parseReq = (input: ListMessagesInput): ListMessagesRequest & { path: string } => {\n  return {\n    path: `/v1/chat/messages`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'], 'conversationId': input['conversationId'], 'tags': input['tags'], 'afterDate': input['afterDate'], 'beforeDate': input['beforeDate'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListMessagesResponse {\n  messages: {\n    /**\n     * Id of the [Message](#schema_message)\n     */\n    id: string;\n    /**\n     * Creation date of the [Message](#schema_message) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Update date of the [Message](#schema_message) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Type of the [Message](#schema_message) represents the resource type that the message is related to\n     */\n    type: string;\n    /**\n     * Payload is the content type of the message. Accepted payload options: Text, Image, Choice, Dropdown, Card, Carousel, File, Audio, Video, Location\n     */\n    payload: {\n      [k: string]: any;\n    };\n    /**\n     * Direction of the message (`incoming` or `outgoing`).\n     */\n    direction: \"incoming\" | \"outgoing\";\n    /**\n     * ID of the [User](#schema_user)\n     */\n    userId: string;\n    /**\n     * ID of the [Conversation](#schema_conversation)\n     */\n    conversationId: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [Conversation](#schema_conversation). The set of [Tags](/docs/developers/concepts/tags) available on a [Conversation](#schema_conversation) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Origin of the message (`synthetic`).\n     */\n    origin?: \"synthetic\";\n  }[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface DeleteMessageRequestHeaders {}\n\nexport interface DeleteMessageRequestQuery {}\n\nexport interface DeleteMessageRequestParams {\n  id: string;\n}\n\nexport interface DeleteMessageRequestBody {}\n\nexport type DeleteMessageInput = DeleteMessageRequestBody & DeleteMessageRequestHeaders & DeleteMessageRequestQuery & DeleteMessageRequestParams\n\nexport type DeleteMessageRequest = {\n  headers: DeleteMessageRequestHeaders;\n  query: DeleteMessageRequestQuery;\n  params: DeleteMessageRequestParams;\n  body: DeleteMessageRequestBody;\n}\n\nexport const parseReq = (input: DeleteMessageInput): DeleteMessageRequest & { path: string } => {\n  return {\n    path: `/v1/chat/messages/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface DeleteMessageResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface InitializeIncomingMessageRequestHeaders {}\n\nexport interface InitializeIncomingMessageRequestQuery {}\n\nexport interface InitializeIncomingMessageRequestParams {}\n\nexport interface InitializeIncomingMessageRequestBody {\n  userId?: string;\n  user?: {\n    /**\n     * Tags for the [User](#schema_user)\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * @deprecated\n     * [DEPRECATED] To create a [User](#schema_user) from within a bot, call an action of the integration instead.\n     */\n    integrationName?: string;\n    /**\n     * Name of the user\n     */\n    name?: string;\n    /**\n     * URI of the user picture\n     */\n    pictureUrl?: string;\n    /**\n     * **EXPERIMENTAL** - Optional shared properties that can be accessed and modified by both the bot and any of its integrations.\n     */\n    properties?: {\n      [k: string]: string;\n    };\n    /**\n     * @deprecated\n     * DEPRECATED - Use properties instead.\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n    /**\n     * Optional list of tag names to use for strict matching when looking up existing messages. If provided, all specified tags must match exactly for a message to be considered a match. For example, with an existing message whose tags are {\"foo\": \"a\", \"bar\": \"b\", baz: \"c\"}: Without this parameter, ALL tags must match exactly. With [\"bar\",\"baz\"], all listed tags must match their values, and other tags are not considered.\n     */\n    discriminateByTags: string[];\n  };\n  conversationId?: string;\n  conversation?: {\n    /**\n     * Channel name\n     */\n    channel: string;\n    /**\n     * Tags for the [Conversation](#schema_conversation)\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * @deprecated\n     * [DEPRECATED] To create a conversation from within a bot, call an action of the integration instead.\n     */\n    integrationName?: string;\n    /**\n     * **EXPERIMENTAL** - Optional shared properties that can be accessed and modified by both the bot and any of its integrations.\n     */\n    properties?: {\n      [k: string]: string;\n    };\n    /**\n     * Optional list of tag names to use for strict matching when looking up existing messages. If provided, all specified tags must match exactly for a message to be considered a match. For example, with an existing message whose tags are {\"foo\": \"a\", \"bar\": \"b\", baz: \"c\"}: Without this parameter, ALL tags must match exactly. With [\"bar\",\"baz\"], all listed tags must match their values, and other tags are not considered.\n     */\n    discriminateByTags: string[];\n  };\n  message?: {\n    /**\n     * Payload is the content type of the message. Accepted payload options: Text, Image, Choice, Dropdown, Card, Carousel, File, Audio, Video, Location\n     */\n    payload: {\n      [k: string]: any;\n    };\n    /**\n     * Type of the [Message](#schema_message) represents the resource type that the message is related to\n     */\n    type: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [Message](#schema_message). The set of [Tags](/docs/developers/concepts/tags) available on a [Message](#schema_message) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n    origin?: \"synthetic\";\n    /**\n     * Optional list of tag names to use for strict matching when looking up existing messages. If provided, all specified tags must match exactly for a message to be considered a match. For example, with an existing message whose tags are {\"foo\": \"a\", \"bar\": \"b\", baz: \"c\"}: Without this parameter, ALL tags must match exactly. With [\"bar\",\"baz\"], all listed tags must match their values, and other tags are not considered.\n     */\n    discriminateByTags: string[];\n  };\n}\n\nexport type InitializeIncomingMessageInput = InitializeIncomingMessageRequestBody & InitializeIncomingMessageRequestHeaders & InitializeIncomingMessageRequestQuery & InitializeIncomingMessageRequestParams\n\nexport type InitializeIncomingMessageRequest = {\n  headers: InitializeIncomingMessageRequestHeaders;\n  query: InitializeIncomingMessageRequestQuery;\n  params: InitializeIncomingMessageRequestParams;\n  body: InitializeIncomingMessageRequestBody;\n}\n\nexport const parseReq = (input: InitializeIncomingMessageInput): InitializeIncomingMessageRequest & { path: string } => {\n  return {\n    path: `/v1/chat/initialize-incoming-message`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'userId': input['userId'], 'user': input['user'], 'conversationId': input['conversationId'], 'conversation': input['conversation'], 'message': input['message'] },\n  }\n}\n\nexport interface InitializeIncomingMessageResponse {\n  /**\n   * The user object represents someone interacting with the bot within a specific integration. The same person interacting with a bot in slack and messenger will be represented with two different users.\n   */\n  user: {\n    /**\n     * Id of the [User](#schema_user)\n     */\n    id: string;\n    /**\n     * Creation date of the [User](#schema_user) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [User](#schema_user) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [User](#schema_user). The set of [Tags](/docs/developers/concepts/tags) available on a [User](#schema_user) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Name of the [User](#schema_user)\n     */\n    name?: string;\n    /**\n     * Picture URL of the [User](#schema_user)\n     */\n    pictureUrl?: string;\n    /**\n     * Optional properties\n     */\n    properties?: {\n      [k: string]: string;\n    };\n    /**\n     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n  /**\n   * The [Conversation](#schema_conversation) object represents an exchange of messages between one or more users. A [Conversation](#schema_conversation) is always linked to an integration's channels. For example, a Slack channel represents a conversation.\n   */\n  conversation: {\n    /**\n     * Id of the [Conversation](#schema_conversation)\n     */\n    id: string;\n    /**\n     * @deprecated\n     * Unused. This field will be removed in the future.\n     */\n    currentTaskId?: string;\n    /**\n     * Creation date of the [Conversation](#schema_conversation) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Conversation](#schema_conversation) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Name of the channel where the [Conversation](#schema_conversation) is happening\n     */\n    channel: string;\n    /**\n     * Name of the integration that created the [Conversation](#schema_conversation)\n     */\n    integration: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [Conversation](#schema_conversation). The set of [Tags](/docs/developers/concepts/tags) available on a [Conversation](#schema_conversation) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Number of messages in the conversation\n     */\n    messageCount: number;\n    /**\n     * **EXPERIMENTAL** - Optional shared properties that can be accessed and modified by both the bot and any of its integrations.\n     */\n    properties?: {\n      [k: string]: string;\n    };\n  };\n  /**\n   * The Message object represents a message in a [Conversation](#schema_conversation) for a specific [User](#schema_user).\n   */\n  message?: {\n    /**\n     * Id of the [Message](#schema_message)\n     */\n    id: string;\n    /**\n     * Creation date of the [Message](#schema_message) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Update date of the [Message](#schema_message) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Type of the [Message](#schema_message) represents the resource type that the message is related to\n     */\n    type: string;\n    /**\n     * Payload is the content type of the message. Accepted payload options: Text, Image, Choice, Dropdown, Card, Carousel, File, Audio, Video, Location\n     */\n    payload: {\n      [k: string]: any;\n    };\n    /**\n     * Direction of the message (`incoming` or `outgoing`).\n     */\n    direction: \"incoming\" | \"outgoing\";\n    /**\n     * ID of the [User](#schema_user)\n     */\n    userId: string;\n    /**\n     * ID of the [Conversation](#schema_conversation)\n     */\n    conversationId: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [Conversation](#schema_conversation). The set of [Tags](/docs/developers/concepts/tags) available on a [Conversation](#schema_conversation) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Origin of the message (`synthetic`).\n     */\n    origin?: \"synthetic\";\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ImportMessagesRequestHeaders {}\n\nexport interface ImportMessagesRequestQuery {}\n\nexport interface ImportMessagesRequestParams {}\n\nexport interface ImportMessagesRequestBody {\n  /**\n   * @maxItems 100\n   */\n  messages: {\n    /**\n     * Payload is the content type of the message. Accepted payload options: Text, Image, Choice, Dropdown, Card, Carousel, File, Audio, Video, Location\n     */\n    payload: {\n      [k: string]: any;\n    };\n    /**\n     * ID of the [User](#schema_user)\n     */\n    userId: string;\n    /**\n     * ID of the [Conversation](#schema_conversation)\n     */\n    conversationId: string;\n    /**\n     * Type of the [Message](#schema_message) represents the resource type that the message is related to\n     */\n    type: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [Message](#schema_message). The set of [Tags](/docs/developers/concepts/tags) available on a [Message](#schema_message) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Creation date of the [Message](#schema_message) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Optional list of tag names to use for strict matching when looking up existing messages. If provided, all specified tags must match exactly for a message to be considered a match. For example, with an existing message whose tags are {\"foo\": \"a\", \"bar\": \"b\", baz: \"c\"}: Without this parameter, ALL tags must match exactly. With [\"bar\",\"baz\"], all listed tags must match their values, and other tags are not considered.\n     */\n    discriminateByTags: string[];\n  }[];\n}\n\nexport type ImportMessagesInput = ImportMessagesRequestBody & ImportMessagesRequestHeaders & ImportMessagesRequestQuery & ImportMessagesRequestParams\n\nexport type ImportMessagesRequest = {\n  headers: ImportMessagesRequestHeaders;\n  query: ImportMessagesRequestQuery;\n  params: ImportMessagesRequestParams;\n  body: ImportMessagesRequestBody;\n}\n\nexport const parseReq = (input: ImportMessagesInput): ImportMessagesRequest & { path: string } => {\n  return {\n    path: `/v1/chat/messages/import-messages`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'messages': input['messages'] },\n  }\n}\n\nexport interface ImportMessagesResponse {\n  messages: {\n    /**\n     * Id of the [Message](#schema_message)\n     */\n    id: string;\n    /**\n     * Creation date of the [Message](#schema_message) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Update date of the [Message](#schema_message) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Type of the [Message](#schema_message) represents the resource type that the message is related to\n     */\n    type: string;\n    /**\n     * Payload is the content type of the message. Accepted payload options: Text, Image, Choice, Dropdown, Card, Carousel, File, Audio, Video, Location\n     */\n    payload: {\n      [k: string]: any;\n    };\n    /**\n     * Direction of the message (`incoming` or `outgoing`).\n     */\n    direction: \"incoming\" | \"outgoing\";\n    /**\n     * ID of the [User](#schema_user)\n     */\n    userId: string;\n    /**\n     * ID of the [Conversation](#schema_conversation)\n     */\n    conversationId: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [Conversation](#schema_conversation). The set of [Tags](/docs/developers/concepts/tags) available on a [Conversation](#schema_conversation) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Origin of the message (`synthetic`).\n     */\n    origin?: \"synthetic\";\n  }[];\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CreateUserRequestHeaders {}\n\nexport interface CreateUserRequestQuery {}\n\nexport interface CreateUserRequestParams {}\n\nexport interface CreateUserRequestBody {\n  /**\n   * Tags for the [User](#schema_user)\n   */\n  tags: {\n    [k: string]: string;\n  };\n  /**\n   * @deprecated\n   * [DEPRECATED] To create a [User](#schema_user) from within a bot, call an action of the integration instead.\n   */\n  integrationName?: string;\n  /**\n   * Name of the user\n   */\n  name?: string;\n  /**\n   * URI of the user picture\n   */\n  pictureUrl?: string;\n  /**\n   * **EXPERIMENTAL** - Optional shared properties that can be accessed and modified by both the bot and any of its integrations.\n   */\n  properties?: {\n    [k: string]: string;\n  };\n  /**\n   * @deprecated\n   * DEPRECATED - Use properties instead.\n   */\n  attributes?: {\n    [k: string]: string;\n  };\n}\n\nexport type CreateUserInput = CreateUserRequestBody & CreateUserRequestHeaders & CreateUserRequestQuery & CreateUserRequestParams\n\nexport type CreateUserRequest = {\n  headers: CreateUserRequestHeaders;\n  query: CreateUserRequestQuery;\n  params: CreateUserRequestParams;\n  body: CreateUserRequestBody;\n}\n\nexport const parseReq = (input: CreateUserInput): CreateUserRequest & { path: string } => {\n  return {\n    path: `/v1/chat/users`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'tags': input['tags'], 'integrationName': input['integrationName'], 'name': input['name'], 'pictureUrl': input['pictureUrl'], 'properties': input['properties'], 'attributes': input['attributes'] },\n  }\n}\n\nexport interface CreateUserResponse {\n  /**\n   * The user object represents someone interacting with the bot within a specific integration. The same person interacting with a bot in slack and messenger will be represented with two different users.\n   */\n  user: {\n    /**\n     * Id of the [User](#schema_user)\n     */\n    id: string;\n    /**\n     * Creation date of the [User](#schema_user) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [User](#schema_user) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [User](#schema_user). The set of [Tags](/docs/developers/concepts/tags) available on a [User](#schema_user) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Name of the [User](#schema_user)\n     */\n    name?: string;\n    /**\n     * Picture URL of the [User](#schema_user)\n     */\n    pictureUrl?: string;\n    /**\n     * Optional properties\n     */\n    properties?: {\n      [k: string]: string;\n    };\n    /**\n     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetUserRequestHeaders {}\n\nexport interface GetUserRequestQuery {}\n\nexport interface GetUserRequestParams {\n  id: string;\n}\n\nexport interface GetUserRequestBody {}\n\nexport type GetUserInput = GetUserRequestBody & GetUserRequestHeaders & GetUserRequestQuery & GetUserRequestParams\n\nexport type GetUserRequest = {\n  headers: GetUserRequestHeaders;\n  query: GetUserRequestQuery;\n  params: GetUserRequestParams;\n  body: GetUserRequestBody;\n}\n\nexport const parseReq = (input: GetUserInput): GetUserRequest & { path: string } => {\n  return {\n    path: `/v1/chat/users/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetUserResponse {\n  /**\n   * The user object represents someone interacting with the bot within a specific integration. The same person interacting with a bot in slack and messenger will be represented with two different users.\n   */\n  user: {\n    /**\n     * Id of the [User](#schema_user)\n     */\n    id: string;\n    /**\n     * Creation date of the [User](#schema_user) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [User](#schema_user) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [User](#schema_user). The set of [Tags](/docs/developers/concepts/tags) available on a [User](#schema_user) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Name of the [User](#schema_user)\n     */\n    name?: string;\n    /**\n     * Picture URL of the [User](#schema_user)\n     */\n    pictureUrl?: string;\n    /**\n     * Optional properties\n     */\n    properties?: {\n      [k: string]: string;\n    };\n    /**\n     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListUsersRequestHeaders {}\n\nexport interface ListUsersRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n  conversationId?: string;\n  tags?: {\n    [k: string]: string;\n  };\n  afterDate?: string;\n  beforeDate?: string;\n  rangeField?: \"updatedAt\" | \"createdAt\";\n  sortField?: \"updatedAt\" | \"createdAt\";\n  sortDirection?: \"asc\" | \"desc\";\n}\n\nexport interface ListUsersRequestParams {}\n\nexport interface ListUsersRequestBody {}\n\nexport type ListUsersInput = ListUsersRequestBody & ListUsersRequestHeaders & ListUsersRequestQuery & ListUsersRequestParams\n\nexport type ListUsersRequest = {\n  headers: ListUsersRequestHeaders;\n  query: ListUsersRequestQuery;\n  params: ListUsersRequestParams;\n  body: ListUsersRequestBody;\n}\n\nexport const parseReq = (input: ListUsersInput): ListUsersRequest & { path: string } => {\n  return {\n    path: `/v1/chat/users`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'], 'conversationId': input['conversationId'], 'tags': input['tags'], 'afterDate': input['afterDate'], 'beforeDate': input['beforeDate'], 'rangeField': input['rangeField'], 'sortField': input['sortField'], 'sortDirection': input['sortDirection'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListUsersResponse {\n  users: {\n    /**\n     * Id of the [User](#schema_user)\n     */\n    id: string;\n    /**\n     * Creation date of the [User](#schema_user) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [User](#schema_user) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [User](#schema_user). The set of [Tags](/docs/developers/concepts/tags) available on a [User](#schema_user) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Name of the [User](#schema_user)\n     */\n    name?: string;\n    /**\n     * Picture URL of the [User](#schema_user)\n     */\n    pictureUrl?: string;\n    /**\n     * Optional properties\n     */\n    properties?: {\n      [k: string]: string;\n    };\n    /**\n     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  }[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetOrCreateUserRequestHeaders {}\n\nexport interface GetOrCreateUserRequestQuery {}\n\nexport interface GetOrCreateUserRequestParams {}\n\nexport interface GetOrCreateUserRequestBody {\n  /**\n   * Tags for the user. Set to null or empty string to remove.\n   */\n  tags: {\n    [k: string]: string | null;\n  };\n  /**\n   * @deprecated\n   * [DEPRECATED] To create a [User](#schema_user) from within a bot, call an action of the integration instead.\n   */\n  integrationName?: string;\n  /**\n   * Name of the user\n   */\n  name?: string;\n  /**\n   * URI of the user picture\n   */\n  pictureUrl?: string;\n  /**\n   * **EXPERIMENTAL** - Optional shared properties. Set individual properties to null or empty string to remove them.\n   */\n  properties?: {\n    [k: string]: string | null;\n  };\n  /**\n   * @deprecated\n   * DEPRECATED - Use properties instead.\n   */\n  attributes?: {\n    [k: string]: string | null;\n  };\n  /**\n   * Optional list of tag names to use for strict matching when looking up existing users. If provided, all specified tags must match exactly for a user to be considered a match. For example, with an existing user whose tags are {\"foo\": \"a\", \"bar\": \"b\", baz: \"c\"}: Without this parameter, ALL tags must match exactly. With [\"bar\",\"baz\"], all listed tags must match their values, and other tags are not considered.\n   */\n  discriminateByTags?: string[];\n}\n\nexport type GetOrCreateUserInput = GetOrCreateUserRequestBody & GetOrCreateUserRequestHeaders & GetOrCreateUserRequestQuery & GetOrCreateUserRequestParams\n\nexport type GetOrCreateUserRequest = {\n  headers: GetOrCreateUserRequestHeaders;\n  query: GetOrCreateUserRequestQuery;\n  params: GetOrCreateUserRequestParams;\n  body: GetOrCreateUserRequestBody;\n}\n\nexport const parseReq = (input: GetOrCreateUserInput): GetOrCreateUserRequest & { path: string } => {\n  return {\n    path: `/v1/chat/users/get-or-create`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'tags': input['tags'], 'integrationName': input['integrationName'], 'name': input['name'], 'pictureUrl': input['pictureUrl'], 'properties': input['properties'], 'attributes': input['attributes'], 'discriminateByTags': input['discriminateByTags'] },\n  }\n}\n\nexport interface GetOrCreateUserResponse {\n  /**\n   * The user object represents someone interacting with the bot within a specific integration. The same person interacting with a bot in slack and messenger will be represented with two different users.\n   */\n  user: {\n    /**\n     * Id of the [User](#schema_user)\n     */\n    id: string;\n    /**\n     * Creation date of the [User](#schema_user) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [User](#schema_user) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [User](#schema_user). The set of [Tags](/docs/developers/concepts/tags) available on a [User](#schema_user) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Name of the [User](#schema_user)\n     */\n    name?: string;\n    /**\n     * Picture URL of the [User](#schema_user)\n     */\n    pictureUrl?: string;\n    /**\n     * Optional properties\n     */\n    properties?: {\n      [k: string]: string;\n    };\n    /**\n     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n  meta: {\n    created: boolean;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface UpdateUserRequestHeaders {}\n\nexport interface UpdateUserRequestQuery {}\n\nexport interface UpdateUserRequestParams {\n  id: string;\n}\n\nexport interface UpdateUserRequestBody {\n  /**\n   * Tags for the [User](#schema_user). Set to null or empty string to remove.\n   */\n  tags?: {\n    [k: string]: string | null;\n  };\n  /**\n   * Name of the user\n   */\n  name?: string | null;\n  /**\n   * URI of the user picture\n   */\n  pictureUrl?: string | null;\n  /**\n   * @deprecated\n   * DEPRECATED - Use properties instead.\n   */\n  attributes?: {\n    [k: string]: string | null;\n  };\n  /**\n   * **EXPERIMENTAL** - Optional shared properties that can be accessed and modified by both the bot and any of its integrations. Set individual properties to null to remove them.\n   */\n  properties?: {\n    [k: string]: string | null;\n  };\n}\n\nexport type UpdateUserInput = UpdateUserRequestBody & UpdateUserRequestHeaders & UpdateUserRequestQuery & UpdateUserRequestParams\n\nexport type UpdateUserRequest = {\n  headers: UpdateUserRequestHeaders;\n  query: UpdateUserRequestQuery;\n  params: UpdateUserRequestParams;\n  body: UpdateUserRequestBody;\n}\n\nexport const parseReq = (input: UpdateUserInput): UpdateUserRequest & { path: string } => {\n  return {\n    path: `/v1/chat/users/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: { 'tags': input['tags'], 'name': input['name'], 'pictureUrl': input['pictureUrl'], 'attributes': input['attributes'], 'properties': input['properties'] },\n  }\n}\n\nexport interface UpdateUserResponse {\n  /**\n   * The user object represents someone interacting with the bot within a specific integration. The same person interacting with a bot in slack and messenger will be represented with two different users.\n   */\n  user: {\n    /**\n     * Id of the [User](#schema_user)\n     */\n    id: string;\n    /**\n     * Creation date of the [User](#schema_user) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [User](#schema_user) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [User](#schema_user). The set of [Tags](/docs/developers/concepts/tags) available on a [User](#schema_user) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Name of the [User](#schema_user)\n     */\n    name?: string;\n    /**\n     * Picture URL of the [User](#schema_user)\n     */\n    pictureUrl?: string;\n    /**\n     * Optional properties\n     */\n    properties?: {\n      [k: string]: string;\n    };\n    /**\n     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface DeleteUserRequestHeaders {}\n\nexport interface DeleteUserRequestQuery {}\n\nexport interface DeleteUserRequestParams {\n  id: string;\n}\n\nexport interface DeleteUserRequestBody {}\n\nexport type DeleteUserInput = DeleteUserRequestBody & DeleteUserRequestHeaders & DeleteUserRequestQuery & DeleteUserRequestParams\n\nexport type DeleteUserRequest = {\n  headers: DeleteUserRequestHeaders;\n  query: DeleteUserRequestQuery;\n  params: DeleteUserRequestParams;\n  body: DeleteUserRequestBody;\n}\n\nexport const parseReq = (input: DeleteUserInput): DeleteUserRequest & { path: string } => {\n  return {\n    path: `/v1/chat/users/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface DeleteUserResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface SetStateExpiryRequestHeaders {}\n\nexport interface SetStateExpiryRequestQuery {}\n\nexport interface SetStateExpiryRequestParams {\n  type: \"conversation\" | \"user\" | \"bot\" | \"integration\" | \"workflow\";\n  id: string;\n  name: string;\n}\n\nexport interface SetStateExpiryRequestBody {\n  /**\n   * Expiry of the [State](#schema_state) in milliseconds. The state will expire if it is idle for the configured value. By default, a state doesn't expire.\n   */\n  expiry: number | null;\n}\n\nexport type SetStateExpiryInput = SetStateExpiryRequestBody & SetStateExpiryRequestHeaders & SetStateExpiryRequestQuery & SetStateExpiryRequestParams\n\nexport type SetStateExpiryRequest = {\n  headers: SetStateExpiryRequestHeaders;\n  query: SetStateExpiryRequestQuery;\n  params: SetStateExpiryRequestParams;\n  body: SetStateExpiryRequestBody;\n}\n\nexport const parseReq = (input: SetStateExpiryInput): SetStateExpiryRequest & { path: string } => {\n  return {\n    path: `/v1/chat/states/${encodeURIComponent(input['type'])}/${encodeURIComponent(input['id'])}/${encodeURIComponent(input['name'])}/expiry`,\n    headers: {  },\n    query: {  },\n    params: { 'type': input['type'], 'id': input['id'], 'name': input['name'] },\n    body: { 'expiry': input['expiry'] },\n  }\n}\n\nexport interface SetStateExpiryResponse {\n  /**\n   * The state object represents the current payload. A state is always linked to either a bot, a conversation or a user.\n   */\n  state: {\n    /**\n     * Id of the [State](#schema_state)\n     */\n    id: string;\n    /**\n     * Creation date of the [State](#schema_state) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [State](#schema_state) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Opaque optimistic-concurrency token. Absent when connected to a legacy server.\n     */\n    version?: number;\n    /**\n     * Id of the [Bot](#schema_bot)\n     */\n    botId: string;\n    /**\n     * Id of the [Conversation](#schema_conversation)\n     */\n    conversationId?: string;\n    /**\n     * Id of the [User](#schema_user)\n     */\n    userId?: string;\n    /**\n     * Name of the [State](#schema_state) which is declared inside the bot definition\n     */\n    name: string;\n    /**\n     * Type of the [State](#schema_state) represents the resource type (`conversation`, `user`, `bot`, `integration` or `workflow`) that the state is related to\n     */\n    type: \"conversation\" | \"user\" | \"bot\" | \"integration\" | \"workflow\";\n    /**\n     * Payload is the content of the state defined by your bot.\n     */\n    payload: {\n      [k: string]: any;\n    };\n    /**\n     * Expiry of the state in milliseconds. The state will expire if it is idle for the configured value. Absent if no expiry is set.\n     */\n    expiry?: number;\n    /**\n     * Expiration date of the ${ref.state} in ISO 8601 format. Absent if no expiry is set.\n     */\n    expiresAt?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetStateRequestHeaders {}\n\nexport interface GetStateRequestQuery {}\n\nexport interface GetStateRequestParams {\n  type: \"conversation\" | \"user\" | \"bot\" | \"integration\" | \"workflow\";\n  id: string;\n  name: string;\n}\n\nexport interface GetStateRequestBody {}\n\nexport type GetStateInput = GetStateRequestBody & GetStateRequestHeaders & GetStateRequestQuery & GetStateRequestParams\n\nexport type GetStateRequest = {\n  headers: GetStateRequestHeaders;\n  query: GetStateRequestQuery;\n  params: GetStateRequestParams;\n  body: GetStateRequestBody;\n}\n\nexport const parseReq = (input: GetStateInput): GetStateRequest & { path: string } => {\n  return {\n    path: `/v1/chat/states/${encodeURIComponent(input['type'])}/${encodeURIComponent(input['id'])}/${encodeURIComponent(input['name'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'type': input['type'], 'id': input['id'], 'name': input['name'] },\n    body: {  },\n  }\n}\n\nexport interface GetStateResponse {\n  /**\n   * The state object represents the current payload. A state is always linked to either a bot, a conversation or a user.\n   */\n  state: {\n    /**\n     * Id of the [State](#schema_state)\n     */\n    id: string;\n    /**\n     * Creation date of the [State](#schema_state) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [State](#schema_state) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Opaque optimistic-concurrency token. Absent when connected to a legacy server.\n     */\n    version?: number;\n    /**\n     * Id of the [Bot](#schema_bot)\n     */\n    botId: string;\n    /**\n     * Id of the [Conversation](#schema_conversation)\n     */\n    conversationId?: string;\n    /**\n     * Id of the [User](#schema_user)\n     */\n    userId?: string;\n    /**\n     * Name of the [State](#schema_state) which is declared inside the bot definition\n     */\n    name: string;\n    /**\n     * Type of the [State](#schema_state) represents the resource type (`conversation`, `user`, `bot`, `integration` or `workflow`) that the state is related to\n     */\n    type: \"conversation\" | \"user\" | \"bot\" | \"integration\" | \"workflow\";\n    /**\n     * Payload is the content of the state defined by your bot.\n     */\n    payload: {\n      [k: string]: any;\n    };\n    /**\n     * Expiry of the state in milliseconds. The state will expire if it is idle for the configured value. Absent if no expiry is set.\n     */\n    expiry?: number;\n    /**\n     * Expiration date of the ${ref.state} in ISO 8601 format. Absent if no expiry is set.\n     */\n    expiresAt?: string;\n  };\n  meta: {\n    cached: boolean;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface SetStateRequestHeaders {}\n\nexport interface SetStateRequestQuery {}\n\nexport interface SetStateRequestParams {\n  type: \"conversation\" | \"user\" | \"bot\" | \"integration\" | \"workflow\";\n  id: string;\n  name: string;\n}\n\nexport interface SetStateRequestBody {\n  /**\n   * Payload is the content of the state defined by your bot.\n   */\n  payload: {\n    [k: string]: any;\n  } | null;\n  /**\n   * Expiry of the [State](#schema_state) in milliseconds. The state will expire if it is idle for the configured value. By default, a state doesn't expire.\n   */\n  expiry?: number | null;\n  /**\n   * Expected opaque state version. Omit for legacy last-write-wins behavior; use 0 only when the state must not exist.\n   */\n  expectedVersion?: number;\n}\n\nexport type SetStateInput = SetStateRequestBody & SetStateRequestHeaders & SetStateRequestQuery & SetStateRequestParams\n\nexport type SetStateRequest = {\n  headers: SetStateRequestHeaders;\n  query: SetStateRequestQuery;\n  params: SetStateRequestParams;\n  body: SetStateRequestBody;\n}\n\nexport const parseReq = (input: SetStateInput): SetStateRequest & { path: string } => {\n  return {\n    path: `/v1/chat/states/${encodeURIComponent(input['type'])}/${encodeURIComponent(input['id'])}/${encodeURIComponent(input['name'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'type': input['type'], 'id': input['id'], 'name': input['name'] },\n    body: { 'payload': input['payload'], 'expiry': input['expiry'], 'expectedVersion': input['expectedVersion'] },\n  }\n}\n\nexport interface SetStateResponse {\n  /**\n   * The state object represents the current payload. A state is always linked to either a bot, a conversation or a user.\n   */\n  state: {\n    /**\n     * Id of the [State](#schema_state)\n     */\n    id: string;\n    /**\n     * Creation date of the [State](#schema_state) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [State](#schema_state) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Opaque optimistic-concurrency token. Absent when connected to a legacy server.\n     */\n    version?: number;\n    /**\n     * Id of the [Bot](#schema_bot)\n     */\n    botId: string;\n    /**\n     * Id of the [Conversation](#schema_conversation)\n     */\n    conversationId?: string;\n    /**\n     * Id of the [User](#schema_user)\n     */\n    userId?: string;\n    /**\n     * Name of the [State](#schema_state) which is declared inside the bot definition\n     */\n    name: string;\n    /**\n     * Type of the [State](#schema_state) represents the resource type (`conversation`, `user`, `bot`, `integration` or `workflow`) that the state is related to\n     */\n    type: \"conversation\" | \"user\" | \"bot\" | \"integration\" | \"workflow\";\n    /**\n     * Payload is the content of the state defined by your bot.\n     */\n    payload: {\n      [k: string]: any;\n    };\n    /**\n     * Expiry of the state in milliseconds. The state will expire if it is idle for the configured value. Absent if no expiry is set.\n     */\n    expiry?: number;\n    /**\n     * Expiration date of the ${ref.state} in ISO 8601 format. Absent if no expiry is set.\n     */\n    expiresAt?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetOrSetStateRequestHeaders {}\n\nexport interface GetOrSetStateRequestQuery {}\n\nexport interface GetOrSetStateRequestParams {\n  type: \"conversation\" | \"user\" | \"bot\" | \"integration\" | \"workflow\";\n  id: string;\n  name: string;\n}\n\nexport interface GetOrSetStateRequestBody {\n  /**\n   * Payload is the content of the state defined by your bot.\n   */\n  payload: {\n    [k: string]: any;\n  };\n  /**\n   * Expiry of the [State](#schema_state) in milliseconds. The state will expire if it is idle for the configured value. By default, a state doesn't expire.\n   */\n  expiry?: number | null;\n}\n\nexport type GetOrSetStateInput = GetOrSetStateRequestBody & GetOrSetStateRequestHeaders & GetOrSetStateRequestQuery & GetOrSetStateRequestParams\n\nexport type GetOrSetStateRequest = {\n  headers: GetOrSetStateRequestHeaders;\n  query: GetOrSetStateRequestQuery;\n  params: GetOrSetStateRequestParams;\n  body: GetOrSetStateRequestBody;\n}\n\nexport const parseReq = (input: GetOrSetStateInput): GetOrSetStateRequest & { path: string } => {\n  return {\n    path: `/v1/chat/states/${encodeURIComponent(input['type'])}/${encodeURIComponent(input['id'])}/${encodeURIComponent(input['name'])}/get-or-set`,\n    headers: {  },\n    query: {  },\n    params: { 'type': input['type'], 'id': input['id'], 'name': input['name'] },\n    body: { 'payload': input['payload'], 'expiry': input['expiry'] },\n  }\n}\n\nexport interface GetOrSetStateResponse {\n  /**\n   * The state object represents the current payload. A state is always linked to either a bot, a conversation or a user.\n   */\n  state: {\n    /**\n     * Id of the [State](#schema_state)\n     */\n    id: string;\n    /**\n     * Creation date of the [State](#schema_state) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [State](#schema_state) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Opaque optimistic-concurrency token. Absent when connected to a legacy server.\n     */\n    version?: number;\n    /**\n     * Id of the [Bot](#schema_bot)\n     */\n    botId: string;\n    /**\n     * Id of the [Conversation](#schema_conversation)\n     */\n    conversationId?: string;\n    /**\n     * Id of the [User](#schema_user)\n     */\n    userId?: string;\n    /**\n     * Name of the [State](#schema_state) which is declared inside the bot definition\n     */\n    name: string;\n    /**\n     * Type of the [State](#schema_state) represents the resource type (`conversation`, `user`, `bot`, `integration` or `workflow`) that the state is related to\n     */\n    type: \"conversation\" | \"user\" | \"bot\" | \"integration\" | \"workflow\";\n    /**\n     * Payload is the content of the state defined by your bot.\n     */\n    payload: {\n      [k: string]: any;\n    };\n    /**\n     * Expiry of the state in milliseconds. The state will expire if it is idle for the configured value. Absent if no expiry is set.\n     */\n    expiry?: number;\n    /**\n     * Expiration date of the ${ref.state} in ISO 8601 format. Absent if no expiry is set.\n     */\n    expiresAt?: string;\n  };\n  meta: {\n    cached: boolean;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface PatchStateRequestHeaders {}\n\nexport interface PatchStateRequestQuery {}\n\nexport interface PatchStateRequestParams {\n  type: \"conversation\" | \"user\" | \"bot\" | \"integration\" | \"workflow\";\n  id: string;\n  name: string;\n}\n\nexport interface PatchStateRequestBody {\n  /**\n   * Payload is the content of the state defined by your bot.\n   */\n  payload: {\n    [k: string]: any;\n  };\n  /**\n   * Expiry of the [State](#schema_state) in milliseconds. The state will expire if it is idle for the configured value. By default, a state doesn't expire.\n   */\n  expiry?: number | null;\n  /**\n   * Expected opaque state version. Omit for legacy last-write-wins behavior; use 0 only when the state must not exist.\n   */\n  expectedVersion?: number;\n}\n\nexport type PatchStateInput = PatchStateRequestBody & PatchStateRequestHeaders & PatchStateRequestQuery & PatchStateRequestParams\n\nexport type PatchStateRequest = {\n  headers: PatchStateRequestHeaders;\n  query: PatchStateRequestQuery;\n  params: PatchStateRequestParams;\n  body: PatchStateRequestBody;\n}\n\nexport const parseReq = (input: PatchStateInput): PatchStateRequest & { path: string } => {\n  return {\n    path: `/v1/chat/states/${encodeURIComponent(input['type'])}/${encodeURIComponent(input['id'])}/${encodeURIComponent(input['name'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'type': input['type'], 'id': input['id'], 'name': input['name'] },\n    body: { 'payload': input['payload'], 'expiry': input['expiry'], 'expectedVersion': input['expectedVersion'] },\n  }\n}\n\nexport interface PatchStateResponse {\n  /**\n   * The state object represents the current payload. A state is always linked to either a bot, a conversation or a user.\n   */\n  state: {\n    /**\n     * Id of the [State](#schema_state)\n     */\n    id: string;\n    /**\n     * Creation date of the [State](#schema_state) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [State](#schema_state) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Opaque optimistic-concurrency token. Absent when connected to a legacy server.\n     */\n    version?: number;\n    /**\n     * Id of the [Bot](#schema_bot)\n     */\n    botId: string;\n    /**\n     * Id of the [Conversation](#schema_conversation)\n     */\n    conversationId?: string;\n    /**\n     * Id of the [User](#schema_user)\n     */\n    userId?: string;\n    /**\n     * Name of the [State](#schema_state) which is declared inside the bot definition\n     */\n    name: string;\n    /**\n     * Type of the [State](#schema_state) represents the resource type (`conversation`, `user`, `bot`, `integration` or `workflow`) that the state is related to\n     */\n    type: \"conversation\" | \"user\" | \"bot\" | \"integration\" | \"workflow\";\n    /**\n     * Payload is the content of the state defined by your bot.\n     */\n    payload: {\n      [k: string]: any;\n    };\n    /**\n     * Expiry of the state in milliseconds. The state will expire if it is idle for the configured value. Absent if no expiry is set.\n     */\n    expiry?: number;\n    /**\n     * Expiration date of the ${ref.state} in ISO 8601 format. Absent if no expiry is set.\n     */\n    expiresAt?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CallActionRequestHeaders {}\n\nexport interface CallActionRequestQuery {}\n\nexport interface CallActionRequestParams {}\n\nexport interface CallActionRequestBody {\n  /**\n   * Type of the action\n   */\n  type: string;\n  /**\n   * Input of the action\n   */\n  input: {\n    [k: string]: any;\n  };\n}\n\nexport type CallActionInput = CallActionRequestBody & CallActionRequestHeaders & CallActionRequestQuery & CallActionRequestParams\n\nexport type CallActionRequest = {\n  headers: CallActionRequestHeaders;\n  query: CallActionRequestQuery;\n  params: CallActionRequestParams;\n  body: CallActionRequestBody;\n}\n\nexport const parseReq = (input: CallActionInput): CallActionRequest & { path: string } => {\n  return {\n    path: `/v1/chat/actions`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'type': input['type'], 'input': input['input'] },\n  }\n}\n\nexport interface CallActionResponse {\n  /**\n   * Input of the action\n   */\n  output: {\n    [k: string]: any;\n  };\n  meta: {\n    cached: boolean;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ConfigureIntegrationRequestHeaders {}\n\nexport interface ConfigureIntegrationRequestQuery {}\n\nexport interface ConfigureIntegrationRequestParams {}\n\nexport interface ConfigureIntegrationRequestBody {\n  /**\n   * Unique identifier of the integration that was installed on the bot\n   */\n  identifier?: string | null;\n  /**\n   * Recurring schedule on which `register()` will be called on the integration\n   */\n  scheduleRegisterCall?:\n    | \"hourly\"\n    | \"daily\"\n    | \"weekly\"\n    | \"bi-weekly\"\n    | \"monthly\"\n    | \"bi-monthly\"\n    | \"quarterly\"\n    | \"yearly\";\n  /**\n   * **EXPERIMENTAL** Sandbox identifiers for the integration. Setting this to null will remove all sandbox identifiers.           This is an experimental feature meant to be used by specific integrations.\n   */\n  sandboxIdentifiers?: {} | null;\n}\n\nexport type ConfigureIntegrationInput = ConfigureIntegrationRequestBody & ConfigureIntegrationRequestHeaders & ConfigureIntegrationRequestQuery & ConfigureIntegrationRequestParams\n\nexport type ConfigureIntegrationRequest = {\n  headers: ConfigureIntegrationRequestHeaders;\n  query: ConfigureIntegrationRequestQuery;\n  params: ConfigureIntegrationRequestParams;\n  body: ConfigureIntegrationRequestBody;\n}\n\nexport const parseReq = (input: ConfigureIntegrationInput): ConfigureIntegrationRequest & { path: string } => {\n  return {\n    path: `/v1/chat/integrations/configure`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'identifier': input['identifier'], 'scheduleRegisterCall': input['scheduleRegisterCall'], 'sandboxIdentifiers': input['sandboxIdentifiers'] },\n  }\n}\n\nexport interface ConfigureIntegrationResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CreateWorkflowRequestHeaders {}\n\nexport interface CreateWorkflowRequestQuery {}\n\nexport interface CreateWorkflowRequestParams {}\n\nexport interface CreateWorkflowRequestBody {\n  /**\n   * Name of the workflow\n   */\n  name: string;\n  /**\n   * Content related to the workflow\n   */\n  input?: {\n    [k: string]: any;\n  };\n  /**\n   * Parent workflow id is the parent workflow that created this workflow\n   */\n  parentWorkflowId?: string;\n  /**\n   * Conversation id related to this workflow\n   */\n  conversationId?: string;\n  /**\n   * Specific user related to this workflow\n   */\n  userId?: string;\n  /**\n   * The timeout date where the workflow should be failed in the ISO 8601 format\n   */\n  timeoutAt?: string;\n  /**\n   * Tags for the [Workflow](#schema_workflow)\n   */\n  tags?: {\n    [k: string]: string;\n  };\n  status: \"pending\" | \"in_progress\" | \"listening\";\n  /**\n   * Event id must be specified if the workflow is created with the status in_progress\n   */\n  eventId?: string;\n}\n\nexport type CreateWorkflowInput = CreateWorkflowRequestBody & CreateWorkflowRequestHeaders & CreateWorkflowRequestQuery & CreateWorkflowRequestParams\n\nexport type CreateWorkflowRequest = {\n  headers: CreateWorkflowRequestHeaders;\n  query: CreateWorkflowRequestQuery;\n  params: CreateWorkflowRequestParams;\n  body: CreateWorkflowRequestBody;\n}\n\nexport const parseReq = (input: CreateWorkflowInput): CreateWorkflowRequest & { path: string } => {\n  return {\n    path: `/v1/chat/workflows`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'name': input['name'], 'input': input['input'], 'parentWorkflowId': input['parentWorkflowId'], 'conversationId': input['conversationId'], 'userId': input['userId'], 'timeoutAt': input['timeoutAt'], 'tags': input['tags'], 'status': input['status'], 'eventId': input['eventId'] },\n  }\n}\n\nexport interface CreateWorkflowResponse {\n  /**\n   * Workflow definition\n   */\n  workflow: {\n    /**\n     * Id of the [Workflow](#schema_workflow)\n     */\n    id: string;\n    /**\n     * Name of the workflow\n     */\n    name: string;\n    /**\n     * Status of the [Workflow](#schema_workflow)\n     */\n    status: \"pending\" | \"in_progress\" | \"failed\" | \"completed\" | \"listening\" | \"paused\" | \"timedout\" | \"cancelled\";\n    /**\n     * Input provided to the [Workflow](#schema_workflow)\n     */\n    input: {\n      [k: string]: any;\n    };\n    /**\n     * Data returned by the [Workflow](#schema_workflow) output\n     */\n    output: {\n      [k: string]: any;\n    };\n    /**\n     * Parent [Workflow](#schema_workflow) id is the parent [Workflow](#schema_workflow) that created this [Workflow](#schema_workflow)\n     */\n    parentWorkflowId?: string;\n    /**\n     * Conversation id related to this [Workflow](#schema_workflow)\n     */\n    conversationId?: string;\n    /**\n     * User id related to this [Workflow](#schema_workflow)\n     */\n    userId?: string;\n    /**\n     * Creation date of the [Workflow](#schema_workflow) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Workflow](#schema_workflow) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * The date when the [Workflow](#schema_workflow) completed in ISO 8601 format\n     */\n    completedAt?: string;\n    /**\n     * If the [Workflow](#schema_workflow) fails this is the reason behind it\n     */\n    failureReason?: string;\n    /**\n     * The timeout date when the [Workflow](#schema_workflow) will fail in the ISO 8601 format\n     */\n    timeoutAt: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [Workflow](#schema_workflow). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetWorkflowRequestHeaders {}\n\nexport interface GetWorkflowRequestQuery {}\n\nexport interface GetWorkflowRequestParams {\n  id: string;\n}\n\nexport interface GetWorkflowRequestBody {}\n\nexport type GetWorkflowInput = GetWorkflowRequestBody & GetWorkflowRequestHeaders & GetWorkflowRequestQuery & GetWorkflowRequestParams\n\nexport type GetWorkflowRequest = {\n  headers: GetWorkflowRequestHeaders;\n  query: GetWorkflowRequestQuery;\n  params: GetWorkflowRequestParams;\n  body: GetWorkflowRequestBody;\n}\n\nexport const parseReq = (input: GetWorkflowInput): GetWorkflowRequest & { path: string } => {\n  return {\n    path: `/v1/chat/workflows/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetWorkflowResponse {\n  /**\n   * Workflow definition\n   */\n  workflow: {\n    /**\n     * Id of the [Workflow](#schema_workflow)\n     */\n    id: string;\n    /**\n     * Name of the workflow\n     */\n    name: string;\n    /**\n     * Status of the [Workflow](#schema_workflow)\n     */\n    status: \"pending\" | \"in_progress\" | \"failed\" | \"completed\" | \"listening\" | \"paused\" | \"timedout\" | \"cancelled\";\n    /**\n     * Input provided to the [Workflow](#schema_workflow)\n     */\n    input: {\n      [k: string]: any;\n    };\n    /**\n     * Data returned by the [Workflow](#schema_workflow) output\n     */\n    output: {\n      [k: string]: any;\n    };\n    /**\n     * Parent [Workflow](#schema_workflow) id is the parent [Workflow](#schema_workflow) that created this [Workflow](#schema_workflow)\n     */\n    parentWorkflowId?: string;\n    /**\n     * Conversation id related to this [Workflow](#schema_workflow)\n     */\n    conversationId?: string;\n    /**\n     * User id related to this [Workflow](#schema_workflow)\n     */\n    userId?: string;\n    /**\n     * Creation date of the [Workflow](#schema_workflow) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Workflow](#schema_workflow) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * The date when the [Workflow](#schema_workflow) completed in ISO 8601 format\n     */\n    completedAt?: string;\n    /**\n     * If the [Workflow](#schema_workflow) fails this is the reason behind it\n     */\n    failureReason?: string;\n    /**\n     * The timeout date when the [Workflow](#schema_workflow) will fail in the ISO 8601 format\n     */\n    timeoutAt: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [Workflow](#schema_workflow). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface UpdateWorkflowRequestHeaders {}\n\nexport interface UpdateWorkflowRequestQuery {}\n\nexport interface UpdateWorkflowRequestParams {\n  id: string;\n}\n\nexport interface UpdateWorkflowRequestBody {\n  /**\n   * Content related to the workflow\n   */\n  output?: {\n    [k: string]: any;\n  };\n  /**\n   * The timeout date where the workflow should be failed in the ISO 8601 format\n   */\n  timeoutAt?: string;\n  /**\n   * Status of the workflow\n   */\n  status?: \"completed\" | \"cancelled\" | \"listening\" | \"paused\" | \"failed\" | \"in_progress\";\n  /**\n   * Reason why the workflow failed\n   */\n  failureReason?: string;\n  /**\n   * Tags for the [Workflow](#schema_workflow). Set to null or empty string to remove.\n   */\n  tags?: {\n    [k: string]: string | null;\n  };\n  /**\n   * Specific user related to this workflow\n   */\n  userId?: string;\n  /**\n   * Event id must be specified if the workflow is updated with the status in_progress\n   */\n  eventId?: string;\n}\n\nexport type UpdateWorkflowInput = UpdateWorkflowRequestBody & UpdateWorkflowRequestHeaders & UpdateWorkflowRequestQuery & UpdateWorkflowRequestParams\n\nexport type UpdateWorkflowRequest = {\n  headers: UpdateWorkflowRequestHeaders;\n  query: UpdateWorkflowRequestQuery;\n  params: UpdateWorkflowRequestParams;\n  body: UpdateWorkflowRequestBody;\n}\n\nexport const parseReq = (input: UpdateWorkflowInput): UpdateWorkflowRequest & { path: string } => {\n  return {\n    path: `/v1/chat/workflows/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: { 'output': input['output'], 'timeoutAt': input['timeoutAt'], 'status': input['status'], 'failureReason': input['failureReason'], 'tags': input['tags'], 'userId': input['userId'], 'eventId': input['eventId'] },\n  }\n}\n\nexport interface UpdateWorkflowResponse {\n  /**\n   * Workflow definition\n   */\n  workflow: {\n    /**\n     * Id of the [Workflow](#schema_workflow)\n     */\n    id: string;\n    /**\n     * Name of the workflow\n     */\n    name: string;\n    /**\n     * Status of the [Workflow](#schema_workflow)\n     */\n    status: \"pending\" | \"in_progress\" | \"failed\" | \"completed\" | \"listening\" | \"paused\" | \"timedout\" | \"cancelled\";\n    /**\n     * Input provided to the [Workflow](#schema_workflow)\n     */\n    input: {\n      [k: string]: any;\n    };\n    /**\n     * Data returned by the [Workflow](#schema_workflow) output\n     */\n    output: {\n      [k: string]: any;\n    };\n    /**\n     * Parent [Workflow](#schema_workflow) id is the parent [Workflow](#schema_workflow) that created this [Workflow](#schema_workflow)\n     */\n    parentWorkflowId?: string;\n    /**\n     * Conversation id related to this [Workflow](#schema_workflow)\n     */\n    conversationId?: string;\n    /**\n     * User id related to this [Workflow](#schema_workflow)\n     */\n    userId?: string;\n    /**\n     * Creation date of the [Workflow](#schema_workflow) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Workflow](#schema_workflow) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * The date when the [Workflow](#schema_workflow) completed in ISO 8601 format\n     */\n    completedAt?: string;\n    /**\n     * If the [Workflow](#schema_workflow) fails this is the reason behind it\n     */\n    failureReason?: string;\n    /**\n     * The timeout date when the [Workflow](#schema_workflow) will fail in the ISO 8601 format\n     */\n    timeoutAt: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [Workflow](#schema_workflow). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface DeleteWorkflowRequestHeaders {}\n\nexport interface DeleteWorkflowRequestQuery {}\n\nexport interface DeleteWorkflowRequestParams {\n  id: string;\n}\n\nexport interface DeleteWorkflowRequestBody {}\n\nexport type DeleteWorkflowInput = DeleteWorkflowRequestBody & DeleteWorkflowRequestHeaders & DeleteWorkflowRequestQuery & DeleteWorkflowRequestParams\n\nexport type DeleteWorkflowRequest = {\n  headers: DeleteWorkflowRequestHeaders;\n  query: DeleteWorkflowRequestQuery;\n  params: DeleteWorkflowRequestParams;\n  body: DeleteWorkflowRequestBody;\n}\n\nexport const parseReq = (input: DeleteWorkflowInput): DeleteWorkflowRequest & { path: string } => {\n  return {\n    path: `/v1/chat/workflows/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface DeleteWorkflowResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListWorkflowsRequestHeaders {}\n\nexport interface ListWorkflowsRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n  tags?: {\n    [k: string]: string;\n  };\n  conversationId?: string;\n  userId?: string;\n  parentWorkflowId?: string;\n  statuses?: (\"pending\" | \"in_progress\" | \"failed\" | \"completed\" | \"listening\" | \"paused\" | \"timedout\" | \"cancelled\")[];\n  name?: string;\n}\n\nexport interface ListWorkflowsRequestParams {}\n\nexport interface ListWorkflowsRequestBody {}\n\nexport type ListWorkflowsInput = ListWorkflowsRequestBody & ListWorkflowsRequestHeaders & ListWorkflowsRequestQuery & ListWorkflowsRequestParams\n\nexport type ListWorkflowsRequest = {\n  headers: ListWorkflowsRequestHeaders;\n  query: ListWorkflowsRequestQuery;\n  params: ListWorkflowsRequestParams;\n  body: ListWorkflowsRequestBody;\n}\n\nexport const parseReq = (input: ListWorkflowsInput): ListWorkflowsRequest & { path: string } => {\n  return {\n    path: `/v1/chat/workflows`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'], 'tags': input['tags'], 'conversationId': input['conversationId'], 'userId': input['userId'], 'parentWorkflowId': input['parentWorkflowId'], 'statuses': input['statuses'], 'name': input['name'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListWorkflowsResponse {\n  workflows: {\n    /**\n     * Id of the [Workflow](#schema_workflow)\n     */\n    id: string;\n    /**\n     * Name of the workflow\n     */\n    name: string;\n    /**\n     * Status of the [Workflow](#schema_workflow)\n     */\n    status: \"pending\" | \"in_progress\" | \"failed\" | \"completed\" | \"listening\" | \"paused\" | \"timedout\" | \"cancelled\";\n    /**\n     * Input provided to the [Workflow](#schema_workflow)\n     */\n    input: {\n      [k: string]: any;\n    };\n    /**\n     * Data returned by the [Workflow](#schema_workflow) output\n     */\n    output: {\n      [k: string]: any;\n    };\n    /**\n     * Parent [Workflow](#schema_workflow) id is the parent [Workflow](#schema_workflow) that created this [Workflow](#schema_workflow)\n     */\n    parentWorkflowId?: string;\n    /**\n     * Conversation id related to this [Workflow](#schema_workflow)\n     */\n    conversationId?: string;\n    /**\n     * User id related to this [Workflow](#schema_workflow)\n     */\n    userId?: string;\n    /**\n     * Creation date of the [Workflow](#schema_workflow) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Workflow](#schema_workflow) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * The date when the [Workflow](#schema_workflow) completed in ISO 8601 format\n     */\n    completedAt?: string;\n    /**\n     * If the [Workflow](#schema_workflow) fails this is the reason behind it\n     */\n    failureReason?: string;\n    /**\n     * The timeout date when the [Workflow](#schema_workflow) will fail in the ISO 8601 format\n     */\n    timeoutAt: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [Workflow](#schema_workflow). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n  }[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetOrCreateWorkflowRequestHeaders {}\n\nexport interface GetOrCreateWorkflowRequestQuery {}\n\nexport interface GetOrCreateWorkflowRequestParams {}\n\nexport interface GetOrCreateWorkflowRequestBody {\n  /**\n   * Name of the workflow\n   */\n  name: string;\n  /**\n   * Content related to the workflow\n   */\n  input?: {\n    [k: string]: any;\n  };\n  /**\n   * Parent workflow id is the parent workflow that created this workflow\n   */\n  parentWorkflowId?: string;\n  /**\n   * Conversation id related to this workflow\n   */\n  conversationId?: string;\n  /**\n   * Specific user related to this workflow\n   */\n  userId?: string;\n  /**\n   * The timeout date where the workflow should be failed in the ISO 8601 format\n   */\n  timeoutAt?: string;\n  /**\n   * Tags for the [Workflow](#schema_workflow)\n   */\n  tags?: {\n    [k: string]: string;\n  };\n  status: \"pending\" | \"in_progress\" | \"listening\";\n  /**\n   * Event id must be specified if the workflow is created with the status in_progress\n   */\n  eventId?: string;\n  /**\n   * Optional list of tag names to use for strict matching when looking up existing workflows. If provided, all specified tags must match exactly for a workflow to be considered a match. For example, with an existing workflow whose tags are {\"foo\": \"a\", \"bar\": \"b\", baz: \"c\"}: Without this parameter, ALL tags must match exactly. With [\"bar\",\"baz\"], all listed tags must match their values, and other tags are not considered.\n   */\n  discriminateByTags?: string[];\n  /**\n   * When provided, will only match workflows whose status corresponds to the status group.\n   */\n  discriminateByStatusGroup?: \"active\" | \"finished\";\n}\n\nexport type GetOrCreateWorkflowInput = GetOrCreateWorkflowRequestBody & GetOrCreateWorkflowRequestHeaders & GetOrCreateWorkflowRequestQuery & GetOrCreateWorkflowRequestParams\n\nexport type GetOrCreateWorkflowRequest = {\n  headers: GetOrCreateWorkflowRequestHeaders;\n  query: GetOrCreateWorkflowRequestQuery;\n  params: GetOrCreateWorkflowRequestParams;\n  body: GetOrCreateWorkflowRequestBody;\n}\n\nexport const parseReq = (input: GetOrCreateWorkflowInput): GetOrCreateWorkflowRequest & { path: string } => {\n  return {\n    path: `/v1/chat/workflows/get-or-create`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'name': input['name'], 'input': input['input'], 'parentWorkflowId': input['parentWorkflowId'], 'conversationId': input['conversationId'], 'userId': input['userId'], 'timeoutAt': input['timeoutAt'], 'tags': input['tags'], 'status': input['status'], 'eventId': input['eventId'], 'discriminateByTags': input['discriminateByTags'], 'discriminateByStatusGroup': input['discriminateByStatusGroup'] },\n  }\n}\n\nexport interface GetOrCreateWorkflowResponse {\n  /**\n   * Workflow definition\n   */\n  workflow: {\n    /**\n     * Id of the [Workflow](#schema_workflow)\n     */\n    id: string;\n    /**\n     * Name of the workflow\n     */\n    name: string;\n    /**\n     * Status of the [Workflow](#schema_workflow)\n     */\n    status: \"pending\" | \"in_progress\" | \"failed\" | \"completed\" | \"listening\" | \"paused\" | \"timedout\" | \"cancelled\";\n    /**\n     * Input provided to the [Workflow](#schema_workflow)\n     */\n    input: {\n      [k: string]: any;\n    };\n    /**\n     * Data returned by the [Workflow](#schema_workflow) output\n     */\n    output: {\n      [k: string]: any;\n    };\n    /**\n     * Parent [Workflow](#schema_workflow) id is the parent [Workflow](#schema_workflow) that created this [Workflow](#schema_workflow)\n     */\n    parentWorkflowId?: string;\n    /**\n     * Conversation id related to this [Workflow](#schema_workflow)\n     */\n    conversationId?: string;\n    /**\n     * User id related to this [Workflow](#schema_workflow)\n     */\n    userId?: string;\n    /**\n     * Creation date of the [Workflow](#schema_workflow) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Workflow](#schema_workflow) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * The date when the [Workflow](#schema_workflow) completed in ISO 8601 format\n     */\n    completedAt?: string;\n    /**\n     * If the [Workflow](#schema_workflow) fails this is the reason behind it\n     */\n    failureReason?: string;\n    /**\n     * The timeout date when the [Workflow](#schema_workflow) will fail in the ISO 8601 format\n     */\n    timeoutAt: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [Workflow](#schema_workflow). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n  };\n  meta: {\n    created: boolean;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListTagValuesRequestHeaders {}\n\nexport interface ListTagValuesRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n  type: \"user\" | \"conversation\" | \"message\";\n}\n\nexport interface ListTagValuesRequestParams {\n  key: string;\n}\n\nexport interface ListTagValuesRequestBody {}\n\nexport type ListTagValuesInput = ListTagValuesRequestBody & ListTagValuesRequestHeaders & ListTagValuesRequestQuery & ListTagValuesRequestParams\n\nexport type ListTagValuesRequest = {\n  headers: ListTagValuesRequestHeaders;\n  query: ListTagValuesRequestQuery;\n  params: ListTagValuesRequestParams;\n  body: ListTagValuesRequestBody;\n}\n\nexport const parseReq = (input: ListTagValuesInput): ListTagValuesRequest & { path: string } => {\n  return {\n    path: `/v1/chat/tags/${encodeURIComponent(input['key'])}/values`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'], 'type': input['type'] },\n    params: { 'key': input['key'] },\n    body: {  },\n  }\n}\n\nexport interface ListTagValuesResponse {\n  tags: {\n    value: string;\n  }[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface TrackAnalyticsRequestHeaders {}\n\nexport interface TrackAnalyticsRequestQuery {}\n\nexport interface TrackAnalyticsRequestParams {}\n\nexport interface TrackAnalyticsRequestBody {\n  name: string;\n  count: number;\n}\n\nexport type TrackAnalyticsInput = TrackAnalyticsRequestBody & TrackAnalyticsRequestHeaders & TrackAnalyticsRequestQuery & TrackAnalyticsRequestParams\n\nexport type TrackAnalyticsRequest = {\n  headers: TrackAnalyticsRequestHeaders;\n  query: TrackAnalyticsRequestQuery;\n  params: TrackAnalyticsRequestParams;\n  body: TrackAnalyticsRequestBody;\n}\n\nexport const parseReq = (input: TrackAnalyticsInput): TrackAnalyticsRequest & { path: string } => {\n  return {\n    path: `/v1/chat/analytics`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'name': input['name'], 'count': input['count'] },\n  }\n}\n\nexport interface TrackAnalyticsResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CaptureObservationRequestHeaders {}\n\nexport interface CaptureObservationRequestQuery {}\n\nexport interface CaptureObservationRequestParams {}\n\nexport interface CaptureObservationRequestBody {\n  /**\n   * Caller-defined identifier for the observation (e.g. llmz context ID). Uniqueness is not enforced nor guaranteed.\n   */\n  id?: string;\n  /**\n   * Name of the observation\n   */\n  name: string;\n  /**\n   * Data of the observation\n   */\n  data: {\n    [k: string]: any;\n  };\n  /**\n   * ID of the message associated with the observation\n   */\n  messageId?: string;\n  /**\n   * ID of the event associated with the observation\n   */\n  eventId?: string;\n  /**\n   * ID of the conversation associated with the observation\n   */\n  conversationId?: string;\n  /**\n   * ID of the user associated with the observation\n   */\n  userId?: string;\n  /**\n   * ID of the error associated with the observation\n   */\n  errorId?: string;\n  /**\n   * ID of the trace associated with the observation\n   */\n  traceId?: string;\n}\n\nexport type CaptureObservationInput = CaptureObservationRequestBody & CaptureObservationRequestHeaders & CaptureObservationRequestQuery & CaptureObservationRequestParams\n\nexport type CaptureObservationRequest = {\n  headers: CaptureObservationRequestHeaders;\n  query: CaptureObservationRequestQuery;\n  params: CaptureObservationRequestParams;\n  body: CaptureObservationRequestBody;\n}\n\nexport const parseReq = (input: CaptureObservationInput): CaptureObservationRequest & { path: string } => {\n  return {\n    path: `/v1/chat/observations`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'id': input['id'], 'name': input['name'], 'data': input['data'], 'messageId': input['messageId'], 'eventId': input['eventId'], 'conversationId': input['conversationId'], 'userId': input['userId'], 'errorId': input['errorId'], 'traceId': input['traceId'] },\n  }\n}\n\nexport interface CaptureObservationResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nimport axios, { AxiosInstance } from 'axios'\nimport { errorFrom } from './errors'\nimport { toAxiosRequest } from './to-axios'\nimport * as createConversation from './operations/createConversation'\nimport * as getConversation from './operations/getConversation'\nimport * as listConversations from './operations/listConversations'\nimport * as getOrCreateConversation from './operations/getOrCreateConversation'\nimport * as updateConversation from './operations/updateConversation'\nimport * as deleteConversation from './operations/deleteConversation'\nimport * as listParticipants from './operations/listParticipants'\nimport * as addParticipant from './operations/addParticipant'\nimport * as getParticipant from './operations/getParticipant'\nimport * as removeParticipant from './operations/removeParticipant'\nimport * as createEvent from './operations/createEvent'\nimport * as getEvent from './operations/getEvent'\nimport * as listEvents from './operations/listEvents'\nimport * as cancelScheduledEvent from './operations/cancelScheduledEvent'\nimport * as createMessage from './operations/createMessage'\nimport * as getOrCreateMessage from './operations/getOrCreateMessage'\nimport * as getMessage from './operations/getMessage'\nimport * as updateMessage from './operations/updateMessage'\nimport * as listMessages from './operations/listMessages'\nimport * as deleteMessage from './operations/deleteMessage'\nimport * as initializeIncomingMessage from './operations/initializeIncomingMessage'\nimport * as importMessages from './operations/importMessages'\nimport * as createUser from './operations/createUser'\nimport * as getUser from './operations/getUser'\nimport * as listUsers from './operations/listUsers'\nimport * as getOrCreateUser from './operations/getOrCreateUser'\nimport * as updateUser from './operations/updateUser'\nimport * as deleteUser from './operations/deleteUser'\nimport * as setStateExpiry from './operations/setStateExpiry'\nimport * as getState from './operations/getState'\nimport * as setState from './operations/setState'\nimport * as getOrSetState from './operations/getOrSetState'\nimport * as patchState from './operations/patchState'\nimport * as callAction from './operations/callAction'\nimport * as configureIntegration from './operations/configureIntegration'\nimport * as createWorkflow from './operations/createWorkflow'\nimport * as getWorkflow from './operations/getWorkflow'\nimport * as updateWorkflow from './operations/updateWorkflow'\nimport * as deleteWorkflow from './operations/deleteWorkflow'\nimport * as listWorkflows from './operations/listWorkflows'\nimport * as getOrCreateWorkflow from './operations/getOrCreateWorkflow'\nimport * as listTagValues from './operations/listTagValues'\nimport * as trackAnalytics from './operations/trackAnalytics'\nimport * as captureObservation from './operations/captureObservation'\n\nexport * from './models'\n\nexport * as createConversation from './operations/createConversation'\nexport * as getConversation from './operations/getConversation'\nexport * as listConversations from './operations/listConversations'\nexport * as getOrCreateConversation from './operations/getOrCreateConversation'\nexport * as updateConversation from './operations/updateConversation'\nexport * as deleteConversation from './operations/deleteConversation'\nexport * as listParticipants from './operations/listParticipants'\nexport * as addParticipant from './operations/addParticipant'\nexport * as getParticipant from './operations/getParticipant'\nexport * as removeParticipant from './operations/removeParticipant'\nexport * as createEvent from './operations/createEvent'\nexport * as getEvent from './operations/getEvent'\nexport * as listEvents from './operations/listEvents'\nexport * as cancelScheduledEvent from './operations/cancelScheduledEvent'\nexport * as createMessage from './operations/createMessage'\nexport * as getOrCreateMessage from './operations/getOrCreateMessage'\nexport * as getMessage from './operations/getMessage'\nexport * as updateMessage from './operations/updateMessage'\nexport * as listMessages from './operations/listMessages'\nexport * as deleteMessage from './operations/deleteMessage'\nexport * as initializeIncomingMessage from './operations/initializeIncomingMessage'\nexport * as importMessages from './operations/importMessages'\nexport * as createUser from './operations/createUser'\nexport * as getUser from './operations/getUser'\nexport * as listUsers from './operations/listUsers'\nexport * as getOrCreateUser from './operations/getOrCreateUser'\nexport * as updateUser from './operations/updateUser'\nexport * as deleteUser from './operations/deleteUser'\nexport * as setStateExpiry from './operations/setStateExpiry'\nexport * as getState from './operations/getState'\nexport * as setState from './operations/setState'\nexport * as getOrSetState from './operations/getOrSetState'\nexport * as patchState from './operations/patchState'\nexport * as callAction from './operations/callAction'\nexport * as configureIntegration from './operations/configureIntegration'\nexport * as createWorkflow from './operations/createWorkflow'\nexport * as getWorkflow from './operations/getWorkflow'\nexport * as updateWorkflow from './operations/updateWorkflow'\nexport * as deleteWorkflow from './operations/deleteWorkflow'\nexport * as listWorkflows from './operations/listWorkflows'\nexport * as getOrCreateWorkflow from './operations/getOrCreateWorkflow'\nexport * as listTagValues from './operations/listTagValues'\nexport * as trackAnalytics from './operations/trackAnalytics'\nexport * as captureObservation from './operations/captureObservation'\n\nexport const apiVersion = '1.108.0'\n\nexport type ClientProps = {\n  toAxiosRequest: typeof toAxiosRequest\n  toApiError: typeof toApiError\n}\n\nexport class Client {\n\n  public constructor(private axiosInstance: AxiosInstance, private props: Partial<ClientProps> = {}) {}\n\n  public readonly createConversation = async (input: createConversation.CreateConversationInput): Promise<createConversation.CreateConversationResponse> => {\n    const { path, headers, query, body } = createConversation.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<createConversation.CreateConversationResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getConversation = async (input: getConversation.GetConversationInput): Promise<getConversation.GetConversationResponse> => {\n    const { path, headers, query, body } = getConversation.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getConversation.GetConversationResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listConversations = async (input: listConversations.ListConversationsInput): Promise<listConversations.ListConversationsResponse> => {\n    const { path, headers, query, body } = listConversations.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listConversations.ListConversationsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getOrCreateConversation = async (input: getOrCreateConversation.GetOrCreateConversationInput): Promise<getOrCreateConversation.GetOrCreateConversationResponse> => {\n    const { path, headers, query, body } = getOrCreateConversation.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getOrCreateConversation.GetOrCreateConversationResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly updateConversation = async (input: updateConversation.UpdateConversationInput): Promise<updateConversation.UpdateConversationResponse> => {\n    const { path, headers, query, body } = updateConversation.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"put\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<updateConversation.UpdateConversationResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly deleteConversation = async (input: deleteConversation.DeleteConversationInput): Promise<deleteConversation.DeleteConversationResponse> => {\n    const { path, headers, query, body } = deleteConversation.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"delete\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<deleteConversation.DeleteConversationResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listParticipants = async (input: listParticipants.ListParticipantsInput): Promise<listParticipants.ListParticipantsResponse> => {\n    const { path, headers, query, body } = listParticipants.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listParticipants.ListParticipantsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly addParticipant = async (input: addParticipant.AddParticipantInput): Promise<addParticipant.AddParticipantResponse> => {\n    const { path, headers, query, body } = addParticipant.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<addParticipant.AddParticipantResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getParticipant = async (input: getParticipant.GetParticipantInput): Promise<getParticipant.GetParticipantResponse> => {\n    const { path, headers, query, body } = getParticipant.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getParticipant.GetParticipantResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly removeParticipant = async (input: removeParticipant.RemoveParticipantInput): Promise<removeParticipant.RemoveParticipantResponse> => {\n    const { path, headers, query, body } = removeParticipant.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"delete\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<removeParticipant.RemoveParticipantResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly createEvent = async (input: createEvent.CreateEventInput): Promise<createEvent.CreateEventResponse> => {\n    const { path, headers, query, body } = createEvent.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<createEvent.CreateEventResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getEvent = async (input: getEvent.GetEventInput): Promise<getEvent.GetEventResponse> => {\n    const { path, headers, query, body } = getEvent.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getEvent.GetEventResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listEvents = async (input: listEvents.ListEventsInput): Promise<listEvents.ListEventsResponse> => {\n    const { path, headers, query, body } = listEvents.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listEvents.ListEventsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly cancelScheduledEvent = async (input: cancelScheduledEvent.CancelScheduledEventInput): Promise<cancelScheduledEvent.CancelScheduledEventResponse> => {\n    const { path, headers, query, body } = cancelScheduledEvent.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"delete\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<cancelScheduledEvent.CancelScheduledEventResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly createMessage = async (input: createMessage.CreateMessageInput): Promise<createMessage.CreateMessageResponse> => {\n    const { path, headers, query, body } = createMessage.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<createMessage.CreateMessageResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getOrCreateMessage = async (input: getOrCreateMessage.GetOrCreateMessageInput): Promise<getOrCreateMessage.GetOrCreateMessageResponse> => {\n    const { path, headers, query, body } = getOrCreateMessage.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getOrCreateMessage.GetOrCreateMessageResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getMessage = async (input: getMessage.GetMessageInput): Promise<getMessage.GetMessageResponse> => {\n    const { path, headers, query, body } = getMessage.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getMessage.GetMessageResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly updateMessage = async (input: updateMessage.UpdateMessageInput): Promise<updateMessage.UpdateMessageResponse> => {\n    const { path, headers, query, body } = updateMessage.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"put\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<updateMessage.UpdateMessageResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listMessages = async (input: listMessages.ListMessagesInput): Promise<listMessages.ListMessagesResponse> => {\n    const { path, headers, query, body } = listMessages.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listMessages.ListMessagesResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly deleteMessage = async (input: deleteMessage.DeleteMessageInput): Promise<deleteMessage.DeleteMessageResponse> => {\n    const { path, headers, query, body } = deleteMessage.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"delete\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<deleteMessage.DeleteMessageResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly initializeIncomingMessage = async (input: initializeIncomingMessage.InitializeIncomingMessageInput): Promise<initializeIncomingMessage.InitializeIncomingMessageResponse> => {\n    const { path, headers, query, body } = initializeIncomingMessage.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<initializeIncomingMessage.InitializeIncomingMessageResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly importMessages = async (input: importMessages.ImportMessagesInput): Promise<importMessages.ImportMessagesResponse> => {\n    const { path, headers, query, body } = importMessages.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<importMessages.ImportMessagesResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly createUser = async (input: createUser.CreateUserInput): Promise<createUser.CreateUserResponse> => {\n    const { path, headers, query, body } = createUser.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<createUser.CreateUserResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getUser = async (input: getUser.GetUserInput): Promise<getUser.GetUserResponse> => {\n    const { path, headers, query, body } = getUser.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getUser.GetUserResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listUsers = async (input: listUsers.ListUsersInput): Promise<listUsers.ListUsersResponse> => {\n    const { path, headers, query, body } = listUsers.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listUsers.ListUsersResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getOrCreateUser = async (input: getOrCreateUser.GetOrCreateUserInput): Promise<getOrCreateUser.GetOrCreateUserResponse> => {\n    const { path, headers, query, body } = getOrCreateUser.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getOrCreateUser.GetOrCreateUserResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly updateUser = async (input: updateUser.UpdateUserInput): Promise<updateUser.UpdateUserResponse> => {\n    const { path, headers, query, body } = updateUser.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"put\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<updateUser.UpdateUserResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly deleteUser = async (input: deleteUser.DeleteUserInput): Promise<deleteUser.DeleteUserResponse> => {\n    const { path, headers, query, body } = deleteUser.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"delete\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<deleteUser.DeleteUserResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly setStateExpiry = async (input: setStateExpiry.SetStateExpiryInput): Promise<setStateExpiry.SetStateExpiryResponse> => {\n    const { path, headers, query, body } = setStateExpiry.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<setStateExpiry.SetStateExpiryResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getState = async (input: getState.GetStateInput): Promise<getState.GetStateResponse> => {\n    const { path, headers, query, body } = getState.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getState.GetStateResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly setState = async (input: setState.SetStateInput): Promise<setState.SetStateResponse> => {\n    const { path, headers, query, body } = setState.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<setState.SetStateResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getOrSetState = async (input: getOrSetState.GetOrSetStateInput): Promise<getOrSetState.GetOrSetStateResponse> => {\n    const { path, headers, query, body } = getOrSetState.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getOrSetState.GetOrSetStateResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly patchState = async (input: patchState.PatchStateInput): Promise<patchState.PatchStateResponse> => {\n    const { path, headers, query, body } = patchState.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"patch\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<patchState.PatchStateResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly callAction = async (input: callAction.CallActionInput): Promise<callAction.CallActionResponse> => {\n    const { path, headers, query, body } = callAction.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<callAction.CallActionResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly configureIntegration = async (input: configureIntegration.ConfigureIntegrationInput): Promise<configureIntegration.ConfigureIntegrationResponse> => {\n    const { path, headers, query, body } = configureIntegration.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<configureIntegration.ConfigureIntegrationResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly createWorkflow = async (input: createWorkflow.CreateWorkflowInput): Promise<createWorkflow.CreateWorkflowResponse> => {\n    const { path, headers, query, body } = createWorkflow.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<createWorkflow.CreateWorkflowResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getWorkflow = async (input: getWorkflow.GetWorkflowInput): Promise<getWorkflow.GetWorkflowResponse> => {\n    const { path, headers, query, body } = getWorkflow.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getWorkflow.GetWorkflowResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly updateWorkflow = async (input: updateWorkflow.UpdateWorkflowInput): Promise<updateWorkflow.UpdateWorkflowResponse> => {\n    const { path, headers, query, body } = updateWorkflow.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"put\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<updateWorkflow.UpdateWorkflowResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly deleteWorkflow = async (input: deleteWorkflow.DeleteWorkflowInput): Promise<deleteWorkflow.DeleteWorkflowResponse> => {\n    const { path, headers, query, body } = deleteWorkflow.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"delete\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<deleteWorkflow.DeleteWorkflowResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listWorkflows = async (input: listWorkflows.ListWorkflowsInput): Promise<listWorkflows.ListWorkflowsResponse> => {\n    const { path, headers, query, body } = listWorkflows.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listWorkflows.ListWorkflowsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getOrCreateWorkflow = async (input: getOrCreateWorkflow.GetOrCreateWorkflowInput): Promise<getOrCreateWorkflow.GetOrCreateWorkflowResponse> => {\n    const { path, headers, query, body } = getOrCreateWorkflow.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getOrCreateWorkflow.GetOrCreateWorkflowResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listTagValues = async (input: listTagValues.ListTagValuesInput): Promise<listTagValues.ListTagValuesResponse> => {\n    const { path, headers, query, body } = listTagValues.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listTagValues.ListTagValuesResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly trackAnalytics = async (input: trackAnalytics.TrackAnalyticsInput): Promise<trackAnalytics.TrackAnalyticsResponse> => {\n    const { path, headers, query, body } = trackAnalytics.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<trackAnalytics.TrackAnalyticsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly captureObservation = async (input: captureObservation.CaptureObservationInput): Promise<captureObservation.CaptureObservationResponse> => {\n    const { path, headers, query, body } = captureObservation.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<captureObservation.CaptureObservationResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n}\n\n// maps axios error to api error type\nfunction toApiError(err: unknown): Error {\n  if (axios.isAxiosError(err) && err.response?.data) {\n    return errorFrom(err.response.data)\n  }\n  return errorFrom(err)\n}\n\n", "import * as common from '../common'\nimport * as gen from '../gen/admin'\nimport * as types from '../types'\n\ntype IClient = common.types.Simplify<gen.Client>\nexport type Operation = common.types.Operation<IClient>\nexport type ClientInputs = common.types.Inputs<IClient>\nexport type ClientOutputs = common.types.Outputs<IClient>\n\nexport type ClientProps = common.types.CommonClientProps & {\n  workspaceId?: string\n  token: string\n}\n\nexport class Client extends gen.Client {\n  public readonly config: Readonly<types.ClientConfig>\n\n  public constructor(clientProps: ClientProps) {\n    const clientConfig = common.config.getClientConfig(clientProps)\n    const axiosInstance = common.axios.createAxiosInstance(clientConfig, clientProps.retry)\n\n    super(axiosInstance, {\n      toApiError: common.errors.toApiError,\n    })\n\n    this.config = clientConfig\n  }\n\n  public get list() {\n    type ListInputs = common.types.ListInputs<IClient>\n    return {\n      publicIntegrations: (props: ListInputs['listPublicIntegrations']) =>\n        new common.listing.AsyncCollection(({ nextToken }) =>\n          this.listPublicIntegrations({ nextToken, ...props }).then((r) => ({ ...r, items: r.integrations }))\n        ),\n      bots: (props: ListInputs['listBots']) =>\n        new common.listing.AsyncCollection(({ nextToken }) =>\n          this.listBots({ nextToken, ...props }).then((r) => ({ ...r, items: r.bots }))\n        ),\n      botIssues: (props: ListInputs['listBotIssues']) =>\n        new common.listing.AsyncCollection(({ nextToken }) =>\n          this.listBotIssues({ nextToken, ...props }).then((r) => ({ ...r, items: r.issues }))\n        ),\n      workspaces: (props: ListInputs['listWorkspaces']) =>\n        new common.listing.AsyncCollection(({ nextToken }) =>\n          this.listWorkspaces({ nextToken, ...props }).then((r) => ({ ...r, items: r.workspaces }))\n        ),\n      publicWorkspaces: (props: ListInputs['listPublicWorkspaces']) =>\n        new common.listing.AsyncCollection(({ nextToken }) =>\n          this.listPublicWorkspaces({ nextToken, ...props }).then((r) => ({ ...r, items: r.workspaces }))\n        ),\n      workspaceMembers: (props: ListInputs['listWorkspaceMembers']) =>\n        new common.listing.AsyncCollection(({ nextToken }) =>\n          this.listWorkspaceMembers({ nextToken, ...props }).then((r) => ({ ...r, items: r.members }))\n        ),\n      integrations: (props: ListInputs['listIntegrations']) =>\n        new common.listing.AsyncCollection(({ nextToken }) =>\n          this.listIntegrations({ nextToken, ...props }).then((r) => ({ ...r, items: r.integrations }))\n        ),\n      interfaces: (props: ListInputs['listInterfaces']) =>\n        new common.listing.AsyncCollection(({ nextToken }) =>\n          this.listInterfaces({ nextToken, ...props }).then((r) => ({ ...r, items: r.interfaces }))\n        ),\n      activities: (props: ListInputs['listActivities']) =>\n        new common.listing.AsyncCollection(({ nextToken }) =>\n          this.listActivities({ nextToken, ...props }).then((r) => ({ ...r, items: r.activities }))\n        ),\n      usageActivity: (props: ListInputs['listUsageActivity']) =>\n        new common.listing.AsyncCollection(({ nextToken }) =>\n          this.listUsageActivity({ nextToken, ...props }).then((r) => ({ ...r, items: r.data }))\n        ),\n      usageActivityDaily: (props: ListInputs['listUsageActivityDaily']) =>\n        new common.listing.AsyncCollection(({ nextToken }) =>\n          this.listUsageActivityDaily({ nextToken, ...props }).then((r) => ({ ...r, items: r.data }))\n        ),\n    }\n  }\n}\n", "\nimport crypto from 'crypto'\n\nconst codes = {\n  HTTP_STATUS_BAD_REQUEST: 400,\n  HTTP_STATUS_UNAUTHORIZED: 401,\n  HTTP_STATUS_PAYMENT_REQUIRED: 402,\n  HTTP_STATUS_FORBIDDEN: 403,\n  HTTP_STATUS_NOT_FOUND: 404,\n  HTTP_STATUS_METHOD_NOT_ALLOWED: 405,\n  HTTP_STATUS_REQUEST_TIMEOUT: 408,\n  HTTP_STATUS_CONFLICT: 409,\n  HTTP_STATUS_GONE: 410,\n  HTTP_STATUS_PAYLOAD_TOO_LARGE: 413,\n  HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE: 415,\n  HTTP_STATUS_DEPENDENCY_FAILED: 424,\n  HTTP_STATUS_TOO_MANY_REQUESTS: 429,\n  HTTP_STATUS_INTERNAL_SERVER_ERROR: 500,\n  HTTP_STATUS_NOT_IMPLEMENTED: 501,\n  HTTP_STATUS_BAD_GATEWAY: 502,\n  HTTP_STATUS_SERVICE_UNAVAILABLE: 503,\n  HTTP_STATUS_GATEWAY_TIMEOUT: 504,\n} as const\n\ntype ErrorCode = typeof codes[keyof typeof codes]\n\ndeclare const window: any\ntype CryptoLib = { getRandomValues(array: Uint8Array): Uint8Array }\n\nconst cryptoLibPolyfill: CryptoLib = {\n  // Fallback in case crypto isn't available.\n  getRandomValues: (array: Uint8Array) => new Uint8Array(array.map(() => Math.floor(Math.random() * 256))),\n}\n\nlet cryptoLib: CryptoLib =\n  typeof window !== 'undefined' && typeof window.document !== 'undefined'\n    ? window.crypto // Note: On browsers we need to use window.crypto instead of the imported crypto module as the latter is externalized and doesn't have getRandomValues().\n    : crypto\n\nif (!cryptoLib.getRandomValues) {\n  // Use a polyfill in older environments that have a crypto implementaton missing getRandomValues()\n  cryptoLib = cryptoLibPolyfill\n}\n\nabstract class BaseApiError<Code extends ErrorCode, Type extends string, Description extends string> extends Error {\n  public readonly isApiError = true\n\n  constructor(\n    public readonly code: Code,\n    public readonly description: Description,\n    public readonly type: Type,\n    public override readonly message: string,\n    public readonly error?: Error,\n    public readonly id?: string,\n    public readonly metadata?: Record<string, unknown>,\n  ) {\n    super(message)\n\n    if (!this.id) {\n      this.id = BaseApiError.generateId()\n    }\n  }\n\n  format() {\n    return `[${this.type}] ${this.message} (Error ID: ${this.id})`\n  }\n\n  toJSON() {\n    return {\n      id: this.id,\n      code: this.code,\n      type: this.type,\n      message: this.message,\n      metadata: this.metadata,\n    }\n  }\n\n  static generateId() {\n    const prefix = this.getPrefix();\n    const timestamp = new Date().toISOString().replace(/[\\-:TZ]/g, \"\").split(\".\")[0] // UTC time in YYMMDDHHMMSS format\n\n    const randomSuffixByteLength = 4\n    const randomHexSuffix = Array.from(cryptoLib.getRandomValues(new Uint8Array(randomSuffixByteLength)))\n      .map(x => x.toString(16).padStart(2, '0'))\n      .join('')\n      .toUpperCase()\n\n    return `${prefix}_${timestamp}x${randomHexSuffix}`\n  }\n\n  private static getPrefix() {\n    if (typeof window !== 'undefined' && typeof window.document !== 'undefined') {\n      // Browser environment\n      return 'err_bwsr'\n    }\n    return 'err'\n  }\n}\n\nconst isObject = (obj: unknown): obj is object => typeof obj === 'object' && !Array.isArray(obj) && obj !== null\n\nexport const isApiError = (thrown: unknown): thrown is ApiError => {\n  return thrown instanceof BaseApiError || isObject(thrown) && (thrown as ApiError).isApiError === true\n}\n\ntype UnknownType = 'Unknown'\n\n/**\n *  An unknown error occurred\n */\nexport class UnknownError extends BaseApiError<500, UnknownType, 'An unknown error occurred'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(500, 'An unknown error occurred', 'Unknown', message, error, id, metadata)\n  }\n}\n\ntype InternalType = 'Internal'\n\n/**\n *  An internal error occurred\n */\nexport class InternalError extends BaseApiError<500, InternalType, 'An internal error occurred'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(500, 'An internal error occurred', 'Internal', message, error, id, metadata)\n  }\n}\n\ntype UnauthorizedType = 'Unauthorized'\n\n/**\n *  The request requires to be authenticated.\n */\nexport class UnauthorizedError extends BaseApiError<401, UnauthorizedType, 'The request requires to be authenticated.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(401, 'The request requires to be authenticated.', 'Unauthorized', message, error, id, metadata)\n  }\n}\n\ntype ForbiddenType = 'Forbidden'\n\n/**\n *  The requested action can\\'t be peform by this resource.\n */\nexport class ForbiddenError extends BaseApiError<403, ForbiddenType, 'The requested action can\\'t be peform by this resource.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(403, 'The requested action can\\'t be peform by this resource.', 'Forbidden', message, error, id, metadata)\n  }\n}\n\ntype PayloadTooLargeType = 'PayloadTooLarge'\n\n/**\n *  The request payload is too large.\n */\nexport class PayloadTooLargeError extends BaseApiError<413, PayloadTooLargeType, 'The request payload is too large.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(413, 'The request payload is too large.', 'PayloadTooLarge', message, error, id, metadata)\n  }\n}\n\ntype InvalidPayloadType = 'InvalidPayload'\n\n/**\n *  The request payload is invalid.\n */\nexport class InvalidPayloadError extends BaseApiError<400, InvalidPayloadType, 'The request payload is invalid.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'The request payload is invalid.', 'InvalidPayload', message, error, id, metadata)\n  }\n}\n\ntype UnsupportedMediaTypeType = 'UnsupportedMediaType'\n\n/**\n *  The request is invalid because the content-type is not supported.\n */\nexport class UnsupportedMediaTypeError extends BaseApiError<415, UnsupportedMediaTypeType, 'The request is invalid because the content-type is not supported.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(415, 'The request is invalid because the content-type is not supported.', 'UnsupportedMediaType', message, error, id, metadata)\n  }\n}\n\ntype MethodNotFoundType = 'MethodNotFound'\n\n/**\n *  The requested method does not exist.\n */\nexport class MethodNotFoundError extends BaseApiError<405, MethodNotFoundType, 'The requested method does not exist.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(405, 'The requested method does not exist.', 'MethodNotFound', message, error, id, metadata)\n  }\n}\n\ntype ResourceNotFoundType = 'ResourceNotFound'\n\n/**\n *  The requested resource does not exist.\n */\nexport class ResourceNotFoundError extends BaseApiError<404, ResourceNotFoundType, 'The requested resource does not exist.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(404, 'The requested resource does not exist.', 'ResourceNotFound', message, error, id, metadata)\n  }\n}\n\ntype InvalidJsonSchemaType = 'InvalidJsonSchema'\n\n/**\n *  The provided JSON schema is invalid.\n */\nexport class InvalidJsonSchemaError extends BaseApiError<400, InvalidJsonSchemaType, 'The provided JSON schema is invalid.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'The provided JSON schema is invalid.', 'InvalidJsonSchema', message, error, id, metadata)\n  }\n}\n\ntype InvalidDataFormatType = 'InvalidDataFormat'\n\n/**\n *  The provided data doesn\\'t respect the provided JSON schema.\n */\nexport class InvalidDataFormatError extends BaseApiError<400, InvalidDataFormatType, 'The provided data doesn\\'t respect the provided JSON schema.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'The provided data doesn\\'t respect the provided JSON schema.', 'InvalidDataFormat', message, error, id, metadata)\n  }\n}\n\ntype InvalidIdentifierType = 'InvalidIdentifier'\n\n/**\n *  The provided identifier is not valid. An identifier must start with a lowercase letter, be between 2 and 100 characters long and use only alphanumeric characters.\n */\nexport class InvalidIdentifierError extends BaseApiError<400, InvalidIdentifierType, 'The provided identifier is not valid. An identifier must start with a lowercase letter, be between 2 and 100 characters long and use only alphanumeric characters.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'The provided identifier is not valid. An identifier must start with a lowercase letter, be between 2 and 100 characters long and use only alphanumeric characters.', 'InvalidIdentifier', message, error, id, metadata)\n  }\n}\n\ntype RelationConflictType = 'RelationConflict'\n\n/**\n *  The resource is related with a different resource that the one referenced in the request. This is usually caused when providing two resource identifiers that aren\\'t linked together.\n */\nexport class RelationConflictError extends BaseApiError<409, RelationConflictType, 'The resource is related with a different resource that the one referenced in the request. This is usually caused when providing two resource identifiers that aren\\'t linked together.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(409, 'The resource is related with a different resource that the one referenced in the request. This is usually caused when providing two resource identifiers that aren\\'t linked together.', 'RelationConflict', message, error, id, metadata)\n  }\n}\n\ntype ReferenceConstraintType = 'ReferenceConstraint'\n\n/**\n *  The resource cannot be deleted because it\\'s referenced by another resource\n */\nexport class ReferenceConstraintError extends BaseApiError<409, ReferenceConstraintType, 'The resource cannot be deleted because it\\'s referenced by another resource'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(409, 'The resource cannot be deleted because it\\'s referenced by another resource', 'ReferenceConstraint', message, error, id, metadata)\n  }\n}\n\ntype ResourceLockedConflictType = 'ResourceLockedConflict'\n\n/**\n *  The resource is current locked and cannot be operated on until the lock is released.\n */\nexport class ResourceLockedConflictError extends BaseApiError<409, ResourceLockedConflictType, 'The resource is current locked and cannot be operated on until the lock is released.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(409, 'The resource is current locked and cannot be operated on until the lock is released.', 'ResourceLockedConflict', message, error, id, metadata)\n  }\n}\n\ntype ResourceGoneType = 'ResourceGone'\n\n/**\n *  The requested resource is no longer available.\n */\nexport class ResourceGoneError extends BaseApiError<410, ResourceGoneType, 'The requested resource is no longer available.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(410, 'The requested resource is no longer available.', 'ResourceGone', message, error, id, metadata)\n  }\n}\n\ntype ReferenceNotFoundType = 'ReferenceNotFound'\n\n/**\n *  The provided resource reference is missing. This is usually caused when providing an invalid id inside the payload of a request.\n */\nexport class ReferenceNotFoundError extends BaseApiError<400, ReferenceNotFoundType, 'The provided resource reference is missing. This is usually caused when providing an invalid id inside the payload of a request.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'The provided resource reference is missing. This is usually caused when providing an invalid id inside the payload of a request.', 'ReferenceNotFound', message, error, id, metadata)\n  }\n}\n\ntype InvalidQueryType = 'InvalidQuery'\n\n/**\n *  The provided query is invalid. This is usually caused when providing an invalid parameter for querying a resource.\n */\nexport class InvalidQueryError extends BaseApiError<400, InvalidQueryType, 'The provided query is invalid. This is usually caused when providing an invalid parameter for querying a resource.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'The provided query is invalid. This is usually caused when providing an invalid parameter for querying a resource.', 'InvalidQuery', message, error, id, metadata)\n  }\n}\n\ntype RuntimeType = 'Runtime'\n\n/**\n *  An error happened during the execution of a runtime (bot or integration).\n */\nexport class RuntimeError extends BaseApiError<400, RuntimeType, 'An error happened during the execution of a runtime (bot or integration).'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'An error happened during the execution of a runtime (bot or integration).', 'Runtime', message, error, id, metadata)\n  }\n}\n\ntype AlreadyExistsType = 'AlreadyExists'\n\n/**\n *  The record attempted to be created already exists.\n */\nexport class AlreadyExistsError extends BaseApiError<409, AlreadyExistsType, 'The record attempted to be created already exists.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(409, 'The record attempted to be created already exists.', 'AlreadyExists', message, error, id, metadata)\n  }\n}\n\ntype RateLimitedType = 'RateLimited'\n\n/**\n *  The request has been rate limited.\n */\nexport class RateLimitedError extends BaseApiError<429, RateLimitedType, 'The request has been rate limited.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(429, 'The request has been rate limited.', 'RateLimited', message, error, id, metadata)\n  }\n}\n\ntype PaymentRequiredType = 'PaymentRequired'\n\n/**\n *  A payment is required to perform this request.\n */\nexport class PaymentRequiredError extends BaseApiError<402, PaymentRequiredType, 'A payment is required to perform this request.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(402, 'A payment is required to perform this request.', 'PaymentRequired', message, error, id, metadata)\n  }\n}\n\ntype QuotaExceededType = 'QuotaExceeded'\n\n/**\n *  The request exceeds the allowed quota. Quotas are a soft limit that can be increased.\n */\nexport class QuotaExceededError extends BaseApiError<403, QuotaExceededType, 'The request exceeds the allowed quota. Quotas are a soft limit that can be increased.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(403, 'The request exceeds the allowed quota. Quotas are a soft limit that can be increased.', 'QuotaExceeded', message, error, id, metadata)\n  }\n}\n\ntype LimitExceededType = 'LimitExceeded'\n\n/**\n *  The request exceeds the allowed limit. Limits are a hard limit that cannot be increased.\n */\nexport class LimitExceededError extends BaseApiError<413, LimitExceededType, 'The request exceeds the allowed limit. Limits are a hard limit that cannot be increased.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(413, 'The request exceeds the allowed limit. Limits are a hard limit that cannot be increased.', 'LimitExceeded', message, error, id, metadata)\n  }\n}\n\ntype BreakingChangesType = 'BreakingChanges'\n\n/**\n *  Request payload contains breaking changes which is not allowed for this resource without a version increment.\n */\nexport class BreakingChangesError extends BaseApiError<400, BreakingChangesType, 'Request payload contains breaking changes which is not allowed for this resource without a version increment.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'Request payload contains breaking changes which is not allowed for this resource without a version increment.', 'BreakingChanges', message, error, id, metadata)\n  }\n}\n\ntype OperationTimeoutType = 'OperationTimeout'\n\n/**\n *  The operation timed out.\n */\nexport class OperationTimeoutError extends BaseApiError<504, OperationTimeoutType, 'The operation timed out.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(504, 'The operation timed out.', 'OperationTimeout', message, error, id, metadata)\n  }\n}\n\nexport type ErrorType =\n  | 'Unknown'\n  | 'Internal'\n  | 'Unauthorized'\n  | 'Forbidden'\n  | 'PayloadTooLarge'\n  | 'InvalidPayload'\n  | 'UnsupportedMediaType'\n  | 'MethodNotFound'\n  | 'ResourceNotFound'\n  | 'InvalidJsonSchema'\n  | 'InvalidDataFormat'\n  | 'InvalidIdentifier'\n  | 'RelationConflict'\n  | 'ReferenceConstraint'\n  | 'ResourceLockedConflict'\n  | 'ResourceGone'\n  | 'ReferenceNotFound'\n  | 'InvalidQuery'\n  | 'Runtime'\n  | 'AlreadyExists'\n  | 'RateLimited'\n  | 'PaymentRequired'\n  | 'QuotaExceeded'\n  | 'LimitExceeded'\n  | 'BreakingChanges'\n  | 'OperationTimeout'\n\nexport type ApiError =\n  | UnknownError\n  | InternalError\n  | UnauthorizedError\n  | ForbiddenError\n  | PayloadTooLargeError\n  | InvalidPayloadError\n  | UnsupportedMediaTypeError\n  | MethodNotFoundError\n  | ResourceNotFoundError\n  | InvalidJsonSchemaError\n  | InvalidDataFormatError\n  | InvalidIdentifierError\n  | RelationConflictError\n  | ReferenceConstraintError\n  | ResourceLockedConflictError\n  | ResourceGoneError\n  | ReferenceNotFoundError\n  | InvalidQueryError\n  | RuntimeError\n  | AlreadyExistsError\n  | RateLimitedError\n  | PaymentRequiredError\n  | QuotaExceededError\n  | LimitExceededError\n  | BreakingChangesError\n  | OperationTimeoutError\n\nconst errorTypes: { [type: string]: new (message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) => ApiError } = {\n  Unknown: UnknownError,\n  Internal: InternalError,\n  Unauthorized: UnauthorizedError,\n  Forbidden: ForbiddenError,\n  PayloadTooLarge: PayloadTooLargeError,\n  InvalidPayload: InvalidPayloadError,\n  UnsupportedMediaType: UnsupportedMediaTypeError,\n  MethodNotFound: MethodNotFoundError,\n  ResourceNotFound: ResourceNotFoundError,\n  InvalidJsonSchema: InvalidJsonSchemaError,\n  InvalidDataFormat: InvalidDataFormatError,\n  InvalidIdentifier: InvalidIdentifierError,\n  RelationConflict: RelationConflictError,\n  ReferenceConstraint: ReferenceConstraintError,\n  ResourceLockedConflict: ResourceLockedConflictError,\n  ResourceGone: ResourceGoneError,\n  ReferenceNotFound: ReferenceNotFoundError,\n  InvalidQuery: InvalidQueryError,\n  Runtime: RuntimeError,\n  AlreadyExists: AlreadyExistsError,\n  RateLimited: RateLimitedError,\n  PaymentRequired: PaymentRequiredError,\n  QuotaExceeded: QuotaExceededError,\n  LimitExceeded: LimitExceededError,\n  BreakingChanges: BreakingChangesError,\n  OperationTimeout: OperationTimeoutError,\n}\n\nexport const errorFrom = (err: unknown): ApiError => {\n  if (isApiError(err)) {\n    return err\n  }\n  else if (err instanceof Error) {\n    return new UnknownError(err.message, err)\n  }\n  else if (typeof err === 'string') {\n    return new UnknownError(err)\n  }\n  else {\n    return getApiErrorFromObject(err)\n  }\n}\n\nfunction getApiErrorFromObject(err: any) {\n  // Check if it's an deserialized API error object\n  if (typeof err === 'object' && 'code' in err && 'type' in err && 'id' in err && 'message' in err && typeof err.type === 'string' && typeof err.message === 'string') {\n    const ErrorClass = errorTypes[err.type]\n    if (!ErrorClass) {\n      return new UnknownError(`An unclassified API error occurred: ${err.message} (Type: ${err.type}, Code: ${err.code})`)\n    }\n\n    return new ErrorClass(err.message, undefined, <string>err.id || 'UNKNOWN', err.metadata) // If error ID was not received do not pass undefined to generate a new one, flag it as UNKNOWN so we can fix the issue.\n  }\n\n  return new UnknownError('An invalid error occurred: ' + JSON.stringify(err))\n}\n", "\nimport { AxiosRequestConfig } from \"axios\"\nimport qs from \"qs\"\n\nexport type Primitive = string | number | boolean\nexport type Value<P extends Primitive> = P | P[] | Record<string, P>\nexport type QueryValue = Value<string> | Value<boolean> | Value<number> | undefined\nexport type AnyQueryParams = Record<string, QueryValue>\nexport type HeaderValue = string | undefined\nexport type AnyHeaderParams = Record<string, HeaderValue>\nexport type AnyBodyParams = Record<string, any>\nexport type ParsedRequest = {\n  method: string\n  path: string\n  query: AnyQueryParams\n  headers: AnyHeaderParams\n  body: AnyBodyParams\n}\n\nconst isDefined = <T>(pair: [string, T | undefined]): pair is [string, T] => pair[1] !== undefined\n\nexport const toAxiosRequest = (req: ParsedRequest): AxiosRequestConfig => {\n  const { method, path, query, headers: headerParams, body } = req\n\n  // prepare headers\n  const headerEntries: [string, string][] = Object.entries(headerParams).filter(isDefined)\n  const headers = Object.fromEntries(headerEntries)\n\n  // prepare query params\n  const queryString = qs.stringify(query, { encode: true, arrayFormat: 'repeat', allowDots: true })\n\n  const url = queryString ? [path, queryString].join('?') : path\n  const data =\n    ['put', 'post', 'delete', 'patch'].includes(method.toLowerCase())\n      ? body\n      : undefined\n\n  return {\n    method,\n    url,\n    headers,\n    data,\n  }\n}\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface RunVrlRequestHeaders {}\n\nexport interface RunVrlRequestQuery {}\n\nexport interface RunVrlRequestParams {}\n\nexport interface RunVrlRequestBody {\n  data: {\n    [k: string]: any;\n  };\n  script: string;\n}\n\nexport type RunVrlInput = RunVrlRequestBody & RunVrlRequestHeaders & RunVrlRequestQuery & RunVrlRequestParams\n\nexport type RunVrlRequest = {\n  headers: RunVrlRequestHeaders;\n  query: RunVrlRequestQuery;\n  params: RunVrlRequestParams;\n  body: RunVrlRequestBody;\n}\n\nexport const parseReq = (input: RunVrlInput): RunVrlRequest & { path: string } => {\n  return {\n    path: `/v1/admin/helper/vrl`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'data': input['data'], 'script': input['script'] },\n  }\n}\n\nexport interface RunVrlResponse {\n  data: {\n    [k: string]: any;\n  };\n  result?: any;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetAccountRequestHeaders {}\n\nexport interface GetAccountRequestQuery {}\n\nexport interface GetAccountRequestParams {}\n\nexport interface GetAccountRequestBody {}\n\nexport type GetAccountInput = GetAccountRequestBody & GetAccountRequestHeaders & GetAccountRequestQuery & GetAccountRequestParams\n\nexport type GetAccountRequest = {\n  headers: GetAccountRequestHeaders;\n  query: GetAccountRequestQuery;\n  params: GetAccountRequestParams;\n  body: GetAccountRequestBody;\n}\n\nexport const parseReq = (_: GetAccountInput): GetAccountRequest & { path: string } => {\n  return {\n    path: `/v1/admin/account/me`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface GetAccountResponse {\n  account: {\n    id: string;\n    email: string;\n    displayName?: string;\n    emailVerified: boolean;\n    profilePicture?: string;\n    /**\n     * Creation date of the [Account](#schema_account) in ISO 8601 format\n     */\n    createdAt: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface UpdateAccountRequestHeaders {}\n\nexport interface UpdateAccountRequestQuery {}\n\nexport interface UpdateAccountRequestParams {}\n\nexport interface UpdateAccountRequestBody {\n  displayName?: string;\n  profilePicture?: string;\n  refresh?: boolean;\n}\n\nexport type UpdateAccountInput = UpdateAccountRequestBody & UpdateAccountRequestHeaders & UpdateAccountRequestQuery & UpdateAccountRequestParams\n\nexport type UpdateAccountRequest = {\n  headers: UpdateAccountRequestHeaders;\n  query: UpdateAccountRequestQuery;\n  params: UpdateAccountRequestParams;\n  body: UpdateAccountRequestBody;\n}\n\nexport const parseReq = (input: UpdateAccountInput): UpdateAccountRequest & { path: string } => {\n  return {\n    path: `/v1/admin/account/me`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'displayName': input['displayName'], 'profilePicture': input['profilePicture'], 'refresh': input['refresh'] },\n  }\n}\n\nexport interface UpdateAccountResponse {\n  account: {\n    id: string;\n    email: string;\n    displayName?: string;\n    emailVerified: boolean;\n    profilePicture?: string;\n    /**\n     * Creation date of the [Account](#schema_account) in ISO 8601 format\n     */\n    createdAt: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface DeleteAccountRequestHeaders {}\n\nexport interface DeleteAccountRequestQuery {}\n\nexport interface DeleteAccountRequestParams {}\n\nexport interface DeleteAccountRequestBody {}\n\nexport type DeleteAccountInput = DeleteAccountRequestBody & DeleteAccountRequestHeaders & DeleteAccountRequestQuery & DeleteAccountRequestParams\n\nexport type DeleteAccountRequest = {\n  headers: DeleteAccountRequestHeaders;\n  query: DeleteAccountRequestQuery;\n  params: DeleteAccountRequestParams;\n  body: DeleteAccountRequestBody;\n}\n\nexport const parseReq = (_: DeleteAccountInput): DeleteAccountRequest & { path: string } => {\n  return {\n    path: `/v1/admin/account/me`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface DeleteAccountResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListPersonalAccessTokensRequestHeaders {}\n\nexport interface ListPersonalAccessTokensRequestQuery {}\n\nexport interface ListPersonalAccessTokensRequestParams {}\n\nexport interface ListPersonalAccessTokensRequestBody {}\n\nexport type ListPersonalAccessTokensInput = ListPersonalAccessTokensRequestBody & ListPersonalAccessTokensRequestHeaders & ListPersonalAccessTokensRequestQuery & ListPersonalAccessTokensRequestParams\n\nexport type ListPersonalAccessTokensRequest = {\n  headers: ListPersonalAccessTokensRequestHeaders;\n  query: ListPersonalAccessTokensRequestQuery;\n  params: ListPersonalAccessTokensRequestParams;\n  body: ListPersonalAccessTokensRequestBody;\n}\n\nexport const parseReq = (_: ListPersonalAccessTokensInput): ListPersonalAccessTokensRequest & { path: string } => {\n  return {\n    path: `/v1/admin/account/pats`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListPersonalAccessTokensResponse {\n  pats: {\n    id: string;\n    createdAt: string;\n    note: string;\n  }[];\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CreatePersonalAccessTokenRequestHeaders {}\n\nexport interface CreatePersonalAccessTokenRequestQuery {}\n\nexport interface CreatePersonalAccessTokenRequestParams {}\n\nexport interface CreatePersonalAccessTokenRequestBody {\n  /**\n   * Note to identify the PAT\n   */\n  note: string;\n}\n\nexport type CreatePersonalAccessTokenInput = CreatePersonalAccessTokenRequestBody & CreatePersonalAccessTokenRequestHeaders & CreatePersonalAccessTokenRequestQuery & CreatePersonalAccessTokenRequestParams\n\nexport type CreatePersonalAccessTokenRequest = {\n  headers: CreatePersonalAccessTokenRequestHeaders;\n  query: CreatePersonalAccessTokenRequestQuery;\n  params: CreatePersonalAccessTokenRequestParams;\n  body: CreatePersonalAccessTokenRequestBody;\n}\n\nexport const parseReq = (input: CreatePersonalAccessTokenInput): CreatePersonalAccessTokenRequest & { path: string } => {\n  return {\n    path: `/v1/admin/account/pats`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'note': input['note'] },\n  }\n}\n\nexport interface CreatePersonalAccessTokenResponse {\n  pat: {\n    id: string;\n    createdAt: string;\n    note: string;\n    /**\n     * The PAT value. This will only be returned here when created and cannot be retrieved later.\n     */\n    value: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface DeletePersonalAccessTokenRequestHeaders {}\n\nexport interface DeletePersonalAccessTokenRequestQuery {}\n\nexport interface DeletePersonalAccessTokenRequestParams {\n  id: string;\n}\n\nexport interface DeletePersonalAccessTokenRequestBody {}\n\nexport type DeletePersonalAccessTokenInput = DeletePersonalAccessTokenRequestBody & DeletePersonalAccessTokenRequestHeaders & DeletePersonalAccessTokenRequestQuery & DeletePersonalAccessTokenRequestParams\n\nexport type DeletePersonalAccessTokenRequest = {\n  headers: DeletePersonalAccessTokenRequestHeaders;\n  query: DeletePersonalAccessTokenRequestQuery;\n  params: DeletePersonalAccessTokenRequestParams;\n  body: DeletePersonalAccessTokenRequestBody;\n}\n\nexport const parseReq = (input: DeletePersonalAccessTokenInput): DeletePersonalAccessTokenRequest & { path: string } => {\n  return {\n    path: `/v1/admin/account/pats/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface DeletePersonalAccessTokenResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface SetAccountPreferenceRequestHeaders {}\n\nexport interface SetAccountPreferenceRequestQuery {}\n\nexport interface SetAccountPreferenceRequestParams {\n  key: string;\n}\n\nexport interface SetAccountPreferenceRequestBody {\n  value?: any;\n}\n\nexport type SetAccountPreferenceInput = SetAccountPreferenceRequestBody & SetAccountPreferenceRequestHeaders & SetAccountPreferenceRequestQuery & SetAccountPreferenceRequestParams\n\nexport type SetAccountPreferenceRequest = {\n  headers: SetAccountPreferenceRequestHeaders;\n  query: SetAccountPreferenceRequestQuery;\n  params: SetAccountPreferenceRequestParams;\n  body: SetAccountPreferenceRequestBody;\n}\n\nexport const parseReq = (input: SetAccountPreferenceInput): SetAccountPreferenceRequest & { path: string } => {\n  return {\n    path: `/v1/admin/account/preferences/${encodeURIComponent(input['key'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'key': input['key'] },\n    body: { 'value': input['value'] },\n  }\n}\n\nexport interface SetAccountPreferenceResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetAccountPreferenceRequestHeaders {}\n\nexport interface GetAccountPreferenceRequestQuery {}\n\nexport interface GetAccountPreferenceRequestParams {\n  key: string;\n}\n\nexport interface GetAccountPreferenceRequestBody {}\n\nexport type GetAccountPreferenceInput = GetAccountPreferenceRequestBody & GetAccountPreferenceRequestHeaders & GetAccountPreferenceRequestQuery & GetAccountPreferenceRequestParams\n\nexport type GetAccountPreferenceRequest = {\n  headers: GetAccountPreferenceRequestHeaders;\n  query: GetAccountPreferenceRequestQuery;\n  params: GetAccountPreferenceRequestParams;\n  body: GetAccountPreferenceRequestBody;\n}\n\nexport const parseReq = (input: GetAccountPreferenceInput): GetAccountPreferenceRequest & { path: string } => {\n  return {\n    path: `/v1/admin/account/preferences/${encodeURIComponent(input['key'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'key': input['key'] },\n    body: {  },\n  }\n}\n\nexport interface GetAccountPreferenceResponse {\n  value?: any;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListPublicIntegrationsRequestHeaders {}\n\nexport interface ListPublicIntegrationsRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n  limit?: number;\n  name?: string;\n  version?: string;\n  interfaceId?: string;\n  interfaceName?: string;\n  installedByBotId?: string;\n  verificationStatus?: \"unapproved\" | \"pending\" | \"approved\" | \"rejected\";\n  search?: string;\n  sortBy?: \"popularity\" | \"name\" | \"createdAt\" | \"updatedAt\" | \"installCount\";\n  direction?: \"asc\" | \"desc\";\n}\n\nexport interface ListPublicIntegrationsRequestParams {}\n\nexport interface ListPublicIntegrationsRequestBody {}\n\nexport type ListPublicIntegrationsInput = ListPublicIntegrationsRequestBody & ListPublicIntegrationsRequestHeaders & ListPublicIntegrationsRequestQuery & ListPublicIntegrationsRequestParams\n\nexport type ListPublicIntegrationsRequest = {\n  headers: ListPublicIntegrationsRequestHeaders;\n  query: ListPublicIntegrationsRequestQuery;\n  params: ListPublicIntegrationsRequestParams;\n  body: ListPublicIntegrationsRequestBody;\n}\n\nexport const parseReq = (input: ListPublicIntegrationsInput): ListPublicIntegrationsRequest & { path: string } => {\n  return {\n    path: `/v1/admin/hub/integrations`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'], 'limit': input['limit'], 'name': input['name'], 'version': input['version'], 'interfaceId': input['interfaceId'], 'interfaceName': input['interfaceName'], 'installedByBotId': input['installedByBotId'], 'verificationStatus': input['verificationStatus'], 'search': input['search'], 'sortBy': input['sortBy'], 'direction': input['direction'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListPublicIntegrationsResponse {\n  integrations: {\n    /**\n     * ID of the [Integration](#schema_integration)\n     */\n    id: string;\n    /**\n     * Name of the [Integration](#schema_integration)\n     */\n    name: string;\n    /**\n     * Version of the [Integration](#schema_integration)\n     */\n    version: string;\n    /**\n     * Creation date of the [Integration](#schema_integration) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Integration](#schema_integration) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Title of the integration. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the integration. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the integration. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * @deprecated\n     * [DEPRECATED] Indicates whether the integration is public. Please use the \"visibility\" parameter instead.\n     */\n    public: boolean;\n    /**\n     * The integration's visibility. Public integrations are available to all and cannot be updated without creating a new version. Unlisted integrations behave identically to public integrations, but they are not listed in the integration hub. By default, integrations are private and only accessible to the workspace that created them.\n     */\n    visibility: \"public\" | \"private\" | \"unlisted\";\n    /**\n     * Status of the integration version verification\n     */\n    verificationStatus: \"unapproved\" | \"pending\" | \"approved\" | \"rejected\";\n    /**\n     * The lifecycle status of the integration. When an integration is deprecated, it can no longer be installed.\n     */\n    lifecycleStatus: \"published\" | \"deprecated\";\n    ownerWorkspace: {\n      id: string;\n      handle: string | null;\n      name: string;\n    };\n    meta: {\n      installs: number;\n      views: number;\n    };\n    /**\n     * Metadata about which fields matched the search criteria\n     */\n    matchedOn?: {\n      /**\n       * Whether the integration name matched the search term\n       */\n      name?: boolean;\n      /**\n       * Whether the integration title matched the search term\n       */\n      title?: boolean;\n      /**\n       * Whether the integration description matched the search term\n       */\n      description?: boolean;\n      /**\n       * Action names that matched the search term\n       */\n      actions?: string[];\n      /**\n       * Interface names that matched the search term\n       */\n      interfaces?: string[];\n    };\n    /**\n     * Optional key-value attributes from the integration definition\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  }[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetPublicIntegrationByIdRequestHeaders {}\n\nexport interface GetPublicIntegrationByIdRequestQuery {}\n\nexport interface GetPublicIntegrationByIdRequestParams {\n  id: string;\n}\n\nexport interface GetPublicIntegrationByIdRequestBody {}\n\nexport type GetPublicIntegrationByIdInput = GetPublicIntegrationByIdRequestBody & GetPublicIntegrationByIdRequestHeaders & GetPublicIntegrationByIdRequestQuery & GetPublicIntegrationByIdRequestParams\n\nexport type GetPublicIntegrationByIdRequest = {\n  headers: GetPublicIntegrationByIdRequestHeaders;\n  query: GetPublicIntegrationByIdRequestQuery;\n  params: GetPublicIntegrationByIdRequestParams;\n  body: GetPublicIntegrationByIdRequestBody;\n}\n\nexport const parseReq = (input: GetPublicIntegrationByIdInput): GetPublicIntegrationByIdRequest & { path: string } => {\n  return {\n    path: `/v1/admin/hub/integrations/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetPublicIntegrationByIdResponse {\n  integration: {\n    /**\n     * ID of the [Integration](#schema_integration)\n     */\n    id: string;\n    /**\n     * Creation date of the [Integration](#schema_integration) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Integration](#schema_integration) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Global identifier configuration of the [Integration](#schema_integration)\n     */\n    identifier: {\n      /**\n       * VRL Script of the [Integration](#schema_integration) to handle incoming requests for a request that doesn't have an identifier\n       */\n      fallbackHandlerScript?: string;\n      /**\n       * VRL Script of the [Integration](#schema_integration) to extract the identifier from an incoming webhook often use for OAuth\n       */\n      extractScript?: string;\n    };\n    sandbox?: {\n      /**\n       * VRL Script of the [Integration](#schema_integration) to extract the identifier from an incoming webhook used specifically for the sandbox\n       */\n      identifierExtractScript?: string;\n      /**\n       * VRL Script of the [Integration](#schema_integration) to extract the message from an incoming webhook used specifically for the sandbox\n       */\n      messageExtractScript?: string;\n    };\n    /**\n     * Maximum execution time of the integration (in seconds).\n     */\n    maxExecutionTime?: number;\n    /**\n     * URL of the [Integration](#schema_integration)\n     */\n    url: string;\n    /**\n     * Signing secret of the [Integration](#schema_integration). This field is only visible when creating a new integration or when rotating the signing secret of an existing integration.\n     */\n    signingSecret: string;\n    /**\n     * Name of the [Integration](#schema_integration)\n     */\n    name: string;\n    /**\n     * Version of the [Integration](#schema_integration)\n     */\n    version: string;\n    interfaces: {\n      [k: string]: {\n        /**\n         * ID of the interface\n         */\n        id: string;\n        /**\n         * Name of the interface\n         */\n        name: string;\n        /**\n         * Version of the interface\n         */\n        version: string;\n        entities: {\n          [k: string]: {\n            name: string;\n          };\n        };\n        actions: {\n          [k: string]: {\n            name: string;\n          };\n        };\n        events: {\n          [k: string]: {\n            name: string;\n          };\n        };\n        channels: {\n          [k: string]: {\n            name: string;\n          };\n        };\n      };\n    };\n    /**\n     * Configuration definition\n     */\n    configuration: {\n      /**\n       * Title of the configuration\n       */\n      title?: string;\n      /**\n       * Description of the configuration\n       */\n      description?: string;\n      /**\n       * Identifier configuration of the [Integration](#schema_integration)\n       */\n      identifier: {\n        linkTemplateScript?: string;\n        required: boolean;\n      };\n      /**\n       * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n       */\n      schema: {\n        [k: string]: any;\n      };\n    };\n    configurations: {\n      /**\n       * Configuration definition\n       */\n      [k: string]: {\n        /**\n         * Title of the configuration\n         */\n        title?: string;\n        /**\n         * Description of the configuration\n         */\n        description?: string;\n        /**\n         * Identifier configuration of the [Integration](#schema_integration)\n         */\n        identifier: {\n          linkTemplateScript?: string;\n          required: boolean;\n        };\n        /**\n         * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n         */\n        schema: {\n          [k: string]: any;\n        };\n      };\n    };\n    channels: {\n      /**\n       * Channel definition\n       */\n      [k: string]: {\n        /**\n         * Title of the channel\n         */\n        title?: string;\n        /**\n         * Description of the channel\n         */\n        description?: string;\n        messages: {\n          /**\n           * Message definition\n           */\n          [k: string]: {\n            schema: {\n              [k: string]: any;\n            };\n          };\n        };\n        /**\n         * Conversation object configuration\n         */\n        conversation: {\n          tags: {\n            /**\n             * Definition of a tag that can be provided on the object\n             */\n            [k: string]: {\n              /**\n               * Title of the tag\n               */\n              title?: string;\n              /**\n               * Description of the tag\n               */\n              description?: string;\n            };\n          };\n          /**\n           * The conversation creation setting determines how to create a conversation through the API directly. The integration will have to implement the `createConversation` functionality to support this setting.\n           */\n          creation: {\n            /**\n             * Enable conversation creation\n             */\n            enabled: boolean;\n            /**\n             * The list of tags that are required to be specified when calling the API directly to create a conversation.\n             */\n            requiredTags: string[];\n          };\n        };\n        /**\n         * Message object configuration\n         */\n        message: {\n          tags: {\n            /**\n             * Definition of a tag that can be provided on the object\n             */\n            [k: string]: {\n              /**\n               * Title of the tag\n               */\n              title?: string;\n              /**\n               * Description of the tag\n               */\n              description?: string;\n            };\n          };\n        };\n      };\n    };\n    states: {\n      /**\n       * State definition\n       */\n      [k: string]: {\n        /**\n         * Type of the [State](#schema_state) (`conversation`, `user` or `integration`)\n         */\n        type: \"conversation\" | \"user\" | \"integration\";\n        /**\n         * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n         */\n        schema: {\n          [k: string]: any;\n        };\n      };\n    };\n    events: {\n      /**\n       * Event Definition\n       */\n      [k: string]: {\n        /**\n         * Title of the event\n         */\n        title?: string;\n        /**\n         * Description of the event\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    actions: {\n      /**\n       * Action definition\n       */\n      [k: string]: {\n        /**\n         * Title of the action\n         */\n        title?: string;\n        /**\n         * Description of the action\n         */\n        description?: string;\n        billable?: boolean;\n        cacheable?: boolean;\n        input: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        output: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    /**\n     * User object configuration\n     */\n    user: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n      /**\n       * The user creation setting determines how to create a user through the API directly. The integration will have to implement the `createUser` functionality to support this setting.\n       */\n      creation: {\n        /**\n         * Enable user creation\n         */\n        enabled: boolean;\n        /**\n         * The list of tags that are required to be specified when calling the API directly to create a user.\n         */\n        requiredTags: string[];\n      };\n    };\n    entities: {\n      /**\n       * Entity definition\n       */\n      [k: string]: {\n        /**\n         * Title of the entity\n         */\n        title?: string;\n        /**\n         * Description of the entity\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n      };\n    };\n    /**\n     * Indicates if the integration is a development integration; Dev integrations run locally\n     */\n    dev: boolean;\n    /**\n     * Title of the integration. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the integration. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the integration. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * URL of the readme of the integration. This is the readme that will be displayed in the UI\n     */\n    readmeUrl: string;\n    /**\n     * @deprecated\n     * [DEPRECATED] Indicates whether the integration is public. Please use the \"visibility\" parameter instead.\n     */\n    public: boolean;\n    /**\n     * The integration's visibility. Public integrations are available to all and cannot be updated without creating a new version. Unlisted integrations behave identically to public integrations, but they are not listed in the integration hub. By default, integrations are private and only accessible to the workspace that created them.\n     */\n    visibility: \"public\" | \"private\" | \"unlisted\";\n    /**\n     * Status of the integration version verification\n     */\n    verificationStatus: \"unapproved\" | \"pending\" | \"approved\" | \"rejected\";\n    /**\n     * The lifecycle status of the integration. When an integration is deprecated, it can no longer be installed.\n     */\n    lifecycleStatus: \"published\" | \"deprecated\";\n    /**\n     * Secrets are integration-wide values available in the code via environment variables formatted with a SECRET_ prefix followed by your secret name. A secret name must respect SCREAMING_SNAKE casing.\n     */\n    secrets: string[];\n    /**\n     * Optional key-value attributes from the integration definition\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n    ownerWorkspace: {\n      id: string;\n      handle: string | null;\n      name: string;\n    };\n    meta: {\n      installs: number;\n      views: number;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetPublicIntegrationRequestHeaders {}\n\nexport interface GetPublicIntegrationRequestQuery {}\n\nexport interface GetPublicIntegrationRequestParams {\n  name: string;\n  version: string;\n}\n\nexport interface GetPublicIntegrationRequestBody {}\n\nexport type GetPublicIntegrationInput = GetPublicIntegrationRequestBody & GetPublicIntegrationRequestHeaders & GetPublicIntegrationRequestQuery & GetPublicIntegrationRequestParams\n\nexport type GetPublicIntegrationRequest = {\n  headers: GetPublicIntegrationRequestHeaders;\n  query: GetPublicIntegrationRequestQuery;\n  params: GetPublicIntegrationRequestParams;\n  body: GetPublicIntegrationRequestBody;\n}\n\nexport const parseReq = (input: GetPublicIntegrationInput): GetPublicIntegrationRequest & { path: string } => {\n  return {\n    path: `/v1/admin/hub/integrations/${encodeURIComponent(input['name'])}/${encodeURIComponent(input['version'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'name': input['name'], 'version': input['version'] },\n    body: {  },\n  }\n}\n\nexport interface GetPublicIntegrationResponse {\n  integration: {\n    /**\n     * ID of the [Integration](#schema_integration)\n     */\n    id: string;\n    /**\n     * Creation date of the [Integration](#schema_integration) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Integration](#schema_integration) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Global identifier configuration of the [Integration](#schema_integration)\n     */\n    identifier: {\n      /**\n       * VRL Script of the [Integration](#schema_integration) to handle incoming requests for a request that doesn't have an identifier\n       */\n      fallbackHandlerScript?: string;\n      /**\n       * VRL Script of the [Integration](#schema_integration) to extract the identifier from an incoming webhook often use for OAuth\n       */\n      extractScript?: string;\n    };\n    sandbox?: {\n      /**\n       * VRL Script of the [Integration](#schema_integration) to extract the identifier from an incoming webhook used specifically for the sandbox\n       */\n      identifierExtractScript?: string;\n      /**\n       * VRL Script of the [Integration](#schema_integration) to extract the message from an incoming webhook used specifically for the sandbox\n       */\n      messageExtractScript?: string;\n    };\n    /**\n     * Maximum execution time of the integration (in seconds).\n     */\n    maxExecutionTime?: number;\n    /**\n     * URL of the [Integration](#schema_integration)\n     */\n    url: string;\n    /**\n     * Signing secret of the [Integration](#schema_integration). This field is only visible when creating a new integration or when rotating the signing secret of an existing integration.\n     */\n    signingSecret: string;\n    /**\n     * Name of the [Integration](#schema_integration)\n     */\n    name: string;\n    /**\n     * Version of the [Integration](#schema_integration)\n     */\n    version: string;\n    interfaces: {\n      [k: string]: {\n        /**\n         * ID of the interface\n         */\n        id: string;\n        /**\n         * Name of the interface\n         */\n        name: string;\n        /**\n         * Version of the interface\n         */\n        version: string;\n        entities: {\n          [k: string]: {\n            name: string;\n          };\n        };\n        actions: {\n          [k: string]: {\n            name: string;\n          };\n        };\n        events: {\n          [k: string]: {\n            name: string;\n          };\n        };\n        channels: {\n          [k: string]: {\n            name: string;\n          };\n        };\n      };\n    };\n    /**\n     * Configuration definition\n     */\n    configuration: {\n      /**\n       * Title of the configuration\n       */\n      title?: string;\n      /**\n       * Description of the configuration\n       */\n      description?: string;\n      /**\n       * Identifier configuration of the [Integration](#schema_integration)\n       */\n      identifier: {\n        linkTemplateScript?: string;\n        required: boolean;\n      };\n      /**\n       * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n       */\n      schema: {\n        [k: string]: any;\n      };\n    };\n    configurations: {\n      /**\n       * Configuration definition\n       */\n      [k: string]: {\n        /**\n         * Title of the configuration\n         */\n        title?: string;\n        /**\n         * Description of the configuration\n         */\n        description?: string;\n        /**\n         * Identifier configuration of the [Integration](#schema_integration)\n         */\n        identifier: {\n          linkTemplateScript?: string;\n          required: boolean;\n        };\n        /**\n         * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n         */\n        schema: {\n          [k: string]: any;\n        };\n      };\n    };\n    channels: {\n      /**\n       * Channel definition\n       */\n      [k: string]: {\n        /**\n         * Title of the channel\n         */\n        title?: string;\n        /**\n         * Description of the channel\n         */\n        description?: string;\n        messages: {\n          /**\n           * Message definition\n           */\n          [k: string]: {\n            schema: {\n              [k: string]: any;\n            };\n          };\n        };\n        /**\n         * Conversation object configuration\n         */\n        conversation: {\n          tags: {\n            /**\n             * Definition of a tag that can be provided on the object\n             */\n            [k: string]: {\n              /**\n               * Title of the tag\n               */\n              title?: string;\n              /**\n               * Description of the tag\n               */\n              description?: string;\n            };\n          };\n          /**\n           * The conversation creation setting determines how to create a conversation through the API directly. The integration will have to implement the `createConversation` functionality to support this setting.\n           */\n          creation: {\n            /**\n             * Enable conversation creation\n             */\n            enabled: boolean;\n            /**\n             * The list of tags that are required to be specified when calling the API directly to create a conversation.\n             */\n            requiredTags: string[];\n          };\n        };\n        /**\n         * Message object configuration\n         */\n        message: {\n          tags: {\n            /**\n             * Definition of a tag that can be provided on the object\n             */\n            [k: string]: {\n              /**\n               * Title of the tag\n               */\n              title?: string;\n              /**\n               * Description of the tag\n               */\n              description?: string;\n            };\n          };\n        };\n      };\n    };\n    states: {\n      /**\n       * State definition\n       */\n      [k: string]: {\n        /**\n         * Type of the [State](#schema_state) (`conversation`, `user` or `integration`)\n         */\n        type: \"conversation\" | \"user\" | \"integration\";\n        /**\n         * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n         */\n        schema: {\n          [k: string]: any;\n        };\n      };\n    };\n    events: {\n      /**\n       * Event Definition\n       */\n      [k: string]: {\n        /**\n         * Title of the event\n         */\n        title?: string;\n        /**\n         * Description of the event\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    actions: {\n      /**\n       * Action definition\n       */\n      [k: string]: {\n        /**\n         * Title of the action\n         */\n        title?: string;\n        /**\n         * Description of the action\n         */\n        description?: string;\n        billable?: boolean;\n        cacheable?: boolean;\n        input: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        output: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    /**\n     * User object configuration\n     */\n    user: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n      /**\n       * The user creation setting determines how to create a user through the API directly. The integration will have to implement the `createUser` functionality to support this setting.\n       */\n      creation: {\n        /**\n         * Enable user creation\n         */\n        enabled: boolean;\n        /**\n         * The list of tags that are required to be specified when calling the API directly to create a user.\n         */\n        requiredTags: string[];\n      };\n    };\n    entities: {\n      /**\n       * Entity definition\n       */\n      [k: string]: {\n        /**\n         * Title of the entity\n         */\n        title?: string;\n        /**\n         * Description of the entity\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n      };\n    };\n    /**\n     * Indicates if the integration is a development integration; Dev integrations run locally\n     */\n    dev: boolean;\n    /**\n     * Title of the integration. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the integration. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the integration. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * URL of the readme of the integration. This is the readme that will be displayed in the UI\n     */\n    readmeUrl: string;\n    /**\n     * @deprecated\n     * [DEPRECATED] Indicates whether the integration is public. Please use the \"visibility\" parameter instead.\n     */\n    public: boolean;\n    /**\n     * The integration's visibility. Public integrations are available to all and cannot be updated without creating a new version. Unlisted integrations behave identically to public integrations, but they are not listed in the integration hub. By default, integrations are private and only accessible to the workspace that created them.\n     */\n    visibility: \"public\" | \"private\" | \"unlisted\";\n    /**\n     * Status of the integration version verification\n     */\n    verificationStatus: \"unapproved\" | \"pending\" | \"approved\" | \"rejected\";\n    /**\n     * The lifecycle status of the integration. When an integration is deprecated, it can no longer be installed.\n     */\n    lifecycleStatus: \"published\" | \"deprecated\";\n    /**\n     * Secrets are integration-wide values available in the code via environment variables formatted with a SECRET_ prefix followed by your secret name. A secret name must respect SCREAMING_SNAKE casing.\n     */\n    secrets: string[];\n    /**\n     * Optional key-value attributes from the integration definition\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n    ownerWorkspace: {\n      id: string;\n      handle: string | null;\n      name: string;\n    };\n    meta: {\n      installs: number;\n      views: number;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListPublicPluginsRequestHeaders {}\n\nexport interface ListPublicPluginsRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n  name?: string;\n  version?: string;\n}\n\nexport interface ListPublicPluginsRequestParams {}\n\nexport interface ListPublicPluginsRequestBody {}\n\nexport type ListPublicPluginsInput = ListPublicPluginsRequestBody & ListPublicPluginsRequestHeaders & ListPublicPluginsRequestQuery & ListPublicPluginsRequestParams\n\nexport type ListPublicPluginsRequest = {\n  headers: ListPublicPluginsRequestHeaders;\n  query: ListPublicPluginsRequestQuery;\n  params: ListPublicPluginsRequestParams;\n  body: ListPublicPluginsRequestBody;\n}\n\nexport const parseReq = (input: ListPublicPluginsInput): ListPublicPluginsRequest & { path: string } => {\n  return {\n    path: `/v1/admin/hub/plugins`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'], 'name': input['name'], 'version': input['version'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListPublicPluginsResponse {\n  plugins: {\n    /**\n     * ID of the [Plugin](#schema_plugin)\n     */\n    id: string;\n    /**\n     * Creation date of the [Plugin](#schema_plugin) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Plugin](#schema_plugin) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Name of the [Plugin](#schema_plugin)\n     */\n    name: string;\n    /**\n     * Version of the [Plugin](#schema_plugin)\n     */\n    version: string;\n    /**\n     * Title of the plugin. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the plugin. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the plugin. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * URL of the readme of the plugin. This is the readme that will be displayed in the UI\n     */\n    readmeUrl: string;\n    /**\n     * @deprecated\n     * [DEPRECATED] Indicates if the plugin is public. Please use the \"visibility\" parameter instead.\n     */\n    public: boolean;\n    /**\n     * The plugin's visibility. Public plugins are available to all and cannot be updated without creating a new version. Unlisted plugins behave identically to public plugins, but they are not listed in the plugin hub. By default, plugins are private and only accessible to the workspace that created them.\n     */\n    visibility: \"public\" | \"private\" | \"unlisted\";\n    /**\n     * The lifecycle status of the plugin. When a plugin is deprecated, it can no longer be installed.\n     */\n    lifecycleStatus: \"published\" | \"deprecated\";\n  }[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetPublicPluginByIdRequestHeaders {}\n\nexport interface GetPublicPluginByIdRequestQuery {}\n\nexport interface GetPublicPluginByIdRequestParams {\n  id: string;\n}\n\nexport interface GetPublicPluginByIdRequestBody {}\n\nexport type GetPublicPluginByIdInput = GetPublicPluginByIdRequestBody & GetPublicPluginByIdRequestHeaders & GetPublicPluginByIdRequestQuery & GetPublicPluginByIdRequestParams\n\nexport type GetPublicPluginByIdRequest = {\n  headers: GetPublicPluginByIdRequestHeaders;\n  query: GetPublicPluginByIdRequestQuery;\n  params: GetPublicPluginByIdRequestParams;\n  body: GetPublicPluginByIdRequestBody;\n}\n\nexport const parseReq = (input: GetPublicPluginByIdInput): GetPublicPluginByIdRequest & { path: string } => {\n  return {\n    path: `/v1/admin/hub/plugins/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetPublicPluginByIdResponse {\n  plugin: {\n    /**\n     * ID of the [Plugin](#schema_plugin)\n     */\n    id: string;\n    /**\n     * Name of the [Plugin](#schema_plugin)\n     */\n    name: string;\n    /**\n     * Version of the [Plugin](#schema_plugin)\n     */\n    version: string;\n    /**\n     * Creation date of the [Plugin](#schema_plugin) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Plugin](#schema_plugin) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Configuration definition\n     */\n    configuration: {\n      /**\n       * Title of the configuration\n       */\n      title?: string;\n      /**\n       * Description of the configuration\n       */\n      description?: string;\n      /**\n       * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n       */\n      schema: {\n        [k: string]: any;\n      };\n    };\n    states: {\n      [k: string]: {\n        /**\n         * Type of the [State](#schema_state) (`conversation`, `user` or `bot`)\n         */\n        type: \"conversation\" | \"user\" | \"bot\";\n        /**\n         * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n         */\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Expiry of the [State](#schema_state) in milliseconds. The state will expire if it is idle for the configured value. By default, a state doesn't expire.\n         */\n        expiry?: number;\n      };\n    };\n    events: {\n      /**\n       * Event Definition\n       */\n      [k: string]: {\n        /**\n         * Title of the event\n         */\n        title?: string;\n        /**\n         * Description of the event\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    actions: {\n      /**\n       * Action definition\n       */\n      [k: string]: {\n        /**\n         * Title of the action\n         */\n        title?: string;\n        /**\n         * Description of the action\n         */\n        description?: string;\n        billable?: boolean;\n        cacheable?: boolean;\n        input: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        output: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    dependencies: {\n      interfaces: {\n        [k: string]: {\n          id: string;\n          name: string;\n          version: string;\n        };\n      };\n      integrations: {\n        [k: string]: {\n          id: string;\n          name: string;\n          version: string;\n        };\n      };\n    };\n    /**\n     * User object configuration\n     */\n    user: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Conversation object configuration\n     */\n    conversation: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Message object configuration\n     */\n    message: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Title of the plugin. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the plugin. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the plugin. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * URL of the readme of the plugin. This is the readme that will be displayed in the UI\n     */\n    readmeUrl: string;\n    /**\n     * @deprecated\n     * [DEPRECATED] Indicates if the plugin is public. Please use the \"visibility\" parameter instead.\n     */\n    public: boolean;\n    /**\n     * The plugin's visibility. Public plugins are available to all and cannot be updated without creating a new version. Unlisted plugins behave identically to public plugins, but they are not listed in the plugin hub. By default, plugins are private and only accessible to the workspace that created them.\n     */\n    visibility: \"public\" | \"private\" | \"unlisted\";\n    /**\n     * The lifecycle status of the plugin. When a plugin is deprecated, it can no longer be installed.\n     */\n    lifecycleStatus: \"published\" | \"deprecated\";\n    /**\n     * Optional key-value attributes from the plugin definition\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetDereferencedPublicPluginByIdRequestHeaders {}\n\nexport interface GetDereferencedPublicPluginByIdRequestQuery {\n  /**\n   * Mapping of interface aliases to integration IDs\n   */\n  interfaces: {\n    /**\n     * integration id\n     */\n    [k: string]: string;\n  };\n}\n\nexport interface GetDereferencedPublicPluginByIdRequestParams {\n  id: string;\n}\n\nexport interface GetDereferencedPublicPluginByIdRequestBody {}\n\nexport type GetDereferencedPublicPluginByIdInput = GetDereferencedPublicPluginByIdRequestBody & GetDereferencedPublicPluginByIdRequestHeaders & GetDereferencedPublicPluginByIdRequestQuery & GetDereferencedPublicPluginByIdRequestParams\n\nexport type GetDereferencedPublicPluginByIdRequest = {\n  headers: GetDereferencedPublicPluginByIdRequestHeaders;\n  query: GetDereferencedPublicPluginByIdRequestQuery;\n  params: GetDereferencedPublicPluginByIdRequestParams;\n  body: GetDereferencedPublicPluginByIdRequestBody;\n}\n\nexport const parseReq = (input: GetDereferencedPublicPluginByIdInput): GetDereferencedPublicPluginByIdRequest & { path: string } => {\n  return {\n    path: `/v1/admin/hub/plugins/${encodeURIComponent(input['id'])}/dereferenced`,\n    headers: {  },\n    query: { 'interfaces': input['interfaces'] },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetDereferencedPublicPluginByIdResponse {\n  plugin: {\n    /**\n     * ID of the [Plugin](#schema_plugin)\n     */\n    id: string;\n    /**\n     * Name of the [Plugin](#schema_plugin)\n     */\n    name: string;\n    /**\n     * Version of the [Plugin](#schema_plugin)\n     */\n    version: string;\n    /**\n     * Creation date of the [Plugin](#schema_plugin) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Plugin](#schema_plugin) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Configuration definition\n     */\n    configuration: {\n      /**\n       * Title of the configuration\n       */\n      title?: string;\n      /**\n       * Description of the configuration\n       */\n      description?: string;\n      /**\n       * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n       */\n      schema: {\n        [k: string]: any;\n      };\n    };\n    states: {\n      [k: string]: {\n        /**\n         * Type of the [State](#schema_state) (`conversation`, `user` or `bot`)\n         */\n        type: \"conversation\" | \"user\" | \"bot\";\n        /**\n         * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n         */\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Expiry of the [State](#schema_state) in milliseconds. The state will expire if it is idle for the configured value. By default, a state doesn't expire.\n         */\n        expiry?: number;\n      };\n    };\n    events: {\n      /**\n       * Event Definition\n       */\n      [k: string]: {\n        /**\n         * Title of the event\n         */\n        title?: string;\n        /**\n         * Description of the event\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    actions: {\n      /**\n       * Action definition\n       */\n      [k: string]: {\n        /**\n         * Title of the action\n         */\n        title?: string;\n        /**\n         * Description of the action\n         */\n        description?: string;\n        billable?: boolean;\n        cacheable?: boolean;\n        input: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        output: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    dependencies: {\n      interfaces: {\n        [k: string]: {\n          id: string;\n          name: string;\n          version: string;\n        };\n      };\n      integrations: {\n        [k: string]: {\n          id: string;\n          name: string;\n          version: string;\n        };\n      };\n    };\n    /**\n     * User object configuration\n     */\n    user: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Conversation object configuration\n     */\n    conversation: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Message object configuration\n     */\n    message: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Title of the plugin. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the plugin. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the plugin. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * URL of the readme of the plugin. This is the readme that will be displayed in the UI\n     */\n    readmeUrl: string;\n    /**\n     * @deprecated\n     * [DEPRECATED] Indicates if the plugin is public. Please use the \"visibility\" parameter instead.\n     */\n    public: boolean;\n    /**\n     * The plugin's visibility. Public plugins are available to all and cannot be updated without creating a new version. Unlisted plugins behave identically to public plugins, but they are not listed in the plugin hub. By default, plugins are private and only accessible to the workspace that created them.\n     */\n    visibility: \"public\" | \"private\" | \"unlisted\";\n    /**\n     * The lifecycle status of the plugin. When a plugin is deprecated, it can no longer be installed.\n     */\n    lifecycleStatus: \"published\" | \"deprecated\";\n    /**\n     * Optional key-value attributes from the plugin definition\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetPublicPluginRequestHeaders {}\n\nexport interface GetPublicPluginRequestQuery {}\n\nexport interface GetPublicPluginRequestParams {\n  name: string;\n  version: string;\n}\n\nexport interface GetPublicPluginRequestBody {}\n\nexport type GetPublicPluginInput = GetPublicPluginRequestBody & GetPublicPluginRequestHeaders & GetPublicPluginRequestQuery & GetPublicPluginRequestParams\n\nexport type GetPublicPluginRequest = {\n  headers: GetPublicPluginRequestHeaders;\n  query: GetPublicPluginRequestQuery;\n  params: GetPublicPluginRequestParams;\n  body: GetPublicPluginRequestBody;\n}\n\nexport const parseReq = (input: GetPublicPluginInput): GetPublicPluginRequest & { path: string } => {\n  return {\n    path: `/v1/admin/hub/plugins/${encodeURIComponent(input['name'])}/${encodeURIComponent(input['version'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'name': input['name'], 'version': input['version'] },\n    body: {  },\n  }\n}\n\nexport interface GetPublicPluginResponse {\n  plugin: {\n    /**\n     * ID of the [Plugin](#schema_plugin)\n     */\n    id: string;\n    /**\n     * Name of the [Plugin](#schema_plugin)\n     */\n    name: string;\n    /**\n     * Version of the [Plugin](#schema_plugin)\n     */\n    version: string;\n    /**\n     * Creation date of the [Plugin](#schema_plugin) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Plugin](#schema_plugin) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Configuration definition\n     */\n    configuration: {\n      /**\n       * Title of the configuration\n       */\n      title?: string;\n      /**\n       * Description of the configuration\n       */\n      description?: string;\n      /**\n       * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n       */\n      schema: {\n        [k: string]: any;\n      };\n    };\n    states: {\n      [k: string]: {\n        /**\n         * Type of the [State](#schema_state) (`conversation`, `user` or `bot`)\n         */\n        type: \"conversation\" | \"user\" | \"bot\";\n        /**\n         * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n         */\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Expiry of the [State](#schema_state) in milliseconds. The state will expire if it is idle for the configured value. By default, a state doesn't expire.\n         */\n        expiry?: number;\n      };\n    };\n    events: {\n      /**\n       * Event Definition\n       */\n      [k: string]: {\n        /**\n         * Title of the event\n         */\n        title?: string;\n        /**\n         * Description of the event\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    actions: {\n      /**\n       * Action definition\n       */\n      [k: string]: {\n        /**\n         * Title of the action\n         */\n        title?: string;\n        /**\n         * Description of the action\n         */\n        description?: string;\n        billable?: boolean;\n        cacheable?: boolean;\n        input: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        output: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    dependencies: {\n      interfaces: {\n        [k: string]: {\n          id: string;\n          name: string;\n          version: string;\n        };\n      };\n      integrations: {\n        [k: string]: {\n          id: string;\n          name: string;\n          version: string;\n        };\n      };\n    };\n    /**\n     * User object configuration\n     */\n    user: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Conversation object configuration\n     */\n    conversation: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Message object configuration\n     */\n    message: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Title of the plugin. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the plugin. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the plugin. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * URL of the readme of the plugin. This is the readme that will be displayed in the UI\n     */\n    readmeUrl: string;\n    /**\n     * @deprecated\n     * [DEPRECATED] Indicates if the plugin is public. Please use the \"visibility\" parameter instead.\n     */\n    public: boolean;\n    /**\n     * The plugin's visibility. Public plugins are available to all and cannot be updated without creating a new version. Unlisted plugins behave identically to public plugins, but they are not listed in the plugin hub. By default, plugins are private and only accessible to the workspace that created them.\n     */\n    visibility: \"public\" | \"private\" | \"unlisted\";\n    /**\n     * The lifecycle status of the plugin. When a plugin is deprecated, it can no longer be installed.\n     */\n    lifecycleStatus: \"published\" | \"deprecated\";\n    /**\n     * Optional key-value attributes from the plugin definition\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetPublicPluginCodeRequestHeaders {}\n\nexport interface GetPublicPluginCodeRequestQuery {}\n\nexport interface GetPublicPluginCodeRequestParams {\n  id: string;\n  platform: \"node\" | \"browser\";\n}\n\nexport interface GetPublicPluginCodeRequestBody {}\n\nexport type GetPublicPluginCodeInput = GetPublicPluginCodeRequestBody & GetPublicPluginCodeRequestHeaders & GetPublicPluginCodeRequestQuery & GetPublicPluginCodeRequestParams\n\nexport type GetPublicPluginCodeRequest = {\n  headers: GetPublicPluginCodeRequestHeaders;\n  query: GetPublicPluginCodeRequestQuery;\n  params: GetPublicPluginCodeRequestParams;\n  body: GetPublicPluginCodeRequestBody;\n}\n\nexport const parseReq = (input: GetPublicPluginCodeInput): GetPublicPluginCodeRequest & { path: string } => {\n  return {\n    path: `/v1/admin/hub/plugins/${encodeURIComponent(input['id'])}/code/${encodeURIComponent(input['platform'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'], 'platform': input['platform'] },\n    body: {  },\n  }\n}\n\nexport interface GetPublicPluginCodeResponse {\n  code: string;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListPublicInterfacesRequestHeaders {}\n\nexport interface ListPublicInterfacesRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n  name?: string;\n  version?: string;\n}\n\nexport interface ListPublicInterfacesRequestParams {}\n\nexport interface ListPublicInterfacesRequestBody {}\n\nexport type ListPublicInterfacesInput = ListPublicInterfacesRequestBody & ListPublicInterfacesRequestHeaders & ListPublicInterfacesRequestQuery & ListPublicInterfacesRequestParams\n\nexport type ListPublicInterfacesRequest = {\n  headers: ListPublicInterfacesRequestHeaders;\n  query: ListPublicInterfacesRequestQuery;\n  params: ListPublicInterfacesRequestParams;\n  body: ListPublicInterfacesRequestBody;\n}\n\nexport const parseReq = (input: ListPublicInterfacesInput): ListPublicInterfacesRequest & { path: string } => {\n  return {\n    path: `/v1/admin/hub/interfaces`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'], 'name': input['name'], 'version': input['version'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListPublicInterfacesResponse {\n  interfaces: {\n    /**\n     * ID of the [Interface](#schema_interface)\n     */\n    id: string;\n    /**\n     * Creation date of the [Interface](#schema_interface) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Interface](#schema_interface) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Name of the [Interface](#schema_interface)\n     */\n    name: string;\n    /**\n     * Version of the [Interface](#schema_interface)\n     */\n    version: string;\n    /**\n     * Title of the interface. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the interface. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the interface. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * URL of the readme of the interface. This is the readme that will be displayed in the UI\n     */\n    readmeUrl: string;\n    /**\n     * Indicates if the interface is public. Public interfaces are available to all and cannot be updated without creating a new version.\n     */\n    public: boolean;\n  }[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetPublicInterfaceByIdRequestHeaders {}\n\nexport interface GetPublicInterfaceByIdRequestQuery {}\n\nexport interface GetPublicInterfaceByIdRequestParams {\n  id: string;\n}\n\nexport interface GetPublicInterfaceByIdRequestBody {}\n\nexport type GetPublicInterfaceByIdInput = GetPublicInterfaceByIdRequestBody & GetPublicInterfaceByIdRequestHeaders & GetPublicInterfaceByIdRequestQuery & GetPublicInterfaceByIdRequestParams\n\nexport type GetPublicInterfaceByIdRequest = {\n  headers: GetPublicInterfaceByIdRequestHeaders;\n  query: GetPublicInterfaceByIdRequestQuery;\n  params: GetPublicInterfaceByIdRequestParams;\n  body: GetPublicInterfaceByIdRequestBody;\n}\n\nexport const parseReq = (input: GetPublicInterfaceByIdInput): GetPublicInterfaceByIdRequest & { path: string } => {\n  return {\n    path: `/v1/admin/hub/interfaces/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetPublicInterfaceByIdResponse {\n  interface: {\n    /**\n     * ID of the [Interface](#schema_interface)\n     */\n    id: string;\n    /**\n     * Creation date of the [Interface](#schema_interface) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Interface](#schema_interface) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Name of the [Interface](#schema_interface)\n     */\n    name: string;\n    /**\n     * Version of the [Interface](#schema_interface)\n     */\n    version: string;\n    entities: {\n      /**\n       * Entity definition\n       */\n      [k: string]: {\n        /**\n         * Title of the entity\n         */\n        title?: string;\n        /**\n         * Description of the entity\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n      };\n    };\n    events: {\n      /**\n       * Event Definition\n       */\n      [k: string]: {\n        /**\n         * Title of the event\n         */\n        title?: string;\n        /**\n         * Description of the event\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    actions: {\n      /**\n       * Action definition\n       */\n      [k: string]: {\n        /**\n         * Title of the action\n         */\n        title?: string;\n        /**\n         * Description of the action\n         */\n        description?: string;\n        billable?: boolean;\n        cacheable?: boolean;\n        input: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        output: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    channels: {\n      [k: string]: {\n        /**\n         * Title of the channel\n         */\n        title?: string;\n        /**\n         * Description of the channel\n         */\n        description?: string;\n        messages: {\n          /**\n           * Message definition\n           */\n          [k: string]: {\n            schema: {\n              [k: string]: any;\n            };\n          };\n        };\n      };\n    };\n    /**\n     * Template string optionaly used at build time by integrations implementing this interface to pick a name for actions and events.\n     */\n    nameTemplate?: {\n      script: string;\n      language: string;\n    };\n    /**\n     * Title of the interface. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the interface. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the interface. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * URL of the readme of the interface. This is the readme that will be displayed in the UI\n     */\n    readmeUrl: string;\n    /**\n     * Indicates if the interface is public. Public interfaces are available to all and cannot be updated without creating a new version.\n     */\n    public: boolean;\n    /**\n     * Optional key-value attributes from the interface definition\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetPublicInterfaceRequestHeaders {}\n\nexport interface GetPublicInterfaceRequestQuery {}\n\nexport interface GetPublicInterfaceRequestParams {\n  name: string;\n  version: string;\n}\n\nexport interface GetPublicInterfaceRequestBody {}\n\nexport type GetPublicInterfaceInput = GetPublicInterfaceRequestBody & GetPublicInterfaceRequestHeaders & GetPublicInterfaceRequestQuery & GetPublicInterfaceRequestParams\n\nexport type GetPublicInterfaceRequest = {\n  headers: GetPublicInterfaceRequestHeaders;\n  query: GetPublicInterfaceRequestQuery;\n  params: GetPublicInterfaceRequestParams;\n  body: GetPublicInterfaceRequestBody;\n}\n\nexport const parseReq = (input: GetPublicInterfaceInput): GetPublicInterfaceRequest & { path: string } => {\n  return {\n    path: `/v1/admin/hub/interfaces/${encodeURIComponent(input['name'])}/${encodeURIComponent(input['version'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'name': input['name'], 'version': input['version'] },\n    body: {  },\n  }\n}\n\nexport interface GetPublicInterfaceResponse {\n  interface: {\n    /**\n     * ID of the [Interface](#schema_interface)\n     */\n    id: string;\n    /**\n     * Creation date of the [Interface](#schema_interface) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Interface](#schema_interface) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Name of the [Interface](#schema_interface)\n     */\n    name: string;\n    /**\n     * Version of the [Interface](#schema_interface)\n     */\n    version: string;\n    entities: {\n      /**\n       * Entity definition\n       */\n      [k: string]: {\n        /**\n         * Title of the entity\n         */\n        title?: string;\n        /**\n         * Description of the entity\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n      };\n    };\n    events: {\n      /**\n       * Event Definition\n       */\n      [k: string]: {\n        /**\n         * Title of the event\n         */\n        title?: string;\n        /**\n         * Description of the event\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    actions: {\n      /**\n       * Action definition\n       */\n      [k: string]: {\n        /**\n         * Title of the action\n         */\n        title?: string;\n        /**\n         * Description of the action\n         */\n        description?: string;\n        billable?: boolean;\n        cacheable?: boolean;\n        input: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        output: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    channels: {\n      [k: string]: {\n        /**\n         * Title of the channel\n         */\n        title?: string;\n        /**\n         * Description of the channel\n         */\n        description?: string;\n        messages: {\n          /**\n           * Message definition\n           */\n          [k: string]: {\n            schema: {\n              [k: string]: any;\n            };\n          };\n        };\n      };\n    };\n    /**\n     * Template string optionaly used at build time by integrations implementing this interface to pick a name for actions and events.\n     */\n    nameTemplate?: {\n      script: string;\n      language: string;\n    };\n    /**\n     * Title of the interface. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the interface. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the interface. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * URL of the readme of the interface. This is the readme that will be displayed in the UI\n     */\n    readmeUrl: string;\n    /**\n     * Indicates if the interface is public. Public interfaces are available to all and cannot be updated without creating a new version.\n     */\n    public: boolean;\n    /**\n     * Optional key-value attributes from the interface definition\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CreateBotRequestHeaders {}\n\nexport interface CreateBotRequestQuery {}\n\nexport interface CreateBotRequestParams {}\n\nexport interface CreateBotRequestBody {\n  /**\n   * A mapping of states to their definition\n   */\n  states?: {\n    [k: string]: {\n      /**\n       * Type of the [State](#schema_state) (`conversation`, `user` or `bot`)\n       */\n      type: \"conversation\" | \"user\" | \"bot\";\n      /**\n       * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n       */\n      schema: {\n        [k: string]: any;\n      };\n      /**\n       * Expiry of the [State](#schema_state) in milliseconds. The state will expire if it is idle for the configured value. By default, a state doesn't expire.\n       */\n      expiry?: number;\n    };\n  };\n  /**\n   * Events definition\n   */\n  events?: {\n    /**\n     * Event Definition\n     */\n    [k: string]: {\n      /**\n       * Title of the event\n       */\n      title?: string;\n      /**\n       * Description of the event\n       */\n      description?: string;\n      schema: {\n        [k: string]: any;\n      };\n      /**\n       * Optional attributes\n       */\n      attributes?: {\n        [k: string]: string;\n      };\n    };\n  };\n  recurringEvents?: {\n    [k: string]: {\n      schedule: {\n        cron: string;\n      };\n      type: string;\n      payload: {\n        [k: string]: any;\n      };\n    };\n  };\n  /**\n   * Subscriptions of the bot\n   */\n  subscriptions?: {\n    /**\n     * Events that the bot is currently subscribed on (ex: \"slack:reactionAdded\"). If null, the bot is subscribed to all events.\n     */\n    events: {\n      [k: string]: {};\n    } | null;\n  };\n  /**\n   * Actions definition\n   */\n  actions?: {\n    /**\n     * Action definition\n     */\n    [k: string]: {\n      /**\n       * Title of the action\n       */\n      title?: string;\n      /**\n       * Description of the action\n       */\n      description?: string;\n      billable?: boolean;\n      cacheable?: boolean;\n      input: {\n        schema: {\n          [k: string]: any;\n        };\n      };\n      output: {\n        schema: {\n          [k: string]: any;\n        };\n      };\n      /**\n       * Optional attributes\n       */\n      attributes?: {\n        [k: string]: string;\n      };\n    };\n  };\n  configuration?: {\n    /**\n     * Configuration data\n     */\n    data?: {\n      [k: string]: any;\n    };\n    /**\n     * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n     */\n    schema?: {\n      [k: string]: any;\n    };\n  };\n  user?: {\n    tags?: {\n      /**\n       * Definition of a tag that can be provided on the object\n       */\n      [k: string]: {\n        /**\n         * Title of the tag\n         */\n        title?: string;\n        /**\n         * Description of the tag\n         */\n        description?: string;\n      };\n    };\n  };\n  conversation?: {\n    tags?: {\n      /**\n       * Definition of a tag that can be provided on the object\n       */\n      [k: string]: {\n        /**\n         * Title of the tag\n         */\n        title?: string;\n        /**\n         * Description of the tag\n         */\n        description?: string;\n      };\n    };\n  };\n  message?: {\n    tags?: {\n      /**\n       * Definition of a tag that can be provided on the object\n       */\n      [k: string]: {\n        /**\n         * Title of the tag\n         */\n        title?: string;\n        /**\n         * Description of the tag\n         */\n        description?: string;\n      };\n    };\n  };\n  /**\n   * Optional attributes of the [Bot](#schema_bot)\n   */\n  tags?: {\n    [k: string]: string;\n  };\n  /**\n   * JavaScript code of the bot\n   */\n  code?: string;\n  /**\n   * Optional name for the bot, if not provided will be auto-generated\n   */\n  name?: string;\n  /**\n   * Optional description for the bot\n   */\n  description?: string;\n  /**\n   * Media files associated with the [Bot](#schema_bot)\n   */\n  medias?: {\n    url: string;\n    name: string;\n  }[];\n  /**\n   * URL of the [Bot](#schema_bot)\n   */\n  url?: string;\n  /**\n   * Secrets are values available in the code via environment variables formatted with a SECRET_ prefix followed by your secret name. A secret name must respect SCREAMING_SNAKE casing.\n   */\n  secrets?: {\n    [k: string]: string;\n  };\n  /**\n   * Indicates if the [Bot](#schema_bot) is a development bot; Development bots run locally and can install dev integrations\n   */\n  dev?: boolean;\n  /**\n   * Type of the [Bot](#schema_bot)\n   */\n  type?: \"studio\" | \"adk\" | \"desk\";\n  /**\n   * Maximum execution time (in seconds).\n   */\n  maxExecutionTime?: number;\n}\n\nexport type CreateBotInput = CreateBotRequestBody & CreateBotRequestHeaders & CreateBotRequestQuery & CreateBotRequestParams\n\nexport type CreateBotRequest = {\n  headers: CreateBotRequestHeaders;\n  query: CreateBotRequestQuery;\n  params: CreateBotRequestParams;\n  body: CreateBotRequestBody;\n}\n\nexport const parseReq = (input: CreateBotInput): CreateBotRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'states': input['states'], 'events': input['events'], 'recurringEvents': input['recurringEvents'], 'subscriptions': input['subscriptions'], 'actions': input['actions'], 'configuration': input['configuration'], 'user': input['user'], 'conversation': input['conversation'], 'message': input['message'], 'tags': input['tags'], 'code': input['code'], 'name': input['name'], 'description': input['description'], 'medias': input['medias'], 'url': input['url'], 'secrets': input['secrets'], 'dev': input['dev'], 'type': input['type'], 'maxExecutionTime': input['maxExecutionTime'] },\n  }\n}\n\nexport interface CreateBotResponse {\n  bot: {\n    /**\n     * Id of the [Bot](#schema_bot)\n     */\n    id: string;\n    /**\n     * Creation date of the [Bot](#schema_bot) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Bot](#schema_bot) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Signing secret of the [Bot](#schema_bot). This field is only visible when creating a new bot or when rotating the signing secret of an existing bot.\n     */\n    signingSecret: string;\n    /**\n     * A mapping of integrations to their configuration. If the `x-multiple-integrations` header is present, this object is keyed by integration aliases. Otherwise, this object is keyed by integration ids.\n     */\n    integrations: {\n      [k: string]: {\n        enabled: boolean;\n        /**\n         * Name of the [Integration](#schema_integration)\n         */\n        name: string;\n        /**\n         * Version of the [Integration](#schema_integration)\n         */\n        version: string;\n        webhookUrl: string;\n        webhookId: string;\n        identifier?: string;\n        configurationType: string | null;\n        configuration: {\n          [k: string]: any;\n        };\n        status:\n          | \"registration_pending\"\n          | \"registered\"\n          | \"registration_failed\"\n          | \"unregistration_pending\"\n          | \"unregistered\"\n          | \"unregistration_failed\";\n        statusReason: string | null;\n        /**\n         * Disabled channels for this integration\n         */\n        disabledChannels: string[];\n        /**\n         * ID of the [Integration](#schema_integration)\n         */\n        id: string;\n        /**\n         * Creation date of the [Integration](#schema_integration) in ISO 8601 format\n         */\n        createdAt: string;\n        /**\n         * Updating date of the [Integration](#schema_integration) in ISO 8601 format\n         */\n        updatedAt: string;\n        /**\n         * Title of the integration. This is the name that will be displayed in the UI\n         */\n        title: string;\n        /**\n         * Description of the integration. This is the description that will be displayed in the UI\n         */\n        description: string;\n        /**\n         * URL of the icon of the integration. This is the icon that will be displayed in the UI\n         */\n        iconUrl: string;\n        /**\n         * @deprecated\n         * [DEPRECATED] Indicates whether the integration is public. Please use the \"visibility\" parameter instead.\n         */\n        public: boolean;\n        /**\n         * The integration's visibility. Public integrations are available to all and cannot be updated without creating a new version. Unlisted integrations behave identically to public integrations, but they are not listed in the integration hub. By default, integrations are private and only accessible to the workspace that created them.\n         */\n        visibility: \"public\" | \"private\" | \"unlisted\";\n        /**\n         * Status of the integration version verification\n         */\n        verificationStatus: \"unapproved\" | \"pending\" | \"approved\" | \"rejected\";\n        /**\n         * The lifecycle status of the integration. When an integration is deprecated, it can no longer be installed.\n         */\n        lifecycleStatus: \"published\" | \"deprecated\";\n      };\n    };\n    /**\n     * A mapping of plugin aliases to their configuration\n     */\n    plugins: {\n      [k: string]: {\n        enabled: boolean;\n        /**\n         * Name of the [Plugin](#schema_plugin)\n         */\n        name: string;\n        /**\n         * Version of the [Plugin](#schema_plugin)\n         */\n        version: string;\n        configuration: {\n          [k: string]: any;\n        };\n        /**\n         * A mapping of plugin interface aliases to their backing integrations\n         */\n        interfaces?: {\n          [k: string]: {\n            integrationId: string;\n            integrationAlias: string;\n            integrationInterfaceAlias?: string;\n            interfaceId: string;\n          };\n        };\n        /**\n         * A mapping of plugin integration aliases to their backing integrations\n         */\n        integrations?: {\n          [k: string]: {\n            integrationId: string;\n            integrationAlias: string;\n          };\n        };\n        /**\n         * ID of the [Plugin](#schema_plugin)\n         */\n        id: string;\n        /**\n         * Creation date of the [Plugin](#schema_plugin) in ISO 8601 format\n         */\n        createdAt: string;\n        /**\n         * Updating date of the [Plugin](#schema_plugin) in ISO 8601 format\n         */\n        updatedAt: string;\n        /**\n         * Title of the plugin. This is the name that will be displayed in the UI\n         */\n        title: string;\n        /**\n         * Description of the plugin. This is the description that will be displayed in the UI\n         */\n        description: string;\n        /**\n         * URL of the icon of the plugin. This is the icon that will be displayed in the UI\n         */\n        iconUrl: string;\n        /**\n         * URL of the readme of the plugin. This is the readme that will be displayed in the UI\n         */\n        readmeUrl: string;\n        /**\n         * @deprecated\n         * [DEPRECATED] Indicates if the plugin is public. Please use the \"visibility\" parameter instead.\n         */\n        public: boolean;\n        /**\n         * The plugin's visibility. Public plugins are available to all and cannot be updated without creating a new version. Unlisted plugins behave identically to public plugins, but they are not listed in the plugin hub. By default, plugins are private and only accessible to the workspace that created them.\n         */\n        visibility: \"public\" | \"private\" | \"unlisted\";\n        /**\n         * The lifecycle status of the plugin. When a plugin is deprecated, it can no longer be installed.\n         */\n        lifecycleStatus: \"published\" | \"deprecated\";\n      };\n    };\n    /**\n     * Maximum execution time of the bot (in seconds).\n     */\n    maxExecutionTime?: number;\n    /**\n     * User object configuration\n     */\n    user: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Conversation object configuration\n     */\n    conversation: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Message object configuration\n     */\n    message: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * A mapping of states to their definition\n     */\n    states: {\n      [k: string]: {\n        /**\n         * Type of the [State](#schema_state) (`conversation`, `user` or `bot`)\n         */\n        type: \"conversation\" | \"user\" | \"bot\";\n        /**\n         * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n         */\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Expiry of the [State](#schema_state) in milliseconds. The state will expire if it is idle for the configured value. By default, a state doesn't expire.\n         */\n        expiry?: number;\n      };\n    };\n    /**\n     * Configuration of the bot\n     */\n    configuration: {\n      /**\n       * Configuration data\n       */\n      data: {\n        [k: string]: any;\n      };\n      /**\n       * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n       */\n      schema: {\n        [k: string]: any;\n      };\n    };\n    /**\n     * Events definition\n     */\n    events: {\n      /**\n       * Event Definition\n       */\n      [k: string]: {\n        /**\n         * Title of the event\n         */\n        title?: string;\n        /**\n         * Description of the event\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    /**\n     * Recurring events\n     */\n    recurringEvents: {\n      [k: string]: {\n        schedule: {\n          cron: string;\n        };\n        type: string;\n        payload: {\n          [k: string]: any;\n        };\n        /**\n         * The number of times the recurring event failed to run. This counter resets once the recurring event runs successfully.\n         */\n        failedAttempts: number;\n        /**\n         * The reason why the recurring event failed to run in the last attempt.\n         */\n        lastFailureReason: string | null;\n      };\n    };\n    /**\n     * Subscriptions of the bot\n     */\n    subscriptions: {\n      /**\n       * Events that the bot is currently subscribed on (ex: \"slack:reactionAdded\"). If null, the bot is subscribed to all events.\n       */\n      events: {\n        [k: string]: {};\n      } | null;\n    };\n    /**\n     * Actions definition\n     */\n    actions: {\n      /**\n       * Action definition\n       */\n      [k: string]: {\n        /**\n         * Title of the action\n         */\n        title?: string;\n        /**\n         * Description of the action\n         */\n        description?: string;\n        billable?: boolean;\n        cacheable?: boolean;\n        input: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        output: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    /**\n     * Tags of [Bot](#schema_bot)\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Name of the [Bot](#schema_bot)\n     */\n    name: string;\n    /**\n     * Description of the [Bot](#schema_bot)\n     */\n    description?: string;\n    /**\n     * Last deployment date of the [Bot](#schema_bot) in the ISO 8601 format\n     */\n    deployedAt?: string;\n    /**\n     * Indicates if the [Bot](#schema_bot) is a development bot; Development bots run locally and can install dev integrations\n     */\n    dev: boolean;\n    /**\n     * List of secret names configured for this [Bot](#schema_bot)\n     */\n    secrets: string[];\n    /**\n     * Id of the user that created the bot\n     */\n    createdBy?: string;\n    /**\n     * Indicates if the [Bot](#schema_bot) should be in always alive mode\n     */\n    alwaysAlive: boolean;\n    /**\n     * Status of the bot\n     */\n    status: \"active\" | \"deploying\" | \"deleting\";\n    /**\n     * Media files associated with the [Bot](#schema_bot)\n     */\n    medias: {\n      /**\n       * URL of the media file\n       */\n      url: string;\n      /**\n       * Name of the media file\n       */\n      name: string;\n    }[];\n    /**\n     * Type of the [Bot](#schema_bot)\n     */\n    type: \"studio\" | \"adk\" | \"desk\";\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface UpdateBotRequestHeaders {}\n\nexport interface UpdateBotRequestQuery {}\n\nexport interface UpdateBotRequestParams {\n  id: string;\n}\n\nexport interface UpdateBotRequestBody {\n  /**\n   * URL of the [Bot](#schema_bot)\n   */\n  url?: string | null;\n  /**\n   * Type of the [Bot](#schema_bot) authentication (`iam` or `hmac-sha256`)\n   */\n  authentication?: \"iam\" | \"hmac-sha256\";\n  configuration?: {\n    /**\n     * Configuration data\n     */\n    data?: {\n      [k: string]: any;\n    };\n    /**\n     * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n     */\n    schema?: {\n      [k: string]: any;\n    };\n  };\n  blocked?: boolean;\n  /**\n   * Maximum execution time (in seconds).\n   */\n  maxExecutionTime?: number;\n  /**\n   * Indicates if the [Bot](#schema_bot) should be in always alive mode\n   */\n  alwaysAlive?: boolean;\n  /**\n   * Optional attributes of the [Bot](#schema_bot). Set to null or empty string to remove.\n   */\n  tags?: {\n    [k: string]: string | null;\n  };\n  user?: {\n    tags?: {\n      /**\n       * Definition of a tag that can be provided on the object\n       */\n      [k: string]: {\n        /**\n         * Title of the tag\n         */\n        title?: string;\n        /**\n         * Description of the tag\n         */\n        description?: string;\n      } | null;\n    };\n  };\n  message?: {\n    tags?: {\n      /**\n       * Definition of a tag that can be provided on the object\n       */\n      [k: string]: {\n        /**\n         * Title of the tag\n         */\n        title?: string;\n        /**\n         * Description of the tag\n         */\n        description?: string;\n      } | null;\n    };\n  };\n  conversation?: {\n    tags?: {\n      /**\n       * Definition of a tag that can be provided on the object\n       */\n      [k: string]: {\n        /**\n         * Title of the tag\n         */\n        title?: string;\n        /**\n         * Description of the tag\n         */\n        description?: string;\n      } | null;\n    };\n  };\n  events?: {\n    [k: string]: {\n      /**\n       * Title of the event\n       */\n      title?: string;\n      /**\n       * Description of the event\n       */\n      description?: string;\n      schema: {\n        [k: string]: any;\n      };\n      /**\n       * Optional attributes. Set attributes to null to remove them\n       */\n      attributes?: {\n        [k: string]: string | null;\n      };\n    } | null;\n  };\n  actions?: {\n    [k: string]: {\n      /**\n       * Title of the action\n       */\n      title?: string;\n      /**\n       * Description of the action\n       */\n      description?: string;\n      billable?: boolean;\n      cacheable?: boolean;\n      input: {\n        schema: {\n          [k: string]: any;\n        };\n      };\n      output: {\n        schema: {\n          [k: string]: any;\n        };\n      };\n      /**\n       * Optional attributes. Set attributes to null to remove them\n       */\n      attributes?: {\n        [k: string]: string | null;\n      };\n    } | null;\n  };\n  states?: {\n    [k: string]: {\n      /**\n       * Type of the [State](#schema_state) (`conversation`, `user` or `bot`)\n       */\n      type: \"conversation\" | \"user\" | \"bot\";\n      /**\n       * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n       */\n      schema: {\n        [k: string]: any;\n      };\n      /**\n       * Expiry of the [State](#schema_state) in milliseconds. The state will expire if it is idle for the configured value. By default, a state doesn't expire.\n       */\n      expiry?: number;\n    } | null;\n  };\n  recurringEvents?: {\n    [k: string]: {\n      schedule: {\n        cron: string;\n      };\n      type: string;\n      payload: {\n        [k: string]: any;\n      };\n    } | null;\n  };\n  integrations?: {\n    [k: string]: {\n      enabled?: boolean;\n      /**\n       * Integration's definition ID. If defined, the record's key is treated as an alias for the integration instance.\n       */\n      integrationId?: string;\n      /**\n       * Integration's configuration type. Set to default if null.\n       */\n      configurationType?: string | null;\n      configuration?: {\n        [k: string]: any;\n      };\n      /**\n       * Disabled channels for this integration\n       */\n      disabledChannels?: string[];\n    } | null;\n  };\n  /**\n   * A mapping of plugin aliases to their configuration\n   */\n  plugins?: {\n    [k: string]: {\n      id: string;\n      enabled?: boolean;\n      configuration?: {\n        [k: string]: any;\n      };\n      /**\n       * A mapping of plugin interface aliases to their backing integrations\n       */\n      interfaces?: {\n        [k: string]: {\n          integrationId: string;\n          /**\n           * When an alias is provided, the plugin will use the integration corresponding to this alias. If not provided, the first integration matching the integrationId will be used.\n           */\n          integrationAlias?: string;\n          /**\n           * When an alias is provided, the plugin will use the integration interface corresponding to this alias.\n           */\n          integrationInterfaceAlias?: string;\n        };\n      };\n      /**\n       * A mapping of plugin integration aliases to their backing integrations\n       */\n      integrations?: {\n        [k: string]: {\n          integrationId: string;\n          integrationAlias: string;\n        };\n      };\n    } | null;\n  };\n  subscriptions?: {\n    events: {\n      [k: string]: {} | null;\n    } | null;\n  };\n  /**\n   * JavaScript code of the bot\n   */\n  code?: string;\n  /**\n   * Optional name for the bot, if not provided will be auto-generated\n   */\n  name?: string;\n  /**\n   * Optional description for the bot\n   */\n  description?: string;\n  /**\n   * Media files associated with the [Bot](#schema_bot)\n   */\n  medias?: {\n    url: string;\n    name: string;\n  }[];\n  /**\n   * Secrets are values available in the code via environment variables formatted with a SECRET_ prefix followed by your secret name. A secret name must respect SCREAMING_SNAKE casing.\n   */\n  secrets?: {\n    [k: string]: string | null;\n  };\n  layers?: string[];\n  /**\n   * Type of the [Bot](#schema_bot)\n   */\n  type?: \"studio\" | \"adk\" | \"desk\";\n}\n\nexport type UpdateBotInput = UpdateBotRequestBody & UpdateBotRequestHeaders & UpdateBotRequestQuery & UpdateBotRequestParams\n\nexport type UpdateBotRequest = {\n  headers: UpdateBotRequestHeaders;\n  query: UpdateBotRequestQuery;\n  params: UpdateBotRequestParams;\n  body: UpdateBotRequestBody;\n}\n\nexport const parseReq = (input: UpdateBotInput): UpdateBotRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: { 'url': input['url'], 'authentication': input['authentication'], 'configuration': input['configuration'], 'blocked': input['blocked'], 'maxExecutionTime': input['maxExecutionTime'], 'alwaysAlive': input['alwaysAlive'], 'tags': input['tags'], 'user': input['user'], 'message': input['message'], 'conversation': input['conversation'], 'events': input['events'], 'actions': input['actions'], 'states': input['states'], 'recurringEvents': input['recurringEvents'], 'integrations': input['integrations'], 'plugins': input['plugins'], 'subscriptions': input['subscriptions'], 'code': input['code'], 'name': input['name'], 'description': input['description'], 'medias': input['medias'], 'secrets': input['secrets'], 'layers': input['layers'], 'type': input['type'] },\n  }\n}\n\nexport interface UpdateBotResponse {\n  bot: {\n    /**\n     * Id of the [Bot](#schema_bot)\n     */\n    id: string;\n    /**\n     * Creation date of the [Bot](#schema_bot) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Bot](#schema_bot) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Signing secret of the [Bot](#schema_bot). This field is only visible when creating a new bot or when rotating the signing secret of an existing bot.\n     */\n    signingSecret: string;\n    /**\n     * A mapping of integrations to their configuration. If the `x-multiple-integrations` header is present, this object is keyed by integration aliases. Otherwise, this object is keyed by integration ids.\n     */\n    integrations: {\n      [k: string]: {\n        enabled: boolean;\n        /**\n         * Name of the [Integration](#schema_integration)\n         */\n        name: string;\n        /**\n         * Version of the [Integration](#schema_integration)\n         */\n        version: string;\n        webhookUrl: string;\n        webhookId: string;\n        identifier?: string;\n        configurationType: string | null;\n        configuration: {\n          [k: string]: any;\n        };\n        status:\n          | \"registration_pending\"\n          | \"registered\"\n          | \"registration_failed\"\n          | \"unregistration_pending\"\n          | \"unregistered\"\n          | \"unregistration_failed\";\n        statusReason: string | null;\n        /**\n         * Disabled channels for this integration\n         */\n        disabledChannels: string[];\n        /**\n         * ID of the [Integration](#schema_integration)\n         */\n        id: string;\n        /**\n         * Creation date of the [Integration](#schema_integration) in ISO 8601 format\n         */\n        createdAt: string;\n        /**\n         * Updating date of the [Integration](#schema_integration) in ISO 8601 format\n         */\n        updatedAt: string;\n        /**\n         * Title of the integration. This is the name that will be displayed in the UI\n         */\n        title: string;\n        /**\n         * Description of the integration. This is the description that will be displayed in the UI\n         */\n        description: string;\n        /**\n         * URL of the icon of the integration. This is the icon that will be displayed in the UI\n         */\n        iconUrl: string;\n        /**\n         * @deprecated\n         * [DEPRECATED] Indicates whether the integration is public. Please use the \"visibility\" parameter instead.\n         */\n        public: boolean;\n        /**\n         * The integration's visibility. Public integrations are available to all and cannot be updated without creating a new version. Unlisted integrations behave identically to public integrations, but they are not listed in the integration hub. By default, integrations are private and only accessible to the workspace that created them.\n         */\n        visibility: \"public\" | \"private\" | \"unlisted\";\n        /**\n         * Status of the integration version verification\n         */\n        verificationStatus: \"unapproved\" | \"pending\" | \"approved\" | \"rejected\";\n        /**\n         * The lifecycle status of the integration. When an integration is deprecated, it can no longer be installed.\n         */\n        lifecycleStatus: \"published\" | \"deprecated\";\n      };\n    };\n    /**\n     * A mapping of plugin aliases to their configuration\n     */\n    plugins: {\n      [k: string]: {\n        enabled: boolean;\n        /**\n         * Name of the [Plugin](#schema_plugin)\n         */\n        name: string;\n        /**\n         * Version of the [Plugin](#schema_plugin)\n         */\n        version: string;\n        configuration: {\n          [k: string]: any;\n        };\n        /**\n         * A mapping of plugin interface aliases to their backing integrations\n         */\n        interfaces?: {\n          [k: string]: {\n            integrationId: string;\n            integrationAlias: string;\n            integrationInterfaceAlias?: string;\n            interfaceId: string;\n          };\n        };\n        /**\n         * A mapping of plugin integration aliases to their backing integrations\n         */\n        integrations?: {\n          [k: string]: {\n            integrationId: string;\n            integrationAlias: string;\n          };\n        };\n        /**\n         * ID of the [Plugin](#schema_plugin)\n         */\n        id: string;\n        /**\n         * Creation date of the [Plugin](#schema_plugin) in ISO 8601 format\n         */\n        createdAt: string;\n        /**\n         * Updating date of the [Plugin](#schema_plugin) in ISO 8601 format\n         */\n        updatedAt: string;\n        /**\n         * Title of the plugin. This is the name that will be displayed in the UI\n         */\n        title: string;\n        /**\n         * Description of the plugin. This is the description that will be displayed in the UI\n         */\n        description: string;\n        /**\n         * URL of the icon of the plugin. This is the icon that will be displayed in the UI\n         */\n        iconUrl: string;\n        /**\n         * URL of the readme of the plugin. This is the readme that will be displayed in the UI\n         */\n        readmeUrl: string;\n        /**\n         * @deprecated\n         * [DEPRECATED] Indicates if the plugin is public. Please use the \"visibility\" parameter instead.\n         */\n        public: boolean;\n        /**\n         * The plugin's visibility. Public plugins are available to all and cannot be updated without creating a new version. Unlisted plugins behave identically to public plugins, but they are not listed in the plugin hub. By default, plugins are private and only accessible to the workspace that created them.\n         */\n        visibility: \"public\" | \"private\" | \"unlisted\";\n        /**\n         * The lifecycle status of the plugin. When a plugin is deprecated, it can no longer be installed.\n         */\n        lifecycleStatus: \"published\" | \"deprecated\";\n      };\n    };\n    /**\n     * Maximum execution time of the bot (in seconds).\n     */\n    maxExecutionTime?: number;\n    /**\n     * User object configuration\n     */\n    user: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Conversation object configuration\n     */\n    conversation: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Message object configuration\n     */\n    message: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * A mapping of states to their definition\n     */\n    states: {\n      [k: string]: {\n        /**\n         * Type of the [State](#schema_state) (`conversation`, `user` or `bot`)\n         */\n        type: \"conversation\" | \"user\" | \"bot\";\n        /**\n         * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n         */\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Expiry of the [State](#schema_state) in milliseconds. The state will expire if it is idle for the configured value. By default, a state doesn't expire.\n         */\n        expiry?: number;\n      };\n    };\n    /**\n     * Configuration of the bot\n     */\n    configuration: {\n      /**\n       * Configuration data\n       */\n      data: {\n        [k: string]: any;\n      };\n      /**\n       * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n       */\n      schema: {\n        [k: string]: any;\n      };\n    };\n    /**\n     * Events definition\n     */\n    events: {\n      /**\n       * Event Definition\n       */\n      [k: string]: {\n        /**\n         * Title of the event\n         */\n        title?: string;\n        /**\n         * Description of the event\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    /**\n     * Recurring events\n     */\n    recurringEvents: {\n      [k: string]: {\n        schedule: {\n          cron: string;\n        };\n        type: string;\n        payload: {\n          [k: string]: any;\n        };\n        /**\n         * The number of times the recurring event failed to run. This counter resets once the recurring event runs successfully.\n         */\n        failedAttempts: number;\n        /**\n         * The reason why the recurring event failed to run in the last attempt.\n         */\n        lastFailureReason: string | null;\n      };\n    };\n    /**\n     * Subscriptions of the bot\n     */\n    subscriptions: {\n      /**\n       * Events that the bot is currently subscribed on (ex: \"slack:reactionAdded\"). If null, the bot is subscribed to all events.\n       */\n      events: {\n        [k: string]: {};\n      } | null;\n    };\n    /**\n     * Actions definition\n     */\n    actions: {\n      /**\n       * Action definition\n       */\n      [k: string]: {\n        /**\n         * Title of the action\n         */\n        title?: string;\n        /**\n         * Description of the action\n         */\n        description?: string;\n        billable?: boolean;\n        cacheable?: boolean;\n        input: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        output: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    /**\n     * Tags of [Bot](#schema_bot)\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Name of the [Bot](#schema_bot)\n     */\n    name: string;\n    /**\n     * Description of the [Bot](#schema_bot)\n     */\n    description?: string;\n    /**\n     * Last deployment date of the [Bot](#schema_bot) in the ISO 8601 format\n     */\n    deployedAt?: string;\n    /**\n     * Indicates if the [Bot](#schema_bot) is a development bot; Development bots run locally and can install dev integrations\n     */\n    dev: boolean;\n    /**\n     * List of secret names configured for this [Bot](#schema_bot)\n     */\n    secrets: string[];\n    /**\n     * Id of the user that created the bot\n     */\n    createdBy?: string;\n    /**\n     * Indicates if the [Bot](#schema_bot) should be in always alive mode\n     */\n    alwaysAlive: boolean;\n    /**\n     * Status of the bot\n     */\n    status: \"active\" | \"deploying\" | \"deleting\";\n    /**\n     * Media files associated with the [Bot](#schema_bot)\n     */\n    medias: {\n      /**\n       * URL of the media file\n       */\n      url: string;\n      /**\n       * Name of the media file\n       */\n      name: string;\n    }[];\n    /**\n     * Type of the [Bot](#schema_bot)\n     */\n    type: \"studio\" | \"adk\" | \"desk\";\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface RotateBotSigningSecretsRequestHeaders {}\n\nexport interface RotateBotSigningSecretsRequestQuery {}\n\nexport interface RotateBotSigningSecretsRequestParams {\n  id: string;\n}\n\nexport interface RotateBotSigningSecretsRequestBody {}\n\nexport type RotateBotSigningSecretsInput = RotateBotSigningSecretsRequestBody & RotateBotSigningSecretsRequestHeaders & RotateBotSigningSecretsRequestQuery & RotateBotSigningSecretsRequestParams\n\nexport type RotateBotSigningSecretsRequest = {\n  headers: RotateBotSigningSecretsRequestHeaders;\n  query: RotateBotSigningSecretsRequestQuery;\n  params: RotateBotSigningSecretsRequestParams;\n  body: RotateBotSigningSecretsRequestBody;\n}\n\nexport const parseReq = (input: RotateBotSigningSecretsInput): RotateBotSigningSecretsRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['id'])}/signing-secrets/rotate`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface RotateBotSigningSecretsResponse {\n  /**\n   * The new signing secret that can be used immediately. The old signing secret(s) will continue to work for 24 hours after this operation to allow for a smooth transition.\n   */\n  newSigningSecret: string;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface TransferBotRequestHeaders {}\n\nexport interface TransferBotRequestQuery {}\n\nexport interface TransferBotRequestParams {\n  id: string;\n}\n\nexport interface TransferBotRequestBody {\n  /**\n   * The ID of the workspace you want to transfer the bot to.\n   */\n  targetWorkspaceId: string;\n}\n\nexport type TransferBotInput = TransferBotRequestBody & TransferBotRequestHeaders & TransferBotRequestQuery & TransferBotRequestParams\n\nexport type TransferBotRequest = {\n  headers: TransferBotRequestHeaders;\n  query: TransferBotRequestQuery;\n  params: TransferBotRequestParams;\n  body: TransferBotRequestBody;\n}\n\nexport const parseReq = (input: TransferBotInput): TransferBotRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['id'])}/transfer`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: { 'targetWorkspaceId': input['targetWorkspaceId'] },\n  }\n}\n\nexport interface TransferBotResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListBotsRequestHeaders {}\n\nexport interface ListBotsRequestQuery {\n  dev?: boolean;\n  tags?: {\n    [k: string]: string;\n  };\n  integrationNames?: string[];\n  pluginNames?: string[];\n  nextToken?: string;\n  pageSize?: number;\n  sortField?: \"createdAt\" | \"updatedAt\";\n  sortDirection?: \"asc\" | \"desc\";\n}\n\nexport interface ListBotsRequestParams {}\n\nexport interface ListBotsRequestBody {}\n\nexport type ListBotsInput = ListBotsRequestBody & ListBotsRequestHeaders & ListBotsRequestQuery & ListBotsRequestParams\n\nexport type ListBotsRequest = {\n  headers: ListBotsRequestHeaders;\n  query: ListBotsRequestQuery;\n  params: ListBotsRequestParams;\n  body: ListBotsRequestBody;\n}\n\nexport const parseReq = (input: ListBotsInput): ListBotsRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots`,\n    headers: {  },\n    query: { 'dev': input['dev'], 'tags': input['tags'], 'integrationNames': input['integrationNames'], 'pluginNames': input['pluginNames'], 'nextToken': input['nextToken'], 'pageSize': input['pageSize'], 'sortField': input['sortField'], 'sortDirection': input['sortDirection'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListBotsResponse {\n  bots: {\n    /**\n     * Id of the [Bot](#schema_bot)\n     */\n    id: string;\n    /**\n     * Creation date of the [Bot](#schema_bot) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Bot](#schema_bot) in ISO 8601 format\n     */\n    updatedAt: string;\n    name: string;\n    deployedAt?: string;\n    /**\n     * Tags of [Bot](#schema_bot)\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Type of the [Bot](#schema_bot)\n     */\n    type: \"studio\" | \"adk\" | \"desk\";\n  }[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetBotRequestHeaders {}\n\nexport interface GetBotRequestQuery {}\n\nexport interface GetBotRequestParams {\n  id: string;\n}\n\nexport interface GetBotRequestBody {}\n\nexport type GetBotInput = GetBotRequestBody & GetBotRequestHeaders & GetBotRequestQuery & GetBotRequestParams\n\nexport type GetBotRequest = {\n  headers: GetBotRequestHeaders;\n  query: GetBotRequestQuery;\n  params: GetBotRequestParams;\n  body: GetBotRequestBody;\n}\n\nexport const parseReq = (input: GetBotInput): GetBotRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetBotResponse {\n  bot: {\n    /**\n     * Id of the [Bot](#schema_bot)\n     */\n    id: string;\n    /**\n     * Creation date of the [Bot](#schema_bot) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Bot](#schema_bot) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Signing secret of the [Bot](#schema_bot). This field is only visible when creating a new bot or when rotating the signing secret of an existing bot.\n     */\n    signingSecret: string;\n    /**\n     * A mapping of integrations to their configuration. If the `x-multiple-integrations` header is present, this object is keyed by integration aliases. Otherwise, this object is keyed by integration ids.\n     */\n    integrations: {\n      [k: string]: {\n        enabled: boolean;\n        /**\n         * Name of the [Integration](#schema_integration)\n         */\n        name: string;\n        /**\n         * Version of the [Integration](#schema_integration)\n         */\n        version: string;\n        webhookUrl: string;\n        webhookId: string;\n        identifier?: string;\n        configurationType: string | null;\n        configuration: {\n          [k: string]: any;\n        };\n        status:\n          | \"registration_pending\"\n          | \"registered\"\n          | \"registration_failed\"\n          | \"unregistration_pending\"\n          | \"unregistered\"\n          | \"unregistration_failed\";\n        statusReason: string | null;\n        /**\n         * Disabled channels for this integration\n         */\n        disabledChannels: string[];\n        /**\n         * ID of the [Integration](#schema_integration)\n         */\n        id: string;\n        /**\n         * Creation date of the [Integration](#schema_integration) in ISO 8601 format\n         */\n        createdAt: string;\n        /**\n         * Updating date of the [Integration](#schema_integration) in ISO 8601 format\n         */\n        updatedAt: string;\n        /**\n         * Title of the integration. This is the name that will be displayed in the UI\n         */\n        title: string;\n        /**\n         * Description of the integration. This is the description that will be displayed in the UI\n         */\n        description: string;\n        /**\n         * URL of the icon of the integration. This is the icon that will be displayed in the UI\n         */\n        iconUrl: string;\n        /**\n         * @deprecated\n         * [DEPRECATED] Indicates whether the integration is public. Please use the \"visibility\" parameter instead.\n         */\n        public: boolean;\n        /**\n         * The integration's visibility. Public integrations are available to all and cannot be updated without creating a new version. Unlisted integrations behave identically to public integrations, but they are not listed in the integration hub. By default, integrations are private and only accessible to the workspace that created them.\n         */\n        visibility: \"public\" | \"private\" | \"unlisted\";\n        /**\n         * Status of the integration version verification\n         */\n        verificationStatus: \"unapproved\" | \"pending\" | \"approved\" | \"rejected\";\n        /**\n         * The lifecycle status of the integration. When an integration is deprecated, it can no longer be installed.\n         */\n        lifecycleStatus: \"published\" | \"deprecated\";\n      };\n    };\n    /**\n     * A mapping of plugin aliases to their configuration\n     */\n    plugins: {\n      [k: string]: {\n        enabled: boolean;\n        /**\n         * Name of the [Plugin](#schema_plugin)\n         */\n        name: string;\n        /**\n         * Version of the [Plugin](#schema_plugin)\n         */\n        version: string;\n        configuration: {\n          [k: string]: any;\n        };\n        /**\n         * A mapping of plugin interface aliases to their backing integrations\n         */\n        interfaces?: {\n          [k: string]: {\n            integrationId: string;\n            integrationAlias: string;\n            integrationInterfaceAlias?: string;\n            interfaceId: string;\n          };\n        };\n        /**\n         * A mapping of plugin integration aliases to their backing integrations\n         */\n        integrations?: {\n          [k: string]: {\n            integrationId: string;\n            integrationAlias: string;\n          };\n        };\n        /**\n         * ID of the [Plugin](#schema_plugin)\n         */\n        id: string;\n        /**\n         * Creation date of the [Plugin](#schema_plugin) in ISO 8601 format\n         */\n        createdAt: string;\n        /**\n         * Updating date of the [Plugin](#schema_plugin) in ISO 8601 format\n         */\n        updatedAt: string;\n        /**\n         * Title of the plugin. This is the name that will be displayed in the UI\n         */\n        title: string;\n        /**\n         * Description of the plugin. This is the description that will be displayed in the UI\n         */\n        description: string;\n        /**\n         * URL of the icon of the plugin. This is the icon that will be displayed in the UI\n         */\n        iconUrl: string;\n        /**\n         * URL of the readme of the plugin. This is the readme that will be displayed in the UI\n         */\n        readmeUrl: string;\n        /**\n         * @deprecated\n         * [DEPRECATED] Indicates if the plugin is public. Please use the \"visibility\" parameter instead.\n         */\n        public: boolean;\n        /**\n         * The plugin's visibility. Public plugins are available to all and cannot be updated without creating a new version. Unlisted plugins behave identically to public plugins, but they are not listed in the plugin hub. By default, plugins are private and only accessible to the workspace that created them.\n         */\n        visibility: \"public\" | \"private\" | \"unlisted\";\n        /**\n         * The lifecycle status of the plugin. When a plugin is deprecated, it can no longer be installed.\n         */\n        lifecycleStatus: \"published\" | \"deprecated\";\n      };\n    };\n    /**\n     * Maximum execution time of the bot (in seconds).\n     */\n    maxExecutionTime?: number;\n    /**\n     * User object configuration\n     */\n    user: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Conversation object configuration\n     */\n    conversation: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Message object configuration\n     */\n    message: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * A mapping of states to their definition\n     */\n    states: {\n      [k: string]: {\n        /**\n         * Type of the [State](#schema_state) (`conversation`, `user` or `bot`)\n         */\n        type: \"conversation\" | \"user\" | \"bot\";\n        /**\n         * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n         */\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Expiry of the [State](#schema_state) in milliseconds. The state will expire if it is idle for the configured value. By default, a state doesn't expire.\n         */\n        expiry?: number;\n      };\n    };\n    /**\n     * Configuration of the bot\n     */\n    configuration: {\n      /**\n       * Configuration data\n       */\n      data: {\n        [k: string]: any;\n      };\n      /**\n       * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n       */\n      schema: {\n        [k: string]: any;\n      };\n    };\n    /**\n     * Events definition\n     */\n    events: {\n      /**\n       * Event Definition\n       */\n      [k: string]: {\n        /**\n         * Title of the event\n         */\n        title?: string;\n        /**\n         * Description of the event\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    /**\n     * Recurring events\n     */\n    recurringEvents: {\n      [k: string]: {\n        schedule: {\n          cron: string;\n        };\n        type: string;\n        payload: {\n          [k: string]: any;\n        };\n        /**\n         * The number of times the recurring event failed to run. This counter resets once the recurring event runs successfully.\n         */\n        failedAttempts: number;\n        /**\n         * The reason why the recurring event failed to run in the last attempt.\n         */\n        lastFailureReason: string | null;\n      };\n    };\n    /**\n     * Subscriptions of the bot\n     */\n    subscriptions: {\n      /**\n       * Events that the bot is currently subscribed on (ex: \"slack:reactionAdded\"). If null, the bot is subscribed to all events.\n       */\n      events: {\n        [k: string]: {};\n      } | null;\n    };\n    /**\n     * Actions definition\n     */\n    actions: {\n      /**\n       * Action definition\n       */\n      [k: string]: {\n        /**\n         * Title of the action\n         */\n        title?: string;\n        /**\n         * Description of the action\n         */\n        description?: string;\n        billable?: boolean;\n        cacheable?: boolean;\n        input: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        output: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    /**\n     * Tags of [Bot](#schema_bot)\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Name of the [Bot](#schema_bot)\n     */\n    name: string;\n    /**\n     * Description of the [Bot](#schema_bot)\n     */\n    description?: string;\n    /**\n     * Last deployment date of the [Bot](#schema_bot) in the ISO 8601 format\n     */\n    deployedAt?: string;\n    /**\n     * Indicates if the [Bot](#schema_bot) is a development bot; Development bots run locally and can install dev integrations\n     */\n    dev: boolean;\n    /**\n     * List of secret names configured for this [Bot](#schema_bot)\n     */\n    secrets: string[];\n    /**\n     * Id of the user that created the bot\n     */\n    createdBy?: string;\n    /**\n     * Indicates if the [Bot](#schema_bot) should be in always alive mode\n     */\n    alwaysAlive: boolean;\n    /**\n     * Status of the bot\n     */\n    status: \"active\" | \"deploying\" | \"deleting\";\n    /**\n     * Media files associated with the [Bot](#schema_bot)\n     */\n    medias: {\n      /**\n       * URL of the media file\n       */\n      url: string;\n      /**\n       * Name of the media file\n       */\n      name: string;\n    }[];\n    /**\n     * Type of the [Bot](#schema_bot)\n     */\n    type: \"studio\" | \"adk\" | \"desk\";\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface DeleteBotRequestHeaders {}\n\nexport interface DeleteBotRequestQuery {}\n\nexport interface DeleteBotRequestParams {\n  id: string;\n}\n\nexport interface DeleteBotRequestBody {}\n\nexport type DeleteBotInput = DeleteBotRequestBody & DeleteBotRequestHeaders & DeleteBotRequestQuery & DeleteBotRequestParams\n\nexport type DeleteBotRequest = {\n  headers: DeleteBotRequestHeaders;\n  query: DeleteBotRequestQuery;\n  params: DeleteBotRequestParams;\n  body: DeleteBotRequestBody;\n}\n\nexport const parseReq = (input: DeleteBotInput): DeleteBotRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface DeleteBotResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetBotLogsRequestHeaders {}\n\nexport interface GetBotLogsRequestQuery {\n  timeStart: string;\n  timeEnd?: string;\n  level?: string;\n  userId?: string;\n  workflowId?: string;\n  conversationId?: string;\n  messageContains?: string;\n  nextToken?: string;\n}\n\nexport interface GetBotLogsRequestParams {\n  id: string;\n}\n\nexport interface GetBotLogsRequestBody {}\n\nexport type GetBotLogsInput = GetBotLogsRequestBody & GetBotLogsRequestHeaders & GetBotLogsRequestQuery & GetBotLogsRequestParams\n\nexport type GetBotLogsRequest = {\n  headers: GetBotLogsRequestHeaders;\n  query: GetBotLogsRequestQuery;\n  params: GetBotLogsRequestParams;\n  body: GetBotLogsRequestBody;\n}\n\nexport const parseReq = (input: GetBotLogsInput): GetBotLogsRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['id'])}/logs`,\n    headers: {  },\n    query: { 'timeStart': input['timeStart'], 'timeEnd': input['timeEnd'], 'level': input['level'], 'userId': input['userId'], 'workflowId': input['workflowId'], 'conversationId': input['conversationId'], 'messageContains': input['messageContains'], 'nextToken': input['nextToken'] },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetBotLogsResponse {\n  logs: {\n    timestamp: string;\n    level: string;\n    message: string;\n    workflowId?: string;\n    userId?: string;\n    conversationId?: string;\n  }[];\n  nextToken?: string;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetBotWebchatRequestHeaders {}\n\nexport interface GetBotWebchatRequestQuery {\n  type: \"preconfigured\" | \"configurable\" | \"fullscreen\" | \"sharableUrl\";\n}\n\nexport interface GetBotWebchatRequestParams {\n  id: string;\n}\n\nexport interface GetBotWebchatRequestBody {}\n\nexport type GetBotWebchatInput = GetBotWebchatRequestBody & GetBotWebchatRequestHeaders & GetBotWebchatRequestQuery & GetBotWebchatRequestParams\n\nexport type GetBotWebchatRequest = {\n  headers: GetBotWebchatRequestHeaders;\n  query: GetBotWebchatRequestQuery;\n  params: GetBotWebchatRequestParams;\n  body: GetBotWebchatRequestBody;\n}\n\nexport const parseReq = (input: GetBotWebchatInput): GetBotWebchatRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['id'])}/webchat`,\n    headers: {  },\n    query: { 'type': input['type'] },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetBotWebchatResponse {\n  code: string;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetBotAnalyticsRequestHeaders {}\n\nexport interface GetBotAnalyticsRequestQuery {\n  startDate: string;\n  endDate: string;\n}\n\nexport interface GetBotAnalyticsRequestParams {\n  id: string;\n}\n\nexport interface GetBotAnalyticsRequestBody {}\n\nexport type GetBotAnalyticsInput = GetBotAnalyticsRequestBody & GetBotAnalyticsRequestHeaders & GetBotAnalyticsRequestQuery & GetBotAnalyticsRequestParams\n\nexport type GetBotAnalyticsRequest = {\n  headers: GetBotAnalyticsRequestHeaders;\n  query: GetBotAnalyticsRequestQuery;\n  params: GetBotAnalyticsRequestParams;\n  body: GetBotAnalyticsRequestBody;\n}\n\nexport const parseReq = (input: GetBotAnalyticsInput): GetBotAnalyticsRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['id'])}/analytics`,\n    headers: {  },\n    query: { 'startDate': input['startDate'], 'endDate': input['endDate'] },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetBotAnalyticsResponse {\n  records: {\n    /**\n     * ISO 8601 date string of the beginning (inclusive) of the period\n     */\n    startDateTimeUtc: string;\n    /**\n     * ISO 8601 date string of the end (inclusive) of the period\n     */\n    endDateTimeUtc: string;\n    returningUsers: number;\n    newUsers: number;\n    sessions: number;\n    /**\n     * Deprecated. Use `userMessages` instead.\n     */\n    messages: number;\n    userMessages: number;\n    botMessages: number;\n    events: number;\n    eventTypes: {\n      [k: string]: number;\n    };\n    customEvents: {\n      [k: string]: number;\n    };\n    llm: {\n      calls: number;\n      errors: number;\n      inputTokens: number;\n      outputTokens: number;\n      /**\n       * The time it took for the LLM to complete its response. Values are expressed in milliseconds\n       */\n      latency: {\n        mean: number;\n        sd: number;\n        min: number;\n        max: number;\n      };\n      /**\n       * LLM response generation speed expressed in output tokens per second.\n       */\n      tokensPerSecond: {\n        mean: number;\n        sd: number;\n        min: number;\n        max: number;\n      };\n      /**\n       * Values are expressed in U.S. dollars\n       */\n      cost: {\n        sum: number;\n        mean: number;\n        sd: number;\n        min: number;\n        max: number;\n      };\n    };\n  }[];\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListActionRunsRequestHeaders {}\n\nexport interface ListActionRunsRequestQuery {\n  integrationName: string;\n  timestampFrom?: string;\n  timestampUntil?: string;\n  nextToken?: string;\n  pageSize?: number;\n}\n\nexport interface ListActionRunsRequestParams {\n  id: string;\n}\n\nexport interface ListActionRunsRequestBody {}\n\nexport type ListActionRunsInput = ListActionRunsRequestBody & ListActionRunsRequestHeaders & ListActionRunsRequestQuery & ListActionRunsRequestParams\n\nexport type ListActionRunsRequest = {\n  headers: ListActionRunsRequestHeaders;\n  query: ListActionRunsRequestQuery;\n  params: ListActionRunsRequestParams;\n  body: ListActionRunsRequestBody;\n}\n\nexport const parseReq = (input: ListActionRunsInput): ListActionRunsRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['id'])}/action-runs`,\n    headers: {  },\n    query: { 'integrationName': input['integrationName'], 'timestampFrom': input['timestampFrom'], 'timestampUntil': input['timestampUntil'], 'nextToken': input['nextToken'], 'pageSize': input['pageSize'] },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface ListActionRunsResponse {\n  data: {\n    /**\n     * ISO 8601 timestamp of the action run\n     */\n    timestamp: string;\n    /**\n     * Alias of the integration instance used for this action run\n     */\n    integrationName?: string;\n    actionType: string;\n    /**\n     * Input of the action\n     */\n    input: {\n      [k: string]: any;\n    };\n    /**\n     * Present if the length of the action's input exceeds 190 KB.\n     */\n    inputTruncated?: boolean;\n    /**\n     * Output of the action\n     */\n    output: {\n      [k: string]: any;\n    } | null;\n    /**\n     * Present if the length of the action's output exceeds 190 KB.\n     */\n    outputTruncated?: boolean;\n    status: \"SUCCESS\" | \"FAILURE\";\n    durationMs: number;\n    cached: boolean;\n    errorMessage?: string | null;\n  }[];\n  meta: {\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetBotIssueRequestHeaders {}\n\nexport interface GetBotIssueRequestQuery {}\n\nexport interface GetBotIssueRequestParams {\n  id: string;\n  issueId: string;\n}\n\nexport interface GetBotIssueRequestBody {}\n\nexport type GetBotIssueInput = GetBotIssueRequestBody & GetBotIssueRequestHeaders & GetBotIssueRequestQuery & GetBotIssueRequestParams\n\nexport type GetBotIssueRequest = {\n  headers: GetBotIssueRequestHeaders;\n  query: GetBotIssueRequestQuery;\n  params: GetBotIssueRequestParams;\n  body: GetBotIssueRequestBody;\n}\n\nexport const parseReq = (input: GetBotIssueInput): GetBotIssueRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['id'])}/issues/${encodeURIComponent(input['issueId'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'], 'issueId': input['issueId'] },\n    body: {  },\n  }\n}\n\nexport interface GetBotIssueResponse {\n  issue: {\n    id: string;\n    code: string;\n    createdAt: string;\n    lastSeenAt: string;\n    title: string;\n    description: string;\n    groupedData: {\n      [k: string]: {\n        raw: string;\n        pretty?: string;\n      };\n    };\n    eventsCount: number;\n    category: \"user_code\" | \"limits\" | \"configuration\" | \"other\";\n    resolutionLink: string | null;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListBotIssuesRequestHeaders {}\n\nexport interface ListBotIssuesRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n}\n\nexport interface ListBotIssuesRequestParams {\n  id: string;\n}\n\nexport interface ListBotIssuesRequestBody {}\n\nexport type ListBotIssuesInput = ListBotIssuesRequestBody & ListBotIssuesRequestHeaders & ListBotIssuesRequestQuery & ListBotIssuesRequestParams\n\nexport type ListBotIssuesRequest = {\n  headers: ListBotIssuesRequestHeaders;\n  query: ListBotIssuesRequestQuery;\n  params: ListBotIssuesRequestParams;\n  body: ListBotIssuesRequestBody;\n}\n\nexport const parseReq = (input: ListBotIssuesInput): ListBotIssuesRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['id'])}/issues`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'] },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface ListBotIssuesResponse {\n  issues: {\n    id: string;\n    code: string;\n    createdAt: string;\n    lastSeenAt: string;\n    title: string;\n    description: string;\n    groupedData: {\n      [k: string]: {\n        raw: string;\n        pretty?: string;\n      };\n    };\n    eventsCount: number;\n    category: \"user_code\" | \"limits\" | \"configuration\" | \"other\";\n    resolutionLink: string | null;\n  }[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface DeleteBotIssueRequestHeaders {}\n\nexport interface DeleteBotIssueRequestQuery {}\n\nexport interface DeleteBotIssueRequestParams {\n  id: string;\n  issueId: string;\n}\n\nexport interface DeleteBotIssueRequestBody {}\n\nexport type DeleteBotIssueInput = DeleteBotIssueRequestBody & DeleteBotIssueRequestHeaders & DeleteBotIssueRequestQuery & DeleteBotIssueRequestParams\n\nexport type DeleteBotIssueRequest = {\n  headers: DeleteBotIssueRequestHeaders;\n  query: DeleteBotIssueRequestQuery;\n  params: DeleteBotIssueRequestParams;\n  body: DeleteBotIssueRequestBody;\n}\n\nexport const parseReq = (input: DeleteBotIssueInput): DeleteBotIssueRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['id'])}/issues/${encodeURIComponent(input['issueId'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'], 'issueId': input['issueId'] },\n    body: {  },\n  }\n}\n\nexport interface DeleteBotIssueResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListBotIssueEventsRequestHeaders {}\n\nexport interface ListBotIssueEventsRequestQuery {}\n\nexport interface ListBotIssueEventsRequestParams {\n  id: string;\n  issueId: string;\n}\n\nexport interface ListBotIssueEventsRequestBody {}\n\nexport type ListBotIssueEventsInput = ListBotIssueEventsRequestBody & ListBotIssueEventsRequestHeaders & ListBotIssueEventsRequestQuery & ListBotIssueEventsRequestParams\n\nexport type ListBotIssueEventsRequest = {\n  headers: ListBotIssueEventsRequestHeaders;\n  query: ListBotIssueEventsRequestQuery;\n  params: ListBotIssueEventsRequestParams;\n  body: ListBotIssueEventsRequestBody;\n}\n\nexport const parseReq = (input: ListBotIssueEventsInput): ListBotIssueEventsRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['id'])}/issues/${encodeURIComponent(input['issueId'])}/events`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'], 'issueId': input['issueId'] },\n    body: {  },\n  }\n}\n\nexport interface ListBotIssueEventsResponse {\n  issueEvents: {\n    id: string;\n    createdAt: string;\n    data: {\n      [k: string]: {\n        raw: string;\n        pretty?: string;\n      };\n    };\n  }[];\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListBotVersionsRequestHeaders {}\n\nexport interface ListBotVersionsRequestQuery {}\n\nexport interface ListBotVersionsRequestParams {\n  id: string;\n}\n\nexport interface ListBotVersionsRequestBody {}\n\nexport type ListBotVersionsInput = ListBotVersionsRequestBody & ListBotVersionsRequestHeaders & ListBotVersionsRequestQuery & ListBotVersionsRequestParams\n\nexport type ListBotVersionsRequest = {\n  headers: ListBotVersionsRequestHeaders;\n  query: ListBotVersionsRequestQuery;\n  params: ListBotVersionsRequestParams;\n  body: ListBotVersionsRequestBody;\n}\n\nexport const parseReq = (input: ListBotVersionsInput): ListBotVersionsRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['id'])}/versions`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface ListBotVersionsResponse {\n  versions: {\n    id: string;\n    name: string;\n    description?: string;\n  }[];\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetBotVersionRequestHeaders {}\n\nexport interface GetBotVersionRequestQuery {}\n\nexport interface GetBotVersionRequestParams {\n  id: string;\n  versionId: string;\n}\n\nexport interface GetBotVersionRequestBody {}\n\nexport type GetBotVersionInput = GetBotVersionRequestBody & GetBotVersionRequestHeaders & GetBotVersionRequestQuery & GetBotVersionRequestParams\n\nexport type GetBotVersionRequest = {\n  headers: GetBotVersionRequestHeaders;\n  query: GetBotVersionRequestQuery;\n  params: GetBotVersionRequestParams;\n  body: GetBotVersionRequestBody;\n}\n\nexport const parseReq = (input: GetBotVersionInput): GetBotVersionRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['id'])}/versions/${encodeURIComponent(input['versionId'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'], 'versionId': input['versionId'] },\n    body: {  },\n  }\n}\n\nexport interface GetBotVersionResponse {\n  url: string;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetBotJsonRequestHeaders {}\n\nexport interface GetBotJsonRequestQuery {}\n\nexport interface GetBotJsonRequestParams {\n  id: string;\n}\n\nexport interface GetBotJsonRequestBody {}\n\nexport type GetBotJsonInput = GetBotJsonRequestBody & GetBotJsonRequestHeaders & GetBotJsonRequestQuery & GetBotJsonRequestParams\n\nexport type GetBotJsonRequest = {\n  headers: GetBotJsonRequestHeaders;\n  query: GetBotJsonRequestQuery;\n  params: GetBotJsonRequestParams;\n  body: GetBotJsonRequestBody;\n}\n\nexport const parseReq = (input: GetBotJsonInput): GetBotJsonRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['id'])}/bot-json`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetBotJsonResponse {\n  [k: string]: any;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface PublishFromBotJsonRequestHeaders {}\n\nexport interface PublishFromBotJsonRequestQuery {}\n\nexport interface PublishFromBotJsonRequestParams {\n  id: string;\n}\n\nexport interface PublishFromBotJsonRequestBody {\n  botJson: {\n    [k: string]: any;\n  };\n}\n\nexport type PublishFromBotJsonInput = PublishFromBotJsonRequestBody & PublishFromBotJsonRequestHeaders & PublishFromBotJsonRequestQuery & PublishFromBotJsonRequestParams\n\nexport type PublishFromBotJsonRequest = {\n  headers: PublishFromBotJsonRequestHeaders;\n  query: PublishFromBotJsonRequestQuery;\n  params: PublishFromBotJsonRequestParams;\n  body: PublishFromBotJsonRequestBody;\n}\n\nexport const parseReq = (input: PublishFromBotJsonInput): PublishFromBotJsonRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['id'])}/publish-from-bot-json`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: { 'botJson': input['botJson'] },\n  }\n}\n\nexport interface PublishFromBotJsonResponse {\n  [k: string]: any;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CreateBotVersionRequestHeaders {}\n\nexport interface CreateBotVersionRequestQuery {}\n\nexport interface CreateBotVersionRequestParams {\n  id: string;\n}\n\nexport interface CreateBotVersionRequestBody {\n  name: string;\n  description?: string;\n}\n\nexport type CreateBotVersionInput = CreateBotVersionRequestBody & CreateBotVersionRequestHeaders & CreateBotVersionRequestQuery & CreateBotVersionRequestParams\n\nexport type CreateBotVersionRequest = {\n  headers: CreateBotVersionRequestHeaders;\n  query: CreateBotVersionRequestQuery;\n  params: CreateBotVersionRequestParams;\n  body: CreateBotVersionRequestBody;\n}\n\nexport const parseReq = (input: CreateBotVersionInput): CreateBotVersionRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['id'])}/versions`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: { 'name': input['name'], 'description': input['description'] },\n  }\n}\n\nexport interface CreateBotVersionResponse {\n  version: {\n    id: string;\n    name: string;\n    description?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface DeployBotVersionRequestHeaders {}\n\nexport interface DeployBotVersionRequestQuery {}\n\nexport interface DeployBotVersionRequestParams {\n  id: string;\n}\n\nexport interface DeployBotVersionRequestBody {\n  versionId: string;\n}\n\nexport type DeployBotVersionInput = DeployBotVersionRequestBody & DeployBotVersionRequestHeaders & DeployBotVersionRequestQuery & DeployBotVersionRequestParams\n\nexport type DeployBotVersionRequest = {\n  headers: DeployBotVersionRequestHeaders;\n  query: DeployBotVersionRequestQuery;\n  params: DeployBotVersionRequestParams;\n  body: DeployBotVersionRequestBody;\n}\n\nexport const parseReq = (input: DeployBotVersionInput): DeployBotVersionRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['id'])}/versions/deploy`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: { 'versionId': input['versionId'] },\n  }\n}\n\nexport interface DeployBotVersionResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CreateIntegrationShareableIdRequestHeaders {}\n\nexport interface CreateIntegrationShareableIdRequestQuery {\n  integrationInstanceAlias?: string;\n}\n\nexport interface CreateIntegrationShareableIdRequestParams {\n  botId: string;\n  integrationId: string;\n}\n\nexport interface CreateIntegrationShareableIdRequestBody {}\n\nexport type CreateIntegrationShareableIdInput = CreateIntegrationShareableIdRequestBody & CreateIntegrationShareableIdRequestHeaders & CreateIntegrationShareableIdRequestQuery & CreateIntegrationShareableIdRequestParams\n\nexport type CreateIntegrationShareableIdRequest = {\n  headers: CreateIntegrationShareableIdRequestHeaders;\n  query: CreateIntegrationShareableIdRequestQuery;\n  params: CreateIntegrationShareableIdRequestParams;\n  body: CreateIntegrationShareableIdRequestBody;\n}\n\nexport const parseReq = (input: CreateIntegrationShareableIdInput): CreateIntegrationShareableIdRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['botId'])}/integrations/${encodeURIComponent(input['integrationId'])}/shareable-id`,\n    headers: {  },\n    query: { 'integrationInstanceAlias': input['integrationInstanceAlias'] },\n    params: { 'botId': input['botId'], 'integrationId': input['integrationId'] },\n    body: {  },\n  }\n}\n\nexport interface CreateIntegrationShareableIdResponse {\n  shareableId: string;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface DeleteIntegrationShareableIdRequestHeaders {}\n\nexport interface DeleteIntegrationShareableIdRequestQuery {\n  integrationInstanceAlias?: string;\n}\n\nexport interface DeleteIntegrationShareableIdRequestParams {\n  botId: string;\n  integrationId: string;\n}\n\nexport interface DeleteIntegrationShareableIdRequestBody {}\n\nexport type DeleteIntegrationShareableIdInput = DeleteIntegrationShareableIdRequestBody & DeleteIntegrationShareableIdRequestHeaders & DeleteIntegrationShareableIdRequestQuery & DeleteIntegrationShareableIdRequestParams\n\nexport type DeleteIntegrationShareableIdRequest = {\n  headers: DeleteIntegrationShareableIdRequestHeaders;\n  query: DeleteIntegrationShareableIdRequestQuery;\n  params: DeleteIntegrationShareableIdRequestParams;\n  body: DeleteIntegrationShareableIdRequestBody;\n}\n\nexport const parseReq = (input: DeleteIntegrationShareableIdInput): DeleteIntegrationShareableIdRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['botId'])}/integrations/${encodeURIComponent(input['integrationId'])}/shareable-id`,\n    headers: {  },\n    query: { 'integrationInstanceAlias': input['integrationInstanceAlias'] },\n    params: { 'botId': input['botId'], 'integrationId': input['integrationId'] },\n    body: {  },\n  }\n}\n\nexport interface DeleteIntegrationShareableIdResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetIntegrationShareableIdRequestHeaders {}\n\nexport interface GetIntegrationShareableIdRequestQuery {\n  integrationInstanceAlias?: string;\n}\n\nexport interface GetIntegrationShareableIdRequestParams {\n  botId: string;\n  integrationId: string;\n}\n\nexport interface GetIntegrationShareableIdRequestBody {}\n\nexport type GetIntegrationShareableIdInput = GetIntegrationShareableIdRequestBody & GetIntegrationShareableIdRequestHeaders & GetIntegrationShareableIdRequestQuery & GetIntegrationShareableIdRequestParams\n\nexport type GetIntegrationShareableIdRequest = {\n  headers: GetIntegrationShareableIdRequestHeaders;\n  query: GetIntegrationShareableIdRequestQuery;\n  params: GetIntegrationShareableIdRequestParams;\n  body: GetIntegrationShareableIdRequestBody;\n}\n\nexport const parseReq = (input: GetIntegrationShareableIdInput): GetIntegrationShareableIdRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['botId'])}/integrations/${encodeURIComponent(input['integrationId'])}/shareable-id`,\n    headers: {  },\n    query: { 'integrationInstanceAlias': input['integrationInstanceAlias'] },\n    params: { 'botId': input['botId'], 'integrationId': input['integrationId'] },\n    body: {  },\n  }\n}\n\nexport interface GetIntegrationShareableIdResponse {\n  shareableId: string;\n  isExpired: boolean;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface UnlinkSandboxedConversationsRequestHeaders {}\n\nexport interface UnlinkSandboxedConversationsRequestQuery {\n  integrationInstanceAlias?: string;\n}\n\nexport interface UnlinkSandboxedConversationsRequestParams {\n  botId: string;\n  integrationId: string;\n}\n\nexport interface UnlinkSandboxedConversationsRequestBody {}\n\nexport type UnlinkSandboxedConversationsInput = UnlinkSandboxedConversationsRequestBody & UnlinkSandboxedConversationsRequestHeaders & UnlinkSandboxedConversationsRequestQuery & UnlinkSandboxedConversationsRequestParams\n\nexport type UnlinkSandboxedConversationsRequest = {\n  headers: UnlinkSandboxedConversationsRequestHeaders;\n  query: UnlinkSandboxedConversationsRequestQuery;\n  params: UnlinkSandboxedConversationsRequestParams;\n  body: UnlinkSandboxedConversationsRequestBody;\n}\n\nexport const parseReq = (input: UnlinkSandboxedConversationsInput): UnlinkSandboxedConversationsRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['botId'])}/integrations/${encodeURIComponent(input['integrationId'])}/sandboxed-conversations`,\n    headers: {  },\n    query: { 'integrationInstanceAlias': input['integrationInstanceAlias'] },\n    params: { 'botId': input['botId'], 'integrationId': input['integrationId'] },\n    body: {  },\n  }\n}\n\nexport interface UnlinkSandboxedConversationsResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListBotApiKeysRequestHeaders {}\n\nexport interface ListBotApiKeysRequestQuery {\n  botId: string;\n}\n\nexport interface ListBotApiKeysRequestParams {}\n\nexport interface ListBotApiKeysRequestBody {}\n\nexport type ListBotApiKeysInput = ListBotApiKeysRequestBody & ListBotApiKeysRequestHeaders & ListBotApiKeysRequestQuery & ListBotApiKeysRequestParams\n\nexport type ListBotApiKeysRequest = {\n  headers: ListBotApiKeysRequestHeaders;\n  query: ListBotApiKeysRequestQuery;\n  params: ListBotApiKeysRequestParams;\n  body: ListBotApiKeysRequestBody;\n}\n\nexport const parseReq = (input: ListBotApiKeysInput): ListBotApiKeysRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/baks`,\n    headers: {  },\n    query: { 'botId': input['botId'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListBotApiKeysResponse {\n  baks: {\n    id: string;\n    createdAt: string;\n    note: string;\n  }[];\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CreateBotApiKeyRequestHeaders {}\n\nexport interface CreateBotApiKeyRequestQuery {}\n\nexport interface CreateBotApiKeyRequestParams {}\n\nexport interface CreateBotApiKeyRequestBody {\n  botId: string;\n  note?: string;\n}\n\nexport type CreateBotApiKeyInput = CreateBotApiKeyRequestBody & CreateBotApiKeyRequestHeaders & CreateBotApiKeyRequestQuery & CreateBotApiKeyRequestParams\n\nexport type CreateBotApiKeyRequest = {\n  headers: CreateBotApiKeyRequestHeaders;\n  query: CreateBotApiKeyRequestQuery;\n  params: CreateBotApiKeyRequestParams;\n  body: CreateBotApiKeyRequestBody;\n}\n\nexport const parseReq = (input: CreateBotApiKeyInput): CreateBotApiKeyRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/baks`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'botId': input['botId'], 'note': input['note'] },\n  }\n}\n\nexport interface CreateBotApiKeyResponse {\n  id: string;\n  createdAt: string;\n  note: string;\n  /**\n   * The BAK value. This will only be returned here when created and cannot be retrieved later.\n   */\n  value: string;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface DeleteBotApiKeyRequestHeaders {}\n\nexport interface DeleteBotApiKeyRequestQuery {}\n\nexport interface DeleteBotApiKeyRequestParams {\n  id: string;\n}\n\nexport interface DeleteBotApiKeyRequestBody {}\n\nexport type DeleteBotApiKeyInput = DeleteBotApiKeyRequestBody & DeleteBotApiKeyRequestHeaders & DeleteBotApiKeyRequestQuery & DeleteBotApiKeyRequestParams\n\nexport type DeleteBotApiKeyRequest = {\n  headers: DeleteBotApiKeyRequestHeaders;\n  query: DeleteBotApiKeyRequestQuery;\n  params: DeleteBotApiKeyRequestParams;\n  body: DeleteBotApiKeyRequestBody;\n}\n\nexport const parseReq = (input: DeleteBotApiKeyInput): DeleteBotApiKeyRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/baks/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface DeleteBotApiKeyResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetBotAllowlistRequestHeaders {}\n\nexport interface GetBotAllowlistRequestQuery {}\n\nexport interface GetBotAllowlistRequestParams {\n  botId: string;\n}\n\nexport interface GetBotAllowlistRequestBody {}\n\nexport type GetBotAllowlistInput = GetBotAllowlistRequestBody & GetBotAllowlistRequestHeaders & GetBotAllowlistRequestQuery & GetBotAllowlistRequestParams\n\nexport type GetBotAllowlistRequest = {\n  headers: GetBotAllowlistRequestHeaders;\n  query: GetBotAllowlistRequestQuery;\n  params: GetBotAllowlistRequestParams;\n  body: GetBotAllowlistRequestBody;\n}\n\nexport const parseReq = (input: GetBotAllowlistInput): GetBotAllowlistRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['botId'])}/allowlist`,\n    headers: {  },\n    query: {  },\n    params: { 'botId': input['botId'] },\n    body: {  },\n  }\n}\n\nexport interface GetBotAllowlistResponse {\n  /**\n   * Allowlist setting of the bot\n   */\n  setting: \"ALL_WORKSPACE_USERS\" | \"SELECTED_USERS\";\n  users: {\n    id: string;\n  }[];\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface UpdateBotAllowlistRequestHeaders {}\n\nexport interface UpdateBotAllowlistRequestQuery {}\n\nexport interface UpdateBotAllowlistRequestParams {\n  botId: string;\n}\n\nexport interface UpdateBotAllowlistRequestBody {\n  /**\n   * Allowlist setting of the bot\n   */\n  setting?: \"ALL_WORKSPACE_USERS\" | \"SELECTED_USERS\";\n  users?: {\n    /**\n     * If `true`, the user should be added to the allowlist. If `false`, the user should be removed from the allowlist. This performs a partial update, so any existing users not included here will be kept in the allowlist\n     */\n    [k: string]: boolean;\n  };\n}\n\nexport type UpdateBotAllowlistInput = UpdateBotAllowlistRequestBody & UpdateBotAllowlistRequestHeaders & UpdateBotAllowlistRequestQuery & UpdateBotAllowlistRequestParams\n\nexport type UpdateBotAllowlistRequest = {\n  headers: UpdateBotAllowlistRequestHeaders;\n  query: UpdateBotAllowlistRequestQuery;\n  params: UpdateBotAllowlistRequestParams;\n  body: UpdateBotAllowlistRequestBody;\n}\n\nexport const parseReq = (input: UpdateBotAllowlistInput): UpdateBotAllowlistRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['botId'])}/allowlist`,\n    headers: {  },\n    query: {  },\n    params: { 'botId': input['botId'] },\n    body: { 'setting': input['setting'], 'users': input['users'] },\n  }\n}\n\nexport interface UpdateBotAllowlistResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface MigrateWorkspaceToV4RequestHeaders {}\n\nexport interface MigrateWorkspaceToV4RequestQuery {}\n\nexport interface MigrateWorkspaceToV4RequestParams {\n  id: string;\n}\n\nexport interface MigrateWorkspaceToV4RequestBody {}\n\nexport type MigrateWorkspaceToV4Input = MigrateWorkspaceToV4RequestBody & MigrateWorkspaceToV4RequestHeaders & MigrateWorkspaceToV4RequestQuery & MigrateWorkspaceToV4RequestParams\n\nexport type MigrateWorkspaceToV4Request = {\n  headers: MigrateWorkspaceToV4RequestHeaders;\n  query: MigrateWorkspaceToV4RequestQuery;\n  params: MigrateWorkspaceToV4RequestParams;\n  body: MigrateWorkspaceToV4RequestBody;\n}\n\nexport const parseReq = (input: MigrateWorkspaceToV4Input): MigrateWorkspaceToV4Request & { path: string } => {\n  return {\n    path: `/v1/admin/workspaces/${encodeURIComponent(input['id'])}/migrate-to-v4`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface MigrateWorkspaceToV4Response {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListWorkspaceInvoicesRequestHeaders {}\n\nexport interface ListWorkspaceInvoicesRequestQuery {}\n\nexport interface ListWorkspaceInvoicesRequestParams {\n  id: string;\n}\n\nexport interface ListWorkspaceInvoicesRequestBody {}\n\nexport type ListWorkspaceInvoicesInput = ListWorkspaceInvoicesRequestBody & ListWorkspaceInvoicesRequestHeaders & ListWorkspaceInvoicesRequestQuery & ListWorkspaceInvoicesRequestParams\n\nexport type ListWorkspaceInvoicesRequest = {\n  headers: ListWorkspaceInvoicesRequestHeaders;\n  query: ListWorkspaceInvoicesRequestQuery;\n  params: ListWorkspaceInvoicesRequestParams;\n  body: ListWorkspaceInvoicesRequestBody;\n}\n\nexport const parseReq = (input: ListWorkspaceInvoicesInput): ListWorkspaceInvoicesRequest & { path: string } => {\n  return {\n    path: `/v1/admin/workspaces/${encodeURIComponent(input['id'])}/billing/invoices`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface ListWorkspaceInvoicesResponse {\n  invoices: {\n    id: string;\n    period: {\n      month: number;\n      year: number;\n    };\n    /**\n     * Date on which the invoice was generated.\n     */\n    date: string;\n    /**\n     * Total amount to pay of the invoice.\n     */\n    amount: number;\n    /**\n     * Currency of the invoice amount.\n     */\n    currency: string;\n    paymentStatus: (\"deleted\" | \"draft\" | \"open\" | \"paid\" | \"uncollectible\" | \"void\") | null;\n    /**\n     * Date on which the invoice is due.\n     */\n    dueDate?: string;\n    /**\n     * Number of times payment has been unsuccessfully attempted on the invoice.\n     */\n    paymentAttemptCount: number | null;\n    /**\n     * Date on which the next payment attempt will be made.\n     */\n    nextPaymentAttemptDate: string | null;\n    /**\n     * URL to download the PDF file of the invoice.\n     */\n    pdfUrl: string;\n  }[];\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetUpcomingInvoiceRequestHeaders {}\n\nexport interface GetUpcomingInvoiceRequestQuery {}\n\nexport interface GetUpcomingInvoiceRequestParams {\n  id: string;\n}\n\nexport interface GetUpcomingInvoiceRequestBody {}\n\nexport type GetUpcomingInvoiceInput = GetUpcomingInvoiceRequestBody & GetUpcomingInvoiceRequestHeaders & GetUpcomingInvoiceRequestQuery & GetUpcomingInvoiceRequestParams\n\nexport type GetUpcomingInvoiceRequest = {\n  headers: GetUpcomingInvoiceRequestHeaders;\n  query: GetUpcomingInvoiceRequestQuery;\n  params: GetUpcomingInvoiceRequestParams;\n  body: GetUpcomingInvoiceRequestBody;\n}\n\nexport const parseReq = (input: GetUpcomingInvoiceInput): GetUpcomingInvoiceRequest & { path: string } => {\n  return {\n    path: `/v1/admin/workspaces/${encodeURIComponent(input['id'])}/billing/upcoming-invoice`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetUpcomingInvoiceResponse {\n  /**\n   * Total amount to pay of the invoice.\n   */\n  total: number;\n  /**\n   * List of items included in the invoice.\n   */\n  lineItems: {\n    id: string;\n    /**\n     * Description of the line item.\n     */\n    description: string;\n    /**\n     * Total amount to pay (in cents) of the line item.\n     */\n    totalInCents: number;\n    /**\n     * Three-letter ISO currency code, in lowercase.\n     */\n    currency: string;\n    /**\n     * Price per unit (in cents) of the line item.\n     */\n    pricePerUnitInCents: number | null;\n    /**\n     * The quantity of the subscription, if the line item is a subscription or a proration.\n     */\n    quantity: number | null;\n    /**\n     * Type of the line item.\n     */\n    type: \"invoiceitem\" | \"subscription\";\n    /**\n     * Start date of the line item period.\n     */\n    periodStart: string | null;\n    /**\n     * End date of the line item period.\n     */\n    periodEnd: string | null;\n  }[];\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ChargeWorkspaceUnpaidInvoicesRequestHeaders {}\n\nexport interface ChargeWorkspaceUnpaidInvoicesRequestQuery {}\n\nexport interface ChargeWorkspaceUnpaidInvoicesRequestParams {\n  id: string;\n}\n\nexport interface ChargeWorkspaceUnpaidInvoicesRequestBody {\n  /**\n   * @minItems 1\n   */\n  invoiceIds?: string[];\n}\n\nexport type ChargeWorkspaceUnpaidInvoicesInput = ChargeWorkspaceUnpaidInvoicesRequestBody & ChargeWorkspaceUnpaidInvoicesRequestHeaders & ChargeWorkspaceUnpaidInvoicesRequestQuery & ChargeWorkspaceUnpaidInvoicesRequestParams\n\nexport type ChargeWorkspaceUnpaidInvoicesRequest = {\n  headers: ChargeWorkspaceUnpaidInvoicesRequestHeaders;\n  query: ChargeWorkspaceUnpaidInvoicesRequestQuery;\n  params: ChargeWorkspaceUnpaidInvoicesRequestParams;\n  body: ChargeWorkspaceUnpaidInvoicesRequestBody;\n}\n\nexport const parseReq = (input: ChargeWorkspaceUnpaidInvoicesInput): ChargeWorkspaceUnpaidInvoicesRequest & { path: string } => {\n  return {\n    path: `/v1/admin/workspaces/${encodeURIComponent(input['id'])}/billing/invoices/charge-unpaid`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: { 'invoiceIds': input['invoiceIds'] },\n  }\n}\n\nexport interface ChargeWorkspaceUnpaidInvoicesResponse {\n  /**\n   * Invoices that were successfully charged by this request.\n   */\n  chargedInvoices: {\n    id: string;\n    amount: number;\n  }[];\n  /**\n   * Invoices that failed to be charged by this request.\n   */\n  failedInvoices: {\n    id: string;\n    amount: number;\n    failedReason: string;\n  }[];\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CreateWorkspaceRequestHeaders {}\n\nexport interface CreateWorkspaceRequestQuery {}\n\nexport interface CreateWorkspaceRequestParams {}\n\nexport interface CreateWorkspaceRequestBody {\n  name: string;\n  billingVersion?: \"v4\";\n}\n\nexport type CreateWorkspaceInput = CreateWorkspaceRequestBody & CreateWorkspaceRequestHeaders & CreateWorkspaceRequestQuery & CreateWorkspaceRequestParams\n\nexport type CreateWorkspaceRequest = {\n  headers: CreateWorkspaceRequestHeaders;\n  query: CreateWorkspaceRequestQuery;\n  params: CreateWorkspaceRequestParams;\n  body: CreateWorkspaceRequestBody;\n}\n\nexport const parseReq = (input: CreateWorkspaceInput): CreateWorkspaceRequest & { path: string } => {\n  return {\n    path: `/v1/admin/workspaces`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'name': input['name'], 'billingVersion': input['billingVersion'] },\n  }\n}\n\nexport interface CreateWorkspaceResponse {\n  id: string;\n  name: string;\n  ownerId: string;\n  createdAt: string;\n  updatedAt: string;\n  botCount: number;\n  billingVersion: \"v1\" | \"v2\" | \"v3\" | \"v4\";\n  plan: \"community\" | \"team\" | \"enterprise\" | \"plus\" | \"managed\";\n  blocked: boolean;\n  spendingLimit: number;\n  about?: string;\n  profilePicture?: string;\n  contactEmail?: string;\n  website?: string;\n  socialAccounts?: string[];\n  isPublic?: boolean;\n  handle?: string;\n  activeTrialId: string | null;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetPublicWorkspaceRequestHeaders {}\n\nexport interface GetPublicWorkspaceRequestQuery {}\n\nexport interface GetPublicWorkspaceRequestParams {\n  id: string;\n}\n\nexport interface GetPublicWorkspaceRequestBody {}\n\nexport type GetPublicWorkspaceInput = GetPublicWorkspaceRequestBody & GetPublicWorkspaceRequestHeaders & GetPublicWorkspaceRequestQuery & GetPublicWorkspaceRequestParams\n\nexport type GetPublicWorkspaceRequest = {\n  headers: GetPublicWorkspaceRequestHeaders;\n  query: GetPublicWorkspaceRequestQuery;\n  params: GetPublicWorkspaceRequestParams;\n  body: GetPublicWorkspaceRequestBody;\n}\n\nexport const parseReq = (input: GetPublicWorkspaceInput): GetPublicWorkspaceRequest & { path: string } => {\n  return {\n    path: `/v1/admin/workspaces/${encodeURIComponent(input['id'])}/public`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetPublicWorkspaceResponse {\n  id: string;\n  name: string;\n  createdAt: string;\n  updatedAt: string;\n  about?: string;\n  profilePicture?: string;\n  contactEmail?: string;\n  website?: string;\n  socialAccounts?: string[];\n  handle?: string;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetWorkspaceRequestHeaders {}\n\nexport interface GetWorkspaceRequestQuery {}\n\nexport interface GetWorkspaceRequestParams {\n  id: string;\n}\n\nexport interface GetWorkspaceRequestBody {}\n\nexport type GetWorkspaceInput = GetWorkspaceRequestBody & GetWorkspaceRequestHeaders & GetWorkspaceRequestQuery & GetWorkspaceRequestParams\n\nexport type GetWorkspaceRequest = {\n  headers: GetWorkspaceRequestHeaders;\n  query: GetWorkspaceRequestQuery;\n  params: GetWorkspaceRequestParams;\n  body: GetWorkspaceRequestBody;\n}\n\nexport const parseReq = (input: GetWorkspaceInput): GetWorkspaceRequest & { path: string } => {\n  return {\n    path: `/v1/admin/workspaces/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetWorkspaceResponse {\n  id: string;\n  name: string;\n  ownerId: string;\n  createdAt: string;\n  updatedAt: string;\n  botCount: number;\n  billingVersion: \"v1\" | \"v2\" | \"v3\" | \"v4\";\n  plan: \"community\" | \"team\" | \"enterprise\" | \"plus\" | \"managed\";\n  blocked: boolean;\n  spendingLimit: number;\n  about?: string;\n  profilePicture?: string;\n  contactEmail?: string;\n  website?: string;\n  socialAccounts?: string[];\n  isPublic?: boolean;\n  handle?: string;\n  activeTrialId: string | null;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListWorkspaceUsagesRequestHeaders {}\n\nexport interface ListWorkspaceUsagesRequestQuery {\n  type:\n    | \"invocation_timeout\"\n    | \"invocation_calls\"\n    | \"storage_count\"\n    | \"bot_count\"\n    | \"knowledgebase_vector_storage\"\n    | \"workspace_ratelimit\"\n    | \"table_row_count\"\n    | \"workspace_member_count\"\n    | \"integrations_owned_count\"\n    | \"ai_spend\"\n    | \"openai_spend\"\n    | \"bing_search_spend\"\n    | \"always_alive\"\n    | \"indexed_file_count\"\n    | \"file_max_size_bytes\";\n  period?: string;\n}\n\nexport interface ListWorkspaceUsagesRequestParams {\n  id: string;\n}\n\nexport interface ListWorkspaceUsagesRequestBody {}\n\nexport type ListWorkspaceUsagesInput = ListWorkspaceUsagesRequestBody & ListWorkspaceUsagesRequestHeaders & ListWorkspaceUsagesRequestQuery & ListWorkspaceUsagesRequestParams\n\nexport type ListWorkspaceUsagesRequest = {\n  headers: ListWorkspaceUsagesRequestHeaders;\n  query: ListWorkspaceUsagesRequestQuery;\n  params: ListWorkspaceUsagesRequestParams;\n  body: ListWorkspaceUsagesRequestBody;\n}\n\nexport const parseReq = (input: ListWorkspaceUsagesInput): ListWorkspaceUsagesRequest & { path: string } => {\n  return {\n    path: `/v1/admin/workspaces/${encodeURIComponent(input['id'])}/usages`,\n    headers: {  },\n    query: { 'type': input['type'], 'period': input['period'] },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface ListWorkspaceUsagesResponse {\n  usages: {\n    /**\n     * Id of the usage that it is linked to. It can either be a workspace id or a bot id\n     */\n    id: string;\n    /**\n     * Period of the quota that it is applied to\n     */\n    period: string;\n    /**\n     * Value of the current usage\n     */\n    value: number;\n    /**\n     * Quota of the current usage\n     */\n    quota: number;\n    /**\n     * Usage type that can be used\n     */\n    type:\n      | \"invocation_timeout\"\n      | \"invocation_calls\"\n      | \"storage_count\"\n      | \"bot_count\"\n      | \"knowledgebase_vector_storage\"\n      | \"workspace_ratelimit\"\n      | \"table_row_count\"\n      | \"workspace_member_count\"\n      | \"integrations_owned_count\"\n      | \"ai_spend\"\n      | \"openai_spend\"\n      | \"bing_search_spend\"\n      | \"always_alive\"\n      | \"indexed_file_count\"\n      | \"file_max_size_bytes\";\n  }[];\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface BreakDownWorkspaceUsageByBotRequestHeaders {}\n\nexport interface BreakDownWorkspaceUsageByBotRequestQuery {\n  type:\n    | \"invocation_timeout\"\n    | \"invocation_calls\"\n    | \"storage_count\"\n    | \"bot_count\"\n    | \"knowledgebase_vector_storage\"\n    | \"workspace_ratelimit\"\n    | \"table_row_count\"\n    | \"workspace_member_count\"\n    | \"integrations_owned_count\"\n    | \"ai_spend\"\n    | \"openai_spend\"\n    | \"bing_search_spend\"\n    | \"always_alive\"\n    | \"indexed_file_count\"\n    | \"file_max_size_bytes\";\n  period?: string;\n}\n\nexport interface BreakDownWorkspaceUsageByBotRequestParams {\n  id: string;\n}\n\nexport interface BreakDownWorkspaceUsageByBotRequestBody {}\n\nexport type BreakDownWorkspaceUsageByBotInput = BreakDownWorkspaceUsageByBotRequestBody & BreakDownWorkspaceUsageByBotRequestHeaders & BreakDownWorkspaceUsageByBotRequestQuery & BreakDownWorkspaceUsageByBotRequestParams\n\nexport type BreakDownWorkspaceUsageByBotRequest = {\n  headers: BreakDownWorkspaceUsageByBotRequestHeaders;\n  query: BreakDownWorkspaceUsageByBotRequestQuery;\n  params: BreakDownWorkspaceUsageByBotRequestParams;\n  body: BreakDownWorkspaceUsageByBotRequestBody;\n}\n\nexport const parseReq = (input: BreakDownWorkspaceUsageByBotInput): BreakDownWorkspaceUsageByBotRequest & { path: string } => {\n  return {\n    path: `/v1/admin/workspaces/${encodeURIComponent(input['id'])}/usages/by-bot`,\n    headers: {  },\n    query: { 'type': input['type'], 'period': input['period'] },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface BreakDownWorkspaceUsageByBotResponse {\n  data: {\n    botId: string;\n    value: number;\n  }[];\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetAllWorkspaceQuotaCompletionRequestHeaders {}\n\nexport interface GetAllWorkspaceQuotaCompletionRequestQuery {}\n\nexport interface GetAllWorkspaceQuotaCompletionRequestParams {}\n\nexport interface GetAllWorkspaceQuotaCompletionRequestBody {}\n\nexport type GetAllWorkspaceQuotaCompletionInput = GetAllWorkspaceQuotaCompletionRequestBody & GetAllWorkspaceQuotaCompletionRequestHeaders & GetAllWorkspaceQuotaCompletionRequestQuery & GetAllWorkspaceQuotaCompletionRequestParams\n\nexport type GetAllWorkspaceQuotaCompletionRequest = {\n  headers: GetAllWorkspaceQuotaCompletionRequestHeaders;\n  query: GetAllWorkspaceQuotaCompletionRequestQuery;\n  params: GetAllWorkspaceQuotaCompletionRequestParams;\n  body: GetAllWorkspaceQuotaCompletionRequestBody;\n}\n\nexport const parseReq = (_: GetAllWorkspaceQuotaCompletionInput): GetAllWorkspaceQuotaCompletionRequest & { path: string } => {\n  return {\n    path: `/v1/admin/workspaces/usages/quota-completion`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface GetAllWorkspaceQuotaCompletionResponse {\n  [k: string]: {\n    type:\n      | \"invocation_timeout\"\n      | \"invocation_calls\"\n      | \"storage_count\"\n      | \"bot_count\"\n      | \"knowledgebase_vector_storage\"\n      | \"workspace_ratelimit\"\n      | \"table_row_count\"\n      | \"workspace_member_count\"\n      | \"integrations_owned_count\"\n      | \"ai_spend\"\n      | \"openai_spend\"\n      | \"bing_search_spend\"\n      | \"always_alive\"\n      | \"indexed_file_count\"\n      | \"file_max_size_bytes\";\n    completion: number;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetWorkspaceQuotaRequestHeaders {}\n\nexport interface GetWorkspaceQuotaRequestQuery {\n  type:\n    | \"invocation_timeout\"\n    | \"invocation_calls\"\n    | \"storage_count\"\n    | \"bot_count\"\n    | \"knowledgebase_vector_storage\"\n    | \"workspace_ratelimit\"\n    | \"table_row_count\"\n    | \"workspace_member_count\"\n    | \"integrations_owned_count\"\n    | \"ai_spend\"\n    | \"openai_spend\"\n    | \"bing_search_spend\"\n    | \"always_alive\"\n    | \"indexed_file_count\"\n    | \"file_max_size_bytes\";\n  period?: string;\n}\n\nexport interface GetWorkspaceQuotaRequestParams {\n  id: string;\n}\n\nexport interface GetWorkspaceQuotaRequestBody {}\n\nexport type GetWorkspaceQuotaInput = GetWorkspaceQuotaRequestBody & GetWorkspaceQuotaRequestHeaders & GetWorkspaceQuotaRequestQuery & GetWorkspaceQuotaRequestParams\n\nexport type GetWorkspaceQuotaRequest = {\n  headers: GetWorkspaceQuotaRequestHeaders;\n  query: GetWorkspaceQuotaRequestQuery;\n  params: GetWorkspaceQuotaRequestParams;\n  body: GetWorkspaceQuotaRequestBody;\n}\n\nexport const parseReq = (input: GetWorkspaceQuotaInput): GetWorkspaceQuotaRequest & { path: string } => {\n  return {\n    path: `/v1/admin/workspaces/${encodeURIComponent(input['id'])}/quota`,\n    headers: {  },\n    query: { 'type': input['type'], 'period': input['period'] },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetWorkspaceQuotaResponse {\n  quota: {\n    /**\n     * Period of the quota that it is applied to\n     */\n    period: string;\n    /**\n     * Value of the quota that is used\n     */\n    value: number;\n    /**\n     * Usage type that can be used\n     */\n    type:\n      | \"invocation_timeout\"\n      | \"invocation_calls\"\n      | \"storage_count\"\n      | \"bot_count\"\n      | \"knowledgebase_vector_storage\"\n      | \"workspace_ratelimit\"\n      | \"table_row_count\"\n      | \"workspace_member_count\"\n      | \"integrations_owned_count\"\n      | \"ai_spend\"\n      | \"openai_spend\"\n      | \"bing_search_spend\"\n      | \"always_alive\"\n      | \"indexed_file_count\"\n      | \"file_max_size_bytes\";\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListWorkspaceQuotasRequestHeaders {}\n\nexport interface ListWorkspaceQuotasRequestQuery {\n  period?: string;\n}\n\nexport interface ListWorkspaceQuotasRequestParams {\n  id: string;\n}\n\nexport interface ListWorkspaceQuotasRequestBody {}\n\nexport type ListWorkspaceQuotasInput = ListWorkspaceQuotasRequestBody & ListWorkspaceQuotasRequestHeaders & ListWorkspaceQuotasRequestQuery & ListWorkspaceQuotasRequestParams\n\nexport type ListWorkspaceQuotasRequest = {\n  headers: ListWorkspaceQuotasRequestHeaders;\n  query: ListWorkspaceQuotasRequestQuery;\n  params: ListWorkspaceQuotasRequestParams;\n  body: ListWorkspaceQuotasRequestBody;\n}\n\nexport const parseReq = (input: ListWorkspaceQuotasInput): ListWorkspaceQuotasRequest & { path: string } => {\n  return {\n    path: `/v1/admin/workspaces/${encodeURIComponent(input['id'])}/quotas`,\n    headers: {  },\n    query: { 'period': input['period'] },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface ListWorkspaceQuotasResponse {\n  quotas: {\n    /**\n     * Period of the quota that it is applied to\n     */\n    period: string;\n    /**\n     * Value of the quota that is used\n     */\n    value: number;\n    /**\n     * Usage type that can be used\n     */\n    type:\n      | \"invocation_timeout\"\n      | \"invocation_calls\"\n      | \"storage_count\"\n      | \"bot_count\"\n      | \"knowledgebase_vector_storage\"\n      | \"workspace_ratelimit\"\n      | \"table_row_count\"\n      | \"workspace_member_count\"\n      | \"integrations_owned_count\"\n      | \"ai_spend\"\n      | \"openai_spend\"\n      | \"bing_search_spend\"\n      | \"always_alive\"\n      | \"indexed_file_count\"\n      | \"file_max_size_bytes\";\n  }[];\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface UpdateWorkspaceRequestHeaders {}\n\nexport interface UpdateWorkspaceRequestQuery {}\n\nexport interface UpdateWorkspaceRequestParams {\n  id: string;\n}\n\nexport interface UpdateWorkspaceRequestBody {\n  name?: string;\n  spendingLimit?: number;\n  about?: string;\n  profilePicture?: string;\n  contactEmail?: string;\n  website?: string;\n  /**\n   * @maxItems 5\n   */\n  socialAccounts?: string[];\n  isPublic?: boolean;\n  handle?: string;\n}\n\nexport type UpdateWorkspaceInput = UpdateWorkspaceRequestBody & UpdateWorkspaceRequestHeaders & UpdateWorkspaceRequestQuery & UpdateWorkspaceRequestParams\n\nexport type UpdateWorkspaceRequest = {\n  headers: UpdateWorkspaceRequestHeaders;\n  query: UpdateWorkspaceRequestQuery;\n  params: UpdateWorkspaceRequestParams;\n  body: UpdateWorkspaceRequestBody;\n}\n\nexport const parseReq = (input: UpdateWorkspaceInput): UpdateWorkspaceRequest & { path: string } => {\n  return {\n    path: `/v1/admin/workspaces/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: { 'name': input['name'], 'spendingLimit': input['spendingLimit'], 'about': input['about'], 'profilePicture': input['profilePicture'], 'contactEmail': input['contactEmail'], 'website': input['website'], 'socialAccounts': input['socialAccounts'], 'isPublic': input['isPublic'], 'handle': input['handle'] },\n  }\n}\n\nexport interface UpdateWorkspaceResponse {\n  id: string;\n  name: string;\n  ownerId: string;\n  createdAt: string;\n  updatedAt: string;\n  botCount: number;\n  billingVersion: \"v1\" | \"v2\" | \"v3\" | \"v4\";\n  plan: \"community\" | \"team\" | \"enterprise\" | \"plus\" | \"managed\";\n  blocked: boolean;\n  spendingLimit: number;\n  about?: string;\n  profilePicture?: string;\n  contactEmail?: string;\n  website?: string;\n  socialAccounts?: string[];\n  isPublic?: boolean;\n  handle?: string;\n  activeTrialId: string | null;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CheckHandleAvailabilityRequestHeaders {}\n\nexport interface CheckHandleAvailabilityRequestQuery {}\n\nexport interface CheckHandleAvailabilityRequestParams {}\n\nexport interface CheckHandleAvailabilityRequestBody {\n  handle: string;\n}\n\nexport type CheckHandleAvailabilityInput = CheckHandleAvailabilityRequestBody & CheckHandleAvailabilityRequestHeaders & CheckHandleAvailabilityRequestQuery & CheckHandleAvailabilityRequestParams\n\nexport type CheckHandleAvailabilityRequest = {\n  headers: CheckHandleAvailabilityRequestHeaders;\n  query: CheckHandleAvailabilityRequestQuery;\n  params: CheckHandleAvailabilityRequestParams;\n  body: CheckHandleAvailabilityRequestBody;\n}\n\nexport const parseReq = (input: CheckHandleAvailabilityInput): CheckHandleAvailabilityRequest & { path: string } => {\n  return {\n    path: `/v1/admin/workspaces/handle-availability`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'handle': input['handle'] },\n  }\n}\n\nexport interface CheckHandleAvailabilityResponse {\n  available: boolean;\n  suggestions: string[];\n  usedBy?: string;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListWorkspacesRequestHeaders {}\n\nexport interface ListWorkspacesRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n  handle?: string;\n}\n\nexport interface ListWorkspacesRequestParams {}\n\nexport interface ListWorkspacesRequestBody {}\n\nexport type ListWorkspacesInput = ListWorkspacesRequestBody & ListWorkspacesRequestHeaders & ListWorkspacesRequestQuery & ListWorkspacesRequestParams\n\nexport type ListWorkspacesRequest = {\n  headers: ListWorkspacesRequestHeaders;\n  query: ListWorkspacesRequestQuery;\n  params: ListWorkspacesRequestParams;\n  body: ListWorkspacesRequestBody;\n}\n\nexport const parseReq = (input: ListWorkspacesInput): ListWorkspacesRequest & { path: string } => {\n  return {\n    path: `/v1/admin/workspaces`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'], 'handle': input['handle'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListWorkspacesResponse {\n  workspaces: UpdateWorkspaceResponse[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\nexport interface UpdateWorkspaceResponse {\n  id: string;\n  name: string;\n  ownerId: string;\n  createdAt: string;\n  updatedAt: string;\n  botCount: number;\n  billingVersion: \"v1\" | \"v2\" | \"v3\" | \"v4\";\n  plan: \"community\" | \"team\" | \"enterprise\" | \"plus\" | \"managed\";\n  blocked: boolean;\n  spendingLimit: number;\n  about?: string;\n  profilePicture?: string;\n  contactEmail?: string;\n  website?: string;\n  socialAccounts?: string[];\n  isPublic?: boolean;\n  handle?: string;\n  activeTrialId: string | null;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListPublicWorkspacesRequestHeaders {}\n\nexport interface ListPublicWorkspacesRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n  workspaceIds?: string[];\n  search?: string;\n}\n\nexport interface ListPublicWorkspacesRequestParams {}\n\nexport interface ListPublicWorkspacesRequestBody {}\n\nexport type ListPublicWorkspacesInput = ListPublicWorkspacesRequestBody & ListPublicWorkspacesRequestHeaders & ListPublicWorkspacesRequestQuery & ListPublicWorkspacesRequestParams\n\nexport type ListPublicWorkspacesRequest = {\n  headers: ListPublicWorkspacesRequestHeaders;\n  query: ListPublicWorkspacesRequestQuery;\n  params: ListPublicWorkspacesRequestParams;\n  body: ListPublicWorkspacesRequestBody;\n}\n\nexport const parseReq = (input: ListPublicWorkspacesInput): ListPublicWorkspacesRequest & { path: string } => {\n  return {\n    path: `/v1/admin/workspaces/public`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'], 'workspaceIds': input['workspaceIds'], 'search': input['search'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListPublicWorkspacesResponse {\n  workspaces: GetPublicWorkspaceResponse[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\nexport interface GetPublicWorkspaceResponse {\n  id: string;\n  name: string;\n  createdAt: string;\n  updatedAt: string;\n  about?: string;\n  profilePicture?: string;\n  contactEmail?: string;\n  website?: string;\n  socialAccounts?: string[];\n  handle?: string;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface DeleteWorkspaceRequestHeaders {}\n\nexport interface DeleteWorkspaceRequestQuery {}\n\nexport interface DeleteWorkspaceRequestParams {\n  id: string;\n}\n\nexport interface DeleteWorkspaceRequestBody {}\n\nexport type DeleteWorkspaceInput = DeleteWorkspaceRequestBody & DeleteWorkspaceRequestHeaders & DeleteWorkspaceRequestQuery & DeleteWorkspaceRequestParams\n\nexport type DeleteWorkspaceRequest = {\n  headers: DeleteWorkspaceRequestHeaders;\n  query: DeleteWorkspaceRequestQuery;\n  params: DeleteWorkspaceRequestParams;\n  body: DeleteWorkspaceRequestBody;\n}\n\nexport const parseReq = (input: DeleteWorkspaceInput): DeleteWorkspaceRequest & { path: string } => {\n  return {\n    path: `/v1/admin/workspaces/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface DeleteWorkspaceResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetAuditRecordsRequestHeaders {}\n\nexport interface GetAuditRecordsRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n}\n\nexport interface GetAuditRecordsRequestParams {\n  id: string;\n}\n\nexport interface GetAuditRecordsRequestBody {}\n\nexport type GetAuditRecordsInput = GetAuditRecordsRequestBody & GetAuditRecordsRequestHeaders & GetAuditRecordsRequestQuery & GetAuditRecordsRequestParams\n\nexport type GetAuditRecordsRequest = {\n  headers: GetAuditRecordsRequestHeaders;\n  query: GetAuditRecordsRequestQuery;\n  params: GetAuditRecordsRequestParams;\n  body: GetAuditRecordsRequestBody;\n}\n\nexport const parseReq = (input: GetAuditRecordsInput): GetAuditRecordsRequest & { path: string } => {\n  return {\n    path: `/v1/admin/workspaces/${encodeURIComponent(input['id'])}/audit-records`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'] },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetAuditRecordsResponse {\n  records: {\n    id: string;\n    recordedAt: string;\n    userId: string | null;\n    userEmail?: string | null;\n    resourceId: string | null;\n    resourceName?: string | null;\n    value?: string | null;\n    action:\n      | \"UNKNOWN\"\n      | \"ADD_WORKSPACE_MEMBER\"\n      | \"REMOVE_WORKSPACE_MEMBER\"\n      | \"UPDATE_WORKSPACE_MEMBER\"\n      | \"CLOSE_WORKSPACE\"\n      | \"CREATE_BOT\"\n      | \"CREATE_WORKSPACE\"\n      | \"DELETE_BOT\"\n      | \"DEPLOY_BOT\"\n      | \"TRANSFER_BOT\"\n      | \"DOWNLOAD_BOT_ARCHIVE\"\n      | \"UPDATE_BOT\"\n      | \"UPDATE_BOT_CHANNEL\"\n      | \"UPDATE_BOT_CONFIG\"\n      | \"UPDATE_PAYMENT_METHOD\"\n      | \"UPDATE_WORKSPACE\"\n      | \"SET_SPENDING_LIMIT\"\n      | \"SET_AI_SPENDING_LIMIT\"\n      | \"UPDATE_WORKSPACE_BILLING_READONLY\"\n      | \"UPDATE_WORKSPACE_PLAN_READONLY\"\n      | \"UPDATE_WORKSPACE_ADDONS_READONLY\"\n      | \"EXECUTE_AUTO_RECHARGE_SUCCESS\"\n      | \"EXECUTE_AUTO_RECHARGE_FAILED\";\n  }[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface SetWorkspacePreferenceRequestHeaders {}\n\nexport interface SetWorkspacePreferenceRequestQuery {}\n\nexport interface SetWorkspacePreferenceRequestParams {\n  key: string;\n}\n\nexport interface SetWorkspacePreferenceRequestBody {\n  value?: any;\n}\n\nexport type SetWorkspacePreferenceInput = SetWorkspacePreferenceRequestBody & SetWorkspacePreferenceRequestHeaders & SetWorkspacePreferenceRequestQuery & SetWorkspacePreferenceRequestParams\n\nexport type SetWorkspacePreferenceRequest = {\n  headers: SetWorkspacePreferenceRequestHeaders;\n  query: SetWorkspacePreferenceRequestQuery;\n  params: SetWorkspacePreferenceRequestParams;\n  body: SetWorkspacePreferenceRequestBody;\n}\n\nexport const parseReq = (input: SetWorkspacePreferenceInput): SetWorkspacePreferenceRequest & { path: string } => {\n  return {\n    path: `/v1/admin/workspaces/preferences/${encodeURIComponent(input['key'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'key': input['key'] },\n    body: { 'value': input['value'] },\n  }\n}\n\nexport interface SetWorkspacePreferenceResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetWorkspacePreferenceRequestHeaders {}\n\nexport interface GetWorkspacePreferenceRequestQuery {}\n\nexport interface GetWorkspacePreferenceRequestParams {\n  key: string;\n}\n\nexport interface GetWorkspacePreferenceRequestBody {}\n\nexport type GetWorkspacePreferenceInput = GetWorkspacePreferenceRequestBody & GetWorkspacePreferenceRequestHeaders & GetWorkspacePreferenceRequestQuery & GetWorkspacePreferenceRequestParams\n\nexport type GetWorkspacePreferenceRequest = {\n  headers: GetWorkspacePreferenceRequestHeaders;\n  query: GetWorkspacePreferenceRequestQuery;\n  params: GetWorkspacePreferenceRequestParams;\n  body: GetWorkspacePreferenceRequestBody;\n}\n\nexport const parseReq = (input: GetWorkspacePreferenceInput): GetWorkspacePreferenceRequest & { path: string } => {\n  return {\n    path: `/v1/admin/workspaces/preferences/${encodeURIComponent(input['key'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'key': input['key'] },\n    body: {  },\n  }\n}\n\nexport interface GetWorkspacePreferenceResponse {\n  value?: any;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListWorkspaceMembersRequestHeaders {}\n\nexport interface ListWorkspaceMembersRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n}\n\nexport interface ListWorkspaceMembersRequestParams {}\n\nexport interface ListWorkspaceMembersRequestBody {}\n\nexport type ListWorkspaceMembersInput = ListWorkspaceMembersRequestBody & ListWorkspaceMembersRequestHeaders & ListWorkspaceMembersRequestQuery & ListWorkspaceMembersRequestParams\n\nexport type ListWorkspaceMembersRequest = {\n  headers: ListWorkspaceMembersRequestHeaders;\n  query: ListWorkspaceMembersRequestQuery;\n  params: ListWorkspaceMembersRequestParams;\n  body: ListWorkspaceMembersRequestBody;\n}\n\nexport const parseReq = (input: ListWorkspaceMembersInput): ListWorkspaceMembersRequest & { path: string } => {\n  return {\n    path: `/v1/admin/workspace-members`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListWorkspaceMembersResponse {\n  members: {\n    id: string;\n    userId?: string;\n    email: string;\n    createdAt: string;\n    role: \"viewer\" | \"billing\" | \"developer\" | \"manager\" | \"administrator\" | \"owner\";\n    profilePicture?: string;\n    displayName?: string;\n  }[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetWorkspaceMemberRequestHeaders {}\n\nexport interface GetWorkspaceMemberRequestQuery {}\n\nexport interface GetWorkspaceMemberRequestParams {}\n\nexport interface GetWorkspaceMemberRequestBody {}\n\nexport type GetWorkspaceMemberInput = GetWorkspaceMemberRequestBody & GetWorkspaceMemberRequestHeaders & GetWorkspaceMemberRequestQuery & GetWorkspaceMemberRequestParams\n\nexport type GetWorkspaceMemberRequest = {\n  headers: GetWorkspaceMemberRequestHeaders;\n  query: GetWorkspaceMemberRequestQuery;\n  params: GetWorkspaceMemberRequestParams;\n  body: GetWorkspaceMemberRequestBody;\n}\n\nexport const parseReq = (_: GetWorkspaceMemberInput): GetWorkspaceMemberRequest & { path: string } => {\n  return {\n    path: `/v1/admin/workspace-members/me`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface GetWorkspaceMemberResponse {\n  id: string;\n  userId?: string;\n  email: string;\n  createdAt: string;\n  role: \"viewer\" | \"billing\" | \"developer\" | \"manager\" | \"administrator\" | \"owner\";\n  profilePicture?: string;\n  displayName?: string;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface DeleteWorkspaceMemberRequestHeaders {}\n\nexport interface DeleteWorkspaceMemberRequestQuery {}\n\nexport interface DeleteWorkspaceMemberRequestParams {\n  id: string;\n}\n\nexport interface DeleteWorkspaceMemberRequestBody {}\n\nexport type DeleteWorkspaceMemberInput = DeleteWorkspaceMemberRequestBody & DeleteWorkspaceMemberRequestHeaders & DeleteWorkspaceMemberRequestQuery & DeleteWorkspaceMemberRequestParams\n\nexport type DeleteWorkspaceMemberRequest = {\n  headers: DeleteWorkspaceMemberRequestHeaders;\n  query: DeleteWorkspaceMemberRequestQuery;\n  params: DeleteWorkspaceMemberRequestParams;\n  body: DeleteWorkspaceMemberRequestBody;\n}\n\nexport const parseReq = (input: DeleteWorkspaceMemberInput): DeleteWorkspaceMemberRequest & { path: string } => {\n  return {\n    path: `/v1/admin/workspace-members/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface DeleteWorkspaceMemberResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CreateWorkspaceMemberRequestHeaders {}\n\nexport interface CreateWorkspaceMemberRequestQuery {}\n\nexport interface CreateWorkspaceMemberRequestParams {}\n\nexport interface CreateWorkspaceMemberRequestBody {\n  email: string;\n  role: \"viewer\" | \"billing\" | \"developer\" | \"manager\" | \"administrator\" | \"owner\";\n  sendEmail?: boolean;\n}\n\nexport type CreateWorkspaceMemberInput = CreateWorkspaceMemberRequestBody & CreateWorkspaceMemberRequestHeaders & CreateWorkspaceMemberRequestQuery & CreateWorkspaceMemberRequestParams\n\nexport type CreateWorkspaceMemberRequest = {\n  headers: CreateWorkspaceMemberRequestHeaders;\n  query: CreateWorkspaceMemberRequestQuery;\n  params: CreateWorkspaceMemberRequestParams;\n  body: CreateWorkspaceMemberRequestBody;\n}\n\nexport const parseReq = (input: CreateWorkspaceMemberInput): CreateWorkspaceMemberRequest & { path: string } => {\n  return {\n    path: `/v1/admin/workspace-members`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'email': input['email'], 'role': input['role'], 'sendEmail': input['sendEmail'] },\n  }\n}\n\nexport interface CreateWorkspaceMemberResponse {\n  id: string;\n  userId?: string;\n  email: string;\n  createdAt: string;\n  role: \"viewer\" | \"billing\" | \"developer\" | \"manager\" | \"administrator\" | \"owner\";\n  profilePicture?: string;\n  displayName?: string;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface UpdateWorkspaceMemberRequestHeaders {}\n\nexport interface UpdateWorkspaceMemberRequestQuery {}\n\nexport interface UpdateWorkspaceMemberRequestParams {\n  id: string;\n}\n\nexport interface UpdateWorkspaceMemberRequestBody {\n  role?: \"viewer\" | \"billing\" | \"developer\" | \"manager\" | \"administrator\" | \"owner\";\n}\n\nexport type UpdateWorkspaceMemberInput = UpdateWorkspaceMemberRequestBody & UpdateWorkspaceMemberRequestHeaders & UpdateWorkspaceMemberRequestQuery & UpdateWorkspaceMemberRequestParams\n\nexport type UpdateWorkspaceMemberRequest = {\n  headers: UpdateWorkspaceMemberRequestHeaders;\n  query: UpdateWorkspaceMemberRequestQuery;\n  params: UpdateWorkspaceMemberRequestParams;\n  body: UpdateWorkspaceMemberRequestBody;\n}\n\nexport const parseReq = (input: UpdateWorkspaceMemberInput): UpdateWorkspaceMemberRequest & { path: string } => {\n  return {\n    path: `/v1/admin/workspace-members/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: { 'role': input['role'] },\n  }\n}\n\nexport interface UpdateWorkspaceMemberResponse {\n  id: string;\n  userId?: string;\n  email: string;\n  createdAt: string;\n  role: \"viewer\" | \"billing\" | \"developer\" | \"manager\" | \"administrator\" | \"owner\";\n  profilePicture?: string;\n  displayName?: string;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListIntegrationApiKeysRequestHeaders {}\n\nexport interface ListIntegrationApiKeysRequestQuery {\n  integrationId: string;\n}\n\nexport interface ListIntegrationApiKeysRequestParams {}\n\nexport interface ListIntegrationApiKeysRequestBody {}\n\nexport type ListIntegrationApiKeysInput = ListIntegrationApiKeysRequestBody & ListIntegrationApiKeysRequestHeaders & ListIntegrationApiKeysRequestQuery & ListIntegrationApiKeysRequestParams\n\nexport type ListIntegrationApiKeysRequest = {\n  headers: ListIntegrationApiKeysRequestHeaders;\n  query: ListIntegrationApiKeysRequestQuery;\n  params: ListIntegrationApiKeysRequestParams;\n  body: ListIntegrationApiKeysRequestBody;\n}\n\nexport const parseReq = (input: ListIntegrationApiKeysInput): ListIntegrationApiKeysRequest & { path: string } => {\n  return {\n    path: `/v1/admin/integrations/iaks`,\n    headers: {  },\n    query: { 'integrationId': input['integrationId'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListIntegrationApiKeysResponse {\n  iaks: {\n    id: string;\n    createdAt: string;\n    note: string;\n  }[];\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CreateIntegrationApiKeyRequestHeaders {}\n\nexport interface CreateIntegrationApiKeyRequestQuery {}\n\nexport interface CreateIntegrationApiKeyRequestParams {}\n\nexport interface CreateIntegrationApiKeyRequestBody {\n  integrationId: string;\n  note?: string;\n}\n\nexport type CreateIntegrationApiKeyInput = CreateIntegrationApiKeyRequestBody & CreateIntegrationApiKeyRequestHeaders & CreateIntegrationApiKeyRequestQuery & CreateIntegrationApiKeyRequestParams\n\nexport type CreateIntegrationApiKeyRequest = {\n  headers: CreateIntegrationApiKeyRequestHeaders;\n  query: CreateIntegrationApiKeyRequestQuery;\n  params: CreateIntegrationApiKeyRequestParams;\n  body: CreateIntegrationApiKeyRequestBody;\n}\n\nexport const parseReq = (input: CreateIntegrationApiKeyInput): CreateIntegrationApiKeyRequest & { path: string } => {\n  return {\n    path: `/v1/admin/integrations/iaks`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'integrationId': input['integrationId'], 'note': input['note'] },\n  }\n}\n\nexport interface CreateIntegrationApiKeyResponse {\n  id: string;\n  createdAt: string;\n  note: string;\n  /**\n   * The IAK value. This will only be returned here when created and cannot be retrieved later.\n   */\n  value: string;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface DeleteIntegrationApiKeyRequestHeaders {}\n\nexport interface DeleteIntegrationApiKeyRequestQuery {}\n\nexport interface DeleteIntegrationApiKeyRequestParams {\n  id: string;\n}\n\nexport interface DeleteIntegrationApiKeyRequestBody {}\n\nexport type DeleteIntegrationApiKeyInput = DeleteIntegrationApiKeyRequestBody & DeleteIntegrationApiKeyRequestHeaders & DeleteIntegrationApiKeyRequestQuery & DeleteIntegrationApiKeyRequestParams\n\nexport type DeleteIntegrationApiKeyRequest = {\n  headers: DeleteIntegrationApiKeyRequestHeaders;\n  query: DeleteIntegrationApiKeyRequestQuery;\n  params: DeleteIntegrationApiKeyRequestParams;\n  body: DeleteIntegrationApiKeyRequestBody;\n}\n\nexport const parseReq = (input: DeleteIntegrationApiKeyInput): DeleteIntegrationApiKeyRequest & { path: string } => {\n  return {\n    path: `/v1/admin/integrations/iaks/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface DeleteIntegrationApiKeyResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CreateIntegrationRequestHeaders {}\n\nexport interface CreateIntegrationRequestQuery {}\n\nexport interface CreateIntegrationRequestParams {}\n\nexport interface CreateIntegrationRequestBody {\n  /**\n   * Name of the [Integration](#schema_integration)\n   */\n  name: string;\n  /**\n   * Version of the [Integration](#schema_integration)\n   */\n  version: string;\n  /**\n   * Default configuration definition of the integration\n   */\n  configuration?: {\n    /**\n     * Title of the configuration\n     */\n    title?: string;\n    /**\n     * Description of the configuration\n     */\n    description?: string;\n    /**\n     * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n     */\n    schema?: {\n      [k: string]: any;\n    };\n    identifier?: {\n      required?: boolean;\n      linkTemplateScript?: string;\n    };\n  };\n  /**\n   * Additional configuration definitions of the integration\n   */\n  configurations?: {\n    [k: string]: {\n      /**\n       * Title of the configuration\n       */\n      title?: string;\n      /**\n       * Description of the configuration\n       */\n      description?: string;\n      /**\n       * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n       */\n      schema?: {\n        [k: string]: any;\n      };\n      identifier?: {\n        required?: boolean;\n        linkTemplateScript?: string;\n      };\n    };\n  };\n  states?: {\n    /**\n     * State definition\n     */\n    [k: string]: {\n      /**\n       * Type of the [State](#schema_state) (`conversation`, `user` or `integration`)\n       */\n      type: \"conversation\" | \"user\" | \"integration\";\n      /**\n       * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n       */\n      schema: {\n        [k: string]: any;\n      };\n    };\n  };\n  events?: {\n    /**\n     * Event Definition\n     */\n    [k: string]: {\n      /**\n       * Title of the event\n       */\n      title?: string;\n      /**\n       * Description of the event\n       */\n      description?: string;\n      schema: {\n        [k: string]: any;\n      };\n      /**\n       * Optional attributes\n       */\n      attributes?: {\n        [k: string]: string;\n      };\n    };\n  };\n  actions?: {\n    /**\n     * Action definition\n     */\n    [k: string]: {\n      /**\n       * Title of the action\n       */\n      title?: string;\n      /**\n       * Description of the action\n       */\n      description?: string;\n      billable?: boolean;\n      cacheable?: boolean;\n      input: {\n        schema: {\n          [k: string]: any;\n        };\n      };\n      output: {\n        schema: {\n          [k: string]: any;\n        };\n      };\n      /**\n       * Optional attributes\n       */\n      attributes?: {\n        [k: string]: string;\n      };\n    };\n  };\n  entities?: {\n    /**\n     * Entity definition\n     */\n    [k: string]: {\n      /**\n       * Title of the entity\n       */\n      title?: string;\n      /**\n       * Description of the entity\n       */\n      description?: string;\n      schema: {\n        [k: string]: any;\n      };\n    };\n  };\n  identifier?: {\n    fallbackHandlerScript?: string;\n    extractScript?: string;\n  };\n  channels?: {\n    [k: string]: {\n      /**\n       * Title of the channel\n       */\n      title?: string;\n      /**\n       * Description of the channel\n       */\n      description?: string;\n      messages: {\n        /**\n         * Message definition\n         */\n        [k: string]: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n      };\n      conversation?: {\n        /**\n         * The conversation creation setting determines how to create a conversation through the API directly. The integration will have to implement the `createConversation` functionality to support this setting.\n         */\n        creation?: {\n          /**\n           * Enable conversation creation\n           */\n          enabled: boolean;\n          /**\n           * The list of tags that are required to be specified when calling the API directly to create a conversation.\n           */\n          requiredTags: string[];\n        };\n        tags?: {\n          /**\n           * Definition of a tag that can be provided on the object\n           */\n          [k: string]: {\n            /**\n             * Title of the tag\n             */\n            title?: string;\n            /**\n             * Description of the tag\n             */\n            description?: string;\n          };\n        };\n      };\n      message?: {\n        tags?: {\n          /**\n           * Definition of a tag that can be provided on the object\n           */\n          [k: string]: {\n            /**\n             * Title of the tag\n             */\n            title?: string;\n            /**\n             * Description of the tag\n             */\n            description?: string;\n          };\n        };\n      };\n    };\n  };\n  user?: {\n    /**\n     * The user creation setting determines how to create a user through the API directly. The integration will have to implement the `createUser` functionality to support this setting.\n     */\n    creation?: {\n      /**\n       * Enable user creation\n       */\n      enabled: boolean;\n      /**\n       * The list of tags that are required to be specified when calling the API directly to create a user.\n       */\n      requiredTags: string[];\n    };\n    tags?: {\n      /**\n       * Definition of a tag that can be provided on the object\n       */\n      [k: string]: {\n        /**\n         * Title of the tag\n         */\n        title?: string;\n        /**\n         * Description of the tag\n         */\n        description?: string;\n      };\n    };\n  };\n  interfaces?: {\n    [k: string]: {\n      /**\n       * ID of the interface\n       */\n      id: string;\n      entities?: {\n        [k: string]: {\n          name: string;\n        };\n      };\n      actions?: {\n        [k: string]: {\n          name: string;\n        };\n      };\n      events?: {\n        [k: string]: {\n          name: string;\n        };\n      };\n      channels?: {\n        [k: string]: {\n          name: string;\n        };\n      };\n    };\n  };\n  /**\n   * **EXPERIMENTAL** Extra integration operations that should be sent or not to the integration instances. The key is the operation name.\n   */\n  extraOperations?: {\n    [k: string]: {\n      enabled: boolean;\n    };\n  };\n  sdkVersion?: string;\n  /**\n   * Secrets are integration-wide values available in the code via environment variables formatted with a SECRET_ prefix followed by your secret name. A secret name must respect SCREAMING_SNAKE casing.\n   */\n  secrets?: {\n    [k: string]: string | null;\n  };\n  /**\n   * JavaScript code of the integration\n   */\n  code?: string;\n  /**\n   * URL of the integration\n   */\n  url?: string;\n  /**\n   * Indicates if the integration is a development integration; Dev integrations run locally\n   */\n  dev?: boolean;\n  /**\n   * Base64 encoded svg of the integration icon. This icon is global to the integration each versions will be updated when this changes.\n   */\n  icon?: string;\n  /**\n   * Base64 encoded markdown of the integration readme. The readme is specific to each integration versions.\n   */\n  readme?: string;\n  /**\n   * Title of the integration. This is the name that will be displayed in the UI\n   */\n  title?: string;\n  /**\n   * Description of the integration. This is the description that will be displayed in the UI\n   */\n  description?: string;\n  /**\n   * @deprecated\n   * [DEPRECATED] Indicates whether the integration is public. Please use the \"visibility\" parameter instead.\n   */\n  public?: boolean;\n  /**\n   * The integration's visibility. Public integrations are available to all and cannot be updated without creating a new version. Unlisted integrations behave identically to public integrations, but they are not listed in the integration hub. By default, integrations are private and only accessible to the workspace that created them.\n   */\n  visibility?: \"public\" | \"private\" | \"unlisted\";\n  layers?: string[];\n  /**\n   * Optional key-value attributes from the integration definition\n   */\n  attributes?: {\n    [k: string]: string;\n  };\n  /**\n   * Admission deadline for one integration operation, including queue and initialization (seconds).\n   */\n  maxExecutionTime?: number;\n  /**\n   * Maximum concurrent integration invocations. Definitions that omit this field run one invocation at a time.\n   */\n  maxConcurrency?: number;\n  /**\n   * Outbound host allowlist declared by the integration.\n   */\n  providerHosts?: string[];\n  /**\n   * Whether inbound webhook traffic is relayed through the platform.\n   */\n  ingressRelayed?: boolean;\n  /**\n   * Authentication mode enforced for inbound webhooks.\n   */\n  webhookAuthMode?: \"shared_secret\" | \"provider_verified\" | \"handler_verified\";\n}\n\nexport type CreateIntegrationInput = CreateIntegrationRequestBody & CreateIntegrationRequestHeaders & CreateIntegrationRequestQuery & CreateIntegrationRequestParams\n\nexport type CreateIntegrationRequest = {\n  headers: CreateIntegrationRequestHeaders;\n  query: CreateIntegrationRequestQuery;\n  params: CreateIntegrationRequestParams;\n  body: CreateIntegrationRequestBody;\n}\n\nexport const parseReq = (input: CreateIntegrationInput): CreateIntegrationRequest & { path: string } => {\n  return {\n    path: `/v1/admin/integrations`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'name': input['name'], 'version': input['version'], 'configuration': input['configuration'], 'configurations': input['configurations'], 'states': input['states'], 'events': input['events'], 'actions': input['actions'], 'entities': input['entities'], 'identifier': input['identifier'], 'channels': input['channels'], 'user': input['user'], 'interfaces': input['interfaces'], 'extraOperations': input['extraOperations'], 'sdkVersion': input['sdkVersion'], 'secrets': input['secrets'], 'code': input['code'], 'url': input['url'], 'dev': input['dev'], 'icon': input['icon'], 'readme': input['readme'], 'title': input['title'], 'description': input['description'], 'public': input['public'], 'visibility': input['visibility'], 'layers': input['layers'], 'attributes': input['attributes'], 'maxExecutionTime': input['maxExecutionTime'], 'maxConcurrency': input['maxConcurrency'], 'providerHosts': input['providerHosts'], 'ingressRelayed': input['ingressRelayed'], 'webhookAuthMode': input['webhookAuthMode'] },\n  }\n}\n\nexport interface CreateIntegrationResponse {\n  integration: {\n    /**\n     * ID of the [Integration](#schema_integration)\n     */\n    id: string;\n    /**\n     * Creation date of the [Integration](#schema_integration) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Integration](#schema_integration) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Global identifier configuration of the [Integration](#schema_integration)\n     */\n    identifier: {\n      /**\n       * VRL Script of the [Integration](#schema_integration) to handle incoming requests for a request that doesn't have an identifier\n       */\n      fallbackHandlerScript?: string;\n      /**\n       * VRL Script of the [Integration](#schema_integration) to extract the identifier from an incoming webhook often use for OAuth\n       */\n      extractScript?: string;\n    };\n    sandbox?: {\n      /**\n       * VRL Script of the [Integration](#schema_integration) to extract the identifier from an incoming webhook used specifically for the sandbox\n       */\n      identifierExtractScript?: string;\n      /**\n       * VRL Script of the [Integration](#schema_integration) to extract the message from an incoming webhook used specifically for the sandbox\n       */\n      messageExtractScript?: string;\n    };\n    /**\n     * Maximum execution time of the integration (in seconds).\n     */\n    maxExecutionTime?: number;\n    /**\n     * URL of the [Integration](#schema_integration)\n     */\n    url: string;\n    /**\n     * Signing secret of the [Integration](#schema_integration). This field is only visible when creating a new integration or when rotating the signing secret of an existing integration.\n     */\n    signingSecret: string;\n    /**\n     * Name of the [Integration](#schema_integration)\n     */\n    name: string;\n    /**\n     * Version of the [Integration](#schema_integration)\n     */\n    version: string;\n    interfaces: {\n      [k: string]: {\n        /**\n         * ID of the interface\n         */\n        id: string;\n        /**\n         * Name of the interface\n         */\n        name: string;\n        /**\n         * Version of the interface\n         */\n        version: string;\n        entities: {\n          [k: string]: {\n            name: string;\n          };\n        };\n        actions: {\n          [k: string]: {\n            name: string;\n          };\n        };\n        events: {\n          [k: string]: {\n            name: string;\n          };\n        };\n        channels: {\n          [k: string]: {\n            name: string;\n          };\n        };\n      };\n    };\n    /**\n     * Configuration definition\n     */\n    configuration: {\n      /**\n       * Title of the configuration\n       */\n      title?: string;\n      /**\n       * Description of the configuration\n       */\n      description?: string;\n      /**\n       * Identifier configuration of the [Integration](#schema_integration)\n       */\n      identifier: {\n        linkTemplateScript?: string;\n        required: boolean;\n      };\n      /**\n       * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n       */\n      schema: {\n        [k: string]: any;\n      };\n    };\n    configurations: {\n      /**\n       * Configuration definition\n       */\n      [k: string]: {\n        /**\n         * Title of the configuration\n         */\n        title?: string;\n        /**\n         * Description of the configuration\n         */\n        description?: string;\n        /**\n         * Identifier configuration of the [Integration](#schema_integration)\n         */\n        identifier: {\n          linkTemplateScript?: string;\n          required: boolean;\n        };\n        /**\n         * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n         */\n        schema: {\n          [k: string]: any;\n        };\n      };\n    };\n    channels: {\n      /**\n       * Channel definition\n       */\n      [k: string]: {\n        /**\n         * Title of the channel\n         */\n        title?: string;\n        /**\n         * Description of the channel\n         */\n        description?: string;\n        messages: {\n          /**\n           * Message definition\n           */\n          [k: string]: {\n            schema: {\n              [k: string]: any;\n            };\n          };\n        };\n        /**\n         * Conversation object configuration\n         */\n        conversation: {\n          tags: {\n            /**\n             * Definition of a tag that can be provided on the object\n             */\n            [k: string]: {\n              /**\n               * Title of the tag\n               */\n              title?: string;\n              /**\n               * Description of the tag\n               */\n              description?: string;\n            };\n          };\n          /**\n           * The conversation creation setting determines how to create a conversation through the API directly. The integration will have to implement the `createConversation` functionality to support this setting.\n           */\n          creation: {\n            /**\n             * Enable conversation creation\n             */\n            enabled: boolean;\n            /**\n             * The list of tags that are required to be specified when calling the API directly to create a conversation.\n             */\n            requiredTags: string[];\n          };\n        };\n        /**\n         * Message object configuration\n         */\n        message: {\n          tags: {\n            /**\n             * Definition of a tag that can be provided on the object\n             */\n            [k: string]: {\n              /**\n               * Title of the tag\n               */\n              title?: string;\n              /**\n               * Description of the tag\n               */\n              description?: string;\n            };\n          };\n        };\n      };\n    };\n    states: {\n      /**\n       * State definition\n       */\n      [k: string]: {\n        /**\n         * Type of the [State](#schema_state) (`conversation`, `user` or `integration`)\n         */\n        type: \"conversation\" | \"user\" | \"integration\";\n        /**\n         * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n         */\n        schema: {\n          [k: string]: any;\n        };\n      };\n    };\n    events: {\n      /**\n       * Event Definition\n       */\n      [k: string]: {\n        /**\n         * Title of the event\n         */\n        title?: string;\n        /**\n         * Description of the event\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    actions: {\n      /**\n       * Action definition\n       */\n      [k: string]: {\n        /**\n         * Title of the action\n         */\n        title?: string;\n        /**\n         * Description of the action\n         */\n        description?: string;\n        billable?: boolean;\n        cacheable?: boolean;\n        input: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        output: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    /**\n     * User object configuration\n     */\n    user: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n      /**\n       * The user creation setting determines how to create a user through the API directly. The integration will have to implement the `createUser` functionality to support this setting.\n       */\n      creation: {\n        /**\n         * Enable user creation\n         */\n        enabled: boolean;\n        /**\n         * The list of tags that are required to be specified when calling the API directly to create a user.\n         */\n        requiredTags: string[];\n      };\n    };\n    entities: {\n      /**\n       * Entity definition\n       */\n      [k: string]: {\n        /**\n         * Title of the entity\n         */\n        title?: string;\n        /**\n         * Description of the entity\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n      };\n    };\n    /**\n     * Indicates if the integration is a development integration; Dev integrations run locally\n     */\n    dev: boolean;\n    /**\n     * Title of the integration. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the integration. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the integration. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * URL of the readme of the integration. This is the readme that will be displayed in the UI\n     */\n    readmeUrl: string;\n    /**\n     * @deprecated\n     * [DEPRECATED] Indicates whether the integration is public. Please use the \"visibility\" parameter instead.\n     */\n    public: boolean;\n    /**\n     * The integration's visibility. Public integrations are available to all and cannot be updated without creating a new version. Unlisted integrations behave identically to public integrations, but they are not listed in the integration hub. By default, integrations are private and only accessible to the workspace that created them.\n     */\n    visibility: \"public\" | \"private\" | \"unlisted\";\n    /**\n     * Status of the integration version verification\n     */\n    verificationStatus: \"unapproved\" | \"pending\" | \"approved\" | \"rejected\";\n    /**\n     * The lifecycle status of the integration. When an integration is deprecated, it can no longer be installed.\n     */\n    lifecycleStatus: \"published\" | \"deprecated\";\n    /**\n     * Secrets are integration-wide values available in the code via environment variables formatted with a SECRET_ prefix followed by your secret name. A secret name must respect SCREAMING_SNAKE casing.\n     */\n    secrets: string[];\n    /**\n     * Optional key-value attributes from the integration definition\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ValidateIntegrationCreationRequestHeaders {}\n\nexport interface ValidateIntegrationCreationRequestQuery {}\n\nexport interface ValidateIntegrationCreationRequestParams {}\n\nexport interface ValidateIntegrationCreationRequestBody {\n  /**\n   * Name of the [Integration](#schema_integration)\n   */\n  name: string;\n  /**\n   * Version of the [Integration](#schema_integration)\n   */\n  version: string;\n  /**\n   * Default configuration definition of the integration\n   */\n  configuration?: {\n    /**\n     * Title of the configuration\n     */\n    title?: string;\n    /**\n     * Description of the configuration\n     */\n    description?: string;\n    /**\n     * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n     */\n    schema?: {\n      [k: string]: any;\n    };\n    identifier?: {\n      required?: boolean;\n      linkTemplateScript?: string;\n    };\n  };\n  /**\n   * Additional configuration definitions of the integration\n   */\n  configurations?: {\n    [k: string]: {\n      /**\n       * Title of the configuration\n       */\n      title?: string;\n      /**\n       * Description of the configuration\n       */\n      description?: string;\n      /**\n       * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n       */\n      schema?: {\n        [k: string]: any;\n      };\n      identifier?: {\n        required?: boolean;\n        linkTemplateScript?: string;\n      };\n    };\n  };\n  states?: {\n    /**\n     * State definition\n     */\n    [k: string]: {\n      /**\n       * Type of the [State](#schema_state) (`conversation`, `user` or `integration`)\n       */\n      type: \"conversation\" | \"user\" | \"integration\";\n      /**\n       * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n       */\n      schema: {\n        [k: string]: any;\n      };\n    };\n  };\n  events?: {\n    /**\n     * Event Definition\n     */\n    [k: string]: {\n      /**\n       * Title of the event\n       */\n      title?: string;\n      /**\n       * Description of the event\n       */\n      description?: string;\n      schema: {\n        [k: string]: any;\n      };\n      /**\n       * Optional attributes\n       */\n      attributes?: {\n        [k: string]: string;\n      };\n    };\n  };\n  actions?: {\n    /**\n     * Action definition\n     */\n    [k: string]: {\n      /**\n       * Title of the action\n       */\n      title?: string;\n      /**\n       * Description of the action\n       */\n      description?: string;\n      billable?: boolean;\n      cacheable?: boolean;\n      input: {\n        schema: {\n          [k: string]: any;\n        };\n      };\n      output: {\n        schema: {\n          [k: string]: any;\n        };\n      };\n      /**\n       * Optional attributes\n       */\n      attributes?: {\n        [k: string]: string;\n      };\n    };\n  };\n  entities?: {\n    /**\n     * Entity definition\n     */\n    [k: string]: {\n      /**\n       * Title of the entity\n       */\n      title?: string;\n      /**\n       * Description of the entity\n       */\n      description?: string;\n      schema: {\n        [k: string]: any;\n      };\n    };\n  };\n  identifier?: {\n    fallbackHandlerScript?: string;\n    extractScript?: string;\n  };\n  channels?: {\n    [k: string]: {\n      /**\n       * Title of the channel\n       */\n      title?: string;\n      /**\n       * Description of the channel\n       */\n      description?: string;\n      messages: {\n        /**\n         * Message definition\n         */\n        [k: string]: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n      };\n      conversation?: {\n        /**\n         * The conversation creation setting determines how to create a conversation through the API directly. The integration will have to implement the `createConversation` functionality to support this setting.\n         */\n        creation?: {\n          /**\n           * Enable conversation creation\n           */\n          enabled: boolean;\n          /**\n           * The list of tags that are required to be specified when calling the API directly to create a conversation.\n           */\n          requiredTags: string[];\n        };\n        tags?: {\n          /**\n           * Definition of a tag that can be provided on the object\n           */\n          [k: string]: {\n            /**\n             * Title of the tag\n             */\n            title?: string;\n            /**\n             * Description of the tag\n             */\n            description?: string;\n          };\n        };\n      };\n      message?: {\n        tags?: {\n          /**\n           * Definition of a tag that can be provided on the object\n           */\n          [k: string]: {\n            /**\n             * Title of the tag\n             */\n            title?: string;\n            /**\n             * Description of the tag\n             */\n            description?: string;\n          };\n        };\n      };\n    };\n  };\n  user?: {\n    /**\n     * The user creation setting determines how to create a user through the API directly. The integration will have to implement the `createUser` functionality to support this setting.\n     */\n    creation?: {\n      /**\n       * Enable user creation\n       */\n      enabled: boolean;\n      /**\n       * The list of tags that are required to be specified when calling the API directly to create a user.\n       */\n      requiredTags: string[];\n    };\n    tags?: {\n      /**\n       * Definition of a tag that can be provided on the object\n       */\n      [k: string]: {\n        /**\n         * Title of the tag\n         */\n        title?: string;\n        /**\n         * Description of the tag\n         */\n        description?: string;\n      };\n    };\n  };\n  interfaces?: {\n    [k: string]: {\n      /**\n       * ID of the interface\n       */\n      id: string;\n      entities?: {\n        [k: string]: {\n          name: string;\n        };\n      };\n      actions?: {\n        [k: string]: {\n          name: string;\n        };\n      };\n      events?: {\n        [k: string]: {\n          name: string;\n        };\n      };\n      channels?: {\n        [k: string]: {\n          name: string;\n        };\n      };\n    };\n  };\n  /**\n   * **EXPERIMENTAL** Extra integration operations that should be sent or not to the integration instances. The key is the operation name.\n   */\n  extraOperations?: {\n    [k: string]: {\n      enabled: boolean;\n    };\n  };\n  sdkVersion?: string;\n  /**\n   * Secrets are integration-wide values available in the code via environment variables formatted with a SECRET_ prefix followed by your secret name. A secret name must respect SCREAMING_SNAKE casing.\n   */\n  secrets?: {\n    [k: string]: string | null;\n  };\n  /**\n   * JavaScript code of the integration\n   */\n  code?: string;\n  /**\n   * URL of the integration\n   */\n  url?: string;\n  /**\n   * Indicates if the integration is a development integration; Dev integrations run locally\n   */\n  dev?: boolean;\n  /**\n   * Base64 encoded svg of the integration icon. This icon is global to the integration each versions will be updated when this changes.\n   */\n  icon?: string;\n  /**\n   * Base64 encoded markdown of the integration readme. The readme is specific to each integration versions.\n   */\n  readme?: string;\n  /**\n   * Title of the integration. This is the name that will be displayed in the UI\n   */\n  title?: string;\n  /**\n   * Description of the integration. This is the description that will be displayed in the UI\n   */\n  description?: string;\n  /**\n   * @deprecated\n   * [DEPRECATED] Indicates whether the integration is public. Please use the \"visibility\" parameter instead.\n   */\n  public?: boolean;\n  /**\n   * The integration's visibility. Public integrations are available to all and cannot be updated without creating a new version. Unlisted integrations behave identically to public integrations, but they are not listed in the integration hub. By default, integrations are private and only accessible to the workspace that created them.\n   */\n  visibility?: \"public\" | \"private\" | \"unlisted\";\n  layers?: string[];\n  /**\n   * Optional key-value attributes from the integration definition\n   */\n  attributes?: {\n    [k: string]: string;\n  };\n  /**\n   * Admission deadline for one integration operation, including queue and initialization (seconds).\n   */\n  maxExecutionTime?: number;\n  /**\n   * Maximum concurrent integration invocations. Definitions that omit this field run one invocation at a time.\n   */\n  maxConcurrency?: number;\n  /**\n   * Outbound host allowlist declared by the integration.\n   */\n  providerHosts?: string[];\n  /**\n   * Whether inbound webhook traffic is relayed through the platform.\n   */\n  ingressRelayed?: boolean;\n  /**\n   * Authentication mode enforced for inbound webhooks.\n   */\n  webhookAuthMode?: \"shared_secret\" | \"provider_verified\" | \"handler_verified\";\n}\n\nexport type ValidateIntegrationCreationInput = ValidateIntegrationCreationRequestBody & ValidateIntegrationCreationRequestHeaders & ValidateIntegrationCreationRequestQuery & ValidateIntegrationCreationRequestParams\n\nexport type ValidateIntegrationCreationRequest = {\n  headers: ValidateIntegrationCreationRequestHeaders;\n  query: ValidateIntegrationCreationRequestQuery;\n  params: ValidateIntegrationCreationRequestParams;\n  body: ValidateIntegrationCreationRequestBody;\n}\n\nexport const parseReq = (input: ValidateIntegrationCreationInput): ValidateIntegrationCreationRequest & { path: string } => {\n  return {\n    path: `/v1/admin/integrations/validate`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'name': input['name'], 'version': input['version'], 'configuration': input['configuration'], 'configurations': input['configurations'], 'states': input['states'], 'events': input['events'], 'actions': input['actions'], 'entities': input['entities'], 'identifier': input['identifier'], 'channels': input['channels'], 'user': input['user'], 'interfaces': input['interfaces'], 'extraOperations': input['extraOperations'], 'sdkVersion': input['sdkVersion'], 'secrets': input['secrets'], 'code': input['code'], 'url': input['url'], 'dev': input['dev'], 'icon': input['icon'], 'readme': input['readme'], 'title': input['title'], 'description': input['description'], 'public': input['public'], 'visibility': input['visibility'], 'layers': input['layers'], 'attributes': input['attributes'], 'maxExecutionTime': input['maxExecutionTime'], 'maxConcurrency': input['maxConcurrency'], 'providerHosts': input['providerHosts'], 'ingressRelayed': input['ingressRelayed'], 'webhookAuthMode': input['webhookAuthMode'] },\n  }\n}\n\nexport interface ValidateIntegrationCreationResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface UpdateIntegrationRequestHeaders {}\n\nexport interface UpdateIntegrationRequestQuery {}\n\nexport interface UpdateIntegrationRequestParams {\n  id: string;\n}\n\nexport interface UpdateIntegrationRequestBody {\n  /**\n   * Default configuration definition of the integration\n   */\n  configuration?: {\n    /**\n     * Title of the configuration\n     */\n    title?: string;\n    /**\n     * Description of the configuration\n     */\n    description?: string;\n    /**\n     * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n     */\n    schema?: {\n      [k: string]: any;\n    };\n    identifier?: {\n      linkTemplateScript?: string | null;\n      required?: boolean;\n    };\n  };\n  /**\n   * Additional configuration definitions of the integration\n   */\n  configurations?: {\n    [k: string]: {\n      /**\n       * Title of the configuration\n       */\n      title?: string;\n      /**\n       * Description of the configuration\n       */\n      description?: string;\n      /**\n       * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n       */\n      schema?: {\n        [k: string]: any;\n      };\n      identifier?: {\n        linkTemplateScript?: string | null;\n        required?: boolean;\n      };\n    } | null;\n  };\n  /**\n   * **EXPERIMENTAL** extra integration operations enabled for this integration. Keys map to operation names. A value of `null` or `{ enabled: false }` removes the operation; `{ enabled: true }` enables it. Operations that are not provided are left unchanged.\n   */\n  extraOperations?: {\n    [k: string]: {\n      enabled: boolean;\n    } | null;\n  };\n  sdkVersion?: string;\n  channels?: {\n    [k: string]: {\n      /**\n       * Title of the channel\n       */\n      title?: string;\n      /**\n       * Description of the channel\n       */\n      description?: string;\n      messages?: {\n        /**\n         * Message definition\n         */\n        [k: string]: {\n          schema: {\n            [k: string]: any;\n          };\n        } | null;\n      };\n      conversation?: {\n        /**\n         * The conversation creation setting determines how to create a conversation through the API directly. The integration will have to implement the `createConversation` functionality to support this setting.\n         */\n        creation?: {\n          /**\n           * Enable conversation creation\n           */\n          enabled: boolean;\n          /**\n           * The list of tags that are required to be specified when calling the API directly to create a conversation.\n           */\n          requiredTags: string[];\n        };\n        tags?: {\n          /**\n           * Definition of a tag that can be provided on the object\n           */\n          [k: string]: {\n            /**\n             * Title of the tag\n             */\n            title?: string;\n            /**\n             * Description of the tag\n             */\n            description?: string;\n          } | null;\n        };\n      };\n      message?: {\n        tags?: {\n          /**\n           * Definition of a tag that can be provided on the object\n           */\n          [k: string]: {\n            /**\n             * Title of the tag\n             */\n            title?: string;\n            /**\n             * Description of the tag\n             */\n            description?: string;\n          } | null;\n        };\n      };\n    } | null;\n  };\n  /**\n   * Maximum execution time of the integration (in seconds).\n   */\n  maxExecutionTime?: number;\n  identifier?: {\n    extractScript?: string | null;\n    fallbackHandlerScript?: string | null;\n  };\n  actions?: {\n    [k: string]: {\n      /**\n       * Title of the action\n       */\n      title?: string;\n      /**\n       * Description of the action\n       */\n      description?: string;\n      billable?: boolean;\n      cacheable?: boolean;\n      input: {\n        schema: {\n          [k: string]: any;\n        };\n      };\n      output: {\n        schema: {\n          [k: string]: any;\n        };\n      };\n      /**\n       * Optional attributes. Set attributes to null to remove them\n       */\n      attributes?: {\n        [k: string]: string | null;\n      };\n    } | null;\n  };\n  events?: {\n    [k: string]: {\n      /**\n       * Title of the event\n       */\n      title?: string;\n      /**\n       * Description of the event\n       */\n      description?: string;\n      schema: {\n        [k: string]: any;\n      };\n      /**\n       * Optional attributes. Set attributes to null to remove them\n       */\n      attributes?: {\n        [k: string]: string | null;\n      };\n    } | null;\n  };\n  states?: {\n    /**\n     * State definition\n     */\n    [k: string]: {\n      /**\n       * Type of the [State](#schema_state) (`conversation`, `user` or `integration`)\n       */\n      type: \"conversation\" | \"user\" | \"integration\";\n      /**\n       * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n       */\n      schema: {\n        [k: string]: any;\n      };\n    } | null;\n  };\n  user?: {\n    /**\n     * The user creation setting determines how to create a user through the API directly. The integration will have to implement the `createUser` functionality to support this setting.\n     */\n    creation?: {\n      /**\n       * Enable user creation\n       */\n      enabled: boolean;\n      /**\n       * The list of tags that are required to be specified when calling the API directly to create a user.\n       */\n      requiredTags: string[];\n    };\n    tags?: {\n      /**\n       * Definition of a tag that can be provided on the object\n       */\n      [k: string]: {\n        /**\n         * Title of the tag\n         */\n        title?: string;\n        /**\n         * Description of the tag\n         */\n        description?: string;\n      } | null;\n    };\n  };\n  entities?: {\n    /**\n     * Entity definition\n     */\n    [k: string]: {\n      /**\n       * Title of the entity\n       */\n      title?: string;\n      /**\n       * Description of the entity\n       */\n      description?: string;\n      schema: {\n        [k: string]: any;\n      };\n    } | null;\n  };\n  interfaces?: {\n    [k: string]: {\n      /**\n       * ID of the interface\n       */\n      id: string;\n      entities?: {\n        [k: string]: {\n          name: string;\n        };\n      };\n      actions?: {\n        [k: string]: {\n          name: string;\n        };\n      };\n      events?: {\n        [k: string]: {\n          name: string;\n        };\n      };\n      channels?: {\n        [k: string]: {\n          name: string;\n        };\n      };\n    } | null;\n  };\n  /**\n   * Optional key-value attributes. Set attributes to null to remove them\n   */\n  attributes?: {\n    [k: string]: string | null;\n  };\n  /**\n   * Secrets are integration-wide values available in the code via environment variables formatted with a SECRET_ prefix followed by your secret name. A secret name must respect SCREAMING_SNAKE casing.\n   */\n  secrets?: {\n    [k: string]: string | null;\n  };\n  /**\n   * JavaScript code of the integration\n   */\n  code?: string;\n  /**\n   * Base64 encoded svg of the integration icon. This icon is global to the integration each versions will be updated when this changes.\n   */\n  icon?: string;\n  /**\n   * Base64 encoded markdown of the integration readme. The readme is specific to each integration versions.\n   */\n  readme?: string;\n  /**\n   * Title of the integration. This is the name that will be displayed in the UI\n   */\n  title?: string;\n  /**\n   * Description of the integration. This is the description that will be displayed in the UI\n   */\n  description?: string;\n  /**\n   * URL of the integration\n   */\n  url?: string | null;\n  /**\n   * @deprecated\n   * [DEPRECATED] Indicates whether the integration is public. Please use the \"visibility\" parameter instead.\n   */\n  public?: boolean;\n  /**\n   * The integration's visibility. Public integrations are available to all and cannot be updated without creating a new version. Unlisted integrations behave identically to public integrations, but they are not listed in the integration hub. By default, integrations are private and only accessible to the workspace that created them.\n   */\n  visibility?: \"public\" | \"private\" | \"unlisted\";\n  layers?: string[];\n  /**\n   * Maximum concurrent integration invocations. Definitions that omit this field run one invocation at a time.\n   */\n  maxConcurrency?: number;\n  /**\n   * Outbound host allowlist declared by the integration.\n   */\n  providerHosts?: string[];\n  /**\n   * Whether inbound webhook traffic is relayed through the platform.\n   */\n  ingressRelayed?: boolean;\n  /**\n   * Authentication mode enforced for inbound webhooks.\n   */\n  webhookAuthMode?: \"shared_secret\" | \"provider_verified\" | \"handler_verified\";\n}\n\nexport type UpdateIntegrationInput = UpdateIntegrationRequestBody & UpdateIntegrationRequestHeaders & UpdateIntegrationRequestQuery & UpdateIntegrationRequestParams\n\nexport type UpdateIntegrationRequest = {\n  headers: UpdateIntegrationRequestHeaders;\n  query: UpdateIntegrationRequestQuery;\n  params: UpdateIntegrationRequestParams;\n  body: UpdateIntegrationRequestBody;\n}\n\nexport const parseReq = (input: UpdateIntegrationInput): UpdateIntegrationRequest & { path: string } => {\n  return {\n    path: `/v1/admin/integrations/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: { 'configuration': input['configuration'], 'configurations': input['configurations'], 'extraOperations': input['extraOperations'], 'sdkVersion': input['sdkVersion'], 'channels': input['channels'], 'maxExecutionTime': input['maxExecutionTime'], 'identifier': input['identifier'], 'actions': input['actions'], 'events': input['events'], 'states': input['states'], 'user': input['user'], 'entities': input['entities'], 'interfaces': input['interfaces'], 'attributes': input['attributes'], 'secrets': input['secrets'], 'code': input['code'], 'icon': input['icon'], 'readme': input['readme'], 'title': input['title'], 'description': input['description'], 'url': input['url'], 'public': input['public'], 'visibility': input['visibility'], 'layers': input['layers'], 'maxConcurrency': input['maxConcurrency'], 'providerHosts': input['providerHosts'], 'ingressRelayed': input['ingressRelayed'], 'webhookAuthMode': input['webhookAuthMode'] },\n  }\n}\n\nexport interface UpdateIntegrationResponse {\n  integration: {\n    /**\n     * ID of the [Integration](#schema_integration)\n     */\n    id: string;\n    /**\n     * Creation date of the [Integration](#schema_integration) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Integration](#schema_integration) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Global identifier configuration of the [Integration](#schema_integration)\n     */\n    identifier: {\n      /**\n       * VRL Script of the [Integration](#schema_integration) to handle incoming requests for a request that doesn't have an identifier\n       */\n      fallbackHandlerScript?: string;\n      /**\n       * VRL Script of the [Integration](#schema_integration) to extract the identifier from an incoming webhook often use for OAuth\n       */\n      extractScript?: string;\n    };\n    sandbox?: {\n      /**\n       * VRL Script of the [Integration](#schema_integration) to extract the identifier from an incoming webhook used specifically for the sandbox\n       */\n      identifierExtractScript?: string;\n      /**\n       * VRL Script of the [Integration](#schema_integration) to extract the message from an incoming webhook used specifically for the sandbox\n       */\n      messageExtractScript?: string;\n    };\n    /**\n     * Maximum execution time of the integration (in seconds).\n     */\n    maxExecutionTime?: number;\n    /**\n     * URL of the [Integration](#schema_integration)\n     */\n    url: string;\n    /**\n     * Signing secret of the [Integration](#schema_integration). This field is only visible when creating a new integration or when rotating the signing secret of an existing integration.\n     */\n    signingSecret: string;\n    /**\n     * Name of the [Integration](#schema_integration)\n     */\n    name: string;\n    /**\n     * Version of the [Integration](#schema_integration)\n     */\n    version: string;\n    interfaces: {\n      [k: string]: {\n        /**\n         * ID of the interface\n         */\n        id: string;\n        /**\n         * Name of the interface\n         */\n        name: string;\n        /**\n         * Version of the interface\n         */\n        version: string;\n        entities: {\n          [k: string]: {\n            name: string;\n          };\n        };\n        actions: {\n          [k: string]: {\n            name: string;\n          };\n        };\n        events: {\n          [k: string]: {\n            name: string;\n          };\n        };\n        channels: {\n          [k: string]: {\n            name: string;\n          };\n        };\n      };\n    };\n    /**\n     * Configuration definition\n     */\n    configuration: {\n      /**\n       * Title of the configuration\n       */\n      title?: string;\n      /**\n       * Description of the configuration\n       */\n      description?: string;\n      /**\n       * Identifier configuration of the [Integration](#schema_integration)\n       */\n      identifier: {\n        linkTemplateScript?: string;\n        required: boolean;\n      };\n      /**\n       * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n       */\n      schema: {\n        [k: string]: any;\n      };\n    };\n    configurations: {\n      /**\n       * Configuration definition\n       */\n      [k: string]: {\n        /**\n         * Title of the configuration\n         */\n        title?: string;\n        /**\n         * Description of the configuration\n         */\n        description?: string;\n        /**\n         * Identifier configuration of the [Integration](#schema_integration)\n         */\n        identifier: {\n          linkTemplateScript?: string;\n          required: boolean;\n        };\n        /**\n         * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n         */\n        schema: {\n          [k: string]: any;\n        };\n      };\n    };\n    channels: {\n      /**\n       * Channel definition\n       */\n      [k: string]: {\n        /**\n         * Title of the channel\n         */\n        title?: string;\n        /**\n         * Description of the channel\n         */\n        description?: string;\n        messages: {\n          /**\n           * Message definition\n           */\n          [k: string]: {\n            schema: {\n              [k: string]: any;\n            };\n          };\n        };\n        /**\n         * Conversation object configuration\n         */\n        conversation: {\n          tags: {\n            /**\n             * Definition of a tag that can be provided on the object\n             */\n            [k: string]: {\n              /**\n               * Title of the tag\n               */\n              title?: string;\n              /**\n               * Description of the tag\n               */\n              description?: string;\n            };\n          };\n          /**\n           * The conversation creation setting determines how to create a conversation through the API directly. The integration will have to implement the `createConversation` functionality to support this setting.\n           */\n          creation: {\n            /**\n             * Enable conversation creation\n             */\n            enabled: boolean;\n            /**\n             * The list of tags that are required to be specified when calling the API directly to create a conversation.\n             */\n            requiredTags: string[];\n          };\n        };\n        /**\n         * Message object configuration\n         */\n        message: {\n          tags: {\n            /**\n             * Definition of a tag that can be provided on the object\n             */\n            [k: string]: {\n              /**\n               * Title of the tag\n               */\n              title?: string;\n              /**\n               * Description of the tag\n               */\n              description?: string;\n            };\n          };\n        };\n      };\n    };\n    states: {\n      /**\n       * State definition\n       */\n      [k: string]: {\n        /**\n         * Type of the [State](#schema_state) (`conversation`, `user` or `integration`)\n         */\n        type: \"conversation\" | \"user\" | \"integration\";\n        /**\n         * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n         */\n        schema: {\n          [k: string]: any;\n        };\n      };\n    };\n    events: {\n      /**\n       * Event Definition\n       */\n      [k: string]: {\n        /**\n         * Title of the event\n         */\n        title?: string;\n        /**\n         * Description of the event\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    actions: {\n      /**\n       * Action definition\n       */\n      [k: string]: {\n        /**\n         * Title of the action\n         */\n        title?: string;\n        /**\n         * Description of the action\n         */\n        description?: string;\n        billable?: boolean;\n        cacheable?: boolean;\n        input: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        output: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    /**\n     * User object configuration\n     */\n    user: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n      /**\n       * The user creation setting determines how to create a user through the API directly. The integration will have to implement the `createUser` functionality to support this setting.\n       */\n      creation: {\n        /**\n         * Enable user creation\n         */\n        enabled: boolean;\n        /**\n         * The list of tags that are required to be specified when calling the API directly to create a user.\n         */\n        requiredTags: string[];\n      };\n    };\n    entities: {\n      /**\n       * Entity definition\n       */\n      [k: string]: {\n        /**\n         * Title of the entity\n         */\n        title?: string;\n        /**\n         * Description of the entity\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n      };\n    };\n    /**\n     * Indicates if the integration is a development integration; Dev integrations run locally\n     */\n    dev: boolean;\n    /**\n     * Title of the integration. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the integration. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the integration. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * URL of the readme of the integration. This is the readme that will be displayed in the UI\n     */\n    readmeUrl: string;\n    /**\n     * @deprecated\n     * [DEPRECATED] Indicates whether the integration is public. Please use the \"visibility\" parameter instead.\n     */\n    public: boolean;\n    /**\n     * The integration's visibility. Public integrations are available to all and cannot be updated without creating a new version. Unlisted integrations behave identically to public integrations, but they are not listed in the integration hub. By default, integrations are private and only accessible to the workspace that created them.\n     */\n    visibility: \"public\" | \"private\" | \"unlisted\";\n    /**\n     * Status of the integration version verification\n     */\n    verificationStatus: \"unapproved\" | \"pending\" | \"approved\" | \"rejected\";\n    /**\n     * The lifecycle status of the integration. When an integration is deprecated, it can no longer be installed.\n     */\n    lifecycleStatus: \"published\" | \"deprecated\";\n    /**\n     * Secrets are integration-wide values available in the code via environment variables formatted with a SECRET_ prefix followed by your secret name. A secret name must respect SCREAMING_SNAKE casing.\n     */\n    secrets: string[];\n    /**\n     * Optional key-value attributes from the integration definition\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface RotateIntegrationSigningSecretsRequestHeaders {}\n\nexport interface RotateIntegrationSigningSecretsRequestQuery {}\n\nexport interface RotateIntegrationSigningSecretsRequestParams {\n  id: string;\n}\n\nexport interface RotateIntegrationSigningSecretsRequestBody {}\n\nexport type RotateIntegrationSigningSecretsInput = RotateIntegrationSigningSecretsRequestBody & RotateIntegrationSigningSecretsRequestHeaders & RotateIntegrationSigningSecretsRequestQuery & RotateIntegrationSigningSecretsRequestParams\n\nexport type RotateIntegrationSigningSecretsRequest = {\n  headers: RotateIntegrationSigningSecretsRequestHeaders;\n  query: RotateIntegrationSigningSecretsRequestQuery;\n  params: RotateIntegrationSigningSecretsRequestParams;\n  body: RotateIntegrationSigningSecretsRequestBody;\n}\n\nexport const parseReq = (input: RotateIntegrationSigningSecretsInput): RotateIntegrationSigningSecretsRequest & { path: string } => {\n  return {\n    path: `/v1/admin/integrations/${encodeURIComponent(input['id'])}/signing-secrets/rotate`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface RotateIntegrationSigningSecretsResponse {\n  /**\n   * The new signing secret that can be used immediately. The old signing secret(s) will continue to work for 24 hours after this operation to allow for a smooth transition.\n   */\n  newSigningSecret: string;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ValidateIntegrationUpdateRequestHeaders {}\n\nexport interface ValidateIntegrationUpdateRequestQuery {}\n\nexport interface ValidateIntegrationUpdateRequestParams {\n  id: string;\n}\n\nexport interface ValidateIntegrationUpdateRequestBody {\n  /**\n   * Default configuration definition of the integration\n   */\n  configuration?: {\n    /**\n     * Title of the configuration\n     */\n    title?: string;\n    /**\n     * Description of the configuration\n     */\n    description?: string;\n    /**\n     * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n     */\n    schema?: {\n      [k: string]: any;\n    };\n    identifier?: {\n      linkTemplateScript?: string | null;\n      required?: boolean;\n    };\n  };\n  /**\n   * Additional configuration definitions of the integration\n   */\n  configurations?: {\n    [k: string]: {\n      /**\n       * Title of the configuration\n       */\n      title?: string;\n      /**\n       * Description of the configuration\n       */\n      description?: string;\n      /**\n       * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n       */\n      schema?: {\n        [k: string]: any;\n      };\n      identifier?: {\n        linkTemplateScript?: string | null;\n        required?: boolean;\n      };\n    } | null;\n  };\n  /**\n   * **EXPERIMENTAL** extra integration operations enabled for this integration. Keys map to operation names. A value of `null` or `{ enabled: false }` removes the operation; `{ enabled: true }` enables it. Operations that are not provided are left unchanged.\n   */\n  extraOperations?: {\n    [k: string]: {\n      enabled: boolean;\n    } | null;\n  };\n  sdkVersion?: string;\n  channels?: {\n    [k: string]: {\n      /**\n       * Title of the channel\n       */\n      title?: string;\n      /**\n       * Description of the channel\n       */\n      description?: string;\n      messages?: {\n        /**\n         * Message definition\n         */\n        [k: string]: {\n          schema: {\n            [k: string]: any;\n          };\n        } | null;\n      };\n      conversation?: {\n        /**\n         * The conversation creation setting determines how to create a conversation through the API directly. The integration will have to implement the `createConversation` functionality to support this setting.\n         */\n        creation?: {\n          /**\n           * Enable conversation creation\n           */\n          enabled: boolean;\n          /**\n           * The list of tags that are required to be specified when calling the API directly to create a conversation.\n           */\n          requiredTags: string[];\n        };\n        tags?: {\n          /**\n           * Definition of a tag that can be provided on the object\n           */\n          [k: string]: {\n            /**\n             * Title of the tag\n             */\n            title?: string;\n            /**\n             * Description of the tag\n             */\n            description?: string;\n          } | null;\n        };\n      };\n      message?: {\n        tags?: {\n          /**\n           * Definition of a tag that can be provided on the object\n           */\n          [k: string]: {\n            /**\n             * Title of the tag\n             */\n            title?: string;\n            /**\n             * Description of the tag\n             */\n            description?: string;\n          } | null;\n        };\n      };\n    } | null;\n  };\n  /**\n   * Maximum execution time of the integration (in seconds).\n   */\n  maxExecutionTime?: number;\n  identifier?: {\n    extractScript?: string | null;\n    fallbackHandlerScript?: string | null;\n  };\n  actions?: {\n    [k: string]: {\n      /**\n       * Title of the action\n       */\n      title?: string;\n      /**\n       * Description of the action\n       */\n      description?: string;\n      billable?: boolean;\n      cacheable?: boolean;\n      input: {\n        schema: {\n          [k: string]: any;\n        };\n      };\n      output: {\n        schema: {\n          [k: string]: any;\n        };\n      };\n      /**\n       * Optional attributes. Set attributes to null to remove them\n       */\n      attributes?: {\n        [k: string]: string | null;\n      };\n    } | null;\n  };\n  events?: {\n    [k: string]: {\n      /**\n       * Title of the event\n       */\n      title?: string;\n      /**\n       * Description of the event\n       */\n      description?: string;\n      schema: {\n        [k: string]: any;\n      };\n      /**\n       * Optional attributes. Set attributes to null to remove them\n       */\n      attributes?: {\n        [k: string]: string | null;\n      };\n    } | null;\n  };\n  states?: {\n    /**\n     * State definition\n     */\n    [k: string]: {\n      /**\n       * Type of the [State](#schema_state) (`conversation`, `user` or `integration`)\n       */\n      type: \"conversation\" | \"user\" | \"integration\";\n      /**\n       * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n       */\n      schema: {\n        [k: string]: any;\n      };\n    } | null;\n  };\n  user?: {\n    /**\n     * The user creation setting determines how to create a user through the API directly. The integration will have to implement the `createUser` functionality to support this setting.\n     */\n    creation?: {\n      /**\n       * Enable user creation\n       */\n      enabled: boolean;\n      /**\n       * The list of tags that are required to be specified when calling the API directly to create a user.\n       */\n      requiredTags: string[];\n    };\n    tags?: {\n      /**\n       * Definition of a tag that can be provided on the object\n       */\n      [k: string]: {\n        /**\n         * Title of the tag\n         */\n        title?: string;\n        /**\n         * Description of the tag\n         */\n        description?: string;\n      } | null;\n    };\n  };\n  entities?: {\n    /**\n     * Entity definition\n     */\n    [k: string]: {\n      /**\n       * Title of the entity\n       */\n      title?: string;\n      /**\n       * Description of the entity\n       */\n      description?: string;\n      schema: {\n        [k: string]: any;\n      };\n    } | null;\n  };\n  interfaces?: {\n    [k: string]: {\n      /**\n       * ID of the interface\n       */\n      id: string;\n      entities?: {\n        [k: string]: {\n          name: string;\n        };\n      };\n      actions?: {\n        [k: string]: {\n          name: string;\n        };\n      };\n      events?: {\n        [k: string]: {\n          name: string;\n        };\n      };\n      channels?: {\n        [k: string]: {\n          name: string;\n        };\n      };\n    } | null;\n  };\n  /**\n   * Optional key-value attributes. Set attributes to null to remove them\n   */\n  attributes?: {\n    [k: string]: string | null;\n  };\n  /**\n   * Secrets are integration-wide values available in the code via environment variables formatted with a SECRET_ prefix followed by your secret name. A secret name must respect SCREAMING_SNAKE casing.\n   */\n  secrets?: {\n    [k: string]: string | null;\n  };\n  /**\n   * JavaScript code of the integration\n   */\n  code?: string;\n  /**\n   * Base64 encoded svg of the integration icon. This icon is global to the integration each versions will be updated when this changes.\n   */\n  icon?: string;\n  /**\n   * Base64 encoded markdown of the integration readme. The readme is specific to each integration versions.\n   */\n  readme?: string;\n  /**\n   * Title of the integration. This is the name that will be displayed in the UI\n   */\n  title?: string;\n  /**\n   * Description of the integration. This is the description that will be displayed in the UI\n   */\n  description?: string;\n  /**\n   * URL of the integration\n   */\n  url?: string | null;\n  /**\n   * @deprecated\n   * [DEPRECATED] Indicates whether the integration is public. Please use the \"visibility\" parameter instead.\n   */\n  public?: boolean;\n  /**\n   * The integration's visibility. Public integrations are available to all and cannot be updated without creating a new version. Unlisted integrations behave identically to public integrations, but they are not listed in the integration hub. By default, integrations are private and only accessible to the workspace that created them.\n   */\n  visibility?: \"public\" | \"private\" | \"unlisted\";\n  layers?: string[];\n  /**\n   * Maximum concurrent integration invocations. Definitions that omit this field run one invocation at a time.\n   */\n  maxConcurrency?: number;\n  /**\n   * Outbound host allowlist declared by the integration.\n   */\n  providerHosts?: string[];\n  /**\n   * Whether inbound webhook traffic is relayed through the platform.\n   */\n  ingressRelayed?: boolean;\n  /**\n   * Authentication mode enforced for inbound webhooks.\n   */\n  webhookAuthMode?: \"shared_secret\" | \"provider_verified\" | \"handler_verified\";\n}\n\nexport type ValidateIntegrationUpdateInput = ValidateIntegrationUpdateRequestBody & ValidateIntegrationUpdateRequestHeaders & ValidateIntegrationUpdateRequestQuery & ValidateIntegrationUpdateRequestParams\n\nexport type ValidateIntegrationUpdateRequest = {\n  headers: ValidateIntegrationUpdateRequestHeaders;\n  query: ValidateIntegrationUpdateRequestQuery;\n  params: ValidateIntegrationUpdateRequestParams;\n  body: ValidateIntegrationUpdateRequestBody;\n}\n\nexport const parseReq = (input: ValidateIntegrationUpdateInput): ValidateIntegrationUpdateRequest & { path: string } => {\n  return {\n    path: `/v1/admin/integrations/${encodeURIComponent(input['id'])}/validate`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: { 'configuration': input['configuration'], 'configurations': input['configurations'], 'extraOperations': input['extraOperations'], 'sdkVersion': input['sdkVersion'], 'channels': input['channels'], 'maxExecutionTime': input['maxExecutionTime'], 'identifier': input['identifier'], 'actions': input['actions'], 'events': input['events'], 'states': input['states'], 'user': input['user'], 'entities': input['entities'], 'interfaces': input['interfaces'], 'attributes': input['attributes'], 'secrets': input['secrets'], 'code': input['code'], 'icon': input['icon'], 'readme': input['readme'], 'title': input['title'], 'description': input['description'], 'url': input['url'], 'public': input['public'], 'visibility': input['visibility'], 'layers': input['layers'], 'maxConcurrency': input['maxConcurrency'], 'providerHosts': input['providerHosts'], 'ingressRelayed': input['ingressRelayed'], 'webhookAuthMode': input['webhookAuthMode'] },\n  }\n}\n\nexport interface ValidateIntegrationUpdateResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListIntegrationsRequestHeaders {}\n\nexport interface ListIntegrationsRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n  limit?: number;\n  name?: string;\n  version?: string;\n  interfaceId?: string;\n  interfaceName?: string;\n  installedByBotId?: string;\n  verificationStatus?: \"unapproved\" | \"pending\" | \"approved\" | \"rejected\";\n  search?: string;\n  sortBy?: \"popularity\" | \"name\" | \"createdAt\" | \"updatedAt\" | \"installCount\";\n  direction?: \"asc\" | \"desc\";\n  visibility?: \"public\" | \"private\";\n  dev?: boolean;\n}\n\nexport interface ListIntegrationsRequestParams {}\n\nexport interface ListIntegrationsRequestBody {}\n\nexport type ListIntegrationsInput = ListIntegrationsRequestBody & ListIntegrationsRequestHeaders & ListIntegrationsRequestQuery & ListIntegrationsRequestParams\n\nexport type ListIntegrationsRequest = {\n  headers: ListIntegrationsRequestHeaders;\n  query: ListIntegrationsRequestQuery;\n  params: ListIntegrationsRequestParams;\n  body: ListIntegrationsRequestBody;\n}\n\nexport const parseReq = (input: ListIntegrationsInput): ListIntegrationsRequest & { path: string } => {\n  return {\n    path: `/v1/admin/integrations`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'], 'limit': input['limit'], 'name': input['name'], 'version': input['version'], 'interfaceId': input['interfaceId'], 'interfaceName': input['interfaceName'], 'installedByBotId': input['installedByBotId'], 'verificationStatus': input['verificationStatus'], 'search': input['search'], 'sortBy': input['sortBy'], 'direction': input['direction'], 'visibility': input['visibility'], 'dev': input['dev'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListIntegrationsResponse {\n  integrations: {\n    /**\n     * ID of the [Integration](#schema_integration)\n     */\n    id: string;\n    /**\n     * Name of the [Integration](#schema_integration)\n     */\n    name: string;\n    /**\n     * Version of the [Integration](#schema_integration)\n     */\n    version: string;\n    /**\n     * Creation date of the [Integration](#schema_integration) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Integration](#schema_integration) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Title of the integration. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the integration. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the integration. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * @deprecated\n     * [DEPRECATED] Indicates whether the integration is public. Please use the \"visibility\" parameter instead.\n     */\n    public: boolean;\n    /**\n     * The integration's visibility. Public integrations are available to all and cannot be updated without creating a new version. Unlisted integrations behave identically to public integrations, but they are not listed in the integration hub. By default, integrations are private and only accessible to the workspace that created them.\n     */\n    visibility: \"public\" | \"private\" | \"unlisted\";\n    /**\n     * Status of the integration version verification\n     */\n    verificationStatus: \"unapproved\" | \"pending\" | \"approved\" | \"rejected\";\n    /**\n     * The lifecycle status of the integration. When an integration is deprecated, it can no longer be installed.\n     */\n    lifecycleStatus: \"published\" | \"deprecated\";\n    /**\n     * Metadata about which fields matched the search criteria\n     */\n    matchedOn?: {\n      /**\n       * Whether the integration name matched the search term\n       */\n      name?: boolean;\n      /**\n       * Whether the integration title matched the search term\n       */\n      title?: boolean;\n      /**\n       * Whether the integration description matched the search term\n       */\n      description?: boolean;\n      /**\n       * Action names that matched the search term\n       */\n      actions?: string[];\n      /**\n       * Interface names that matched the search term\n       */\n      interfaces?: string[];\n    };\n    ownerWorkspace?: {\n      id: string;\n      handle: string | null;\n      name: string;\n    };\n    /**\n     * Optional key-value attributes from the integration definition\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  }[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetIntegrationRequestHeaders {}\n\nexport interface GetIntegrationRequestQuery {}\n\nexport interface GetIntegrationRequestParams {\n  id: string;\n}\n\nexport interface GetIntegrationRequestBody {}\n\nexport type GetIntegrationInput = GetIntegrationRequestBody & GetIntegrationRequestHeaders & GetIntegrationRequestQuery & GetIntegrationRequestParams\n\nexport type GetIntegrationRequest = {\n  headers: GetIntegrationRequestHeaders;\n  query: GetIntegrationRequestQuery;\n  params: GetIntegrationRequestParams;\n  body: GetIntegrationRequestBody;\n}\n\nexport const parseReq = (input: GetIntegrationInput): GetIntegrationRequest & { path: string } => {\n  return {\n    path: `/v1/admin/integrations/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetIntegrationResponse {\n  integration: {\n    /**\n     * ID of the [Integration](#schema_integration)\n     */\n    id: string;\n    /**\n     * Creation date of the [Integration](#schema_integration) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Integration](#schema_integration) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Global identifier configuration of the [Integration](#schema_integration)\n     */\n    identifier: {\n      /**\n       * VRL Script of the [Integration](#schema_integration) to handle incoming requests for a request that doesn't have an identifier\n       */\n      fallbackHandlerScript?: string;\n      /**\n       * VRL Script of the [Integration](#schema_integration) to extract the identifier from an incoming webhook often use for OAuth\n       */\n      extractScript?: string;\n    };\n    sandbox?: {\n      /**\n       * VRL Script of the [Integration](#schema_integration) to extract the identifier from an incoming webhook used specifically for the sandbox\n       */\n      identifierExtractScript?: string;\n      /**\n       * VRL Script of the [Integration](#schema_integration) to extract the message from an incoming webhook used specifically for the sandbox\n       */\n      messageExtractScript?: string;\n    };\n    /**\n     * Maximum execution time of the integration (in seconds).\n     */\n    maxExecutionTime?: number;\n    /**\n     * URL of the [Integration](#schema_integration)\n     */\n    url: string;\n    /**\n     * Signing secret of the [Integration](#schema_integration). This field is only visible when creating a new integration or when rotating the signing secret of an existing integration.\n     */\n    signingSecret: string;\n    /**\n     * Name of the [Integration](#schema_integration)\n     */\n    name: string;\n    /**\n     * Version of the [Integration](#schema_integration)\n     */\n    version: string;\n    interfaces: {\n      [k: string]: {\n        /**\n         * ID of the interface\n         */\n        id: string;\n        /**\n         * Name of the interface\n         */\n        name: string;\n        /**\n         * Version of the interface\n         */\n        version: string;\n        entities: {\n          [k: string]: {\n            name: string;\n          };\n        };\n        actions: {\n          [k: string]: {\n            name: string;\n          };\n        };\n        events: {\n          [k: string]: {\n            name: string;\n          };\n        };\n        channels: {\n          [k: string]: {\n            name: string;\n          };\n        };\n      };\n    };\n    /**\n     * Configuration definition\n     */\n    configuration: {\n      /**\n       * Title of the configuration\n       */\n      title?: string;\n      /**\n       * Description of the configuration\n       */\n      description?: string;\n      /**\n       * Identifier configuration of the [Integration](#schema_integration)\n       */\n      identifier: {\n        linkTemplateScript?: string;\n        required: boolean;\n      };\n      /**\n       * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n       */\n      schema: {\n        [k: string]: any;\n      };\n    };\n    configurations: {\n      /**\n       * Configuration definition\n       */\n      [k: string]: {\n        /**\n         * Title of the configuration\n         */\n        title?: string;\n        /**\n         * Description of the configuration\n         */\n        description?: string;\n        /**\n         * Identifier configuration of the [Integration](#schema_integration)\n         */\n        identifier: {\n          linkTemplateScript?: string;\n          required: boolean;\n        };\n        /**\n         * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n         */\n        schema: {\n          [k: string]: any;\n        };\n      };\n    };\n    channels: {\n      /**\n       * Channel definition\n       */\n      [k: string]: {\n        /**\n         * Title of the channel\n         */\n        title?: string;\n        /**\n         * Description of the channel\n         */\n        description?: string;\n        messages: {\n          /**\n           * Message definition\n           */\n          [k: string]: {\n            schema: {\n              [k: string]: any;\n            };\n          };\n        };\n        /**\n         * Conversation object configuration\n         */\n        conversation: {\n          tags: {\n            /**\n             * Definition of a tag that can be provided on the object\n             */\n            [k: string]: {\n              /**\n               * Title of the tag\n               */\n              title?: string;\n              /**\n               * Description of the tag\n               */\n              description?: string;\n            };\n          };\n          /**\n           * The conversation creation setting determines how to create a conversation through the API directly. The integration will have to implement the `createConversation` functionality to support this setting.\n           */\n          creation: {\n            /**\n             * Enable conversation creation\n             */\n            enabled: boolean;\n            /**\n             * The list of tags that are required to be specified when calling the API directly to create a conversation.\n             */\n            requiredTags: string[];\n          };\n        };\n        /**\n         * Message object configuration\n         */\n        message: {\n          tags: {\n            /**\n             * Definition of a tag that can be provided on the object\n             */\n            [k: string]: {\n              /**\n               * Title of the tag\n               */\n              title?: string;\n              /**\n               * Description of the tag\n               */\n              description?: string;\n            };\n          };\n        };\n      };\n    };\n    states: {\n      /**\n       * State definition\n       */\n      [k: string]: {\n        /**\n         * Type of the [State](#schema_state) (`conversation`, `user` or `integration`)\n         */\n        type: \"conversation\" | \"user\" | \"integration\";\n        /**\n         * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n         */\n        schema: {\n          [k: string]: any;\n        };\n      };\n    };\n    events: {\n      /**\n       * Event Definition\n       */\n      [k: string]: {\n        /**\n         * Title of the event\n         */\n        title?: string;\n        /**\n         * Description of the event\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    actions: {\n      /**\n       * Action definition\n       */\n      [k: string]: {\n        /**\n         * Title of the action\n         */\n        title?: string;\n        /**\n         * Description of the action\n         */\n        description?: string;\n        billable?: boolean;\n        cacheable?: boolean;\n        input: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        output: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    /**\n     * User object configuration\n     */\n    user: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n      /**\n       * The user creation setting determines how to create a user through the API directly. The integration will have to implement the `createUser` functionality to support this setting.\n       */\n      creation: {\n        /**\n         * Enable user creation\n         */\n        enabled: boolean;\n        /**\n         * The list of tags that are required to be specified when calling the API directly to create a user.\n         */\n        requiredTags: string[];\n      };\n    };\n    entities: {\n      /**\n       * Entity definition\n       */\n      [k: string]: {\n        /**\n         * Title of the entity\n         */\n        title?: string;\n        /**\n         * Description of the entity\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n      };\n    };\n    /**\n     * Indicates if the integration is a development integration; Dev integrations run locally\n     */\n    dev: boolean;\n    /**\n     * Title of the integration. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the integration. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the integration. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * URL of the readme of the integration. This is the readme that will be displayed in the UI\n     */\n    readmeUrl: string;\n    /**\n     * @deprecated\n     * [DEPRECATED] Indicates whether the integration is public. Please use the \"visibility\" parameter instead.\n     */\n    public: boolean;\n    /**\n     * The integration's visibility. Public integrations are available to all and cannot be updated without creating a new version. Unlisted integrations behave identically to public integrations, but they are not listed in the integration hub. By default, integrations are private and only accessible to the workspace that created them.\n     */\n    visibility: \"public\" | \"private\" | \"unlisted\";\n    /**\n     * Status of the integration version verification\n     */\n    verificationStatus: \"unapproved\" | \"pending\" | \"approved\" | \"rejected\";\n    /**\n     * The lifecycle status of the integration. When an integration is deprecated, it can no longer be installed.\n     */\n    lifecycleStatus: \"published\" | \"deprecated\";\n    /**\n     * Secrets are integration-wide values available in the code via environment variables formatted with a SECRET_ prefix followed by your secret name. A secret name must respect SCREAMING_SNAKE casing.\n     */\n    secrets: string[];\n    /**\n     * Optional key-value attributes from the integration definition\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetIntegrationLogsRequestHeaders {}\n\nexport interface GetIntegrationLogsRequestQuery {\n  timeStart: string;\n  timeEnd?: string;\n  level?: string;\n  userId?: string;\n  conversationId?: string;\n  messageContains?: string;\n  nextToken?: string;\n}\n\nexport interface GetIntegrationLogsRequestParams {\n  id: string;\n}\n\nexport interface GetIntegrationLogsRequestBody {}\n\nexport type GetIntegrationLogsInput = GetIntegrationLogsRequestBody & GetIntegrationLogsRequestHeaders & GetIntegrationLogsRequestQuery & GetIntegrationLogsRequestParams\n\nexport type GetIntegrationLogsRequest = {\n  headers: GetIntegrationLogsRequestHeaders;\n  query: GetIntegrationLogsRequestQuery;\n  params: GetIntegrationLogsRequestParams;\n  body: GetIntegrationLogsRequestBody;\n}\n\nexport const parseReq = (input: GetIntegrationLogsInput): GetIntegrationLogsRequest & { path: string } => {\n  return {\n    path: `/v1/admin/integrations/${encodeURIComponent(input['id'])}/logs`,\n    headers: {  },\n    query: { 'timeStart': input['timeStart'], 'timeEnd': input['timeEnd'], 'level': input['level'], 'userId': input['userId'], 'conversationId': input['conversationId'], 'messageContains': input['messageContains'], 'nextToken': input['nextToken'] },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetIntegrationLogsResponse {\n  logs: {\n    timestamp: string;\n    level: string;\n    message: string;\n    workflowId?: string;\n    userId?: string;\n    conversationId?: string;\n  }[];\n  nextToken?: string;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetIntegrationByNameRequestHeaders {}\n\nexport interface GetIntegrationByNameRequestQuery {}\n\nexport interface GetIntegrationByNameRequestParams {\n  name: string;\n  version: string;\n}\n\nexport interface GetIntegrationByNameRequestBody {}\n\nexport type GetIntegrationByNameInput = GetIntegrationByNameRequestBody & GetIntegrationByNameRequestHeaders & GetIntegrationByNameRequestQuery & GetIntegrationByNameRequestParams\n\nexport type GetIntegrationByNameRequest = {\n  headers: GetIntegrationByNameRequestHeaders;\n  query: GetIntegrationByNameRequestQuery;\n  params: GetIntegrationByNameRequestParams;\n  body: GetIntegrationByNameRequestBody;\n}\n\nexport const parseReq = (input: GetIntegrationByNameInput): GetIntegrationByNameRequest & { path: string } => {\n  return {\n    path: `/v1/admin/integrations/${encodeURIComponent(input['name'])}/${encodeURIComponent(input['version'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'name': input['name'], 'version': input['version'] },\n    body: {  },\n  }\n}\n\nexport interface GetIntegrationByNameResponse {\n  integration: {\n    /**\n     * ID of the [Integration](#schema_integration)\n     */\n    id: string;\n    /**\n     * Creation date of the [Integration](#schema_integration) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Integration](#schema_integration) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Global identifier configuration of the [Integration](#schema_integration)\n     */\n    identifier: {\n      /**\n       * VRL Script of the [Integration](#schema_integration) to handle incoming requests for a request that doesn't have an identifier\n       */\n      fallbackHandlerScript?: string;\n      /**\n       * VRL Script of the [Integration](#schema_integration) to extract the identifier from an incoming webhook often use for OAuth\n       */\n      extractScript?: string;\n    };\n    sandbox?: {\n      /**\n       * VRL Script of the [Integration](#schema_integration) to extract the identifier from an incoming webhook used specifically for the sandbox\n       */\n      identifierExtractScript?: string;\n      /**\n       * VRL Script of the [Integration](#schema_integration) to extract the message from an incoming webhook used specifically for the sandbox\n       */\n      messageExtractScript?: string;\n    };\n    /**\n     * Maximum execution time of the integration (in seconds).\n     */\n    maxExecutionTime?: number;\n    /**\n     * URL of the [Integration](#schema_integration)\n     */\n    url: string;\n    /**\n     * Signing secret of the [Integration](#schema_integration). This field is only visible when creating a new integration or when rotating the signing secret of an existing integration.\n     */\n    signingSecret: string;\n    /**\n     * Name of the [Integration](#schema_integration)\n     */\n    name: string;\n    /**\n     * Version of the [Integration](#schema_integration)\n     */\n    version: string;\n    interfaces: {\n      [k: string]: {\n        /**\n         * ID of the interface\n         */\n        id: string;\n        /**\n         * Name of the interface\n         */\n        name: string;\n        /**\n         * Version of the interface\n         */\n        version: string;\n        entities: {\n          [k: string]: {\n            name: string;\n          };\n        };\n        actions: {\n          [k: string]: {\n            name: string;\n          };\n        };\n        events: {\n          [k: string]: {\n            name: string;\n          };\n        };\n        channels: {\n          [k: string]: {\n            name: string;\n          };\n        };\n      };\n    };\n    /**\n     * Configuration definition\n     */\n    configuration: {\n      /**\n       * Title of the configuration\n       */\n      title?: string;\n      /**\n       * Description of the configuration\n       */\n      description?: string;\n      /**\n       * Identifier configuration of the [Integration](#schema_integration)\n       */\n      identifier: {\n        linkTemplateScript?: string;\n        required: boolean;\n      };\n      /**\n       * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n       */\n      schema: {\n        [k: string]: any;\n      };\n    };\n    configurations: {\n      /**\n       * Configuration definition\n       */\n      [k: string]: {\n        /**\n         * Title of the configuration\n         */\n        title?: string;\n        /**\n         * Description of the configuration\n         */\n        description?: string;\n        /**\n         * Identifier configuration of the [Integration](#schema_integration)\n         */\n        identifier: {\n          linkTemplateScript?: string;\n          required: boolean;\n        };\n        /**\n         * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n         */\n        schema: {\n          [k: string]: any;\n        };\n      };\n    };\n    channels: {\n      /**\n       * Channel definition\n       */\n      [k: string]: {\n        /**\n         * Title of the channel\n         */\n        title?: string;\n        /**\n         * Description of the channel\n         */\n        description?: string;\n        messages: {\n          /**\n           * Message definition\n           */\n          [k: string]: {\n            schema: {\n              [k: string]: any;\n            };\n          };\n        };\n        /**\n         * Conversation object configuration\n         */\n        conversation: {\n          tags: {\n            /**\n             * Definition of a tag that can be provided on the object\n             */\n            [k: string]: {\n              /**\n               * Title of the tag\n               */\n              title?: string;\n              /**\n               * Description of the tag\n               */\n              description?: string;\n            };\n          };\n          /**\n           * The conversation creation setting determines how to create a conversation through the API directly. The integration will have to implement the `createConversation` functionality to support this setting.\n           */\n          creation: {\n            /**\n             * Enable conversation creation\n             */\n            enabled: boolean;\n            /**\n             * The list of tags that are required to be specified when calling the API directly to create a conversation.\n             */\n            requiredTags: string[];\n          };\n        };\n        /**\n         * Message object configuration\n         */\n        message: {\n          tags: {\n            /**\n             * Definition of a tag that can be provided on the object\n             */\n            [k: string]: {\n              /**\n               * Title of the tag\n               */\n              title?: string;\n              /**\n               * Description of the tag\n               */\n              description?: string;\n            };\n          };\n        };\n      };\n    };\n    states: {\n      /**\n       * State definition\n       */\n      [k: string]: {\n        /**\n         * Type of the [State](#schema_state) (`conversation`, `user` or `integration`)\n         */\n        type: \"conversation\" | \"user\" | \"integration\";\n        /**\n         * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n         */\n        schema: {\n          [k: string]: any;\n        };\n      };\n    };\n    events: {\n      /**\n       * Event Definition\n       */\n      [k: string]: {\n        /**\n         * Title of the event\n         */\n        title?: string;\n        /**\n         * Description of the event\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    actions: {\n      /**\n       * Action definition\n       */\n      [k: string]: {\n        /**\n         * Title of the action\n         */\n        title?: string;\n        /**\n         * Description of the action\n         */\n        description?: string;\n        billable?: boolean;\n        cacheable?: boolean;\n        input: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        output: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    /**\n     * User object configuration\n     */\n    user: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n      /**\n       * The user creation setting determines how to create a user through the API directly. The integration will have to implement the `createUser` functionality to support this setting.\n       */\n      creation: {\n        /**\n         * Enable user creation\n         */\n        enabled: boolean;\n        /**\n         * The list of tags that are required to be specified when calling the API directly to create a user.\n         */\n        requiredTags: string[];\n      };\n    };\n    entities: {\n      /**\n       * Entity definition\n       */\n      [k: string]: {\n        /**\n         * Title of the entity\n         */\n        title?: string;\n        /**\n         * Description of the entity\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n      };\n    };\n    /**\n     * Indicates if the integration is a development integration; Dev integrations run locally\n     */\n    dev: boolean;\n    /**\n     * Title of the integration. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the integration. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the integration. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * URL of the readme of the integration. This is the readme that will be displayed in the UI\n     */\n    readmeUrl: string;\n    /**\n     * @deprecated\n     * [DEPRECATED] Indicates whether the integration is public. Please use the \"visibility\" parameter instead.\n     */\n    public: boolean;\n    /**\n     * The integration's visibility. Public integrations are available to all and cannot be updated without creating a new version. Unlisted integrations behave identically to public integrations, but they are not listed in the integration hub. By default, integrations are private and only accessible to the workspace that created them.\n     */\n    visibility: \"public\" | \"private\" | \"unlisted\";\n    /**\n     * Status of the integration version verification\n     */\n    verificationStatus: \"unapproved\" | \"pending\" | \"approved\" | \"rejected\";\n    /**\n     * The lifecycle status of the integration. When an integration is deprecated, it can no longer be installed.\n     */\n    lifecycleStatus: \"published\" | \"deprecated\";\n    /**\n     * Secrets are integration-wide values available in the code via environment variables formatted with a SECRET_ prefix followed by your secret name. A secret name must respect SCREAMING_SNAKE casing.\n     */\n    secrets: string[];\n    /**\n     * Optional key-value attributes from the integration definition\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface DeleteIntegrationRequestHeaders {}\n\nexport interface DeleteIntegrationRequestQuery {}\n\nexport interface DeleteIntegrationRequestParams {\n  id: string;\n}\n\nexport interface DeleteIntegrationRequestBody {}\n\nexport type DeleteIntegrationInput = DeleteIntegrationRequestBody & DeleteIntegrationRequestHeaders & DeleteIntegrationRequestQuery & DeleteIntegrationRequestParams\n\nexport type DeleteIntegrationRequest = {\n  headers: DeleteIntegrationRequestHeaders;\n  query: DeleteIntegrationRequestQuery;\n  params: DeleteIntegrationRequestParams;\n  body: DeleteIntegrationRequestBody;\n}\n\nexport const parseReq = (input: DeleteIntegrationInput): DeleteIntegrationRequest & { path: string } => {\n  return {\n    path: `/v1/admin/integrations/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface DeleteIntegrationResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface RequestIntegrationVerificationRequestHeaders {}\n\nexport interface RequestIntegrationVerificationRequestQuery {}\n\nexport interface RequestIntegrationVerificationRequestParams {}\n\nexport interface RequestIntegrationVerificationRequestBody {\n  integrationId: string;\n}\n\nexport type RequestIntegrationVerificationInput = RequestIntegrationVerificationRequestBody & RequestIntegrationVerificationRequestHeaders & RequestIntegrationVerificationRequestQuery & RequestIntegrationVerificationRequestParams\n\nexport type RequestIntegrationVerificationRequest = {\n  headers: RequestIntegrationVerificationRequestHeaders;\n  query: RequestIntegrationVerificationRequestQuery;\n  params: RequestIntegrationVerificationRequestParams;\n  body: RequestIntegrationVerificationRequestBody;\n}\n\nexport const parseReq = (input: RequestIntegrationVerificationInput): RequestIntegrationVerificationRequest & { path: string } => {\n  return {\n    path: `/v1/admin/integrations/request-verification`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'integrationId': input['integrationId'] },\n  }\n}\n\nexport interface RequestIntegrationVerificationResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CreateInterfaceRequestHeaders {}\n\nexport interface CreateInterfaceRequestQuery {}\n\nexport interface CreateInterfaceRequestParams {}\n\nexport interface CreateInterfaceRequestBody {\n  /**\n   * Name of the [Interface](#schema_interface)\n   */\n  name: string;\n  /**\n   * Version of the [Interface](#schema_interface)\n   */\n  version: string;\n  entities?: {\n    /**\n     * Entity definition\n     */\n    [k: string]: {\n      /**\n       * Title of the entity\n       */\n      title?: string;\n      /**\n       * Description of the entity\n       */\n      description?: string;\n      schema: {\n        [k: string]: any;\n      };\n    };\n  };\n  events?: {\n    /**\n     * Event Definition\n     */\n    [k: string]: {\n      /**\n       * Title of the event\n       */\n      title?: string;\n      /**\n       * Description of the event\n       */\n      description?: string;\n      schema: {\n        [k: string]: any;\n      };\n      /**\n       * Optional attributes\n       */\n      attributes?: {\n        [k: string]: string;\n      };\n    };\n  };\n  actions?: {\n    /**\n     * Action definition\n     */\n    [k: string]: {\n      /**\n       * Title of the action\n       */\n      title?: string;\n      /**\n       * Description of the action\n       */\n      description?: string;\n      billable?: boolean;\n      cacheable?: boolean;\n      input: {\n        schema: {\n          [k: string]: any;\n        };\n      };\n      output: {\n        schema: {\n          [k: string]: any;\n        };\n      };\n      /**\n       * Optional attributes\n       */\n      attributes?: {\n        [k: string]: string;\n      };\n    };\n  };\n  channels?: {\n    [k: string]: {\n      /**\n       * Title of the channel\n       */\n      title?: string;\n      /**\n       * Description of the channel\n       */\n      description?: string;\n      messages: {\n        /**\n         * Message definition\n         */\n        [k: string]: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n      };\n    };\n  };\n  /**\n   * Template string optionaly used at build time by integrations implementing this interface to pick a name for actions and events.\n   */\n  nameTemplate?: {\n    script: string;\n    language: string;\n  };\n  sdkVersion?: string;\n  /**\n   * Base64 encoded svg of the interface icon. This icon is global to the interface each versions will be updated when this changes.\n   */\n  icon?: string;\n  /**\n   * Base64 encoded markdown of the interface readme. The readme is specific to each interface versions.\n   */\n  readme?: string;\n  /**\n   * Title of the interface. This is the name that will be displayed in the UI\n   */\n  title?: string;\n  /**\n   * Description of the interface. This is the description that will be displayed in the UI\n   */\n  description?: string;\n  /**\n   * Indicates if the interface is public. Public interfaces are available to all and cannot be updated without creating a new version.\n   */\n  public?: boolean;\n  /**\n   * Optional key-value attributes from the interface definition\n   */\n  attributes?: {\n    [k: string]: string;\n  };\n}\n\nexport type CreateInterfaceInput = CreateInterfaceRequestBody & CreateInterfaceRequestHeaders & CreateInterfaceRequestQuery & CreateInterfaceRequestParams\n\nexport type CreateInterfaceRequest = {\n  headers: CreateInterfaceRequestHeaders;\n  query: CreateInterfaceRequestQuery;\n  params: CreateInterfaceRequestParams;\n  body: CreateInterfaceRequestBody;\n}\n\nexport const parseReq = (input: CreateInterfaceInput): CreateInterfaceRequest & { path: string } => {\n  return {\n    path: `/v1/admin/interfaces`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'name': input['name'], 'version': input['version'], 'entities': input['entities'], 'events': input['events'], 'actions': input['actions'], 'channels': input['channels'], 'nameTemplate': input['nameTemplate'], 'sdkVersion': input['sdkVersion'], 'icon': input['icon'], 'readme': input['readme'], 'title': input['title'], 'description': input['description'], 'public': input['public'], 'attributes': input['attributes'] },\n  }\n}\n\nexport interface CreateInterfaceResponse {\n  interface: {\n    /**\n     * ID of the [Interface](#schema_interface)\n     */\n    id: string;\n    /**\n     * Creation date of the [Interface](#schema_interface) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Interface](#schema_interface) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Name of the [Interface](#schema_interface)\n     */\n    name: string;\n    /**\n     * Version of the [Interface](#schema_interface)\n     */\n    version: string;\n    entities: {\n      /**\n       * Entity definition\n       */\n      [k: string]: {\n        /**\n         * Title of the entity\n         */\n        title?: string;\n        /**\n         * Description of the entity\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n      };\n    };\n    events: {\n      /**\n       * Event Definition\n       */\n      [k: string]: {\n        /**\n         * Title of the event\n         */\n        title?: string;\n        /**\n         * Description of the event\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    actions: {\n      /**\n       * Action definition\n       */\n      [k: string]: {\n        /**\n         * Title of the action\n         */\n        title?: string;\n        /**\n         * Description of the action\n         */\n        description?: string;\n        billable?: boolean;\n        cacheable?: boolean;\n        input: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        output: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    channels: {\n      [k: string]: {\n        /**\n         * Title of the channel\n         */\n        title?: string;\n        /**\n         * Description of the channel\n         */\n        description?: string;\n        messages: {\n          /**\n           * Message definition\n           */\n          [k: string]: {\n            schema: {\n              [k: string]: any;\n            };\n          };\n        };\n      };\n    };\n    /**\n     * Template string optionaly used at build time by integrations implementing this interface to pick a name for actions and events.\n     */\n    nameTemplate?: {\n      script: string;\n      language: string;\n    };\n    /**\n     * Title of the interface. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the interface. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the interface. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * URL of the readme of the interface. This is the readme that will be displayed in the UI\n     */\n    readmeUrl: string;\n    /**\n     * Indicates if the interface is public. Public interfaces are available to all and cannot be updated without creating a new version.\n     */\n    public: boolean;\n    /**\n     * Optional key-value attributes from the interface definition\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetInterfaceRequestHeaders {}\n\nexport interface GetInterfaceRequestQuery {}\n\nexport interface GetInterfaceRequestParams {\n  id: string;\n}\n\nexport interface GetInterfaceRequestBody {}\n\nexport type GetInterfaceInput = GetInterfaceRequestBody & GetInterfaceRequestHeaders & GetInterfaceRequestQuery & GetInterfaceRequestParams\n\nexport type GetInterfaceRequest = {\n  headers: GetInterfaceRequestHeaders;\n  query: GetInterfaceRequestQuery;\n  params: GetInterfaceRequestParams;\n  body: GetInterfaceRequestBody;\n}\n\nexport const parseReq = (input: GetInterfaceInput): GetInterfaceRequest & { path: string } => {\n  return {\n    path: `/v1/admin/interfaces/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetInterfaceResponse {\n  interface: {\n    /**\n     * ID of the [Interface](#schema_interface)\n     */\n    id: string;\n    /**\n     * Creation date of the [Interface](#schema_interface) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Interface](#schema_interface) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Name of the [Interface](#schema_interface)\n     */\n    name: string;\n    /**\n     * Version of the [Interface](#schema_interface)\n     */\n    version: string;\n    entities: {\n      /**\n       * Entity definition\n       */\n      [k: string]: {\n        /**\n         * Title of the entity\n         */\n        title?: string;\n        /**\n         * Description of the entity\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n      };\n    };\n    events: {\n      /**\n       * Event Definition\n       */\n      [k: string]: {\n        /**\n         * Title of the event\n         */\n        title?: string;\n        /**\n         * Description of the event\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    actions: {\n      /**\n       * Action definition\n       */\n      [k: string]: {\n        /**\n         * Title of the action\n         */\n        title?: string;\n        /**\n         * Description of the action\n         */\n        description?: string;\n        billable?: boolean;\n        cacheable?: boolean;\n        input: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        output: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    channels: {\n      [k: string]: {\n        /**\n         * Title of the channel\n         */\n        title?: string;\n        /**\n         * Description of the channel\n         */\n        description?: string;\n        messages: {\n          /**\n           * Message definition\n           */\n          [k: string]: {\n            schema: {\n              [k: string]: any;\n            };\n          };\n        };\n      };\n    };\n    /**\n     * Template string optionaly used at build time by integrations implementing this interface to pick a name for actions and events.\n     */\n    nameTemplate?: {\n      script: string;\n      language: string;\n    };\n    /**\n     * Title of the interface. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the interface. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the interface. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * URL of the readme of the interface. This is the readme that will be displayed in the UI\n     */\n    readmeUrl: string;\n    /**\n     * Indicates if the interface is public. Public interfaces are available to all and cannot be updated without creating a new version.\n     */\n    public: boolean;\n    /**\n     * Optional key-value attributes from the interface definition\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetInterfaceByNameRequestHeaders {}\n\nexport interface GetInterfaceByNameRequestQuery {}\n\nexport interface GetInterfaceByNameRequestParams {\n  name: string;\n  version: string;\n}\n\nexport interface GetInterfaceByNameRequestBody {}\n\nexport type GetInterfaceByNameInput = GetInterfaceByNameRequestBody & GetInterfaceByNameRequestHeaders & GetInterfaceByNameRequestQuery & GetInterfaceByNameRequestParams\n\nexport type GetInterfaceByNameRequest = {\n  headers: GetInterfaceByNameRequestHeaders;\n  query: GetInterfaceByNameRequestQuery;\n  params: GetInterfaceByNameRequestParams;\n  body: GetInterfaceByNameRequestBody;\n}\n\nexport const parseReq = (input: GetInterfaceByNameInput): GetInterfaceByNameRequest & { path: string } => {\n  return {\n    path: `/v1/admin/interfaces/${encodeURIComponent(input['name'])}/${encodeURIComponent(input['version'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'name': input['name'], 'version': input['version'] },\n    body: {  },\n  }\n}\n\nexport interface GetInterfaceByNameResponse {\n  interface: {\n    /**\n     * ID of the [Interface](#schema_interface)\n     */\n    id: string;\n    /**\n     * Creation date of the [Interface](#schema_interface) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Interface](#schema_interface) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Name of the [Interface](#schema_interface)\n     */\n    name: string;\n    /**\n     * Version of the [Interface](#schema_interface)\n     */\n    version: string;\n    entities: {\n      /**\n       * Entity definition\n       */\n      [k: string]: {\n        /**\n         * Title of the entity\n         */\n        title?: string;\n        /**\n         * Description of the entity\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n      };\n    };\n    events: {\n      /**\n       * Event Definition\n       */\n      [k: string]: {\n        /**\n         * Title of the event\n         */\n        title?: string;\n        /**\n         * Description of the event\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    actions: {\n      /**\n       * Action definition\n       */\n      [k: string]: {\n        /**\n         * Title of the action\n         */\n        title?: string;\n        /**\n         * Description of the action\n         */\n        description?: string;\n        billable?: boolean;\n        cacheable?: boolean;\n        input: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        output: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    channels: {\n      [k: string]: {\n        /**\n         * Title of the channel\n         */\n        title?: string;\n        /**\n         * Description of the channel\n         */\n        description?: string;\n        messages: {\n          /**\n           * Message definition\n           */\n          [k: string]: {\n            schema: {\n              [k: string]: any;\n            };\n          };\n        };\n      };\n    };\n    /**\n     * Template string optionaly used at build time by integrations implementing this interface to pick a name for actions and events.\n     */\n    nameTemplate?: {\n      script: string;\n      language: string;\n    };\n    /**\n     * Title of the interface. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the interface. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the interface. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * URL of the readme of the interface. This is the readme that will be displayed in the UI\n     */\n    readmeUrl: string;\n    /**\n     * Indicates if the interface is public. Public interfaces are available to all and cannot be updated without creating a new version.\n     */\n    public: boolean;\n    /**\n     * Optional key-value attributes from the interface definition\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface UpdateInterfaceRequestHeaders {}\n\nexport interface UpdateInterfaceRequestQuery {}\n\nexport interface UpdateInterfaceRequestParams {\n  id: string;\n}\n\nexport interface UpdateInterfaceRequestBody {\n  entities?: {\n    /**\n     * Entity definition\n     */\n    [k: string]: {\n      /**\n       * Title of the entity\n       */\n      title?: string;\n      /**\n       * Description of the entity\n       */\n      description?: string;\n      schema: {\n        [k: string]: any;\n      };\n    } | null;\n  };\n  events?: {\n    [k: string]: {\n      /**\n       * Title of the event\n       */\n      title?: string;\n      /**\n       * Description of the event\n       */\n      description?: string;\n      schema: {\n        [k: string]: any;\n      };\n      /**\n       * Optional attributes. Set attributes to null to remove them\n       */\n      attributes?: {\n        [k: string]: string | null;\n      };\n    } | null;\n  };\n  actions?: {\n    [k: string]: {\n      /**\n       * Title of the action\n       */\n      title?: string;\n      /**\n       * Description of the action\n       */\n      description?: string;\n      billable?: boolean;\n      cacheable?: boolean;\n      input: {\n        schema: {\n          [k: string]: any;\n        };\n      };\n      output: {\n        schema: {\n          [k: string]: any;\n        };\n      };\n      /**\n       * Optional attributes. Set attributes to null to remove them\n       */\n      attributes?: {\n        [k: string]: string | null;\n      };\n    } | null;\n  };\n  channels?: {\n    [k: string]: {\n      /**\n       * Title of the channel\n       */\n      title?: string;\n      /**\n       * Description of the channel\n       */\n      description?: string;\n      messages?: {\n        /**\n         * Message definition\n         */\n        [k: string]: {\n          schema: {\n            [k: string]: any;\n          };\n        } | null;\n      };\n    } | null;\n  };\n  /**\n   * Template string optionaly used at build time by integrations implementing this interface to pick a name for actions and events.\n   */\n  nameTemplate?: {\n    script: string;\n    language: string;\n  } | null;\n  sdkVersion?: string;\n  /**\n   * Base64 encoded svg of the interface icon. This icon is global to the interface each versions will be updated when this changes.\n   */\n  icon?: string;\n  /**\n   * Base64 encoded markdown of the interface readme. The readme is specific to each interface versions.\n   */\n  readme?: string;\n  /**\n   * Title of the interface. This is the name that will be displayed in the UI\n   */\n  title?: string;\n  /**\n   * Description of the interface. This is the description that will be displayed in the UI\n   */\n  description?: string;\n  /**\n   * Indicates if the interface is public. Public interfaces are available to all and cannot be updated without creating a new version.\n   */\n  public?: boolean;\n  /**\n   * Optional key-value attributes. Set attributes to null to remove them\n   */\n  attributes?: {\n    [k: string]: string | null;\n  };\n}\n\nexport type UpdateInterfaceInput = UpdateInterfaceRequestBody & UpdateInterfaceRequestHeaders & UpdateInterfaceRequestQuery & UpdateInterfaceRequestParams\n\nexport type UpdateInterfaceRequest = {\n  headers: UpdateInterfaceRequestHeaders;\n  query: UpdateInterfaceRequestQuery;\n  params: UpdateInterfaceRequestParams;\n  body: UpdateInterfaceRequestBody;\n}\n\nexport const parseReq = (input: UpdateInterfaceInput): UpdateInterfaceRequest & { path: string } => {\n  return {\n    path: `/v1/admin/interfaces/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: { 'entities': input['entities'], 'events': input['events'], 'actions': input['actions'], 'channels': input['channels'], 'nameTemplate': input['nameTemplate'], 'sdkVersion': input['sdkVersion'], 'icon': input['icon'], 'readme': input['readme'], 'title': input['title'], 'description': input['description'], 'public': input['public'], 'attributes': input['attributes'] },\n  }\n}\n\nexport interface UpdateInterfaceResponse {\n  interface: {\n    /**\n     * ID of the [Interface](#schema_interface)\n     */\n    id: string;\n    /**\n     * Creation date of the [Interface](#schema_interface) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Interface](#schema_interface) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Name of the [Interface](#schema_interface)\n     */\n    name: string;\n    /**\n     * Version of the [Interface](#schema_interface)\n     */\n    version: string;\n    entities: {\n      /**\n       * Entity definition\n       */\n      [k: string]: {\n        /**\n         * Title of the entity\n         */\n        title?: string;\n        /**\n         * Description of the entity\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n      };\n    };\n    events: {\n      /**\n       * Event Definition\n       */\n      [k: string]: {\n        /**\n         * Title of the event\n         */\n        title?: string;\n        /**\n         * Description of the event\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    actions: {\n      /**\n       * Action definition\n       */\n      [k: string]: {\n        /**\n         * Title of the action\n         */\n        title?: string;\n        /**\n         * Description of the action\n         */\n        description?: string;\n        billable?: boolean;\n        cacheable?: boolean;\n        input: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        output: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    channels: {\n      [k: string]: {\n        /**\n         * Title of the channel\n         */\n        title?: string;\n        /**\n         * Description of the channel\n         */\n        description?: string;\n        messages: {\n          /**\n           * Message definition\n           */\n          [k: string]: {\n            schema: {\n              [k: string]: any;\n            };\n          };\n        };\n      };\n    };\n    /**\n     * Template string optionaly used at build time by integrations implementing this interface to pick a name for actions and events.\n     */\n    nameTemplate?: {\n      script: string;\n      language: string;\n    };\n    /**\n     * Title of the interface. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the interface. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the interface. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * URL of the readme of the interface. This is the readme that will be displayed in the UI\n     */\n    readmeUrl: string;\n    /**\n     * Indicates if the interface is public. Public interfaces are available to all and cannot be updated without creating a new version.\n     */\n    public: boolean;\n    /**\n     * Optional key-value attributes from the interface definition\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface DeleteInterfaceRequestHeaders {}\n\nexport interface DeleteInterfaceRequestQuery {}\n\nexport interface DeleteInterfaceRequestParams {\n  id: string;\n}\n\nexport interface DeleteInterfaceRequestBody {}\n\nexport type DeleteInterfaceInput = DeleteInterfaceRequestBody & DeleteInterfaceRequestHeaders & DeleteInterfaceRequestQuery & DeleteInterfaceRequestParams\n\nexport type DeleteInterfaceRequest = {\n  headers: DeleteInterfaceRequestHeaders;\n  query: DeleteInterfaceRequestQuery;\n  params: DeleteInterfaceRequestParams;\n  body: DeleteInterfaceRequestBody;\n}\n\nexport const parseReq = (input: DeleteInterfaceInput): DeleteInterfaceRequest & { path: string } => {\n  return {\n    path: `/v1/admin/interfaces/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface DeleteInterfaceResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListInterfacesRequestHeaders {}\n\nexport interface ListInterfacesRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n  name?: string;\n  version?: string;\n}\n\nexport interface ListInterfacesRequestParams {}\n\nexport interface ListInterfacesRequestBody {}\n\nexport type ListInterfacesInput = ListInterfacesRequestBody & ListInterfacesRequestHeaders & ListInterfacesRequestQuery & ListInterfacesRequestParams\n\nexport type ListInterfacesRequest = {\n  headers: ListInterfacesRequestHeaders;\n  query: ListInterfacesRequestQuery;\n  params: ListInterfacesRequestParams;\n  body: ListInterfacesRequestBody;\n}\n\nexport const parseReq = (input: ListInterfacesInput): ListInterfacesRequest & { path: string } => {\n  return {\n    path: `/v1/admin/interfaces`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'], 'name': input['name'], 'version': input['version'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListInterfacesResponse {\n  interfaces: {\n    /**\n     * ID of the [Interface](#schema_interface)\n     */\n    id: string;\n    /**\n     * Creation date of the [Interface](#schema_interface) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Interface](#schema_interface) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Name of the [Interface](#schema_interface)\n     */\n    name: string;\n    /**\n     * Version of the [Interface](#schema_interface)\n     */\n    version: string;\n    /**\n     * Title of the interface. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the interface. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the interface. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * URL of the readme of the interface. This is the readme that will be displayed in the UI\n     */\n    readmeUrl: string;\n    /**\n     * Indicates if the interface is public. Public interfaces are available to all and cannot be updated without creating a new version.\n     */\n    public: boolean;\n  }[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CreatePluginRequestHeaders {}\n\nexport interface CreatePluginRequestQuery {}\n\nexport interface CreatePluginRequestParams {}\n\nexport interface CreatePluginRequestBody {\n  /**\n   * Name of the [Plugin](#schema_plugin)\n   */\n  name: string;\n  /**\n   * Version of the [Plugin](#schema_plugin)\n   */\n  version: string;\n  /**\n   * Configuration definition\n   */\n  configuration?: {\n    /**\n     * Title of the configuration\n     */\n    title?: string;\n    /**\n     * Description of the configuration\n     */\n    description?: string;\n    /**\n     * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n     */\n    schema: {\n      [k: string]: any;\n    };\n  };\n  states?: {\n    [k: string]: {\n      /**\n       * Type of the [State](#schema_state) (`conversation`, `user` or `bot`)\n       */\n      type: \"conversation\" | \"user\" | \"bot\";\n      /**\n       * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n       */\n      schema: {\n        [k: string]: any;\n      };\n      /**\n       * Expiry of the [State](#schema_state) in milliseconds. The state will expire if it is idle for the configured value. By default, a state doesn't expire.\n       */\n      expiry?: number;\n    };\n  };\n  events?: {\n    /**\n     * Event Definition\n     */\n    [k: string]: {\n      /**\n       * Title of the event\n       */\n      title?: string;\n      /**\n       * Description of the event\n       */\n      description?: string;\n      schema: {\n        [k: string]: any;\n      };\n      /**\n       * Optional attributes\n       */\n      attributes?: {\n        [k: string]: string;\n      };\n    };\n  };\n  actions?: {\n    /**\n     * Action definition\n     */\n    [k: string]: {\n      /**\n       * Title of the action\n       */\n      title?: string;\n      /**\n       * Description of the action\n       */\n      description?: string;\n      billable?: boolean;\n      cacheable?: boolean;\n      input: {\n        schema: {\n          [k: string]: any;\n        };\n      };\n      output: {\n        schema: {\n          [k: string]: any;\n        };\n      };\n      /**\n       * Optional attributes\n       */\n      attributes?: {\n        [k: string]: string;\n      };\n    };\n  };\n  /**\n   * User object configuration\n   */\n  user?: {\n    tags: {\n      /**\n       * Definition of a tag that can be provided on the object\n       */\n      [k: string]: {\n        /**\n         * Title of the tag\n         */\n        title?: string;\n        /**\n         * Description of the tag\n         */\n        description?: string;\n      };\n    };\n  };\n  /**\n   * Conversation object configuration\n   */\n  conversation?: {\n    tags: {\n      /**\n       * Definition of a tag that can be provided on the object\n       */\n      [k: string]: {\n        /**\n         * Title of the tag\n         */\n        title?: string;\n        /**\n         * Description of the tag\n         */\n        description?: string;\n      };\n    };\n  };\n  /**\n   * Message object configuration\n   */\n  message?: {\n    tags: {\n      /**\n       * Definition of a tag that can be provided on the object\n       */\n      [k: string]: {\n        /**\n         * Title of the tag\n         */\n        title?: string;\n        /**\n         * Description of the tag\n         */\n        description?: string;\n      };\n    };\n  };\n  sdkVersion?: string;\n  code: {\n    /**\n     * Code of plugin bundled for Node.JS\n     */\n    node: string;\n    /**\n     * Code of plugin bundled for the browser\n     */\n    browser: string;\n  };\n  /**\n   * Base64 encoded svg of the plugin icon. This icon is global to the plugin each versions will be updated when this changes.\n   */\n  icon?: string;\n  /**\n   * Base64 encoded markdown of the plugin readme. The readme is specific to each plugin versions.\n   */\n  readme?: string;\n  /**\n   * Title of the plugin. This is the name that will be displayed in the UI\n   */\n  title?: string;\n  /**\n   * Description of the plugin. This is the description that will be displayed in the UI\n   */\n  description?: string;\n  /**\n   * @deprecated\n   * [DEPRECATED] Indicates if the plugin is public. Please use the \"visibility\" parameter instead.\n   */\n  public?: boolean;\n  /**\n   * The plugin's visibility. Public plugins are available to all and cannot be updated without creating a new version. Unlisted plugins behave identically to public plugins, but they are not listed in the plugin hub. By default, plugins are private and only accessible to the workspace that created them.\n   */\n  visibility?: \"public\" | \"private\" | \"unlisted\";\n  dependencies?: {\n    /**\n     * Mapping of interface aliases to interface references\n     */\n    interfaces?: {\n      [k: string]: {\n        /**\n         * Id of the interface. If provided, \"name\" and \"version\" are ignored\n         */\n        id?: string;\n        /**\n         * Name of the interface\n         */\n        name?: string;\n        /**\n         * Version of the interface. Accepts semver versions and version ranges\n         */\n        version?: string;\n      };\n    };\n    /**\n     * Mapping of integration aliases to integration references\n     */\n    integrations?: {\n      [k: string]: {\n        /**\n         * Id of the integration. If provided, \"name\" and \"version\" are ignored\n         */\n        id?: string;\n        /**\n         * Name of the integration\n         */\n        name?: string;\n        /**\n         * Version of the integration. Accepts semver versions and version ranges\n         */\n        version?: string;\n      };\n    };\n  };\n  /**\n   * Optional key-value attributes from the plugin definition\n   */\n  attributes?: {\n    [k: string]: string;\n  };\n}\n\nexport type CreatePluginInput = CreatePluginRequestBody & CreatePluginRequestHeaders & CreatePluginRequestQuery & CreatePluginRequestParams\n\nexport type CreatePluginRequest = {\n  headers: CreatePluginRequestHeaders;\n  query: CreatePluginRequestQuery;\n  params: CreatePluginRequestParams;\n  body: CreatePluginRequestBody;\n}\n\nexport const parseReq = (input: CreatePluginInput): CreatePluginRequest & { path: string } => {\n  return {\n    path: `/v1/admin/plugins`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'name': input['name'], 'version': input['version'], 'configuration': input['configuration'], 'states': input['states'], 'events': input['events'], 'actions': input['actions'], 'user': input['user'], 'conversation': input['conversation'], 'message': input['message'], 'sdkVersion': input['sdkVersion'], 'code': input['code'], 'icon': input['icon'], 'readme': input['readme'], 'title': input['title'], 'description': input['description'], 'public': input['public'], 'visibility': input['visibility'], 'dependencies': input['dependencies'], 'attributes': input['attributes'] },\n  }\n}\n\nexport interface CreatePluginResponse {\n  plugin: {\n    /**\n     * ID of the [Plugin](#schema_plugin)\n     */\n    id: string;\n    /**\n     * Name of the [Plugin](#schema_plugin)\n     */\n    name: string;\n    /**\n     * Version of the [Plugin](#schema_plugin)\n     */\n    version: string;\n    /**\n     * Creation date of the [Plugin](#schema_plugin) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Plugin](#schema_plugin) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Configuration definition\n     */\n    configuration: {\n      /**\n       * Title of the configuration\n       */\n      title?: string;\n      /**\n       * Description of the configuration\n       */\n      description?: string;\n      /**\n       * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n       */\n      schema: {\n        [k: string]: any;\n      };\n    };\n    states: {\n      [k: string]: {\n        /**\n         * Type of the [State](#schema_state) (`conversation`, `user` or `bot`)\n         */\n        type: \"conversation\" | \"user\" | \"bot\";\n        /**\n         * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n         */\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Expiry of the [State](#schema_state) in milliseconds. The state will expire if it is idle for the configured value. By default, a state doesn't expire.\n         */\n        expiry?: number;\n      };\n    };\n    events: {\n      /**\n       * Event Definition\n       */\n      [k: string]: {\n        /**\n         * Title of the event\n         */\n        title?: string;\n        /**\n         * Description of the event\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    actions: {\n      /**\n       * Action definition\n       */\n      [k: string]: {\n        /**\n         * Title of the action\n         */\n        title?: string;\n        /**\n         * Description of the action\n         */\n        description?: string;\n        billable?: boolean;\n        cacheable?: boolean;\n        input: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        output: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    dependencies: {\n      interfaces: {\n        [k: string]: {\n          id: string;\n          name: string;\n          version: string;\n        };\n      };\n      integrations: {\n        [k: string]: {\n          id: string;\n          name: string;\n          version: string;\n        };\n      };\n    };\n    /**\n     * User object configuration\n     */\n    user: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Conversation object configuration\n     */\n    conversation: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Message object configuration\n     */\n    message: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Title of the plugin. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the plugin. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the plugin. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * URL of the readme of the plugin. This is the readme that will be displayed in the UI\n     */\n    readmeUrl: string;\n    /**\n     * @deprecated\n     * [DEPRECATED] Indicates if the plugin is public. Please use the \"visibility\" parameter instead.\n     */\n    public: boolean;\n    /**\n     * The plugin's visibility. Public plugins are available to all and cannot be updated without creating a new version. Unlisted plugins behave identically to public plugins, but they are not listed in the plugin hub. By default, plugins are private and only accessible to the workspace that created them.\n     */\n    visibility: \"public\" | \"private\" | \"unlisted\";\n    /**\n     * The lifecycle status of the plugin. When a plugin is deprecated, it can no longer be installed.\n     */\n    lifecycleStatus: \"published\" | \"deprecated\";\n    /**\n     * Optional key-value attributes from the plugin definition\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetPluginRequestHeaders {}\n\nexport interface GetPluginRequestQuery {}\n\nexport interface GetPluginRequestParams {\n  id: string;\n}\n\nexport interface GetPluginRequestBody {}\n\nexport type GetPluginInput = GetPluginRequestBody & GetPluginRequestHeaders & GetPluginRequestQuery & GetPluginRequestParams\n\nexport type GetPluginRequest = {\n  headers: GetPluginRequestHeaders;\n  query: GetPluginRequestQuery;\n  params: GetPluginRequestParams;\n  body: GetPluginRequestBody;\n}\n\nexport const parseReq = (input: GetPluginInput): GetPluginRequest & { path: string } => {\n  return {\n    path: `/v1/admin/plugins/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetPluginResponse {\n  plugin: {\n    /**\n     * ID of the [Plugin](#schema_plugin)\n     */\n    id: string;\n    /**\n     * Name of the [Plugin](#schema_plugin)\n     */\n    name: string;\n    /**\n     * Version of the [Plugin](#schema_plugin)\n     */\n    version: string;\n    /**\n     * Creation date of the [Plugin](#schema_plugin) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Plugin](#schema_plugin) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Configuration definition\n     */\n    configuration: {\n      /**\n       * Title of the configuration\n       */\n      title?: string;\n      /**\n       * Description of the configuration\n       */\n      description?: string;\n      /**\n       * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n       */\n      schema: {\n        [k: string]: any;\n      };\n    };\n    states: {\n      [k: string]: {\n        /**\n         * Type of the [State](#schema_state) (`conversation`, `user` or `bot`)\n         */\n        type: \"conversation\" | \"user\" | \"bot\";\n        /**\n         * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n         */\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Expiry of the [State](#schema_state) in milliseconds. The state will expire if it is idle for the configured value. By default, a state doesn't expire.\n         */\n        expiry?: number;\n      };\n    };\n    events: {\n      /**\n       * Event Definition\n       */\n      [k: string]: {\n        /**\n         * Title of the event\n         */\n        title?: string;\n        /**\n         * Description of the event\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    actions: {\n      /**\n       * Action definition\n       */\n      [k: string]: {\n        /**\n         * Title of the action\n         */\n        title?: string;\n        /**\n         * Description of the action\n         */\n        description?: string;\n        billable?: boolean;\n        cacheable?: boolean;\n        input: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        output: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    dependencies: {\n      interfaces: {\n        [k: string]: {\n          id: string;\n          name: string;\n          version: string;\n        };\n      };\n      integrations: {\n        [k: string]: {\n          id: string;\n          name: string;\n          version: string;\n        };\n      };\n    };\n    /**\n     * User object configuration\n     */\n    user: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Conversation object configuration\n     */\n    conversation: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Message object configuration\n     */\n    message: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Title of the plugin. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the plugin. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the plugin. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * URL of the readme of the plugin. This is the readme that will be displayed in the UI\n     */\n    readmeUrl: string;\n    /**\n     * @deprecated\n     * [DEPRECATED] Indicates if the plugin is public. Please use the \"visibility\" parameter instead.\n     */\n    public: boolean;\n    /**\n     * The plugin's visibility. Public plugins are available to all and cannot be updated without creating a new version. Unlisted plugins behave identically to public plugins, but they are not listed in the plugin hub. By default, plugins are private and only accessible to the workspace that created them.\n     */\n    visibility: \"public\" | \"private\" | \"unlisted\";\n    /**\n     * The lifecycle status of the plugin. When a plugin is deprecated, it can no longer be installed.\n     */\n    lifecycleStatus: \"published\" | \"deprecated\";\n    /**\n     * Optional key-value attributes from the plugin definition\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetDereferencedPluginRequestHeaders {}\n\nexport interface GetDereferencedPluginRequestQuery {\n  /**\n   * Mapping of interface aliases to integration IDs\n   */\n  interfaces: {\n    /**\n     * integration id\n     */\n    [k: string]: string;\n  };\n}\n\nexport interface GetDereferencedPluginRequestParams {\n  id: string;\n}\n\nexport interface GetDereferencedPluginRequestBody {}\n\nexport type GetDereferencedPluginInput = GetDereferencedPluginRequestBody & GetDereferencedPluginRequestHeaders & GetDereferencedPluginRequestQuery & GetDereferencedPluginRequestParams\n\nexport type GetDereferencedPluginRequest = {\n  headers: GetDereferencedPluginRequestHeaders;\n  query: GetDereferencedPluginRequestQuery;\n  params: GetDereferencedPluginRequestParams;\n  body: GetDereferencedPluginRequestBody;\n}\n\nexport const parseReq = (input: GetDereferencedPluginInput): GetDereferencedPluginRequest & { path: string } => {\n  return {\n    path: `/v1/admin/plugins/${encodeURIComponent(input['id'])}/dereferenced`,\n    headers: {  },\n    query: { 'interfaces': input['interfaces'] },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetDereferencedPluginResponse {\n  plugin: {\n    /**\n     * ID of the [Plugin](#schema_plugin)\n     */\n    id: string;\n    /**\n     * Name of the [Plugin](#schema_plugin)\n     */\n    name: string;\n    /**\n     * Version of the [Plugin](#schema_plugin)\n     */\n    version: string;\n    /**\n     * Creation date of the [Plugin](#schema_plugin) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Plugin](#schema_plugin) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Configuration definition\n     */\n    configuration: {\n      /**\n       * Title of the configuration\n       */\n      title?: string;\n      /**\n       * Description of the configuration\n       */\n      description?: string;\n      /**\n       * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n       */\n      schema: {\n        [k: string]: any;\n      };\n    };\n    states: {\n      [k: string]: {\n        /**\n         * Type of the [State](#schema_state) (`conversation`, `user` or `bot`)\n         */\n        type: \"conversation\" | \"user\" | \"bot\";\n        /**\n         * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n         */\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Expiry of the [State](#schema_state) in milliseconds. The state will expire if it is idle for the configured value. By default, a state doesn't expire.\n         */\n        expiry?: number;\n      };\n    };\n    events: {\n      /**\n       * Event Definition\n       */\n      [k: string]: {\n        /**\n         * Title of the event\n         */\n        title?: string;\n        /**\n         * Description of the event\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    actions: {\n      /**\n       * Action definition\n       */\n      [k: string]: {\n        /**\n         * Title of the action\n         */\n        title?: string;\n        /**\n         * Description of the action\n         */\n        description?: string;\n        billable?: boolean;\n        cacheable?: boolean;\n        input: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        output: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    dependencies: {\n      interfaces: {\n        [k: string]: {\n          id: string;\n          name: string;\n          version: string;\n        };\n      };\n      integrations: {\n        [k: string]: {\n          id: string;\n          name: string;\n          version: string;\n        };\n      };\n    };\n    /**\n     * User object configuration\n     */\n    user: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Conversation object configuration\n     */\n    conversation: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Message object configuration\n     */\n    message: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Title of the plugin. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the plugin. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the plugin. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * URL of the readme of the plugin. This is the readme that will be displayed in the UI\n     */\n    readmeUrl: string;\n    /**\n     * @deprecated\n     * [DEPRECATED] Indicates if the plugin is public. Please use the \"visibility\" parameter instead.\n     */\n    public: boolean;\n    /**\n     * The plugin's visibility. Public plugins are available to all and cannot be updated without creating a new version. Unlisted plugins behave identically to public plugins, but they are not listed in the plugin hub. By default, plugins are private and only accessible to the workspace that created them.\n     */\n    visibility: \"public\" | \"private\" | \"unlisted\";\n    /**\n     * The lifecycle status of the plugin. When a plugin is deprecated, it can no longer be installed.\n     */\n    lifecycleStatus: \"published\" | \"deprecated\";\n    /**\n     * Optional key-value attributes from the plugin definition\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetPluginByNameRequestHeaders {}\n\nexport interface GetPluginByNameRequestQuery {}\n\nexport interface GetPluginByNameRequestParams {\n  name: string;\n  version: string;\n}\n\nexport interface GetPluginByNameRequestBody {}\n\nexport type GetPluginByNameInput = GetPluginByNameRequestBody & GetPluginByNameRequestHeaders & GetPluginByNameRequestQuery & GetPluginByNameRequestParams\n\nexport type GetPluginByNameRequest = {\n  headers: GetPluginByNameRequestHeaders;\n  query: GetPluginByNameRequestQuery;\n  params: GetPluginByNameRequestParams;\n  body: GetPluginByNameRequestBody;\n}\n\nexport const parseReq = (input: GetPluginByNameInput): GetPluginByNameRequest & { path: string } => {\n  return {\n    path: `/v1/admin/plugins/${encodeURIComponent(input['name'])}/${encodeURIComponent(input['version'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'name': input['name'], 'version': input['version'] },\n    body: {  },\n  }\n}\n\nexport interface GetPluginByNameResponse {\n  plugin: {\n    /**\n     * ID of the [Plugin](#schema_plugin)\n     */\n    id: string;\n    /**\n     * Name of the [Plugin](#schema_plugin)\n     */\n    name: string;\n    /**\n     * Version of the [Plugin](#schema_plugin)\n     */\n    version: string;\n    /**\n     * Creation date of the [Plugin](#schema_plugin) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Plugin](#schema_plugin) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Configuration definition\n     */\n    configuration: {\n      /**\n       * Title of the configuration\n       */\n      title?: string;\n      /**\n       * Description of the configuration\n       */\n      description?: string;\n      /**\n       * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n       */\n      schema: {\n        [k: string]: any;\n      };\n    };\n    states: {\n      [k: string]: {\n        /**\n         * Type of the [State](#schema_state) (`conversation`, `user` or `bot`)\n         */\n        type: \"conversation\" | \"user\" | \"bot\";\n        /**\n         * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n         */\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Expiry of the [State](#schema_state) in milliseconds. The state will expire if it is idle for the configured value. By default, a state doesn't expire.\n         */\n        expiry?: number;\n      };\n    };\n    events: {\n      /**\n       * Event Definition\n       */\n      [k: string]: {\n        /**\n         * Title of the event\n         */\n        title?: string;\n        /**\n         * Description of the event\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    actions: {\n      /**\n       * Action definition\n       */\n      [k: string]: {\n        /**\n         * Title of the action\n         */\n        title?: string;\n        /**\n         * Description of the action\n         */\n        description?: string;\n        billable?: boolean;\n        cacheable?: boolean;\n        input: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        output: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    dependencies: {\n      interfaces: {\n        [k: string]: {\n          id: string;\n          name: string;\n          version: string;\n        };\n      };\n      integrations: {\n        [k: string]: {\n          id: string;\n          name: string;\n          version: string;\n        };\n      };\n    };\n    /**\n     * User object configuration\n     */\n    user: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Conversation object configuration\n     */\n    conversation: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Message object configuration\n     */\n    message: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Title of the plugin. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the plugin. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the plugin. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * URL of the readme of the plugin. This is the readme that will be displayed in the UI\n     */\n    readmeUrl: string;\n    /**\n     * @deprecated\n     * [DEPRECATED] Indicates if the plugin is public. Please use the \"visibility\" parameter instead.\n     */\n    public: boolean;\n    /**\n     * The plugin's visibility. Public plugins are available to all and cannot be updated without creating a new version. Unlisted plugins behave identically to public plugins, but they are not listed in the plugin hub. By default, plugins are private and only accessible to the workspace that created them.\n     */\n    visibility: \"public\" | \"private\" | \"unlisted\";\n    /**\n     * The lifecycle status of the plugin. When a plugin is deprecated, it can no longer be installed.\n     */\n    lifecycleStatus: \"published\" | \"deprecated\";\n    /**\n     * Optional key-value attributes from the plugin definition\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface UpdatePluginRequestHeaders {}\n\nexport interface UpdatePluginRequestQuery {}\n\nexport interface UpdatePluginRequestParams {\n  id: string;\n}\n\nexport interface UpdatePluginRequestBody {\n  /**\n   * Configuration definition\n   */\n  configuration?: {\n    /**\n     * Title of the configuration\n     */\n    title?: string;\n    /**\n     * Description of the configuration\n     */\n    description?: string;\n    /**\n     * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n     */\n    schema: {\n      [k: string]: any;\n    };\n  } | null;\n  states?: {\n    [k: string]: {\n      /**\n       * Type of the [State](#schema_state) (`conversation`, `user` or `bot`)\n       */\n      type: \"conversation\" | \"user\" | \"bot\";\n      /**\n       * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n       */\n      schema: {\n        [k: string]: any;\n      };\n      /**\n       * Expiry of the [State](#schema_state) in milliseconds. The state will expire if it is idle for the configured value. By default, a state doesn't expire.\n       */\n      expiry?: number;\n    } | null;\n  };\n  events?: {\n    [k: string]: {\n      /**\n       * Title of the event\n       */\n      title?: string;\n      /**\n       * Description of the event\n       */\n      description?: string;\n      schema: {\n        [k: string]: any;\n      };\n      /**\n       * Optional attributes. Set attributes to null to remove them\n       */\n      attributes?: {\n        [k: string]: string | null;\n      };\n    } | null;\n  };\n  actions?: {\n    [k: string]: {\n      /**\n       * Title of the action\n       */\n      title?: string;\n      /**\n       * Description of the action\n       */\n      description?: string;\n      billable?: boolean;\n      cacheable?: boolean;\n      input: {\n        schema: {\n          [k: string]: any;\n        };\n      };\n      output: {\n        schema: {\n          [k: string]: any;\n        };\n      };\n      /**\n       * Optional attributes. Set attributes to null to remove them\n       */\n      attributes?: {\n        [k: string]: string | null;\n      };\n    } | null;\n  };\n  user?: {\n    tags: {\n      /**\n       * Definition of a tag that can be provided on the object\n       */\n      [k: string]: {\n        /**\n         * Title of the tag\n         */\n        title?: string;\n        /**\n         * Description of the tag\n         */\n        description?: string;\n      } | null;\n    };\n  };\n  conversation?: {\n    tags: {\n      /**\n       * Definition of a tag that can be provided on the object\n       */\n      [k: string]: {\n        /**\n         * Title of the tag\n         */\n        title?: string;\n        /**\n         * Description of the tag\n         */\n        description?: string;\n      } | null;\n    };\n  };\n  message?: {\n    tags: {\n      /**\n       * Definition of a tag that can be provided on the object\n       */\n      [k: string]: {\n        /**\n         * Title of the tag\n         */\n        title?: string;\n        /**\n         * Description of the tag\n         */\n        description?: string;\n      } | null;\n    };\n  };\n  sdkVersion?: string;\n  code?: {\n    /**\n     * Code of plugin bundled for Node.JS\n     */\n    node?: string;\n    /**\n     * Code of plugin bundled for the browser\n     */\n    browser?: string;\n  };\n  /**\n   * Base64 encoded svg of the plugin icon. This icon is global to the plugin each versions will be updated when this changes.\n   */\n  icon?: string;\n  /**\n   * Base64 encoded markdown of the plugin readme. The readme is specific to each plugin versions.\n   */\n  readme?: string;\n  /**\n   * Title of the plugin. This is the name that will be displayed in the UI\n   */\n  title?: string;\n  /**\n   * Description of the plugin. This is the description that will be displayed in the UI\n   */\n  description?: string;\n  /**\n   * @deprecated\n   * [DEPRECATED] Indicates if the plugin is public. Please use the \"visibility\" parameter instead.\n   */\n  public?: boolean;\n  /**\n   * The plugin's visibility. Public plugins are available to all and cannot be updated without creating a new version. Unlisted plugins behave identically to public plugins, but they are not listed in the plugin hub. By default, plugins are private and only accessible to the workspace that created them.\n   */\n  visibility?: \"public\" | \"private\" | \"unlisted\";\n  dependencies?: {\n    /**\n     * Mapping of interface aliases to interface references\n     */\n    interfaces?: {\n      [k: string]: {\n        /**\n         * Id of the interface. If provided, \"name\" and \"version\" are ignored\n         */\n        id?: string;\n        /**\n         * Name of the interface\n         */\n        name?: string;\n        /**\n         * Version of the interface. Accepts semver versions and version ranges\n         */\n        version?: string;\n      } | null;\n    };\n    /**\n     * Mapping of integration aliases to integration references\n     */\n    integrations?: {\n      [k: string]: {\n        /**\n         * Id of the integration. If provided, \"name\" and \"version\" are ignored\n         */\n        id?: string;\n        /**\n         * Name of the integration\n         */\n        name?: string;\n        /**\n         * Version of the integration. Accepts semver versions and version ranges\n         */\n        version?: string;\n      } | null;\n    };\n  };\n  /**\n   * Optional key-value attributes. Set attributes to null to remove them\n   */\n  attributes?: {\n    [k: string]: string | null;\n  };\n}\n\nexport type UpdatePluginInput = UpdatePluginRequestBody & UpdatePluginRequestHeaders & UpdatePluginRequestQuery & UpdatePluginRequestParams\n\nexport type UpdatePluginRequest = {\n  headers: UpdatePluginRequestHeaders;\n  query: UpdatePluginRequestQuery;\n  params: UpdatePluginRequestParams;\n  body: UpdatePluginRequestBody;\n}\n\nexport const parseReq = (input: UpdatePluginInput): UpdatePluginRequest & { path: string } => {\n  return {\n    path: `/v1/admin/plugins/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: { 'configuration': input['configuration'], 'states': input['states'], 'events': input['events'], 'actions': input['actions'], 'user': input['user'], 'conversation': input['conversation'], 'message': input['message'], 'sdkVersion': input['sdkVersion'], 'code': input['code'], 'icon': input['icon'], 'readme': input['readme'], 'title': input['title'], 'description': input['description'], 'public': input['public'], 'visibility': input['visibility'], 'dependencies': input['dependencies'], 'attributes': input['attributes'] },\n  }\n}\n\nexport interface UpdatePluginResponse {\n  plugin: {\n    /**\n     * ID of the [Plugin](#schema_plugin)\n     */\n    id: string;\n    /**\n     * Name of the [Plugin](#schema_plugin)\n     */\n    name: string;\n    /**\n     * Version of the [Plugin](#schema_plugin)\n     */\n    version: string;\n    /**\n     * Creation date of the [Plugin](#schema_plugin) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Plugin](#schema_plugin) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Configuration definition\n     */\n    configuration: {\n      /**\n       * Title of the configuration\n       */\n      title?: string;\n      /**\n       * Description of the configuration\n       */\n      description?: string;\n      /**\n       * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n       */\n      schema: {\n        [k: string]: any;\n      };\n    };\n    states: {\n      [k: string]: {\n        /**\n         * Type of the [State](#schema_state) (`conversation`, `user` or `bot`)\n         */\n        type: \"conversation\" | \"user\" | \"bot\";\n        /**\n         * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n         */\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Expiry of the [State](#schema_state) in milliseconds. The state will expire if it is idle for the configured value. By default, a state doesn't expire.\n         */\n        expiry?: number;\n      };\n    };\n    events: {\n      /**\n       * Event Definition\n       */\n      [k: string]: {\n        /**\n         * Title of the event\n         */\n        title?: string;\n        /**\n         * Description of the event\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    actions: {\n      /**\n       * Action definition\n       */\n      [k: string]: {\n        /**\n         * Title of the action\n         */\n        title?: string;\n        /**\n         * Description of the action\n         */\n        description?: string;\n        billable?: boolean;\n        cacheable?: boolean;\n        input: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        output: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    dependencies: {\n      interfaces: {\n        [k: string]: {\n          id: string;\n          name: string;\n          version: string;\n        };\n      };\n      integrations: {\n        [k: string]: {\n          id: string;\n          name: string;\n          version: string;\n        };\n      };\n    };\n    /**\n     * User object configuration\n     */\n    user: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Conversation object configuration\n     */\n    conversation: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Message object configuration\n     */\n    message: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Title of the plugin. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the plugin. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the plugin. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * URL of the readme of the plugin. This is the readme that will be displayed in the UI\n     */\n    readmeUrl: string;\n    /**\n     * @deprecated\n     * [DEPRECATED] Indicates if the plugin is public. Please use the \"visibility\" parameter instead.\n     */\n    public: boolean;\n    /**\n     * The plugin's visibility. Public plugins are available to all and cannot be updated without creating a new version. Unlisted plugins behave identically to public plugins, but they are not listed in the plugin hub. By default, plugins are private and only accessible to the workspace that created them.\n     */\n    visibility: \"public\" | \"private\" | \"unlisted\";\n    /**\n     * The lifecycle status of the plugin. When a plugin is deprecated, it can no longer be installed.\n     */\n    lifecycleStatus: \"published\" | \"deprecated\";\n    /**\n     * Optional key-value attributes from the plugin definition\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface DeletePluginRequestHeaders {}\n\nexport interface DeletePluginRequestQuery {}\n\nexport interface DeletePluginRequestParams {\n  id: string;\n}\n\nexport interface DeletePluginRequestBody {}\n\nexport type DeletePluginInput = DeletePluginRequestBody & DeletePluginRequestHeaders & DeletePluginRequestQuery & DeletePluginRequestParams\n\nexport type DeletePluginRequest = {\n  headers: DeletePluginRequestHeaders;\n  query: DeletePluginRequestQuery;\n  params: DeletePluginRequestParams;\n  body: DeletePluginRequestBody;\n}\n\nexport const parseReq = (input: DeletePluginInput): DeletePluginRequest & { path: string } => {\n  return {\n    path: `/v1/admin/plugins/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface DeletePluginResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListPluginsRequestHeaders {}\n\nexport interface ListPluginsRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n  name?: string;\n  version?: string;\n}\n\nexport interface ListPluginsRequestParams {}\n\nexport interface ListPluginsRequestBody {}\n\nexport type ListPluginsInput = ListPluginsRequestBody & ListPluginsRequestHeaders & ListPluginsRequestQuery & ListPluginsRequestParams\n\nexport type ListPluginsRequest = {\n  headers: ListPluginsRequestHeaders;\n  query: ListPluginsRequestQuery;\n  params: ListPluginsRequestParams;\n  body: ListPluginsRequestBody;\n}\n\nexport const parseReq = (input: ListPluginsInput): ListPluginsRequest & { path: string } => {\n  return {\n    path: `/v1/admin/plugins`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'], 'name': input['name'], 'version': input['version'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListPluginsResponse {\n  plugins: {\n    /**\n     * ID of the [Plugin](#schema_plugin)\n     */\n    id: string;\n    /**\n     * Creation date of the [Plugin](#schema_plugin) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Plugin](#schema_plugin) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Name of the [Plugin](#schema_plugin)\n     */\n    name: string;\n    /**\n     * Version of the [Plugin](#schema_plugin)\n     */\n    version: string;\n    /**\n     * Title of the plugin. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the plugin. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the plugin. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * URL of the readme of the plugin. This is the readme that will be displayed in the UI\n     */\n    readmeUrl: string;\n    /**\n     * @deprecated\n     * [DEPRECATED] Indicates if the plugin is public. Please use the \"visibility\" parameter instead.\n     */\n    public: boolean;\n    /**\n     * The plugin's visibility. Public plugins are available to all and cannot be updated without creating a new version. Unlisted plugins behave identically to public plugins, but they are not listed in the plugin hub. By default, plugins are private and only accessible to the workspace that created them.\n     */\n    visibility: \"public\" | \"private\" | \"unlisted\";\n    /**\n     * The lifecycle status of the plugin. When a plugin is deprecated, it can no longer be installed.\n     */\n    lifecycleStatus: \"published\" | \"deprecated\";\n  }[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetPluginCodeRequestHeaders {}\n\nexport interface GetPluginCodeRequestQuery {}\n\nexport interface GetPluginCodeRequestParams {\n  id: string;\n  platform: \"node\" | \"browser\";\n}\n\nexport interface GetPluginCodeRequestBody {}\n\nexport type GetPluginCodeInput = GetPluginCodeRequestBody & GetPluginCodeRequestHeaders & GetPluginCodeRequestQuery & GetPluginCodeRequestParams\n\nexport type GetPluginCodeRequest = {\n  headers: GetPluginCodeRequestHeaders;\n  query: GetPluginCodeRequestQuery;\n  params: GetPluginCodeRequestParams;\n  body: GetPluginCodeRequestBody;\n}\n\nexport const parseReq = (input: GetPluginCodeInput): GetPluginCodeRequest & { path: string } => {\n  return {\n    path: `/v1/admin/plugins/${encodeURIComponent(input['id'])}/code/${encodeURIComponent(input['platform'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'], 'platform': input['platform'] },\n    body: {  },\n  }\n}\n\nexport interface GetPluginCodeResponse {\n  code: string;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetUsageRequestHeaders {}\n\nexport interface GetUsageRequestQuery {\n  type:\n    | \"invocation_timeout\"\n    | \"invocation_calls\"\n    | \"storage_count\"\n    | \"bot_count\"\n    | \"knowledgebase_vector_storage\"\n    | \"workspace_ratelimit\"\n    | \"table_row_count\"\n    | \"workspace_member_count\"\n    | \"integrations_owned_count\"\n    | \"ai_spend\"\n    | \"openai_spend\"\n    | \"bing_search_spend\"\n    | \"always_alive\"\n    | \"indexed_file_count\"\n    | \"file_max_size_bytes\";\n  period?: string;\n}\n\nexport interface GetUsageRequestParams {\n  id: string;\n}\n\nexport interface GetUsageRequestBody {}\n\nexport type GetUsageInput = GetUsageRequestBody & GetUsageRequestHeaders & GetUsageRequestQuery & GetUsageRequestParams\n\nexport type GetUsageRequest = {\n  headers: GetUsageRequestHeaders;\n  query: GetUsageRequestQuery;\n  params: GetUsageRequestParams;\n  body: GetUsageRequestBody;\n}\n\nexport const parseReq = (input: GetUsageInput): GetUsageRequest & { path: string } => {\n  return {\n    path: `/v1/admin/usages/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: { 'type': input['type'], 'period': input['period'] },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetUsageResponse {\n  usage: {\n    /**\n     * Id of the usage that it is linked to. It can either be a workspace id or a bot id\n     */\n    id: string;\n    /**\n     * Period of the quota that it is applied to\n     */\n    period: string;\n    /**\n     * Value of the current usage\n     */\n    value: number;\n    /**\n     * Quota of the current usage\n     */\n    quota: number;\n    /**\n     * Usage type that can be used\n     */\n    type:\n      | \"invocation_timeout\"\n      | \"invocation_calls\"\n      | \"storage_count\"\n      | \"bot_count\"\n      | \"knowledgebase_vector_storage\"\n      | \"workspace_ratelimit\"\n      | \"table_row_count\"\n      | \"workspace_member_count\"\n      | \"integrations_owned_count\"\n      | \"ai_spend\"\n      | \"openai_spend\"\n      | \"bing_search_spend\"\n      | \"always_alive\"\n      | \"indexed_file_count\"\n      | \"file_max_size_bytes\";\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetMultipleUsagesRequestHeaders {}\n\nexport interface GetMultipleUsagesRequestQuery {\n  types: string[];\n  ids: string[];\n  period?: string;\n}\n\nexport interface GetMultipleUsagesRequestParams {}\n\nexport interface GetMultipleUsagesRequestBody {}\n\nexport type GetMultipleUsagesInput = GetMultipleUsagesRequestBody & GetMultipleUsagesRequestHeaders & GetMultipleUsagesRequestQuery & GetMultipleUsagesRequestParams\n\nexport type GetMultipleUsagesRequest = {\n  headers: GetMultipleUsagesRequestHeaders;\n  query: GetMultipleUsagesRequestQuery;\n  params: GetMultipleUsagesRequestParams;\n  body: GetMultipleUsagesRequestBody;\n}\n\nexport const parseReq = (input: GetMultipleUsagesInput): GetMultipleUsagesRequest & { path: string } => {\n  return {\n    path: `/v1/admin/usages/multiple`,\n    headers: {  },\n    query: { 'types': input['types'], 'ids': input['ids'], 'period': input['period'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface GetMultipleUsagesResponse {\n  usages: {\n    /**\n     * Id of the usage that it is linked to. It can either be a workspace id or a bot id\n     */\n    id: string;\n    /**\n     * Period of the quota that it is applied to\n     */\n    period: string;\n    /**\n     * Value of the current usage\n     */\n    value: number;\n    /**\n     * Quota of the current usage\n     */\n    quota: number;\n    /**\n     * Usage type that can be used\n     */\n    type:\n      | \"invocation_timeout\"\n      | \"invocation_calls\"\n      | \"storage_count\"\n      | \"bot_count\"\n      | \"knowledgebase_vector_storage\"\n      | \"workspace_ratelimit\"\n      | \"table_row_count\"\n      | \"workspace_member_count\"\n      | \"integrations_owned_count\"\n      | \"ai_spend\"\n      | \"openai_spend\"\n      | \"bing_search_spend\"\n      | \"always_alive\"\n      | \"indexed_file_count\"\n      | \"file_max_size_bytes\";\n  }[];\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListUsageHistoryRequestHeaders {}\n\nexport interface ListUsageHistoryRequestQuery {\n  type:\n    | \"invocation_timeout\"\n    | \"invocation_calls\"\n    | \"storage_count\"\n    | \"bot_count\"\n    | \"knowledgebase_vector_storage\"\n    | \"workspace_ratelimit\"\n    | \"table_row_count\"\n    | \"workspace_member_count\"\n    | \"integrations_owned_count\"\n    | \"ai_spend\"\n    | \"openai_spend\"\n    | \"bing_search_spend\"\n    | \"always_alive\"\n    | \"indexed_file_count\"\n    | \"file_max_size_bytes\";\n}\n\nexport interface ListUsageHistoryRequestParams {\n  id: string;\n}\n\nexport interface ListUsageHistoryRequestBody {}\n\nexport type ListUsageHistoryInput = ListUsageHistoryRequestBody & ListUsageHistoryRequestHeaders & ListUsageHistoryRequestQuery & ListUsageHistoryRequestParams\n\nexport type ListUsageHistoryRequest = {\n  headers: ListUsageHistoryRequestHeaders;\n  query: ListUsageHistoryRequestQuery;\n  params: ListUsageHistoryRequestParams;\n  body: ListUsageHistoryRequestBody;\n}\n\nexport const parseReq = (input: ListUsageHistoryInput): ListUsageHistoryRequest & { path: string } => {\n  return {\n    path: `/v1/admin/usages/${encodeURIComponent(input['id'])}/history`,\n    headers: {  },\n    query: { 'type': input['type'] },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface ListUsageHistoryResponse {\n  usages: {\n    /**\n     * Id of the usage that it is linked to. It can either be a workspace id or a bot id\n     */\n    id: string;\n    /**\n     * Period of the quota that it is applied to\n     */\n    period: string;\n    /**\n     * Value of the current usage\n     */\n    value: number;\n    /**\n     * Quota of the current usage\n     */\n    quota: number;\n    /**\n     * Usage type that can be used\n     */\n    type:\n      | \"invocation_timeout\"\n      | \"invocation_calls\"\n      | \"storage_count\"\n      | \"bot_count\"\n      | \"knowledgebase_vector_storage\"\n      | \"workspace_ratelimit\"\n      | \"table_row_count\"\n      | \"workspace_member_count\"\n      | \"integrations_owned_count\"\n      | \"ai_spend\"\n      | \"openai_spend\"\n      | \"bing_search_spend\"\n      | \"always_alive\"\n      | \"indexed_file_count\"\n      | \"file_max_size_bytes\";\n  }[];\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListUsageActivityRequestHeaders {}\n\nexport interface ListUsageActivityRequestQuery {\n  type:\n    | \"invocation_timeout\"\n    | \"invocation_calls\"\n    | \"storage_count\"\n    | \"bot_count\"\n    | \"knowledgebase_vector_storage\"\n    | \"workspace_ratelimit\"\n    | \"table_row_count\"\n    | \"workspace_member_count\"\n    | \"integrations_owned_count\"\n    | \"ai_spend\"\n    | \"openai_spend\"\n    | \"bing_search_spend\"\n    | \"always_alive\"\n    | \"indexed_file_count\"\n    | \"file_max_size_bytes\";\n  timestampFrom?: string;\n  timestampUntil?: string;\n  nextToken?: string;\n  pageSize?: number;\n}\n\nexport interface ListUsageActivityRequestParams {\n  id: string;\n}\n\nexport interface ListUsageActivityRequestBody {}\n\nexport type ListUsageActivityInput = ListUsageActivityRequestBody & ListUsageActivityRequestHeaders & ListUsageActivityRequestQuery & ListUsageActivityRequestParams\n\nexport type ListUsageActivityRequest = {\n  headers: ListUsageActivityRequestHeaders;\n  query: ListUsageActivityRequestQuery;\n  params: ListUsageActivityRequestParams;\n  body: ListUsageActivityRequestBody;\n}\n\nexport const parseReq = (input: ListUsageActivityInput): ListUsageActivityRequest & { path: string } => {\n  return {\n    path: `/v1/admin/usages/${encodeURIComponent(input['id'])}/activity`,\n    headers: {  },\n    query: { 'type': input['type'], 'timestampFrom': input['timestampFrom'], 'timestampUntil': input['timestampUntil'], 'nextToken': input['nextToken'], 'pageSize': input['pageSize'] },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface ListUsageActivityResponse {\n  data: {\n    timestamp: string;\n    value: number;\n    period: string;\n    metadata: {\n      [k: string]: any | null;\n    };\n  }[];\n  meta: {\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListUsageActivityDailyRequestHeaders {}\n\nexport interface ListUsageActivityDailyRequestQuery {\n  type:\n    | \"invocation_timeout\"\n    | \"invocation_calls\"\n    | \"storage_count\"\n    | \"bot_count\"\n    | \"knowledgebase_vector_storage\"\n    | \"workspace_ratelimit\"\n    | \"table_row_count\"\n    | \"workspace_member_count\"\n    | \"integrations_owned_count\"\n    | \"ai_spend\"\n    | \"openai_spend\"\n    | \"bing_search_spend\"\n    | \"always_alive\"\n    | \"indexed_file_count\"\n    | \"file_max_size_bytes\";\n  dateFrom?: string;\n  dateUntil?: string;\n  nextToken?: string;\n  pageSize?: number;\n}\n\nexport interface ListUsageActivityDailyRequestParams {\n  id: string;\n}\n\nexport interface ListUsageActivityDailyRequestBody {}\n\nexport type ListUsageActivityDailyInput = ListUsageActivityDailyRequestBody & ListUsageActivityDailyRequestHeaders & ListUsageActivityDailyRequestQuery & ListUsageActivityDailyRequestParams\n\nexport type ListUsageActivityDailyRequest = {\n  headers: ListUsageActivityDailyRequestHeaders;\n  query: ListUsageActivityDailyRequestQuery;\n  params: ListUsageActivityDailyRequestParams;\n  body: ListUsageActivityDailyRequestBody;\n}\n\nexport const parseReq = (input: ListUsageActivityDailyInput): ListUsageActivityDailyRequest & { path: string } => {\n  return {\n    path: `/v1/admin/usages/${encodeURIComponent(input['id'])}/daily-activity`,\n    headers: {  },\n    query: { 'type': input['type'], 'dateFrom': input['dateFrom'], 'dateUntil': input['dateUntil'], 'nextToken': input['nextToken'], 'pageSize': input['pageSize'] },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface ListUsageActivityDailyResponse {\n  data: {\n    key: string;\n    date: string;\n    value: number;\n    metadata?: {\n      botId: string;\n      type: \"IntegrationAction\" | \"FileIndexing\" | \"BingSearch\" | \"WebSearch\";\n      subtype?: string;\n      source?: string;\n    };\n  }[];\n  meta: {\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ChangeAispendQuotaRequestHeaders {}\n\nexport interface ChangeAispendQuotaRequestQuery {}\n\nexport interface ChangeAispendQuotaRequestParams {}\n\nexport interface ChangeAispendQuotaRequestBody {\n  monthlySpendingLimit: number;\n}\n\nexport type ChangeAispendQuotaInput = ChangeAispendQuotaRequestBody & ChangeAispendQuotaRequestHeaders & ChangeAispendQuotaRequestQuery & ChangeAispendQuotaRequestParams\n\nexport type ChangeAispendQuotaRequest = {\n  headers: ChangeAispendQuotaRequestHeaders;\n  query: ChangeAispendQuotaRequestQuery;\n  params: ChangeAispendQuotaRequestParams;\n  body: ChangeAispendQuotaRequestBody;\n}\n\nexport const parseReq = (input: ChangeAispendQuotaInput): ChangeAispendQuotaRequest & { path: string } => {\n  return {\n    path: `/v1/admin/quotas/ai-spend`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'monthlySpendingLimit': input['monthlySpendingLimit'] },\n  }\n}\n\nexport interface ChangeAispendQuotaResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListActivitiesRequestHeaders {}\n\nexport interface ListActivitiesRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n  taskId: string;\n  botId: string;\n}\n\nexport interface ListActivitiesRequestParams {}\n\nexport interface ListActivitiesRequestBody {}\n\nexport type ListActivitiesInput = ListActivitiesRequestBody & ListActivitiesRequestHeaders & ListActivitiesRequestQuery & ListActivitiesRequestParams\n\nexport type ListActivitiesRequest = {\n  headers: ListActivitiesRequestHeaders;\n  query: ListActivitiesRequestQuery;\n  params: ListActivitiesRequestParams;\n  body: ListActivitiesRequestBody;\n}\n\nexport const parseReq = (input: ListActivitiesInput): ListActivitiesRequest & { path: string } => {\n  return {\n    path: `/v1/admin/activities`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'], 'taskId': input['taskId'], 'botId': input['botId'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListActivitiesResponse {\n  activities: {\n    id: string;\n    description: string;\n    taskId: string;\n    category:\n      | \"unknown\"\n      | \"capture\"\n      | \"bot_message\"\n      | \"user_message\"\n      | \"agent_message\"\n      | \"event\"\n      | \"action\"\n      | \"task_status\"\n      | \"subtask_status\"\n      | \"exception\";\n    data: {\n      [k: string]: any;\n    };\n    /**\n     * Creation date of the activity in ISO 8601 format\n     */\n    createdAt: string;\n  }[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface IntrospectRequestHeaders {}\n\nexport interface IntrospectRequestQuery {}\n\nexport interface IntrospectRequestParams {}\n\nexport interface IntrospectRequestBody {\n  botId: string;\n}\n\nexport type IntrospectInput = IntrospectRequestBody & IntrospectRequestHeaders & IntrospectRequestQuery & IntrospectRequestParams\n\nexport type IntrospectRequest = {\n  headers: IntrospectRequestHeaders;\n  query: IntrospectRequestQuery;\n  params: IntrospectRequestParams;\n  body: IntrospectRequestBody;\n}\n\nexport const parseReq = (input: IntrospectInput): IntrospectRequest & { path: string } => {\n  return {\n    path: `/v1/admin/introspect`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'botId': input['botId'] },\n  }\n}\n\nexport interface IntrospectResponse {\n  workspaceId: string;\n  botId: string;\n  userId: string;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nimport axios, { AxiosInstance } from 'axios'\nimport { errorFrom } from './errors'\nimport { toAxiosRequest } from './to-axios'\nimport * as runVrl from './operations/runVrl'\nimport * as getAccount from './operations/getAccount'\nimport * as updateAccount from './operations/updateAccount'\nimport * as deleteAccount from './operations/deleteAccount'\nimport * as listPersonalAccessTokens from './operations/listPersonalAccessTokens'\nimport * as createPersonalAccessToken from './operations/createPersonalAccessToken'\nimport * as deletePersonalAccessToken from './operations/deletePersonalAccessToken'\nimport * as setAccountPreference from './operations/setAccountPreference'\nimport * as getAccountPreference from './operations/getAccountPreference'\nimport * as listPublicIntegrations from './operations/listPublicIntegrations'\nimport * as getPublicIntegrationById from './operations/getPublicIntegrationById'\nimport * as getPublicIntegration from './operations/getPublicIntegration'\nimport * as listPublicPlugins from './operations/listPublicPlugins'\nimport * as getPublicPluginById from './operations/getPublicPluginById'\nimport * as getDereferencedPublicPluginById from './operations/getDereferencedPublicPluginById'\nimport * as getPublicPlugin from './operations/getPublicPlugin'\nimport * as getPublicPluginCode from './operations/getPublicPluginCode'\nimport * as listPublicInterfaces from './operations/listPublicInterfaces'\nimport * as getPublicInterfaceById from './operations/getPublicInterfaceById'\nimport * as getPublicInterface from './operations/getPublicInterface'\nimport * as createBot from './operations/createBot'\nimport * as updateBot from './operations/updateBot'\nimport * as rotateBotSigningSecrets from './operations/rotateBotSigningSecrets'\nimport * as transferBot from './operations/transferBot'\nimport * as listBots from './operations/listBots'\nimport * as getBot from './operations/getBot'\nimport * as deleteBot from './operations/deleteBot'\nimport * as getBotLogs from './operations/getBotLogs'\nimport * as getBotWebchat from './operations/getBotWebchat'\nimport * as getBotAnalytics from './operations/getBotAnalytics'\nimport * as listActionRuns from './operations/listActionRuns'\nimport * as getBotIssue from './operations/getBotIssue'\nimport * as listBotIssues from './operations/listBotIssues'\nimport * as deleteBotIssue from './operations/deleteBotIssue'\nimport * as listBotIssueEvents from './operations/listBotIssueEvents'\nimport * as listBotVersions from './operations/listBotVersions'\nimport * as getBotVersion from './operations/getBotVersion'\nimport * as getBotJson from './operations/getBotJson'\nimport * as publishFromBotJson from './operations/publishFromBotJson'\nimport * as createBotVersion from './operations/createBotVersion'\nimport * as deployBotVersion from './operations/deployBotVersion'\nimport * as createIntegrationShareableId from './operations/createIntegrationShareableId'\nimport * as deleteIntegrationShareableId from './operations/deleteIntegrationShareableId'\nimport * as getIntegrationShareableId from './operations/getIntegrationShareableId'\nimport * as unlinkSandboxedConversations from './operations/unlinkSandboxedConversations'\nimport * as listBotApiKeys from './operations/listBotApiKeys'\nimport * as createBotApiKey from './operations/createBotApiKey'\nimport * as deleteBotApiKey from './operations/deleteBotApiKey'\nimport * as getBotAllowlist from './operations/getBotAllowlist'\nimport * as updateBotAllowlist from './operations/updateBotAllowlist'\nimport * as migrateWorkspaceToV4 from './operations/migrateWorkspaceToV4'\nimport * as listWorkspaceInvoices from './operations/listWorkspaceInvoices'\nimport * as getUpcomingInvoice from './operations/getUpcomingInvoice'\nimport * as chargeWorkspaceUnpaidInvoices from './operations/chargeWorkspaceUnpaidInvoices'\nimport * as createWorkspace from './operations/createWorkspace'\nimport * as getPublicWorkspace from './operations/getPublicWorkspace'\nimport * as getWorkspace from './operations/getWorkspace'\nimport * as listWorkspaceUsages from './operations/listWorkspaceUsages'\nimport * as breakDownWorkspaceUsageByBot from './operations/breakDownWorkspaceUsageByBot'\nimport * as getAllWorkspaceQuotaCompletion from './operations/getAllWorkspaceQuotaCompletion'\nimport * as getWorkspaceQuota from './operations/getWorkspaceQuota'\nimport * as listWorkspaceQuotas from './operations/listWorkspaceQuotas'\nimport * as updateWorkspace from './operations/updateWorkspace'\nimport * as checkHandleAvailability from './operations/checkHandleAvailability'\nimport * as listWorkspaces from './operations/listWorkspaces'\nimport * as listPublicWorkspaces from './operations/listPublicWorkspaces'\nimport * as deleteWorkspace from './operations/deleteWorkspace'\nimport * as getAuditRecords from './operations/getAuditRecords'\nimport * as setWorkspacePreference from './operations/setWorkspacePreference'\nimport * as getWorkspacePreference from './operations/getWorkspacePreference'\nimport * as listWorkspaceMembers from './operations/listWorkspaceMembers'\nimport * as getWorkspaceMember from './operations/getWorkspaceMember'\nimport * as deleteWorkspaceMember from './operations/deleteWorkspaceMember'\nimport * as createWorkspaceMember from './operations/createWorkspaceMember'\nimport * as updateWorkspaceMember from './operations/updateWorkspaceMember'\nimport * as listIntegrationApiKeys from './operations/listIntegrationApiKeys'\nimport * as createIntegrationApiKey from './operations/createIntegrationApiKey'\nimport * as deleteIntegrationApiKey from './operations/deleteIntegrationApiKey'\nimport * as createIntegration from './operations/createIntegration'\nimport * as validateIntegrationCreation from './operations/validateIntegrationCreation'\nimport * as updateIntegration from './operations/updateIntegration'\nimport * as rotateIntegrationSigningSecrets from './operations/rotateIntegrationSigningSecrets'\nimport * as validateIntegrationUpdate from './operations/validateIntegrationUpdate'\nimport * as listIntegrations from './operations/listIntegrations'\nimport * as getIntegration from './operations/getIntegration'\nimport * as getIntegrationLogs from './operations/getIntegrationLogs'\nimport * as getIntegrationByName from './operations/getIntegrationByName'\nimport * as deleteIntegration from './operations/deleteIntegration'\nimport * as requestIntegrationVerification from './operations/requestIntegrationVerification'\nimport * as createInterface from './operations/createInterface'\nimport * as getInterface from './operations/getInterface'\nimport * as getInterfaceByName from './operations/getInterfaceByName'\nimport * as updateInterface from './operations/updateInterface'\nimport * as deleteInterface from './operations/deleteInterface'\nimport * as listInterfaces from './operations/listInterfaces'\nimport * as createPlugin from './operations/createPlugin'\nimport * as getPlugin from './operations/getPlugin'\nimport * as getDereferencedPlugin from './operations/getDereferencedPlugin'\nimport * as getPluginByName from './operations/getPluginByName'\nimport * as updatePlugin from './operations/updatePlugin'\nimport * as deletePlugin from './operations/deletePlugin'\nimport * as listPlugins from './operations/listPlugins'\nimport * as getPluginCode from './operations/getPluginCode'\nimport * as getUsage from './operations/getUsage'\nimport * as getMultipleUsages from './operations/getMultipleUsages'\nimport * as listUsageHistory from './operations/listUsageHistory'\nimport * as listUsageActivity from './operations/listUsageActivity'\nimport * as listUsageActivityDaily from './operations/listUsageActivityDaily'\nimport * as changeAISpendQuota from './operations/changeAISpendQuota'\nimport * as listActivities from './operations/listActivities'\nimport * as introspect from './operations/introspect'\n\nexport * from './models'\n\nexport * as runVrl from './operations/runVrl'\nexport * as getAccount from './operations/getAccount'\nexport * as updateAccount from './operations/updateAccount'\nexport * as deleteAccount from './operations/deleteAccount'\nexport * as listPersonalAccessTokens from './operations/listPersonalAccessTokens'\nexport * as createPersonalAccessToken from './operations/createPersonalAccessToken'\nexport * as deletePersonalAccessToken from './operations/deletePersonalAccessToken'\nexport * as setAccountPreference from './operations/setAccountPreference'\nexport * as getAccountPreference from './operations/getAccountPreference'\nexport * as listPublicIntegrations from './operations/listPublicIntegrations'\nexport * as getPublicIntegrationById from './operations/getPublicIntegrationById'\nexport * as getPublicIntegration from './operations/getPublicIntegration'\nexport * as listPublicPlugins from './operations/listPublicPlugins'\nexport * as getPublicPluginById from './operations/getPublicPluginById'\nexport * as getDereferencedPublicPluginById from './operations/getDereferencedPublicPluginById'\nexport * as getPublicPlugin from './operations/getPublicPlugin'\nexport * as getPublicPluginCode from './operations/getPublicPluginCode'\nexport * as listPublicInterfaces from './operations/listPublicInterfaces'\nexport * as getPublicInterfaceById from './operations/getPublicInterfaceById'\nexport * as getPublicInterface from './operations/getPublicInterface'\nexport * as createBot from './operations/createBot'\nexport * as updateBot from './operations/updateBot'\nexport * as rotateBotSigningSecrets from './operations/rotateBotSigningSecrets'\nexport * as transferBot from './operations/transferBot'\nexport * as listBots from './operations/listBots'\nexport * as getBot from './operations/getBot'\nexport * as deleteBot from './operations/deleteBot'\nexport * as getBotLogs from './operations/getBotLogs'\nexport * as getBotWebchat from './operations/getBotWebchat'\nexport * as getBotAnalytics from './operations/getBotAnalytics'\nexport * as listActionRuns from './operations/listActionRuns'\nexport * as getBotIssue from './operations/getBotIssue'\nexport * as listBotIssues from './operations/listBotIssues'\nexport * as deleteBotIssue from './operations/deleteBotIssue'\nexport * as listBotIssueEvents from './operations/listBotIssueEvents'\nexport * as listBotVersions from './operations/listBotVersions'\nexport * as getBotVersion from './operations/getBotVersion'\nexport * as getBotJson from './operations/getBotJson'\nexport * as publishFromBotJson from './operations/publishFromBotJson'\nexport * as createBotVersion from './operations/createBotVersion'\nexport * as deployBotVersion from './operations/deployBotVersion'\nexport * as createIntegrationShareableId from './operations/createIntegrationShareableId'\nexport * as deleteIntegrationShareableId from './operations/deleteIntegrationShareableId'\nexport * as getIntegrationShareableId from './operations/getIntegrationShareableId'\nexport * as unlinkSandboxedConversations from './operations/unlinkSandboxedConversations'\nexport * as listBotApiKeys from './operations/listBotApiKeys'\nexport * as createBotApiKey from './operations/createBotApiKey'\nexport * as deleteBotApiKey from './operations/deleteBotApiKey'\nexport * as getBotAllowlist from './operations/getBotAllowlist'\nexport * as updateBotAllowlist from './operations/updateBotAllowlist'\nexport * as migrateWorkspaceToV4 from './operations/migrateWorkspaceToV4'\nexport * as listWorkspaceInvoices from './operations/listWorkspaceInvoices'\nexport * as getUpcomingInvoice from './operations/getUpcomingInvoice'\nexport * as chargeWorkspaceUnpaidInvoices from './operations/chargeWorkspaceUnpaidInvoices'\nexport * as createWorkspace from './operations/createWorkspace'\nexport * as getPublicWorkspace from './operations/getPublicWorkspace'\nexport * as getWorkspace from './operations/getWorkspace'\nexport * as listWorkspaceUsages from './operations/listWorkspaceUsages'\nexport * as breakDownWorkspaceUsageByBot from './operations/breakDownWorkspaceUsageByBot'\nexport * as getAllWorkspaceQuotaCompletion from './operations/getAllWorkspaceQuotaCompletion'\nexport * as getWorkspaceQuota from './operations/getWorkspaceQuota'\nexport * as listWorkspaceQuotas from './operations/listWorkspaceQuotas'\nexport * as updateWorkspace from './operations/updateWorkspace'\nexport * as checkHandleAvailability from './operations/checkHandleAvailability'\nexport * as listWorkspaces from './operations/listWorkspaces'\nexport * as listPublicWorkspaces from './operations/listPublicWorkspaces'\nexport * as deleteWorkspace from './operations/deleteWorkspace'\nexport * as getAuditRecords from './operations/getAuditRecords'\nexport * as setWorkspacePreference from './operations/setWorkspacePreference'\nexport * as getWorkspacePreference from './operations/getWorkspacePreference'\nexport * as listWorkspaceMembers from './operations/listWorkspaceMembers'\nexport * as getWorkspaceMember from './operations/getWorkspaceMember'\nexport * as deleteWorkspaceMember from './operations/deleteWorkspaceMember'\nexport * as createWorkspaceMember from './operations/createWorkspaceMember'\nexport * as updateWorkspaceMember from './operations/updateWorkspaceMember'\nexport * as listIntegrationApiKeys from './operations/listIntegrationApiKeys'\nexport * as createIntegrationApiKey from './operations/createIntegrationApiKey'\nexport * as deleteIntegrationApiKey from './operations/deleteIntegrationApiKey'\nexport * as createIntegration from './operations/createIntegration'\nexport * as validateIntegrationCreation from './operations/validateIntegrationCreation'\nexport * as updateIntegration from './operations/updateIntegration'\nexport * as rotateIntegrationSigningSecrets from './operations/rotateIntegrationSigningSecrets'\nexport * as validateIntegrationUpdate from './operations/validateIntegrationUpdate'\nexport * as listIntegrations from './operations/listIntegrations'\nexport * as getIntegration from './operations/getIntegration'\nexport * as getIntegrationLogs from './operations/getIntegrationLogs'\nexport * as getIntegrationByName from './operations/getIntegrationByName'\nexport * as deleteIntegration from './operations/deleteIntegration'\nexport * as requestIntegrationVerification from './operations/requestIntegrationVerification'\nexport * as createInterface from './operations/createInterface'\nexport * as getInterface from './operations/getInterface'\nexport * as getInterfaceByName from './operations/getInterfaceByName'\nexport * as updateInterface from './operations/updateInterface'\nexport * as deleteInterface from './operations/deleteInterface'\nexport * as listInterfaces from './operations/listInterfaces'\nexport * as createPlugin from './operations/createPlugin'\nexport * as getPlugin from './operations/getPlugin'\nexport * as getDereferencedPlugin from './operations/getDereferencedPlugin'\nexport * as getPluginByName from './operations/getPluginByName'\nexport * as updatePlugin from './operations/updatePlugin'\nexport * as deletePlugin from './operations/deletePlugin'\nexport * as listPlugins from './operations/listPlugins'\nexport * as getPluginCode from './operations/getPluginCode'\nexport * as getUsage from './operations/getUsage'\nexport * as getMultipleUsages from './operations/getMultipleUsages'\nexport * as listUsageHistory from './operations/listUsageHistory'\nexport * as listUsageActivity from './operations/listUsageActivity'\nexport * as listUsageActivityDaily from './operations/listUsageActivityDaily'\nexport * as changeAISpendQuota from './operations/changeAISpendQuota'\nexport * as listActivities from './operations/listActivities'\nexport * as introspect from './operations/introspect'\n\nexport const apiVersion = '1.108.0'\n\nexport type ClientProps = {\n  toAxiosRequest: typeof toAxiosRequest\n  toApiError: typeof toApiError\n}\n\nexport class Client {\n\n  public constructor(private axiosInstance: AxiosInstance, private props: Partial<ClientProps> = {}) {}\n\n  public readonly runVrl = async (input: runVrl.RunVrlInput): Promise<runVrl.RunVrlResponse> => {\n    const { path, headers, query, body } = runVrl.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<runVrl.RunVrlResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getAccount = async (input: getAccount.GetAccountInput): Promise<getAccount.GetAccountResponse> => {\n    const { path, headers, query, body } = getAccount.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getAccount.GetAccountResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly updateAccount = async (input: updateAccount.UpdateAccountInput): Promise<updateAccount.UpdateAccountResponse> => {\n    const { path, headers, query, body } = updateAccount.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"put\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<updateAccount.UpdateAccountResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly deleteAccount = async (input: deleteAccount.DeleteAccountInput): Promise<deleteAccount.DeleteAccountResponse> => {\n    const { path, headers, query, body } = deleteAccount.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<deleteAccount.DeleteAccountResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listPersonalAccessTokens = async (input: listPersonalAccessTokens.ListPersonalAccessTokensInput): Promise<listPersonalAccessTokens.ListPersonalAccessTokensResponse> => {\n    const { path, headers, query, body } = listPersonalAccessTokens.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listPersonalAccessTokens.ListPersonalAccessTokensResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly createPersonalAccessToken = async (input: createPersonalAccessToken.CreatePersonalAccessTokenInput): Promise<createPersonalAccessToken.CreatePersonalAccessTokenResponse> => {\n    const { path, headers, query, body } = createPersonalAccessToken.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<createPersonalAccessToken.CreatePersonalAccessTokenResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly deletePersonalAccessToken = async (input: deletePersonalAccessToken.DeletePersonalAccessTokenInput): Promise<deletePersonalAccessToken.DeletePersonalAccessTokenResponse> => {\n    const { path, headers, query, body } = deletePersonalAccessToken.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"delete\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<deletePersonalAccessToken.DeletePersonalAccessTokenResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly setAccountPreference = async (input: setAccountPreference.SetAccountPreferenceInput): Promise<setAccountPreference.SetAccountPreferenceResponse> => {\n    const { path, headers, query, body } = setAccountPreference.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<setAccountPreference.SetAccountPreferenceResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getAccountPreference = async (input: getAccountPreference.GetAccountPreferenceInput): Promise<getAccountPreference.GetAccountPreferenceResponse> => {\n    const { path, headers, query, body } = getAccountPreference.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getAccountPreference.GetAccountPreferenceResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listPublicIntegrations = async (input: listPublicIntegrations.ListPublicIntegrationsInput): Promise<listPublicIntegrations.ListPublicIntegrationsResponse> => {\n    const { path, headers, query, body } = listPublicIntegrations.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listPublicIntegrations.ListPublicIntegrationsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getPublicIntegrationById = async (input: getPublicIntegrationById.GetPublicIntegrationByIdInput): Promise<getPublicIntegrationById.GetPublicIntegrationByIdResponse> => {\n    const { path, headers, query, body } = getPublicIntegrationById.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getPublicIntegrationById.GetPublicIntegrationByIdResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getPublicIntegration = async (input: getPublicIntegration.GetPublicIntegrationInput): Promise<getPublicIntegration.GetPublicIntegrationResponse> => {\n    const { path, headers, query, body } = getPublicIntegration.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getPublicIntegration.GetPublicIntegrationResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listPublicPlugins = async (input: listPublicPlugins.ListPublicPluginsInput): Promise<listPublicPlugins.ListPublicPluginsResponse> => {\n    const { path, headers, query, body } = listPublicPlugins.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listPublicPlugins.ListPublicPluginsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getPublicPluginById = async (input: getPublicPluginById.GetPublicPluginByIdInput): Promise<getPublicPluginById.GetPublicPluginByIdResponse> => {\n    const { path, headers, query, body } = getPublicPluginById.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getPublicPluginById.GetPublicPluginByIdResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getDereferencedPublicPluginById = async (input: getDereferencedPublicPluginById.GetDereferencedPublicPluginByIdInput): Promise<getDereferencedPublicPluginById.GetDereferencedPublicPluginByIdResponse> => {\n    const { path, headers, query, body } = getDereferencedPublicPluginById.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getDereferencedPublicPluginById.GetDereferencedPublicPluginByIdResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getPublicPlugin = async (input: getPublicPlugin.GetPublicPluginInput): Promise<getPublicPlugin.GetPublicPluginResponse> => {\n    const { path, headers, query, body } = getPublicPlugin.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getPublicPlugin.GetPublicPluginResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getPublicPluginCode = async (input: getPublicPluginCode.GetPublicPluginCodeInput): Promise<getPublicPluginCode.GetPublicPluginCodeResponse> => {\n    const { path, headers, query, body } = getPublicPluginCode.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getPublicPluginCode.GetPublicPluginCodeResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listPublicInterfaces = async (input: listPublicInterfaces.ListPublicInterfacesInput): Promise<listPublicInterfaces.ListPublicInterfacesResponse> => {\n    const { path, headers, query, body } = listPublicInterfaces.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listPublicInterfaces.ListPublicInterfacesResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getPublicInterfaceById = async (input: getPublicInterfaceById.GetPublicInterfaceByIdInput): Promise<getPublicInterfaceById.GetPublicInterfaceByIdResponse> => {\n    const { path, headers, query, body } = getPublicInterfaceById.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getPublicInterfaceById.GetPublicInterfaceByIdResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getPublicInterface = async (input: getPublicInterface.GetPublicInterfaceInput): Promise<getPublicInterface.GetPublicInterfaceResponse> => {\n    const { path, headers, query, body } = getPublicInterface.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getPublicInterface.GetPublicInterfaceResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly createBot = async (input: createBot.CreateBotInput): Promise<createBot.CreateBotResponse> => {\n    const { path, headers, query, body } = createBot.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<createBot.CreateBotResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly updateBot = async (input: updateBot.UpdateBotInput): Promise<updateBot.UpdateBotResponse> => {\n    const { path, headers, query, body } = updateBot.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"put\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<updateBot.UpdateBotResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly rotateBotSigningSecrets = async (input: rotateBotSigningSecrets.RotateBotSigningSecretsInput): Promise<rotateBotSigningSecrets.RotateBotSigningSecretsResponse> => {\n    const { path, headers, query, body } = rotateBotSigningSecrets.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<rotateBotSigningSecrets.RotateBotSigningSecretsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly transferBot = async (input: transferBot.TransferBotInput): Promise<transferBot.TransferBotResponse> => {\n    const { path, headers, query, body } = transferBot.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<transferBot.TransferBotResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listBots = async (input: listBots.ListBotsInput): Promise<listBots.ListBotsResponse> => {\n    const { path, headers, query, body } = listBots.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listBots.ListBotsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getBot = async (input: getBot.GetBotInput): Promise<getBot.GetBotResponse> => {\n    const { path, headers, query, body } = getBot.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getBot.GetBotResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly deleteBot = async (input: deleteBot.DeleteBotInput): Promise<deleteBot.DeleteBotResponse> => {\n    const { path, headers, query, body } = deleteBot.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"delete\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<deleteBot.DeleteBotResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getBotLogs = async (input: getBotLogs.GetBotLogsInput): Promise<getBotLogs.GetBotLogsResponse> => {\n    const { path, headers, query, body } = getBotLogs.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getBotLogs.GetBotLogsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getBotWebchat = async (input: getBotWebchat.GetBotWebchatInput): Promise<getBotWebchat.GetBotWebchatResponse> => {\n    const { path, headers, query, body } = getBotWebchat.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getBotWebchat.GetBotWebchatResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getBotAnalytics = async (input: getBotAnalytics.GetBotAnalyticsInput): Promise<getBotAnalytics.GetBotAnalyticsResponse> => {\n    const { path, headers, query, body } = getBotAnalytics.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getBotAnalytics.GetBotAnalyticsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listActionRuns = async (input: listActionRuns.ListActionRunsInput): Promise<listActionRuns.ListActionRunsResponse> => {\n    const { path, headers, query, body } = listActionRuns.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listActionRuns.ListActionRunsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getBotIssue = async (input: getBotIssue.GetBotIssueInput): Promise<getBotIssue.GetBotIssueResponse> => {\n    const { path, headers, query, body } = getBotIssue.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getBotIssue.GetBotIssueResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listBotIssues = async (input: listBotIssues.ListBotIssuesInput): Promise<listBotIssues.ListBotIssuesResponse> => {\n    const { path, headers, query, body } = listBotIssues.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listBotIssues.ListBotIssuesResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly deleteBotIssue = async (input: deleteBotIssue.DeleteBotIssueInput): Promise<deleteBotIssue.DeleteBotIssueResponse> => {\n    const { path, headers, query, body } = deleteBotIssue.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"delete\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<deleteBotIssue.DeleteBotIssueResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listBotIssueEvents = async (input: listBotIssueEvents.ListBotIssueEventsInput): Promise<listBotIssueEvents.ListBotIssueEventsResponse> => {\n    const { path, headers, query, body } = listBotIssueEvents.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listBotIssueEvents.ListBotIssueEventsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listBotVersions = async (input: listBotVersions.ListBotVersionsInput): Promise<listBotVersions.ListBotVersionsResponse> => {\n    const { path, headers, query, body } = listBotVersions.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listBotVersions.ListBotVersionsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getBotVersion = async (input: getBotVersion.GetBotVersionInput): Promise<getBotVersion.GetBotVersionResponse> => {\n    const { path, headers, query, body } = getBotVersion.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getBotVersion.GetBotVersionResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getBotJson = async (input: getBotJson.GetBotJsonInput): Promise<getBotJson.GetBotJsonResponse> => {\n    const { path, headers, query, body } = getBotJson.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getBotJson.GetBotJsonResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly publishFromBotJson = async (input: publishFromBotJson.PublishFromBotJsonInput): Promise<publishFromBotJson.PublishFromBotJsonResponse> => {\n    const { path, headers, query, body } = publishFromBotJson.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<publishFromBotJson.PublishFromBotJsonResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly createBotVersion = async (input: createBotVersion.CreateBotVersionInput): Promise<createBotVersion.CreateBotVersionResponse> => {\n    const { path, headers, query, body } = createBotVersion.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<createBotVersion.CreateBotVersionResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly deployBotVersion = async (input: deployBotVersion.DeployBotVersionInput): Promise<deployBotVersion.DeployBotVersionResponse> => {\n    const { path, headers, query, body } = deployBotVersion.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<deployBotVersion.DeployBotVersionResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly createIntegrationShareableId = async (input: createIntegrationShareableId.CreateIntegrationShareableIdInput): Promise<createIntegrationShareableId.CreateIntegrationShareableIdResponse> => {\n    const { path, headers, query, body } = createIntegrationShareableId.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<createIntegrationShareableId.CreateIntegrationShareableIdResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly deleteIntegrationShareableId = async (input: deleteIntegrationShareableId.DeleteIntegrationShareableIdInput): Promise<deleteIntegrationShareableId.DeleteIntegrationShareableIdResponse> => {\n    const { path, headers, query, body } = deleteIntegrationShareableId.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"delete\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<deleteIntegrationShareableId.DeleteIntegrationShareableIdResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getIntegrationShareableId = async (input: getIntegrationShareableId.GetIntegrationShareableIdInput): Promise<getIntegrationShareableId.GetIntegrationShareableIdResponse> => {\n    const { path, headers, query, body } = getIntegrationShareableId.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getIntegrationShareableId.GetIntegrationShareableIdResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly unlinkSandboxedConversations = async (input: unlinkSandboxedConversations.UnlinkSandboxedConversationsInput): Promise<unlinkSandboxedConversations.UnlinkSandboxedConversationsResponse> => {\n    const { path, headers, query, body } = unlinkSandboxedConversations.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"delete\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<unlinkSandboxedConversations.UnlinkSandboxedConversationsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listBotApiKeys = async (input: listBotApiKeys.ListBotApiKeysInput): Promise<listBotApiKeys.ListBotApiKeysResponse> => {\n    const { path, headers, query, body } = listBotApiKeys.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listBotApiKeys.ListBotApiKeysResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly createBotApiKey = async (input: createBotApiKey.CreateBotApiKeyInput): Promise<createBotApiKey.CreateBotApiKeyResponse> => {\n    const { path, headers, query, body } = createBotApiKey.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<createBotApiKey.CreateBotApiKeyResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly deleteBotApiKey = async (input: deleteBotApiKey.DeleteBotApiKeyInput): Promise<deleteBotApiKey.DeleteBotApiKeyResponse> => {\n    const { path, headers, query, body } = deleteBotApiKey.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"delete\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<deleteBotApiKey.DeleteBotApiKeyResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getBotAllowlist = async (input: getBotAllowlist.GetBotAllowlistInput): Promise<getBotAllowlist.GetBotAllowlistResponse> => {\n    const { path, headers, query, body } = getBotAllowlist.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getBotAllowlist.GetBotAllowlistResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly updateBotAllowlist = async (input: updateBotAllowlist.UpdateBotAllowlistInput): Promise<updateBotAllowlist.UpdateBotAllowlistResponse> => {\n    const { path, headers, query, body } = updateBotAllowlist.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"put\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<updateBotAllowlist.UpdateBotAllowlistResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly migrateWorkspaceToV4 = async (input: migrateWorkspaceToV4.MigrateWorkspaceToV4Input): Promise<migrateWorkspaceToV4.MigrateWorkspaceToV4Response> => {\n    const { path, headers, query, body } = migrateWorkspaceToV4.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<migrateWorkspaceToV4.MigrateWorkspaceToV4Response>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listWorkspaceInvoices = async (input: listWorkspaceInvoices.ListWorkspaceInvoicesInput): Promise<listWorkspaceInvoices.ListWorkspaceInvoicesResponse> => {\n    const { path, headers, query, body } = listWorkspaceInvoices.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listWorkspaceInvoices.ListWorkspaceInvoicesResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getUpcomingInvoice = async (input: getUpcomingInvoice.GetUpcomingInvoiceInput): Promise<getUpcomingInvoice.GetUpcomingInvoiceResponse> => {\n    const { path, headers, query, body } = getUpcomingInvoice.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getUpcomingInvoice.GetUpcomingInvoiceResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly chargeWorkspaceUnpaidInvoices = async (input: chargeWorkspaceUnpaidInvoices.ChargeWorkspaceUnpaidInvoicesInput): Promise<chargeWorkspaceUnpaidInvoices.ChargeWorkspaceUnpaidInvoicesResponse> => {\n    const { path, headers, query, body } = chargeWorkspaceUnpaidInvoices.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<chargeWorkspaceUnpaidInvoices.ChargeWorkspaceUnpaidInvoicesResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly createWorkspace = async (input: createWorkspace.CreateWorkspaceInput): Promise<createWorkspace.CreateWorkspaceResponse> => {\n    const { path, headers, query, body } = createWorkspace.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<createWorkspace.CreateWorkspaceResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getPublicWorkspace = async (input: getPublicWorkspace.GetPublicWorkspaceInput): Promise<getPublicWorkspace.GetPublicWorkspaceResponse> => {\n    const { path, headers, query, body } = getPublicWorkspace.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getPublicWorkspace.GetPublicWorkspaceResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getWorkspace = async (input: getWorkspace.GetWorkspaceInput): Promise<getWorkspace.GetWorkspaceResponse> => {\n    const { path, headers, query, body } = getWorkspace.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getWorkspace.GetWorkspaceResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listWorkspaceUsages = async (input: listWorkspaceUsages.ListWorkspaceUsagesInput): Promise<listWorkspaceUsages.ListWorkspaceUsagesResponse> => {\n    const { path, headers, query, body } = listWorkspaceUsages.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listWorkspaceUsages.ListWorkspaceUsagesResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly breakDownWorkspaceUsageByBot = async (input: breakDownWorkspaceUsageByBot.BreakDownWorkspaceUsageByBotInput): Promise<breakDownWorkspaceUsageByBot.BreakDownWorkspaceUsageByBotResponse> => {\n    const { path, headers, query, body } = breakDownWorkspaceUsageByBot.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<breakDownWorkspaceUsageByBot.BreakDownWorkspaceUsageByBotResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getAllWorkspaceQuotaCompletion = async (input: getAllWorkspaceQuotaCompletion.GetAllWorkspaceQuotaCompletionInput): Promise<getAllWorkspaceQuotaCompletion.GetAllWorkspaceQuotaCompletionResponse> => {\n    const { path, headers, query, body } = getAllWorkspaceQuotaCompletion.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getAllWorkspaceQuotaCompletion.GetAllWorkspaceQuotaCompletionResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getWorkspaceQuota = async (input: getWorkspaceQuota.GetWorkspaceQuotaInput): Promise<getWorkspaceQuota.GetWorkspaceQuotaResponse> => {\n    const { path, headers, query, body } = getWorkspaceQuota.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getWorkspaceQuota.GetWorkspaceQuotaResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listWorkspaceQuotas = async (input: listWorkspaceQuotas.ListWorkspaceQuotasInput): Promise<listWorkspaceQuotas.ListWorkspaceQuotasResponse> => {\n    const { path, headers, query, body } = listWorkspaceQuotas.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listWorkspaceQuotas.ListWorkspaceQuotasResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly updateWorkspace = async (input: updateWorkspace.UpdateWorkspaceInput): Promise<updateWorkspace.UpdateWorkspaceResponse> => {\n    const { path, headers, query, body } = updateWorkspace.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"put\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<updateWorkspace.UpdateWorkspaceResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly checkHandleAvailability = async (input: checkHandleAvailability.CheckHandleAvailabilityInput): Promise<checkHandleAvailability.CheckHandleAvailabilityResponse> => {\n    const { path, headers, query, body } = checkHandleAvailability.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"put\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<checkHandleAvailability.CheckHandleAvailabilityResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listWorkspaces = async (input: listWorkspaces.ListWorkspacesInput): Promise<listWorkspaces.ListWorkspacesResponse> => {\n    const { path, headers, query, body } = listWorkspaces.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listWorkspaces.ListWorkspacesResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listPublicWorkspaces = async (input: listPublicWorkspaces.ListPublicWorkspacesInput): Promise<listPublicWorkspaces.ListPublicWorkspacesResponse> => {\n    const { path, headers, query, body } = listPublicWorkspaces.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listPublicWorkspaces.ListPublicWorkspacesResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly deleteWorkspace = async (input: deleteWorkspace.DeleteWorkspaceInput): Promise<deleteWorkspace.DeleteWorkspaceResponse> => {\n    const { path, headers, query, body } = deleteWorkspace.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"delete\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<deleteWorkspace.DeleteWorkspaceResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getAuditRecords = async (input: getAuditRecords.GetAuditRecordsInput): Promise<getAuditRecords.GetAuditRecordsResponse> => {\n    const { path, headers, query, body } = getAuditRecords.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getAuditRecords.GetAuditRecordsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly setWorkspacePreference = async (input: setWorkspacePreference.SetWorkspacePreferenceInput): Promise<setWorkspacePreference.SetWorkspacePreferenceResponse> => {\n    const { path, headers, query, body } = setWorkspacePreference.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<setWorkspacePreference.SetWorkspacePreferenceResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getWorkspacePreference = async (input: getWorkspacePreference.GetWorkspacePreferenceInput): Promise<getWorkspacePreference.GetWorkspacePreferenceResponse> => {\n    const { path, headers, query, body } = getWorkspacePreference.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getWorkspacePreference.GetWorkspacePreferenceResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listWorkspaceMembers = async (input: listWorkspaceMembers.ListWorkspaceMembersInput): Promise<listWorkspaceMembers.ListWorkspaceMembersResponse> => {\n    const { path, headers, query, body } = listWorkspaceMembers.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listWorkspaceMembers.ListWorkspaceMembersResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getWorkspaceMember = async (input: getWorkspaceMember.GetWorkspaceMemberInput): Promise<getWorkspaceMember.GetWorkspaceMemberResponse> => {\n    const { path, headers, query, body } = getWorkspaceMember.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getWorkspaceMember.GetWorkspaceMemberResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly deleteWorkspaceMember = async (input: deleteWorkspaceMember.DeleteWorkspaceMemberInput): Promise<deleteWorkspaceMember.DeleteWorkspaceMemberResponse> => {\n    const { path, headers, query, body } = deleteWorkspaceMember.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"delete\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<deleteWorkspaceMember.DeleteWorkspaceMemberResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly createWorkspaceMember = async (input: createWorkspaceMember.CreateWorkspaceMemberInput): Promise<createWorkspaceMember.CreateWorkspaceMemberResponse> => {\n    const { path, headers, query, body } = createWorkspaceMember.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<createWorkspaceMember.CreateWorkspaceMemberResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly updateWorkspaceMember = async (input: updateWorkspaceMember.UpdateWorkspaceMemberInput): Promise<updateWorkspaceMember.UpdateWorkspaceMemberResponse> => {\n    const { path, headers, query, body } = updateWorkspaceMember.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"put\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<updateWorkspaceMember.UpdateWorkspaceMemberResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listIntegrationApiKeys = async (input: listIntegrationApiKeys.ListIntegrationApiKeysInput): Promise<listIntegrationApiKeys.ListIntegrationApiKeysResponse> => {\n    const { path, headers, query, body } = listIntegrationApiKeys.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listIntegrationApiKeys.ListIntegrationApiKeysResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly createIntegrationApiKey = async (input: createIntegrationApiKey.CreateIntegrationApiKeyInput): Promise<createIntegrationApiKey.CreateIntegrationApiKeyResponse> => {\n    const { path, headers, query, body } = createIntegrationApiKey.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<createIntegrationApiKey.CreateIntegrationApiKeyResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly deleteIntegrationApiKey = async (input: deleteIntegrationApiKey.DeleteIntegrationApiKeyInput): Promise<deleteIntegrationApiKey.DeleteIntegrationApiKeyResponse> => {\n    const { path, headers, query, body } = deleteIntegrationApiKey.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"delete\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<deleteIntegrationApiKey.DeleteIntegrationApiKeyResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly createIntegration = async (input: createIntegration.CreateIntegrationInput): Promise<createIntegration.CreateIntegrationResponse> => {\n    const { path, headers, query, body } = createIntegration.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<createIntegration.CreateIntegrationResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly validateIntegrationCreation = async (input: validateIntegrationCreation.ValidateIntegrationCreationInput): Promise<validateIntegrationCreation.ValidateIntegrationCreationResponse> => {\n    const { path, headers, query, body } = validateIntegrationCreation.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<validateIntegrationCreation.ValidateIntegrationCreationResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly updateIntegration = async (input: updateIntegration.UpdateIntegrationInput): Promise<updateIntegration.UpdateIntegrationResponse> => {\n    const { path, headers, query, body } = updateIntegration.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"put\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<updateIntegration.UpdateIntegrationResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly rotateIntegrationSigningSecrets = async (input: rotateIntegrationSigningSecrets.RotateIntegrationSigningSecretsInput): Promise<rotateIntegrationSigningSecrets.RotateIntegrationSigningSecretsResponse> => {\n    const { path, headers, query, body } = rotateIntegrationSigningSecrets.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<rotateIntegrationSigningSecrets.RotateIntegrationSigningSecretsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly validateIntegrationUpdate = async (input: validateIntegrationUpdate.ValidateIntegrationUpdateInput): Promise<validateIntegrationUpdate.ValidateIntegrationUpdateResponse> => {\n    const { path, headers, query, body } = validateIntegrationUpdate.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"put\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<validateIntegrationUpdate.ValidateIntegrationUpdateResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listIntegrations = async (input: listIntegrations.ListIntegrationsInput): Promise<listIntegrations.ListIntegrationsResponse> => {\n    const { path, headers, query, body } = listIntegrations.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listIntegrations.ListIntegrationsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getIntegration = async (input: getIntegration.GetIntegrationInput): Promise<getIntegration.GetIntegrationResponse> => {\n    const { path, headers, query, body } = getIntegration.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getIntegration.GetIntegrationResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getIntegrationLogs = async (input: getIntegrationLogs.GetIntegrationLogsInput): Promise<getIntegrationLogs.GetIntegrationLogsResponse> => {\n    const { path, headers, query, body } = getIntegrationLogs.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getIntegrationLogs.GetIntegrationLogsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getIntegrationByName = async (input: getIntegrationByName.GetIntegrationByNameInput): Promise<getIntegrationByName.GetIntegrationByNameResponse> => {\n    const { path, headers, query, body } = getIntegrationByName.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getIntegrationByName.GetIntegrationByNameResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly deleteIntegration = async (input: deleteIntegration.DeleteIntegrationInput): Promise<deleteIntegration.DeleteIntegrationResponse> => {\n    const { path, headers, query, body } = deleteIntegration.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"delete\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<deleteIntegration.DeleteIntegrationResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly requestIntegrationVerification = async (input: requestIntegrationVerification.RequestIntegrationVerificationInput): Promise<requestIntegrationVerification.RequestIntegrationVerificationResponse> => {\n    const { path, headers, query, body } = requestIntegrationVerification.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<requestIntegrationVerification.RequestIntegrationVerificationResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly createInterface = async (input: createInterface.CreateInterfaceInput): Promise<createInterface.CreateInterfaceResponse> => {\n    const { path, headers, query, body } = createInterface.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<createInterface.CreateInterfaceResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getInterface = async (input: getInterface.GetInterfaceInput): Promise<getInterface.GetInterfaceResponse> => {\n    const { path, headers, query, body } = getInterface.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getInterface.GetInterfaceResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getInterfaceByName = async (input: getInterfaceByName.GetInterfaceByNameInput): Promise<getInterfaceByName.GetInterfaceByNameResponse> => {\n    const { path, headers, query, body } = getInterfaceByName.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getInterfaceByName.GetInterfaceByNameResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly updateInterface = async (input: updateInterface.UpdateInterfaceInput): Promise<updateInterface.UpdateInterfaceResponse> => {\n    const { path, headers, query, body } = updateInterface.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"put\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<updateInterface.UpdateInterfaceResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly deleteInterface = async (input: deleteInterface.DeleteInterfaceInput): Promise<deleteInterface.DeleteInterfaceResponse> => {\n    const { path, headers, query, body } = deleteInterface.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"delete\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<deleteInterface.DeleteInterfaceResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listInterfaces = async (input: listInterfaces.ListInterfacesInput): Promise<listInterfaces.ListInterfacesResponse> => {\n    const { path, headers, query, body } = listInterfaces.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listInterfaces.ListInterfacesResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly createPlugin = async (input: createPlugin.CreatePluginInput): Promise<createPlugin.CreatePluginResponse> => {\n    const { path, headers, query, body } = createPlugin.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<createPlugin.CreatePluginResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getPlugin = async (input: getPlugin.GetPluginInput): Promise<getPlugin.GetPluginResponse> => {\n    const { path, headers, query, body } = getPlugin.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getPlugin.GetPluginResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getDereferencedPlugin = async (input: getDereferencedPlugin.GetDereferencedPluginInput): Promise<getDereferencedPlugin.GetDereferencedPluginResponse> => {\n    const { path, headers, query, body } = getDereferencedPlugin.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getDereferencedPlugin.GetDereferencedPluginResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getPluginByName = async (input: getPluginByName.GetPluginByNameInput): Promise<getPluginByName.GetPluginByNameResponse> => {\n    const { path, headers, query, body } = getPluginByName.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getPluginByName.GetPluginByNameResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly updatePlugin = async (input: updatePlugin.UpdatePluginInput): Promise<updatePlugin.UpdatePluginResponse> => {\n    const { path, headers, query, body } = updatePlugin.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"put\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<updatePlugin.UpdatePluginResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly deletePlugin = async (input: deletePlugin.DeletePluginInput): Promise<deletePlugin.DeletePluginResponse> => {\n    const { path, headers, query, body } = deletePlugin.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"delete\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<deletePlugin.DeletePluginResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listPlugins = async (input: listPlugins.ListPluginsInput): Promise<listPlugins.ListPluginsResponse> => {\n    const { path, headers, query, body } = listPlugins.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listPlugins.ListPluginsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getPluginCode = async (input: getPluginCode.GetPluginCodeInput): Promise<getPluginCode.GetPluginCodeResponse> => {\n    const { path, headers, query, body } = getPluginCode.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getPluginCode.GetPluginCodeResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getUsage = async (input: getUsage.GetUsageInput): Promise<getUsage.GetUsageResponse> => {\n    const { path, headers, query, body } = getUsage.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getUsage.GetUsageResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getMultipleUsages = async (input: getMultipleUsages.GetMultipleUsagesInput): Promise<getMultipleUsages.GetMultipleUsagesResponse> => {\n    const { path, headers, query, body } = getMultipleUsages.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getMultipleUsages.GetMultipleUsagesResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listUsageHistory = async (input: listUsageHistory.ListUsageHistoryInput): Promise<listUsageHistory.ListUsageHistoryResponse> => {\n    const { path, headers, query, body } = listUsageHistory.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listUsageHistory.ListUsageHistoryResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listUsageActivity = async (input: listUsageActivity.ListUsageActivityInput): Promise<listUsageActivity.ListUsageActivityResponse> => {\n    const { path, headers, query, body } = listUsageActivity.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listUsageActivity.ListUsageActivityResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listUsageActivityDaily = async (input: listUsageActivityDaily.ListUsageActivityDailyInput): Promise<listUsageActivityDaily.ListUsageActivityDailyResponse> => {\n    const { path, headers, query, body } = listUsageActivityDaily.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listUsageActivityDaily.ListUsageActivityDailyResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly changeAISpendQuota = async (input: changeAISpendQuota.ChangeAispendQuotaInput): Promise<changeAISpendQuota.ChangeAispendQuotaResponse> => {\n    const { path, headers, query, body } = changeAISpendQuota.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"put\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<changeAISpendQuota.ChangeAispendQuotaResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listActivities = async (input: listActivities.ListActivitiesInput): Promise<listActivities.ListActivitiesResponse> => {\n    const { path, headers, query, body } = listActivities.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listActivities.ListActivitiesResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly introspect = async (input: introspect.IntrospectInput): Promise<introspect.IntrospectResponse> => {\n    const { path, headers, query, body } = introspect.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<introspect.IntrospectResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n}\n\n// maps axios error to api error type\nfunction toApiError(err: unknown): Error {\n  if (axios.isAxiosError(err) && err.response?.data) {\n    return errorFrom(err.response.data)\n  }\n  return errorFrom(err)\n}\n\n", "import * as common from '../common'\nimport * as gen from '../gen/billing'\nimport * as types from '../types'\n\ntype IClient = common.types.Simplify<gen.Client>\nexport type Operation = common.types.Operation<IClient>\nexport type ClientInputs = common.types.Inputs<IClient>\nexport type ClientOutputs = common.types.Outputs<IClient>\n\nexport type ClientProps = common.types.CommonClientProps & {\n  workspaceId: string\n  token: string\n}\n\nexport class Client extends gen.Client {\n  public readonly config: Readonly<types.ClientConfig>\n\n  public constructor(clientProps: ClientProps) {\n    const clientConfig = common.config.getClientConfig(clientProps)\n    const axiosInstance = common.axios.createAxiosInstance(clientConfig, clientProps.retry)\n\n    super(axiosInstance, {\n      toApiError: common.errors.toApiError,\n    })\n\n    this.config = clientConfig\n  }\n\n  public get list() {\n    type ListInputs = common.types.ListInputs<IClient>\n    return {\n      listInvoices: (props: ListInputs['listInvoices']) =>\n        new common.listing.AsyncCollection(({ nextToken }) =>\n          this.listInvoices({ nextToken, ...props }).then((r) => ({ ...r, items: r.invoices }))\n        ),\n    }\n  }\n}\n", "\nimport crypto from 'crypto'\n\nconst codes = {\n  HTTP_STATUS_BAD_REQUEST: 400,\n  HTTP_STATUS_UNAUTHORIZED: 401,\n  HTTP_STATUS_PAYMENT_REQUIRED: 402,\n  HTTP_STATUS_FORBIDDEN: 403,\n  HTTP_STATUS_NOT_FOUND: 404,\n  HTTP_STATUS_METHOD_NOT_ALLOWED: 405,\n  HTTP_STATUS_REQUEST_TIMEOUT: 408,\n  HTTP_STATUS_CONFLICT: 409,\n  HTTP_STATUS_GONE: 410,\n  HTTP_STATUS_PAYLOAD_TOO_LARGE: 413,\n  HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE: 415,\n  HTTP_STATUS_DEPENDENCY_FAILED: 424,\n  HTTP_STATUS_TOO_MANY_REQUESTS: 429,\n  HTTP_STATUS_INTERNAL_SERVER_ERROR: 500,\n  HTTP_STATUS_NOT_IMPLEMENTED: 501,\n  HTTP_STATUS_BAD_GATEWAY: 502,\n  HTTP_STATUS_SERVICE_UNAVAILABLE: 503,\n  HTTP_STATUS_GATEWAY_TIMEOUT: 504,\n} as const\n\ntype ErrorCode = typeof codes[keyof typeof codes]\n\ndeclare const window: any\ntype CryptoLib = { getRandomValues(array: Uint8Array): Uint8Array }\n\nconst cryptoLibPolyfill: CryptoLib = {\n  // Fallback in case crypto isn't available.\n  getRandomValues: (array: Uint8Array) => new Uint8Array(array.map(() => Math.floor(Math.random() * 256))),\n}\n\nlet cryptoLib: CryptoLib =\n  typeof window !== 'undefined' && typeof window.document !== 'undefined'\n    ? window.crypto // Note: On browsers we need to use window.crypto instead of the imported crypto module as the latter is externalized and doesn't have getRandomValues().\n    : crypto\n\nif (!cryptoLib.getRandomValues) {\n  // Use a polyfill in older environments that have a crypto implementaton missing getRandomValues()\n  cryptoLib = cryptoLibPolyfill\n}\n\nabstract class BaseApiError<Code extends ErrorCode, Type extends string, Description extends string> extends Error {\n  public readonly isApiError = true\n\n  constructor(\n    public readonly code: Code,\n    public readonly description: Description,\n    public readonly type: Type,\n    public override readonly message: string,\n    public readonly error?: Error,\n    public readonly id?: string,\n    public readonly metadata?: Record<string, unknown>,\n  ) {\n    super(message)\n\n    if (!this.id) {\n      this.id = BaseApiError.generateId()\n    }\n  }\n\n  format() {\n    return `[${this.type}] ${this.message} (Error ID: ${this.id})`\n  }\n\n  toJSON() {\n    return {\n      id: this.id,\n      code: this.code,\n      type: this.type,\n      message: this.message,\n      metadata: this.metadata,\n    }\n  }\n\n  static generateId() {\n    const prefix = this.getPrefix();\n    const timestamp = new Date().toISOString().replace(/[\\-:TZ]/g, \"\").split(\".\")[0] // UTC time in YYMMDDHHMMSS format\n\n    const randomSuffixByteLength = 4\n    const randomHexSuffix = Array.from(cryptoLib.getRandomValues(new Uint8Array(randomSuffixByteLength)))\n      .map(x => x.toString(16).padStart(2, '0'))\n      .join('')\n      .toUpperCase()\n\n    return `${prefix}_${timestamp}x${randomHexSuffix}`\n  }\n\n  private static getPrefix() {\n    if (typeof window !== 'undefined' && typeof window.document !== 'undefined') {\n      // Browser environment\n      return 'err_bwsr'\n    }\n    return 'err'\n  }\n}\n\nconst isObject = (obj: unknown): obj is object => typeof obj === 'object' && !Array.isArray(obj) && obj !== null\n\nexport const isApiError = (thrown: unknown): thrown is ApiError => {\n  return thrown instanceof BaseApiError || isObject(thrown) && (thrown as ApiError).isApiError === true\n}\n\ntype UnknownType = 'Unknown'\n\n/**\n *  An unknown error occurred\n */\nexport class UnknownError extends BaseApiError<500, UnknownType, 'An unknown error occurred'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(500, 'An unknown error occurred', 'Unknown', message, error, id, metadata)\n  }\n}\n\ntype InternalType = 'Internal'\n\n/**\n *  An internal error occurred\n */\nexport class InternalError extends BaseApiError<500, InternalType, 'An internal error occurred'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(500, 'An internal error occurred', 'Internal', message, error, id, metadata)\n  }\n}\n\ntype UnauthorizedType = 'Unauthorized'\n\n/**\n *  The request requires to be authenticated.\n */\nexport class UnauthorizedError extends BaseApiError<401, UnauthorizedType, 'The request requires to be authenticated.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(401, 'The request requires to be authenticated.', 'Unauthorized', message, error, id, metadata)\n  }\n}\n\ntype ForbiddenType = 'Forbidden'\n\n/**\n *  The requested action can\\'t be peform by this resource.\n */\nexport class ForbiddenError extends BaseApiError<403, ForbiddenType, 'The requested action can\\'t be peform by this resource.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(403, 'The requested action can\\'t be peform by this resource.', 'Forbidden', message, error, id, metadata)\n  }\n}\n\ntype PayloadTooLargeType = 'PayloadTooLarge'\n\n/**\n *  The request payload is too large.\n */\nexport class PayloadTooLargeError extends BaseApiError<413, PayloadTooLargeType, 'The request payload is too large.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(413, 'The request payload is too large.', 'PayloadTooLarge', message, error, id, metadata)\n  }\n}\n\ntype InvalidPayloadType = 'InvalidPayload'\n\n/**\n *  The request payload is invalid.\n */\nexport class InvalidPayloadError extends BaseApiError<400, InvalidPayloadType, 'The request payload is invalid.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'The request payload is invalid.', 'InvalidPayload', message, error, id, metadata)\n  }\n}\n\ntype UnsupportedMediaTypeType = 'UnsupportedMediaType'\n\n/**\n *  The request is invalid because the content-type is not supported.\n */\nexport class UnsupportedMediaTypeError extends BaseApiError<415, UnsupportedMediaTypeType, 'The request is invalid because the content-type is not supported.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(415, 'The request is invalid because the content-type is not supported.', 'UnsupportedMediaType', message, error, id, metadata)\n  }\n}\n\ntype MethodNotFoundType = 'MethodNotFound'\n\n/**\n *  The requested method does not exist.\n */\nexport class MethodNotFoundError extends BaseApiError<405, MethodNotFoundType, 'The requested method does not exist.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(405, 'The requested method does not exist.', 'MethodNotFound', message, error, id, metadata)\n  }\n}\n\ntype ResourceNotFoundType = 'ResourceNotFound'\n\n/**\n *  The requested resource does not exist.\n */\nexport class ResourceNotFoundError extends BaseApiError<404, ResourceNotFoundType, 'The requested resource does not exist.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(404, 'The requested resource does not exist.', 'ResourceNotFound', message, error, id, metadata)\n  }\n}\n\ntype InvalidJsonSchemaType = 'InvalidJsonSchema'\n\n/**\n *  The provided JSON schema is invalid.\n */\nexport class InvalidJsonSchemaError extends BaseApiError<400, InvalidJsonSchemaType, 'The provided JSON schema is invalid.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'The provided JSON schema is invalid.', 'InvalidJsonSchema', message, error, id, metadata)\n  }\n}\n\ntype InvalidDataFormatType = 'InvalidDataFormat'\n\n/**\n *  The provided data doesn\\'t respect the provided JSON schema.\n */\nexport class InvalidDataFormatError extends BaseApiError<400, InvalidDataFormatType, 'The provided data doesn\\'t respect the provided JSON schema.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'The provided data doesn\\'t respect the provided JSON schema.', 'InvalidDataFormat', message, error, id, metadata)\n  }\n}\n\ntype InvalidIdentifierType = 'InvalidIdentifier'\n\n/**\n *  The provided identifier is not valid. An identifier must start with a lowercase letter, be between 2 and 100 characters long and use only alphanumeric characters.\n */\nexport class InvalidIdentifierError extends BaseApiError<400, InvalidIdentifierType, 'The provided identifier is not valid. An identifier must start with a lowercase letter, be between 2 and 100 characters long and use only alphanumeric characters.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'The provided identifier is not valid. An identifier must start with a lowercase letter, be between 2 and 100 characters long and use only alphanumeric characters.', 'InvalidIdentifier', message, error, id, metadata)\n  }\n}\n\ntype RelationConflictType = 'RelationConflict'\n\n/**\n *  The resource is related with a different resource that the one referenced in the request. This is usually caused when providing two resource identifiers that aren\\'t linked together.\n */\nexport class RelationConflictError extends BaseApiError<409, RelationConflictType, 'The resource is related with a different resource that the one referenced in the request. This is usually caused when providing two resource identifiers that aren\\'t linked together.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(409, 'The resource is related with a different resource that the one referenced in the request. This is usually caused when providing two resource identifiers that aren\\'t linked together.', 'RelationConflict', message, error, id, metadata)\n  }\n}\n\ntype ReferenceConstraintType = 'ReferenceConstraint'\n\n/**\n *  The resource cannot be deleted because it\\'s referenced by another resource\n */\nexport class ReferenceConstraintError extends BaseApiError<409, ReferenceConstraintType, 'The resource cannot be deleted because it\\'s referenced by another resource'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(409, 'The resource cannot be deleted because it\\'s referenced by another resource', 'ReferenceConstraint', message, error, id, metadata)\n  }\n}\n\ntype ResourceLockedConflictType = 'ResourceLockedConflict'\n\n/**\n *  The resource is current locked and cannot be operated on until the lock is released.\n */\nexport class ResourceLockedConflictError extends BaseApiError<409, ResourceLockedConflictType, 'The resource is current locked and cannot be operated on until the lock is released.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(409, 'The resource is current locked and cannot be operated on until the lock is released.', 'ResourceLockedConflict', message, error, id, metadata)\n  }\n}\n\ntype ResourceGoneType = 'ResourceGone'\n\n/**\n *  The requested resource is no longer available.\n */\nexport class ResourceGoneError extends BaseApiError<410, ResourceGoneType, 'The requested resource is no longer available.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(410, 'The requested resource is no longer available.', 'ResourceGone', message, error, id, metadata)\n  }\n}\n\ntype ReferenceNotFoundType = 'ReferenceNotFound'\n\n/**\n *  The provided resource reference is missing. This is usually caused when providing an invalid id inside the payload of a request.\n */\nexport class ReferenceNotFoundError extends BaseApiError<400, ReferenceNotFoundType, 'The provided resource reference is missing. This is usually caused when providing an invalid id inside the payload of a request.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'The provided resource reference is missing. This is usually caused when providing an invalid id inside the payload of a request.', 'ReferenceNotFound', message, error, id, metadata)\n  }\n}\n\ntype InvalidQueryType = 'InvalidQuery'\n\n/**\n *  The provided query is invalid. This is usually caused when providing an invalid parameter for querying a resource.\n */\nexport class InvalidQueryError extends BaseApiError<400, InvalidQueryType, 'The provided query is invalid. This is usually caused when providing an invalid parameter for querying a resource.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'The provided query is invalid. This is usually caused when providing an invalid parameter for querying a resource.', 'InvalidQuery', message, error, id, metadata)\n  }\n}\n\ntype RuntimeType = 'Runtime'\n\n/**\n *  An error happened during the execution of a runtime (bot or integration).\n */\nexport class RuntimeError extends BaseApiError<400, RuntimeType, 'An error happened during the execution of a runtime (bot or integration).'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'An error happened during the execution of a runtime (bot or integration).', 'Runtime', message, error, id, metadata)\n  }\n}\n\ntype AlreadyExistsType = 'AlreadyExists'\n\n/**\n *  The record attempted to be created already exists.\n */\nexport class AlreadyExistsError extends BaseApiError<409, AlreadyExistsType, 'The record attempted to be created already exists.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(409, 'The record attempted to be created already exists.', 'AlreadyExists', message, error, id, metadata)\n  }\n}\n\ntype RateLimitedType = 'RateLimited'\n\n/**\n *  The request has been rate limited.\n */\nexport class RateLimitedError extends BaseApiError<429, RateLimitedType, 'The request has been rate limited.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(429, 'The request has been rate limited.', 'RateLimited', message, error, id, metadata)\n  }\n}\n\ntype PaymentRequiredType = 'PaymentRequired'\n\n/**\n *  A payment is required to perform this request.\n */\nexport class PaymentRequiredError extends BaseApiError<402, PaymentRequiredType, 'A payment is required to perform this request.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(402, 'A payment is required to perform this request.', 'PaymentRequired', message, error, id, metadata)\n  }\n}\n\ntype QuotaExceededType = 'QuotaExceeded'\n\n/**\n *  The request exceeds the allowed quota. Quotas are a soft limit that can be increased.\n */\nexport class QuotaExceededError extends BaseApiError<403, QuotaExceededType, 'The request exceeds the allowed quota. Quotas are a soft limit that can be increased.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(403, 'The request exceeds the allowed quota. Quotas are a soft limit that can be increased.', 'QuotaExceeded', message, error, id, metadata)\n  }\n}\n\ntype LimitExceededType = 'LimitExceeded'\n\n/**\n *  The request exceeds the allowed limit. Limits are a hard limit that cannot be increased.\n */\nexport class LimitExceededError extends BaseApiError<413, LimitExceededType, 'The request exceeds the allowed limit. Limits are a hard limit that cannot be increased.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(413, 'The request exceeds the allowed limit. Limits are a hard limit that cannot be increased.', 'LimitExceeded', message, error, id, metadata)\n  }\n}\n\ntype BreakingChangesType = 'BreakingChanges'\n\n/**\n *  Request payload contains breaking changes which is not allowed for this resource without a version increment.\n */\nexport class BreakingChangesError extends BaseApiError<400, BreakingChangesType, 'Request payload contains breaking changes which is not allowed for this resource without a version increment.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'Request payload contains breaking changes which is not allowed for this resource without a version increment.', 'BreakingChanges', message, error, id, metadata)\n  }\n}\n\ntype OperationTimeoutType = 'OperationTimeout'\n\n/**\n *  The operation timed out.\n */\nexport class OperationTimeoutError extends BaseApiError<504, OperationTimeoutType, 'The operation timed out.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(504, 'The operation timed out.', 'OperationTimeout', message, error, id, metadata)\n  }\n}\n\nexport type ErrorType =\n  | 'Unknown'\n  | 'Internal'\n  | 'Unauthorized'\n  | 'Forbidden'\n  | 'PayloadTooLarge'\n  | 'InvalidPayload'\n  | 'UnsupportedMediaType'\n  | 'MethodNotFound'\n  | 'ResourceNotFound'\n  | 'InvalidJsonSchema'\n  | 'InvalidDataFormat'\n  | 'InvalidIdentifier'\n  | 'RelationConflict'\n  | 'ReferenceConstraint'\n  | 'ResourceLockedConflict'\n  | 'ResourceGone'\n  | 'ReferenceNotFound'\n  | 'InvalidQuery'\n  | 'Runtime'\n  | 'AlreadyExists'\n  | 'RateLimited'\n  | 'PaymentRequired'\n  | 'QuotaExceeded'\n  | 'LimitExceeded'\n  | 'BreakingChanges'\n  | 'OperationTimeout'\n\nexport type ApiError =\n  | UnknownError\n  | InternalError\n  | UnauthorizedError\n  | ForbiddenError\n  | PayloadTooLargeError\n  | InvalidPayloadError\n  | UnsupportedMediaTypeError\n  | MethodNotFoundError\n  | ResourceNotFoundError\n  | InvalidJsonSchemaError\n  | InvalidDataFormatError\n  | InvalidIdentifierError\n  | RelationConflictError\n  | ReferenceConstraintError\n  | ResourceLockedConflictError\n  | ResourceGoneError\n  | ReferenceNotFoundError\n  | InvalidQueryError\n  | RuntimeError\n  | AlreadyExistsError\n  | RateLimitedError\n  | PaymentRequiredError\n  | QuotaExceededError\n  | LimitExceededError\n  | BreakingChangesError\n  | OperationTimeoutError\n\nconst errorTypes: { [type: string]: new (message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) => ApiError } = {\n  Unknown: UnknownError,\n  Internal: InternalError,\n  Unauthorized: UnauthorizedError,\n  Forbidden: ForbiddenError,\n  PayloadTooLarge: PayloadTooLargeError,\n  InvalidPayload: InvalidPayloadError,\n  UnsupportedMediaType: UnsupportedMediaTypeError,\n  MethodNotFound: MethodNotFoundError,\n  ResourceNotFound: ResourceNotFoundError,\n  InvalidJsonSchema: InvalidJsonSchemaError,\n  InvalidDataFormat: InvalidDataFormatError,\n  InvalidIdentifier: InvalidIdentifierError,\n  RelationConflict: RelationConflictError,\n  ReferenceConstraint: ReferenceConstraintError,\n  ResourceLockedConflict: ResourceLockedConflictError,\n  ResourceGone: ResourceGoneError,\n  ReferenceNotFound: ReferenceNotFoundError,\n  InvalidQuery: InvalidQueryError,\n  Runtime: RuntimeError,\n  AlreadyExists: AlreadyExistsError,\n  RateLimited: RateLimitedError,\n  PaymentRequired: PaymentRequiredError,\n  QuotaExceeded: QuotaExceededError,\n  LimitExceeded: LimitExceededError,\n  BreakingChanges: BreakingChangesError,\n  OperationTimeout: OperationTimeoutError,\n}\n\nexport const errorFrom = (err: unknown): ApiError => {\n  if (isApiError(err)) {\n    return err\n  }\n  else if (err instanceof Error) {\n    return new UnknownError(err.message, err)\n  }\n  else if (typeof err === 'string') {\n    return new UnknownError(err)\n  }\n  else {\n    return getApiErrorFromObject(err)\n  }\n}\n\nfunction getApiErrorFromObject(err: any) {\n  // Check if it's an deserialized API error object\n  if (typeof err === 'object' && 'code' in err && 'type' in err && 'id' in err && 'message' in err && typeof err.type === 'string' && typeof err.message === 'string') {\n    const ErrorClass = errorTypes[err.type]\n    if (!ErrorClass) {\n      return new UnknownError(`An unclassified API error occurred: ${err.message} (Type: ${err.type}, Code: ${err.code})`)\n    }\n\n    return new ErrorClass(err.message, undefined, <string>err.id || 'UNKNOWN', err.metadata) // If error ID was not received do not pass undefined to generate a new one, flag it as UNKNOWN so we can fix the issue.\n  }\n\n  return new UnknownError('An invalid error occurred: ' + JSON.stringify(err))\n}\n", "\nimport { AxiosRequestConfig } from \"axios\"\nimport qs from \"qs\"\n\nexport type Primitive = string | number | boolean\nexport type Value<P extends Primitive> = P | P[] | Record<string, P>\nexport type QueryValue = Value<string> | Value<boolean> | Value<number> | undefined\nexport type AnyQueryParams = Record<string, QueryValue>\nexport type HeaderValue = string | undefined\nexport type AnyHeaderParams = Record<string, HeaderValue>\nexport type AnyBodyParams = Record<string, any>\nexport type ParsedRequest = {\n  method: string\n  path: string\n  query: AnyQueryParams\n  headers: AnyHeaderParams\n  body: AnyBodyParams\n}\n\nconst isDefined = <T>(pair: [string, T | undefined]): pair is [string, T] => pair[1] !== undefined\n\nexport const toAxiosRequest = (req: ParsedRequest): AxiosRequestConfig => {\n  const { method, path, query, headers: headerParams, body } = req\n\n  // prepare headers\n  const headerEntries: [string, string][] = Object.entries(headerParams).filter(isDefined)\n  const headers = Object.fromEntries(headerEntries)\n\n  // prepare query params\n  const queryString = qs.stringify(query, { encode: true, arrayFormat: 'repeat', allowDots: true })\n\n  const url = queryString ? [path, queryString].join('?') : path\n  const data =\n    ['put', 'post', 'delete', 'patch'].includes(method.toLowerCase())\n      ? body\n      : undefined\n\n  return {\n    method,\n    url,\n    headers,\n    data,\n  }\n}\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetBillingReadonlyRequestHeaders {}\n\nexport interface GetBillingReadonlyRequestQuery {}\n\nexport interface GetBillingReadonlyRequestParams {}\n\nexport interface GetBillingReadonlyRequestBody {}\n\nexport type GetBillingReadonlyInput = GetBillingReadonlyRequestBody & GetBillingReadonlyRequestHeaders & GetBillingReadonlyRequestQuery & GetBillingReadonlyRequestParams\n\nexport type GetBillingReadonlyRequest = {\n  headers: GetBillingReadonlyRequestHeaders;\n  query: GetBillingReadonlyRequestQuery;\n  params: GetBillingReadonlyRequestParams;\n  body: GetBillingReadonlyRequestBody;\n}\n\nexport const parseReq = (_: GetBillingReadonlyInput): GetBillingReadonlyRequest & { path: string } => {\n  return {\n    path: `/v2/billing/readonly`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface GetBillingReadonlyResponse {\n  planReadonly: boolean;\n  addonsReadonly: boolean;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetBillingAddressRequestHeaders {}\n\nexport interface GetBillingAddressRequestQuery {}\n\nexport interface GetBillingAddressRequestParams {}\n\nexport interface GetBillingAddressRequestBody {}\n\nexport type GetBillingAddressInput = GetBillingAddressRequestBody & GetBillingAddressRequestHeaders & GetBillingAddressRequestQuery & GetBillingAddressRequestParams\n\nexport type GetBillingAddressRequest = {\n  headers: GetBillingAddressRequestHeaders;\n  query: GetBillingAddressRequestQuery;\n  params: GetBillingAddressRequestParams;\n  body: GetBillingAddressRequestBody;\n}\n\nexport const parseReq = (_: GetBillingAddressInput): GetBillingAddressRequest & { path: string } => {\n  return {\n    path: `/v2/billing/address`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface GetBillingAddressResponse {\n  address: {\n    lineOne: string;\n    lineTwo?: string;\n    city: string;\n    state?: string;\n    postalCode: string;\n    country: string;\n  } | null;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface SetBillingAddressRequestHeaders {}\n\nexport interface SetBillingAddressRequestQuery {}\n\nexport interface SetBillingAddressRequestParams {}\n\nexport interface SetBillingAddressRequestBody {\n  lineOne: string;\n  lineTwo?: string;\n  city: string;\n  state?: string;\n  postalCode: string;\n  country: string;\n}\n\nexport type SetBillingAddressInput = SetBillingAddressRequestBody & SetBillingAddressRequestHeaders & SetBillingAddressRequestQuery & SetBillingAddressRequestParams\n\nexport type SetBillingAddressRequest = {\n  headers: SetBillingAddressRequestHeaders;\n  query: SetBillingAddressRequestQuery;\n  params: SetBillingAddressRequestParams;\n  body: SetBillingAddressRequestBody;\n}\n\nexport const parseReq = (input: SetBillingAddressInput): SetBillingAddressRequest & { path: string } => {\n  return {\n    path: `/v2/billing/address`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'lineOne': input['lineOne'], 'lineTwo': input['lineTwo'], 'city': input['city'], 'state': input['state'], 'postalCode': input['postalCode'], 'country': input['country'] },\n  }\n}\n\nexport interface SetBillingAddressResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetCustomerRequestHeaders {}\n\nexport interface GetCustomerRequestQuery {}\n\nexport interface GetCustomerRequestParams {}\n\nexport interface GetCustomerRequestBody {}\n\nexport type GetCustomerInput = GetCustomerRequestBody & GetCustomerRequestHeaders & GetCustomerRequestQuery & GetCustomerRequestParams\n\nexport type GetCustomerRequest = {\n  headers: GetCustomerRequestHeaders;\n  query: GetCustomerRequestQuery;\n  params: GetCustomerRequestParams;\n  body: GetCustomerRequestBody;\n}\n\nexport const parseReq = (_: GetCustomerInput): GetCustomerRequest & { path: string } => {\n  return {\n    path: `/v2/billing/customer`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface GetCustomerResponse {\n  address: {\n    lineOne: string;\n    lineTwo?: string;\n    city: string;\n    state?: string;\n    postalCode: string;\n    country: string;\n  } | null;\n  name: string | null;\n  taxIds: {\n    type:\n      | \"ad_nrt\"\n      | \"ae_trn\"\n      | \"al_tin\"\n      | \"am_tin\"\n      | \"ao_tin\"\n      | \"ar_cuit\"\n      | \"au_abn\"\n      | \"au_arn\"\n      | \"aw_tin\"\n      | \"az_tin\"\n      | \"ba_tin\"\n      | \"bb_tin\"\n      | \"bd_bin\"\n      | \"bf_ifu\"\n      | \"bg_uic\"\n      | \"bh_vat\"\n      | \"bj_ifu\"\n      | \"bo_tin\"\n      | \"br_cnpj\"\n      | \"br_cpf\"\n      | \"bs_tin\"\n      | \"by_tin\"\n      | \"ca_bn\"\n      | \"ca_gst_hst\"\n      | \"ca_pst_bc\"\n      | \"ca_pst_mb\"\n      | \"ca_pst_sk\"\n      | \"ca_qst\"\n      | \"cd_nif\"\n      | \"ch_uid\"\n      | \"ch_vat\"\n      | \"cl_tin\"\n      | \"cm_niu\"\n      | \"cn_tin\"\n      | \"co_nit\"\n      | \"cr_tin\"\n      | \"cv_nif\"\n      | \"de_stn\"\n      | \"do_rcn\"\n      | \"ec_ruc\"\n      | \"eg_tin\"\n      | \"es_cif\"\n      | \"et_tin\"\n      | \"eu_oss_vat\"\n      | \"eu_vat\"\n      | \"gb_vat\"\n      | \"ge_vat\"\n      | \"gn_nif\"\n      | \"hk_br\"\n      | \"hr_oib\"\n      | \"hu_tin\"\n      | \"id_npwp\"\n      | \"il_vat\"\n      | \"in_gst\"\n      | \"is_vat\"\n      | \"jp_cn\"\n      | \"jp_rn\"\n      | \"jp_trn\"\n      | \"ke_pin\"\n      | \"kg_tin\"\n      | \"kh_tin\"\n      | \"kr_brn\"\n      | \"kz_bin\"\n      | \"la_tin\"\n      | \"li_uid\"\n      | \"li_vat\"\n      | \"ma_vat\"\n      | \"md_vat\"\n      | \"me_pib\"\n      | \"mk_vat\"\n      | \"mr_nif\"\n      | \"mx_rfc\"\n      | \"my_frp\"\n      | \"my_itn\"\n      | \"my_sst\"\n      | \"ng_tin\"\n      | \"no_vat\"\n      | \"no_voec\"\n      | \"np_pan\"\n      | \"nz_gst\"\n      | \"om_vat\"\n      | \"pe_ruc\"\n      | \"ph_tin\"\n      | \"ro_tin\"\n      | \"rs_pib\"\n      | \"ru_inn\"\n      | \"ru_kpp\"\n      | \"sa_vat\"\n      | \"sg_gst\"\n      | \"sg_uen\"\n      | \"si_tin\"\n      | \"sn_ninea\"\n      | \"sr_fin\"\n      | \"sv_nit\"\n      | \"th_vat\"\n      | \"tj_tin\"\n      | \"tr_tin\"\n      | \"tw_vat\"\n      | \"tz_vat\"\n      | \"ua_vat\"\n      | \"ug_tin\"\n      | \"us_ein\"\n      | \"uy_ruc\"\n      | \"uz_tin\"\n      | \"uz_vat\"\n      | \"ve_rif\"\n      | \"vn_tin\"\n      | \"za_vat\"\n      | \"zm_tin\"\n      | \"zw_tin\";\n    value: string;\n  }[];\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface SetCustomerRequestHeaders {}\n\nexport interface SetCustomerRequestQuery {}\n\nexport interface SetCustomerRequestParams {}\n\nexport interface SetCustomerRequestBody {\n  address?: {\n    lineOne: string;\n    lineTwo?: string;\n    city: string;\n    state?: string;\n    postalCode: string;\n    country: string;\n  };\n  name?: string;\n  taxIds?: {\n    type:\n      | \"ad_nrt\"\n      | \"ae_trn\"\n      | \"al_tin\"\n      | \"am_tin\"\n      | \"ao_tin\"\n      | \"ar_cuit\"\n      | \"au_abn\"\n      | \"au_arn\"\n      | \"aw_tin\"\n      | \"az_tin\"\n      | \"ba_tin\"\n      | \"bb_tin\"\n      | \"bd_bin\"\n      | \"bf_ifu\"\n      | \"bg_uic\"\n      | \"bh_vat\"\n      | \"bj_ifu\"\n      | \"bo_tin\"\n      | \"br_cnpj\"\n      | \"br_cpf\"\n      | \"bs_tin\"\n      | \"by_tin\"\n      | \"ca_bn\"\n      | \"ca_gst_hst\"\n      | \"ca_pst_bc\"\n      | \"ca_pst_mb\"\n      | \"ca_pst_sk\"\n      | \"ca_qst\"\n      | \"cd_nif\"\n      | \"ch_uid\"\n      | \"ch_vat\"\n      | \"cl_tin\"\n      | \"cm_niu\"\n      | \"cn_tin\"\n      | \"co_nit\"\n      | \"cr_tin\"\n      | \"cv_nif\"\n      | \"de_stn\"\n      | \"do_rcn\"\n      | \"ec_ruc\"\n      | \"eg_tin\"\n      | \"es_cif\"\n      | \"et_tin\"\n      | \"eu_oss_vat\"\n      | \"eu_vat\"\n      | \"gb_vat\"\n      | \"ge_vat\"\n      | \"gn_nif\"\n      | \"hk_br\"\n      | \"hr_oib\"\n      | \"hu_tin\"\n      | \"id_npwp\"\n      | \"il_vat\"\n      | \"in_gst\"\n      | \"is_vat\"\n      | \"jp_cn\"\n      | \"jp_rn\"\n      | \"jp_trn\"\n      | \"ke_pin\"\n      | \"kg_tin\"\n      | \"kh_tin\"\n      | \"kr_brn\"\n      | \"kz_bin\"\n      | \"la_tin\"\n      | \"li_uid\"\n      | \"li_vat\"\n      | \"ma_vat\"\n      | \"md_vat\"\n      | \"me_pib\"\n      | \"mk_vat\"\n      | \"mr_nif\"\n      | \"mx_rfc\"\n      | \"my_frp\"\n      | \"my_itn\"\n      | \"my_sst\"\n      | \"ng_tin\"\n      | \"no_vat\"\n      | \"no_voec\"\n      | \"np_pan\"\n      | \"nz_gst\"\n      | \"om_vat\"\n      | \"pe_ruc\"\n      | \"ph_tin\"\n      | \"ro_tin\"\n      | \"rs_pib\"\n      | \"ru_inn\"\n      | \"ru_kpp\"\n      | \"sa_vat\"\n      | \"sg_gst\"\n      | \"sg_uen\"\n      | \"si_tin\"\n      | \"sn_ninea\"\n      | \"sr_fin\"\n      | \"sv_nit\"\n      | \"th_vat\"\n      | \"tj_tin\"\n      | \"tr_tin\"\n      | \"tw_vat\"\n      | \"tz_vat\"\n      | \"ua_vat\"\n      | \"ug_tin\"\n      | \"us_ein\"\n      | \"uy_ruc\"\n      | \"uz_tin\"\n      | \"uz_vat\"\n      | \"ve_rif\"\n      | \"vn_tin\"\n      | \"za_vat\"\n      | \"zm_tin\"\n      | \"zw_tin\";\n    value: string;\n  }[];\n}\n\nexport type SetCustomerInput = SetCustomerRequestBody & SetCustomerRequestHeaders & SetCustomerRequestQuery & SetCustomerRequestParams\n\nexport type SetCustomerRequest = {\n  headers: SetCustomerRequestHeaders;\n  query: SetCustomerRequestQuery;\n  params: SetCustomerRequestParams;\n  body: SetCustomerRequestBody;\n}\n\nexport const parseReq = (input: SetCustomerInput): SetCustomerRequest & { path: string } => {\n  return {\n    path: `/v2/billing/customer`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'address': input['address'], 'name': input['name'], 'taxIds': input['taxIds'] },\n  }\n}\n\nexport interface SetCustomerResponse {\n  address: {\n    lineOne: string;\n    lineTwo?: string;\n    city: string;\n    state?: string;\n    postalCode: string;\n    country: string;\n  } | null;\n  name: string | null;\n  taxIds: {\n    type:\n      | \"ad_nrt\"\n      | \"ae_trn\"\n      | \"al_tin\"\n      | \"am_tin\"\n      | \"ao_tin\"\n      | \"ar_cuit\"\n      | \"au_abn\"\n      | \"au_arn\"\n      | \"aw_tin\"\n      | \"az_tin\"\n      | \"ba_tin\"\n      | \"bb_tin\"\n      | \"bd_bin\"\n      | \"bf_ifu\"\n      | \"bg_uic\"\n      | \"bh_vat\"\n      | \"bj_ifu\"\n      | \"bo_tin\"\n      | \"br_cnpj\"\n      | \"br_cpf\"\n      | \"bs_tin\"\n      | \"by_tin\"\n      | \"ca_bn\"\n      | \"ca_gst_hst\"\n      | \"ca_pst_bc\"\n      | \"ca_pst_mb\"\n      | \"ca_pst_sk\"\n      | \"ca_qst\"\n      | \"cd_nif\"\n      | \"ch_uid\"\n      | \"ch_vat\"\n      | \"cl_tin\"\n      | \"cm_niu\"\n      | \"cn_tin\"\n      | \"co_nit\"\n      | \"cr_tin\"\n      | \"cv_nif\"\n      | \"de_stn\"\n      | \"do_rcn\"\n      | \"ec_ruc\"\n      | \"eg_tin\"\n      | \"es_cif\"\n      | \"et_tin\"\n      | \"eu_oss_vat\"\n      | \"eu_vat\"\n      | \"gb_vat\"\n      | \"ge_vat\"\n      | \"gn_nif\"\n      | \"hk_br\"\n      | \"hr_oib\"\n      | \"hu_tin\"\n      | \"id_npwp\"\n      | \"il_vat\"\n      | \"in_gst\"\n      | \"is_vat\"\n      | \"jp_cn\"\n      | \"jp_rn\"\n      | \"jp_trn\"\n      | \"ke_pin\"\n      | \"kg_tin\"\n      | \"kh_tin\"\n      | \"kr_brn\"\n      | \"kz_bin\"\n      | \"la_tin\"\n      | \"li_uid\"\n      | \"li_vat\"\n      | \"ma_vat\"\n      | \"md_vat\"\n      | \"me_pib\"\n      | \"mk_vat\"\n      | \"mr_nif\"\n      | \"mx_rfc\"\n      | \"my_frp\"\n      | \"my_itn\"\n      | \"my_sst\"\n      | \"ng_tin\"\n      | \"no_vat\"\n      | \"no_voec\"\n      | \"np_pan\"\n      | \"nz_gst\"\n      | \"om_vat\"\n      | \"pe_ruc\"\n      | \"ph_tin\"\n      | \"ro_tin\"\n      | \"rs_pib\"\n      | \"ru_inn\"\n      | \"ru_kpp\"\n      | \"sa_vat\"\n      | \"sg_gst\"\n      | \"sg_uen\"\n      | \"si_tin\"\n      | \"sn_ninea\"\n      | \"sr_fin\"\n      | \"sv_nit\"\n      | \"th_vat\"\n      | \"tj_tin\"\n      | \"tr_tin\"\n      | \"tw_vat\"\n      | \"tz_vat\"\n      | \"ua_vat\"\n      | \"ug_tin\"\n      | \"us_ein\"\n      | \"uy_ruc\"\n      | \"uz_tin\"\n      | \"uz_vat\"\n      | \"ve_rif\"\n      | \"vn_tin\"\n      | \"za_vat\"\n      | \"zm_tin\"\n      | \"zw_tin\";\n    value: string;\n  }[];\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetPlanRequestHeaders {}\n\nexport interface GetPlanRequestQuery {}\n\nexport interface GetPlanRequestParams {\n  planId: string;\n}\n\nexport interface GetPlanRequestBody {}\n\nexport type GetPlanInput = GetPlanRequestBody & GetPlanRequestHeaders & GetPlanRequestQuery & GetPlanRequestParams\n\nexport type GetPlanRequest = {\n  headers: GetPlanRequestHeaders;\n  query: GetPlanRequestQuery;\n  params: GetPlanRequestParams;\n  body: GetPlanRequestBody;\n}\n\nexport const parseReq = (input: GetPlanInput): GetPlanRequest & { path: string } => {\n  return {\n    path: `/v2/billing/plans/${encodeURIComponent(input['planId'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'planId': input['planId'] },\n    body: {  },\n  }\n}\n\nexport interface GetPlanResponse {\n  id: string;\n  name: string;\n  description: string;\n  prices: {\n    month?: {\n      /**\n       * Price in dollars\n       */\n      amount: number;\n      currency: string;\n    };\n    year?: {\n      /**\n       * Price in dollars\n       */\n      amount: number;\n      currency: string;\n    };\n  };\n  features: {\n    [k: string]: number;\n  };\n  metadata?: {\n    [k: string]: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListPlansRequestHeaders {}\n\nexport interface ListPlansRequestQuery {}\n\nexport interface ListPlansRequestParams {}\n\nexport interface ListPlansRequestBody {}\n\nexport type ListPlansInput = ListPlansRequestBody & ListPlansRequestHeaders & ListPlansRequestQuery & ListPlansRequestParams\n\nexport type ListPlansRequest = {\n  headers: ListPlansRequestHeaders;\n  query: ListPlansRequestQuery;\n  params: ListPlansRequestParams;\n  body: ListPlansRequestBody;\n}\n\nexport const parseReq = (_: ListPlansInput): ListPlansRequest & { path: string } => {\n  return {\n    path: `/v2/billing/plans`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport type ListPlansResponse = GetPlanResponse[];\n\nexport interface GetPlanResponse {\n  id: string;\n  name: string;\n  description: string;\n  prices: {\n    month?: {\n      /**\n       * Price in dollars\n       */\n      amount: number;\n      currency: string;\n    };\n    year?: {\n      /**\n       * Price in dollars\n       */\n      amount: number;\n      currency: string;\n    };\n  };\n  features: {\n    [k: string]: number;\n  };\n  metadata?: {\n    [k: string]: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetAddonRequestHeaders {}\n\nexport interface GetAddonRequestQuery {}\n\nexport interface GetAddonRequestParams {\n  addonId: string;\n}\n\nexport interface GetAddonRequestBody {}\n\nexport type GetAddonInput = GetAddonRequestBody & GetAddonRequestHeaders & GetAddonRequestQuery & GetAddonRequestParams\n\nexport type GetAddonRequest = {\n  headers: GetAddonRequestHeaders;\n  query: GetAddonRequestQuery;\n  params: GetAddonRequestParams;\n  body: GetAddonRequestBody;\n}\n\nexport const parseReq = (input: GetAddonInput): GetAddonRequest & { path: string } => {\n  return {\n    path: `/v2/billing/addons/${encodeURIComponent(input['addonId'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'addonId': input['addonId'] },\n    body: {  },\n  }\n}\n\nexport interface GetAddonResponse {\n  id: string;\n  name: string;\n  description: string;\n  prices: {\n    [k: string]: {\n      /**\n       * Price in dollars\n       */\n      amount: number;\n      currency: string;\n      interval: \"month\" | \"year\";\n    };\n  };\n  increments: {\n    [k: string]: number;\n  };\n  metadata?: {\n    [k: string]: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListAddonsRequestHeaders {}\n\nexport interface ListAddonsRequestQuery {}\n\nexport interface ListAddonsRequestParams {}\n\nexport interface ListAddonsRequestBody {}\n\nexport type ListAddonsInput = ListAddonsRequestBody & ListAddonsRequestHeaders & ListAddonsRequestQuery & ListAddonsRequestParams\n\nexport type ListAddonsRequest = {\n  headers: ListAddonsRequestHeaders;\n  query: ListAddonsRequestQuery;\n  params: ListAddonsRequestParams;\n  body: ListAddonsRequestBody;\n}\n\nexport const parseReq = (_: ListAddonsInput): ListAddonsRequest & { path: string } => {\n  return {\n    path: `/v2/billing/addons`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport type ListAddonsResponse = GetAddonResponse[];\n\nexport interface GetAddonResponse {\n  id: string;\n  name: string;\n  description: string;\n  prices: {\n    [k: string]: {\n      /**\n       * Price in dollars\n       */\n      amount: number;\n      currency: string;\n      interval: \"month\" | \"year\";\n    };\n  };\n  increments: {\n    [k: string]: number;\n  };\n  metadata?: {\n    [k: string]: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetSubscriptionRequestHeaders {}\n\nexport interface GetSubscriptionRequestQuery {}\n\nexport interface GetSubscriptionRequestParams {}\n\nexport interface GetSubscriptionRequestBody {}\n\nexport type GetSubscriptionInput = GetSubscriptionRequestBody & GetSubscriptionRequestHeaders & GetSubscriptionRequestQuery & GetSubscriptionRequestParams\n\nexport type GetSubscriptionRequest = {\n  headers: GetSubscriptionRequestHeaders;\n  query: GetSubscriptionRequestQuery;\n  params: GetSubscriptionRequestParams;\n  body: GetSubscriptionRequestBody;\n}\n\nexport const parseReq = (_: GetSubscriptionInput): GetSubscriptionRequest & { path: string } => {\n  return {\n    path: `/v2/billing/subscriptions`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface GetSubscriptionResponse {\n  plan: {\n    current: {\n      status: \"active\" | \"canceled\" | \"past_due\" | \"action_required\" | \"incomplete\" | \"grace_period\";\n      planId: string;\n      interval: \"month\" | \"year\";\n      price: number;\n      proratedPrice?: number;\n      cancelAtPeriodEnd: boolean;\n      periodEnd: string;\n    };\n    next: {\n      planId: string;\n      interval: \"month\" | \"year\";\n      price: number | null;\n      effectiveDate: string;\n    } | null;\n  };\n  addons: {\n    [k: string]: {\n      current: {\n        quantity: number;\n        price: number;\n        proratedPrice?: number;\n      };\n      next: {\n        quantity: number;\n        price: number;\n        effectiveDate: string;\n      } | null;\n    };\n  };\n  /**\n   * Active discounts applied to the subscription\n   */\n  discounts: {\n    id: string;\n    couponId: string;\n    promotionCode: string | null;\n    name: string | null;\n    percentOff: number | null;\n    /**\n     * Discount amount in dollars, or null if percent-based\n     */\n    amountOff: number | null;\n    currency: string | null;\n    duration: \"forever\" | \"once\" | \"repeating\";\n    durationInMonths: number | null;\n    start: string;\n    end: string | null;\n  }[];\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface PreviewSubscriptionUpdateRequestHeaders {}\n\nexport interface PreviewSubscriptionUpdateRequestQuery {}\n\nexport interface PreviewSubscriptionUpdateRequestParams {}\n\nexport interface PreviewSubscriptionUpdateRequestBody {\n  plan: {\n    /**\n     * New plan ID (optional)\n     */\n    planId: string;\n    /**\n     * New billing interval (optional)\n     */\n    interval: \"month\" | \"year\";\n  };\n  /**\n   * Map of addon IDs to quantities (optional). Set quantity to 0 to remove addon.\n   */\n  addons?: {\n    [k: string]: number;\n  };\n  /**\n   * Promotion code to apply with this subscription change (optional)\n   */\n  couponCode?: string;\n}\n\nexport type PreviewSubscriptionUpdateInput = PreviewSubscriptionUpdateRequestBody & PreviewSubscriptionUpdateRequestHeaders & PreviewSubscriptionUpdateRequestQuery & PreviewSubscriptionUpdateRequestParams\n\nexport type PreviewSubscriptionUpdateRequest = {\n  headers: PreviewSubscriptionUpdateRequestHeaders;\n  query: PreviewSubscriptionUpdateRequestQuery;\n  params: PreviewSubscriptionUpdateRequestParams;\n  body: PreviewSubscriptionUpdateRequestBody;\n}\n\nexport const parseReq = (input: PreviewSubscriptionUpdateInput): PreviewSubscriptionUpdateRequest & { path: string } => {\n  return {\n    path: `/v2/billing/subscriptions/preview`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'plan': input['plan'], 'addons': input['addons'], 'couponCode': input['couponCode'] },\n  }\n}\n\n/**\n * Preview of subscription update costs\n */\nexport interface PreviewSubscriptionUpdateResponse {\n  subscription: {\n    plan: {\n      planId: string;\n      interval: \"month\" | \"year\";\n      effectiveDate: string | null;\n    };\n    addons: {\n      [k: string]: {\n        quantity: number;\n        effectiveDate: string | null;\n        autoAdjusted?: boolean;\n      };\n    };\n  };\n  changeType: \"upgrade\" | \"downgrade\" | \"same\";\n  costs: {\n    /**\n     * Prorated charges due immediately (0 for downgrades)\n     */\n    immediate: {\n      /**\n       * Sum of proration line items only (not next-cycle charges)\n       */\n      total: number;\n      /**\n       * Customer account balance applied (negative = credit used)\n       */\n      accountBalance: number;\n      /**\n       * Actual amount charged after credits applied\n       */\n      amountDue: number;\n      lineItems: {\n        type: \"plan\" | \"addon\" | \"proration_credit\" | \"proration_charge\" | \"discount\";\n        id: string;\n        description: string;\n        /**\n         * Line item amount in dollars\n         */\n        amount: number;\n        quantity?: number;\n      }[];\n    };\n    /**\n     * Recurring cost for the next billing cycle (plan + addons combined)\n     */\n    nextCycle: {\n      total: number;\n      lineItems: {\n        type: \"plan\" | \"addon\" | \"proration_credit\" | \"proration_charge\" | \"discount\";\n        id: string;\n        description: string;\n        /**\n         * Line item amount in dollars\n         */\n        amount: number;\n        quantity?: number;\n      }[];\n    };\n  };\n  /**\n   * Active discounts applied to the subscription\n   */\n  discounts?: {\n    id: string;\n    couponId: string;\n    promotionCode: string | null;\n    name: string | null;\n    percentOff: number | null;\n    /**\n     * Discount amount in dollars, or null if percent-based\n     */\n    amountOff: number | null;\n    currency: string | null;\n    duration: \"forever\" | \"once\" | \"repeating\";\n    durationInMonths: number | null;\n    start: string;\n    end: string | null;\n  }[];\n  /**\n   * Date of the next billing cycle (1st of next month for new subscriptions)\n   */\n  nextBillingDate: string;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface SetPlanRequestHeaders {}\n\nexport interface SetPlanRequestQuery {}\n\nexport interface SetPlanRequestParams {}\n\n/**\n * Plan update parameters\n */\nexport interface SetPlanRequestBody {\n  planId: string;\n  interval: \"month\" | \"year\";\n  testReferenceTime?: number;\n  /**\n   * Promotion code to apply with this plan change (optional)\n   */\n  couponCode?: string;\n}\n\nexport type SetPlanInput = SetPlanRequestBody & SetPlanRequestHeaders & SetPlanRequestQuery & SetPlanRequestParams\n\nexport type SetPlanRequest = {\n  headers: SetPlanRequestHeaders;\n  query: SetPlanRequestQuery;\n  params: SetPlanRequestParams;\n  body: SetPlanRequestBody;\n}\n\nexport const parseReq = (input: SetPlanInput): SetPlanRequest & { path: string } => {\n  return {\n    path: `/v2/billing/plans`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'planId': input['planId'], 'interval': input['interval'], 'testReferenceTime': input['testReferenceTime'], 'couponCode': input['couponCode'] },\n  }\n}\n\n/**\n * Subscription details including current plan, addons, and costs\n */\nexport interface SetPlanResponse {\n  plan: {\n    current: {\n      status: \"active\" | \"canceled\" | \"past_due\" | \"action_required\" | \"incomplete\" | \"grace_period\";\n      planId: string;\n      interval: \"month\" | \"year\";\n      price: number;\n      proratedPrice?: number;\n      cancelAtPeriodEnd: boolean;\n      periodEnd: string;\n    };\n    next: {\n      planId: string;\n      interval: \"month\" | \"year\";\n      price: number | null;\n      effectiveDate: string;\n    } | null;\n  };\n  addons: {\n    [k: string]: {\n      current: {\n        quantity: number;\n        price: number;\n        proratedPrice?: number;\n      };\n      next: {\n        quantity: number;\n        price: number;\n        effectiveDate: string;\n      } | null;\n    };\n  };\n  /**\n   * Active discounts applied to the subscription\n   */\n  discounts: {\n    id: string;\n    couponId: string;\n    promotionCode: string | null;\n    name: string | null;\n    percentOff: number | null;\n    /**\n     * Discount amount in dollars, or null if percent-based\n     */\n    amountOff: number | null;\n    currency: string | null;\n    duration: \"forever\" | \"once\" | \"repeating\";\n    durationInMonths: number | null;\n    start: string;\n    end: string | null;\n  }[];\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface SetAddonsRequestHeaders {}\n\nexport interface SetAddonsRequestQuery {}\n\nexport interface SetAddonsRequestParams {}\n\n/**\n * Addons update parameters. Set quantity to 0 to remove an addon.\n */\nexport interface SetAddonsRequestBody {\n  addons: {\n    [k: string]: number;\n  };\n  /**\n   * Promotion code to apply with this addon change (optional)\n   */\n  couponCode?: string;\n}\n\nexport type SetAddonsInput = SetAddonsRequestBody & SetAddonsRequestHeaders & SetAddonsRequestQuery & SetAddonsRequestParams\n\nexport type SetAddonsRequest = {\n  headers: SetAddonsRequestHeaders;\n  query: SetAddonsRequestQuery;\n  params: SetAddonsRequestParams;\n  body: SetAddonsRequestBody;\n}\n\nexport const parseReq = (input: SetAddonsInput): SetAddonsRequest & { path: string } => {\n  return {\n    path: `/v2/billing/addons`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'addons': input['addons'], 'couponCode': input['couponCode'] },\n  }\n}\n\n/**\n * Subscription details including current plan, addons, and costs\n */\nexport interface SetAddonsResponse {\n  plan: {\n    current: {\n      status: \"active\" | \"canceled\" | \"past_due\" | \"action_required\" | \"incomplete\" | \"grace_period\";\n      planId: string;\n      interval: \"month\" | \"year\";\n      price: number;\n      proratedPrice?: number;\n      cancelAtPeriodEnd: boolean;\n      periodEnd: string;\n    };\n    next: {\n      planId: string;\n      interval: \"month\" | \"year\";\n      price: number | null;\n      effectiveDate: string;\n    } | null;\n  };\n  addons: {\n    [k: string]: {\n      current: {\n        quantity: number;\n        price: number;\n        proratedPrice?: number;\n      };\n      next: {\n        quantity: number;\n        price: number;\n        effectiveDate: string;\n      } | null;\n    };\n  };\n  /**\n   * Active discounts applied to the subscription\n   */\n  discounts: {\n    id: string;\n    couponId: string;\n    promotionCode: string | null;\n    name: string | null;\n    percentOff: number | null;\n    /**\n     * Discount amount in dollars, or null if percent-based\n     */\n    amountOff: number | null;\n    currency: string | null;\n    duration: \"forever\" | \"once\" | \"repeating\";\n    durationInMonths: number | null;\n    start: string;\n    end: string | null;\n  }[];\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface SetCancelAtPeriodEndRequestHeaders {}\n\nexport interface SetCancelAtPeriodEndRequestQuery {}\n\nexport interface SetCancelAtPeriodEndRequestParams {}\n\nexport interface SetCancelAtPeriodEndRequestBody {}\n\nexport type SetCancelAtPeriodEndInput = SetCancelAtPeriodEndRequestBody & SetCancelAtPeriodEndRequestHeaders & SetCancelAtPeriodEndRequestQuery & SetCancelAtPeriodEndRequestParams\n\nexport type SetCancelAtPeriodEndRequest = {\n  headers: SetCancelAtPeriodEndRequestHeaders;\n  query: SetCancelAtPeriodEndRequestQuery;\n  params: SetCancelAtPeriodEndRequestParams;\n  body: SetCancelAtPeriodEndRequestBody;\n}\n\nexport const parseReq = (_: SetCancelAtPeriodEndInput): SetCancelAtPeriodEndRequest & { path: string } => {\n  return {\n    path: `/v2/billing/subscriptions/cancel`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: {  },\n  }\n}\n\n/**\n * Subscription details including current plan, addons, and costs\n */\nexport interface SetCancelAtPeriodEndResponse {\n  plan: {\n    current: {\n      status: \"active\" | \"canceled\" | \"past_due\" | \"action_required\" | \"incomplete\" | \"grace_period\";\n      planId: string;\n      interval: \"month\" | \"year\";\n      price: number;\n      proratedPrice?: number;\n      cancelAtPeriodEnd: boolean;\n      periodEnd: string;\n    };\n    next: {\n      planId: string;\n      interval: \"month\" | \"year\";\n      price: number | null;\n      effectiveDate: string;\n    } | null;\n  };\n  addons: {\n    [k: string]: {\n      current: {\n        quantity: number;\n        price: number;\n        proratedPrice?: number;\n      };\n      next: {\n        quantity: number;\n        price: number;\n        effectiveDate: string;\n      } | null;\n    };\n  };\n  /**\n   * Active discounts applied to the subscription\n   */\n  discounts: {\n    id: string;\n    couponId: string;\n    promotionCode: string | null;\n    name: string | null;\n    percentOff: number | null;\n    /**\n     * Discount amount in dollars, or null if percent-based\n     */\n    amountOff: number | null;\n    currency: string | null;\n    duration: \"forever\" | \"once\" | \"repeating\";\n    durationInMonths: number | null;\n    start: string;\n    end: string | null;\n  }[];\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetAutoRechargeSettingsRequestHeaders {}\n\nexport interface GetAutoRechargeSettingsRequestQuery {}\n\nexport interface GetAutoRechargeSettingsRequestParams {}\n\nexport interface GetAutoRechargeSettingsRequestBody {}\n\nexport type GetAutoRechargeSettingsInput = GetAutoRechargeSettingsRequestBody & GetAutoRechargeSettingsRequestHeaders & GetAutoRechargeSettingsRequestQuery & GetAutoRechargeSettingsRequestParams\n\nexport type GetAutoRechargeSettingsRequest = {\n  headers: GetAutoRechargeSettingsRequestHeaders;\n  query: GetAutoRechargeSettingsRequestQuery;\n  params: GetAutoRechargeSettingsRequestParams;\n  body: GetAutoRechargeSettingsRequestBody;\n}\n\nexport const parseReq = (_: GetAutoRechargeSettingsInput): GetAutoRechargeSettingsRequest & { path: string } => {\n  return {\n    path: `/v2/billing/auto-recharge/settings`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface GetAutoRechargeSettingsResponse {\n  settings: {\n    [k: string]: {\n      enabled: boolean;\n      threshold?: number;\n      disabledReason?: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface SetAutoRechargeSettingsRequestHeaders {}\n\nexport interface SetAutoRechargeSettingsRequestQuery {}\n\nexport interface SetAutoRechargeSettingsRequestParams {}\n\nexport interface SetAutoRechargeSettingsRequestBody {\n  settings: {\n    [k: string]: {\n      enabled: boolean;\n      threshold?: number;\n    };\n  };\n}\n\nexport type SetAutoRechargeSettingsInput = SetAutoRechargeSettingsRequestBody & SetAutoRechargeSettingsRequestHeaders & SetAutoRechargeSettingsRequestQuery & SetAutoRechargeSettingsRequestParams\n\nexport type SetAutoRechargeSettingsRequest = {\n  headers: SetAutoRechargeSettingsRequestHeaders;\n  query: SetAutoRechargeSettingsRequestQuery;\n  params: SetAutoRechargeSettingsRequestParams;\n  body: SetAutoRechargeSettingsRequestBody;\n}\n\nexport const parseReq = (input: SetAutoRechargeSettingsInput): SetAutoRechargeSettingsRequest & { path: string } => {\n  return {\n    path: `/v2/billing/auto-recharge/settings`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'settings': input['settings'] },\n  }\n}\n\nexport interface SetAutoRechargeSettingsResponse {\n  settings: {\n    [k: string]: {\n      enabled: boolean;\n      threshold?: number;\n      disabledReason?: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetTrialsRequestHeaders {}\n\nexport interface GetTrialsRequestQuery {}\n\nexport interface GetTrialsRequestParams {}\n\nexport interface GetTrialsRequestBody {}\n\nexport type GetTrialsInput = GetTrialsRequestBody & GetTrialsRequestHeaders & GetTrialsRequestQuery & GetTrialsRequestParams\n\nexport type GetTrialsRequest = {\n  headers: GetTrialsRequestHeaders;\n  query: GetTrialsRequestQuery;\n  params: GetTrialsRequestParams;\n  body: GetTrialsRequestBody;\n}\n\nexport const parseReq = (_: GetTrialsInput): GetTrialsRequest & { path: string } => {\n  return {\n    path: `/v2/billing/trials`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface GetTrialsResponse {\n  trials: {\n    id: string;\n    trialPlan: string;\n    fromPlan: string;\n    endsAt: string;\n    isActive: boolean;\n  }[];\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CreateTrialRequestHeaders {}\n\nexport interface CreateTrialRequestQuery {}\n\nexport interface CreateTrialRequestParams {}\n\nexport interface CreateTrialRequestBody {\n  lengthInDays: number;\n  plan: string;\n}\n\nexport type CreateTrialInput = CreateTrialRequestBody & CreateTrialRequestHeaders & CreateTrialRequestQuery & CreateTrialRequestParams\n\nexport type CreateTrialRequest = {\n  headers: CreateTrialRequestHeaders;\n  query: CreateTrialRequestQuery;\n  params: CreateTrialRequestParams;\n  body: CreateTrialRequestBody;\n}\n\nexport const parseReq = (input: CreateTrialInput): CreateTrialRequest & { path: string } => {\n  return {\n    path: `/v2/billing/trials`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'lengthInDays': input['lengthInDays'], 'plan': input['plan'] },\n  }\n}\n\nexport interface CreateTrialResponse {\n  id: string;\n  trialPlan: string;\n  fromPlan: string;\n  endsAt: string;\n  isActive: boolean;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface RemoveTrialRequestHeaders {}\n\nexport interface RemoveTrialRequestQuery {}\n\nexport interface RemoveTrialRequestParams {}\n\nexport interface RemoveTrialRequestBody {}\n\nexport type RemoveTrialInput = RemoveTrialRequestBody & RemoveTrialRequestHeaders & RemoveTrialRequestQuery & RemoveTrialRequestParams\n\nexport type RemoveTrialRequest = {\n  headers: RemoveTrialRequestHeaders;\n  query: RemoveTrialRequestQuery;\n  params: RemoveTrialRequestParams;\n  body: RemoveTrialRequestBody;\n}\n\nexport const parseReq = (_: RemoveTrialInput): RemoveTrialRequest & { path: string } => {\n  return {\n    path: `/v2/billing/trials`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface RemoveTrialResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CreateCreditGrantRequestHeaders {}\n\nexport interface CreateCreditGrantRequestQuery {}\n\nexport interface CreateCreditGrantRequestParams {}\n\nexport interface CreateCreditGrantRequestBody {\n  /**\n   * Nanodollar value of the credit grant (e.g. 10_000_000_000 = $10.00 USD)\n   */\n  amount: number;\n  feature: \"ai_spend\";\n}\n\nexport type CreateCreditGrantInput = CreateCreditGrantRequestBody & CreateCreditGrantRequestHeaders & CreateCreditGrantRequestQuery & CreateCreditGrantRequestParams\n\nexport type CreateCreditGrantRequest = {\n  headers: CreateCreditGrantRequestHeaders;\n  query: CreateCreditGrantRequestQuery;\n  params: CreateCreditGrantRequestParams;\n  body: CreateCreditGrantRequestBody;\n}\n\nexport const parseReq = (input: CreateCreditGrantInput): CreateCreditGrantRequest & { path: string } => {\n  return {\n    path: `/v2/billing/credit-grants`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'amount': input['amount'], 'feature': input['feature'] },\n  }\n}\n\nexport interface CreateCreditGrantResponse {\n  id: string;\n  workspace_id: string;\n  invoice_id: string;\n  /**\n   * Dollar value of the credit grant (e.g. 10 = $10.00 USD)\n   */\n  amount: number;\n  feature:\n    | \"incoming_messages_events\"\n    | \"integration_spend\"\n    | \"table_rows\"\n    | \"bot_count\"\n    | \"collaborator_count\"\n    | \"file_storage\"\n    | \"vector_db_storage\"\n    | \"saved_versions\"\n    | \"indexed_file_count\"\n    | \"conversation_sessions\"\n    | \"ai_spend\";\n  /**\n   * Start of the period (inclusive)\n   */\n  period_start: string;\n  /**\n   * End of the period (exclusive)\n   */\n  period_end: string;\n  updatedAt: string;\n  createdAt: string;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListInvoicesRequestHeaders {}\n\nexport interface ListInvoicesRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n}\n\nexport interface ListInvoicesRequestParams {}\n\nexport interface ListInvoicesRequestBody {}\n\nexport type ListInvoicesInput = ListInvoicesRequestBody & ListInvoicesRequestHeaders & ListInvoicesRequestQuery & ListInvoicesRequestParams\n\nexport type ListInvoicesRequest = {\n  headers: ListInvoicesRequestHeaders;\n  query: ListInvoicesRequestQuery;\n  params: ListInvoicesRequestParams;\n  body: ListInvoicesRequestBody;\n}\n\nexport const parseReq = (input: ListInvoicesInput): ListInvoicesRequest & { path: string } => {\n  return {\n    path: `/v2/billing/invoices`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListInvoicesResponse {\n  invoices: {\n    id: string;\n    /**\n     * Invoice amount in dollars\n     */\n    amount: number;\n    currency: string;\n    status: \"draft\" | \"open\" | \"paid\" | \"uncollectible\" | \"void\";\n    createdAt: string;\n    periodStart: string | null;\n    periodEnd: string | null;\n    dueDate: string | null;\n    pdfUrl: string | null;\n  }[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface PayInvoiceRequestHeaders {}\n\nexport interface PayInvoiceRequestQuery {}\n\nexport interface PayInvoiceRequestParams {\n  invoiceId: string;\n}\n\nexport interface PayInvoiceRequestBody {\n  idempotencyKey?: string;\n}\n\nexport type PayInvoiceInput = PayInvoiceRequestBody & PayInvoiceRequestHeaders & PayInvoiceRequestQuery & PayInvoiceRequestParams\n\nexport type PayInvoiceRequest = {\n  headers: PayInvoiceRequestHeaders;\n  query: PayInvoiceRequestQuery;\n  params: PayInvoiceRequestParams;\n  body: PayInvoiceRequestBody;\n}\n\nexport const parseReq = (input: PayInvoiceInput): PayInvoiceRequest & { path: string } => {\n  return {\n    path: `/v2/billing/invoices/${encodeURIComponent(input['invoiceId'])}/pay`,\n    headers: {  },\n    query: {  },\n    params: { 'invoiceId': input['invoiceId'] },\n    body: { 'idempotencyKey': input['idempotencyKey'] },\n  }\n}\n\nexport interface PayInvoiceResponse {\n  id: string;\n  /**\n   * Invoice amount in dollars\n   */\n  amount: number;\n  currency: string;\n  status: \"draft\" | \"open\" | \"paid\" | \"uncollectible\" | \"void\";\n  createdAt: string;\n  periodStart: string | null;\n  periodEnd: string | null;\n  dueDate: string | null;\n  pdfUrl: string | null;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetPaymentMethodRequestHeaders {}\n\nexport interface GetPaymentMethodRequestQuery {}\n\nexport interface GetPaymentMethodRequestParams {}\n\nexport interface GetPaymentMethodRequestBody {}\n\nexport type GetPaymentMethodInput = GetPaymentMethodRequestBody & GetPaymentMethodRequestHeaders & GetPaymentMethodRequestQuery & GetPaymentMethodRequestParams\n\nexport type GetPaymentMethodRequest = {\n  headers: GetPaymentMethodRequestHeaders;\n  query: GetPaymentMethodRequestQuery;\n  params: GetPaymentMethodRequestParams;\n  body: GetPaymentMethodRequestBody;\n}\n\nexport const parseReq = (_: GetPaymentMethodInput): GetPaymentMethodRequest & { path: string } => {\n  return {\n    path: `/v2/billing/payment-methods`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface GetPaymentMethodResponse {\n  paymentMethod: {\n    id: string;\n    type: string;\n    card: {\n      brand: string;\n      lastFour: string;\n      expMonth: number;\n      expYear: number;\n    } | null;\n  } | null;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface SetPaymentMethodRequestHeaders {}\n\nexport interface SetPaymentMethodRequestQuery {}\n\nexport interface SetPaymentMethodRequestParams {}\n\nexport interface SetPaymentMethodRequestBody {\n  /**\n   * Stripe payment method ID\n   */\n  paymentMethodId: string;\n}\n\nexport type SetPaymentMethodInput = SetPaymentMethodRequestBody & SetPaymentMethodRequestHeaders & SetPaymentMethodRequestQuery & SetPaymentMethodRequestParams\n\nexport type SetPaymentMethodRequest = {\n  headers: SetPaymentMethodRequestHeaders;\n  query: SetPaymentMethodRequestQuery;\n  params: SetPaymentMethodRequestParams;\n  body: SetPaymentMethodRequestBody;\n}\n\nexport const parseReq = (input: SetPaymentMethodInput): SetPaymentMethodRequest & { path: string } => {\n  return {\n    path: `/v2/billing/payment-methods`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'paymentMethodId': input['paymentMethodId'] },\n  }\n}\n\nexport interface SetPaymentMethodResponse {\n  id: string;\n  type: string;\n  card: {\n    brand: string;\n    lastFour: string;\n    expMonth: number;\n    expYear: number;\n  } | null;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CreatePaymentMethodIntentRequestHeaders {}\n\nexport interface CreatePaymentMethodIntentRequestQuery {}\n\nexport interface CreatePaymentMethodIntentRequestParams {}\n\nexport interface CreatePaymentMethodIntentRequestBody {}\n\nexport type CreatePaymentMethodIntentInput = CreatePaymentMethodIntentRequestBody & CreatePaymentMethodIntentRequestHeaders & CreatePaymentMethodIntentRequestQuery & CreatePaymentMethodIntentRequestParams\n\nexport type CreatePaymentMethodIntentRequest = {\n  headers: CreatePaymentMethodIntentRequestHeaders;\n  query: CreatePaymentMethodIntentRequestQuery;\n  params: CreatePaymentMethodIntentRequestParams;\n  body: CreatePaymentMethodIntentRequestBody;\n}\n\nexport const parseReq = (_: CreatePaymentMethodIntentInput): CreatePaymentMethodIntentRequest & { path: string } => {\n  return {\n    path: `/v2/billing/payment-methods/intent`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface CreatePaymentMethodIntentResponse {\n  clientSecret: string;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetQuotasRequestHeaders {}\n\nexport interface GetQuotasRequestQuery {}\n\nexport interface GetQuotasRequestParams {}\n\nexport interface GetQuotasRequestBody {}\n\nexport type GetQuotasInput = GetQuotasRequestBody & GetQuotasRequestHeaders & GetQuotasRequestQuery & GetQuotasRequestParams\n\nexport type GetQuotasRequest = {\n  headers: GetQuotasRequestHeaders;\n  query: GetQuotasRequestQuery;\n  params: GetQuotasRequestParams;\n  body: GetQuotasRequestBody;\n}\n\nexport const parseReq = (_: GetQuotasInput): GetQuotasRequest & { path: string } => {\n  return {\n    path: `/v2/billing/quotas`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface GetQuotasResponse {\n  [k: string]: number;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetWorkspaceUsageRequestHeaders {}\n\nexport interface GetWorkspaceUsageRequestQuery {\n  feature:\n    | \"incoming_messages_events\"\n    | \"integration_spend\"\n    | \"table_rows\"\n    | \"bot_count\"\n    | \"collaborator_count\"\n    | \"file_storage\"\n    | \"vector_db_storage\"\n    | \"saved_versions\"\n    | \"indexed_file_count\"\n    | \"conversation_sessions\"\n    | \"ai_spend\";\n  /**\n   * Any datetime within the desired billing month, ISO 8601. The month is inferred from this value.\n   */\n  period: string;\n}\n\nexport interface GetWorkspaceUsageRequestParams {}\n\nexport interface GetWorkspaceUsageRequestBody {}\n\nexport type GetWorkspaceUsageInput = GetWorkspaceUsageRequestBody & GetWorkspaceUsageRequestHeaders & GetWorkspaceUsageRequestQuery & GetWorkspaceUsageRequestParams\n\nexport type GetWorkspaceUsageRequest = {\n  headers: GetWorkspaceUsageRequestHeaders;\n  query: GetWorkspaceUsageRequestQuery;\n  params: GetWorkspaceUsageRequestParams;\n  body: GetWorkspaceUsageRequestBody;\n}\n\nexport const parseReq = (input: GetWorkspaceUsageInput): GetWorkspaceUsageRequest & { path: string } => {\n  return {\n    path: `/v2/usage/workspace-usage`,\n    headers: {  },\n    query: { 'feature': input['feature'], 'period': input['period'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface GetWorkspaceUsageResponse {\n  usage?: number;\n  quota: number;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetWorkspaceUsagesRequestHeaders {}\n\nexport interface GetWorkspaceUsagesRequestQuery {\n  /**\n   * Any datetime within the desired billing month, ISO 8601. The month is inferred from this value.\n   */\n  period: string;\n}\n\nexport interface GetWorkspaceUsagesRequestParams {}\n\nexport interface GetWorkspaceUsagesRequestBody {}\n\nexport type GetWorkspaceUsagesInput = GetWorkspaceUsagesRequestBody & GetWorkspaceUsagesRequestHeaders & GetWorkspaceUsagesRequestQuery & GetWorkspaceUsagesRequestParams\n\nexport type GetWorkspaceUsagesRequest = {\n  headers: GetWorkspaceUsagesRequestHeaders;\n  query: GetWorkspaceUsagesRequestQuery;\n  params: GetWorkspaceUsagesRequestParams;\n  body: GetWorkspaceUsagesRequestBody;\n}\n\nexport const parseReq = (input: GetWorkspaceUsagesInput): GetWorkspaceUsagesRequest & { path: string } => {\n  return {\n    path: `/v2/usage/workspace-usages`,\n    headers: {  },\n    query: { 'period': input['period'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface GetWorkspaceUsagesResponse {\n  quotas: {\n    [k: string]: {\n      usage?: number;\n      quota: number;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nimport axios, { AxiosInstance } from 'axios'\nimport { errorFrom } from './errors'\nimport { toAxiosRequest } from './to-axios'\nimport * as getBillingReadonly from './operations/getBillingReadonly'\nimport * as getBillingAddress from './operations/getBillingAddress'\nimport * as setBillingAddress from './operations/setBillingAddress'\nimport * as getCustomer from './operations/getCustomer'\nimport * as setCustomer from './operations/setCustomer'\nimport * as getPlan from './operations/getPlan'\nimport * as listPlans from './operations/listPlans'\nimport * as getAddon from './operations/getAddon'\nimport * as listAddons from './operations/listAddons'\nimport * as getSubscription from './operations/getSubscription'\nimport * as previewSubscriptionUpdate from './operations/previewSubscriptionUpdate'\nimport * as setPlan from './operations/setPlan'\nimport * as setAddons from './operations/setAddons'\nimport * as setCancelAtPeriodEnd from './operations/setCancelAtPeriodEnd'\nimport * as getAutoRechargeSettings from './operations/getAutoRechargeSettings'\nimport * as setAutoRechargeSettings from './operations/setAutoRechargeSettings'\nimport * as getTrials from './operations/getTrials'\nimport * as createTrial from './operations/createTrial'\nimport * as removeTrial from './operations/removeTrial'\nimport * as createCreditGrant from './operations/createCreditGrant'\nimport * as listInvoices from './operations/listInvoices'\nimport * as payInvoice from './operations/payInvoice'\nimport * as getPaymentMethod from './operations/getPaymentMethod'\nimport * as setPaymentMethod from './operations/setPaymentMethod'\nimport * as createPaymentMethodIntent from './operations/createPaymentMethodIntent'\nimport * as getQuotas from './operations/getQuotas'\nimport * as getWorkspaceUsage from './operations/getWorkspaceUsage'\nimport * as getWorkspaceUsages from './operations/getWorkspaceUsages'\n\nexport * from './models'\n\nexport * as getBillingReadonly from './operations/getBillingReadonly'\nexport * as getBillingAddress from './operations/getBillingAddress'\nexport * as setBillingAddress from './operations/setBillingAddress'\nexport * as getCustomer from './operations/getCustomer'\nexport * as setCustomer from './operations/setCustomer'\nexport * as getPlan from './operations/getPlan'\nexport * as listPlans from './operations/listPlans'\nexport * as getAddon from './operations/getAddon'\nexport * as listAddons from './operations/listAddons'\nexport * as getSubscription from './operations/getSubscription'\nexport * as previewSubscriptionUpdate from './operations/previewSubscriptionUpdate'\nexport * as setPlan from './operations/setPlan'\nexport * as setAddons from './operations/setAddons'\nexport * as setCancelAtPeriodEnd from './operations/setCancelAtPeriodEnd'\nexport * as getAutoRechargeSettings from './operations/getAutoRechargeSettings'\nexport * as setAutoRechargeSettings from './operations/setAutoRechargeSettings'\nexport * as getTrials from './operations/getTrials'\nexport * as createTrial from './operations/createTrial'\nexport * as removeTrial from './operations/removeTrial'\nexport * as createCreditGrant from './operations/createCreditGrant'\nexport * as listInvoices from './operations/listInvoices'\nexport * as payInvoice from './operations/payInvoice'\nexport * as getPaymentMethod from './operations/getPaymentMethod'\nexport * as setPaymentMethod from './operations/setPaymentMethod'\nexport * as createPaymentMethodIntent from './operations/createPaymentMethodIntent'\nexport * as getQuotas from './operations/getQuotas'\nexport * as getWorkspaceUsage from './operations/getWorkspaceUsage'\nexport * as getWorkspaceUsages from './operations/getWorkspaceUsages'\n\nexport const apiVersion = '1.108.0'\n\nexport type ClientProps = {\n  toAxiosRequest: typeof toAxiosRequest\n  toApiError: typeof toApiError\n}\n\nexport class Client {\n\n  public constructor(private axiosInstance: AxiosInstance, private props: Partial<ClientProps> = {}) {}\n\n  public readonly getBillingReadonly = async (input: getBillingReadonly.GetBillingReadonlyInput): Promise<getBillingReadonly.GetBillingReadonlyResponse> => {\n    const { path, headers, query, body } = getBillingReadonly.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getBillingReadonly.GetBillingReadonlyResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getBillingAddress = async (input: getBillingAddress.GetBillingAddressInput): Promise<getBillingAddress.GetBillingAddressResponse> => {\n    const { path, headers, query, body } = getBillingAddress.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getBillingAddress.GetBillingAddressResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly setBillingAddress = async (input: setBillingAddress.SetBillingAddressInput): Promise<setBillingAddress.SetBillingAddressResponse> => {\n    const { path, headers, query, body } = setBillingAddress.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"put\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<setBillingAddress.SetBillingAddressResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getCustomer = async (input: getCustomer.GetCustomerInput): Promise<getCustomer.GetCustomerResponse> => {\n    const { path, headers, query, body } = getCustomer.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getCustomer.GetCustomerResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly setCustomer = async (input: setCustomer.SetCustomerInput): Promise<setCustomer.SetCustomerResponse> => {\n    const { path, headers, query, body } = setCustomer.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"patch\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<setCustomer.SetCustomerResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getPlan = async (input: getPlan.GetPlanInput): Promise<getPlan.GetPlanResponse> => {\n    const { path, headers, query, body } = getPlan.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getPlan.GetPlanResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listPlans = async (input: listPlans.ListPlansInput): Promise<listPlans.ListPlansResponse> => {\n    const { path, headers, query, body } = listPlans.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listPlans.ListPlansResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getAddon = async (input: getAddon.GetAddonInput): Promise<getAddon.GetAddonResponse> => {\n    const { path, headers, query, body } = getAddon.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getAddon.GetAddonResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listAddons = async (input: listAddons.ListAddonsInput): Promise<listAddons.ListAddonsResponse> => {\n    const { path, headers, query, body } = listAddons.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listAddons.ListAddonsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getSubscription = async (input: getSubscription.GetSubscriptionInput): Promise<getSubscription.GetSubscriptionResponse> => {\n    const { path, headers, query, body } = getSubscription.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getSubscription.GetSubscriptionResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly previewSubscriptionUpdate = async (input: previewSubscriptionUpdate.PreviewSubscriptionUpdateInput): Promise<previewSubscriptionUpdate.PreviewSubscriptionUpdateResponse> => {\n    const { path, headers, query, body } = previewSubscriptionUpdate.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<previewSubscriptionUpdate.PreviewSubscriptionUpdateResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly setPlan = async (input: setPlan.SetPlanInput): Promise<setPlan.SetPlanResponse> => {\n    const { path, headers, query, body } = setPlan.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"put\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<setPlan.SetPlanResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly setAddons = async (input: setAddons.SetAddonsInput): Promise<setAddons.SetAddonsResponse> => {\n    const { path, headers, query, body } = setAddons.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"patch\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<setAddons.SetAddonsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly setCancelAtPeriodEnd = async (input: setCancelAtPeriodEnd.SetCancelAtPeriodEndInput): Promise<setCancelAtPeriodEnd.SetCancelAtPeriodEndResponse> => {\n    const { path, headers, query, body } = setCancelAtPeriodEnd.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<setCancelAtPeriodEnd.SetCancelAtPeriodEndResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getAutoRechargeSettings = async (input: getAutoRechargeSettings.GetAutoRechargeSettingsInput): Promise<getAutoRechargeSettings.GetAutoRechargeSettingsResponse> => {\n    const { path, headers, query, body } = getAutoRechargeSettings.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getAutoRechargeSettings.GetAutoRechargeSettingsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly setAutoRechargeSettings = async (input: setAutoRechargeSettings.SetAutoRechargeSettingsInput): Promise<setAutoRechargeSettings.SetAutoRechargeSettingsResponse> => {\n    const { path, headers, query, body } = setAutoRechargeSettings.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"put\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<setAutoRechargeSettings.SetAutoRechargeSettingsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getTrials = async (input: getTrials.GetTrialsInput): Promise<getTrials.GetTrialsResponse> => {\n    const { path, headers, query, body } = getTrials.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getTrials.GetTrialsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly createTrial = async (input: createTrial.CreateTrialInput): Promise<createTrial.CreateTrialResponse> => {\n    const { path, headers, query, body } = createTrial.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<createTrial.CreateTrialResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly removeTrial = async (input: removeTrial.RemoveTrialInput): Promise<removeTrial.RemoveTrialResponse> => {\n    const { path, headers, query, body } = removeTrial.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"delete\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<removeTrial.RemoveTrialResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly createCreditGrant = async (input: createCreditGrant.CreateCreditGrantInput): Promise<createCreditGrant.CreateCreditGrantResponse> => {\n    const { path, headers, query, body } = createCreditGrant.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<createCreditGrant.CreateCreditGrantResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listInvoices = async (input: listInvoices.ListInvoicesInput): Promise<listInvoices.ListInvoicesResponse> => {\n    const { path, headers, query, body } = listInvoices.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listInvoices.ListInvoicesResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly payInvoice = async (input: payInvoice.PayInvoiceInput): Promise<payInvoice.PayInvoiceResponse> => {\n    const { path, headers, query, body } = payInvoice.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<payInvoice.PayInvoiceResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getPaymentMethod = async (input: getPaymentMethod.GetPaymentMethodInput): Promise<getPaymentMethod.GetPaymentMethodResponse> => {\n    const { path, headers, query, body } = getPaymentMethod.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getPaymentMethod.GetPaymentMethodResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly setPaymentMethod = async (input: setPaymentMethod.SetPaymentMethodInput): Promise<setPaymentMethod.SetPaymentMethodResponse> => {\n    const { path, headers, query, body } = setPaymentMethod.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<setPaymentMethod.SetPaymentMethodResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly createPaymentMethodIntent = async (input: createPaymentMethodIntent.CreatePaymentMethodIntentInput): Promise<createPaymentMethodIntent.CreatePaymentMethodIntentResponse> => {\n    const { path, headers, query, body } = createPaymentMethodIntent.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<createPaymentMethodIntent.CreatePaymentMethodIntentResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getQuotas = async (input: getQuotas.GetQuotasInput): Promise<getQuotas.GetQuotasResponse> => {\n    const { path, headers, query, body } = getQuotas.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getQuotas.GetQuotasResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getWorkspaceUsage = async (input: getWorkspaceUsage.GetWorkspaceUsageInput): Promise<getWorkspaceUsage.GetWorkspaceUsageResponse> => {\n    const { path, headers, query, body } = getWorkspaceUsage.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getWorkspaceUsage.GetWorkspaceUsageResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getWorkspaceUsages = async (input: getWorkspaceUsages.GetWorkspaceUsagesInput): Promise<getWorkspaceUsages.GetWorkspaceUsagesResponse> => {\n    const { path, headers, query, body } = getWorkspaceUsages.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getWorkspaceUsages.GetWorkspaceUsagesResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n}\n\n// maps axios error to api error type\nfunction toApiError(err: unknown): Error {\n  if (axios.isAxiosError(err) && err.response?.data) {\n    return errorFrom(err.response.data)\n  }\n  return errorFrom(err)\n}\n\n", "import * as common from '../common'\nimport * as gen from '../gen/files'\nimport * as types from '../types'\nimport * as downloadFileRef from './download-file-ref'\nimport * as uploadFile from './upload-file'\n\ntype IClient = common.types.Simplify<\n  gen.Client & {\n    downloadFileRef: (\n      input: downloadFileRef.DownloadFileRefInput\n    ) => Promise<downloadFileRef.DownloadFileRefOutput>\n    uploadFile: (input: uploadFile.UploadFileInput) => Promise<uploadFile.UploadFileOutput>\n  }\n>\n\nexport type Operation = common.types.Operation<IClient>\nexport type ClientInputs = common.types.Inputs<IClient>\nexport type ClientOutputs = common.types.Outputs<IClient>\n\nexport type ClientProps = common.types.CommonClientProps & {\n  token: string\n  botId: string\n  integrationId?: string\n  integrationAlias?: string\n}\n\nexport class Client extends gen.Client implements IClient {\n  public readonly config: Readonly<types.ClientConfig>\n\n  public constructor(clientProps: ClientProps) {\n    const clientConfig = common.config.getClientConfig(clientProps)\n    const axiosInstance = common.axios.createAxiosInstance(clientConfig, clientProps.retry)\n\n    super(axiosInstance, {\n      toApiError: common.errors.toApiError,\n    })\n\n    this.config = clientConfig\n  }\n\n  public get list() {\n    type ListInputs = common.types.ListInputs<IClient>\n    return {\n      files: (props: ListInputs['listFiles']) =>\n        new common.listing.AsyncCollection(({ nextToken }) =>\n          this.listFiles({ nextToken, ...props }).then((r) => ({ ...r, items: r.files }))\n        ),\n      filePassages: (props: ListInputs['listFilePassages']) =>\n        new common.listing.AsyncCollection(({ nextToken }) =>\n          this.listFilePassages({ nextToken, ...props }).then((r) => ({ ...r, items: r.passages }))\n        ),\n      fileTags: (props: ListInputs['listFileTags']) =>\n        new common.listing.AsyncCollection(({ nextToken }) =>\n          this.listFileTags({ nextToken, ...props }).then((r) => ({ ...r, items: r.tags }))\n        ),\n      fileTagValues: (props: ListInputs['listFileTagValues']) =>\n        new common.listing.AsyncCollection(({ nextToken }) =>\n          this.listFileTagValues({ nextToken, ...props }).then((r) => ({ ...r, items: r.values }))\n        ),\n      knowledgeBases: (props: ListInputs['listKnowledgeBases']) =>\n        new common.listing.AsyncCollection(({ nextToken }) =>\n          this.listKnowledgeBases({ nextToken, ...props }).then((r) => ({ ...r, items: r.knowledgeBases }))\n        ),\n    }\n  }\n\n  /**\n   * Create/update and upload a file in a single step. Returns an object containing the file metadata and the URL to retrieve the file.\n   */\n  public async uploadFile(input: uploadFile.UploadFileInput): Promise<uploadFile.UploadFileOutput> {\n    return await uploadFile.upload(this, input)\n  }\n\n  /**\n   * Stream the exact immutable FileRef generation without materializing it in memory.\n   */\n  public async downloadFileRef(\n    input: downloadFileRef.DownloadFileRefInput\n  ): Promise<downloadFileRef.DownloadFileRefOutput> {\n    return await downloadFileRef.downloadFileRef(this.config, input)\n  }\n}\n\nexport type {\n  DownloadFileRefInput,\n  DownloadFileRefOutput,\n  ExactFileRef,\n} from './download-file-ref'\nexport { DownloadFileRefError } from './download-file-ref'\n", "\nimport crypto from 'crypto'\n\nconst codes = {\n  HTTP_STATUS_BAD_REQUEST: 400,\n  HTTP_STATUS_UNAUTHORIZED: 401,\n  HTTP_STATUS_PAYMENT_REQUIRED: 402,\n  HTTP_STATUS_FORBIDDEN: 403,\n  HTTP_STATUS_NOT_FOUND: 404,\n  HTTP_STATUS_METHOD_NOT_ALLOWED: 405,\n  HTTP_STATUS_REQUEST_TIMEOUT: 408,\n  HTTP_STATUS_CONFLICT: 409,\n  HTTP_STATUS_GONE: 410,\n  HTTP_STATUS_PAYLOAD_TOO_LARGE: 413,\n  HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE: 415,\n  HTTP_STATUS_DEPENDENCY_FAILED: 424,\n  HTTP_STATUS_TOO_MANY_REQUESTS: 429,\n  HTTP_STATUS_INTERNAL_SERVER_ERROR: 500,\n  HTTP_STATUS_NOT_IMPLEMENTED: 501,\n  HTTP_STATUS_BAD_GATEWAY: 502,\n  HTTP_STATUS_SERVICE_UNAVAILABLE: 503,\n  HTTP_STATUS_GATEWAY_TIMEOUT: 504,\n} as const\n\ntype ErrorCode = typeof codes[keyof typeof codes]\n\ndeclare const window: any\ntype CryptoLib = { getRandomValues(array: Uint8Array): Uint8Array }\n\nconst cryptoLibPolyfill: CryptoLib = {\n  // Fallback in case crypto isn't available.\n  getRandomValues: (array: Uint8Array) => new Uint8Array(array.map(() => Math.floor(Math.random() * 256))),\n}\n\nlet cryptoLib: CryptoLib =\n  typeof window !== 'undefined' && typeof window.document !== 'undefined'\n    ? window.crypto // Note: On browsers we need to use window.crypto instead of the imported crypto module as the latter is externalized and doesn't have getRandomValues().\n    : crypto\n\nif (!cryptoLib.getRandomValues) {\n  // Use a polyfill in older environments that have a crypto implementaton missing getRandomValues()\n  cryptoLib = cryptoLibPolyfill\n}\n\nabstract class BaseApiError<Code extends ErrorCode, Type extends string, Description extends string> extends Error {\n  public readonly isApiError = true\n\n  constructor(\n    public readonly code: Code,\n    public readonly description: Description,\n    public readonly type: Type,\n    public override readonly message: string,\n    public readonly error?: Error,\n    public readonly id?: string,\n    public readonly metadata?: Record<string, unknown>,\n  ) {\n    super(message)\n\n    if (!this.id) {\n      this.id = BaseApiError.generateId()\n    }\n  }\n\n  format() {\n    return `[${this.type}] ${this.message} (Error ID: ${this.id})`\n  }\n\n  toJSON() {\n    return {\n      id: this.id,\n      code: this.code,\n      type: this.type,\n      message: this.message,\n      metadata: this.metadata,\n    }\n  }\n\n  static generateId() {\n    const prefix = this.getPrefix();\n    const timestamp = new Date().toISOString().replace(/[\\-:TZ]/g, \"\").split(\".\")[0] // UTC time in YYMMDDHHMMSS format\n\n    const randomSuffixByteLength = 4\n    const randomHexSuffix = Array.from(cryptoLib.getRandomValues(new Uint8Array(randomSuffixByteLength)))\n      .map(x => x.toString(16).padStart(2, '0'))\n      .join('')\n      .toUpperCase()\n\n    return `${prefix}_${timestamp}x${randomHexSuffix}`\n  }\n\n  private static getPrefix() {\n    if (typeof window !== 'undefined' && typeof window.document !== 'undefined') {\n      // Browser environment\n      return 'err_bwsr'\n    }\n    return 'err'\n  }\n}\n\nconst isObject = (obj: unknown): obj is object => typeof obj === 'object' && !Array.isArray(obj) && obj !== null\n\nexport const isApiError = (thrown: unknown): thrown is ApiError => {\n  return thrown instanceof BaseApiError || isObject(thrown) && (thrown as ApiError).isApiError === true\n}\n\ntype UnknownType = 'Unknown'\n\n/**\n *  An unknown error occurred\n */\nexport class UnknownError extends BaseApiError<500, UnknownType, 'An unknown error occurred'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(500, 'An unknown error occurred', 'Unknown', message, error, id, metadata)\n  }\n}\n\ntype InternalType = 'Internal'\n\n/**\n *  An internal error occurred\n */\nexport class InternalError extends BaseApiError<500, InternalType, 'An internal error occurred'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(500, 'An internal error occurred', 'Internal', message, error, id, metadata)\n  }\n}\n\ntype UnauthorizedType = 'Unauthorized'\n\n/**\n *  The request requires to be authenticated.\n */\nexport class UnauthorizedError extends BaseApiError<401, UnauthorizedType, 'The request requires to be authenticated.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(401, 'The request requires to be authenticated.', 'Unauthorized', message, error, id, metadata)\n  }\n}\n\ntype ForbiddenType = 'Forbidden'\n\n/**\n *  The requested action can\\'t be peform by this resource.\n */\nexport class ForbiddenError extends BaseApiError<403, ForbiddenType, 'The requested action can\\'t be peform by this resource.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(403, 'The requested action can\\'t be peform by this resource.', 'Forbidden', message, error, id, metadata)\n  }\n}\n\ntype PayloadTooLargeType = 'PayloadTooLarge'\n\n/**\n *  The request payload is too large.\n */\nexport class PayloadTooLargeError extends BaseApiError<413, PayloadTooLargeType, 'The request payload is too large.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(413, 'The request payload is too large.', 'PayloadTooLarge', message, error, id, metadata)\n  }\n}\n\ntype InvalidPayloadType = 'InvalidPayload'\n\n/**\n *  The request payload is invalid.\n */\nexport class InvalidPayloadError extends BaseApiError<400, InvalidPayloadType, 'The request payload is invalid.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'The request payload is invalid.', 'InvalidPayload', message, error, id, metadata)\n  }\n}\n\ntype UnsupportedMediaTypeType = 'UnsupportedMediaType'\n\n/**\n *  The request is invalid because the content-type is not supported.\n */\nexport class UnsupportedMediaTypeError extends BaseApiError<415, UnsupportedMediaTypeType, 'The request is invalid because the content-type is not supported.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(415, 'The request is invalid because the content-type is not supported.', 'UnsupportedMediaType', message, error, id, metadata)\n  }\n}\n\ntype MethodNotFoundType = 'MethodNotFound'\n\n/**\n *  The requested method does not exist.\n */\nexport class MethodNotFoundError extends BaseApiError<405, MethodNotFoundType, 'The requested method does not exist.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(405, 'The requested method does not exist.', 'MethodNotFound', message, error, id, metadata)\n  }\n}\n\ntype ResourceNotFoundType = 'ResourceNotFound'\n\n/**\n *  The requested resource does not exist.\n */\nexport class ResourceNotFoundError extends BaseApiError<404, ResourceNotFoundType, 'The requested resource does not exist.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(404, 'The requested resource does not exist.', 'ResourceNotFound', message, error, id, metadata)\n  }\n}\n\ntype InvalidJsonSchemaType = 'InvalidJsonSchema'\n\n/**\n *  The provided JSON schema is invalid.\n */\nexport class InvalidJsonSchemaError extends BaseApiError<400, InvalidJsonSchemaType, 'The provided JSON schema is invalid.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'The provided JSON schema is invalid.', 'InvalidJsonSchema', message, error, id, metadata)\n  }\n}\n\ntype InvalidDataFormatType = 'InvalidDataFormat'\n\n/**\n *  The provided data doesn\\'t respect the provided JSON schema.\n */\nexport class InvalidDataFormatError extends BaseApiError<400, InvalidDataFormatType, 'The provided data doesn\\'t respect the provided JSON schema.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'The provided data doesn\\'t respect the provided JSON schema.', 'InvalidDataFormat', message, error, id, metadata)\n  }\n}\n\ntype InvalidIdentifierType = 'InvalidIdentifier'\n\n/**\n *  The provided identifier is not valid. An identifier must start with a lowercase letter, be between 2 and 100 characters long and use only alphanumeric characters.\n */\nexport class InvalidIdentifierError extends BaseApiError<400, InvalidIdentifierType, 'The provided identifier is not valid. An identifier must start with a lowercase letter, be between 2 and 100 characters long and use only alphanumeric characters.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'The provided identifier is not valid. An identifier must start with a lowercase letter, be between 2 and 100 characters long and use only alphanumeric characters.', 'InvalidIdentifier', message, error, id, metadata)\n  }\n}\n\ntype RelationConflictType = 'RelationConflict'\n\n/**\n *  The resource is related with a different resource that the one referenced in the request. This is usually caused when providing two resource identifiers that aren\\'t linked together.\n */\nexport class RelationConflictError extends BaseApiError<409, RelationConflictType, 'The resource is related with a different resource that the one referenced in the request. This is usually caused when providing two resource identifiers that aren\\'t linked together.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(409, 'The resource is related with a different resource that the one referenced in the request. This is usually caused when providing two resource identifiers that aren\\'t linked together.', 'RelationConflict', message, error, id, metadata)\n  }\n}\n\ntype ReferenceConstraintType = 'ReferenceConstraint'\n\n/**\n *  The resource cannot be deleted because it\\'s referenced by another resource\n */\nexport class ReferenceConstraintError extends BaseApiError<409, ReferenceConstraintType, 'The resource cannot be deleted because it\\'s referenced by another resource'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(409, 'The resource cannot be deleted because it\\'s referenced by another resource', 'ReferenceConstraint', message, error, id, metadata)\n  }\n}\n\ntype ResourceLockedConflictType = 'ResourceLockedConflict'\n\n/**\n *  The resource is current locked and cannot be operated on until the lock is released.\n */\nexport class ResourceLockedConflictError extends BaseApiError<409, ResourceLockedConflictType, 'The resource is current locked and cannot be operated on until the lock is released.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(409, 'The resource is current locked and cannot be operated on until the lock is released.', 'ResourceLockedConflict', message, error, id, metadata)\n  }\n}\n\ntype ResourceGoneType = 'ResourceGone'\n\n/**\n *  The requested resource is no longer available.\n */\nexport class ResourceGoneError extends BaseApiError<410, ResourceGoneType, 'The requested resource is no longer available.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(410, 'The requested resource is no longer available.', 'ResourceGone', message, error, id, metadata)\n  }\n}\n\ntype ReferenceNotFoundType = 'ReferenceNotFound'\n\n/**\n *  The provided resource reference is missing. This is usually caused when providing an invalid id inside the payload of a request.\n */\nexport class ReferenceNotFoundError extends BaseApiError<400, ReferenceNotFoundType, 'The provided resource reference is missing. This is usually caused when providing an invalid id inside the payload of a request.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'The provided resource reference is missing. This is usually caused when providing an invalid id inside the payload of a request.', 'ReferenceNotFound', message, error, id, metadata)\n  }\n}\n\ntype InvalidQueryType = 'InvalidQuery'\n\n/**\n *  The provided query is invalid. This is usually caused when providing an invalid parameter for querying a resource.\n */\nexport class InvalidQueryError extends BaseApiError<400, InvalidQueryType, 'The provided query is invalid. This is usually caused when providing an invalid parameter for querying a resource.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'The provided query is invalid. This is usually caused when providing an invalid parameter for querying a resource.', 'InvalidQuery', message, error, id, metadata)\n  }\n}\n\ntype RuntimeType = 'Runtime'\n\n/**\n *  An error happened during the execution of a runtime (bot or integration).\n */\nexport class RuntimeError extends BaseApiError<400, RuntimeType, 'An error happened during the execution of a runtime (bot or integration).'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'An error happened during the execution of a runtime (bot or integration).', 'Runtime', message, error, id, metadata)\n  }\n}\n\ntype AlreadyExistsType = 'AlreadyExists'\n\n/**\n *  The record attempted to be created already exists.\n */\nexport class AlreadyExistsError extends BaseApiError<409, AlreadyExistsType, 'The record attempted to be created already exists.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(409, 'The record attempted to be created already exists.', 'AlreadyExists', message, error, id, metadata)\n  }\n}\n\ntype RateLimitedType = 'RateLimited'\n\n/**\n *  The request has been rate limited.\n */\nexport class RateLimitedError extends BaseApiError<429, RateLimitedType, 'The request has been rate limited.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(429, 'The request has been rate limited.', 'RateLimited', message, error, id, metadata)\n  }\n}\n\ntype PaymentRequiredType = 'PaymentRequired'\n\n/**\n *  A payment is required to perform this request.\n */\nexport class PaymentRequiredError extends BaseApiError<402, PaymentRequiredType, 'A payment is required to perform this request.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(402, 'A payment is required to perform this request.', 'PaymentRequired', message, error, id, metadata)\n  }\n}\n\ntype QuotaExceededType = 'QuotaExceeded'\n\n/**\n *  The request exceeds the allowed quota. Quotas are a soft limit that can be increased.\n */\nexport class QuotaExceededError extends BaseApiError<403, QuotaExceededType, 'The request exceeds the allowed quota. Quotas are a soft limit that can be increased.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(403, 'The request exceeds the allowed quota. Quotas are a soft limit that can be increased.', 'QuotaExceeded', message, error, id, metadata)\n  }\n}\n\ntype LimitExceededType = 'LimitExceeded'\n\n/**\n *  The request exceeds the allowed limit. Limits are a hard limit that cannot be increased.\n */\nexport class LimitExceededError extends BaseApiError<413, LimitExceededType, 'The request exceeds the allowed limit. Limits are a hard limit that cannot be increased.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(413, 'The request exceeds the allowed limit. Limits are a hard limit that cannot be increased.', 'LimitExceeded', message, error, id, metadata)\n  }\n}\n\ntype BreakingChangesType = 'BreakingChanges'\n\n/**\n *  Request payload contains breaking changes which is not allowed for this resource without a version increment.\n */\nexport class BreakingChangesError extends BaseApiError<400, BreakingChangesType, 'Request payload contains breaking changes which is not allowed for this resource without a version increment.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'Request payload contains breaking changes which is not allowed for this resource without a version increment.', 'BreakingChanges', message, error, id, metadata)\n  }\n}\n\ntype OperationTimeoutType = 'OperationTimeout'\n\n/**\n *  The operation timed out.\n */\nexport class OperationTimeoutError extends BaseApiError<504, OperationTimeoutType, 'The operation timed out.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(504, 'The operation timed out.', 'OperationTimeout', message, error, id, metadata)\n  }\n}\n\nexport type ErrorType =\n  | 'Unknown'\n  | 'Internal'\n  | 'Unauthorized'\n  | 'Forbidden'\n  | 'PayloadTooLarge'\n  | 'InvalidPayload'\n  | 'UnsupportedMediaType'\n  | 'MethodNotFound'\n  | 'ResourceNotFound'\n  | 'InvalidJsonSchema'\n  | 'InvalidDataFormat'\n  | 'InvalidIdentifier'\n  | 'RelationConflict'\n  | 'ReferenceConstraint'\n  | 'ResourceLockedConflict'\n  | 'ResourceGone'\n  | 'ReferenceNotFound'\n  | 'InvalidQuery'\n  | 'Runtime'\n  | 'AlreadyExists'\n  | 'RateLimited'\n  | 'PaymentRequired'\n  | 'QuotaExceeded'\n  | 'LimitExceeded'\n  | 'BreakingChanges'\n  | 'OperationTimeout'\n\nexport type ApiError =\n  | UnknownError\n  | InternalError\n  | UnauthorizedError\n  | ForbiddenError\n  | PayloadTooLargeError\n  | InvalidPayloadError\n  | UnsupportedMediaTypeError\n  | MethodNotFoundError\n  | ResourceNotFoundError\n  | InvalidJsonSchemaError\n  | InvalidDataFormatError\n  | InvalidIdentifierError\n  | RelationConflictError\n  | ReferenceConstraintError\n  | ResourceLockedConflictError\n  | ResourceGoneError\n  | ReferenceNotFoundError\n  | InvalidQueryError\n  | RuntimeError\n  | AlreadyExistsError\n  | RateLimitedError\n  | PaymentRequiredError\n  | QuotaExceededError\n  | LimitExceededError\n  | BreakingChangesError\n  | OperationTimeoutError\n\nconst errorTypes: { [type: string]: new (message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) => ApiError } = {\n  Unknown: UnknownError,\n  Internal: InternalError,\n  Unauthorized: UnauthorizedError,\n  Forbidden: ForbiddenError,\n  PayloadTooLarge: PayloadTooLargeError,\n  InvalidPayload: InvalidPayloadError,\n  UnsupportedMediaType: UnsupportedMediaTypeError,\n  MethodNotFound: MethodNotFoundError,\n  ResourceNotFound: ResourceNotFoundError,\n  InvalidJsonSchema: InvalidJsonSchemaError,\n  InvalidDataFormat: InvalidDataFormatError,\n  InvalidIdentifier: InvalidIdentifierError,\n  RelationConflict: RelationConflictError,\n  ReferenceConstraint: ReferenceConstraintError,\n  ResourceLockedConflict: ResourceLockedConflictError,\n  ResourceGone: ResourceGoneError,\n  ReferenceNotFound: ReferenceNotFoundError,\n  InvalidQuery: InvalidQueryError,\n  Runtime: RuntimeError,\n  AlreadyExists: AlreadyExistsError,\n  RateLimited: RateLimitedError,\n  PaymentRequired: PaymentRequiredError,\n  QuotaExceeded: QuotaExceededError,\n  LimitExceeded: LimitExceededError,\n  BreakingChanges: BreakingChangesError,\n  OperationTimeout: OperationTimeoutError,\n}\n\nexport const errorFrom = (err: unknown): ApiError => {\n  if (isApiError(err)) {\n    return err\n  }\n  else if (err instanceof Error) {\n    return new UnknownError(err.message, err)\n  }\n  else if (typeof err === 'string') {\n    return new UnknownError(err)\n  }\n  else {\n    return getApiErrorFromObject(err)\n  }\n}\n\nfunction getApiErrorFromObject(err: any) {\n  // Check if it's an deserialized API error object\n  if (typeof err === 'object' && 'code' in err && 'type' in err && 'id' in err && 'message' in err && typeof err.type === 'string' && typeof err.message === 'string') {\n    const ErrorClass = errorTypes[err.type]\n    if (!ErrorClass) {\n      return new UnknownError(`An unclassified API error occurred: ${err.message} (Type: ${err.type}, Code: ${err.code})`)\n    }\n\n    return new ErrorClass(err.message, undefined, <string>err.id || 'UNKNOWN', err.metadata) // If error ID was not received do not pass undefined to generate a new one, flag it as UNKNOWN so we can fix the issue.\n  }\n\n  return new UnknownError('An invalid error occurred: ' + JSON.stringify(err))\n}\n", "\nimport { AxiosRequestConfig } from \"axios\"\nimport qs from \"qs\"\n\nexport type Primitive = string | number | boolean\nexport type Value<P extends Primitive> = P | P[] | Record<string, P>\nexport type QueryValue = Value<string> | Value<boolean> | Value<number> | undefined\nexport type AnyQueryParams = Record<string, QueryValue>\nexport type HeaderValue = string | undefined\nexport type AnyHeaderParams = Record<string, HeaderValue>\nexport type AnyBodyParams = Record<string, any>\nexport type ParsedRequest = {\n  method: string\n  path: string\n  query: AnyQueryParams\n  headers: AnyHeaderParams\n  body: AnyBodyParams\n}\n\nconst isDefined = <T>(pair: [string, T | undefined]): pair is [string, T] => pair[1] !== undefined\n\nexport const toAxiosRequest = (req: ParsedRequest): AxiosRequestConfig => {\n  const { method, path, query, headers: headerParams, body } = req\n\n  // prepare headers\n  const headerEntries: [string, string][] = Object.entries(headerParams).filter(isDefined)\n  const headers = Object.fromEntries(headerEntries)\n\n  // prepare query params\n  const queryString = qs.stringify(query, { encode: true, arrayFormat: 'repeat', allowDots: true })\n\n  const url = queryString ? [path, queryString].join('?') : path\n  const data =\n    ['put', 'post', 'delete', 'patch'].includes(method.toLowerCase())\n      ? body\n      : undefined\n\n  return {\n    method,\n    url,\n    headers,\n    data,\n  }\n}\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface UpsertFileRequestHeaders {}\n\nexport interface UpsertFileRequestQuery {}\n\nexport interface UpsertFileRequestParams {}\n\nexport interface UpsertFileRequestBody {\n  /**\n   * Unique key for the file. Must be unique across the bot (and the integration, when applicable).\n   */\n  key: string;\n  /**\n   * File tags as an object of key-value pairs. Tag values should be of `string` (text) type.\n   */\n  tags?: {\n    [k: string]: string;\n  };\n  /**\n   * File size in bytes. This will count against your File Storage quota. If the `index` parameter is set to `true`, this will also count against your Vector DB Storage quota.\n   */\n  size: number;\n  /**\n   * Set to a value of 'true' to index the file in vector storage. Only certain file formats are currently supported for indexing. Files larger than 95 MB cannot be indexed. Note that if a file is indexed, it will count towards both the Vector DB Storage quota and the File Storage quota of the workspace.\n   */\n  index?: boolean;\n  indexing?: {\n    /**\n     * Configuration to use for indexing the file, will be stored in the file's metadata for reference.\n     */\n    configuration: {\n      parsing?: {\n        /**\n         * The parsing mode to index the file. Using `agent` will use agentic document processing to parse the file and will incurr in AI Spend cost, while `standard` will use a faster but less accurate parser that will not incur in AI Spend cost.\n         */\n        mode?: \"agent\" | \"standard\";\n        /**\n         * The minimum length a standalone paragraph should have. If a paragraph is shorter than this, it will be merged with the next immediate paragraph.\n         */\n        minimumParagraphLength?: number;\n        /**\n         * (Team/Enterprise plan only, charged as AI Spend) Enabling this will use a lightweight/inexpensive LLM to clean up the extracted content of PDF files before indexing them to increase the quality of the stored vectors, as PDFs often store raw text in unusual ways which when extracted may result in formatting issues (e.g. broken sentences/paragraphs, unexpected headings, garbled characters, etc.) that can affect retrieval performance for certain user queries if left untouched.\n         *\n         * Notes:\n         * - This feature is only available in Team and Enterprise plans.\n         * - This feature is only available for PDF files. If the file isn't a PDF, this setting will be ignored and no AI Spend will be incurred.\n         * - We recommend using this feature for PDFs that have custom layouts or design. For simple text-based PDFs like documents and books, this feature is usually not necessary.\n         * - The smart cleanup takes some time to perform due to the LLM calls involved, so enabling it will increase the total time it takes to index the file.\n         * - We take steps to prevent the original text from being fundamentally changed but due to the nature of LLMs this could theoretically still happen so it's recommended to review the passages generated for the file after indexing to ensure the content is still accurate.\n         * - This feature is limited to the first 30 pages or 20 KB of text in the PDF file (whichever comes first). If the file has more content than these limits then the rest of the file will be indexed as-is without any cleanup. If you need to clean up the content of the entire file, consider splitting it into smaller files.\n         */\n        smartCleanup?: boolean;\n      };\n      chunking?: {\n        /**\n         * The maximum length of a chunk in characters.\n         */\n        maximumChunkLength?: number;\n        /**\n         * The number of surrounding context levels to include in the vector embedding of the chunk.\n         */\n        embeddedContextLevels?: number;\n        /**\n         * Include the breadcrumb of the chunk in the vector embedding.\n         */\n        embedBreadcrumb?: boolean;\n      };\n      summarization?: {\n        /**\n         * (Team/Enterprise plan only, charged as AI Spend) Create summaries for this file and index them as standalone vectors. Enabling this option will incur in AI Spend cost (charged to the workspace of the bot) to generate the summaries based on the amount of content in the file and the summarization model used.\n         *\n         * Please note that this feature is only available in Team and Enterprise plans.\n         */\n        enable?: boolean;\n        /**\n         * The model type to use for summarization.\n         */\n        modelType?: \"inexpensive\" | \"balanced\" | \"accurate\";\n        /**\n         * The minimum length a section of the file should have to create a summary of it.\n         */\n        minimumInputLength?: number;\n        /**\n         * The maximum length of a summary (in tokens).\n         */\n        outputTokenLimit?: number;\n        /**\n         * Generate a summary of the entire file and index it as a standalone vector.\n         */\n        generateMasterSummary?: boolean;\n      };\n      /**\n       * If not set, the default indexing stack will be used.\n       */\n      stack?: \"legacy\" | \"realtime-v1\";\n      vision?: {\n        /**\n         * (Team/Enterprise plan only, charged as AI Spend) For PDF files, set this option to `true` or pass an array with specific page numbers to use a vision-enabled LLM to transcribe each page of the PDF as standalone vectors and index them.\n         *\n         * This feature is useful when a PDF file contains custom designs or layouts, or when your document has many infographics, which require visual processing in order to index the file effectively, as the default text-based indexing may not be enough to allow your bot to correctly understand the content in your PDFs.\n         *\n         * Notes:\n         * - This feature is only available in Team and Enterprise plans.\n         * - Enabling this feature will incur in AI Spend cost to use a vision-enabled LLM to index the PDF pages.\n         * - This is limited to a maximum of 100 pages of the PDF. If the file has more pages then the rest of the pages will NOT be transcribed using this vision feature, and will be processed using the default text-based indexing instead. If you need to transcribe the entire file using vision, please split it into smaller files.\n         * - Pages that are vision-transcribed will not be processed by the default text-based indexing to avoid duplicate content in the index.\n         * - This feature is only available for PDF files. If the file isn't a PDF, this setting will be ignored and no AI Spend will be incurred.\n         */\n        transcribePages?: {\n          [k: string]: any;\n        };\n        /**\n         * (Team/Enterprise plan only, charged as AI Spend) For PDF files, set this option to `true` or pass an array with specific page numbers to use a vision-enabled LLM to index each page of the PDF as a standalone image.\n         *\n         * Enabling this feature will allow Autonomous Nodes in your bot to answer visual or higher-level questions about the content in these pages that can usually not be answered correctly by the default text-based indexing or visual transcription.\n         *\n         * This feature is useful when a PDF has:\n         * - Tables with complex layouts\n         * - Charts, diagrams or infographics\n         * - Photos or images that can be used to answer user queries\n         *\n         * Notes:\n         * - This feature is only available in Team and Enterprise plans.\n         * - Enabling this will incur in extra AI Spend cost and additional File Storage usage, in order to use a vision-enabled LLM to visually index the PDF pages and store them as standalone page images in the bot's file storage.\n         * - Enabling this may increase the overall AI Spend cost of your bot as your bot may pass one or more indexed page images to a vision-enabled LLM for answering user queries.\n         * - This is limited to the first 100 pages of the PDF. If the file has more pages then the rest of the pages will NOT be vision-indexed. If you need to visually index the entire file, please split it into smaller files.\n         * - This feature is only available for PDF files. If the file isn't a PDF, this setting will be ignored and no AI Spend will be incurred.\n         */\n        indexPages?: {\n          [k: string]: any;\n        };\n      };\n    };\n  };\n  /**\n   * File access policies. Add \"public_content\" to allow public access to the file content. Add \"integrations\" to allow read, search and list operations for any integration installed in the bot.\n   */\n  accessPolicies?: (\"public_content\" | \"integrations\")[];\n  /**\n   * File content type. If omitted, the content type will be inferred from the file extension (if any) specified in `key`. If a content type cannot be inferred, the default is \"application/octet-stream\".\n   */\n  contentType?: string;\n  /**\n   * Expiry timestamp in ISO 8601 format with UTC timezone. After expiry, the File will be deleted. Must be in the future. Cannot be more than 90 days from now. The value up to minutes is considered. Seconds and milliseconds are ignored.\n   */\n  expiresAt?: string;\n  /**\n   * Use when your file has \"public_content\" in its access policy and you need the file\\'s content to be immediately accessible through its URL after the file has been uploaded without having to wait for the upload to be processed by our system.\n   *\n   * If set to `true`, the `x-amz-tagging` HTTP header with a value of `public=true` will need to be sent in the HTTP PUT request to the `uploadUrl` in order for the upload request to work.\n   */\n  publicContentImmediatelyAccessible?: boolean;\n  /**\n   * Custom metadata for the file expressed as an object of key-value pairs. The values can be of any type.\n   */\n  metadata?: {\n    [k: string]: any;\n  };\n}\n\nexport type UpsertFileInput = UpsertFileRequestBody & UpsertFileRequestHeaders & UpsertFileRequestQuery & UpsertFileRequestParams\n\nexport type UpsertFileRequest = {\n  headers: UpsertFileRequestHeaders;\n  query: UpsertFileRequestQuery;\n  params: UpsertFileRequestParams;\n  body: UpsertFileRequestBody;\n}\n\nexport const parseReq = (input: UpsertFileInput): UpsertFileRequest & { path: string } => {\n  return {\n    path: `/v1/files`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'key': input['key'], 'tags': input['tags'], 'size': input['size'], 'index': input['index'], 'indexing': input['indexing'], 'accessPolicies': input['accessPolicies'], 'contentType': input['contentType'], 'expiresAt': input['expiresAt'], 'publicContentImmediatelyAccessible': input['publicContentImmediatelyAccessible'], 'metadata': input['metadata'] },\n  }\n}\n\nexport interface UpsertFileResponse {\n  file: {\n    /**\n     * File ID\n     */\n    id: string;\n    /**\n     * The ID of the bot the file belongs to\n     */\n    botId: string;\n    /**\n     * Unique key for the file. Must be unique across the bot (and the integration, when applicable).\n     */\n    key: string;\n    /**\n     * URL to retrieve the file content. This URL will be ready to use once the file is uploaded.\n     *\n     * If the file has a `public_content` policy, this will contain the permanent public URL to retrieve the file, otherwise this will contain a temporary pre-signed URL to download the file which should be used shortly after retrieving and should not be stored long-term as the URL will expire after a short timeframe.\n     */\n    url: string;\n    /**\n     * File size in bytes. Non-null if file upload status is \"COMPLETE\".\n     */\n    size: number | null;\n    /**\n     * MIME type of the file's content\n     */\n    contentType: string;\n    /**\n     * The tags of the file as an object of key/value pairs\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Metadata of the file as an object of key/value pairs. The values can be of any type.\n     */\n    metadata: {\n      [k: string]: any;\n    };\n    /**\n     * File creation timestamp in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * File last update timestamp in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Access policies configured for the file.\n     */\n    accessPolicies: (\"integrations\" | \"public_content\")[];\n    /**\n     * Whether the file was requested to be indexed for search or not.\n     */\n    index: boolean;\n    /**\n     * Status of the file. If the status is `upload_pending`, the file content has not been uploaded yet. The status will be set to `upload_completed` once the file content has been uploaded successfully.\n     *\n     * If the upload failed for any reason (e.g. exceeding the storage quota or the maximum file size limit) the status will be set to `upload_failed` and the reason for the failure will be available in the `failedStatusReason` field of the file.\n     *\n     * However, if the file has been uploaded and the `index` attribute was set to `true` on the file, the status will immediately transition to the `indexing_pending` status (the `upload_completed` status step will be skipped).\n     *\n     * Once the indexing is completed and the file is ready to be used for searching its status will be set to `indexing_completed`. If the indexing failed the status will be set to `indexing_failed` and the reason for the failure will be available in the `failedStatusReason` field.\n     */\n    status:\n      | \"upload_pending\"\n      | \"upload_failed\"\n      | \"upload_completed\"\n      | \"indexing_pending\"\n      | \"indexing_failed\"\n      | \"indexing_completed\";\n    /**\n     * If the file status is `upload_failed` or `indexing_failed` this will contain the reason of the failure.\n     */\n    failedStatusReason?: string;\n    /**\n     * File expiry timestamp in ISO 8601 format\n     */\n    expiresAt?: string;\n    owner: {\n      type: \"bot\" | \"integration\" | \"user\";\n      /**\n       * This field is present if `type` is \"user\" or \"bot\". If `type` is \"user\", this is the user ID. If `type` is \"bot\", this is the bot ID.\n       */\n      id?: string;\n      /**\n       * This field is present if the `type` is \"integration\". If `type` is \"integration\", this is the integration name.\n       */\n      name?: string;\n      /**\n       * This field is present if the `type` is \"integration\". If `type` is \"integration\", this is the integration instance alias.\n       */\n      alias?: string;\n    };\n    /**\n     * Indicates the indexing stack used to index this file. Present only when file has been successfully indexed. A value of \"v2\" denotes the latest stack, \"v1\" denotes the legacy stack.\n     */\n    indexingStack?: \"v1\" | \"v2\";\n    /**\n     * URL to upload the file content. File content needs to be sent to this URL via a PUT request.\n     */\n    uploadUrl: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface DeleteFileRequestHeaders {}\n\nexport interface DeleteFileRequestQuery {}\n\nexport interface DeleteFileRequestParams {\n  id: string;\n}\n\nexport interface DeleteFileRequestBody {}\n\nexport type DeleteFileInput = DeleteFileRequestBody & DeleteFileRequestHeaders & DeleteFileRequestQuery & DeleteFileRequestParams\n\nexport type DeleteFileRequest = {\n  headers: DeleteFileRequestHeaders;\n  query: DeleteFileRequestQuery;\n  params: DeleteFileRequestParams;\n  body: DeleteFileRequestBody;\n}\n\nexport const parseReq = (input: DeleteFileInput): DeleteFileRequest & { path: string } => {\n  return {\n    path: `/v1/files/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface DeleteFileResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListFilesRequestHeaders {}\n\nexport interface ListFilesRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n  sortField?: \"key\" | \"size\" | \"createdAt\" | \"updatedAt\" | \"status\";\n  sortDirection?: \"asc\" | \"desc\";\n  tags?: any;\n  /**\n   * @maxItems 50\n   */\n  ids?: string[];\n  indexed?: boolean;\n}\n\nexport interface ListFilesRequestParams {}\n\nexport interface ListFilesRequestBody {}\n\nexport type ListFilesInput = ListFilesRequestBody & ListFilesRequestHeaders & ListFilesRequestQuery & ListFilesRequestParams\n\nexport type ListFilesRequest = {\n  headers: ListFilesRequestHeaders;\n  query: ListFilesRequestQuery;\n  params: ListFilesRequestParams;\n  body: ListFilesRequestBody;\n}\n\nexport const parseReq = (input: ListFilesInput): ListFilesRequest & { path: string } => {\n  return {\n    path: `/v1/files`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'], 'sortField': input['sortField'], 'sortDirection': input['sortDirection'], 'tags': input['tags'], 'ids': input['ids'], 'indexed': input['indexed'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListFilesResponse {\n  files: {\n    /**\n     * File ID\n     */\n    id: string;\n    /**\n     * The ID of the bot the file belongs to\n     */\n    botId: string;\n    /**\n     * Unique key for the file. Must be unique across the bot (and the integration, when applicable).\n     */\n    key: string;\n    /**\n     * URL to retrieve the file content. This URL will be ready to use once the file is uploaded.\n     *\n     * If the file has a `public_content` policy, this will contain the permanent public URL to retrieve the file, otherwise this will contain a temporary pre-signed URL to download the file which should be used shortly after retrieving and should not be stored long-term as the URL will expire after a short timeframe.\n     */\n    url: string;\n    /**\n     * File size in bytes. Non-null if file upload status is \"COMPLETE\".\n     */\n    size: number | null;\n    /**\n     * MIME type of the file's content\n     */\n    contentType: string;\n    /**\n     * The tags of the file as an object of key/value pairs\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Metadata of the file as an object of key/value pairs. The values can be of any type.\n     */\n    metadata: {\n      [k: string]: any | null;\n    };\n    /**\n     * File creation timestamp in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * File last update timestamp in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Access policies configured for the file.\n     */\n    accessPolicies: (\"integrations\" | \"public_content\")[];\n    /**\n     * Whether the file was requested to be indexed for search or not.\n     */\n    index: boolean;\n    /**\n     * Status of the file. If the status is `upload_pending`, the file content has not been uploaded yet. The status will be set to `upload_completed` once the file content has been uploaded successfully.\n     *\n     * If the upload failed for any reason (e.g. exceeding the storage quota or the maximum file size limit) the status will be set to `upload_failed` and the reason for the failure will be available in the `failedStatusReason` field of the file.\n     *\n     * However, if the file has been uploaded and the `index` attribute was set to `true` on the file, the status will immediately transition to the `indexing_pending` status (the `upload_completed` status step will be skipped).\n     *\n     * Once the indexing is completed and the file is ready to be used for searching its status will be set to `indexing_completed`. If the indexing failed the status will be set to `indexing_failed` and the reason for the failure will be available in the `failedStatusReason` field.\n     */\n    status:\n      | \"upload_pending\"\n      | \"upload_failed\"\n      | \"upload_completed\"\n      | \"indexing_pending\"\n      | \"indexing_failed\"\n      | \"indexing_completed\";\n    /**\n     * If the file status is `upload_failed` or `indexing_failed` this will contain the reason of the failure.\n     */\n    failedStatusReason?: string;\n    /**\n     * File expiry timestamp in ISO 8601 format\n     */\n    expiresAt?: string;\n    owner: {\n      type: \"bot\" | \"integration\" | \"user\";\n      /**\n       * This field is present if `type` is \"user\" or \"bot\". If `type` is \"user\", this is the user ID. If `type` is \"bot\", this is the bot ID.\n       */\n      id?: string;\n      /**\n       * This field is present if the `type` is \"integration\". If `type` is \"integration\", this is the integration name.\n       */\n      name?: string;\n      /**\n       * This field is present if the `type` is \"integration\". If `type` is \"integration\", this is the integration instance alias.\n       */\n      alias?: string;\n    };\n    /**\n     * Indicates the indexing stack used to index this file. Present only when file has been successfully indexed. A value of \"v2\" denotes the latest stack, \"v1\" denotes the legacy stack.\n     */\n    indexingStack?: \"v1\" | \"v2\";\n  }[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetFileRequestHeaders {}\n\nexport interface GetFileRequestQuery {}\n\nexport interface GetFileRequestParams {\n  id: string;\n}\n\nexport interface GetFileRequestBody {}\n\nexport type GetFileInput = GetFileRequestBody & GetFileRequestHeaders & GetFileRequestQuery & GetFileRequestParams\n\nexport type GetFileRequest = {\n  headers: GetFileRequestHeaders;\n  query: GetFileRequestQuery;\n  params: GetFileRequestParams;\n  body: GetFileRequestBody;\n}\n\nexport const parseReq = (input: GetFileInput): GetFileRequest & { path: string } => {\n  return {\n    path: `/v1/files/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetFileResponse {\n  file: {\n    /**\n     * File ID\n     */\n    id: string;\n    /**\n     * The ID of the bot the file belongs to\n     */\n    botId: string;\n    /**\n     * Unique key for the file. Must be unique across the bot (and the integration, when applicable).\n     */\n    key: string;\n    /**\n     * URL to retrieve the file content. This URL will be ready to use once the file is uploaded.\n     *\n     * If the file has a `public_content` policy, this will contain the permanent public URL to retrieve the file, otherwise this will contain a temporary pre-signed URL to download the file which should be used shortly after retrieving and should not be stored long-term as the URL will expire after a short timeframe.\n     */\n    url: string;\n    /**\n     * File size in bytes. Non-null if file upload status is \"COMPLETE\".\n     */\n    size: number | null;\n    /**\n     * MIME type of the file's content\n     */\n    contentType: string;\n    /**\n     * The tags of the file as an object of key/value pairs\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Metadata of the file as an object of key/value pairs. The values can be of any type.\n     */\n    metadata: {\n      [k: string]: any;\n    };\n    /**\n     * File creation timestamp in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * File last update timestamp in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Access policies configured for the file.\n     */\n    accessPolicies: (\"integrations\" | \"public_content\")[];\n    /**\n     * Whether the file was requested to be indexed for search or not.\n     */\n    index: boolean;\n    /**\n     * Status of the file. If the status is `upload_pending`, the file content has not been uploaded yet. The status will be set to `upload_completed` once the file content has been uploaded successfully.\n     *\n     * If the upload failed for any reason (e.g. exceeding the storage quota or the maximum file size limit) the status will be set to `upload_failed` and the reason for the failure will be available in the `failedStatusReason` field of the file.\n     *\n     * However, if the file has been uploaded and the `index` attribute was set to `true` on the file, the status will immediately transition to the `indexing_pending` status (the `upload_completed` status step will be skipped).\n     *\n     * Once the indexing is completed and the file is ready to be used for searching its status will be set to `indexing_completed`. If the indexing failed the status will be set to `indexing_failed` and the reason for the failure will be available in the `failedStatusReason` field.\n     */\n    status:\n      | \"upload_pending\"\n      | \"upload_failed\"\n      | \"upload_completed\"\n      | \"indexing_pending\"\n      | \"indexing_failed\"\n      | \"indexing_completed\";\n    /**\n     * If the file status is `upload_failed` or `indexing_failed` this will contain the reason of the failure.\n     */\n    failedStatusReason?: string;\n    /**\n     * File expiry timestamp in ISO 8601 format\n     */\n    expiresAt?: string;\n    owner: {\n      type: \"bot\" | \"integration\" | \"user\";\n      /**\n       * This field is present if `type` is \"user\" or \"bot\". If `type` is \"user\", this is the user ID. If `type` is \"bot\", this is the bot ID.\n       */\n      id?: string;\n      /**\n       * This field is present if the `type` is \"integration\". If `type` is \"integration\", this is the integration name.\n       */\n      name?: string;\n      /**\n       * This field is present if the `type` is \"integration\". If `type` is \"integration\", this is the integration instance alias.\n       */\n      alias?: string;\n    };\n    /**\n     * Indicates the indexing stack used to index this file. Present only when file has been successfully indexed. A value of \"v2\" denotes the latest stack, \"v1\" denotes the legacy stack.\n     */\n    indexingStack?: \"v1\" | \"v2\";\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface UpdateFileMetadataRequestHeaders {}\n\nexport interface UpdateFileMetadataRequestQuery {}\n\nexport interface UpdateFileMetadataRequestParams {\n  id: string;\n}\n\nexport interface UpdateFileMetadataRequestBody {\n  /**\n   * Custom metadata for the file expressed as an object of key-value pairs. Omit to keep existing metadata intact. Any existing metadata keys not included will be preserved. New keys will be added. To delete a metadata key, set its value to `null`.\n   */\n  metadata?: {\n    [k: string]: any;\n  };\n  /**\n   * The file tags to update as an object of key-value pairs with `string` (text) values. Omit to keep existing tags intact. Any existing tags not included will be preserved. New tags will be added. To delete a tag, set its value to `null`.\n   */\n  tags?: {\n    [k: string]: string | null;\n  };\n  /**\n   * New access policies to set for the file. Omit to keep existing policies intact.\n   */\n  accessPolicies?: (\"integrations\" | \"public_content\")[];\n  /**\n   * Expiry timestamp in ISO 8601 format with UTC timezone. After expiry, the File will be deleted. Must be in the future. Cannot be more than 90 days from now. The value up to minutes is considered. Seconds and milliseconds are ignored. Omit to keep the existing expiry intact. Set to `null` to remove the expiry.\n   */\n  expiresAt?: string | null;\n}\n\nexport type UpdateFileMetadataInput = UpdateFileMetadataRequestBody & UpdateFileMetadataRequestHeaders & UpdateFileMetadataRequestQuery & UpdateFileMetadataRequestParams\n\nexport type UpdateFileMetadataRequest = {\n  headers: UpdateFileMetadataRequestHeaders;\n  query: UpdateFileMetadataRequestQuery;\n  params: UpdateFileMetadataRequestParams;\n  body: UpdateFileMetadataRequestBody;\n}\n\nexport const parseReq = (input: UpdateFileMetadataInput): UpdateFileMetadataRequest & { path: string } => {\n  return {\n    path: `/v1/files/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: { 'metadata': input['metadata'], 'tags': input['tags'], 'accessPolicies': input['accessPolicies'], 'expiresAt': input['expiresAt'] },\n  }\n}\n\nexport interface UpdateFileMetadataResponse {\n  file: {\n    /**\n     * File ID\n     */\n    id: string;\n    /**\n     * The ID of the bot the file belongs to\n     */\n    botId: string;\n    /**\n     * Unique key for the file. Must be unique across the bot (and the integration, when applicable).\n     */\n    key: string;\n    /**\n     * URL to retrieve the file content. This URL will be ready to use once the file is uploaded.\n     *\n     * If the file has a `public_content` policy, this will contain the permanent public URL to retrieve the file, otherwise this will contain a temporary pre-signed URL to download the file which should be used shortly after retrieving and should not be stored long-term as the URL will expire after a short timeframe.\n     */\n    url: string;\n    /**\n     * File size in bytes. Non-null if file upload status is \"COMPLETE\".\n     */\n    size: number | null;\n    /**\n     * MIME type of the file's content\n     */\n    contentType: string;\n    /**\n     * The tags of the file as an object of key/value pairs\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Metadata of the file as an object of key/value pairs. The values can be of any type.\n     */\n    metadata: {\n      [k: string]: any;\n    };\n    /**\n     * File creation timestamp in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * File last update timestamp in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Access policies configured for the file.\n     */\n    accessPolicies: (\"integrations\" | \"public_content\")[];\n    /**\n     * Whether the file was requested to be indexed for search or not.\n     */\n    index: boolean;\n    /**\n     * Status of the file. If the status is `upload_pending`, the file content has not been uploaded yet. The status will be set to `upload_completed` once the file content has been uploaded successfully.\n     *\n     * If the upload failed for any reason (e.g. exceeding the storage quota or the maximum file size limit) the status will be set to `upload_failed` and the reason for the failure will be available in the `failedStatusReason` field of the file.\n     *\n     * However, if the file has been uploaded and the `index` attribute was set to `true` on the file, the status will immediately transition to the `indexing_pending` status (the `upload_completed` status step will be skipped).\n     *\n     * Once the indexing is completed and the file is ready to be used for searching its status will be set to `indexing_completed`. If the indexing failed the status will be set to `indexing_failed` and the reason for the failure will be available in the `failedStatusReason` field.\n     */\n    status:\n      | \"upload_pending\"\n      | \"upload_failed\"\n      | \"upload_completed\"\n      | \"indexing_pending\"\n      | \"indexing_failed\"\n      | \"indexing_completed\";\n    /**\n     * If the file status is `upload_failed` or `indexing_failed` this will contain the reason of the failure.\n     */\n    failedStatusReason?: string;\n    /**\n     * File expiry timestamp in ISO 8601 format\n     */\n    expiresAt?: string;\n    owner: {\n      type: \"bot\" | \"integration\" | \"user\";\n      /**\n       * This field is present if `type` is \"user\" or \"bot\". If `type` is \"user\", this is the user ID. If `type` is \"bot\", this is the bot ID.\n       */\n      id?: string;\n      /**\n       * This field is present if the `type` is \"integration\". If `type` is \"integration\", this is the integration name.\n       */\n      name?: string;\n      /**\n       * This field is present if the `type` is \"integration\". If `type` is \"integration\", this is the integration instance alias.\n       */\n      alias?: string;\n    };\n    /**\n     * Indicates the indexing stack used to index this file. Present only when file has been successfully indexed. A value of \"v2\" denotes the latest stack, \"v1\" denotes the legacy stack.\n     */\n    indexingStack?: \"v1\" | \"v2\";\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CopyFileRequestHeaders {\n  \"x-destination-bot-id\"?: string;\n}\n\nexport interface CopyFileRequestQuery {}\n\nexport interface CopyFileRequestParams {\n  idOrKey: string;\n  destinationKey: string;\n}\n\nexport interface CopyFileRequestBody {\n  /**\n   * Set to `true` to overwrite the file if it already exists, otherwise an error will be returned.\n   *\n   * When this endpoint is called using bot authentication, the existing file must have been originally created by the same bot making the file copy request in order to overwrite it.\n   */\n  overwrite?: boolean;\n}\n\nexport type CopyFileInput = CopyFileRequestBody & CopyFileRequestHeaders & CopyFileRequestQuery & CopyFileRequestParams\n\nexport type CopyFileRequest = {\n  headers: CopyFileRequestHeaders;\n  query: CopyFileRequestQuery;\n  params: CopyFileRequestParams;\n  body: CopyFileRequestBody;\n}\n\nexport const parseReq = (input: CopyFileInput): CopyFileRequest & { path: string } => {\n  return {\n    path: `/v1/files/${encodeURIComponent(input['idOrKey'])}/${encodeURIComponent(input['destinationKey'])}`,\n    headers: { 'x-destination-bot-id': input['x-destination-bot-id'] },\n    query: {  },\n    params: { 'idOrKey': input['idOrKey'], 'destinationKey': input['destinationKey'] },\n    body: { 'overwrite': input['overwrite'] },\n  }\n}\n\nexport interface CopyFileResponse {\n  file: {\n    /**\n     * File ID\n     */\n    id: string;\n    /**\n     * The ID of the bot the file belongs to\n     */\n    botId: string;\n    /**\n     * Unique key for the file. Must be unique across the bot (and the integration, when applicable).\n     */\n    key: string;\n    /**\n     * URL to retrieve the file content. This URL will be ready to use once the file is uploaded.\n     *\n     * If the file has a `public_content` policy, this will contain the permanent public URL to retrieve the file, otherwise this will contain a temporary pre-signed URL to download the file which should be used shortly after retrieving and should not be stored long-term as the URL will expire after a short timeframe.\n     */\n    url: string;\n    /**\n     * File size in bytes. Non-null if file upload status is \"COMPLETE\".\n     */\n    size: number | null;\n    /**\n     * MIME type of the file's content\n     */\n    contentType: string;\n    /**\n     * The tags of the file as an object of key/value pairs\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Metadata of the file as an object of key/value pairs. The values can be of any type.\n     */\n    metadata: {\n      [k: string]: any;\n    };\n    /**\n     * File creation timestamp in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * File last update timestamp in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Access policies configured for the file.\n     */\n    accessPolicies: (\"integrations\" | \"public_content\")[];\n    /**\n     * Whether the file was requested to be indexed for search or not.\n     */\n    index: boolean;\n    /**\n     * Status of the file. If the status is `upload_pending`, the file content has not been uploaded yet. The status will be set to `upload_completed` once the file content has been uploaded successfully.\n     *\n     * If the upload failed for any reason (e.g. exceeding the storage quota or the maximum file size limit) the status will be set to `upload_failed` and the reason for the failure will be available in the `failedStatusReason` field of the file.\n     *\n     * However, if the file has been uploaded and the `index` attribute was set to `true` on the file, the status will immediately transition to the `indexing_pending` status (the `upload_completed` status step will be skipped).\n     *\n     * Once the indexing is completed and the file is ready to be used for searching its status will be set to `indexing_completed`. If the indexing failed the status will be set to `indexing_failed` and the reason for the failure will be available in the `failedStatusReason` field.\n     */\n    status:\n      | \"upload_pending\"\n      | \"upload_failed\"\n      | \"upload_completed\"\n      | \"indexing_pending\"\n      | \"indexing_failed\"\n      | \"indexing_completed\";\n    /**\n     * If the file status is `upload_failed` or `indexing_failed` this will contain the reason of the failure.\n     */\n    failedStatusReason?: string;\n    /**\n     * File expiry timestamp in ISO 8601 format\n     */\n    expiresAt?: string;\n    owner: {\n      type: \"bot\" | \"integration\" | \"user\";\n      /**\n       * This field is present if `type` is \"user\" or \"bot\". If `type` is \"user\", this is the user ID. If `type` is \"bot\", this is the bot ID.\n       */\n      id?: string;\n      /**\n       * This field is present if the `type` is \"integration\". If `type` is \"integration\", this is the integration name.\n       */\n      name?: string;\n      /**\n       * This field is present if the `type` is \"integration\". If `type` is \"integration\", this is the integration instance alias.\n       */\n      alias?: string;\n    };\n    /**\n     * Indicates the indexing stack used to index this file. Present only when file has been successfully indexed. A value of \"v2\" denotes the latest stack, \"v1\" denotes the legacy stack.\n     */\n    indexingStack?: \"v1\" | \"v2\";\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface SearchFilesRequestHeaders {}\n\nexport interface SearchFilesRequestQuery {\n  tags?: any;\n  query: string;\n  contextDepth?: number;\n  limit?: number;\n  consolidate?: boolean;\n  includeBreadcrumb?: boolean;\n  withContext?: boolean;\n}\n\nexport interface SearchFilesRequestParams {}\n\nexport interface SearchFilesRequestBody {}\n\nexport type SearchFilesInput = SearchFilesRequestBody & SearchFilesRequestHeaders & SearchFilesRequestQuery & SearchFilesRequestParams\n\nexport type SearchFilesRequest = {\n  headers: SearchFilesRequestHeaders;\n  query: SearchFilesRequestQuery;\n  params: SearchFilesRequestParams;\n  body: SearchFilesRequestBody;\n}\n\nexport const parseReq = (input: SearchFilesInput): SearchFilesRequest & { path: string } => {\n  return {\n    path: `/v1/files/search`,\n    headers: {  },\n    query: { 'tags': input['tags'], 'query': input['query'], 'contextDepth': input['contextDepth'], 'limit': input['limit'], 'consolidate': input['consolidate'], 'includeBreadcrumb': input['includeBreadcrumb'], 'withContext': input['withContext'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface SearchFilesResponse {\n  passages: {\n    /**\n     * The content of the matching passage in the file including surrounding context, if any.\n     */\n    content: string;\n    /**\n     * The score indicating the similarity of the passage to the query. A higher score indicates higher similarity.\n     */\n    score: number;\n    /**\n     * The passage metadata.\n     */\n    meta: {\n      /**\n       * The type of passage\n       */\n      type?: \"chunk\" | \"summary\" | \"consolidated\" | \"image\";\n      /**\n       * The subtype of passage, if available.\n       */\n      subtype?: \"title\" | \"subtitle\" | \"paragraph\" | \"blockquote\" | \"list\" | \"table\" | \"code\" | \"image\" | \"page\";\n      /**\n       * Page number the passage is located on. Only applicable if the passage was extracted from a PDF file.\n       */\n      pageNumber?: number;\n      /**\n       * Position number of the passage in the file relative to the other passages, if available. Can be used to know the order of passages within a file.\n       */\n      position?: number;\n      /**\n       * The URL of the source file for the vector, if applicable (e.g. for image vectors).\n       */\n      sourceUrl?: string;\n    };\n    file: {\n      /**\n       * File ID\n       */\n      id: string;\n      /**\n       * Unique key for the file. Must be unique across the bot (and the integration, when applicable).\n       */\n      key: string;\n      /**\n       * MIME type of the file's content\n       */\n      contentType: string;\n      /**\n       * Metadata of the file as an object of key-value pairs.\n       */\n      metadata: {\n        [k: string]: any | null;\n      };\n      /**\n       * The tags of the file as an object of key-value pairs.\n       */\n      tags: {\n        [k: string]: string;\n      };\n      /**\n       * File creation timestamp in ISO 8601 format\n       */\n      createdAt: string;\n      /**\n       * File last update timestamp in ISO 8601 format\n       */\n      updatedAt: string;\n    };\n    /**\n     * Surrounding passages including the current passage, based on the requested `contextDepth`. Only returned if the `withContext` parameter is set to `true`. Not supported when using the `consolidate` option.\n     */\n    context?: {\n      /**\n       * The ID of the vector that the context passage belongs to. Omitted for breadcrumbs.\n       */\n      id?: string;\n      text: string;\n      /**\n       * Position of the context passage relative to the current passage. Negative for preceding passages, positive for subsequent, ommited for breadcrumbs.\n       */\n      offset?: number;\n      /**\n       * The type of context passage\n       */\n      type: \"preceding\" | \"subsequent\" | \"current\" | \"breadcrumb\";\n    }[];\n  }[];\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListFilePassagesRequestHeaders {}\n\nexport interface ListFilePassagesRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n  limit?: number;\n}\n\nexport interface ListFilePassagesRequestParams {\n  id: string;\n}\n\nexport interface ListFilePassagesRequestBody {}\n\nexport type ListFilePassagesInput = ListFilePassagesRequestBody & ListFilePassagesRequestHeaders & ListFilePassagesRequestQuery & ListFilePassagesRequestParams\n\nexport type ListFilePassagesRequest = {\n  headers: ListFilePassagesRequestHeaders;\n  query: ListFilePassagesRequestQuery;\n  params: ListFilePassagesRequestParams;\n  body: ListFilePassagesRequestBody;\n}\n\nexport const parseReq = (input: ListFilePassagesInput): ListFilePassagesRequest & { path: string } => {\n  return {\n    path: `/v1/files/${encodeURIComponent(input['id'])}/passages`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'], 'limit': input['limit'] },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface ListFilePassagesResponse {\n  passages: {\n    /**\n     * Passage ID\n     */\n    id: string;\n    /**\n     * The content of the passage.\n     */\n    content: string;\n    /**\n     * The passage metadata.\n     */\n    meta: {\n      /**\n       * The type of passage\n       */\n      type?: \"chunk\" | \"summary\" | \"consolidated\" | \"image\";\n      /**\n       * The subtype of passage, if available.\n       */\n      subtype?: \"title\" | \"subtitle\" | \"paragraph\" | \"blockquote\" | \"list\" | \"table\" | \"code\" | \"image\" | \"page\";\n      /**\n       * Page number the passage is located on. Only applicable if the passage was extracted from a PDF file.\n       */\n      pageNumber?: number;\n      /**\n       * Position number of the passage in the file relative to the other passages, if available. Can be used to know the order of passages within a file.\n       */\n      position?: number;\n      /**\n       * The URL of the source file for the vector, if applicable (e.g. for image vectors).\n       */\n      sourceUrl?: string;\n    };\n  }[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface SetFilePassagesRequestHeaders {}\n\nexport interface SetFilePassagesRequestQuery {}\n\nexport interface SetFilePassagesRequestParams {\n  id: string;\n}\n\nexport interface SetFilePassagesRequestBody {\n  /**\n   * Note: The passages should appear in the array in the same order as they appear in the original document.\n   */\n  passages: {\n    /**\n     * The content of the passage, supports Markdown formatting.\n     */\n    content: string;\n    /**\n     * The type should match the Markdown format used for the passage content.\n     */\n    type?: \"title\" | \"subtitle\" | \"paragraph\" | \"blockquote\" | \"list\" | \"table\" | \"code\" | \"image\";\n    pageNumber?: number;\n  }[];\n}\n\nexport type SetFilePassagesInput = SetFilePassagesRequestBody & SetFilePassagesRequestHeaders & SetFilePassagesRequestQuery & SetFilePassagesRequestParams\n\nexport type SetFilePassagesRequest = {\n  headers: SetFilePassagesRequestHeaders;\n  query: SetFilePassagesRequestQuery;\n  params: SetFilePassagesRequestParams;\n  body: SetFilePassagesRequestBody;\n}\n\nexport const parseReq = (input: SetFilePassagesInput): SetFilePassagesRequest & { path: string } => {\n  return {\n    path: `/v1/files/${encodeURIComponent(input['id'])}/passages`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: { 'passages': input['passages'] },\n  }\n}\n\nexport interface SetFilePassagesResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListFileTagsRequestHeaders {}\n\nexport interface ListFileTagsRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n}\n\nexport interface ListFileTagsRequestParams {}\n\nexport interface ListFileTagsRequestBody {}\n\nexport type ListFileTagsInput = ListFileTagsRequestBody & ListFileTagsRequestHeaders & ListFileTagsRequestQuery & ListFileTagsRequestParams\n\nexport type ListFileTagsRequest = {\n  headers: ListFileTagsRequestHeaders;\n  query: ListFileTagsRequestQuery;\n  params: ListFileTagsRequestParams;\n  body: ListFileTagsRequestBody;\n}\n\nexport const parseReq = (input: ListFileTagsInput): ListFileTagsRequest & { path: string } => {\n  return {\n    path: `/v1/files/tags`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListFileTagsResponse {\n  tags: string[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListFileTagValuesRequestHeaders {}\n\nexport interface ListFileTagValuesRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n}\n\nexport interface ListFileTagValuesRequestParams {\n  tag: string;\n}\n\nexport interface ListFileTagValuesRequestBody {}\n\nexport type ListFileTagValuesInput = ListFileTagValuesRequestBody & ListFileTagValuesRequestHeaders & ListFileTagValuesRequestQuery & ListFileTagValuesRequestParams\n\nexport type ListFileTagValuesRequest = {\n  headers: ListFileTagValuesRequestHeaders;\n  query: ListFileTagValuesRequestQuery;\n  params: ListFileTagValuesRequestParams;\n  body: ListFileTagValuesRequestBody;\n}\n\nexport const parseReq = (input: ListFileTagValuesInput): ListFileTagValuesRequest & { path: string } => {\n  return {\n    path: `/v1/files/tags/${encodeURIComponent(input['tag'])}/values`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'] },\n    params: { 'tag': input['tag'] },\n    body: {  },\n  }\n}\n\nexport interface ListFileTagValuesResponse {\n  values: string[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CreateKnowledgeBaseRequestHeaders {}\n\nexport interface CreateKnowledgeBaseRequestQuery {}\n\nexport interface CreateKnowledgeBaseRequestParams {}\n\nexport interface CreateKnowledgeBaseRequestBody {\n  /**\n   * Name of the knowledge base.\n   */\n  name: string;\n  tags?: {\n    [k: string]: string;\n  };\n}\n\nexport type CreateKnowledgeBaseInput = CreateKnowledgeBaseRequestBody & CreateKnowledgeBaseRequestHeaders & CreateKnowledgeBaseRequestQuery & CreateKnowledgeBaseRequestParams\n\nexport type CreateKnowledgeBaseRequest = {\n  headers: CreateKnowledgeBaseRequestHeaders;\n  query: CreateKnowledgeBaseRequestQuery;\n  params: CreateKnowledgeBaseRequestParams;\n  body: CreateKnowledgeBaseRequestBody;\n}\n\nexport const parseReq = (input: CreateKnowledgeBaseInput): CreateKnowledgeBaseRequest & { path: string } => {\n  return {\n    path: `/v1/files/knowledge-bases`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'name': input['name'], 'tags': input['tags'] },\n  }\n}\n\nexport interface CreateKnowledgeBaseResponse {\n  knowledgeBase: {\n    /**\n     * Knowledge base ID\n     */\n    id: string;\n    /**\n     * Name of the knowledge base.\n     */\n    name: string;\n    tags: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface DeleteKnowledgeBaseRequestHeaders {}\n\nexport interface DeleteKnowledgeBaseRequestQuery {}\n\nexport interface DeleteKnowledgeBaseRequestParams {\n  id: string;\n}\n\nexport interface DeleteKnowledgeBaseRequestBody {}\n\nexport type DeleteKnowledgeBaseInput = DeleteKnowledgeBaseRequestBody & DeleteKnowledgeBaseRequestHeaders & DeleteKnowledgeBaseRequestQuery & DeleteKnowledgeBaseRequestParams\n\nexport type DeleteKnowledgeBaseRequest = {\n  headers: DeleteKnowledgeBaseRequestHeaders;\n  query: DeleteKnowledgeBaseRequestQuery;\n  params: DeleteKnowledgeBaseRequestParams;\n  body: DeleteKnowledgeBaseRequestBody;\n}\n\nexport const parseReq = (input: DeleteKnowledgeBaseInput): DeleteKnowledgeBaseRequest & { path: string } => {\n  return {\n    path: `/v1/files/knowledge-bases/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface DeleteKnowledgeBaseResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface UpdateKnowledgeBaseRequestHeaders {}\n\nexport interface UpdateKnowledgeBaseRequestQuery {}\n\nexport interface UpdateKnowledgeBaseRequestParams {\n  id: string;\n}\n\nexport interface UpdateKnowledgeBaseRequestBody {\n  /**\n   * New name of the knowledge base.\n   */\n  name: string;\n  /**\n   * The knowledge base tags to update as an object of key-value pairs with `string` (text) values. Omit to keep existing tags intact. Any existing tags not included will be preserved. New tags will be added. To delete a tag, set its value to `null`.\n   */\n  tags?: {\n    [k: string]: string | null;\n  };\n}\n\nexport type UpdateKnowledgeBaseInput = UpdateKnowledgeBaseRequestBody & UpdateKnowledgeBaseRequestHeaders & UpdateKnowledgeBaseRequestQuery & UpdateKnowledgeBaseRequestParams\n\nexport type UpdateKnowledgeBaseRequest = {\n  headers: UpdateKnowledgeBaseRequestHeaders;\n  query: UpdateKnowledgeBaseRequestQuery;\n  params: UpdateKnowledgeBaseRequestParams;\n  body: UpdateKnowledgeBaseRequestBody;\n}\n\nexport const parseReq = (input: UpdateKnowledgeBaseInput): UpdateKnowledgeBaseRequest & { path: string } => {\n  return {\n    path: `/v1/files/knowledge-bases/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: { 'name': input['name'], 'tags': input['tags'] },\n  }\n}\n\nexport interface UpdateKnowledgeBaseResponse {\n  knowledgeBase: {\n    /**\n     * Knowledge base ID\n     */\n    id: string;\n    /**\n     * Name of the knowledge base.\n     */\n    name: string;\n    tags: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListKnowledgeBasesRequestHeaders {}\n\nexport interface ListKnowledgeBasesRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n  tags?: any;\n}\n\nexport interface ListKnowledgeBasesRequestParams {}\n\nexport interface ListKnowledgeBasesRequestBody {}\n\nexport type ListKnowledgeBasesInput = ListKnowledgeBasesRequestBody & ListKnowledgeBasesRequestHeaders & ListKnowledgeBasesRequestQuery & ListKnowledgeBasesRequestParams\n\nexport type ListKnowledgeBasesRequest = {\n  headers: ListKnowledgeBasesRequestHeaders;\n  query: ListKnowledgeBasesRequestQuery;\n  params: ListKnowledgeBasesRequestParams;\n  body: ListKnowledgeBasesRequestBody;\n}\n\nexport const parseReq = (input: ListKnowledgeBasesInput): ListKnowledgeBasesRequest & { path: string } => {\n  return {\n    path: `/v1/files/knowledge-bases`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'], 'tags': input['tags'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListKnowledgeBasesResponse {\n  knowledgeBases: {\n    /**\n     * Knowledge base ID\n     */\n    id: string;\n    /**\n     * Name of the knowledge base.\n     */\n    name: string;\n    /**\n     * Knowledge base creation timestamp in ISO 8601 format\n     */\n    createdAt: string;\n    tags: {\n      [k: string]: string;\n    };\n  }[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nimport axios, { AxiosInstance } from 'axios'\nimport { errorFrom } from './errors'\nimport { toAxiosRequest } from './to-axios'\nimport * as upsertFile from './operations/upsertFile'\nimport * as deleteFile from './operations/deleteFile'\nimport * as listFiles from './operations/listFiles'\nimport * as getFile from './operations/getFile'\nimport * as updateFileMetadata from './operations/updateFileMetadata'\nimport * as copyFile from './operations/copyFile'\nimport * as searchFiles from './operations/searchFiles'\nimport * as listFilePassages from './operations/listFilePassages'\nimport * as setFilePassages from './operations/setFilePassages'\nimport * as listFileTags from './operations/listFileTags'\nimport * as listFileTagValues from './operations/listFileTagValues'\nimport * as createKnowledgeBase from './operations/createKnowledgeBase'\nimport * as deleteKnowledgeBase from './operations/deleteKnowledgeBase'\nimport * as updateKnowledgeBase from './operations/updateKnowledgeBase'\nimport * as listKnowledgeBases from './operations/listKnowledgeBases'\n\nexport * from './models'\n\nexport * as upsertFile from './operations/upsertFile'\nexport * as deleteFile from './operations/deleteFile'\nexport * as listFiles from './operations/listFiles'\nexport * as getFile from './operations/getFile'\nexport * as updateFileMetadata from './operations/updateFileMetadata'\nexport * as copyFile from './operations/copyFile'\nexport * as searchFiles from './operations/searchFiles'\nexport * as listFilePassages from './operations/listFilePassages'\nexport * as setFilePassages from './operations/setFilePassages'\nexport * as listFileTags from './operations/listFileTags'\nexport * as listFileTagValues from './operations/listFileTagValues'\nexport * as createKnowledgeBase from './operations/createKnowledgeBase'\nexport * as deleteKnowledgeBase from './operations/deleteKnowledgeBase'\nexport * as updateKnowledgeBase from './operations/updateKnowledgeBase'\nexport * as listKnowledgeBases from './operations/listKnowledgeBases'\n\nexport const apiVersion = '1.108.0'\n\nexport type ClientProps = {\n  toAxiosRequest: typeof toAxiosRequest\n  toApiError: typeof toApiError\n}\n\nexport class Client {\n\n  public constructor(private axiosInstance: AxiosInstance, private props: Partial<ClientProps> = {}) {}\n\n  public readonly upsertFile = async (input: upsertFile.UpsertFileInput): Promise<upsertFile.UpsertFileResponse> => {\n    const { path, headers, query, body } = upsertFile.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"put\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<upsertFile.UpsertFileResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly deleteFile = async (input: deleteFile.DeleteFileInput): Promise<deleteFile.DeleteFileResponse> => {\n    const { path, headers, query, body } = deleteFile.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"delete\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<deleteFile.DeleteFileResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listFiles = async (input: listFiles.ListFilesInput): Promise<listFiles.ListFilesResponse> => {\n    const { path, headers, query, body } = listFiles.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listFiles.ListFilesResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getFile = async (input: getFile.GetFileInput): Promise<getFile.GetFileResponse> => {\n    const { path, headers, query, body } = getFile.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getFile.GetFileResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly updateFileMetadata = async (input: updateFileMetadata.UpdateFileMetadataInput): Promise<updateFileMetadata.UpdateFileMetadataResponse> => {\n    const { path, headers, query, body } = updateFileMetadata.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"put\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<updateFileMetadata.UpdateFileMetadataResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly copyFile = async (input: copyFile.CopyFileInput): Promise<copyFile.CopyFileResponse> => {\n    const { path, headers, query, body } = copyFile.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<copyFile.CopyFileResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly searchFiles = async (input: searchFiles.SearchFilesInput): Promise<searchFiles.SearchFilesResponse> => {\n    const { path, headers, query, body } = searchFiles.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<searchFiles.SearchFilesResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listFilePassages = async (input: listFilePassages.ListFilePassagesInput): Promise<listFilePassages.ListFilePassagesResponse> => {\n    const { path, headers, query, body } = listFilePassages.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listFilePassages.ListFilePassagesResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly setFilePassages = async (input: setFilePassages.SetFilePassagesInput): Promise<setFilePassages.SetFilePassagesResponse> => {\n    const { path, headers, query, body } = setFilePassages.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"put\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<setFilePassages.SetFilePassagesResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listFileTags = async (input: listFileTags.ListFileTagsInput): Promise<listFileTags.ListFileTagsResponse> => {\n    const { path, headers, query, body } = listFileTags.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listFileTags.ListFileTagsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listFileTagValues = async (input: listFileTagValues.ListFileTagValuesInput): Promise<listFileTagValues.ListFileTagValuesResponse> => {\n    const { path, headers, query, body } = listFileTagValues.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listFileTagValues.ListFileTagValuesResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly createKnowledgeBase = async (input: createKnowledgeBase.CreateKnowledgeBaseInput): Promise<createKnowledgeBase.CreateKnowledgeBaseResponse> => {\n    const { path, headers, query, body } = createKnowledgeBase.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<createKnowledgeBase.CreateKnowledgeBaseResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly deleteKnowledgeBase = async (input: deleteKnowledgeBase.DeleteKnowledgeBaseInput): Promise<deleteKnowledgeBase.DeleteKnowledgeBaseResponse> => {\n    const { path, headers, query, body } = deleteKnowledgeBase.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"delete\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<deleteKnowledgeBase.DeleteKnowledgeBaseResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly updateKnowledgeBase = async (input: updateKnowledgeBase.UpdateKnowledgeBaseInput): Promise<updateKnowledgeBase.UpdateKnowledgeBaseResponse> => {\n    const { path, headers, query, body } = updateKnowledgeBase.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"put\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<updateKnowledgeBase.UpdateKnowledgeBaseResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listKnowledgeBases = async (input: listKnowledgeBases.ListKnowledgeBasesInput): Promise<listKnowledgeBases.ListKnowledgeBasesResponse> => {\n    const { path, headers, query, body } = listKnowledgeBases.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listKnowledgeBases.ListKnowledgeBasesResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n}\n\n// maps axios error to api error type\nfunction toApiError(err: unknown): Error {\n  if (axios.isAxiosError(err) && err.response?.data) {\n    return errorFrom(err.response.data)\n  }\n  return errorFrom(err)\n}\n\n", "import type * as types from '../types'\n\nexport const MAX_FILE_REF_BYTES = 1 << 30\n\nexport type ExactFileRef = {\n  id: string\n  size: number\n  contentType?: string\n  filename?: string\n  checksum: string\n}\n\nexport type DownloadFileRefInput = {\n  fileRef: ExactFileRef\n  signal?: AbortSignal\n}\n\nexport type DownloadFileRefOutput = {\n  stream: ReadableStream<Uint8Array>\n  fileRef: ExactFileRef\n}\n\nexport class DownloadFileRefError extends Error {\n  public constructor(\n    public readonly status: number,\n    message: string,\n    public readonly errorCode?: string,\n    public readonly metadata?: Record<string, unknown>,\n  ) {\n    super(message)\n    this.name = 'DownloadFileRefError'\n  }\n}\n\nconst utf8Bytes = (value: string): number => new TextEncoder().encode(value).byteLength\n\nconst appendHeaders = (target: Headers, source: types.Headers): void => {\n  for (const [name, value] of Object.entries(source)) {\n    if (Array.isArray(value)) {\n      for (const item of value) target.append(name, item)\n    } else {\n      target.set(name, value)\n    }\n  }\n}\n\nconst validateFileRef = (fileRef: ExactFileRef): void => {\n  if (\n    typeof fileRef.id !== 'string'\n    || fileRef.id.length === 0\n    || utf8Bytes(fileRef.id) > 1024\n    || !Number.isSafeInteger(fileRef.size)\n    || fileRef.size < 0\n    || fileRef.size > MAX_FILE_REF_BYTES\n    || typeof fileRef.checksum !== 'string'\n    || fileRef.checksum.length === 0\n    || utf8Bytes(fileRef.checksum) > 128\n    || (\n      fileRef.contentType !== undefined\n      && (typeof fileRef.contentType !== 'string' || utf8Bytes(fileRef.contentType) > 255)\n    )\n    || (\n      fileRef.filename !== undefined\n      && (typeof fileRef.filename !== 'string' || utf8Bytes(fileRef.filename) > 1024)\n    )\n  ) {\n    throw new TypeError('fileRef must contain a valid immutable file generation')\n  }\n}\n\nconst readBoundedError = async (response: Response): Promise<unknown> => {\n  const limit = 64 * 1024\n  const reader = response.body?.getReader()\n  if (!reader) return new Error(`Request failed with status ${response.status} and empty body`)\n\n  const chunks: Uint8Array[] = []\n  let size = 0\n  for (;;) {\n    const { done, value } = await reader.read()\n    if (done) break\n    if (!value) continue\n    size += value.byteLength\n    if (size > limit) {\n      await reader.cancel()\n      return new Error(`Request failed with status ${response.status} and an oversized error body`)\n    }\n    chunks.push(value)\n  }\n\n  const body = new Uint8Array(size)\n  let offset = 0\n  for (const chunk of chunks) {\n    body.set(chunk, offset)\n    offset += chunk.byteLength\n  }\n  const text = new TextDecoder().decode(body)\n  if (text.length === 0) return new Error(`Request failed with status ${response.status} and empty body`)\n  try {\n    return JSON.parse(text)\n  } catch {\n    return new Error(`Request failed with status ${response.status}`)\n  }\n}\n\nconst emptyStream = (): ReadableStream<Uint8Array> =>\n  new ReadableStream<Uint8Array>({\n    start(controller) {\n      controller.close()\n    },\n  })\n\n/**\n * Opens the exact immutable file generation as a raw byte stream.\n *\n * The response body is never converted to JSON, base64, an ArrayBuffer, or a\n * Buffer. The caller owns the returned stream and may pipe it directly to a\n * provider request. Supplying an AbortSignal is the supported way to stop an\n * in-flight transfer.\n */\nexport const downloadFileRef = async (\n  config: Readonly<types.ClientConfig>,\n  { fileRef, signal }: DownloadFileRefInput,\n  fetchImpl: typeof fetch = fetch\n): Promise<DownloadFileRefOutput> => {\n  validateFileRef(fileRef)\n\n  const url = new URL('/v1/files/download-ref', config.apiUrl)\n  url.searchParams.set('id', fileRef.id)\n  url.searchParams.set('size', String(fileRef.size))\n  if (fileRef.contentType !== undefined) url.searchParams.set('contentType', fileRef.contentType)\n  if (fileRef.filename !== undefined) url.searchParams.set('filename', fileRef.filename)\n  url.searchParams.set('checksum', fileRef.checksum)\n  if (utf8Bytes(url.search.slice(1)) > 4 * 1024) {\n    throw new TypeError('fileRef query exceeds the 4 KiB endpoint limit')\n  }\n\n  const headers = new Headers()\n  appendHeaders(headers, config.headers)\n  const response = await fetchImpl(url, {\n    method: 'GET',\n    headers,\n    credentials: config.withCredentials ? 'include' : 'same-origin',\n    signal,\n  })\n  if (!response.ok) {\n    const payload = await readBoundedError(response)\n    const envelope =\n      typeof payload === 'object' && payload !== null\n        ? payload as { message?: unknown; metadata?: unknown }\n        : undefined\n    const metadata =\n      typeof envelope?.metadata === 'object'\n      && envelope.metadata !== null\n      && !Array.isArray(envelope.metadata)\n        ? envelope.metadata as Record<string, unknown>\n        : undefined\n    throw new DownloadFileRefError(\n      response.status,\n      typeof envelope?.message === 'string'\n        ? envelope.message\n        : `Request failed with status ${response.status}`,\n      typeof metadata?.errorCode === 'string' ? metadata.errorCode : undefined,\n      metadata,\n    )\n  }\n\n  const declaredSize = response.headers.get('content-length')\n  if (\n    declaredSize !== null\n    && (!/^\\d+$/.test(declaredSize) || Number(declaredSize) !== fileRef.size)\n  ) {\n    await response.body?.cancel()\n    throw new Error('fileRef response content-length does not match the immutable generation')\n  }\n\n  return {\n    stream: response.body ?? emptyStream(),\n    fileRef: { ...fileRef },\n  }\n}\n", "import axios, { AxiosError } from 'axios'\nimport * as common from '../common'\nimport * as errors from '../errors'\nimport { UpsertFileInput, UpsertFileResponse } from '../gen/files/operations/upsertFile'\n\nexport type UploadFileInput = common.types.Simplify<\n  Omit<UpsertFileInput, 'size'> & {\n    content?: ArrayBuffer | Buffer | Blob | Uint8Array | string\n    url?: string\n  }\n>\n\nexport type UploadFileOutput = UpsertFileResponse\n\ntype UploadFileClient = {\n  upsertFile: (input: UpsertFileInput) => Promise<UpsertFileResponse>\n  config?: {\n    apiUrl: string\n    headers: Record<string, string | string[]>\n  }\n}\n\nconst sameOriginHeaders = (client: UploadFileClient, uploadUrl: string): Record<string, string | string[]> => {\n  if (!client.config) return {}\n  try {\n    if (new URL(uploadUrl).origin === new URL(client.config.apiUrl).origin) {\n      return client.config.headers\n    }\n  } catch {\n    // A malformed URL is reported by axios below. Never forward credentials\n    // when the destination cannot be proven to share the API origin.\n  }\n  return {}\n}\n\nexport const upload = async (\n  client: UploadFileClient,\n  {\n    key,\n    index,\n    tags,\n    contentType,\n    accessPolicies,\n    content,\n    url,\n    indexing,\n    expiresAt,\n    metadata,\n    publicContentImmediatelyAccessible,\n  }: UploadFileInput\n): Promise<UploadFileOutput> => {\n  if (url && content) {\n    throw new errors.UploadFileError('Cannot provide both content and URL, please provide only one of them')\n  }\n\n  if (url) {\n    content = await axios\n      .get(url, { responseType: 'arraybuffer' })\n      .then((res) => res.data)\n      .catch((err) => {\n        throw new errors.UploadFileError(`Failed to download file from provided URL: ${err.message}`, err)\n      })\n  }\n\n  if (!content) {\n    throw new errors.UploadFileError('No content was provided for the file')\n  }\n\n  let buffer: ArrayBuffer | Buffer | Blob | Uint8Array\n  let size: number\n\n  if (typeof content === 'string') {\n    const encoder = new TextEncoder()\n    const uint8Array = encoder.encode(content)\n    // Uint8Array is supported by both Node.js and browsers. Buffer.from() is easier but Buffer is only available in Node.js.\n    buffer = uint8Array\n    size = uint8Array.byteLength\n  } else if (content instanceof Uint8Array) {\n    // This supports Buffer too as it's a subclass of Uint8Array\n    buffer = content\n    size = buffer.byteLength\n  } else if (content instanceof ArrayBuffer) {\n    buffer = content\n    size = buffer.byteLength\n  } else if (content instanceof Blob) {\n    buffer = content\n    size = content.size\n  } else {\n    throw new errors.UploadFileError('The provided content is not supported')\n  }\n\n  const { file } = await client.upsertFile({\n    key,\n    tags,\n    index,\n    accessPolicies,\n    contentType,\n    metadata,\n    size,\n    expiresAt,\n    indexing,\n    publicContentImmediatelyAccessible,\n  })\n\n  const headers: Record<string, string | string[]> = {\n    ...sameOriginHeaders(client, file.uploadUrl),\n    'Content-Type': file.contentType,\n  }\n\n  if (publicContentImmediatelyAccessible) {\n    headers['x-amz-tagging'] = 'public=true'\n  }\n\n  try {\n    await axios.put(file.uploadUrl, buffer, {\n      maxBodyLength: Infinity,\n      headers,\n    })\n  } catch (thrown: unknown) {\n    const err = thrown instanceof Error ? thrown : new Error(String(thrown))\n    throw new errors.UploadFileError(`Failed to upload file: ${err.message}`, err as AxiosError, file)\n  }\n\n  return {\n    file: {\n      ...file,\n      size,\n    },\n  }\n}\n", "import axios, { type AxiosInstance, type AxiosRequestConfig } from 'axios'\nimport * as common from '../common'\nimport { IntegrationOperationConflictError } from '../errors'\n\nexport * from './capabilities'\n\nexport type IntegrationOperationStatus =\n  | 'queued'\n  | 'running'\n  | 'succeeded'\n  | 'failed'\n  | 'cancel_requested'\n  | 'cancelled'\n  | 'outcome_unknown'\n  | 'abandoned'\n\nexport type IntegrationOperation = {\n  operationId: string\n  status: IntegrationOperationStatus\n  actionType: string\n  attempt: number\n  progress: number\n  progressMessage?: string\n  deadline: string\n  result?: Record<string, unknown>\n  error?: {\n    code: string\n    message: string\n  }\n  createdAt: string\n  updatedAt: string\n  startedAt?: string\n  finishedAt?: string\n}\n\nexport type StartIntegrationOperationInput = {\n  idempotencyKey: string\n  type: string\n  input: Record<string, unknown>\n  resourceKey?: string\n  timeoutSeconds?: number\n}\n\nexport type GetIntegrationOperationInput = {\n  operationId: string\n}\n\nexport type CancelIntegrationOperationInput = {\n  operationId: string\n}\n\nconst request = async (\n  transport: AxiosInstance,\n  config: AxiosRequestConfig\n): Promise<IntegrationOperation> => {\n  try {\n    return await transport.request<IntegrationOperation>(config).then((response) => response.data)\n  } catch (error) {\n    const conflict = integrationOperationConflictFrom(error)\n    if (conflict) {\n      throw conflict\n    }\n    throw common.errors.toApiError(error)\n  }\n}\n\nconst errorCause = (error: unknown): Error | undefined => {\n  if (error instanceof Error) {\n    return error\n  }\n  if (\n    typeof error === 'object'\n    && error !== null\n    && 'cause' in error\n    && error.cause instanceof Error\n  ) {\n    return error.cause\n  }\n  return undefined\n}\n\nconst integrationOperationConflictFrom = (error: unknown): IntegrationOperationConflictError | undefined => {\n  if (!axios.isAxiosError(error) || error.response?.status !== 409) {\n    return undefined\n  }\n  const envelope: unknown = error.response.data\n  if (\n    typeof envelope !== 'object'\n    || envelope === null\n    || !('code' in envelope)\n    || envelope.code !== 409\n    || !('type' in envelope)\n    || envelope.type !== 'Conflict'\n    || !('id' in envelope)\n    || typeof envelope.id !== 'string'\n    || !('message' in envelope)\n    || typeof envelope.message !== 'string'\n  ) {\n    return undefined\n  }\n  const metadata =\n    'metadata' in envelope\n    && typeof envelope.metadata === 'object'\n    && envelope.metadata !== null\n    && !Array.isArray(envelope.metadata)\n      ? envelope.metadata as Record<string, unknown>\n      : undefined\n  return new IntegrationOperationConflictError(envelope.message, envelope.id, metadata, errorCause(error))\n}\n\nexport const start = async (\n  transport: AxiosInstance,\n  { idempotencyKey, type, input, resourceKey, timeoutSeconds }: StartIntegrationOperationInput\n): Promise<IntegrationOperation> =>\n  request(transport, {\n    method: 'POST',\n    url: '/v1/chat/integration-operations',\n    headers: {\n      'Idempotency-Key': idempotencyKey,\n    },\n    data: {\n      type,\n      input,\n      ...(resourceKey === undefined ? {} : { resourceKey }),\n      ...(timeoutSeconds === undefined ? {} : { timeoutSeconds }),\n    },\n  })\n\nexport const get = async (\n  transport: AxiosInstance,\n  { operationId }: GetIntegrationOperationInput\n): Promise<IntegrationOperation> =>\n  request(transport, {\n    method: 'GET',\n    url: `/v1/chat/integration-operations/${encodeURIComponent(operationId)}`,\n  })\n\nexport const cancel = async (\n  transport: AxiosInstance,\n  { operationId }: CancelIntegrationOperationInput\n): Promise<IntegrationOperation> =>\n  request(transport, {\n    method: 'POST',\n    url: `/v1/chat/integration-operations/${encodeURIComponent(operationId)}/cancel`,\n  })\n", "import type * as types from '../types'\n\nconst MAX_RESPONSE_BYTES = 64 * 1024\nconst MAX_OPERATION_ID_BYTES = 1024\nconst MAX_FILE_REF_TEXT_BYTES = 1024\nconst MAX_CHECKPOINT_ENTRIES = 32\nconst MAX_CHECKPOINT_VALUE_BYTES = 512\nconst MAX_FILE_STREAM_RESUMES = 4096\nconst MAX_FILE_STREAM_RESUMES_WITHOUT_PROGRESS = 3\nconst FILE_REF_CHECKSUM = /^sha256:[0-9a-f]{64}$/i\nconst CHECKPOINT_KEY = /^[A-Za-z0-9][A-Za-z0-9._:-]{0,63}$/\n\nexport type FileRefV1 = Readonly<{\n  version: '1'\n  id: string\n  generation: string\n  checksum: `sha256:${string}`\n  size: number\n  contentType?: string\n  filename?: string\n}>\n\nexport type OperationFileRange = Readonly<{\n  start: number\n  end?: number\n}>\n\nexport type OperationFileStat = Readonly<{\n  size: number\n  checksum: string\n  contentType?: string\n}>\n\nexport type OperationFilesClient = Readonly<{\n  openRef(\n    ref: FileRefV1,\n    options?: { range?: OperationFileRange; signal?: AbortSignal }\n  ): Promise<ReadableStream<Uint8Array>>\n  statRef(ref: FileRefV1, options?: { signal?: AbortSignal }): Promise<OperationFileStat>\n}>\n\nexport type OperationCheckpointSnapshot = Readonly<{\n  version: '1'\n  revision: number\n  entries: Readonly<Record<string, string>>\n}>\n\nexport type OperationCheckpointClient = Readonly<{\n  readonly revision: number\n  readonly entries: Readonly<Record<string, string>>\n  append(key: string, value: string, options?: { signal?: AbortSignal }): Promise<OperationCheckpointSnapshot>\n}>\n\nexport class OperationCapabilityError extends Error {\n  public readonly status: number\n  public readonly code?: string\n\n  public constructor(status: number, message: string, code?: string) {\n    super(message)\n    this.name = 'OperationCapabilityError'\n    this.status = status\n    this.code = code\n  }\n}\n\ntype TransportOptions = Readonly<{\n  config: Readonly<types.ClientConfig>\n  operationId: string\n  fetchImpl?: typeof fetch\n}>\n\nconst utf8Bytes = (value: string): number => new TextEncoder().encode(value).byteLength\n\nconst isNonEmptyBounded = (value: unknown, maxBytes: number): value is string =>\n  typeof value === 'string' && utf8Bytes(value) >= 1 && utf8Bytes(value) <= maxBytes\n\nconst validateOperationId = (operationId: string): void => {\n  if (!isNonEmptyBounded(operationId, MAX_OPERATION_ID_BYTES)) {\n    throw new TypeError('operationId must be a non-empty bounded string')\n  }\n}\n\nconst operationAuthorization = (config: Readonly<types.ClientConfig>): string => {\n  const authorization = Object.entries(config.headers)\n    .find(([name]) => name.toLowerCase() === 'authorization')?.[1]\n  if (typeof authorization !== 'string' || !/^Bearer \\S+$/.test(authorization)) {\n    throw new TypeError('operation-scoped authorization is missing')\n  }\n  return authorization\n}\n\nconst validateFileRefV1 = (ref: FileRefV1): void => {\n  if (\n    typeof ref !== 'object'\n    || ref === null\n    || ref.version !== '1'\n    || !isNonEmptyBounded(ref.id, MAX_FILE_REF_TEXT_BYTES)\n    || !isNonEmptyBounded(ref.generation, MAX_FILE_REF_TEXT_BYTES)\n    || typeof ref.checksum !== 'string'\n    || !FILE_REF_CHECKSUM.test(ref.checksum)\n    || !Number.isSafeInteger(ref.size)\n    || ref.size < 0\n    || (\n      ref.contentType !== undefined\n      && (!isNonEmptyBounded(ref.contentType, 255) || /[\\r\\n]/.test(ref.contentType))\n    )\n    || (\n      ref.filename !== undefined\n      && (!isNonEmptyBounded(ref.filename, MAX_FILE_REF_TEXT_BYTES) || /[\\r\\n]/.test(ref.filename))\n    )\n  ) {\n    throw new TypeError('fileRef must contain a valid authoritative FileRefV1 generation')\n  }\n}\n\nconst validateRange = (range: OperationFileRange | undefined, size: number): void => {\n  if (range === undefined) return\n  if (\n    !Number.isSafeInteger(range.start)\n    || range.start < 0\n    || range.start >= size\n    || (\n      range.end !== undefined\n      && (\n        !Number.isSafeInteger(range.end)\n        || range.end < range.start\n        || range.end >= size\n      )\n    )\n  ) {\n    throw new TypeError('operation file range is invalid')\n  }\n}\n\nconst readBoundedText = async (response: Response): Promise<string> => {\n  const reader = response.body?.getReader()\n  if (!reader) return ''\n  const chunks: Uint8Array[] = []\n  let size = 0\n  for (;;) {\n    const { done, value } = await reader.read()\n    if (done) break\n    if (!value) continue\n    size += value.byteLength\n    if (size > MAX_RESPONSE_BYTES) {\n      await reader.cancel()\n      throw new Error(`Operation capability request failed with status ${response.status}`)\n    }\n    chunks.push(value)\n  }\n  const body = new Uint8Array(size)\n  let offset = 0\n  for (const chunk of chunks) {\n    body.set(chunk, offset)\n    offset += chunk.byteLength\n  }\n  return new TextDecoder().decode(body)\n}\n\nconst capabilityError = async (response: Response): Promise<OperationCapabilityError> => {\n  let message = `Operation capability request failed with status ${response.status}`\n  let code: string | undefined\n  try {\n    const text = await readBoundedText(response)\n    const body: unknown = text ? JSON.parse(text) : undefined\n    if (\n      typeof body === 'object'\n      && body !== null\n      && 'message' in body\n      && typeof body.message === 'string'\n      && isNonEmptyBounded(body.message, 1024)\n    ) {\n      message = body.message\n    }\n    if (\n      typeof body === 'object'\n      && body !== null\n      && 'code' in body\n      && isNonEmptyBounded(body.code, 128)\n    ) {\n      code = body.code\n    }\n  } catch {\n    // Never include the operation token or checkpoint contents in a synthesized\n    // error when the response is malformed.\n  }\n  return new OperationCapabilityError(response.status, message, code)\n}\n\nconst emptyStream = (): ReadableStream<Uint8Array> =>\n  new ReadableStream<Uint8Array>({\n    start(controller) {\n      controller.close()\n    },\n  })\n\nconst fileContentUrl = (config: Readonly<types.ClientConfig>, operationId: string, generation: string): URL =>\n  new URL(\n    `/v1/integration-operations/${encodeURIComponent(operationId)}/files/${encodeURIComponent(generation)}/content`,\n    config.apiUrl\n  )\n\nconst validateFileResponse = async (\n  response: Response,\n  ref: FileRefV1,\n  start: number,\n  end: number,\n  rangeRequest: boolean\n): Promise<void> => {\n  const expectedStatus = rangeRequest ? 206 : 200\n  if (response.status !== expectedStatus) throw await capabilityError(response)\n  const expectedSize = end >= start ? end - start + 1 : 0\n  const declaredSize = response.headers.get('content-length')\n  if (\n    declaredSize === null\n    || !/^\\d+$/.test(declaredSize)\n    || Number(declaredSize) !== expectedSize\n  ) {\n    await response.body?.cancel()\n    throw new Error('operation file response length does not match FileRefV1')\n  }\n  if (\n    rangeRequest\n    && response.headers.get('content-range') !== `bytes ${start}-${end}/${ref.size}`\n  ) {\n    await response.body?.cancel()\n    throw new Error('operation file response range does not match FileRefV1')\n  }\n  const etag = response.headers.get('etag')\n  if (etag !== `\"${ref.checksum}\"`) {\n    await response.body?.cancel()\n    throw new Error('operation file response checksum does not match FileRefV1')\n  }\n  if (response.headers.get('accept-ranges') !== 'bytes') {\n    await response.body?.cancel()\n    throw new Error('operation file response does not advertise bounded byte ranges')\n  }\n  if (ref.contentType && response.headers.get('content-type') !== ref.contentType) {\n    await response.body?.cancel()\n    throw new Error('operation file response content type does not match FileRefV1')\n  }\n}\n\nexport const createOperationFilesClient = (\n  options: TransportOptions\n): OperationFilesClient => {\n  const { config, operationId, fetchImpl = fetch } = options\n  validateOperationId(operationId)\n  const authorization = operationAuthorization(config)\n\n  return Object.freeze({\n    async openRef(\n      ref: FileRefV1,\n      openOptions?: { range?: OperationFileRange; signal?: AbortSignal }\n    ): Promise<ReadableStream<Uint8Array>> {\n      validateFileRefV1(ref)\n      validateRange(openOptions?.range, ref.size)\n\n      const start = openOptions?.range?.start ?? 0\n      const end = openOptions?.range?.end ?? (ref.size - 1)\n      const abort = new AbortController()\n      const forwardAbort = () => abort.abort(openOptions?.signal?.reason)\n      if (openOptions?.signal?.aborted) {\n        forwardAbort()\n      } else {\n        openOptions?.signal?.addEventListener('abort', forwardAbort, { once: true })\n      }\n      const cleanup = () => {\n        openOptions?.signal?.removeEventListener('abort', forwardAbort)\n      }\n      const fetchPart = async (\n        partStart: number,\n        rangeRequest: boolean\n      ): Promise<ReadableStreamDefaultReader<Uint8Array>> => {\n        const headers = new Headers({ authorization })\n        if (rangeRequest) {\n          headers.set('range', `bytes=${partStart}-${end}`)\n          headers.set('if-range', `\"${ref.checksum}\"`)\n        }\n        const response = await fetchImpl(fileContentUrl(config, operationId, ref.generation), {\n          method: 'GET',\n          headers,\n          credentials: config.withCredentials ? 'include' : 'same-origin',\n          signal: abort.signal,\n        })\n        await validateFileResponse(response, ref, partStart, end, rangeRequest)\n        return (response.body ?? emptyStream()).getReader()\n      }\n\n      let offset = start\n      let reader: ReadableStreamDefaultReader<Uint8Array>\n      try {\n        reader = await fetchPart(start, openOptions?.range !== undefined)\n      } catch (error) {\n        cleanup()\n        abort.abort(error)\n        throw error\n      }\n      let responseOffset = offset\n      let resumes = 0\n      let resumesWithoutProgress = 0\n\n      return new ReadableStream<Uint8Array>({\n        async pull(controller) {\n          try {\n            for (;;) {\n              let chunk: ReadableStreamReadResult<Uint8Array>\n              try {\n                chunk = await reader.read()\n              } catch (error) {\n                if (abort.signal.aborted) throw error\n                chunk = { done: true, value: undefined }\n              }\n              if (!chunk.done) {\n                if (!chunk.value || chunk.value.byteLength === 0) continue\n                if (chunk.value.byteLength > end - offset + 1) {\n                  throw new Error('operation file response exceeded the requested range')\n                }\n                offset += chunk.value.byteLength\n                controller.enqueue(chunk.value)\n                return\n              }\n              reader.releaseLock()\n              if (offset > end) {\n                cleanup()\n                controller.close()\n                return\n              }\n              if (resumes >= MAX_FILE_STREAM_RESUMES) {\n                throw new Error('operation file stream exceeded its continuation limit')\n              }\n              resumes++\n              if (offset === responseOffset) {\n                resumesWithoutProgress++\n                if (resumesWithoutProgress > MAX_FILE_STREAM_RESUMES_WITHOUT_PROGRESS) {\n                  throw new Error('operation file stream made no continuation progress')\n                }\n              } else {\n                resumesWithoutProgress = 0\n              }\n              responseOffset = offset\n              reader = await fetchPart(offset, true)\n            }\n          } catch (error) {\n            cleanup()\n            abort.abort(error)\n            controller.error(error)\n          }\n        },\n        async cancel(reason) {\n          cleanup()\n          abort.abort(reason)\n          try {\n            await reader.cancel(reason)\n          } catch {\n            // Cancellation is already observable to the caller.\n          }\n        },\n      })\n    },\n\n    async statRef(ref: FileRefV1, statOptions?: { signal?: AbortSignal }): Promise<OperationFileStat> {\n      validateFileRefV1(ref)\n      const response = await fetchImpl(fileContentUrl(config, operationId, ref.generation), {\n        method: 'HEAD',\n        headers: { authorization },\n        credentials: config.withCredentials ? 'include' : 'same-origin',\n        signal: statOptions?.signal,\n      })\n      if (!response.ok) throw await capabilityError(response)\n\n      const declaredSize = response.headers.get('content-length')\n      if (declaredSize === null || !/^\\d+$/.test(declaredSize) || Number(declaredSize) !== ref.size) {\n        throw new Error('operation file metadata length does not match FileRefV1')\n      }\n      if (response.headers.get('etag') !== `\"${ref.checksum}\"`) {\n        throw new Error('operation file metadata checksum does not match FileRefV1')\n      }\n      if (response.headers.get('accept-ranges') !== 'bytes') {\n        throw new Error('operation file metadata does not advertise bounded byte ranges')\n      }\n      const contentType = response.headers.get('content-type')\n      if (ref.contentType && contentType !== ref.contentType) {\n        throw new Error('operation file metadata content type does not match FileRefV1')\n      }\n      return Object.freeze({\n        size: ref.size,\n        checksum: ref.checksum,\n        ...(contentType ? { contentType } : {}),\n      })\n    },\n  })\n}\n\nconst validateCheckpointEntries = (entries: unknown): entries is Record<string, string> => {\n  if (\n    typeof entries !== 'object'\n    || entries === null\n    || Array.isArray(entries)\n    || Object.keys(entries).length > MAX_CHECKPOINT_ENTRIES\n  ) {\n    return false\n  }\n  return Object.entries(entries).every(([key, value]) =>\n    CHECKPOINT_KEY.test(key)\n    && isNonEmptyBounded(value, MAX_CHECKPOINT_VALUE_BYTES)\n    && !/[\\u0000-\\u001f\\u007f-\\u009f]/.test(value)\n  )\n}\n\nexport const validateOperationCheckpointSnapshot = (\n  value: unknown\n): OperationCheckpointSnapshot => {\n  if (\n    typeof value !== 'object'\n    || value === null\n    || !('version' in value)\n    || value.version !== '1'\n    || !('revision' in value)\n    || !Number.isSafeInteger(value.revision)\n    || Number(value.revision) < 0\n    || !('entries' in value)\n    || !validateCheckpointEntries(value.entries)\n  ) {\n    throw new TypeError('operation checkpoint snapshot is invalid')\n  }\n  return Object.freeze({\n    version: '1',\n    revision: Number(value.revision),\n    entries: Object.freeze({ ...value.entries }),\n  })\n}\n\nconst checkpointBody = async (response: Response): Promise<OperationCheckpointSnapshot> => {\n  const text = await readBoundedText(response)\n  let body: unknown\n  try {\n    body = JSON.parse(text)\n  } catch {\n    throw new Error('operation checkpoint returned malformed JSON')\n  }\n  if (\n    typeof body !== 'object'\n    || body === null\n    || !('checkpoint' in body)\n  ) {\n    throw new Error('operation checkpoint response is missing its snapshot')\n  }\n  return validateOperationCheckpointSnapshot(body.checkpoint)\n}\n\nexport const createOperationCheckpointClient = (\n  options: TransportOptions & { snapshot: OperationCheckpointSnapshot }\n): OperationCheckpointClient => {\n  const { config, operationId, fetchImpl = fetch } = options\n  validateOperationId(operationId)\n  const authorization = operationAuthorization(config)\n  let snapshot = validateOperationCheckpointSnapshot(options.snapshot)\n  let tail: Promise<void> = Promise.resolve()\n\n  const appendExact = async (\n    key: string,\n    value: string,\n    signal?: AbortSignal\n  ): Promise<OperationCheckpointSnapshot> => {\n    if (!CHECKPOINT_KEY.test(key) || !validateCheckpointEntries({ [key]: value })) {\n      throw new TypeError('operation checkpoint append is invalid')\n    }\n    const body = JSON.stringify({\n      expectedRevision: snapshot.revision,\n      entries: { [key]: value },\n    })\n    const send = async (): Promise<Response> => fetchImpl(\n      new URL(`/v1/integration-operations/${encodeURIComponent(operationId)}/checkpoint`, config.apiUrl),\n      {\n        method: 'POST',\n        headers: {\n          authorization,\n          'content-type': 'application/json',\n        },\n        credentials: config.withCredentials ? 'include' : 'same-origin',\n        signal,\n        body,\n      }\n    )\n\n    let response: Response\n    try {\n      response = await send()\n      if (response.status >= 500) {\n        await response.body?.cancel()\n        response = await send()\n      }\n    } catch {\n      // The first request may have committed before its response was lost.\n      // Repeating the exact body is safe by the checkpoint v1 replay contract.\n      response = await send()\n    }\n    if (!response.ok) throw await capabilityError(response)\n    snapshot = await checkpointBody(response)\n    return snapshot\n  }\n\n  const client = {\n    get revision(): number {\n      return snapshot.revision\n    },\n    get entries(): Readonly<Record<string, string>> {\n      return snapshot.entries\n    },\n    append(key: string, value: string, appendOptions?: { signal?: AbortSignal }): Promise<OperationCheckpointSnapshot> {\n      // expectedRevision makes appends sequential. A rejected append must not\n      // poison later calls; they continue from the last confirmed snapshot.\n      const result = tail.then(() => appendExact(key, value, appendOptions?.signal))\n      tail = result.then(() => undefined, () => undefined)\n      return result\n    },\n  }\n  return Object.freeze(client)\n}\n", "import * as common from '../common'\nimport * as gen from '../gen/tables'\nimport * as atomic from './atomic'\nimport * as reserveKey from './reserve-key'\nimport * as types from '../types'\n\nexport * from './atomic'\nexport type {\n  TableSystemDateCondition,\n  TableSystemFilter,\n  TableSystemNumberCondition,\n  TableSystemOrderBy,\n} from './system-fields'\nexport type {\n  ReserveTableKeyInput,\n  ReserveTableKeyOutput,\n  TableRowMetadata,\n} from './reserve-key'\n\ntype IClient = common.types.Simplify<\n  gen.Client & {\n    atomicTables: (\n      input: atomic.AtomicTablesInput\n    ) => Promise<atomic.AtomicTablesOutput>\n    reserveTableKey: (\n      input: reserveKey.ReserveTableKeyInput\n    ) => Promise<reserveKey.ReserveTableKeyOutput>\n  }\n>\nexport type Operation = common.types.Operation<IClient>\nexport type ClientInputs = common.types.Inputs<IClient>\nexport type ClientOutputs = common.types.Outputs<IClient>\n\nexport type ClientProps = common.types.CommonClientProps & {\n  token: string\n  botId: string\n  integrationId?: string\n  integrationAlias?: string\n}\n\nexport class Client extends gen.Client {\n  public readonly config: Readonly<types.ClientConfig>\n  private readonly _customAxiosInstance: ReturnType<typeof common.axios.createAxiosInstance>\n\n  public constructor(clientProps: ClientProps) {\n    const clientConfig = common.config.getClientConfig(clientProps)\n    const axiosInstance = common.axios.createAxiosInstance(clientConfig, clientProps.retry)\n\n    super(axiosInstance, {\n      toApiError: common.errors.toApiError,\n    })\n\n    this.config = clientConfig\n    this._customAxiosInstance = axiosInstance\n  }\n\n  public readonly reserveTableKey = async <TRow extends Record<string, unknown>>(\n    input: reserveKey.ReserveTableKeyInput<TRow>\n  ): Promise<reserveKey.ReserveTableKeyOutput<TRow>> => {\n    return await reserveKey.reserveTableKey(this._customAxiosInstance, input)\n  }\n\n  public readonly atomicTables = async <\n    const TOperations extends readonly atomic.AtomicTableOperation[],\n  >(\n    input: atomic.AtomicTablesInput<TOperations>\n  ): Promise<atomic.AtomicTablesOutput<TOperations>> => {\n    return await atomic.atomicTables(this._customAxiosInstance, input)\n  }\n}\n", "\nimport crypto from 'crypto'\n\nconst codes = {\n  HTTP_STATUS_BAD_REQUEST: 400,\n  HTTP_STATUS_UNAUTHORIZED: 401,\n  HTTP_STATUS_PAYMENT_REQUIRED: 402,\n  HTTP_STATUS_FORBIDDEN: 403,\n  HTTP_STATUS_NOT_FOUND: 404,\n  HTTP_STATUS_METHOD_NOT_ALLOWED: 405,\n  HTTP_STATUS_REQUEST_TIMEOUT: 408,\n  HTTP_STATUS_CONFLICT: 409,\n  HTTP_STATUS_GONE: 410,\n  HTTP_STATUS_PAYLOAD_TOO_LARGE: 413,\n  HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE: 415,\n  HTTP_STATUS_DEPENDENCY_FAILED: 424,\n  HTTP_STATUS_TOO_MANY_REQUESTS: 429,\n  HTTP_STATUS_INTERNAL_SERVER_ERROR: 500,\n  HTTP_STATUS_NOT_IMPLEMENTED: 501,\n  HTTP_STATUS_BAD_GATEWAY: 502,\n  HTTP_STATUS_SERVICE_UNAVAILABLE: 503,\n  HTTP_STATUS_GATEWAY_TIMEOUT: 504,\n} as const\n\ntype ErrorCode = typeof codes[keyof typeof codes]\n\ndeclare const window: any\ntype CryptoLib = { getRandomValues(array: Uint8Array): Uint8Array }\n\nconst cryptoLibPolyfill: CryptoLib = {\n  // Fallback in case crypto isn't available.\n  getRandomValues: (array: Uint8Array) => new Uint8Array(array.map(() => Math.floor(Math.random() * 256))),\n}\n\nlet cryptoLib: CryptoLib =\n  typeof window !== 'undefined' && typeof window.document !== 'undefined'\n    ? window.crypto // Note: On browsers we need to use window.crypto instead of the imported crypto module as the latter is externalized and doesn't have getRandomValues().\n    : crypto\n\nif (!cryptoLib.getRandomValues) {\n  // Use a polyfill in older environments that have a crypto implementaton missing getRandomValues()\n  cryptoLib = cryptoLibPolyfill\n}\n\nabstract class BaseApiError<Code extends ErrorCode, Type extends string, Description extends string> extends Error {\n  public readonly isApiError = true\n\n  constructor(\n    public readonly code: Code,\n    public readonly description: Description,\n    public readonly type: Type,\n    public override readonly message: string,\n    public readonly error?: Error,\n    public readonly id?: string,\n    public readonly metadata?: Record<string, unknown>,\n  ) {\n    super(message)\n\n    if (!this.id) {\n      this.id = BaseApiError.generateId()\n    }\n  }\n\n  format() {\n    return `[${this.type}] ${this.message} (Error ID: ${this.id})`\n  }\n\n  toJSON() {\n    return {\n      id: this.id,\n      code: this.code,\n      type: this.type,\n      message: this.message,\n      metadata: this.metadata,\n    }\n  }\n\n  static generateId() {\n    const prefix = this.getPrefix();\n    const timestamp = new Date().toISOString().replace(/[\\-:TZ]/g, \"\").split(\".\")[0] // UTC time in YYMMDDHHMMSS format\n\n    const randomSuffixByteLength = 4\n    const randomHexSuffix = Array.from(cryptoLib.getRandomValues(new Uint8Array(randomSuffixByteLength)))\n      .map(x => x.toString(16).padStart(2, '0'))\n      .join('')\n      .toUpperCase()\n\n    return `${prefix}_${timestamp}x${randomHexSuffix}`\n  }\n\n  private static getPrefix() {\n    if (typeof window !== 'undefined' && typeof window.document !== 'undefined') {\n      // Browser environment\n      return 'err_bwsr'\n    }\n    return 'err'\n  }\n}\n\nconst isObject = (obj: unknown): obj is object => typeof obj === 'object' && !Array.isArray(obj) && obj !== null\n\nexport const isApiError = (thrown: unknown): thrown is ApiError => {\n  return thrown instanceof BaseApiError || isObject(thrown) && (thrown as ApiError).isApiError === true\n}\n\ntype UnknownType = 'Unknown'\n\n/**\n *  An unknown error occurred\n */\nexport class UnknownError extends BaseApiError<500, UnknownType, 'An unknown error occurred'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(500, 'An unknown error occurred', 'Unknown', message, error, id, metadata)\n  }\n}\n\ntype InternalType = 'Internal'\n\n/**\n *  An internal error occurred\n */\nexport class InternalError extends BaseApiError<500, InternalType, 'An internal error occurred'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(500, 'An internal error occurred', 'Internal', message, error, id, metadata)\n  }\n}\n\ntype UnauthorizedType = 'Unauthorized'\n\n/**\n *  The request requires to be authenticated.\n */\nexport class UnauthorizedError extends BaseApiError<401, UnauthorizedType, 'The request requires to be authenticated.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(401, 'The request requires to be authenticated.', 'Unauthorized', message, error, id, metadata)\n  }\n}\n\ntype ForbiddenType = 'Forbidden'\n\n/**\n *  The requested action can\\'t be peform by this resource.\n */\nexport class ForbiddenError extends BaseApiError<403, ForbiddenType, 'The requested action can\\'t be peform by this resource.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(403, 'The requested action can\\'t be peform by this resource.', 'Forbidden', message, error, id, metadata)\n  }\n}\n\ntype PayloadTooLargeType = 'PayloadTooLarge'\n\n/**\n *  The request payload is too large.\n */\nexport class PayloadTooLargeError extends BaseApiError<413, PayloadTooLargeType, 'The request payload is too large.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(413, 'The request payload is too large.', 'PayloadTooLarge', message, error, id, metadata)\n  }\n}\n\ntype InvalidPayloadType = 'InvalidPayload'\n\n/**\n *  The request payload is invalid.\n */\nexport class InvalidPayloadError extends BaseApiError<400, InvalidPayloadType, 'The request payload is invalid.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'The request payload is invalid.', 'InvalidPayload', message, error, id, metadata)\n  }\n}\n\ntype UnsupportedMediaTypeType = 'UnsupportedMediaType'\n\n/**\n *  The request is invalid because the content-type is not supported.\n */\nexport class UnsupportedMediaTypeError extends BaseApiError<415, UnsupportedMediaTypeType, 'The request is invalid because the content-type is not supported.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(415, 'The request is invalid because the content-type is not supported.', 'UnsupportedMediaType', message, error, id, metadata)\n  }\n}\n\ntype MethodNotFoundType = 'MethodNotFound'\n\n/**\n *  The requested method does not exist.\n */\nexport class MethodNotFoundError extends BaseApiError<405, MethodNotFoundType, 'The requested method does not exist.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(405, 'The requested method does not exist.', 'MethodNotFound', message, error, id, metadata)\n  }\n}\n\ntype ResourceNotFoundType = 'ResourceNotFound'\n\n/**\n *  The requested resource does not exist.\n */\nexport class ResourceNotFoundError extends BaseApiError<404, ResourceNotFoundType, 'The requested resource does not exist.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(404, 'The requested resource does not exist.', 'ResourceNotFound', message, error, id, metadata)\n  }\n}\n\ntype InvalidJsonSchemaType = 'InvalidJsonSchema'\n\n/**\n *  The provided JSON schema is invalid.\n */\nexport class InvalidJsonSchemaError extends BaseApiError<400, InvalidJsonSchemaType, 'The provided JSON schema is invalid.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'The provided JSON schema is invalid.', 'InvalidJsonSchema', message, error, id, metadata)\n  }\n}\n\ntype InvalidDataFormatType = 'InvalidDataFormat'\n\n/**\n *  The provided data doesn\\'t respect the provided JSON schema.\n */\nexport class InvalidDataFormatError extends BaseApiError<400, InvalidDataFormatType, 'The provided data doesn\\'t respect the provided JSON schema.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'The provided data doesn\\'t respect the provided JSON schema.', 'InvalidDataFormat', message, error, id, metadata)\n  }\n}\n\ntype InvalidIdentifierType = 'InvalidIdentifier'\n\n/**\n *  The provided identifier is not valid. An identifier must start with a lowercase letter, be between 2 and 100 characters long and use only alphanumeric characters.\n */\nexport class InvalidIdentifierError extends BaseApiError<400, InvalidIdentifierType, 'The provided identifier is not valid. An identifier must start with a lowercase letter, be between 2 and 100 characters long and use only alphanumeric characters.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'The provided identifier is not valid. An identifier must start with a lowercase letter, be between 2 and 100 characters long and use only alphanumeric characters.', 'InvalidIdentifier', message, error, id, metadata)\n  }\n}\n\ntype RelationConflictType = 'RelationConflict'\n\n/**\n *  The resource is related with a different resource that the one referenced in the request. This is usually caused when providing two resource identifiers that aren\\'t linked together.\n */\nexport class RelationConflictError extends BaseApiError<409, RelationConflictType, 'The resource is related with a different resource that the one referenced in the request. This is usually caused when providing two resource identifiers that aren\\'t linked together.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(409, 'The resource is related with a different resource that the one referenced in the request. This is usually caused when providing two resource identifiers that aren\\'t linked together.', 'RelationConflict', message, error, id, metadata)\n  }\n}\n\ntype ReferenceConstraintType = 'ReferenceConstraint'\n\n/**\n *  The resource cannot be deleted because it\\'s referenced by another resource\n */\nexport class ReferenceConstraintError extends BaseApiError<409, ReferenceConstraintType, 'The resource cannot be deleted because it\\'s referenced by another resource'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(409, 'The resource cannot be deleted because it\\'s referenced by another resource', 'ReferenceConstraint', message, error, id, metadata)\n  }\n}\n\ntype ResourceLockedConflictType = 'ResourceLockedConflict'\n\n/**\n *  The resource is current locked and cannot be operated on until the lock is released.\n */\nexport class ResourceLockedConflictError extends BaseApiError<409, ResourceLockedConflictType, 'The resource is current locked and cannot be operated on until the lock is released.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(409, 'The resource is current locked and cannot be operated on until the lock is released.', 'ResourceLockedConflict', message, error, id, metadata)\n  }\n}\n\ntype ResourceGoneType = 'ResourceGone'\n\n/**\n *  The requested resource is no longer available.\n */\nexport class ResourceGoneError extends BaseApiError<410, ResourceGoneType, 'The requested resource is no longer available.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(410, 'The requested resource is no longer available.', 'ResourceGone', message, error, id, metadata)\n  }\n}\n\ntype ReferenceNotFoundType = 'ReferenceNotFound'\n\n/**\n *  The provided resource reference is missing. This is usually caused when providing an invalid id inside the payload of a request.\n */\nexport class ReferenceNotFoundError extends BaseApiError<400, ReferenceNotFoundType, 'The provided resource reference is missing. This is usually caused when providing an invalid id inside the payload of a request.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'The provided resource reference is missing. This is usually caused when providing an invalid id inside the payload of a request.', 'ReferenceNotFound', message, error, id, metadata)\n  }\n}\n\ntype InvalidQueryType = 'InvalidQuery'\n\n/**\n *  The provided query is invalid. This is usually caused when providing an invalid parameter for querying a resource.\n */\nexport class InvalidQueryError extends BaseApiError<400, InvalidQueryType, 'The provided query is invalid. This is usually caused when providing an invalid parameter for querying a resource.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'The provided query is invalid. This is usually caused when providing an invalid parameter for querying a resource.', 'InvalidQuery', message, error, id, metadata)\n  }\n}\n\ntype RuntimeType = 'Runtime'\n\n/**\n *  An error happened during the execution of a runtime (bot or integration).\n */\nexport class RuntimeError extends BaseApiError<400, RuntimeType, 'An error happened during the execution of a runtime (bot or integration).'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'An error happened during the execution of a runtime (bot or integration).', 'Runtime', message, error, id, metadata)\n  }\n}\n\ntype AlreadyExistsType = 'AlreadyExists'\n\n/**\n *  The record attempted to be created already exists.\n */\nexport class AlreadyExistsError extends BaseApiError<409, AlreadyExistsType, 'The record attempted to be created already exists.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(409, 'The record attempted to be created already exists.', 'AlreadyExists', message, error, id, metadata)\n  }\n}\n\ntype RateLimitedType = 'RateLimited'\n\n/**\n *  The request has been rate limited.\n */\nexport class RateLimitedError extends BaseApiError<429, RateLimitedType, 'The request has been rate limited.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(429, 'The request has been rate limited.', 'RateLimited', message, error, id, metadata)\n  }\n}\n\ntype PaymentRequiredType = 'PaymentRequired'\n\n/**\n *  A payment is required to perform this request.\n */\nexport class PaymentRequiredError extends BaseApiError<402, PaymentRequiredType, 'A payment is required to perform this request.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(402, 'A payment is required to perform this request.', 'PaymentRequired', message, error, id, metadata)\n  }\n}\n\ntype QuotaExceededType = 'QuotaExceeded'\n\n/**\n *  The request exceeds the allowed quota. Quotas are a soft limit that can be increased.\n */\nexport class QuotaExceededError extends BaseApiError<403, QuotaExceededType, 'The request exceeds the allowed quota. Quotas are a soft limit that can be increased.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(403, 'The request exceeds the allowed quota. Quotas are a soft limit that can be increased.', 'QuotaExceeded', message, error, id, metadata)\n  }\n}\n\ntype LimitExceededType = 'LimitExceeded'\n\n/**\n *  The request exceeds the allowed limit. Limits are a hard limit that cannot be increased.\n */\nexport class LimitExceededError extends BaseApiError<413, LimitExceededType, 'The request exceeds the allowed limit. Limits are a hard limit that cannot be increased.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(413, 'The request exceeds the allowed limit. Limits are a hard limit that cannot be increased.', 'LimitExceeded', message, error, id, metadata)\n  }\n}\n\ntype BreakingChangesType = 'BreakingChanges'\n\n/**\n *  Request payload contains breaking changes which is not allowed for this resource without a version increment.\n */\nexport class BreakingChangesError extends BaseApiError<400, BreakingChangesType, 'Request payload contains breaking changes which is not allowed for this resource without a version increment.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'Request payload contains breaking changes which is not allowed for this resource without a version increment.', 'BreakingChanges', message, error, id, metadata)\n  }\n}\n\ntype OperationTimeoutType = 'OperationTimeout'\n\n/**\n *  The operation timed out.\n */\nexport class OperationTimeoutError extends BaseApiError<504, OperationTimeoutType, 'The operation timed out.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(504, 'The operation timed out.', 'OperationTimeout', message, error, id, metadata)\n  }\n}\n\nexport type ErrorType =\n  | 'Unknown'\n  | 'Internal'\n  | 'Unauthorized'\n  | 'Forbidden'\n  | 'PayloadTooLarge'\n  | 'InvalidPayload'\n  | 'UnsupportedMediaType'\n  | 'MethodNotFound'\n  | 'ResourceNotFound'\n  | 'InvalidJsonSchema'\n  | 'InvalidDataFormat'\n  | 'InvalidIdentifier'\n  | 'RelationConflict'\n  | 'ReferenceConstraint'\n  | 'ResourceLockedConflict'\n  | 'ResourceGone'\n  | 'ReferenceNotFound'\n  | 'InvalidQuery'\n  | 'Runtime'\n  | 'AlreadyExists'\n  | 'RateLimited'\n  | 'PaymentRequired'\n  | 'QuotaExceeded'\n  | 'LimitExceeded'\n  | 'BreakingChanges'\n  | 'OperationTimeout'\n\nexport type ApiError =\n  | UnknownError\n  | InternalError\n  | UnauthorizedError\n  | ForbiddenError\n  | PayloadTooLargeError\n  | InvalidPayloadError\n  | UnsupportedMediaTypeError\n  | MethodNotFoundError\n  | ResourceNotFoundError\n  | InvalidJsonSchemaError\n  | InvalidDataFormatError\n  | InvalidIdentifierError\n  | RelationConflictError\n  | ReferenceConstraintError\n  | ResourceLockedConflictError\n  | ResourceGoneError\n  | ReferenceNotFoundError\n  | InvalidQueryError\n  | RuntimeError\n  | AlreadyExistsError\n  | RateLimitedError\n  | PaymentRequiredError\n  | QuotaExceededError\n  | LimitExceededError\n  | BreakingChangesError\n  | OperationTimeoutError\n\nconst errorTypes: { [type: string]: new (message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) => ApiError } = {\n  Unknown: UnknownError,\n  Internal: InternalError,\n  Unauthorized: UnauthorizedError,\n  Forbidden: ForbiddenError,\n  PayloadTooLarge: PayloadTooLargeError,\n  InvalidPayload: InvalidPayloadError,\n  UnsupportedMediaType: UnsupportedMediaTypeError,\n  MethodNotFound: MethodNotFoundError,\n  ResourceNotFound: ResourceNotFoundError,\n  InvalidJsonSchema: InvalidJsonSchemaError,\n  InvalidDataFormat: InvalidDataFormatError,\n  InvalidIdentifier: InvalidIdentifierError,\n  RelationConflict: RelationConflictError,\n  ReferenceConstraint: ReferenceConstraintError,\n  ResourceLockedConflict: ResourceLockedConflictError,\n  ResourceGone: ResourceGoneError,\n  ReferenceNotFound: ReferenceNotFoundError,\n  InvalidQuery: InvalidQueryError,\n  Runtime: RuntimeError,\n  AlreadyExists: AlreadyExistsError,\n  RateLimited: RateLimitedError,\n  PaymentRequired: PaymentRequiredError,\n  QuotaExceeded: QuotaExceededError,\n  LimitExceeded: LimitExceededError,\n  BreakingChanges: BreakingChangesError,\n  OperationTimeout: OperationTimeoutError,\n}\n\nexport const errorFrom = (err: unknown): ApiError => {\n  if (isApiError(err)) {\n    return err\n  }\n  else if (err instanceof Error) {\n    return new UnknownError(err.message, err)\n  }\n  else if (typeof err === 'string') {\n    return new UnknownError(err)\n  }\n  else {\n    return getApiErrorFromObject(err)\n  }\n}\n\nfunction getApiErrorFromObject(err: any) {\n  // Check if it's an deserialized API error object\n  if (typeof err === 'object' && 'code' in err && 'type' in err && 'id' in err && 'message' in err && typeof err.type === 'string' && typeof err.message === 'string') {\n    const ErrorClass = errorTypes[err.type]\n    if (!ErrorClass) {\n      return new UnknownError(`An unclassified API error occurred: ${err.message} (Type: ${err.type}, Code: ${err.code})`)\n    }\n\n    return new ErrorClass(err.message, undefined, <string>err.id || 'UNKNOWN', err.metadata) // If error ID was not received do not pass undefined to generate a new one, flag it as UNKNOWN so we can fix the issue.\n  }\n\n  return new UnknownError('An invalid error occurred: ' + JSON.stringify(err))\n}\n", "\nimport { AxiosRequestConfig } from \"axios\"\nimport qs from \"qs\"\n\nexport type Primitive = string | number | boolean\nexport type Value<P extends Primitive> = P | P[] | Record<string, P>\nexport type QueryValue = Value<string> | Value<boolean> | Value<number> | undefined\nexport type AnyQueryParams = Record<string, QueryValue>\nexport type HeaderValue = string | undefined\nexport type AnyHeaderParams = Record<string, HeaderValue>\nexport type AnyBodyParams = Record<string, any>\nexport type ParsedRequest = {\n  method: string\n  path: string\n  query: AnyQueryParams\n  headers: AnyHeaderParams\n  body: AnyBodyParams\n}\n\nconst isDefined = <T>(pair: [string, T | undefined]): pair is [string, T] => pair[1] !== undefined\n\nexport const toAxiosRequest = (req: ParsedRequest): AxiosRequestConfig => {\n  const { method, path, query, headers: headerParams, body } = req\n\n  // prepare headers\n  const headerEntries: [string, string][] = Object.entries(headerParams).filter(isDefined)\n  const headers = Object.fromEntries(headerEntries)\n\n  // prepare query params\n  const queryString = qs.stringify(query, { encode: true, arrayFormat: 'repeat', allowDots: true })\n\n  const url = queryString ? [path, queryString].join('?') : path\n  const data =\n    ['put', 'post', 'delete', 'patch'].includes(method.toLowerCase())\n      ? body\n      : undefined\n\n  return {\n    method,\n    url,\n    headers,\n    data,\n  }\n}\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListTablesRequestHeaders {}\n\nexport interface ListTablesRequestQuery {\n  tags?: {\n    [k: string]: string;\n  };\n}\n\nexport interface ListTablesRequestParams {}\n\nexport interface ListTablesRequestBody {}\n\nexport type ListTablesInput = ListTablesRequestBody & ListTablesRequestHeaders & ListTablesRequestQuery & ListTablesRequestParams\n\nexport type ListTablesRequest = {\n  headers: ListTablesRequestHeaders;\n  query: ListTablesRequestQuery;\n  params: ListTablesRequestParams;\n  body: ListTablesRequestBody;\n}\n\nexport const parseReq = (input: ListTablesInput): ListTablesRequest & { path: string } => {\n  return {\n    path: `/v1/tables`,\n    headers: {  },\n    query: { 'tags': input['tags'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListTablesResponse {\n  tables: {\n    /**\n     * Unique identifier for the table\n     */\n    id: string;\n    /**\n     * Required. This name is used to identify your table.\n     */\n    name: string;\n    /**\n     * The 'factor' multiplies the row's data storage limit by 4KB and its quota count. It can only be increased (not decreased) after table creation via updateTable. For instance, a factor of 2 increases storage to 8KB but counts as 2 rows in your quota. The default factor is 1.\n     */\n    factor?: number;\n    /**\n     * A table designated as \"frozen\" is immutable in terms of its name and schema structure; modifications to its schema or a renaming operation are not permitted. The only action that can be taken on such a table is deletion. The schema established at the time of creation is locked in as the final structure. To implement any changes, the table must be duplicated with the desired alterations.\n     */\n    frozen?: boolean;\n    /**\n     * Designate a column as the primary unique identifier for this table. When set, a unique index is automatically created on this column, enabling significantly faster upsert operations. All values in this column must be unique across the table. When set to null, the key index is removed.\n     */\n    keyColumn?: string | null;\n    keyColumnUnique?: boolean;\n    keyColumnUniqueState?: \"disabled\" | \"enabling\" | \"enabled\" | \"disabling\" | \"error\";\n    keyColumnUniqueOperationId?: string | null;\n    keyColumnUniqueAttempts?: number;\n    keyColumnUniqueLastErrorCode?: string | null;\n    uniqueGeneration?: number;\n    schemaGeneration?: number;\n    schema: {\n      $schema?: string;\n      /**\n       * List of keys/columns in the table.\n       */\n      properties: {\n        [k: string]: {\n          type: \"string\" | \"number\" | \"boolean\" | \"object\" | \"array\" | \"null\";\n          format?: \"date-time\";\n          description?: string;\n          /**\n           * String properties must match this pattern\n           */\n          pattern?: string;\n          /**\n           * String properties must be one of these values\n           */\n          enum?: string[];\n          /**\n           * Defines the shape of items in an array\n           */\n          items?: {\n            type: \"string\" | \"number\" | \"boolean\" | \"object\" | \"array\" | \"null\";\n            [k: string]: any;\n          };\n          nullable?: boolean;\n          properties?: {\n            [k: string]: {\n              type: \"string\" | \"number\" | \"boolean\" | \"object\" | \"array\" | \"null\";\n              [k: string]: any;\n            };\n          };\n          \"x-zui\": {\n            index: number;\n            /**\n             * [deprecated] ID of the column.\n             */\n            id?: string;\n            /**\n             * Indicates if the column is vectorized and searchable.\n             */\n            searchable?: boolean;\n            /**\n             * Indicates if the field is hidden in the UI\n             */\n            hidden?: boolean;\n            /**\n             * Order of the column in the UI\n             */\n            order?: number;\n            /**\n             * Width of the column in the UI\n             */\n            width?: number;\n            /**\n             * ID of the schema\n             */\n            schemaId?: string;\n            computed?: {\n              action: \"ai\" | \"code\" | \"workflow\";\n              dependencies?: string[];\n              /**\n               * Prompt when action is \"ai\"\n               */\n              prompt?: string;\n              /**\n               * Code to execute when action is \"code\"\n               */\n              code?: string;\n              /**\n               * Model to use when action is \"ai\"\n               */\n              model?: string;\n              /**\n               * ID of Workflow to execute when action is \"workflow\"\n               */\n              workflowId?: string;\n              enabled?: boolean;\n            };\n            /**\n             * TypeScript typings for the column. Recommended if the type is \"object\", ex: \"\\{ foo: string; bar: number \\}\"\n             */\n            typings?: string;\n          };\n        };\n      };\n      /**\n       * Additional properties can be provided, but they will be ignored if no column matches.\n       */\n      additionalProperties: true;\n      /**\n       * Array of required properties.\n       */\n      required?: string[];\n      type: \"object\";\n    };\n    /**\n     * Optional tags to help organize your tables. These should be passed here as an object representing key/value pairs.\n     */\n    tags?: {\n      [k: string]: string;\n    };\n    /**\n     * Indicates if the table is enabled for computation.\n     */\n    isComputeEnabled?: boolean;\n    /**\n     * Timestamp of table creation.\n     */\n    createdAt?: string;\n    /**\n     * Timestamp of the last table update.\n     */\n    updatedAt?: string;\n  }[];\n}\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetTableRequestHeaders {}\n\nexport interface GetTableRequestQuery {}\n\nexport interface GetTableRequestParams {\n  table: string;\n}\n\nexport interface GetTableRequestBody {}\n\nexport type GetTableInput = GetTableRequestBody & GetTableRequestHeaders & GetTableRequestQuery & GetTableRequestParams\n\nexport type GetTableRequest = {\n  headers: GetTableRequestHeaders;\n  query: GetTableRequestQuery;\n  params: GetTableRequestParams;\n  body: GetTableRequestBody;\n}\n\nexport const parseReq = (input: GetTableInput): GetTableRequest & { path: string } => {\n  return {\n    path: `/v1/tables/${encodeURIComponent(input['table'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'table': input['table'] },\n    body: {  },\n  }\n}\n\nexport interface GetTableResponse {\n  table: {\n    /**\n     * Unique identifier for the table\n     */\n    id: string;\n    /**\n     * Required. This name is used to identify your table.\n     */\n    name: string;\n    /**\n     * The 'factor' multiplies the row's data storage limit by 4KB and its quota count. It can only be increased (not decreased) after table creation via updateTable. For instance, a factor of 2 increases storage to 8KB but counts as 2 rows in your quota. The default factor is 1.\n     */\n    factor?: number;\n    /**\n     * A table designated as \"frozen\" is immutable in terms of its name and schema structure; modifications to its schema or a renaming operation are not permitted. The only action that can be taken on such a table is deletion. The schema established at the time of creation is locked in as the final structure. To implement any changes, the table must be duplicated with the desired alterations.\n     */\n    frozen?: boolean;\n    /**\n     * Designate a column as the primary unique identifier for this table. When set, a unique index is automatically created on this column, enabling significantly faster upsert operations. All values in this column must be unique across the table. When set to null, the key index is removed.\n     */\n    keyColumn?: string | null;\n    keyColumnUnique?: boolean;\n    keyColumnUniqueState?: \"disabled\" | \"enabling\" | \"enabled\" | \"disabling\" | \"error\";\n    keyColumnUniqueOperationId?: string | null;\n    keyColumnUniqueAttempts?: number;\n    keyColumnUniqueLastErrorCode?: string | null;\n    uniqueGeneration?: number;\n    schemaGeneration?: number;\n    schema: {\n      $schema?: string;\n      /**\n       * List of keys/columns in the table.\n       */\n      properties: {\n        [k: string]: {\n          type: \"string\" | \"number\" | \"boolean\" | \"object\" | \"array\" | \"null\";\n          format?: \"date-time\";\n          description?: string;\n          /**\n           * String properties must match this pattern\n           */\n          pattern?: string;\n          /**\n           * String properties must be one of these values\n           */\n          enum?: string[];\n          /**\n           * Defines the shape of items in an array\n           */\n          items?: {\n            type: \"string\" | \"number\" | \"boolean\" | \"object\" | \"array\" | \"null\";\n            [k: string]: any;\n          };\n          nullable?: boolean;\n          properties?: {\n            [k: string]: {\n              type: \"string\" | \"number\" | \"boolean\" | \"object\" | \"array\" | \"null\";\n              [k: string]: any;\n            };\n          };\n          \"x-zui\": {\n            index: number;\n            /**\n             * [deprecated] ID of the column.\n             */\n            id?: string;\n            /**\n             * Indicates if the column is vectorized and searchable.\n             */\n            searchable?: boolean;\n            /**\n             * Indicates if the field is hidden in the UI\n             */\n            hidden?: boolean;\n            /**\n             * Order of the column in the UI\n             */\n            order?: number;\n            /**\n             * Width of the column in the UI\n             */\n            width?: number;\n            /**\n             * ID of the schema\n             */\n            schemaId?: string;\n            computed?: {\n              action: \"ai\" | \"code\" | \"workflow\";\n              dependencies?: string[];\n              /**\n               * Prompt when action is \"ai\"\n               */\n              prompt?: string;\n              /**\n               * Code to execute when action is \"code\"\n               */\n              code?: string;\n              /**\n               * Model to use when action is \"ai\"\n               */\n              model?: string;\n              /**\n               * ID of Workflow to execute when action is \"workflow\"\n               */\n              workflowId?: string;\n              enabled?: boolean;\n            };\n            /**\n             * TypeScript typings for the column. Recommended if the type is \"object\", ex: \"\\{ foo: string; bar: number \\}\"\n             */\n            typings?: string;\n          };\n        };\n      };\n      /**\n       * Additional properties can be provided, but they will be ignored if no column matches.\n       */\n      additionalProperties: true;\n      /**\n       * Array of required properties.\n       */\n      required?: string[];\n      type: \"object\";\n    };\n    /**\n     * Optional tags to help organize your tables. These should be passed here as an object representing key/value pairs.\n     */\n    tags?: {\n      [k: string]: string;\n    };\n    /**\n     * Indicates if the table is enabled for computation.\n     */\n    isComputeEnabled?: boolean;\n    /**\n     * Timestamp of table creation.\n     */\n    createdAt?: string;\n    /**\n     * Timestamp of the last table update.\n     */\n    updatedAt?: string;\n  };\n  /**\n   * The total number of rows present in the table.\n   */\n  rows: number;\n  /**\n   * The number of stale rows that are waiting to be processed\n   */\n  stale: number;\n  /**\n   * The number of rows that are waiting to be indexed (for search)\n   */\n  indexing: number;\n}\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetOrCreateTableRequestHeaders {}\n\nexport interface GetOrCreateTableRequestQuery {}\n\nexport interface GetOrCreateTableRequestParams {\n  table: string;\n}\n\nexport interface GetOrCreateTableRequestBody {\n  /**\n   * The 'factor' multiplies the row's data storage limit by 4KB and its quota count. It can only be increased (not decreased) after table creation via updateTable. For instance, a factor of 2 increases storage to 8KB but counts as 2 rows in your quota. The default factor is 1.\n   */\n  factor?: number;\n  /**\n   * A table designated as \"frozen\" is immutable in terms of its name and schema structure; modifications to its schema or a renaming operation are not permitted. The only action that can be taken on such a table is deletion. The schema established at the time of creation is locked in as the final structure. To implement any changes, the table must be duplicated with the desired alterations.\n   */\n  frozen?: boolean;\n  /**\n   * Designate a column as the primary unique identifier for this table. When set, a unique index is automatically created on this column, enabling significantly faster upsert operations. All values in this column must be unique across the table. When set to null, the key index is removed.\n   */\n  keyColumn?: string | null;\n  /**\n   * Opts a newly created table into the physical unique key contract.\n   */\n  keyColumnUnique?: boolean;\n  /**\n   * Provide an object or a JSON schema to define the user columns of the table. A maximum of 64 keys in the object/schema is allowed; system fields are excluded.\n   */\n  schema: {\n    [k: string]: any;\n  };\n  /**\n   * Optional tags to help organize your tables. These should be passed here as an object representing key/value pairs.\n   */\n  tags?: {\n    [k: string]: string;\n  };\n  /**\n   * Indicates if the table is enabled for computation.\n   */\n  isComputeEnabled?: boolean;\n}\n\nexport type GetOrCreateTableInput = GetOrCreateTableRequestBody & GetOrCreateTableRequestHeaders & GetOrCreateTableRequestQuery & GetOrCreateTableRequestParams\n\nexport type GetOrCreateTableRequest = {\n  headers: GetOrCreateTableRequestHeaders;\n  query: GetOrCreateTableRequestQuery;\n  params: GetOrCreateTableRequestParams;\n  body: GetOrCreateTableRequestBody;\n}\n\nexport const parseReq = (input: GetOrCreateTableInput): GetOrCreateTableRequest & { path: string } => {\n  return {\n    path: `/v1/tables/${encodeURIComponent(input['table'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'table': input['table'] },\n    body: { 'factor': input['factor'], 'frozen': input['frozen'], 'keyColumn': input['keyColumn'], 'keyColumnUnique': input['keyColumnUnique'], 'schema': input['schema'], 'tags': input['tags'], 'isComputeEnabled': input['isComputeEnabled'] },\n  }\n}\n\nexport interface GetOrCreateTableResponse {\n  table: {\n    /**\n     * Unique identifier for the table\n     */\n    id: string;\n    /**\n     * Required. This name is used to identify your table.\n     */\n    name: string;\n    /**\n     * The 'factor' multiplies the row's data storage limit by 4KB and its quota count. It can only be increased (not decreased) after table creation via updateTable. For instance, a factor of 2 increases storage to 8KB but counts as 2 rows in your quota. The default factor is 1.\n     */\n    factor?: number;\n    /**\n     * A table designated as \"frozen\" is immutable in terms of its name and schema structure; modifications to its schema or a renaming operation are not permitted. The only action that can be taken on such a table is deletion. The schema established at the time of creation is locked in as the final structure. To implement any changes, the table must be duplicated with the desired alterations.\n     */\n    frozen?: boolean;\n    /**\n     * Designate a column as the primary unique identifier for this table. When set, a unique index is automatically created on this column, enabling significantly faster upsert operations. All values in this column must be unique across the table. When set to null, the key index is removed.\n     */\n    keyColumn?: string | null;\n    keyColumnUnique?: boolean;\n    keyColumnUniqueState?: \"disabled\" | \"enabling\" | \"enabled\" | \"disabling\" | \"error\";\n    keyColumnUniqueOperationId?: string | null;\n    keyColumnUniqueAttempts?: number;\n    keyColumnUniqueLastErrorCode?: string | null;\n    uniqueGeneration?: number;\n    schemaGeneration?: number;\n    schema: {\n      $schema?: string;\n      /**\n       * List of keys/columns in the table.\n       */\n      properties: {\n        [k: string]: {\n          type: \"string\" | \"number\" | \"boolean\" | \"object\" | \"array\" | \"null\";\n          format?: \"date-time\";\n          description?: string;\n          /**\n           * String properties must match this pattern\n           */\n          pattern?: string;\n          /**\n           * String properties must be one of these values\n           */\n          enum?: string[];\n          /**\n           * Defines the shape of items in an array\n           */\n          items?: {\n            type: \"string\" | \"number\" | \"boolean\" | \"object\" | \"array\" | \"null\";\n            [k: string]: any;\n          };\n          nullable?: boolean;\n          properties?: {\n            [k: string]: {\n              type: \"string\" | \"number\" | \"boolean\" | \"object\" | \"array\" | \"null\";\n              [k: string]: any;\n            };\n          };\n          \"x-zui\": {\n            index: number;\n            /**\n             * [deprecated] ID of the column.\n             */\n            id?: string;\n            /**\n             * Indicates if the column is vectorized and searchable.\n             */\n            searchable?: boolean;\n            /**\n             * Indicates if the field is hidden in the UI\n             */\n            hidden?: boolean;\n            /**\n             * Order of the column in the UI\n             */\n            order?: number;\n            /**\n             * Width of the column in the UI\n             */\n            width?: number;\n            /**\n             * ID of the schema\n             */\n            schemaId?: string;\n            computed?: {\n              action: \"ai\" | \"code\" | \"workflow\";\n              dependencies?: string[];\n              /**\n               * Prompt when action is \"ai\"\n               */\n              prompt?: string;\n              /**\n               * Code to execute when action is \"code\"\n               */\n              code?: string;\n              /**\n               * Model to use when action is \"ai\"\n               */\n              model?: string;\n              /**\n               * ID of Workflow to execute when action is \"workflow\"\n               */\n              workflowId?: string;\n              enabled?: boolean;\n            };\n            /**\n             * TypeScript typings for the column. Recommended if the type is \"object\", ex: \"\\{ foo: string; bar: number \\}\"\n             */\n            typings?: string;\n          };\n        };\n      };\n      /**\n       * Additional properties can be provided, but they will be ignored if no column matches.\n       */\n      additionalProperties: true;\n      /**\n       * Array of required properties.\n       */\n      required?: string[];\n      type: \"object\";\n    };\n    /**\n     * Optional tags to help organize your tables. These should be passed here as an object representing key/value pairs.\n     */\n    tags?: {\n      [k: string]: string;\n    };\n    /**\n     * Indicates if the table is enabled for computation.\n     */\n    isComputeEnabled?: boolean;\n    /**\n     * Timestamp of table creation.\n     */\n    createdAt?: string;\n    /**\n     * Timestamp of the last table update.\n     */\n    updatedAt?: string;\n  };\n  /**\n   * Flag indicating if the table was newly created.\n   */\n  created: boolean;\n  /**\n   * The total number of rows present in the table.\n   */\n  rows: number;\n  /**\n   * The number of stale rows that are waiting to be processed\n   */\n  stale: number;\n  /**\n   * The number of rows that are waiting to be indexed (for search)\n   */\n  indexing: number;\n}\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CreateTableRequestHeaders {}\n\nexport interface CreateTableRequestQuery {}\n\nexport interface CreateTableRequestParams {}\n\nexport interface CreateTableRequestBody {\n  /**\n   * Required. This name is used to identify your table.\n   */\n  name: string;\n  /**\n   * The 'factor' multiplies the row's data storage limit by 4KB and its quota count. It can only be increased (not decreased) after table creation via updateTable. For instance, a factor of 2 increases storage to 8KB but counts as 2 rows in your quota. The default factor is 1.\n   */\n  factor?: number;\n  /**\n   * A table designated as \"frozen\" is immutable in terms of its name and schema structure; modifications to its schema or a renaming operation are not permitted. The only action that can be taken on such a table is deletion. The schema established at the time of creation is locked in as the final structure. To implement any changes, the table must be duplicated with the desired alterations.\n   */\n  frozen?: boolean;\n  /**\n   * Designate a column as the primary unique identifier for this table. When set, a unique index is automatically created on this column, enabling significantly faster upsert operations. All values in this column must be unique across the table. When set to null, the key index is removed.\n   */\n  keyColumn?: string | null;\n  /**\n   * Opts a newly created table into the physical unique key contract.\n   */\n  keyColumnUnique?: boolean;\n  /**\n   * Provide an object or a JSON schema to define the user columns of the table. A maximum of 64 keys in the object/schema is allowed; system fields are excluded.\n   */\n  schema: {\n    [k: string]: any;\n  };\n  /**\n   * Optional tags to help organize your tables. These should be passed here as an object representing key/value pairs.\n   */\n  tags?: {\n    [k: string]: string;\n  };\n  /**\n   * Indicates if the table is enabled for computation.\n   */\n  isComputeEnabled?: boolean;\n}\n\nexport type CreateTableInput = CreateTableRequestBody & CreateTableRequestHeaders & CreateTableRequestQuery & CreateTableRequestParams\n\nexport type CreateTableRequest = {\n  headers: CreateTableRequestHeaders;\n  query: CreateTableRequestQuery;\n  params: CreateTableRequestParams;\n  body: CreateTableRequestBody;\n}\n\nexport const parseReq = (input: CreateTableInput): CreateTableRequest & { path: string } => {\n  return {\n    path: `/v1/tables`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'name': input['name'], 'factor': input['factor'], 'frozen': input['frozen'], 'keyColumn': input['keyColumn'], 'keyColumnUnique': input['keyColumnUnique'], 'schema': input['schema'], 'tags': input['tags'], 'isComputeEnabled': input['isComputeEnabled'] },\n  }\n}\n\nexport interface CreateTableResponse {\n  table: {\n    /**\n     * Unique identifier for the table\n     */\n    id: string;\n    /**\n     * Required. This name is used to identify your table.\n     */\n    name: string;\n    /**\n     * The 'factor' multiplies the row's data storage limit by 4KB and its quota count. It can only be increased (not decreased) after table creation via updateTable. For instance, a factor of 2 increases storage to 8KB but counts as 2 rows in your quota. The default factor is 1.\n     */\n    factor?: number;\n    /**\n     * A table designated as \"frozen\" is immutable in terms of its name and schema structure; modifications to its schema or a renaming operation are not permitted. The only action that can be taken on such a table is deletion. The schema established at the time of creation is locked in as the final structure. To implement any changes, the table must be duplicated with the desired alterations.\n     */\n    frozen?: boolean;\n    /**\n     * Designate a column as the primary unique identifier for this table. When set, a unique index is automatically created on this column, enabling significantly faster upsert operations. All values in this column must be unique across the table. When set to null, the key index is removed.\n     */\n    keyColumn?: string | null;\n    keyColumnUnique?: boolean;\n    keyColumnUniqueState?: \"disabled\" | \"enabling\" | \"enabled\" | \"disabling\" | \"error\";\n    keyColumnUniqueOperationId?: string | null;\n    keyColumnUniqueAttempts?: number;\n    keyColumnUniqueLastErrorCode?: string | null;\n    uniqueGeneration?: number;\n    schemaGeneration?: number;\n    schema: {\n      $schema?: string;\n      /**\n       * List of keys/columns in the table.\n       */\n      properties: {\n        [k: string]: {\n          type: \"string\" | \"number\" | \"boolean\" | \"object\" | \"array\" | \"null\";\n          format?: \"date-time\";\n          description?: string;\n          /**\n           * String properties must match this pattern\n           */\n          pattern?: string;\n          /**\n           * String properties must be one of these values\n           */\n          enum?: string[];\n          /**\n           * Defines the shape of items in an array\n           */\n          items?: {\n            type: \"string\" | \"number\" | \"boolean\" | \"object\" | \"array\" | \"null\";\n            [k: string]: any;\n          };\n          nullable?: boolean;\n          properties?: {\n            [k: string]: {\n              type: \"string\" | \"number\" | \"boolean\" | \"object\" | \"array\" | \"null\";\n              [k: string]: any;\n            };\n          };\n          \"x-zui\": {\n            index: number;\n            /**\n             * [deprecated] ID of the column.\n             */\n            id?: string;\n            /**\n             * Indicates if the column is vectorized and searchable.\n             */\n            searchable?: boolean;\n            /**\n             * Indicates if the field is hidden in the UI\n             */\n            hidden?: boolean;\n            /**\n             * Order of the column in the UI\n             */\n            order?: number;\n            /**\n             * Width of the column in the UI\n             */\n            width?: number;\n            /**\n             * ID of the schema\n             */\n            schemaId?: string;\n            computed?: {\n              action: \"ai\" | \"code\" | \"workflow\";\n              dependencies?: string[];\n              /**\n               * Prompt when action is \"ai\"\n               */\n              prompt?: string;\n              /**\n               * Code to execute when action is \"code\"\n               */\n              code?: string;\n              /**\n               * Model to use when action is \"ai\"\n               */\n              model?: string;\n              /**\n               * ID of Workflow to execute when action is \"workflow\"\n               */\n              workflowId?: string;\n              enabled?: boolean;\n            };\n            /**\n             * TypeScript typings for the column. Recommended if the type is \"object\", ex: \"\\{ foo: string; bar: number \\}\"\n             */\n            typings?: string;\n          };\n        };\n      };\n      /**\n       * Additional properties can be provided, but they will be ignored if no column matches.\n       */\n      additionalProperties: true;\n      /**\n       * Array of required properties.\n       */\n      required?: string[];\n      type: \"object\";\n    };\n    /**\n     * Optional tags to help organize your tables. These should be passed here as an object representing key/value pairs.\n     */\n    tags?: {\n      [k: string]: string;\n    };\n    /**\n     * Indicates if the table is enabled for computation.\n     */\n    isComputeEnabled?: boolean;\n    /**\n     * Timestamp of table creation.\n     */\n    createdAt?: string;\n    /**\n     * Timestamp of the last table update.\n     */\n    updatedAt?: string;\n  };\n}\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface DuplicateTableRequestHeaders {}\n\nexport interface DuplicateTableRequestQuery {}\n\nexport interface DuplicateTableRequestParams {\n  sourceTableId: string;\n}\n\nexport interface DuplicateTableRequestBody {\n  tableName?: string;\n  /**\n   * Only duplicate the schema, not the content\n   */\n  schemaOnly?: boolean;\n  /**\n   * Override the factor for the duplicated table. If not provided, the new table will use the same factor as the source table.\n   */\n  factor?: number;\n}\n\nexport type DuplicateTableInput = DuplicateTableRequestBody & DuplicateTableRequestHeaders & DuplicateTableRequestQuery & DuplicateTableRequestParams\n\nexport type DuplicateTableRequest = {\n  headers: DuplicateTableRequestHeaders;\n  query: DuplicateTableRequestQuery;\n  params: DuplicateTableRequestParams;\n  body: DuplicateTableRequestBody;\n}\n\nexport const parseReq = (input: DuplicateTableInput): DuplicateTableRequest & { path: string } => {\n  return {\n    path: `/v1/tables/${encodeURIComponent(input['sourceTableId'])}/duplicate`,\n    headers: {  },\n    query: {  },\n    params: { 'sourceTableId': input['sourceTableId'] },\n    body: { 'tableName': input['tableName'], 'schemaOnly': input['schemaOnly'], 'factor': input['factor'] },\n  }\n}\n\nexport interface DuplicateTableResponse {\n  table: {\n    /**\n     * Unique identifier for the table\n     */\n    id: string;\n    /**\n     * Required. This name is used to identify your table.\n     */\n    name: string;\n    /**\n     * The 'factor' multiplies the row's data storage limit by 4KB and its quota count. It can only be increased (not decreased) after table creation via updateTable. For instance, a factor of 2 increases storage to 8KB but counts as 2 rows in your quota. The default factor is 1.\n     */\n    factor?: number;\n    /**\n     * A table designated as \"frozen\" is immutable in terms of its name and schema structure; modifications to its schema or a renaming operation are not permitted. The only action that can be taken on such a table is deletion. The schema established at the time of creation is locked in as the final structure. To implement any changes, the table must be duplicated with the desired alterations.\n     */\n    frozen?: boolean;\n    /**\n     * Designate a column as the primary unique identifier for this table. When set, a unique index is automatically created on this column, enabling significantly faster upsert operations. All values in this column must be unique across the table. When set to null, the key index is removed.\n     */\n    keyColumn?: string | null;\n    keyColumnUnique?: boolean;\n    keyColumnUniqueState?: \"disabled\" | \"enabling\" | \"enabled\" | \"disabling\" | \"error\";\n    keyColumnUniqueOperationId?: string | null;\n    keyColumnUniqueAttempts?: number;\n    keyColumnUniqueLastErrorCode?: string | null;\n    uniqueGeneration?: number;\n    schemaGeneration?: number;\n    schema: {\n      $schema?: string;\n      /**\n       * List of keys/columns in the table.\n       */\n      properties: {\n        [k: string]: {\n          type: \"string\" | \"number\" | \"boolean\" | \"object\" | \"array\" | \"null\";\n          format?: \"date-time\";\n          description?: string;\n          /**\n           * String properties must match this pattern\n           */\n          pattern?: string;\n          /**\n           * String properties must be one of these values\n           */\n          enum?: string[];\n          /**\n           * Defines the shape of items in an array\n           */\n          items?: {\n            type: \"string\" | \"number\" | \"boolean\" | \"object\" | \"array\" | \"null\";\n            [k: string]: any;\n          };\n          nullable?: boolean;\n          properties?: {\n            [k: string]: {\n              type: \"string\" | \"number\" | \"boolean\" | \"object\" | \"array\" | \"null\";\n              [k: string]: any;\n            };\n          };\n          \"x-zui\": {\n            index: number;\n            /**\n             * [deprecated] ID of the column.\n             */\n            id?: string;\n            /**\n             * Indicates if the column is vectorized and searchable.\n             */\n            searchable?: boolean;\n            /**\n             * Indicates if the field is hidden in the UI\n             */\n            hidden?: boolean;\n            /**\n             * Order of the column in the UI\n             */\n            order?: number;\n            /**\n             * Width of the column in the UI\n             */\n            width?: number;\n            /**\n             * ID of the schema\n             */\n            schemaId?: string;\n            computed?: {\n              action: \"ai\" | \"code\" | \"workflow\";\n              dependencies?: string[];\n              /**\n               * Prompt when action is \"ai\"\n               */\n              prompt?: string;\n              /**\n               * Code to execute when action is \"code\"\n               */\n              code?: string;\n              /**\n               * Model to use when action is \"ai\"\n               */\n              model?: string;\n              /**\n               * ID of Workflow to execute when action is \"workflow\"\n               */\n              workflowId?: string;\n              enabled?: boolean;\n            };\n            /**\n             * TypeScript typings for the column. Recommended if the type is \"object\", ex: \"\\{ foo: string; bar: number \\}\"\n             */\n            typings?: string;\n          };\n        };\n      };\n      /**\n       * Additional properties can be provided, but they will be ignored if no column matches.\n       */\n      additionalProperties: true;\n      /**\n       * Array of required properties.\n       */\n      required?: string[];\n      type: \"object\";\n    };\n    /**\n     * Optional tags to help organize your tables. These should be passed here as an object representing key/value pairs.\n     */\n    tags?: {\n      [k: string]: string;\n    };\n    /**\n     * Indicates if the table is enabled for computation.\n     */\n    isComputeEnabled?: boolean;\n    /**\n     * Timestamp of table creation.\n     */\n    createdAt?: string;\n    /**\n     * Timestamp of the last table update.\n     */\n    updatedAt?: string;\n  };\n  /**\n   * The total number of rows present in the source table.\n   */\n  rows: number;\n  job?: {\n    id: string;\n    status: string;\n  };\n}\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ExportTableRequestHeaders {}\n\nexport interface ExportTableRequestQuery {\n  format?: \"csv\" | \"json\";\n  compress?: boolean;\n}\n\nexport interface ExportTableRequestParams {\n  table: string;\n}\n\nexport interface ExportTableRequestBody {}\n\nexport type ExportTableInput = ExportTableRequestBody & ExportTableRequestHeaders & ExportTableRequestQuery & ExportTableRequestParams\n\nexport type ExportTableRequest = {\n  headers: ExportTableRequestHeaders;\n  query: ExportTableRequestQuery;\n  params: ExportTableRequestParams;\n  body: ExportTableRequestBody;\n}\n\nexport const parseReq = (input: ExportTableInput): ExportTableRequest & { path: string } => {\n  return {\n    path: `/v1/tables/${encodeURIComponent(input['table'])}/export`,\n    headers: {  },\n    query: { 'format': input['format'], 'compress': input['compress'] },\n    params: { 'table': input['table'] },\n    body: {  },\n  }\n}\n\nexport interface ExportTableResponse {\n  job: {\n    id: string;\n    botId: string;\n    tableId: string;\n    type: \"export\" | \"import\" | \"clear_column\" | \"clear_vectors\" | \"delete_rows\" | \"duplicate_table\";\n    status: \"pending\" | \"in_progress\" | \"finalizing\" | \"completed\" | \"failed\";\n    progress?: number;\n    inputFileId: string | null;\n    outputFileId: string | null;\n    createdAt: string;\n    updatedAt: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetTableJobsRequestHeaders {}\n\nexport interface GetTableJobsRequestQuery {}\n\nexport interface GetTableJobsRequestParams {\n  table: string;\n}\n\nexport interface GetTableJobsRequestBody {}\n\nexport type GetTableJobsInput = GetTableJobsRequestBody & GetTableJobsRequestHeaders & GetTableJobsRequestQuery & GetTableJobsRequestParams\n\nexport type GetTableJobsRequest = {\n  headers: GetTableJobsRequestHeaders;\n  query: GetTableJobsRequestQuery;\n  params: GetTableJobsRequestParams;\n  body: GetTableJobsRequestBody;\n}\n\nexport const parseReq = (input: GetTableJobsInput): GetTableJobsRequest & { path: string } => {\n  return {\n    path: `/v1/tables/${encodeURIComponent(input['table'])}/jobs`,\n    headers: {  },\n    query: {  },\n    params: { 'table': input['table'] },\n    body: {  },\n  }\n}\n\nexport interface GetTableJobsResponse {\n  jobs: {\n    id: string;\n    botId: string;\n    tableId: string;\n    type: \"export\" | \"import\" | \"clear_column\" | \"clear_vectors\" | \"delete_rows\" | \"duplicate_table\";\n    status: \"pending\" | \"in_progress\" | \"finalizing\" | \"completed\" | \"failed\";\n    progress?: number;\n    inputFileId: string | null;\n    outputFileId: string | null;\n    createdAt: string;\n    updatedAt: string;\n  }[];\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ImportTableRequestHeaders {}\n\nexport interface ImportTableRequestQuery {}\n\nexport interface ImportTableRequestParams {\n  table: string;\n}\n\nexport interface ImportTableRequestBody {\n  /**\n   * The file ID to import. It must have been uploaded to the Files API before. Supported formats: CSV, JSON (gzipped or not)\n   */\n  fileId: string;\n}\n\nexport type ImportTableInput = ImportTableRequestBody & ImportTableRequestHeaders & ImportTableRequestQuery & ImportTableRequestParams\n\nexport type ImportTableRequest = {\n  headers: ImportTableRequestHeaders;\n  query: ImportTableRequestQuery;\n  params: ImportTableRequestParams;\n  body: ImportTableRequestBody;\n}\n\nexport const parseReq = (input: ImportTableInput): ImportTableRequest & { path: string } => {\n  return {\n    path: `/v1/tables/${encodeURIComponent(input['table'])}/import`,\n    headers: {  },\n    query: {  },\n    params: { 'table': input['table'] },\n    body: { 'fileId': input['fileId'] },\n  }\n}\n\nexport interface ImportTableResponse {\n  job: {\n    id: string;\n    botId: string;\n    tableId: string;\n    type: \"export\" | \"import\" | \"clear_column\" | \"clear_vectors\" | \"delete_rows\" | \"duplicate_table\";\n    status: \"pending\" | \"in_progress\" | \"finalizing\" | \"completed\" | \"failed\";\n    progress?: number;\n    inputFileId: string | null;\n    outputFileId: string | null;\n    createdAt: string;\n    updatedAt: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface UpdateTableRequestHeaders {}\n\nexport interface UpdateTableRequestQuery {}\n\nexport interface UpdateTableRequestParams {\n  table: string;\n}\n\nexport interface UpdateTableRequestBody {\n  /**\n   * Required. This name is used to identify your table.\n   */\n  name?: string;\n  /**\n   * A table designated as \"frozen\" is immutable in terms of its name and schema structure; modifications to its schema or a renaming operation are not permitted. The only action that can be taken on such a table is deletion. The schema established at the time of creation is locked in as the final structure. To implement any changes, the table must be duplicated with the desired alterations.\n   */\n  frozen?: boolean;\n  /**\n   * Designate a column as the primary unique identifier for this table. When set, a unique index is automatically created on this column, enabling significantly faster upsert operations. All values in this column must be unique across the table. When set to null, the key index is removed.\n   */\n  keyColumn?: string | null;\n  /**\n   * Provide an object or a JSON schema to define the user columns of the table. A maximum of 64 keys in the object/schema is allowed; system fields are excluded.\n   */\n  schema?: {\n    [k: string]: any;\n  };\n  /**\n   * Optional tags to help organize your tables. These should be passed here as an object representing key/value pairs.\n   */\n  tags?: {\n    [k: string]: string;\n  };\n  /**\n   * Indicates if the table is enabled for computation.\n   */\n  isComputeEnabled?: boolean;\n  /**\n   * The 'factor' multiplies the row's data storage limit by 4KB and its quota count. It can only be increased, not decreased. For instance, a factor of 2 increases storage to 8KB but counts as 2 rows in your quota.\n   */\n  factor?: number;\n}\n\nexport type UpdateTableInput = UpdateTableRequestBody & UpdateTableRequestHeaders & UpdateTableRequestQuery & UpdateTableRequestParams\n\nexport type UpdateTableRequest = {\n  headers: UpdateTableRequestHeaders;\n  query: UpdateTableRequestQuery;\n  params: UpdateTableRequestParams;\n  body: UpdateTableRequestBody;\n}\n\nexport const parseReq = (input: UpdateTableInput): UpdateTableRequest & { path: string } => {\n  return {\n    path: `/v1/tables/${encodeURIComponent(input['table'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'table': input['table'] },\n    body: { 'name': input['name'], 'frozen': input['frozen'], 'keyColumn': input['keyColumn'], 'schema': input['schema'], 'tags': input['tags'], 'isComputeEnabled': input['isComputeEnabled'], 'factor': input['factor'] },\n  }\n}\n\nexport interface UpdateTableResponse {\n  table: {\n    /**\n     * Unique identifier for the table\n     */\n    id: string;\n    /**\n     * Required. This name is used to identify your table.\n     */\n    name: string;\n    /**\n     * The 'factor' multiplies the row's data storage limit by 4KB and its quota count. It can only be increased (not decreased) after table creation via updateTable. For instance, a factor of 2 increases storage to 8KB but counts as 2 rows in your quota. The default factor is 1.\n     */\n    factor?: number;\n    /**\n     * A table designated as \"frozen\" is immutable in terms of its name and schema structure; modifications to its schema or a renaming operation are not permitted. The only action that can be taken on such a table is deletion. The schema established at the time of creation is locked in as the final structure. To implement any changes, the table must be duplicated with the desired alterations.\n     */\n    frozen?: boolean;\n    /**\n     * Designate a column as the primary unique identifier for this table. When set, a unique index is automatically created on this column, enabling significantly faster upsert operations. All values in this column must be unique across the table. When set to null, the key index is removed.\n     */\n    keyColumn?: string | null;\n    keyColumnUnique?: boolean;\n    keyColumnUniqueState?: \"disabled\" | \"enabling\" | \"enabled\" | \"disabling\" | \"error\";\n    keyColumnUniqueOperationId?: string | null;\n    keyColumnUniqueAttempts?: number;\n    keyColumnUniqueLastErrorCode?: string | null;\n    uniqueGeneration?: number;\n    schemaGeneration?: number;\n    schema: {\n      $schema?: string;\n      /**\n       * List of keys/columns in the table.\n       */\n      properties: {\n        [k: string]: {\n          type: \"string\" | \"number\" | \"boolean\" | \"object\" | \"array\" | \"null\";\n          format?: \"date-time\";\n          description?: string;\n          /**\n           * String properties must match this pattern\n           */\n          pattern?: string;\n          /**\n           * String properties must be one of these values\n           */\n          enum?: string[];\n          /**\n           * Defines the shape of items in an array\n           */\n          items?: {\n            type: \"string\" | \"number\" | \"boolean\" | \"object\" | \"array\" | \"null\";\n            [k: string]: any;\n          };\n          nullable?: boolean;\n          properties?: {\n            [k: string]: {\n              type: \"string\" | \"number\" | \"boolean\" | \"object\" | \"array\" | \"null\";\n              [k: string]: any;\n            };\n          };\n          \"x-zui\": {\n            index: number;\n            /**\n             * [deprecated] ID of the column.\n             */\n            id?: string;\n            /**\n             * Indicates if the column is vectorized and searchable.\n             */\n            searchable?: boolean;\n            /**\n             * Indicates if the field is hidden in the UI\n             */\n            hidden?: boolean;\n            /**\n             * Order of the column in the UI\n             */\n            order?: number;\n            /**\n             * Width of the column in the UI\n             */\n            width?: number;\n            /**\n             * ID of the schema\n             */\n            schemaId?: string;\n            computed?: {\n              action: \"ai\" | \"code\" | \"workflow\";\n              dependencies?: string[];\n              /**\n               * Prompt when action is \"ai\"\n               */\n              prompt?: string;\n              /**\n               * Code to execute when action is \"code\"\n               */\n              code?: string;\n              /**\n               * Model to use when action is \"ai\"\n               */\n              model?: string;\n              /**\n               * ID of Workflow to execute when action is \"workflow\"\n               */\n              workflowId?: string;\n              enabled?: boolean;\n            };\n            /**\n             * TypeScript typings for the column. Recommended if the type is \"object\", ex: \"\\{ foo: string; bar: number \\}\"\n             */\n            typings?: string;\n          };\n        };\n      };\n      /**\n       * Additional properties can be provided, but they will be ignored if no column matches.\n       */\n      additionalProperties: true;\n      /**\n       * Array of required properties.\n       */\n      required?: string[];\n      type: \"object\";\n    };\n    /**\n     * Optional tags to help organize your tables. These should be passed here as an object representing key/value pairs.\n     */\n    tags?: {\n      [k: string]: string;\n    };\n    /**\n     * Indicates if the table is enabled for computation.\n     */\n    isComputeEnabled?: boolean;\n    /**\n     * Timestamp of table creation.\n     */\n    createdAt?: string;\n    /**\n     * Timestamp of the last table update.\n     */\n    updatedAt?: string;\n  };\n  /**\n   * List of columns that have become stale following the modification.\n   */\n  staleColumns?: string[];\n}\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface RenameTableColumnRequestHeaders {}\n\nexport interface RenameTableColumnRequestQuery {}\n\nexport interface RenameTableColumnRequestParams {\n  table: string;\n}\n\nexport interface RenameTableColumnRequestBody {\n  /**\n   * The existing name of the column.\n   */\n  name: string;\n  /**\n   * The new name to assign to the column.\n   */\n  newName: string;\n}\n\nexport type RenameTableColumnInput = RenameTableColumnRequestBody & RenameTableColumnRequestHeaders & RenameTableColumnRequestQuery & RenameTableColumnRequestParams\n\nexport type RenameTableColumnRequest = {\n  headers: RenameTableColumnRequestHeaders;\n  query: RenameTableColumnRequestQuery;\n  params: RenameTableColumnRequestParams;\n  body: RenameTableColumnRequestBody;\n}\n\nexport const parseReq = (input: RenameTableColumnInput): RenameTableColumnRequest & { path: string } => {\n  return {\n    path: `/v1/tables/${encodeURIComponent(input['table'])}/column`,\n    headers: {  },\n    query: {  },\n    params: { 'table': input['table'] },\n    body: { 'name': input['name'], 'newName': input['newName'] },\n  }\n}\n\nexport interface RenameTableColumnResponse {\n  table: {\n    /**\n     * Unique identifier for the table\n     */\n    id: string;\n    /**\n     * Required. This name is used to identify your table.\n     */\n    name: string;\n    /**\n     * The 'factor' multiplies the row's data storage limit by 4KB and its quota count. It can only be increased (not decreased) after table creation via updateTable. For instance, a factor of 2 increases storage to 8KB but counts as 2 rows in your quota. The default factor is 1.\n     */\n    factor?: number;\n    /**\n     * A table designated as \"frozen\" is immutable in terms of its name and schema structure; modifications to its schema or a renaming operation are not permitted. The only action that can be taken on such a table is deletion. The schema established at the time of creation is locked in as the final structure. To implement any changes, the table must be duplicated with the desired alterations.\n     */\n    frozen?: boolean;\n    /**\n     * Designate a column as the primary unique identifier for this table. When set, a unique index is automatically created on this column, enabling significantly faster upsert operations. All values in this column must be unique across the table. When set to null, the key index is removed.\n     */\n    keyColumn?: string | null;\n    keyColumnUnique?: boolean;\n    keyColumnUniqueState?: \"disabled\" | \"enabling\" | \"enabled\" | \"disabling\" | \"error\";\n    keyColumnUniqueOperationId?: string | null;\n    keyColumnUniqueAttempts?: number;\n    keyColumnUniqueLastErrorCode?: string | null;\n    uniqueGeneration?: number;\n    schemaGeneration?: number;\n    schema: {\n      $schema?: string;\n      /**\n       * List of keys/columns in the table.\n       */\n      properties: {\n        [k: string]: {\n          type: \"string\" | \"number\" | \"boolean\" | \"object\" | \"array\" | \"null\";\n          format?: \"date-time\";\n          description?: string;\n          /**\n           * String properties must match this pattern\n           */\n          pattern?: string;\n          /**\n           * String properties must be one of these values\n           */\n          enum?: string[];\n          /**\n           * Defines the shape of items in an array\n           */\n          items?: {\n            type: \"string\" | \"number\" | \"boolean\" | \"object\" | \"array\" | \"null\";\n            [k: string]: any;\n          };\n          nullable?: boolean;\n          properties?: {\n            [k: string]: {\n              type: \"string\" | \"number\" | \"boolean\" | \"object\" | \"array\" | \"null\";\n              [k: string]: any;\n            };\n          };\n          \"x-zui\": {\n            index: number;\n            /**\n             * [deprecated] ID of the column.\n             */\n            id?: string;\n            /**\n             * Indicates if the column is vectorized and searchable.\n             */\n            searchable?: boolean;\n            /**\n             * Indicates if the field is hidden in the UI\n             */\n            hidden?: boolean;\n            /**\n             * Order of the column in the UI\n             */\n            order?: number;\n            /**\n             * Width of the column in the UI\n             */\n            width?: number;\n            /**\n             * ID of the schema\n             */\n            schemaId?: string;\n            computed?: {\n              action: \"ai\" | \"code\" | \"workflow\";\n              dependencies?: string[];\n              /**\n               * Prompt when action is \"ai\"\n               */\n              prompt?: string;\n              /**\n               * Code to execute when action is \"code\"\n               */\n              code?: string;\n              /**\n               * Model to use when action is \"ai\"\n               */\n              model?: string;\n              /**\n               * ID of Workflow to execute when action is \"workflow\"\n               */\n              workflowId?: string;\n              enabled?: boolean;\n            };\n            /**\n             * TypeScript typings for the column. Recommended if the type is \"object\", ex: \"\\{ foo: string; bar: number \\}\"\n             */\n            typings?: string;\n          };\n        };\n      };\n      /**\n       * Additional properties can be provided, but they will be ignored if no column matches.\n       */\n      additionalProperties: true;\n      /**\n       * Array of required properties.\n       */\n      required?: string[];\n      type: \"object\";\n    };\n    /**\n     * Optional tags to help organize your tables. These should be passed here as an object representing key/value pairs.\n     */\n    tags?: {\n      [k: string]: string;\n    };\n    /**\n     * Indicates if the table is enabled for computation.\n     */\n    isComputeEnabled?: boolean;\n    /**\n     * Timestamp of table creation.\n     */\n    createdAt?: string;\n    /**\n     * Timestamp of the last table update.\n     */\n    updatedAt?: string;\n  };\n}\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface DeleteTableRequestHeaders {}\n\nexport interface DeleteTableRequestQuery {}\n\nexport interface DeleteTableRequestParams {\n  table: string;\n}\n\nexport interface DeleteTableRequestBody {}\n\nexport type DeleteTableInput = DeleteTableRequestBody & DeleteTableRequestHeaders & DeleteTableRequestQuery & DeleteTableRequestParams\n\nexport type DeleteTableRequest = {\n  headers: DeleteTableRequestHeaders;\n  query: DeleteTableRequestQuery;\n  params: DeleteTableRequestParams;\n  body: DeleteTableRequestBody;\n}\n\nexport const parseReq = (input: DeleteTableInput): DeleteTableRequest & { path: string } => {\n  return {\n    path: `/v1/tables/${encodeURIComponent(input['table'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'table': input['table'] },\n    body: {  },\n  }\n}\n\nexport interface DeleteTableResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetTableRowRequestHeaders {}\n\nexport interface GetTableRowRequestQuery {\n  id: number;\n}\n\nexport interface GetTableRowRequestParams {\n  table: string;\n}\n\nexport interface GetTableRowRequestBody {}\n\nexport type GetTableRowInput = GetTableRowRequestBody & GetTableRowRequestHeaders & GetTableRowRequestQuery & GetTableRowRequestParams\n\nexport type GetTableRowRequest = {\n  headers: GetTableRowRequestHeaders;\n  query: GetTableRowRequestQuery;\n  params: GetTableRowRequestParams;\n  body: GetTableRowRequestBody;\n}\n\nexport const parseReq = (input: GetTableRowInput): GetTableRowRequest & { path: string } => {\n  return {\n    path: `/v1/tables/${encodeURIComponent(input['table'])}/row`,\n    headers: {  },\n    query: { 'id': input['id'] },\n    params: { 'table': input['table'] },\n    body: {  },\n  }\n}\n\nexport interface GetTableRowResponse {\n  row: {\n    /**\n     * Unique identifier for the row.\n     */\n    id: number;\n    /**\n     * System-managed optimistic concurrency token for the row.\n     */\n    rowVersion: number;\n    /**\n     * Timestamp of row creation.\n     */\n    createdAt: string;\n    /**\n     * Timestamp of the last row update.\n     */\n    updatedAt: string;\n    computed: {\n      [k: string]: {\n        status: string;\n        error?: string;\n        updatedBy?: string;\n        updatedAt?: string;\n      };\n    };\n    /**\n     * [Read-only] List of stale values that are waiting to be recomputed.\n     */\n    stale?: string[];\n    /**\n     * Optional numeric value indicating similarity, when using findTableRows.\n     */\n    similarity?: number;\n    [k: string]: any;\n  };\n}\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nimport type {\n  TableSystemFilter,\n  TableSystemOrderBy,\n} from '../../../tables/system-fields'\n\nexport interface FindTableRowsRequestHeaders {}\n\nexport interface FindTableRowsRequestQuery {}\n\nexport interface FindTableRowsRequestParams {\n  table: string;\n}\n\nexport interface FindTableRowsRequestBody {\n  /**\n   * Limit for pagination, specifying the maximum number of rows to return.\n   */\n  limit?: number;\n  /**\n   * Offset for pagination, specifying where to start returning rows from.\n   */\n  offset?: number;\n  /**\n   * Provide a mongodb-like filter to apply to the query. Example: \\{ \"name\": \\{ \"$eq\": \"John\" \\} \\}\n   */\n  filter?: TableSystemFilter;\n  /**\n   * Group the rows by a specific column and apply aggregations to them. Allowed values: key, avg, max, min, sum, count. Example: \\{ \"someId\": \"key\", \"orders\": [\"sum\", \"avg\"] \\}\n   */\n  group?: {\n    [k: string]: any;\n  };\n  /**\n   * Search term to apply to the row search. When using this parameter, some rows which doesn't match the search term will be returned, use the similarity field to know how much the row matches the search term.\n   */\n  search?: string;\n  /**\n   * Specify which columns to return in the response. Supports both top-level columns (e.g., \"name\") and nested attributes using dot notation (e.g., \"attributes.price\"). System columns (id, createdAt, updatedAt, etc.) are always included. If omitted, all columns are returned.\n   */\n  select?: string[];\n  /**\n   * Specifies the column by which to order the results. By default it is ordered by id. Build-in columns: id, createdAt, updatedAt\n   */\n  orderBy?: TableSystemOrderBy;\n  /**\n   * Specifies the direction of sorting, either ascending or descending.\n   */\n  orderDirection?: \"asc\" | \"desc\";\n}\n\nexport type FindTableRowsInput = FindTableRowsRequestBody & FindTableRowsRequestHeaders & FindTableRowsRequestQuery & FindTableRowsRequestParams\n\nexport type FindTableRowsRequest = {\n  headers: FindTableRowsRequestHeaders;\n  query: FindTableRowsRequestQuery;\n  params: FindTableRowsRequestParams;\n  body: FindTableRowsRequestBody;\n}\n\nexport const parseReq = (input: FindTableRowsInput): FindTableRowsRequest & { path: string } => {\n  return {\n    path: `/v1/tables/${encodeURIComponent(input['table'])}/rows/find`,\n    headers: {  },\n    query: {  },\n    params: { 'table': input['table'] },\n    body: { 'limit': input['limit'], 'offset': input['offset'], 'filter': input['filter'], 'group': input['group'], 'search': input['search'], 'select': input['select'], 'orderBy': input['orderBy'], 'orderDirection': input['orderDirection'] },\n  }\n}\n\nexport interface FindTableRowsResponse {\n  rows: {\n    /**\n     * Unique identifier for the row.\n     */\n    id: number;\n    /**\n     * System-managed optimistic concurrency token for the row.\n     */\n    rowVersion: number;\n    /**\n     * Timestamp of row creation.\n     */\n    createdAt: string;\n    /**\n     * Timestamp of the last row update.\n     */\n    updatedAt: string;\n    computed: {\n      [k: string]: {\n        status: string;\n        error?: string;\n        updatedBy?: string;\n        updatedAt?: string;\n      };\n    };\n    /**\n     * [Read-only] List of stale values that are waiting to be recomputed.\n     */\n    stale?: string[];\n    /**\n     * Optional numeric value indicating similarity, when using findTableRows.\n     */\n    similarity?: number;\n    [k: string]: any;\n  }[];\n  /**\n   * Flag indicating if there are more rows to fetch.\n   */\n  hasMore: boolean;\n  offset: number;\n  limit: number;\n  /**\n   * Alerts for minor issues that don't block the operation but suggest possible improvements.\n   */\n  warnings?: string[];\n}\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CreateTableRowsRequestHeaders {}\n\nexport interface CreateTableRowsRequestQuery {}\n\nexport interface CreateTableRowsRequestParams {\n  table: string;\n}\n\nexport interface CreateTableRowsRequestBody {\n  /**\n   * @minItems 1\n   * @maxItems 1000\n   */\n  rows: {\n    [k: string]: any;\n  }[];\n  /**\n   * Ensure computed columns are fully processed before returning the result. This is applicable only when the number of rows involved is fewer than 1.\n   */\n  waitComputed?: boolean;\n}\n\nexport type CreateTableRowsInput = CreateTableRowsRequestBody & CreateTableRowsRequestHeaders & CreateTableRowsRequestQuery & CreateTableRowsRequestParams\n\nexport type CreateTableRowsRequest = {\n  headers: CreateTableRowsRequestHeaders;\n  query: CreateTableRowsRequestQuery;\n  params: CreateTableRowsRequestParams;\n  body: CreateTableRowsRequestBody;\n}\n\nexport const parseReq = (input: CreateTableRowsInput): CreateTableRowsRequest & { path: string } => {\n  return {\n    path: `/v1/tables/${encodeURIComponent(input['table'])}/rows`,\n    headers: {  },\n    query: {  },\n    params: { 'table': input['table'] },\n    body: { 'rows': input['rows'], 'waitComputed': input['waitComputed'] },\n  }\n}\n\nexport interface CreateTableRowsResponse {\n  rows: {\n    /**\n     * Unique identifier for the row.\n     */\n    id: number;\n    /**\n     * System-managed optimistic concurrency token for the row.\n     */\n    rowVersion: number;\n    /**\n     * Timestamp of row creation.\n     */\n    createdAt: string;\n    /**\n     * Timestamp of the last row update.\n     */\n    updatedAt: string;\n    computed: {\n      [k: string]: {\n        status: string;\n        error?: string;\n        updatedBy?: string;\n        updatedAt?: string;\n      };\n    };\n    /**\n     * [Read-only] List of stale values that are waiting to be recomputed.\n     */\n    stale?: string[];\n    /**\n     * Optional numeric value indicating similarity, when using findTableRows.\n     */\n    similarity?: number;\n    [k: string]: any;\n  }[];\n  /**\n   * Alerts for minor issues that don't block the operation but suggest possible improvements.\n   */\n  warnings?: string[];\n  /**\n   * Critical issues in specific elements that prevent their successful processing, allowing partial operation success.\n   */\n  errors?: string[];\n}\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nimport type { TableSystemFilter } from '../../../tables/system-fields'\n\nexport interface DeleteTableRowsRequestHeaders {}\n\nexport interface DeleteTableRowsRequestQuery {}\n\nexport interface DeleteTableRowsRequestParams {\n  table: string;\n}\n\nexport interface DeleteTableRowsRequestBody {\n  /**\n   * @maxItems 1000\n   */\n  ids?: number[];\n  /**\n   * Filter to apply when deleting rows. Deletion with a filter is performed asynchronously in batches and returns a job object to track progress. Example: \\{ \"createdAt\": \\{ \"$lt\": \"2026-01-01\" \\} \\}\n   */\n  filter?: TableSystemFilter;\n  /**\n   * Flag to delete all rows. Use with caution as this action is irreversible.\n   */\n  deleteAllRows?: boolean;\n}\n\nexport type DeleteTableRowsInput = DeleteTableRowsRequestBody & DeleteTableRowsRequestHeaders & DeleteTableRowsRequestQuery & DeleteTableRowsRequestParams\n\nexport type DeleteTableRowsRequest = {\n  headers: DeleteTableRowsRequestHeaders;\n  query: DeleteTableRowsRequestQuery;\n  params: DeleteTableRowsRequestParams;\n  body: DeleteTableRowsRequestBody;\n}\n\nexport const parseReq = (input: DeleteTableRowsInput): DeleteTableRowsRequest & { path: string } => {\n  return {\n    path: `/v1/tables/${encodeURIComponent(input['table'])}/rows/delete`,\n    headers: {  },\n    query: {  },\n    params: { 'table': input['table'] },\n    body: { 'ids': input['ids'], 'filter': input['filter'], 'deleteAllRows': input['deleteAllRows'] },\n  }\n}\n\nexport interface DeleteTableRowsResponse {\n  deletedRows: number;\n  job?: {\n    id: string;\n    status: string;\n  };\n}\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface UpdateTableRowsRequestHeaders {}\n\nexport interface UpdateTableRowsRequestQuery {}\n\nexport interface UpdateTableRowsRequestParams {\n  table: string;\n}\n\nexport interface UpdateTableRowsRequestBody {\n  /**\n   * Rows with updated data, identified by ID.\n   *\n   * @minItems 1\n   * @maxItems 1000\n   */\n  rows: {\n    id: number;\n    /**\n     * Expected row version for optimistic concurrency control.\n     */\n    rowVersion?: number;\n    [k: string]: any;\n  }[];\n  /**\n   * Ensure computed columns are fully processed before returning the result. This is applicable only when the number of rows involved is fewer than 1.\n   */\n  waitComputed?: boolean;\n}\n\nexport type UpdateTableRowsInput = UpdateTableRowsRequestBody & UpdateTableRowsRequestHeaders & UpdateTableRowsRequestQuery & UpdateTableRowsRequestParams\n\nexport type UpdateTableRowsRequest = {\n  headers: UpdateTableRowsRequestHeaders;\n  query: UpdateTableRowsRequestQuery;\n  params: UpdateTableRowsRequestParams;\n  body: UpdateTableRowsRequestBody;\n}\n\nexport const parseReq = (input: UpdateTableRowsInput): UpdateTableRowsRequest & { path: string } => {\n  return {\n    path: `/v1/tables/${encodeURIComponent(input['table'])}/rows`,\n    headers: {  },\n    query: {  },\n    params: { 'table': input['table'] },\n    body: { 'rows': input['rows'], 'waitComputed': input['waitComputed'] },\n  }\n}\n\nexport interface UpdateTableRowsResponse {\n  rows: {\n    /**\n     * Unique identifier for the row.\n     */\n    id: number;\n    /**\n     * System-managed optimistic concurrency token for the row.\n     */\n    rowVersion: number;\n    /**\n     * Timestamp of row creation.\n     */\n    createdAt: string;\n    /**\n     * Timestamp of the last row update.\n     */\n    updatedAt: string;\n    computed: {\n      [k: string]: {\n        status: string;\n        error?: string;\n        updatedBy?: string;\n        updatedAt?: string;\n      };\n    };\n    /**\n     * [Read-only] List of stale values that are waiting to be recomputed.\n     */\n    stale?: string[];\n    /**\n     * Optional numeric value indicating similarity, when using findTableRows.\n     */\n    similarity?: number;\n    [k: string]: any;\n  }[];\n  /**\n   * Alerts for minor issues that don't block the operation but suggest possible improvements.\n   */\n  warnings?: string[];\n  /**\n   * Critical issues in specific elements that prevent their successful processing, allowing partial operation success.\n   */\n  errors?: string[];\n}\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface UpsertTableRowsRequestHeaders {}\n\nexport interface UpsertTableRowsRequestQuery {}\n\nexport interface UpsertTableRowsRequestParams {\n  table: string;\n}\n\nexport interface UpsertTableRowsRequestBody {\n  /**\n   * @minItems 1\n   * @maxItems 1000\n   */\n  rows: {\n    id?: number;\n    /**\n     * Expected row version for optimistic concurrency control.\n     */\n    rowVersion?: number;\n    [k: string]: any;\n  }[];\n  /**\n   * Determines if a row is inserted or updated. Defaults to \"id\".\n   */\n  keyColumn?: string;\n  /**\n   * Ensure computed columns are fully processed before returning the result. This is applicable only when the number of rows involved is fewer than 1.\n   */\n  waitComputed?: boolean;\n}\n\nexport type UpsertTableRowsInput = UpsertTableRowsRequestBody & UpsertTableRowsRequestHeaders & UpsertTableRowsRequestQuery & UpsertTableRowsRequestParams\n\nexport type UpsertTableRowsRequest = {\n  headers: UpsertTableRowsRequestHeaders;\n  query: UpsertTableRowsRequestQuery;\n  params: UpsertTableRowsRequestParams;\n  body: UpsertTableRowsRequestBody;\n}\n\nexport const parseReq = (input: UpsertTableRowsInput): UpsertTableRowsRequest & { path: string } => {\n  return {\n    path: `/v1/tables/${encodeURIComponent(input['table'])}/rows/upsert`,\n    headers: {  },\n    query: {  },\n    params: { 'table': input['table'] },\n    body: { 'rows': input['rows'], 'keyColumn': input['keyColumn'], 'waitComputed': input['waitComputed'] },\n  }\n}\n\nexport interface UpsertTableRowsResponse {\n  inserted: {\n    /**\n     * Unique identifier for the row.\n     */\n    id: number;\n    /**\n     * System-managed optimistic concurrency token for the row.\n     */\n    rowVersion: number;\n    /**\n     * Timestamp of row creation.\n     */\n    createdAt: string;\n    /**\n     * Timestamp of the last row update.\n     */\n    updatedAt: string;\n    computed: {\n      [k: string]: {\n        status: string;\n        error?: string;\n        updatedBy?: string;\n        updatedAt?: string;\n      };\n    };\n    /**\n     * [Read-only] List of stale values that are waiting to be recomputed.\n     */\n    stale?: string[];\n    /**\n     * Optional numeric value indicating similarity, when using findTableRows.\n     */\n    similarity?: number;\n    [k: string]: any;\n  }[];\n  updated: {\n    /**\n     * Unique identifier for the row.\n     */\n    id: number;\n    /**\n     * System-managed optimistic concurrency token for the row.\n     */\n    rowVersion: number;\n    /**\n     * Timestamp of row creation.\n     */\n    createdAt: string;\n    /**\n     * Timestamp of the last row update.\n     */\n    updatedAt: string;\n    computed: {\n      [k: string]: {\n        status: string;\n        error?: string;\n        updatedBy?: string;\n        updatedAt?: string;\n      };\n    };\n    /**\n     * [Read-only] List of stale values that are waiting to be recomputed.\n     */\n    stale?: string[];\n    /**\n     * Optional numeric value indicating similarity, when using findTableRows.\n     */\n    similarity?: number;\n    [k: string]: any;\n  }[];\n  /**\n   * Alerts for minor issues that don't block the operation but suggest possible improvements.\n   */\n  warnings?: string[];\n  /**\n   * Critical issues in specific elements that prevent their successful processing, allowing partial operation success.\n   */\n  errors?: string[];\n}\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nimport axios, { AxiosInstance } from 'axios'\nimport { errorFrom } from './errors'\nimport { toAxiosRequest } from './to-axios'\nimport * as listTables from './operations/listTables'\nimport * as getTable from './operations/getTable'\nimport * as getOrCreateTable from './operations/getOrCreateTable'\nimport * as createTable from './operations/createTable'\nimport * as duplicateTable from './operations/duplicateTable'\nimport * as exportTable from './operations/exportTable'\nimport * as getTableJobs from './operations/getTableJobs'\nimport * as importTable from './operations/importTable'\nimport * as updateTable from './operations/updateTable'\nimport * as renameTableColumn from './operations/renameTableColumn'\nimport * as deleteTable from './operations/deleteTable'\nimport * as getTableRow from './operations/getTableRow'\nimport * as findTableRows from './operations/findTableRows'\nimport * as createTableRows from './operations/createTableRows'\nimport * as deleteTableRows from './operations/deleteTableRows'\nimport * as updateTableRows from './operations/updateTableRows'\nimport * as upsertTableRows from './operations/upsertTableRows'\n\nexport * from './models'\n\nexport * as listTables from './operations/listTables'\nexport * as getTable from './operations/getTable'\nexport * as getOrCreateTable from './operations/getOrCreateTable'\nexport * as createTable from './operations/createTable'\nexport * as duplicateTable from './operations/duplicateTable'\nexport * as exportTable from './operations/exportTable'\nexport * as getTableJobs from './operations/getTableJobs'\nexport * as importTable from './operations/importTable'\nexport * as updateTable from './operations/updateTable'\nexport * as renameTableColumn from './operations/renameTableColumn'\nexport * as deleteTable from './operations/deleteTable'\nexport * as getTableRow from './operations/getTableRow'\nexport * as findTableRows from './operations/findTableRows'\nexport * as createTableRows from './operations/createTableRows'\nexport * as deleteTableRows from './operations/deleteTableRows'\nexport * as updateTableRows from './operations/updateTableRows'\nexport * as upsertTableRows from './operations/upsertTableRows'\n\nexport const apiVersion = '1.108.0'\n\nexport type ClientProps = {\n  toAxiosRequest: typeof toAxiosRequest\n  toApiError: typeof toApiError\n}\n\nexport class Client {\n\n  public constructor(private axiosInstance: AxiosInstance, private props: Partial<ClientProps> = {}) {}\n\n  public readonly listTables = async (input: listTables.ListTablesInput): Promise<listTables.ListTablesResponse> => {\n    const { path, headers, query, body } = listTables.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listTables.ListTablesResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getTable = async (input: getTable.GetTableInput): Promise<getTable.GetTableResponse> => {\n    const { path, headers, query, body } = getTable.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getTable.GetTableResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getOrCreateTable = async (input: getOrCreateTable.GetOrCreateTableInput): Promise<getOrCreateTable.GetOrCreateTableResponse> => {\n    const { path, headers, query, body } = getOrCreateTable.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getOrCreateTable.GetOrCreateTableResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly createTable = async (input: createTable.CreateTableInput): Promise<createTable.CreateTableResponse> => {\n    const { path, headers, query, body } = createTable.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<createTable.CreateTableResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly duplicateTable = async (input: duplicateTable.DuplicateTableInput): Promise<duplicateTable.DuplicateTableResponse> => {\n    const { path, headers, query, body } = duplicateTable.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<duplicateTable.DuplicateTableResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly exportTable = async (input: exportTable.ExportTableInput): Promise<exportTable.ExportTableResponse> => {\n    const { path, headers, query, body } = exportTable.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<exportTable.ExportTableResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getTableJobs = async (input: getTableJobs.GetTableJobsInput): Promise<getTableJobs.GetTableJobsResponse> => {\n    const { path, headers, query, body } = getTableJobs.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getTableJobs.GetTableJobsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly importTable = async (input: importTable.ImportTableInput): Promise<importTable.ImportTableResponse> => {\n    const { path, headers, query, body } = importTable.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<importTable.ImportTableResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly updateTable = async (input: updateTable.UpdateTableInput): Promise<updateTable.UpdateTableResponse> => {\n    const { path, headers, query, body } = updateTable.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"put\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<updateTable.UpdateTableResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly renameTableColumn = async (input: renameTableColumn.RenameTableColumnInput): Promise<renameTableColumn.RenameTableColumnResponse> => {\n    const { path, headers, query, body } = renameTableColumn.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"put\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<renameTableColumn.RenameTableColumnResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly deleteTable = async (input: deleteTable.DeleteTableInput): Promise<deleteTable.DeleteTableResponse> => {\n    const { path, headers, query, body } = deleteTable.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"delete\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<deleteTable.DeleteTableResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getTableRow = async (input: getTableRow.GetTableRowInput): Promise<getTableRow.GetTableRowResponse> => {\n    const { path, headers, query, body } = getTableRow.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getTableRow.GetTableRowResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly findTableRows = async (input: findTableRows.FindTableRowsInput): Promise<findTableRows.FindTableRowsResponse> => {\n    const { path, headers, query, body } = findTableRows.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<findTableRows.FindTableRowsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly createTableRows = async (input: createTableRows.CreateTableRowsInput): Promise<createTableRows.CreateTableRowsResponse> => {\n    const { path, headers, query, body } = createTableRows.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<createTableRows.CreateTableRowsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly deleteTableRows = async (input: deleteTableRows.DeleteTableRowsInput): Promise<deleteTableRows.DeleteTableRowsResponse> => {\n    const { path, headers, query, body } = deleteTableRows.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<deleteTableRows.DeleteTableRowsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly updateTableRows = async (input: updateTableRows.UpdateTableRowsInput): Promise<updateTableRows.UpdateTableRowsResponse> => {\n    const { path, headers, query, body } = updateTableRows.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"put\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<updateTableRows.UpdateTableRowsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly upsertTableRows = async (input: upsertTableRows.UpsertTableRowsInput): Promise<upsertTableRows.UpsertTableRowsResponse> => {\n    const { path, headers, query, body } = upsertTableRows.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<upsertTableRows.UpsertTableRowsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n}\n\n// maps axios error to api error type\nfunction toApiError(err: unknown): Error {\n  if (axios.isAxiosError(err) && err.response?.data) {\n    return errorFrom(err.response.data)\n  }\n  return errorFrom(err)\n}\n\n", "import type { AxiosInstance } from 'axios'\nimport { toApiError } from '../common/errors'\nimport type { TableRowMetadata } from './reserve-key'\n\nexport type AtomicReference<T> = {\n  $ref: {\n    operation: string\n    path: string\n  }\n  /** Type-only marker; never sent over the wire. */\n  readonly __valueType?: T\n}\n\nexport const atomicReference = <T>(operation: string, path: string): AtomicReference<T> => ({\n  $ref: { operation, path },\n})\n\ntype AtomicResolvable<T> = T extends AtomicReference<infer TValue>\n  ? AtomicReference<TValue>\n  : T extends readonly (infer TItem)[]\n    ? readonly AtomicResolvable<TItem>[]\n    : T extends Record<string, unknown>\n      ? { [K in keyof T]: AtomicResolvable<T[K]> }\n      : T | AtomicReference<T>\n\ntype AtomicResolved<T> = T extends AtomicReference<infer TValue>\n  ? TValue\n  : T extends readonly (infer TItem)[]\n    ? AtomicResolved<TItem>[]\n    : T extends Record<string, unknown>\n      ? { [K in keyof T]: AtomicResolved<T[K]> }\n      : T\n\ntype AtomicOperationBase<TOp extends string> = {\n  id?: string\n  op: TOp\n  table: string\n}\n\nexport type AtomicReserveKeyOperation<\n  TRow extends Record<string, unknown> = Record<string, unknown>,\n> = AtomicOperationBase<'reserveKey'> & {\n  row: AtomicResolvable<TRow>\n}\n\nexport type AtomicCreateRowsOperation<\n  TRow extends Record<string, unknown> = Record<string, unknown>,\n> = AtomicOperationBase<'createRows'> & {\n  rows: readonly AtomicResolvable<TRow>[]\n}\n\nexport type AtomicUpdateRowsOperation<\n  TRow extends Record<string, unknown> = Record<string, unknown>,\n> = AtomicOperationBase<'updateRows'> & {\n  rows: readonly AtomicResolvable<TRow>[]\n}\n\nexport type AtomicUpsertRowsOperation<\n  TRow extends Record<string, unknown> = Record<string, unknown>,\n> = AtomicOperationBase<'upsertRows'> & {\n  rows: readonly AtomicResolvable<TRow>[]\n  keyColumn?: string\n}\n\nexport type AtomicDeleteRowsOperation = AtomicOperationBase<'deleteRows'> &\n  (\n    | { ids: readonly (number | AtomicReference<number>)[]; filter?: never }\n    | { filter: Readonly<Record<string, unknown>>; ids?: never }\n  )\n\nexport type AtomicTableOperation =\n  | AtomicReserveKeyOperation\n  | AtomicCreateRowsOperation\n  | AtomicUpdateRowsOperation\n  | AtomicUpsertRowsOperation\n  | AtomicDeleteRowsOperation\n\ntype OperationIdentity<TOperation> = TOperation extends { id: infer TID extends string }\n  ? { id: TID }\n  : TOperation extends { id?: infer TID extends string }\n    ? { id?: TID }\n    : { id?: never }\n\ntype OperationResultBase<TOperation extends AtomicTableOperation> = {\n  operationIndex: number\n  op: TOperation['op']\n} & OperationIdentity<TOperation>\n\ntype RowResult<TRow> = AtomicResolved<TRow> & TableRowMetadata\n\nexport type AtomicOperationResult<TOperation extends AtomicTableOperation> =\n  TOperation extends AtomicReserveKeyOperation<infer TRow>\n    ? OperationResultBase<TOperation> & {\n        row: RowResult<TRow>\n        created: boolean\n      }\n    : TOperation extends AtomicCreateRowsOperation<infer TRow>\n      ? OperationResultBase<TOperation> & { rows: RowResult<TRow>[] }\n      : TOperation extends AtomicUpdateRowsOperation<infer TRow>\n        ? OperationResultBase<TOperation> & { rows: RowResult<TRow>[] }\n        : TOperation extends AtomicUpsertRowsOperation<infer TRow>\n          ? OperationResultBase<TOperation> & {\n              inserted: RowResult<TRow>[]\n              updated: RowResult<TRow>[]\n            }\n          : TOperation extends AtomicDeleteRowsOperation\n            ? OperationResultBase<TOperation> & { deletedRows: number }\n            : never\n\nexport type AtomicTablesInput<\n  TOperations extends readonly AtomicTableOperation[] = readonly AtomicTableOperation[],\n> = {\n  idempotencyKey: string\n  operations: TOperations\n}\n\nexport type AtomicTablesOutput<\n  TOperations extends readonly AtomicTableOperation[] = readonly AtomicTableOperation[],\n> = {\n  results: { [K in keyof TOperations]: AtomicOperationResult<TOperations[K]> }\n}\n\nexport const atomicTables = async <\n  const TOperations extends readonly AtomicTableOperation[],\n>(\n  axiosInstance: AxiosInstance,\n  input: AtomicTablesInput<TOperations>\n): Promise<AtomicTablesOutput<TOperations>> => {\n  const response = await axiosInstance\n    .request<AtomicTablesOutput<TOperations>>({\n      method: 'post',\n      url: '/v1/tables/atomic',\n      headers: {\n        'Idempotency-Key': input.idempotencyKey,\n      },\n      data: {\n        operations: input.operations,\n      },\n    })\n    .catch((error: unknown) => {\n      throw toApiError(error)\n    })\n  return response.data\n}\n", "import type { AxiosInstance } from 'axios'\nimport { toApiError } from '../common/errors'\n\nexport type TableRowMetadata = {\n  id: number\n  rowVersion: number\n  createdAt: string\n  updatedAt: string\n}\n\nexport type ReserveTableKeyInput<TRow extends Record<string, unknown> = Record<string, unknown>> = {\n  table: string\n  row: TRow\n  idempotencyKey: string\n}\n\nexport type ReserveTableKeyOutput<TRow extends Record<string, unknown> = Record<string, unknown>> = {\n  row: TRow & TableRowMetadata\n  created: boolean\n}\n\nexport const reserveTableKey = async <TRow extends Record<string, unknown>>(\n  axiosInstance: AxiosInstance,\n  input: ReserveTableKeyInput<TRow>,\n): Promise<ReserveTableKeyOutput<TRow>> => {\n  const response = await axiosInstance\n    .request<ReserveTableKeyOutput<TRow>>({\n      method: 'post',\n      url: `/v1/tables/${encodeURIComponent(input.table)}/rows/reserve`,\n      headers: {\n        'Idempotency-Key': input.idempotencyKey,\n      },\n      data: {\n        row: input.row,\n      },\n    })\n    .catch((error: unknown) => {\n      throw toApiError(error)\n    })\n  return response.data\n}\n", "import type { AxiosInstance } from 'axios'\nimport { toApiError } from '../common/errors'\n\nexport type TableUniqueKeyState =\n  | 'disabled'\n  | 'enabling'\n  | 'enabled'\n  | 'disabling'\n  | 'error'\n\nexport type TableUniqueKeyContract = {\n  name: string\n  keyColumn?: string | null\n  keyColumnUnique?: boolean\n  keyColumnUniqueState?: TableUniqueKeyState\n  keyColumnUniqueOperationId?: string | null\n  keyColumnUniqueAttempts?: number\n  keyColumnUniqueLastErrorCode?: string | null\n  uniqueGeneration?: number\n  schemaGeneration?: number\n}\n\nexport type TransitionTableUniqueKeyInput = {\n  table: string\n  enabled: boolean\n}\n\nexport type TransitionTableUniqueKeyOutput<\n  TTable extends TableUniqueKeyContract = TableUniqueKeyContract,\n> = {\n  table: TTable\n}\n\nexport const transitionTableUniqueKey = async <\n  TTable extends TableUniqueKeyContract = TableUniqueKeyContract,\n>(\n  axiosInstance: AxiosInstance,\n  input: TransitionTableUniqueKeyInput\n): Promise<TransitionTableUniqueKeyOutput<TTable>> => {\n  const response = await axiosInstance\n    .request<TransitionTableUniqueKeyOutput<TTable>>({\n      method: 'put',\n      url: `/v1/tables/${encodeURIComponent(input.table)}/unique-key`,\n      data: {\n        enabled: input.enabled,\n      },\n    })\n    .catch((error: unknown) => {\n      throw toApiError(error)\n    })\n  return response.data\n}\n", "\nimport { AxiosRequestConfig } from \"axios\"\nimport qs from \"qs\"\n\nexport type Primitive = string | number | boolean\nexport type Value<P extends Primitive> = P | P[] | Record<string, P>\nexport type QueryValue = Value<string> | Value<boolean> | Value<number> | undefined\nexport type AnyQueryParams = Record<string, QueryValue>\nexport type HeaderValue = string | undefined\nexport type AnyHeaderParams = Record<string, HeaderValue>\nexport type AnyBodyParams = Record<string, any>\nexport type ParsedRequest = {\n  method: string\n  path: string\n  query: AnyQueryParams\n  headers: AnyHeaderParams\n  body: AnyBodyParams\n}\n\nconst isDefined = <T>(pair: [string, T | undefined]): pair is [string, T] => pair[1] !== undefined\n\nexport const toAxiosRequest = (req: ParsedRequest): AxiosRequestConfig => {\n  const { method, path, query, headers: headerParams, body } = req\n\n  // prepare headers\n  const headerEntries: [string, string][] = Object.entries(headerParams).filter(isDefined)\n  const headers = Object.fromEntries(headerEntries)\n\n  // prepare query params\n  const queryString = qs.stringify(query, { encode: true, arrayFormat: 'repeat', allowDots: true })\n\n  const url = queryString ? [path, queryString].join('?') : path\n  const data =\n    ['put', 'post', 'delete', 'patch'].includes(method.toLowerCase())\n      ? body\n      : undefined\n\n  return {\n    method,\n    url,\n    headers,\n    data,\n  }\n}\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CreateConversationRequestHeaders {}\n\nexport interface CreateConversationRequestQuery {}\n\nexport interface CreateConversationRequestParams {}\n\nexport interface CreateConversationRequestBody {\n  /**\n   * Channel name\n   */\n  channel: string;\n  /**\n   * Tags for the [Conversation](#schema_conversation)\n   */\n  tags: {\n    [k: string]: string;\n  };\n  /**\n   * @deprecated\n   * [DEPRECATED] To create a conversation from within a bot, call an action of the integration instead.\n   */\n  integrationName?: string;\n  /**\n   * **EXPERIMENTAL** - Optional shared properties that can be accessed and modified by both the bot and any of its integrations.\n   */\n  properties?: {\n    [k: string]: string;\n  };\n}\n\nexport type CreateConversationInput = CreateConversationRequestBody & CreateConversationRequestHeaders & CreateConversationRequestQuery & CreateConversationRequestParams\n\nexport type CreateConversationRequest = {\n  headers: CreateConversationRequestHeaders;\n  query: CreateConversationRequestQuery;\n  params: CreateConversationRequestParams;\n  body: CreateConversationRequestBody;\n}\n\nexport const parseReq = (input: CreateConversationInput): CreateConversationRequest & { path: string } => {\n  return {\n    path: `/v1/chat/conversations`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'channel': input['channel'], 'tags': input['tags'], 'integrationName': input['integrationName'], 'properties': input['properties'] },\n  }\n}\n\nexport interface CreateConversationResponse {\n  /**\n   * The [Conversation](#schema_conversation) object represents an exchange of messages between one or more users. A [Conversation](#schema_conversation) is always linked to an integration's channels. For example, a Slack channel represents a conversation.\n   */\n  conversation: {\n    /**\n     * Id of the [Conversation](#schema_conversation)\n     */\n    id: string;\n    /**\n     * @deprecated\n     * Unused. This field will be removed in the future.\n     */\n    currentTaskId?: string;\n    /**\n     * Creation date of the [Conversation](#schema_conversation) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Conversation](#schema_conversation) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Name of the channel where the [Conversation](#schema_conversation) is happening\n     */\n    channel: string;\n    /**\n     * Name of the integration that created the [Conversation](#schema_conversation)\n     */\n    integration: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [Conversation](#schema_conversation). The set of [Tags](/docs/developers/concepts/tags) available on a [Conversation](#schema_conversation) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Number of messages in the conversation\n     */\n    messageCount: number;\n    /**\n     * **EXPERIMENTAL** - Optional shared properties that can be accessed and modified by both the bot and any of its integrations.\n     */\n    properties?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetConversationRequestHeaders {}\n\nexport interface GetConversationRequestQuery {}\n\nexport interface GetConversationRequestParams {\n  id: string;\n}\n\nexport interface GetConversationRequestBody {}\n\nexport type GetConversationInput = GetConversationRequestBody & GetConversationRequestHeaders & GetConversationRequestQuery & GetConversationRequestParams\n\nexport type GetConversationRequest = {\n  headers: GetConversationRequestHeaders;\n  query: GetConversationRequestQuery;\n  params: GetConversationRequestParams;\n  body: GetConversationRequestBody;\n}\n\nexport const parseReq = (input: GetConversationInput): GetConversationRequest & { path: string } => {\n  return {\n    path: `/v1/chat/conversations/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetConversationResponse {\n  /**\n   * The [Conversation](#schema_conversation) object represents an exchange of messages between one or more users. A [Conversation](#schema_conversation) is always linked to an integration's channels. For example, a Slack channel represents a conversation.\n   */\n  conversation: {\n    /**\n     * Id of the [Conversation](#schema_conversation)\n     */\n    id: string;\n    /**\n     * @deprecated\n     * Unused. This field will be removed in the future.\n     */\n    currentTaskId?: string;\n    /**\n     * Creation date of the [Conversation](#schema_conversation) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Conversation](#schema_conversation) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Name of the channel where the [Conversation](#schema_conversation) is happening\n     */\n    channel: string;\n    /**\n     * Name of the integration that created the [Conversation](#schema_conversation)\n     */\n    integration: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [Conversation](#schema_conversation). The set of [Tags](/docs/developers/concepts/tags) available on a [Conversation](#schema_conversation) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Number of messages in the conversation\n     */\n    messageCount: number;\n    /**\n     * **EXPERIMENTAL** - Optional shared properties that can be accessed and modified by both the bot and any of its integrations.\n     */\n    properties?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListConversationsRequestHeaders {}\n\nexport interface ListConversationsRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n  sortField?: \"createdAt\" | \"updatedAt\";\n  sortDirection?: \"asc\" | \"desc\";\n  tags?: {\n    [k: string]: string;\n  };\n  participantIds?: string[];\n  integrationName?: string;\n  channel?: string;\n  afterDate?: string;\n  beforeDate?: string;\n  minMessageCount?: number;\n  maxMessageCount?: number;\n}\n\nexport interface ListConversationsRequestParams {}\n\nexport interface ListConversationsRequestBody {}\n\nexport type ListConversationsInput = ListConversationsRequestBody & ListConversationsRequestHeaders & ListConversationsRequestQuery & ListConversationsRequestParams\n\nexport type ListConversationsRequest = {\n  headers: ListConversationsRequestHeaders;\n  query: ListConversationsRequestQuery;\n  params: ListConversationsRequestParams;\n  body: ListConversationsRequestBody;\n}\n\nexport const parseReq = (input: ListConversationsInput): ListConversationsRequest & { path: string } => {\n  return {\n    path: `/v1/chat/conversations`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'], 'sortField': input['sortField'], 'sortDirection': input['sortDirection'], 'tags': input['tags'], 'participantIds': input['participantIds'], 'integrationName': input['integrationName'], 'channel': input['channel'], 'afterDate': input['afterDate'], 'beforeDate': input['beforeDate'], 'minMessageCount': input['minMessageCount'], 'maxMessageCount': input['maxMessageCount'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListConversationsResponse {\n  conversations: {\n    /**\n     * Id of the [Conversation](#schema_conversation)\n     */\n    id: string;\n    /**\n     * @deprecated\n     * Unused. This field will be removed in the future.\n     */\n    currentTaskId?: string;\n    /**\n     * Creation date of the [Conversation](#schema_conversation) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Conversation](#schema_conversation) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Name of the channel where the [Conversation](#schema_conversation) is happening\n     */\n    channel: string;\n    /**\n     * Name of the integration that created the [Conversation](#schema_conversation)\n     */\n    integration: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [Conversation](#schema_conversation). The set of [Tags](/docs/developers/concepts/tags) available on a [Conversation](#schema_conversation) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Number of messages in the conversation\n     */\n    messageCount: number;\n    /**\n     * **EXPERIMENTAL** - Optional shared properties that can be accessed and modified by both the bot and any of its integrations.\n     */\n    properties?: {\n      [k: string]: string;\n    };\n  }[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetOrCreateConversationRequestHeaders {}\n\nexport interface GetOrCreateConversationRequestQuery {}\n\nexport interface GetOrCreateConversationRequestParams {}\n\nexport interface GetOrCreateConversationRequestBody {\n  /**\n   * Channel name\n   */\n  channel: string;\n  /**\n   * Tags for the [Conversation](#schema_conversation). Set to null or empty string to remove.\n   */\n  tags: {\n    [k: string]: string | null;\n  };\n  /**\n   * @deprecated\n   * [DEPRECATED] To create a conversation from within a bot, call an action of the integration instead.\n   */\n  integrationName?: string;\n  /**\n   * **EXPERIMENTAL** - Optional shared properties. Set individual properties to null or empty string to remove them.\n   */\n  properties?: {\n    [k: string]: string | null;\n  };\n  /**\n   * Optional list of tag names to use for strict matching when looking up existing conversations. If provided, all specified tags must match exactly for a conversation to be considered a match. For example, with an existing conversation whose tags are {\"foo\": \"a\", \"bar\": \"b\", baz: \"c\"}: Without this parameter, ALL tags must match exactly. With [\"bar\",\"baz\"], all listed tags must match their values, and other tags are not considered.\n   */\n  discriminateByTags?: string[];\n}\n\nexport type GetOrCreateConversationInput = GetOrCreateConversationRequestBody & GetOrCreateConversationRequestHeaders & GetOrCreateConversationRequestQuery & GetOrCreateConversationRequestParams\n\nexport type GetOrCreateConversationRequest = {\n  headers: GetOrCreateConversationRequestHeaders;\n  query: GetOrCreateConversationRequestQuery;\n  params: GetOrCreateConversationRequestParams;\n  body: GetOrCreateConversationRequestBody;\n}\n\nexport const parseReq = (input: GetOrCreateConversationInput): GetOrCreateConversationRequest & { path: string } => {\n  return {\n    path: `/v1/chat/conversations/get-or-create`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'channel': input['channel'], 'tags': input['tags'], 'integrationName': input['integrationName'], 'properties': input['properties'], 'discriminateByTags': input['discriminateByTags'] },\n  }\n}\n\nexport interface GetOrCreateConversationResponse {\n  /**\n   * The [Conversation](#schema_conversation) object represents an exchange of messages between one or more users. A [Conversation](#schema_conversation) is always linked to an integration's channels. For example, a Slack channel represents a conversation.\n   */\n  conversation: {\n    /**\n     * Id of the [Conversation](#schema_conversation)\n     */\n    id: string;\n    /**\n     * @deprecated\n     * Unused. This field will be removed in the future.\n     */\n    currentTaskId?: string;\n    /**\n     * Creation date of the [Conversation](#schema_conversation) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Conversation](#schema_conversation) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Name of the channel where the [Conversation](#schema_conversation) is happening\n     */\n    channel: string;\n    /**\n     * Name of the integration that created the [Conversation](#schema_conversation)\n     */\n    integration: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [Conversation](#schema_conversation). The set of [Tags](/docs/developers/concepts/tags) available on a [Conversation](#schema_conversation) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Number of messages in the conversation\n     */\n    messageCount: number;\n    /**\n     * **EXPERIMENTAL** - Optional shared properties that can be accessed and modified by both the bot and any of its integrations.\n     */\n    properties?: {\n      [k: string]: string;\n    };\n  };\n  meta: {\n    created: boolean;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface UpdateConversationRequestHeaders {}\n\nexport interface UpdateConversationRequestQuery {}\n\nexport interface UpdateConversationRequestParams {\n  id: string;\n}\n\nexport interface UpdateConversationRequestBody {\n  /**\n   * @deprecated\n   * Unused. This parameter will be ignored if provided and should not be used when updating a conversation.\n   */\n  currentTaskId?: string;\n  /**\n   * Tags for the [Conversation](#schema_conversation). Set to null or empty string to remove.\n   */\n  tags?: {\n    [k: string]: string | null;\n  };\n  /**\n   * **EXPERIMENTAL** - Optional shared properties that can be accessed and modified by both the bot and any of its integrations. Set individual properties to null to remove them.\n   */\n  properties?: {\n    [k: string]: string | null;\n  };\n}\n\nexport type UpdateConversationInput = UpdateConversationRequestBody & UpdateConversationRequestHeaders & UpdateConversationRequestQuery & UpdateConversationRequestParams\n\nexport type UpdateConversationRequest = {\n  headers: UpdateConversationRequestHeaders;\n  query: UpdateConversationRequestQuery;\n  params: UpdateConversationRequestParams;\n  body: UpdateConversationRequestBody;\n}\n\nexport const parseReq = (input: UpdateConversationInput): UpdateConversationRequest & { path: string } => {\n  return {\n    path: `/v1/chat/conversations/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: { 'currentTaskId': input['currentTaskId'], 'tags': input['tags'], 'properties': input['properties'] },\n  }\n}\n\nexport interface UpdateConversationResponse {\n  /**\n   * The [Conversation](#schema_conversation) object represents an exchange of messages between one or more users. A [Conversation](#schema_conversation) is always linked to an integration's channels. For example, a Slack channel represents a conversation.\n   */\n  conversation: {\n    /**\n     * Id of the [Conversation](#schema_conversation)\n     */\n    id: string;\n    /**\n     * @deprecated\n     * Unused. This field will be removed in the future.\n     */\n    currentTaskId?: string;\n    /**\n     * Creation date of the [Conversation](#schema_conversation) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Conversation](#schema_conversation) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Name of the channel where the [Conversation](#schema_conversation) is happening\n     */\n    channel: string;\n    /**\n     * Name of the integration that created the [Conversation](#schema_conversation)\n     */\n    integration: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [Conversation](#schema_conversation). The set of [Tags](/docs/developers/concepts/tags) available on a [Conversation](#schema_conversation) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Number of messages in the conversation\n     */\n    messageCount: number;\n    /**\n     * **EXPERIMENTAL** - Optional shared properties that can be accessed and modified by both the bot and any of its integrations.\n     */\n    properties?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface DeleteConversationRequestHeaders {}\n\nexport interface DeleteConversationRequestQuery {}\n\nexport interface DeleteConversationRequestParams {\n  id: string;\n}\n\nexport interface DeleteConversationRequestBody {}\n\nexport type DeleteConversationInput = DeleteConversationRequestBody & DeleteConversationRequestHeaders & DeleteConversationRequestQuery & DeleteConversationRequestParams\n\nexport type DeleteConversationRequest = {\n  headers: DeleteConversationRequestHeaders;\n  query: DeleteConversationRequestQuery;\n  params: DeleteConversationRequestParams;\n  body: DeleteConversationRequestBody;\n}\n\nexport const parseReq = (input: DeleteConversationInput): DeleteConversationRequest & { path: string } => {\n  return {\n    path: `/v1/chat/conversations/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface DeleteConversationResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListParticipantsRequestHeaders {}\n\nexport interface ListParticipantsRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n}\n\nexport interface ListParticipantsRequestParams {\n  id: string;\n}\n\nexport interface ListParticipantsRequestBody {}\n\nexport type ListParticipantsInput = ListParticipantsRequestBody & ListParticipantsRequestHeaders & ListParticipantsRequestQuery & ListParticipantsRequestParams\n\nexport type ListParticipantsRequest = {\n  headers: ListParticipantsRequestHeaders;\n  query: ListParticipantsRequestQuery;\n  params: ListParticipantsRequestParams;\n  body: ListParticipantsRequestBody;\n}\n\nexport const parseReq = (input: ListParticipantsInput): ListParticipantsRequest & { path: string } => {\n  return {\n    path: `/v1/chat/conversations/${encodeURIComponent(input['id'])}/participants`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'] },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface ListParticipantsResponse {\n  participants: {\n    /**\n     * Id of the [User](#schema_user)\n     */\n    id: string;\n    /**\n     * Creation date of the [User](#schema_user) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [User](#schema_user) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [User](#schema_user). The set of [Tags](/docs/developers/concepts/tags) available on a [User](#schema_user) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Name of the [User](#schema_user)\n     */\n    name?: string;\n    /**\n     * Picture URL of the [User](#schema_user)\n     */\n    pictureUrl?: string;\n    /**\n     * Optional properties\n     */\n    properties?: {\n      [k: string]: string;\n    };\n    /**\n     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  }[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface AddParticipantRequestHeaders {}\n\nexport interface AddParticipantRequestQuery {}\n\nexport interface AddParticipantRequestParams {\n  id: string;\n}\n\nexport interface AddParticipantRequestBody {\n  /**\n   * User id\n   */\n  userId: string;\n}\n\nexport type AddParticipantInput = AddParticipantRequestBody & AddParticipantRequestHeaders & AddParticipantRequestQuery & AddParticipantRequestParams\n\nexport type AddParticipantRequest = {\n  headers: AddParticipantRequestHeaders;\n  query: AddParticipantRequestQuery;\n  params: AddParticipantRequestParams;\n  body: AddParticipantRequestBody;\n}\n\nexport const parseReq = (input: AddParticipantInput): AddParticipantRequest & { path: string } => {\n  return {\n    path: `/v1/chat/conversations/${encodeURIComponent(input['id'])}/participants`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: { 'userId': input['userId'] },\n  }\n}\n\nexport interface AddParticipantResponse {\n  /**\n   * The user object represents someone interacting with the bot within a specific integration. The same person interacting with a bot in slack and messenger will be represented with two different users.\n   */\n  participant: {\n    /**\n     * Id of the [User](#schema_user)\n     */\n    id: string;\n    /**\n     * Creation date of the [User](#schema_user) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [User](#schema_user) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [User](#schema_user). The set of [Tags](/docs/developers/concepts/tags) available on a [User](#schema_user) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Name of the [User](#schema_user)\n     */\n    name?: string;\n    /**\n     * Picture URL of the [User](#schema_user)\n     */\n    pictureUrl?: string;\n    /**\n     * Optional properties\n     */\n    properties?: {\n      [k: string]: string;\n    };\n    /**\n     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetParticipantRequestHeaders {}\n\nexport interface GetParticipantRequestQuery {}\n\nexport interface GetParticipantRequestParams {\n  id: string;\n  userId: string;\n}\n\nexport interface GetParticipantRequestBody {}\n\nexport type GetParticipantInput = GetParticipantRequestBody & GetParticipantRequestHeaders & GetParticipantRequestQuery & GetParticipantRequestParams\n\nexport type GetParticipantRequest = {\n  headers: GetParticipantRequestHeaders;\n  query: GetParticipantRequestQuery;\n  params: GetParticipantRequestParams;\n  body: GetParticipantRequestBody;\n}\n\nexport const parseReq = (input: GetParticipantInput): GetParticipantRequest & { path: string } => {\n  return {\n    path: `/v1/chat/conversations/${encodeURIComponent(input['id'])}/participants/${encodeURIComponent(input['userId'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'], 'userId': input['userId'] },\n    body: {  },\n  }\n}\n\nexport interface GetParticipantResponse {\n  /**\n   * The user object represents someone interacting with the bot within a specific integration. The same person interacting with a bot in slack and messenger will be represented with two different users.\n   */\n  participant: {\n    /**\n     * Id of the [User](#schema_user)\n     */\n    id: string;\n    /**\n     * Creation date of the [User](#schema_user) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [User](#schema_user) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [User](#schema_user). The set of [Tags](/docs/developers/concepts/tags) available on a [User](#schema_user) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Name of the [User](#schema_user)\n     */\n    name?: string;\n    /**\n     * Picture URL of the [User](#schema_user)\n     */\n    pictureUrl?: string;\n    /**\n     * Optional properties\n     */\n    properties?: {\n      [k: string]: string;\n    };\n    /**\n     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface RemoveParticipantRequestHeaders {}\n\nexport interface RemoveParticipantRequestQuery {}\n\nexport interface RemoveParticipantRequestParams {\n  id: string;\n  userId: string;\n}\n\nexport interface RemoveParticipantRequestBody {}\n\nexport type RemoveParticipantInput = RemoveParticipantRequestBody & RemoveParticipantRequestHeaders & RemoveParticipantRequestQuery & RemoveParticipantRequestParams\n\nexport type RemoveParticipantRequest = {\n  headers: RemoveParticipantRequestHeaders;\n  query: RemoveParticipantRequestQuery;\n  params: RemoveParticipantRequestParams;\n  body: RemoveParticipantRequestBody;\n}\n\nexport const parseReq = (input: RemoveParticipantInput): RemoveParticipantRequest & { path: string } => {\n  return {\n    path: `/v1/chat/conversations/${encodeURIComponent(input['id'])}/participants/${encodeURIComponent(input['userId'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'], 'userId': input['userId'] },\n    body: {  },\n  }\n}\n\nexport interface RemoveParticipantResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CreateEventRequestHeaders {}\n\nexport interface CreateEventRequestQuery {}\n\nexport interface CreateEventRequestParams {}\n\nexport interface CreateEventRequestBody {\n  /**\n   * Type of the [Event](#schema_event).\n   */\n  type: string;\n  /**\n   * Payload is the content of the event defined by the integration installed on your bot or one of the default events created by our API.\n   */\n  payload: {\n    [k: string]: any;\n  };\n  /**\n   * Schedule the Event to be sent at a specific time. Either dateTime or delay must be provided.\n   */\n  schedule?: {\n    /**\n     * When the [Event](#schema_event) will be sent, in the ISO 8601 format\n     */\n    dateTime?: string;\n    /**\n     * Delay in milliseconds before sending the [Event](#schema_event)\n     */\n    delay?: number;\n  };\n  /**\n   * ID of the [Conversation](#schema_conversation) to link the event to.\n   */\n  conversationId?: string;\n  /**\n   * ID of the [User](#schema_user) to link the event to.\n   */\n  userId?: string;\n  /**\n   * ID of the [Workflow](#schema_workflow) to link the event to.\n   */\n  workflowId?: string;\n  /**\n   * ID of the [Message](#schema_message) to link the event to.\n   */\n  messageId?: string;\n}\n\nexport type CreateEventInput = CreateEventRequestBody & CreateEventRequestHeaders & CreateEventRequestQuery & CreateEventRequestParams\n\nexport type CreateEventRequest = {\n  headers: CreateEventRequestHeaders;\n  query: CreateEventRequestQuery;\n  params: CreateEventRequestParams;\n  body: CreateEventRequestBody;\n}\n\nexport const parseReq = (input: CreateEventInput): CreateEventRequest & { path: string } => {\n  return {\n    path: `/v1/chat/events`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'type': input['type'], 'payload': input['payload'], 'schedule': input['schedule'], 'conversationId': input['conversationId'], 'userId': input['userId'], 'workflowId': input['workflowId'], 'messageId': input['messageId'] },\n  }\n}\n\nexport interface CreateEventResponse {\n  /**\n   * The event object represents an action or an occurrence.\n   */\n  event: {\n    /**\n     * Id of the [Event](#schema_event)\n     */\n    id: string;\n    /**\n     * Creation date of the [Event](#schema_event) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Type of the [Event](#schema_event).\n     */\n    type: string;\n    /**\n     * Payload is the content of the event defined by the integration installed on your bot or one of the default events created by our api.\n     */\n    payload: {\n      [k: string]: any;\n    };\n    /**\n     * ID of the [Conversation](#schema_conversation) to link the event to.\n     */\n    conversationId?: string;\n    /**\n     * ID of the [User](#schema_user) to link the event to.\n     */\n    userId?: string;\n    /**\n     * ID of the [Message](#schema_message) to link the event to.\n     */\n    messageId?: string;\n    status: \"pending\" | \"processed\" | \"ignored\" | \"failed\" | \"scheduled\" | \"canceled\";\n    /**\n     * Reason why the event failed to be processed\n     */\n    failureReason: string | null;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetEventRequestHeaders {}\n\nexport interface GetEventRequestQuery {}\n\nexport interface GetEventRequestParams {\n  id: string;\n}\n\nexport interface GetEventRequestBody {}\n\nexport type GetEventInput = GetEventRequestBody & GetEventRequestHeaders & GetEventRequestQuery & GetEventRequestParams\n\nexport type GetEventRequest = {\n  headers: GetEventRequestHeaders;\n  query: GetEventRequestQuery;\n  params: GetEventRequestParams;\n  body: GetEventRequestBody;\n}\n\nexport const parseReq = (input: GetEventInput): GetEventRequest & { path: string } => {\n  return {\n    path: `/v1/chat/events/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetEventResponse {\n  /**\n   * The event object represents an action or an occurrence.\n   */\n  event: {\n    /**\n     * Id of the [Event](#schema_event)\n     */\n    id: string;\n    /**\n     * Creation date of the [Event](#schema_event) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Type of the [Event](#schema_event).\n     */\n    type: string;\n    /**\n     * Payload is the content of the event defined by the integration installed on your bot or one of the default events created by our api.\n     */\n    payload: {\n      [k: string]: any;\n    };\n    /**\n     * ID of the [Conversation](#schema_conversation) to link the event to.\n     */\n    conversationId?: string;\n    /**\n     * ID of the [User](#schema_user) to link the event to.\n     */\n    userId?: string;\n    /**\n     * ID of the [Message](#schema_message) to link the event to.\n     */\n    messageId?: string;\n    status: \"pending\" | \"processed\" | \"ignored\" | \"failed\" | \"scheduled\" | \"canceled\";\n    /**\n     * Reason why the event failed to be processed\n     */\n    failureReason: string | null;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListEventsRequestHeaders {}\n\nexport interface ListEventsRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n  type?: string;\n  conversationId?: string;\n  userId?: string;\n  messageId?: string;\n  workflowId?: string;\n  status?: \"pending\" | \"ignored\" | \"processed\" | \"failed\" | \"scheduled\";\n}\n\nexport interface ListEventsRequestParams {}\n\nexport interface ListEventsRequestBody {}\n\nexport type ListEventsInput = ListEventsRequestBody & ListEventsRequestHeaders & ListEventsRequestQuery & ListEventsRequestParams\n\nexport type ListEventsRequest = {\n  headers: ListEventsRequestHeaders;\n  query: ListEventsRequestQuery;\n  params: ListEventsRequestParams;\n  body: ListEventsRequestBody;\n}\n\nexport const parseReq = (input: ListEventsInput): ListEventsRequest & { path: string } => {\n  return {\n    path: `/v1/chat/events`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'], 'type': input['type'], 'conversationId': input['conversationId'], 'userId': input['userId'], 'messageId': input['messageId'], 'workflowId': input['workflowId'], 'status': input['status'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListEventsResponse {\n  events: {\n    /**\n     * Id of the [Event](#schema_event)\n     */\n    id: string;\n    /**\n     * Creation date of the [Event](#schema_event) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Type of the [Event](#schema_event).\n     */\n    type: string;\n    /**\n     * Payload is the content of the event defined by the integration installed on your bot or one of the default events created by our api.\n     */\n    payload: {\n      [k: string]: any;\n    };\n    /**\n     * ID of the [Conversation](#schema_conversation) to link the event to.\n     */\n    conversationId?: string;\n    /**\n     * ID of the [User](#schema_user) to link the event to.\n     */\n    userId?: string;\n    /**\n     * ID of the [Message](#schema_message) to link the event to.\n     */\n    messageId?: string;\n    status: \"pending\" | \"processed\" | \"ignored\" | \"failed\" | \"scheduled\" | \"canceled\";\n    /**\n     * Reason why the event failed to be processed\n     */\n    failureReason: string | null;\n  }[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CancelScheduledEventRequestHeaders {}\n\nexport interface CancelScheduledEventRequestQuery {}\n\nexport interface CancelScheduledEventRequestParams {\n  id: string;\n}\n\nexport interface CancelScheduledEventRequestBody {}\n\nexport type CancelScheduledEventInput = CancelScheduledEventRequestBody & CancelScheduledEventRequestHeaders & CancelScheduledEventRequestQuery & CancelScheduledEventRequestParams\n\nexport type CancelScheduledEventRequest = {\n  headers: CancelScheduledEventRequestHeaders;\n  query: CancelScheduledEventRequestQuery;\n  params: CancelScheduledEventRequestParams;\n  body: CancelScheduledEventRequestBody;\n}\n\nexport const parseReq = (input: CancelScheduledEventInput): CancelScheduledEventRequest & { path: string } => {\n  return {\n    path: `/v1/chat/events/scheduled/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface CancelScheduledEventResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CreateMessageRequestHeaders {}\n\nexport interface CreateMessageRequestQuery {}\n\nexport interface CreateMessageRequestParams {}\n\nexport interface CreateMessageRequestBody {\n  /**\n   * Payload is the content type of the message. Accepted payload options: Text, Image, Choice, Dropdown, Card, Carousel, File, Audio, Video, Location\n   */\n  payload: {\n    [k: string]: any;\n  };\n  /**\n   * ID of the [User](#schema_user)\n   */\n  userId: string;\n  /**\n   * ID of the [Conversation](#schema_conversation)\n   */\n  conversationId: string;\n  /**\n   * Type of the [Message](#schema_message) represents the resource type that the message is related to\n   */\n  type: string;\n  /**\n   * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [Message](#schema_message). The set of [Tags](/docs/developers/concepts/tags) available on a [Message](#schema_message) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n   */\n  tags: {\n    [k: string]: string;\n  };\n  /**\n   * Schedule the Message to be sent at a specific time. Either dateTime or delay must be provided.\n   */\n  schedule?: {\n    /**\n     * When the [Message](#schema_message) will be sent, in the ISO 8601 format\n     */\n    dateTime?: string;\n    /**\n     * Delay in milliseconds before sending the [Message](#schema_message)\n     */\n    delay?: number;\n  };\n  origin?: \"synthetic\";\n}\n\nexport type CreateMessageInput = CreateMessageRequestBody & CreateMessageRequestHeaders & CreateMessageRequestQuery & CreateMessageRequestParams\n\nexport type CreateMessageRequest = {\n  headers: CreateMessageRequestHeaders;\n  query: CreateMessageRequestQuery;\n  params: CreateMessageRequestParams;\n  body: CreateMessageRequestBody;\n}\n\nexport const parseReq = (input: CreateMessageInput): CreateMessageRequest & { path: string } => {\n  return {\n    path: `/v1/chat/messages`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'payload': input['payload'], 'userId': input['userId'], 'conversationId': input['conversationId'], 'type': input['type'], 'tags': input['tags'], 'schedule': input['schedule'], 'origin': input['origin'] },\n  }\n}\n\nexport interface CreateMessageResponse {\n  /**\n   * The Message object represents a message in a [Conversation](#schema_conversation) for a specific [User](#schema_user).\n   */\n  message: {\n    /**\n     * Id of the [Message](#schema_message)\n     */\n    id: string;\n    /**\n     * Creation date of the [Message](#schema_message) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Update date of the [Message](#schema_message) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Type of the [Message](#schema_message) represents the resource type that the message is related to\n     */\n    type: string;\n    /**\n     * Payload is the content type of the message. Accepted payload options: Text, Image, Choice, Dropdown, Card, Carousel, File, Audio, Video, Location\n     */\n    payload: {\n      [k: string]: any;\n    };\n    /**\n     * Direction of the message (`incoming` or `outgoing`).\n     */\n    direction: \"incoming\" | \"outgoing\";\n    /**\n     * ID of the [User](#schema_user)\n     */\n    userId: string;\n    /**\n     * ID of the [Conversation](#schema_conversation)\n     */\n    conversationId: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [Conversation](#schema_conversation). The set of [Tags](/docs/developers/concepts/tags) available on a [Conversation](#schema_conversation) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Origin of the message (`synthetic`).\n     */\n    origin?: \"synthetic\";\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetOrCreateMessageRequestHeaders {}\n\nexport interface GetOrCreateMessageRequestQuery {}\n\nexport interface GetOrCreateMessageRequestParams {}\n\nexport interface GetOrCreateMessageRequestBody {\n  /**\n   * Payload is the content type of the message. Accepted payload options: Text, Image, Choice, Dropdown, Card, Carousel, File, Audio, Video, Location\n   */\n  payload?: {\n    [k: string]: any;\n  };\n  /**\n   * ID of the [User](#schema_user)\n   */\n  userId: string;\n  /**\n   * ID of the [Conversation](#schema_conversation)\n   */\n  conversationId: string;\n  /**\n   * Type of the [Message](#schema_message) represents the resource type that the message is related to\n   */\n  type: string;\n  /**\n   * Tags for the message. Set to null or empty string to remove.\n   */\n  tags: {\n    [k: string]: string | null;\n  };\n  /**\n   * Schedule the Message to be sent at a specific time. Either dateTime or delay must be provided.\n   */\n  schedule?: {\n    /**\n     * When the [Message](#schema_message) will be sent, in the ISO 8601 format\n     */\n    dateTime?: string;\n    /**\n     * Delay in milliseconds before sending the [Message](#schema_message)\n     */\n    delay?: number;\n  };\n  origin?: \"synthetic\";\n  /**\n   * Optional list of tag names to use for strict matching when looking up existing messages. If provided, all specified tags must match exactly for a message to be considered a match. For example, with an existing message whose tags are {\"foo\": \"a\", \"bar\": \"b\", baz: \"c\"}: Without this parameter, ALL tags must match exactly. With [\"bar\",\"baz\"], all listed tags must match their values, and other tags are not considered.\n   */\n  discriminateByTags?: string[];\n}\n\nexport type GetOrCreateMessageInput = GetOrCreateMessageRequestBody & GetOrCreateMessageRequestHeaders & GetOrCreateMessageRequestQuery & GetOrCreateMessageRequestParams\n\nexport type GetOrCreateMessageRequest = {\n  headers: GetOrCreateMessageRequestHeaders;\n  query: GetOrCreateMessageRequestQuery;\n  params: GetOrCreateMessageRequestParams;\n  body: GetOrCreateMessageRequestBody;\n}\n\nexport const parseReq = (input: GetOrCreateMessageInput): GetOrCreateMessageRequest & { path: string } => {\n  return {\n    path: `/v1/chat/messages/get-or-create`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'payload': input['payload'], 'userId': input['userId'], 'conversationId': input['conversationId'], 'type': input['type'], 'tags': input['tags'], 'schedule': input['schedule'], 'origin': input['origin'], 'discriminateByTags': input['discriminateByTags'] },\n  }\n}\n\nexport interface GetOrCreateMessageResponse {\n  /**\n   * The Message object represents a message in a [Conversation](#schema_conversation) for a specific [User](#schema_user).\n   */\n  message: {\n    /**\n     * Id of the [Message](#schema_message)\n     */\n    id: string;\n    /**\n     * Creation date of the [Message](#schema_message) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Update date of the [Message](#schema_message) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Type of the [Message](#schema_message) represents the resource type that the message is related to\n     */\n    type: string;\n    /**\n     * Payload is the content type of the message. Accepted payload options: Text, Image, Choice, Dropdown, Card, Carousel, File, Audio, Video, Location\n     */\n    payload: {\n      [k: string]: any;\n    };\n    /**\n     * Direction of the message (`incoming` or `outgoing`).\n     */\n    direction: \"incoming\" | \"outgoing\";\n    /**\n     * ID of the [User](#schema_user)\n     */\n    userId: string;\n    /**\n     * ID of the [Conversation](#schema_conversation)\n     */\n    conversationId: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [Conversation](#schema_conversation). The set of [Tags](/docs/developers/concepts/tags) available on a [Conversation](#schema_conversation) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Origin of the message (`synthetic`).\n     */\n    origin?: \"synthetic\";\n  };\n  meta: {\n    created: boolean;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetMessageRequestHeaders {}\n\nexport interface GetMessageRequestQuery {}\n\nexport interface GetMessageRequestParams {\n  id: string;\n}\n\nexport interface GetMessageRequestBody {}\n\nexport type GetMessageInput = GetMessageRequestBody & GetMessageRequestHeaders & GetMessageRequestQuery & GetMessageRequestParams\n\nexport type GetMessageRequest = {\n  headers: GetMessageRequestHeaders;\n  query: GetMessageRequestQuery;\n  params: GetMessageRequestParams;\n  body: GetMessageRequestBody;\n}\n\nexport const parseReq = (input: GetMessageInput): GetMessageRequest & { path: string } => {\n  return {\n    path: `/v1/chat/messages/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetMessageResponse {\n  /**\n   * The Message object represents a message in a [Conversation](#schema_conversation) for a specific [User](#schema_user).\n   */\n  message: {\n    /**\n     * Id of the [Message](#schema_message)\n     */\n    id: string;\n    /**\n     * Creation date of the [Message](#schema_message) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Update date of the [Message](#schema_message) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Type of the [Message](#schema_message) represents the resource type that the message is related to\n     */\n    type: string;\n    /**\n     * Payload is the content type of the message. Accepted payload options: Text, Image, Choice, Dropdown, Card, Carousel, File, Audio, Video, Location\n     */\n    payload: {\n      [k: string]: any;\n    };\n    /**\n     * Direction of the message (`incoming` or `outgoing`).\n     */\n    direction: \"incoming\" | \"outgoing\";\n    /**\n     * ID of the [User](#schema_user)\n     */\n    userId: string;\n    /**\n     * ID of the [Conversation](#schema_conversation)\n     */\n    conversationId: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [Conversation](#schema_conversation). The set of [Tags](/docs/developers/concepts/tags) available on a [Conversation](#schema_conversation) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Origin of the message (`synthetic`).\n     */\n    origin?: \"synthetic\";\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface UpdateMessageRequestHeaders {}\n\nexport interface UpdateMessageRequestQuery {}\n\nexport interface UpdateMessageRequestParams {\n  id: string;\n}\n\nexport interface UpdateMessageRequestBody {\n  /**\n   * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [Message](#schema_message). The set of [Tags](/docs/developers/concepts/tags) available on a [Message](#schema_message) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Set to null or empty string to remove.\n   */\n  tags?: {\n    [k: string]: string | null;\n  };\n  /**\n   * Payload is the content type of the message. Accepted payload options: Text, Image, Choice, Dropdown, Card, Carousel, File, Audio, Video, Location\n   */\n  payload?: {\n    [k: string]: any;\n  };\n}\n\nexport type UpdateMessageInput = UpdateMessageRequestBody & UpdateMessageRequestHeaders & UpdateMessageRequestQuery & UpdateMessageRequestParams\n\nexport type UpdateMessageRequest = {\n  headers: UpdateMessageRequestHeaders;\n  query: UpdateMessageRequestQuery;\n  params: UpdateMessageRequestParams;\n  body: UpdateMessageRequestBody;\n}\n\nexport const parseReq = (input: UpdateMessageInput): UpdateMessageRequest & { path: string } => {\n  return {\n    path: `/v1/chat/messages/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: { 'tags': input['tags'], 'payload': input['payload'] },\n  }\n}\n\nexport interface UpdateMessageResponse {\n  /**\n   * The Message object represents a message in a [Conversation](#schema_conversation) for a specific [User](#schema_user).\n   */\n  message: {\n    /**\n     * Id of the [Message](#schema_message)\n     */\n    id: string;\n    /**\n     * Creation date of the [Message](#schema_message) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Update date of the [Message](#schema_message) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Type of the [Message](#schema_message) represents the resource type that the message is related to\n     */\n    type: string;\n    /**\n     * Payload is the content type of the message. Accepted payload options: Text, Image, Choice, Dropdown, Card, Carousel, File, Audio, Video, Location\n     */\n    payload: {\n      [k: string]: any;\n    };\n    /**\n     * Direction of the message (`incoming` or `outgoing`).\n     */\n    direction: \"incoming\" | \"outgoing\";\n    /**\n     * ID of the [User](#schema_user)\n     */\n    userId: string;\n    /**\n     * ID of the [Conversation](#schema_conversation)\n     */\n    conversationId: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [Conversation](#schema_conversation). The set of [Tags](/docs/developers/concepts/tags) available on a [Conversation](#schema_conversation) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Origin of the message (`synthetic`).\n     */\n    origin?: \"synthetic\";\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListMessagesRequestHeaders {}\n\nexport interface ListMessagesRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n  conversationId?: string;\n  tags?: {\n    [k: string]: string;\n  };\n  afterDate?: string;\n  beforeDate?: string;\n}\n\nexport interface ListMessagesRequestParams {}\n\nexport interface ListMessagesRequestBody {}\n\nexport type ListMessagesInput = ListMessagesRequestBody & ListMessagesRequestHeaders & ListMessagesRequestQuery & ListMessagesRequestParams\n\nexport type ListMessagesRequest = {\n  headers: ListMessagesRequestHeaders;\n  query: ListMessagesRequestQuery;\n  params: ListMessagesRequestParams;\n  body: ListMessagesRequestBody;\n}\n\nexport const parseReq = (input: ListMessagesInput): ListMessagesRequest & { path: string } => {\n  return {\n    path: `/v1/chat/messages`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'], 'conversationId': input['conversationId'], 'tags': input['tags'], 'afterDate': input['afterDate'], 'beforeDate': input['beforeDate'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListMessagesResponse {\n  messages: {\n    /**\n     * Id of the [Message](#schema_message)\n     */\n    id: string;\n    /**\n     * Creation date of the [Message](#schema_message) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Update date of the [Message](#schema_message) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Type of the [Message](#schema_message) represents the resource type that the message is related to\n     */\n    type: string;\n    /**\n     * Payload is the content type of the message. Accepted payload options: Text, Image, Choice, Dropdown, Card, Carousel, File, Audio, Video, Location\n     */\n    payload: {\n      [k: string]: any;\n    };\n    /**\n     * Direction of the message (`incoming` or `outgoing`).\n     */\n    direction: \"incoming\" | \"outgoing\";\n    /**\n     * ID of the [User](#schema_user)\n     */\n    userId: string;\n    /**\n     * ID of the [Conversation](#schema_conversation)\n     */\n    conversationId: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [Conversation](#schema_conversation). The set of [Tags](/docs/developers/concepts/tags) available on a [Conversation](#schema_conversation) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Origin of the message (`synthetic`).\n     */\n    origin?: \"synthetic\";\n  }[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface DeleteMessageRequestHeaders {}\n\nexport interface DeleteMessageRequestQuery {}\n\nexport interface DeleteMessageRequestParams {\n  id: string;\n}\n\nexport interface DeleteMessageRequestBody {}\n\nexport type DeleteMessageInput = DeleteMessageRequestBody & DeleteMessageRequestHeaders & DeleteMessageRequestQuery & DeleteMessageRequestParams\n\nexport type DeleteMessageRequest = {\n  headers: DeleteMessageRequestHeaders;\n  query: DeleteMessageRequestQuery;\n  params: DeleteMessageRequestParams;\n  body: DeleteMessageRequestBody;\n}\n\nexport const parseReq = (input: DeleteMessageInput): DeleteMessageRequest & { path: string } => {\n  return {\n    path: `/v1/chat/messages/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface DeleteMessageResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface InitializeIncomingMessageRequestHeaders {}\n\nexport interface InitializeIncomingMessageRequestQuery {}\n\nexport interface InitializeIncomingMessageRequestParams {}\n\nexport interface InitializeIncomingMessageRequestBody {\n  userId?: string;\n  user?: {\n    /**\n     * Tags for the [User](#schema_user)\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * @deprecated\n     * [DEPRECATED] To create a [User](#schema_user) from within a bot, call an action of the integration instead.\n     */\n    integrationName?: string;\n    /**\n     * Name of the user\n     */\n    name?: string;\n    /**\n     * URI of the user picture\n     */\n    pictureUrl?: string;\n    /**\n     * **EXPERIMENTAL** - Optional shared properties that can be accessed and modified by both the bot and any of its integrations.\n     */\n    properties?: {\n      [k: string]: string;\n    };\n    /**\n     * @deprecated\n     * DEPRECATED - Use properties instead.\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n    /**\n     * Optional list of tag names to use for strict matching when looking up existing messages. If provided, all specified tags must match exactly for a message to be considered a match. For example, with an existing message whose tags are {\"foo\": \"a\", \"bar\": \"b\", baz: \"c\"}: Without this parameter, ALL tags must match exactly. With [\"bar\",\"baz\"], all listed tags must match their values, and other tags are not considered.\n     */\n    discriminateByTags: string[];\n  };\n  conversationId?: string;\n  conversation?: {\n    /**\n     * Channel name\n     */\n    channel: string;\n    /**\n     * Tags for the [Conversation](#schema_conversation)\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * @deprecated\n     * [DEPRECATED] To create a conversation from within a bot, call an action of the integration instead.\n     */\n    integrationName?: string;\n    /**\n     * **EXPERIMENTAL** - Optional shared properties that can be accessed and modified by both the bot and any of its integrations.\n     */\n    properties?: {\n      [k: string]: string;\n    };\n    /**\n     * Optional list of tag names to use for strict matching when looking up existing messages. If provided, all specified tags must match exactly for a message to be considered a match. For example, with an existing message whose tags are {\"foo\": \"a\", \"bar\": \"b\", baz: \"c\"}: Without this parameter, ALL tags must match exactly. With [\"bar\",\"baz\"], all listed tags must match their values, and other tags are not considered.\n     */\n    discriminateByTags: string[];\n  };\n  message?: {\n    /**\n     * Payload is the content type of the message. Accepted payload options: Text, Image, Choice, Dropdown, Card, Carousel, File, Audio, Video, Location\n     */\n    payload: {\n      [k: string]: any;\n    };\n    /**\n     * Type of the [Message](#schema_message) represents the resource type that the message is related to\n     */\n    type: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [Message](#schema_message). The set of [Tags](/docs/developers/concepts/tags) available on a [Message](#schema_message) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n    origin?: \"synthetic\";\n    /**\n     * Optional list of tag names to use for strict matching when looking up existing messages. If provided, all specified tags must match exactly for a message to be considered a match. For example, with an existing message whose tags are {\"foo\": \"a\", \"bar\": \"b\", baz: \"c\"}: Without this parameter, ALL tags must match exactly. With [\"bar\",\"baz\"], all listed tags must match their values, and other tags are not considered.\n     */\n    discriminateByTags: string[];\n  };\n}\n\nexport type InitializeIncomingMessageInput = InitializeIncomingMessageRequestBody & InitializeIncomingMessageRequestHeaders & InitializeIncomingMessageRequestQuery & InitializeIncomingMessageRequestParams\n\nexport type InitializeIncomingMessageRequest = {\n  headers: InitializeIncomingMessageRequestHeaders;\n  query: InitializeIncomingMessageRequestQuery;\n  params: InitializeIncomingMessageRequestParams;\n  body: InitializeIncomingMessageRequestBody;\n}\n\nexport const parseReq = (input: InitializeIncomingMessageInput): InitializeIncomingMessageRequest & { path: string } => {\n  return {\n    path: `/v1/chat/initialize-incoming-message`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'userId': input['userId'], 'user': input['user'], 'conversationId': input['conversationId'], 'conversation': input['conversation'], 'message': input['message'] },\n  }\n}\n\nexport interface InitializeIncomingMessageResponse {\n  /**\n   * The user object represents someone interacting with the bot within a specific integration. The same person interacting with a bot in slack and messenger will be represented with two different users.\n   */\n  user: {\n    /**\n     * Id of the [User](#schema_user)\n     */\n    id: string;\n    /**\n     * Creation date of the [User](#schema_user) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [User](#schema_user) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [User](#schema_user). The set of [Tags](/docs/developers/concepts/tags) available on a [User](#schema_user) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Name of the [User](#schema_user)\n     */\n    name?: string;\n    /**\n     * Picture URL of the [User](#schema_user)\n     */\n    pictureUrl?: string;\n    /**\n     * Optional properties\n     */\n    properties?: {\n      [k: string]: string;\n    };\n    /**\n     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n  /**\n   * The [Conversation](#schema_conversation) object represents an exchange of messages between one or more users. A [Conversation](#schema_conversation) is always linked to an integration's channels. For example, a Slack channel represents a conversation.\n   */\n  conversation: {\n    /**\n     * Id of the [Conversation](#schema_conversation)\n     */\n    id: string;\n    /**\n     * @deprecated\n     * Unused. This field will be removed in the future.\n     */\n    currentTaskId?: string;\n    /**\n     * Creation date of the [Conversation](#schema_conversation) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Conversation](#schema_conversation) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Name of the channel where the [Conversation](#schema_conversation) is happening\n     */\n    channel: string;\n    /**\n     * Name of the integration that created the [Conversation](#schema_conversation)\n     */\n    integration: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [Conversation](#schema_conversation). The set of [Tags](/docs/developers/concepts/tags) available on a [Conversation](#schema_conversation) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Number of messages in the conversation\n     */\n    messageCount: number;\n    /**\n     * **EXPERIMENTAL** - Optional shared properties that can be accessed and modified by both the bot and any of its integrations.\n     */\n    properties?: {\n      [k: string]: string;\n    };\n  };\n  /**\n   * The Message object represents a message in a [Conversation](#schema_conversation) for a specific [User](#schema_user).\n   */\n  message?: {\n    /**\n     * Id of the [Message](#schema_message)\n     */\n    id: string;\n    /**\n     * Creation date of the [Message](#schema_message) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Update date of the [Message](#schema_message) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Type of the [Message](#schema_message) represents the resource type that the message is related to\n     */\n    type: string;\n    /**\n     * Payload is the content type of the message. Accepted payload options: Text, Image, Choice, Dropdown, Card, Carousel, File, Audio, Video, Location\n     */\n    payload: {\n      [k: string]: any;\n    };\n    /**\n     * Direction of the message (`incoming` or `outgoing`).\n     */\n    direction: \"incoming\" | \"outgoing\";\n    /**\n     * ID of the [User](#schema_user)\n     */\n    userId: string;\n    /**\n     * ID of the [Conversation](#schema_conversation)\n     */\n    conversationId: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [Conversation](#schema_conversation). The set of [Tags](/docs/developers/concepts/tags) available on a [Conversation](#schema_conversation) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Origin of the message (`synthetic`).\n     */\n    origin?: \"synthetic\";\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ImportMessagesRequestHeaders {}\n\nexport interface ImportMessagesRequestQuery {}\n\nexport interface ImportMessagesRequestParams {}\n\nexport interface ImportMessagesRequestBody {\n  /**\n   * @maxItems 100\n   */\n  messages: {\n    /**\n     * Payload is the content type of the message. Accepted payload options: Text, Image, Choice, Dropdown, Card, Carousel, File, Audio, Video, Location\n     */\n    payload: {\n      [k: string]: any;\n    };\n    /**\n     * ID of the [User](#schema_user)\n     */\n    userId: string;\n    /**\n     * ID of the [Conversation](#schema_conversation)\n     */\n    conversationId: string;\n    /**\n     * Type of the [Message](#schema_message) represents the resource type that the message is related to\n     */\n    type: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [Message](#schema_message). The set of [Tags](/docs/developers/concepts/tags) available on a [Message](#schema_message) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Creation date of the [Message](#schema_message) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Optional list of tag names to use for strict matching when looking up existing messages. If provided, all specified tags must match exactly for a message to be considered a match. For example, with an existing message whose tags are {\"foo\": \"a\", \"bar\": \"b\", baz: \"c\"}: Without this parameter, ALL tags must match exactly. With [\"bar\",\"baz\"], all listed tags must match their values, and other tags are not considered.\n     */\n    discriminateByTags: string[];\n  }[];\n}\n\nexport type ImportMessagesInput = ImportMessagesRequestBody & ImportMessagesRequestHeaders & ImportMessagesRequestQuery & ImportMessagesRequestParams\n\nexport type ImportMessagesRequest = {\n  headers: ImportMessagesRequestHeaders;\n  query: ImportMessagesRequestQuery;\n  params: ImportMessagesRequestParams;\n  body: ImportMessagesRequestBody;\n}\n\nexport const parseReq = (input: ImportMessagesInput): ImportMessagesRequest & { path: string } => {\n  return {\n    path: `/v1/chat/messages/import-messages`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'messages': input['messages'] },\n  }\n}\n\nexport interface ImportMessagesResponse {\n  messages: {\n    /**\n     * Id of the [Message](#schema_message)\n     */\n    id: string;\n    /**\n     * Creation date of the [Message](#schema_message) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Update date of the [Message](#schema_message) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Type of the [Message](#schema_message) represents the resource type that the message is related to\n     */\n    type: string;\n    /**\n     * Payload is the content type of the message. Accepted payload options: Text, Image, Choice, Dropdown, Card, Carousel, File, Audio, Video, Location\n     */\n    payload: {\n      [k: string]: any;\n    };\n    /**\n     * Direction of the message (`incoming` or `outgoing`).\n     */\n    direction: \"incoming\" | \"outgoing\";\n    /**\n     * ID of the [User](#schema_user)\n     */\n    userId: string;\n    /**\n     * ID of the [Conversation](#schema_conversation)\n     */\n    conversationId: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [Conversation](#schema_conversation). The set of [Tags](/docs/developers/concepts/tags) available on a [Conversation](#schema_conversation) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Origin of the message (`synthetic`).\n     */\n    origin?: \"synthetic\";\n  }[];\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CreateUserRequestHeaders {}\n\nexport interface CreateUserRequestQuery {}\n\nexport interface CreateUserRequestParams {}\n\nexport interface CreateUserRequestBody {\n  /**\n   * Tags for the [User](#schema_user)\n   */\n  tags: {\n    [k: string]: string;\n  };\n  /**\n   * @deprecated\n   * [DEPRECATED] To create a [User](#schema_user) from within a bot, call an action of the integration instead.\n   */\n  integrationName?: string;\n  /**\n   * Name of the user\n   */\n  name?: string;\n  /**\n   * URI of the user picture\n   */\n  pictureUrl?: string;\n  /**\n   * **EXPERIMENTAL** - Optional shared properties that can be accessed and modified by both the bot and any of its integrations.\n   */\n  properties?: {\n    [k: string]: string;\n  };\n  /**\n   * @deprecated\n   * DEPRECATED - Use properties instead.\n   */\n  attributes?: {\n    [k: string]: string;\n  };\n}\n\nexport type CreateUserInput = CreateUserRequestBody & CreateUserRequestHeaders & CreateUserRequestQuery & CreateUserRequestParams\n\nexport type CreateUserRequest = {\n  headers: CreateUserRequestHeaders;\n  query: CreateUserRequestQuery;\n  params: CreateUserRequestParams;\n  body: CreateUserRequestBody;\n}\n\nexport const parseReq = (input: CreateUserInput): CreateUserRequest & { path: string } => {\n  return {\n    path: `/v1/chat/users`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'tags': input['tags'], 'integrationName': input['integrationName'], 'name': input['name'], 'pictureUrl': input['pictureUrl'], 'properties': input['properties'], 'attributes': input['attributes'] },\n  }\n}\n\nexport interface CreateUserResponse {\n  /**\n   * The user object represents someone interacting with the bot within a specific integration. The same person interacting with a bot in slack and messenger will be represented with two different users.\n   */\n  user: {\n    /**\n     * Id of the [User](#schema_user)\n     */\n    id: string;\n    /**\n     * Creation date of the [User](#schema_user) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [User](#schema_user) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [User](#schema_user). The set of [Tags](/docs/developers/concepts/tags) available on a [User](#schema_user) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Name of the [User](#schema_user)\n     */\n    name?: string;\n    /**\n     * Picture URL of the [User](#schema_user)\n     */\n    pictureUrl?: string;\n    /**\n     * Optional properties\n     */\n    properties?: {\n      [k: string]: string;\n    };\n    /**\n     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetUserRequestHeaders {}\n\nexport interface GetUserRequestQuery {}\n\nexport interface GetUserRequestParams {\n  id: string;\n}\n\nexport interface GetUserRequestBody {}\n\nexport type GetUserInput = GetUserRequestBody & GetUserRequestHeaders & GetUserRequestQuery & GetUserRequestParams\n\nexport type GetUserRequest = {\n  headers: GetUserRequestHeaders;\n  query: GetUserRequestQuery;\n  params: GetUserRequestParams;\n  body: GetUserRequestBody;\n}\n\nexport const parseReq = (input: GetUserInput): GetUserRequest & { path: string } => {\n  return {\n    path: `/v1/chat/users/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetUserResponse {\n  /**\n   * The user object represents someone interacting with the bot within a specific integration. The same person interacting with a bot in slack and messenger will be represented with two different users.\n   */\n  user: {\n    /**\n     * Id of the [User](#schema_user)\n     */\n    id: string;\n    /**\n     * Creation date of the [User](#schema_user) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [User](#schema_user) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [User](#schema_user). The set of [Tags](/docs/developers/concepts/tags) available on a [User](#schema_user) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Name of the [User](#schema_user)\n     */\n    name?: string;\n    /**\n     * Picture URL of the [User](#schema_user)\n     */\n    pictureUrl?: string;\n    /**\n     * Optional properties\n     */\n    properties?: {\n      [k: string]: string;\n    };\n    /**\n     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListUsersRequestHeaders {}\n\nexport interface ListUsersRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n  conversationId?: string;\n  tags?: {\n    [k: string]: string;\n  };\n  afterDate?: string;\n  beforeDate?: string;\n  rangeField?: \"updatedAt\" | \"createdAt\";\n  sortField?: \"updatedAt\" | \"createdAt\";\n  sortDirection?: \"asc\" | \"desc\";\n}\n\nexport interface ListUsersRequestParams {}\n\nexport interface ListUsersRequestBody {}\n\nexport type ListUsersInput = ListUsersRequestBody & ListUsersRequestHeaders & ListUsersRequestQuery & ListUsersRequestParams\n\nexport type ListUsersRequest = {\n  headers: ListUsersRequestHeaders;\n  query: ListUsersRequestQuery;\n  params: ListUsersRequestParams;\n  body: ListUsersRequestBody;\n}\n\nexport const parseReq = (input: ListUsersInput): ListUsersRequest & { path: string } => {\n  return {\n    path: `/v1/chat/users`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'], 'conversationId': input['conversationId'], 'tags': input['tags'], 'afterDate': input['afterDate'], 'beforeDate': input['beforeDate'], 'rangeField': input['rangeField'], 'sortField': input['sortField'], 'sortDirection': input['sortDirection'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListUsersResponse {\n  users: {\n    /**\n     * Id of the [User](#schema_user)\n     */\n    id: string;\n    /**\n     * Creation date of the [User](#schema_user) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [User](#schema_user) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [User](#schema_user). The set of [Tags](/docs/developers/concepts/tags) available on a [User](#schema_user) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Name of the [User](#schema_user)\n     */\n    name?: string;\n    /**\n     * Picture URL of the [User](#schema_user)\n     */\n    pictureUrl?: string;\n    /**\n     * Optional properties\n     */\n    properties?: {\n      [k: string]: string;\n    };\n    /**\n     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  }[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetOrCreateUserRequestHeaders {}\n\nexport interface GetOrCreateUserRequestQuery {}\n\nexport interface GetOrCreateUserRequestParams {}\n\nexport interface GetOrCreateUserRequestBody {\n  /**\n   * Tags for the user. Set to null or empty string to remove.\n   */\n  tags: {\n    [k: string]: string | null;\n  };\n  /**\n   * @deprecated\n   * [DEPRECATED] To create a [User](#schema_user) from within a bot, call an action of the integration instead.\n   */\n  integrationName?: string;\n  /**\n   * Name of the user\n   */\n  name?: string;\n  /**\n   * URI of the user picture\n   */\n  pictureUrl?: string;\n  /**\n   * **EXPERIMENTAL** - Optional shared properties. Set individual properties to null or empty string to remove them.\n   */\n  properties?: {\n    [k: string]: string | null;\n  };\n  /**\n   * @deprecated\n   * DEPRECATED - Use properties instead.\n   */\n  attributes?: {\n    [k: string]: string | null;\n  };\n  /**\n   * Optional list of tag names to use for strict matching when looking up existing users. If provided, all specified tags must match exactly for a user to be considered a match. For example, with an existing user whose tags are {\"foo\": \"a\", \"bar\": \"b\", baz: \"c\"}: Without this parameter, ALL tags must match exactly. With [\"bar\",\"baz\"], all listed tags must match their values, and other tags are not considered.\n   */\n  discriminateByTags?: string[];\n}\n\nexport type GetOrCreateUserInput = GetOrCreateUserRequestBody & GetOrCreateUserRequestHeaders & GetOrCreateUserRequestQuery & GetOrCreateUserRequestParams\n\nexport type GetOrCreateUserRequest = {\n  headers: GetOrCreateUserRequestHeaders;\n  query: GetOrCreateUserRequestQuery;\n  params: GetOrCreateUserRequestParams;\n  body: GetOrCreateUserRequestBody;\n}\n\nexport const parseReq = (input: GetOrCreateUserInput): GetOrCreateUserRequest & { path: string } => {\n  return {\n    path: `/v1/chat/users/get-or-create`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'tags': input['tags'], 'integrationName': input['integrationName'], 'name': input['name'], 'pictureUrl': input['pictureUrl'], 'properties': input['properties'], 'attributes': input['attributes'], 'discriminateByTags': input['discriminateByTags'] },\n  }\n}\n\nexport interface GetOrCreateUserResponse {\n  /**\n   * The user object represents someone interacting with the bot within a specific integration. The same person interacting with a bot in slack and messenger will be represented with two different users.\n   */\n  user: {\n    /**\n     * Id of the [User](#schema_user)\n     */\n    id: string;\n    /**\n     * Creation date of the [User](#schema_user) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [User](#schema_user) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [User](#schema_user). The set of [Tags](/docs/developers/concepts/tags) available on a [User](#schema_user) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Name of the [User](#schema_user)\n     */\n    name?: string;\n    /**\n     * Picture URL of the [User](#schema_user)\n     */\n    pictureUrl?: string;\n    /**\n     * Optional properties\n     */\n    properties?: {\n      [k: string]: string;\n    };\n    /**\n     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n  meta: {\n    created: boolean;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface UpdateUserRequestHeaders {}\n\nexport interface UpdateUserRequestQuery {}\n\nexport interface UpdateUserRequestParams {\n  id: string;\n}\n\nexport interface UpdateUserRequestBody {\n  /**\n   * Tags for the [User](#schema_user). Set to null or empty string to remove.\n   */\n  tags?: {\n    [k: string]: string | null;\n  };\n  /**\n   * Name of the user\n   */\n  name?: string | null;\n  /**\n   * URI of the user picture\n   */\n  pictureUrl?: string | null;\n  /**\n   * @deprecated\n   * DEPRECATED - Use properties instead.\n   */\n  attributes?: {\n    [k: string]: string | null;\n  };\n  /**\n   * **EXPERIMENTAL** - Optional shared properties that can be accessed and modified by both the bot and any of its integrations. Set individual properties to null to remove them.\n   */\n  properties?: {\n    [k: string]: string | null;\n  };\n}\n\nexport type UpdateUserInput = UpdateUserRequestBody & UpdateUserRequestHeaders & UpdateUserRequestQuery & UpdateUserRequestParams\n\nexport type UpdateUserRequest = {\n  headers: UpdateUserRequestHeaders;\n  query: UpdateUserRequestQuery;\n  params: UpdateUserRequestParams;\n  body: UpdateUserRequestBody;\n}\n\nexport const parseReq = (input: UpdateUserInput): UpdateUserRequest & { path: string } => {\n  return {\n    path: `/v1/chat/users/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: { 'tags': input['tags'], 'name': input['name'], 'pictureUrl': input['pictureUrl'], 'attributes': input['attributes'], 'properties': input['properties'] },\n  }\n}\n\nexport interface UpdateUserResponse {\n  /**\n   * The user object represents someone interacting with the bot within a specific integration. The same person interacting with a bot in slack and messenger will be represented with two different users.\n   */\n  user: {\n    /**\n     * Id of the [User](#schema_user)\n     */\n    id: string;\n    /**\n     * Creation date of the [User](#schema_user) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [User](#schema_user) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [User](#schema_user). The set of [Tags](/docs/developers/concepts/tags) available on a [User](#schema_user) is restricted by the list of [Tags](/docs/developers/concepts/tags) defined previously by the [Bot](#schema_bot). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Name of the [User](#schema_user)\n     */\n    name?: string;\n    /**\n     * Picture URL of the [User](#schema_user)\n     */\n    pictureUrl?: string;\n    /**\n     * Optional properties\n     */\n    properties?: {\n      [k: string]: string;\n    };\n    /**\n     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface DeleteUserRequestHeaders {}\n\nexport interface DeleteUserRequestQuery {}\n\nexport interface DeleteUserRequestParams {\n  id: string;\n}\n\nexport interface DeleteUserRequestBody {}\n\nexport type DeleteUserInput = DeleteUserRequestBody & DeleteUserRequestHeaders & DeleteUserRequestQuery & DeleteUserRequestParams\n\nexport type DeleteUserRequest = {\n  headers: DeleteUserRequestHeaders;\n  query: DeleteUserRequestQuery;\n  params: DeleteUserRequestParams;\n  body: DeleteUserRequestBody;\n}\n\nexport const parseReq = (input: DeleteUserInput): DeleteUserRequest & { path: string } => {\n  return {\n    path: `/v1/chat/users/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface DeleteUserResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface SetStateExpiryRequestHeaders {}\n\nexport interface SetStateExpiryRequestQuery {}\n\nexport interface SetStateExpiryRequestParams {\n  type: \"conversation\" | \"user\" | \"bot\" | \"integration\" | \"workflow\";\n  id: string;\n  name: string;\n}\n\nexport interface SetStateExpiryRequestBody {\n  /**\n   * Expiry of the [State](#schema_state) in milliseconds. The state will expire if it is idle for the configured value. By default, a state doesn't expire.\n   */\n  expiry: number | null;\n}\n\nexport type SetStateExpiryInput = SetStateExpiryRequestBody & SetStateExpiryRequestHeaders & SetStateExpiryRequestQuery & SetStateExpiryRequestParams\n\nexport type SetStateExpiryRequest = {\n  headers: SetStateExpiryRequestHeaders;\n  query: SetStateExpiryRequestQuery;\n  params: SetStateExpiryRequestParams;\n  body: SetStateExpiryRequestBody;\n}\n\nexport const parseReq = (input: SetStateExpiryInput): SetStateExpiryRequest & { path: string } => {\n  return {\n    path: `/v1/chat/states/${encodeURIComponent(input['type'])}/${encodeURIComponent(input['id'])}/${encodeURIComponent(input['name'])}/expiry`,\n    headers: {  },\n    query: {  },\n    params: { 'type': input['type'], 'id': input['id'], 'name': input['name'] },\n    body: { 'expiry': input['expiry'] },\n  }\n}\n\nexport interface SetStateExpiryResponse {\n  /**\n   * The state object represents the current payload. A state is always linked to either a bot, a conversation or a user.\n   */\n  state: {\n    /**\n     * Id of the [State](#schema_state)\n     */\n    id: string;\n    /**\n     * Creation date of the [State](#schema_state) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [State](#schema_state) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Opaque optimistic-concurrency token. Absent when connected to a legacy server.\n     */\n    version?: number;\n    /**\n     * Id of the [Bot](#schema_bot)\n     */\n    botId: string;\n    /**\n     * Id of the [Conversation](#schema_conversation)\n     */\n    conversationId?: string;\n    /**\n     * Id of the [User](#schema_user)\n     */\n    userId?: string;\n    /**\n     * Name of the [State](#schema_state) which is declared inside the bot definition\n     */\n    name: string;\n    /**\n     * Type of the [State](#schema_state) represents the resource type (`conversation`, `user`, `bot`, `integration` or `workflow`) that the state is related to\n     */\n    type: \"conversation\" | \"user\" | \"bot\" | \"integration\" | \"workflow\";\n    /**\n     * Payload is the content of the state defined by your bot.\n     */\n    payload: {\n      [k: string]: any;\n    };\n    /**\n     * Expiry of the state in milliseconds. The state will expire if it is idle for the configured value. Absent if no expiry is set.\n     */\n    expiry?: number;\n    /**\n     * Expiration date of the ${ref.state} in ISO 8601 format. Absent if no expiry is set.\n     */\n    expiresAt?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetStateRequestHeaders {}\n\nexport interface GetStateRequestQuery {}\n\nexport interface GetStateRequestParams {\n  type: \"conversation\" | \"user\" | \"bot\" | \"integration\" | \"workflow\";\n  id: string;\n  name: string;\n}\n\nexport interface GetStateRequestBody {}\n\nexport type GetStateInput = GetStateRequestBody & GetStateRequestHeaders & GetStateRequestQuery & GetStateRequestParams\n\nexport type GetStateRequest = {\n  headers: GetStateRequestHeaders;\n  query: GetStateRequestQuery;\n  params: GetStateRequestParams;\n  body: GetStateRequestBody;\n}\n\nexport const parseReq = (input: GetStateInput): GetStateRequest & { path: string } => {\n  return {\n    path: `/v1/chat/states/${encodeURIComponent(input['type'])}/${encodeURIComponent(input['id'])}/${encodeURIComponent(input['name'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'type': input['type'], 'id': input['id'], 'name': input['name'] },\n    body: {  },\n  }\n}\n\nexport interface GetStateResponse {\n  /**\n   * The state object represents the current payload. A state is always linked to either a bot, a conversation or a user.\n   */\n  state: {\n    /**\n     * Id of the [State](#schema_state)\n     */\n    id: string;\n    /**\n     * Creation date of the [State](#schema_state) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [State](#schema_state) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Opaque optimistic-concurrency token. Absent when connected to a legacy server.\n     */\n    version?: number;\n    /**\n     * Id of the [Bot](#schema_bot)\n     */\n    botId: string;\n    /**\n     * Id of the [Conversation](#schema_conversation)\n     */\n    conversationId?: string;\n    /**\n     * Id of the [User](#schema_user)\n     */\n    userId?: string;\n    /**\n     * Name of the [State](#schema_state) which is declared inside the bot definition\n     */\n    name: string;\n    /**\n     * Type of the [State](#schema_state) represents the resource type (`conversation`, `user`, `bot`, `integration` or `workflow`) that the state is related to\n     */\n    type: \"conversation\" | \"user\" | \"bot\" | \"integration\" | \"workflow\";\n    /**\n     * Payload is the content of the state defined by your bot.\n     */\n    payload: {\n      [k: string]: any;\n    };\n    /**\n     * Expiry of the state in milliseconds. The state will expire if it is idle for the configured value. Absent if no expiry is set.\n     */\n    expiry?: number;\n    /**\n     * Expiration date of the ${ref.state} in ISO 8601 format. Absent if no expiry is set.\n     */\n    expiresAt?: string;\n  };\n  meta: {\n    cached: boolean;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface SetStateRequestHeaders {}\n\nexport interface SetStateRequestQuery {}\n\nexport interface SetStateRequestParams {\n  type: \"conversation\" | \"user\" | \"bot\" | \"integration\" | \"workflow\";\n  id: string;\n  name: string;\n}\n\nexport interface SetStateRequestBody {\n  /**\n   * Payload is the content of the state defined by your bot.\n   */\n  payload: {\n    [k: string]: any;\n  } | null;\n  /**\n   * Expiry of the [State](#schema_state) in milliseconds. The state will expire if it is idle for the configured value. By default, a state doesn't expire.\n   */\n  expiry?: number | null;\n  /**\n   * Expected opaque state version. Omit for legacy last-write-wins behavior; use 0 only when the state must not exist.\n   */\n  expectedVersion?: number;\n}\n\nexport type SetStateInput = SetStateRequestBody & SetStateRequestHeaders & SetStateRequestQuery & SetStateRequestParams\n\nexport type SetStateRequest = {\n  headers: SetStateRequestHeaders;\n  query: SetStateRequestQuery;\n  params: SetStateRequestParams;\n  body: SetStateRequestBody;\n}\n\nexport const parseReq = (input: SetStateInput): SetStateRequest & { path: string } => {\n  return {\n    path: `/v1/chat/states/${encodeURIComponent(input['type'])}/${encodeURIComponent(input['id'])}/${encodeURIComponent(input['name'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'type': input['type'], 'id': input['id'], 'name': input['name'] },\n    body: { 'payload': input['payload'], 'expiry': input['expiry'], 'expectedVersion': input['expectedVersion'] },\n  }\n}\n\nexport interface SetStateResponse {\n  /**\n   * The state object represents the current payload. A state is always linked to either a bot, a conversation or a user.\n   */\n  state: {\n    /**\n     * Id of the [State](#schema_state)\n     */\n    id: string;\n    /**\n     * Creation date of the [State](#schema_state) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [State](#schema_state) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Opaque optimistic-concurrency token. Absent when connected to a legacy server.\n     */\n    version?: number;\n    /**\n     * Id of the [Bot](#schema_bot)\n     */\n    botId: string;\n    /**\n     * Id of the [Conversation](#schema_conversation)\n     */\n    conversationId?: string;\n    /**\n     * Id of the [User](#schema_user)\n     */\n    userId?: string;\n    /**\n     * Name of the [State](#schema_state) which is declared inside the bot definition\n     */\n    name: string;\n    /**\n     * Type of the [State](#schema_state) represents the resource type (`conversation`, `user`, `bot`, `integration` or `workflow`) that the state is related to\n     */\n    type: \"conversation\" | \"user\" | \"bot\" | \"integration\" | \"workflow\";\n    /**\n     * Payload is the content of the state defined by your bot.\n     */\n    payload: {\n      [k: string]: any;\n    };\n    /**\n     * Expiry of the state in milliseconds. The state will expire if it is idle for the configured value. Absent if no expiry is set.\n     */\n    expiry?: number;\n    /**\n     * Expiration date of the ${ref.state} in ISO 8601 format. Absent if no expiry is set.\n     */\n    expiresAt?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetOrSetStateRequestHeaders {}\n\nexport interface GetOrSetStateRequestQuery {}\n\nexport interface GetOrSetStateRequestParams {\n  type: \"conversation\" | \"user\" | \"bot\" | \"integration\" | \"workflow\";\n  id: string;\n  name: string;\n}\n\nexport interface GetOrSetStateRequestBody {\n  /**\n   * Payload is the content of the state defined by your bot.\n   */\n  payload: {\n    [k: string]: any;\n  };\n  /**\n   * Expiry of the [State](#schema_state) in milliseconds. The state will expire if it is idle for the configured value. By default, a state doesn't expire.\n   */\n  expiry?: number | null;\n}\n\nexport type GetOrSetStateInput = GetOrSetStateRequestBody & GetOrSetStateRequestHeaders & GetOrSetStateRequestQuery & GetOrSetStateRequestParams\n\nexport type GetOrSetStateRequest = {\n  headers: GetOrSetStateRequestHeaders;\n  query: GetOrSetStateRequestQuery;\n  params: GetOrSetStateRequestParams;\n  body: GetOrSetStateRequestBody;\n}\n\nexport const parseReq = (input: GetOrSetStateInput): GetOrSetStateRequest & { path: string } => {\n  return {\n    path: `/v1/chat/states/${encodeURIComponent(input['type'])}/${encodeURIComponent(input['id'])}/${encodeURIComponent(input['name'])}/get-or-set`,\n    headers: {  },\n    query: {  },\n    params: { 'type': input['type'], 'id': input['id'], 'name': input['name'] },\n    body: { 'payload': input['payload'], 'expiry': input['expiry'] },\n  }\n}\n\nexport interface GetOrSetStateResponse {\n  /**\n   * The state object represents the current payload. A state is always linked to either a bot, a conversation or a user.\n   */\n  state: {\n    /**\n     * Id of the [State](#schema_state)\n     */\n    id: string;\n    /**\n     * Creation date of the [State](#schema_state) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [State](#schema_state) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Opaque optimistic-concurrency token. Absent when connected to a legacy server.\n     */\n    version?: number;\n    /**\n     * Id of the [Bot](#schema_bot)\n     */\n    botId: string;\n    /**\n     * Id of the [Conversation](#schema_conversation)\n     */\n    conversationId?: string;\n    /**\n     * Id of the [User](#schema_user)\n     */\n    userId?: string;\n    /**\n     * Name of the [State](#schema_state) which is declared inside the bot definition\n     */\n    name: string;\n    /**\n     * Type of the [State](#schema_state) represents the resource type (`conversation`, `user`, `bot`, `integration` or `workflow`) that the state is related to\n     */\n    type: \"conversation\" | \"user\" | \"bot\" | \"integration\" | \"workflow\";\n    /**\n     * Payload is the content of the state defined by your bot.\n     */\n    payload: {\n      [k: string]: any;\n    };\n    /**\n     * Expiry of the state in milliseconds. The state will expire if it is idle for the configured value. Absent if no expiry is set.\n     */\n    expiry?: number;\n    /**\n     * Expiration date of the ${ref.state} in ISO 8601 format. Absent if no expiry is set.\n     */\n    expiresAt?: string;\n  };\n  meta: {\n    cached: boolean;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface PatchStateRequestHeaders {}\n\nexport interface PatchStateRequestQuery {}\n\nexport interface PatchStateRequestParams {\n  type: \"conversation\" | \"user\" | \"bot\" | \"integration\" | \"workflow\";\n  id: string;\n  name: string;\n}\n\nexport interface PatchStateRequestBody {\n  /**\n   * Payload is the content of the state defined by your bot.\n   */\n  payload: {\n    [k: string]: any;\n  };\n  /**\n   * Expiry of the [State](#schema_state) in milliseconds. The state will expire if it is idle for the configured value. By default, a state doesn't expire.\n   */\n  expiry?: number | null;\n  /**\n   * Expected opaque state version. Omit for legacy last-write-wins behavior; use 0 only when the state must not exist.\n   */\n  expectedVersion?: number;\n}\n\nexport type PatchStateInput = PatchStateRequestBody & PatchStateRequestHeaders & PatchStateRequestQuery & PatchStateRequestParams\n\nexport type PatchStateRequest = {\n  headers: PatchStateRequestHeaders;\n  query: PatchStateRequestQuery;\n  params: PatchStateRequestParams;\n  body: PatchStateRequestBody;\n}\n\nexport const parseReq = (input: PatchStateInput): PatchStateRequest & { path: string } => {\n  return {\n    path: `/v1/chat/states/${encodeURIComponent(input['type'])}/${encodeURIComponent(input['id'])}/${encodeURIComponent(input['name'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'type': input['type'], 'id': input['id'], 'name': input['name'] },\n    body: { 'payload': input['payload'], 'expiry': input['expiry'], 'expectedVersion': input['expectedVersion'] },\n  }\n}\n\nexport interface PatchStateResponse {\n  /**\n   * The state object represents the current payload. A state is always linked to either a bot, a conversation or a user.\n   */\n  state: {\n    /**\n     * Id of the [State](#schema_state)\n     */\n    id: string;\n    /**\n     * Creation date of the [State](#schema_state) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [State](#schema_state) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Opaque optimistic-concurrency token. Absent when connected to a legacy server.\n     */\n    version?: number;\n    /**\n     * Id of the [Bot](#schema_bot)\n     */\n    botId: string;\n    /**\n     * Id of the [Conversation](#schema_conversation)\n     */\n    conversationId?: string;\n    /**\n     * Id of the [User](#schema_user)\n     */\n    userId?: string;\n    /**\n     * Name of the [State](#schema_state) which is declared inside the bot definition\n     */\n    name: string;\n    /**\n     * Type of the [State](#schema_state) represents the resource type (`conversation`, `user`, `bot`, `integration` or `workflow`) that the state is related to\n     */\n    type: \"conversation\" | \"user\" | \"bot\" | \"integration\" | \"workflow\";\n    /**\n     * Payload is the content of the state defined by your bot.\n     */\n    payload: {\n      [k: string]: any;\n    };\n    /**\n     * Expiry of the state in milliseconds. The state will expire if it is idle for the configured value. Absent if no expiry is set.\n     */\n    expiry?: number;\n    /**\n     * Expiration date of the ${ref.state} in ISO 8601 format. Absent if no expiry is set.\n     */\n    expiresAt?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CallActionRequestHeaders {}\n\nexport interface CallActionRequestQuery {}\n\nexport interface CallActionRequestParams {}\n\nexport interface CallActionRequestBody {\n  /**\n   * Type of the action\n   */\n  type: string;\n  /**\n   * Input of the action\n   */\n  input: {\n    [k: string]: any;\n  };\n}\n\nexport type CallActionInput = CallActionRequestBody & CallActionRequestHeaders & CallActionRequestQuery & CallActionRequestParams\n\nexport type CallActionRequest = {\n  headers: CallActionRequestHeaders;\n  query: CallActionRequestQuery;\n  params: CallActionRequestParams;\n  body: CallActionRequestBody;\n}\n\nexport const parseReq = (input: CallActionInput): CallActionRequest & { path: string } => {\n  return {\n    path: `/v1/chat/actions`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'type': input['type'], 'input': input['input'] },\n  }\n}\n\nexport interface CallActionResponse {\n  /**\n   * Input of the action\n   */\n  output: {\n    [k: string]: any;\n  };\n  meta: {\n    cached: boolean;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ConfigureIntegrationRequestHeaders {}\n\nexport interface ConfigureIntegrationRequestQuery {}\n\nexport interface ConfigureIntegrationRequestParams {}\n\nexport interface ConfigureIntegrationRequestBody {\n  /**\n   * Unique identifier of the integration that was installed on the bot\n   */\n  identifier?: string | null;\n  /**\n   * Recurring schedule on which `register()` will be called on the integration\n   */\n  scheduleRegisterCall?:\n    | \"hourly\"\n    | \"daily\"\n    | \"weekly\"\n    | \"bi-weekly\"\n    | \"monthly\"\n    | \"bi-monthly\"\n    | \"quarterly\"\n    | \"yearly\";\n  /**\n   * **EXPERIMENTAL** Sandbox identifiers for the integration. Setting this to null will remove all sandbox identifiers.           This is an experimental feature meant to be used by specific integrations.\n   */\n  sandboxIdentifiers?: {} | null;\n}\n\nexport type ConfigureIntegrationInput = ConfigureIntegrationRequestBody & ConfigureIntegrationRequestHeaders & ConfigureIntegrationRequestQuery & ConfigureIntegrationRequestParams\n\nexport type ConfigureIntegrationRequest = {\n  headers: ConfigureIntegrationRequestHeaders;\n  query: ConfigureIntegrationRequestQuery;\n  params: ConfigureIntegrationRequestParams;\n  body: ConfigureIntegrationRequestBody;\n}\n\nexport const parseReq = (input: ConfigureIntegrationInput): ConfigureIntegrationRequest & { path: string } => {\n  return {\n    path: `/v1/chat/integrations/configure`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'identifier': input['identifier'], 'scheduleRegisterCall': input['scheduleRegisterCall'], 'sandboxIdentifiers': input['sandboxIdentifiers'] },\n  }\n}\n\nexport interface ConfigureIntegrationResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CreateWorkflowRequestHeaders {}\n\nexport interface CreateWorkflowRequestQuery {}\n\nexport interface CreateWorkflowRequestParams {}\n\nexport interface CreateWorkflowRequestBody {\n  /**\n   * Name of the workflow\n   */\n  name: string;\n  /**\n   * Content related to the workflow\n   */\n  input?: {\n    [k: string]: any;\n  };\n  /**\n   * Parent workflow id is the parent workflow that created this workflow\n   */\n  parentWorkflowId?: string;\n  /**\n   * Conversation id related to this workflow\n   */\n  conversationId?: string;\n  /**\n   * Specific user related to this workflow\n   */\n  userId?: string;\n  /**\n   * The timeout date where the workflow should be failed in the ISO 8601 format\n   */\n  timeoutAt?: string;\n  /**\n   * Tags for the [Workflow](#schema_workflow)\n   */\n  tags?: {\n    [k: string]: string;\n  };\n  status: \"pending\" | \"in_progress\" | \"listening\";\n  /**\n   * Event id must be specified if the workflow is created with the status in_progress\n   */\n  eventId?: string;\n}\n\nexport type CreateWorkflowInput = CreateWorkflowRequestBody & CreateWorkflowRequestHeaders & CreateWorkflowRequestQuery & CreateWorkflowRequestParams\n\nexport type CreateWorkflowRequest = {\n  headers: CreateWorkflowRequestHeaders;\n  query: CreateWorkflowRequestQuery;\n  params: CreateWorkflowRequestParams;\n  body: CreateWorkflowRequestBody;\n}\n\nexport const parseReq = (input: CreateWorkflowInput): CreateWorkflowRequest & { path: string } => {\n  return {\n    path: `/v1/chat/workflows`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'name': input['name'], 'input': input['input'], 'parentWorkflowId': input['parentWorkflowId'], 'conversationId': input['conversationId'], 'userId': input['userId'], 'timeoutAt': input['timeoutAt'], 'tags': input['tags'], 'status': input['status'], 'eventId': input['eventId'] },\n  }\n}\n\nexport interface CreateWorkflowResponse {\n  /**\n   * Workflow definition\n   */\n  workflow: {\n    /**\n     * Id of the [Workflow](#schema_workflow)\n     */\n    id: string;\n    /**\n     * Name of the workflow\n     */\n    name: string;\n    /**\n     * Status of the [Workflow](#schema_workflow)\n     */\n    status: \"pending\" | \"in_progress\" | \"failed\" | \"completed\" | \"listening\" | \"paused\" | \"timedout\" | \"cancelled\";\n    /**\n     * Input provided to the [Workflow](#schema_workflow)\n     */\n    input: {\n      [k: string]: any;\n    };\n    /**\n     * Data returned by the [Workflow](#schema_workflow) output\n     */\n    output: {\n      [k: string]: any;\n    };\n    /**\n     * Parent [Workflow](#schema_workflow) id is the parent [Workflow](#schema_workflow) that created this [Workflow](#schema_workflow)\n     */\n    parentWorkflowId?: string;\n    /**\n     * Conversation id related to this [Workflow](#schema_workflow)\n     */\n    conversationId?: string;\n    /**\n     * User id related to this [Workflow](#schema_workflow)\n     */\n    userId?: string;\n    /**\n     * Creation date of the [Workflow](#schema_workflow) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Workflow](#schema_workflow) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * The date when the [Workflow](#schema_workflow) completed in ISO 8601 format\n     */\n    completedAt?: string;\n    /**\n     * If the [Workflow](#schema_workflow) fails this is the reason behind it\n     */\n    failureReason?: string;\n    /**\n     * The timeout date when the [Workflow](#schema_workflow) will fail in the ISO 8601 format\n     */\n    timeoutAt: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [Workflow](#schema_workflow). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetWorkflowRequestHeaders {}\n\nexport interface GetWorkflowRequestQuery {}\n\nexport interface GetWorkflowRequestParams {\n  id: string;\n}\n\nexport interface GetWorkflowRequestBody {}\n\nexport type GetWorkflowInput = GetWorkflowRequestBody & GetWorkflowRequestHeaders & GetWorkflowRequestQuery & GetWorkflowRequestParams\n\nexport type GetWorkflowRequest = {\n  headers: GetWorkflowRequestHeaders;\n  query: GetWorkflowRequestQuery;\n  params: GetWorkflowRequestParams;\n  body: GetWorkflowRequestBody;\n}\n\nexport const parseReq = (input: GetWorkflowInput): GetWorkflowRequest & { path: string } => {\n  return {\n    path: `/v1/chat/workflows/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetWorkflowResponse {\n  /**\n   * Workflow definition\n   */\n  workflow: {\n    /**\n     * Id of the [Workflow](#schema_workflow)\n     */\n    id: string;\n    /**\n     * Name of the workflow\n     */\n    name: string;\n    /**\n     * Status of the [Workflow](#schema_workflow)\n     */\n    status: \"pending\" | \"in_progress\" | \"failed\" | \"completed\" | \"listening\" | \"paused\" | \"timedout\" | \"cancelled\";\n    /**\n     * Input provided to the [Workflow](#schema_workflow)\n     */\n    input: {\n      [k: string]: any;\n    };\n    /**\n     * Data returned by the [Workflow](#schema_workflow) output\n     */\n    output: {\n      [k: string]: any;\n    };\n    /**\n     * Parent [Workflow](#schema_workflow) id is the parent [Workflow](#schema_workflow) that created this [Workflow](#schema_workflow)\n     */\n    parentWorkflowId?: string;\n    /**\n     * Conversation id related to this [Workflow](#schema_workflow)\n     */\n    conversationId?: string;\n    /**\n     * User id related to this [Workflow](#schema_workflow)\n     */\n    userId?: string;\n    /**\n     * Creation date of the [Workflow](#schema_workflow) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Workflow](#schema_workflow) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * The date when the [Workflow](#schema_workflow) completed in ISO 8601 format\n     */\n    completedAt?: string;\n    /**\n     * If the [Workflow](#schema_workflow) fails this is the reason behind it\n     */\n    failureReason?: string;\n    /**\n     * The timeout date when the [Workflow](#schema_workflow) will fail in the ISO 8601 format\n     */\n    timeoutAt: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [Workflow](#schema_workflow). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface UpdateWorkflowRequestHeaders {}\n\nexport interface UpdateWorkflowRequestQuery {}\n\nexport interface UpdateWorkflowRequestParams {\n  id: string;\n}\n\nexport interface UpdateWorkflowRequestBody {\n  /**\n   * Content related to the workflow\n   */\n  output?: {\n    [k: string]: any;\n  };\n  /**\n   * The timeout date where the workflow should be failed in the ISO 8601 format\n   */\n  timeoutAt?: string;\n  /**\n   * Status of the workflow\n   */\n  status?: \"completed\" | \"cancelled\" | \"listening\" | \"paused\" | \"failed\" | \"in_progress\";\n  /**\n   * Reason why the workflow failed\n   */\n  failureReason?: string;\n  /**\n   * Tags for the [Workflow](#schema_workflow). Set to null or empty string to remove.\n   */\n  tags?: {\n    [k: string]: string | null;\n  };\n  /**\n   * Specific user related to this workflow\n   */\n  userId?: string;\n  /**\n   * Event id must be specified if the workflow is updated with the status in_progress\n   */\n  eventId?: string;\n}\n\nexport type UpdateWorkflowInput = UpdateWorkflowRequestBody & UpdateWorkflowRequestHeaders & UpdateWorkflowRequestQuery & UpdateWorkflowRequestParams\n\nexport type UpdateWorkflowRequest = {\n  headers: UpdateWorkflowRequestHeaders;\n  query: UpdateWorkflowRequestQuery;\n  params: UpdateWorkflowRequestParams;\n  body: UpdateWorkflowRequestBody;\n}\n\nexport const parseReq = (input: UpdateWorkflowInput): UpdateWorkflowRequest & { path: string } => {\n  return {\n    path: `/v1/chat/workflows/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: { 'output': input['output'], 'timeoutAt': input['timeoutAt'], 'status': input['status'], 'failureReason': input['failureReason'], 'tags': input['tags'], 'userId': input['userId'], 'eventId': input['eventId'] },\n  }\n}\n\nexport interface UpdateWorkflowResponse {\n  /**\n   * Workflow definition\n   */\n  workflow: {\n    /**\n     * Id of the [Workflow](#schema_workflow)\n     */\n    id: string;\n    /**\n     * Name of the workflow\n     */\n    name: string;\n    /**\n     * Status of the [Workflow](#schema_workflow)\n     */\n    status: \"pending\" | \"in_progress\" | \"failed\" | \"completed\" | \"listening\" | \"paused\" | \"timedout\" | \"cancelled\";\n    /**\n     * Input provided to the [Workflow](#schema_workflow)\n     */\n    input: {\n      [k: string]: any;\n    };\n    /**\n     * Data returned by the [Workflow](#schema_workflow) output\n     */\n    output: {\n      [k: string]: any;\n    };\n    /**\n     * Parent [Workflow](#schema_workflow) id is the parent [Workflow](#schema_workflow) that created this [Workflow](#schema_workflow)\n     */\n    parentWorkflowId?: string;\n    /**\n     * Conversation id related to this [Workflow](#schema_workflow)\n     */\n    conversationId?: string;\n    /**\n     * User id related to this [Workflow](#schema_workflow)\n     */\n    userId?: string;\n    /**\n     * Creation date of the [Workflow](#schema_workflow) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Workflow](#schema_workflow) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * The date when the [Workflow](#schema_workflow) completed in ISO 8601 format\n     */\n    completedAt?: string;\n    /**\n     * If the [Workflow](#schema_workflow) fails this is the reason behind it\n     */\n    failureReason?: string;\n    /**\n     * The timeout date when the [Workflow](#schema_workflow) will fail in the ISO 8601 format\n     */\n    timeoutAt: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [Workflow](#schema_workflow). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface DeleteWorkflowRequestHeaders {}\n\nexport interface DeleteWorkflowRequestQuery {}\n\nexport interface DeleteWorkflowRequestParams {\n  id: string;\n}\n\nexport interface DeleteWorkflowRequestBody {}\n\nexport type DeleteWorkflowInput = DeleteWorkflowRequestBody & DeleteWorkflowRequestHeaders & DeleteWorkflowRequestQuery & DeleteWorkflowRequestParams\n\nexport type DeleteWorkflowRequest = {\n  headers: DeleteWorkflowRequestHeaders;\n  query: DeleteWorkflowRequestQuery;\n  params: DeleteWorkflowRequestParams;\n  body: DeleteWorkflowRequestBody;\n}\n\nexport const parseReq = (input: DeleteWorkflowInput): DeleteWorkflowRequest & { path: string } => {\n  return {\n    path: `/v1/chat/workflows/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface DeleteWorkflowResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListWorkflowsRequestHeaders {}\n\nexport interface ListWorkflowsRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n  tags?: {\n    [k: string]: string;\n  };\n  conversationId?: string;\n  userId?: string;\n  parentWorkflowId?: string;\n  statuses?: (\"pending\" | \"in_progress\" | \"failed\" | \"completed\" | \"listening\" | \"paused\" | \"timedout\" | \"cancelled\")[];\n  name?: string;\n}\n\nexport interface ListWorkflowsRequestParams {}\n\nexport interface ListWorkflowsRequestBody {}\n\nexport type ListWorkflowsInput = ListWorkflowsRequestBody & ListWorkflowsRequestHeaders & ListWorkflowsRequestQuery & ListWorkflowsRequestParams\n\nexport type ListWorkflowsRequest = {\n  headers: ListWorkflowsRequestHeaders;\n  query: ListWorkflowsRequestQuery;\n  params: ListWorkflowsRequestParams;\n  body: ListWorkflowsRequestBody;\n}\n\nexport const parseReq = (input: ListWorkflowsInput): ListWorkflowsRequest & { path: string } => {\n  return {\n    path: `/v1/chat/workflows`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'], 'tags': input['tags'], 'conversationId': input['conversationId'], 'userId': input['userId'], 'parentWorkflowId': input['parentWorkflowId'], 'statuses': input['statuses'], 'name': input['name'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListWorkflowsResponse {\n  workflows: {\n    /**\n     * Id of the [Workflow](#schema_workflow)\n     */\n    id: string;\n    /**\n     * Name of the workflow\n     */\n    name: string;\n    /**\n     * Status of the [Workflow](#schema_workflow)\n     */\n    status: \"pending\" | \"in_progress\" | \"failed\" | \"completed\" | \"listening\" | \"paused\" | \"timedout\" | \"cancelled\";\n    /**\n     * Input provided to the [Workflow](#schema_workflow)\n     */\n    input: {\n      [k: string]: any;\n    };\n    /**\n     * Data returned by the [Workflow](#schema_workflow) output\n     */\n    output: {\n      [k: string]: any;\n    };\n    /**\n     * Parent [Workflow](#schema_workflow) id is the parent [Workflow](#schema_workflow) that created this [Workflow](#schema_workflow)\n     */\n    parentWorkflowId?: string;\n    /**\n     * Conversation id related to this [Workflow](#schema_workflow)\n     */\n    conversationId?: string;\n    /**\n     * User id related to this [Workflow](#schema_workflow)\n     */\n    userId?: string;\n    /**\n     * Creation date of the [Workflow](#schema_workflow) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Workflow](#schema_workflow) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * The date when the [Workflow](#schema_workflow) completed in ISO 8601 format\n     */\n    completedAt?: string;\n    /**\n     * If the [Workflow](#schema_workflow) fails this is the reason behind it\n     */\n    failureReason?: string;\n    /**\n     * The timeout date when the [Workflow](#schema_workflow) will fail in the ISO 8601 format\n     */\n    timeoutAt: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [Workflow](#schema_workflow). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n  }[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetOrCreateWorkflowRequestHeaders {}\n\nexport interface GetOrCreateWorkflowRequestQuery {}\n\nexport interface GetOrCreateWorkflowRequestParams {}\n\nexport interface GetOrCreateWorkflowRequestBody {\n  /**\n   * Name of the workflow\n   */\n  name: string;\n  /**\n   * Content related to the workflow\n   */\n  input?: {\n    [k: string]: any;\n  };\n  /**\n   * Parent workflow id is the parent workflow that created this workflow\n   */\n  parentWorkflowId?: string;\n  /**\n   * Conversation id related to this workflow\n   */\n  conversationId?: string;\n  /**\n   * Specific user related to this workflow\n   */\n  userId?: string;\n  /**\n   * The timeout date where the workflow should be failed in the ISO 8601 format\n   */\n  timeoutAt?: string;\n  /**\n   * Tags for the [Workflow](#schema_workflow)\n   */\n  tags?: {\n    [k: string]: string;\n  };\n  status: \"pending\" | \"in_progress\" | \"listening\";\n  /**\n   * Event id must be specified if the workflow is created with the status in_progress\n   */\n  eventId?: string;\n  /**\n   * Optional list of tag names to use for strict matching when looking up existing workflows. If provided, all specified tags must match exactly for a workflow to be considered a match. For example, with an existing workflow whose tags are {\"foo\": \"a\", \"bar\": \"b\", baz: \"c\"}: Without this parameter, ALL tags must match exactly. With [\"bar\",\"baz\"], all listed tags must match their values, and other tags are not considered.\n   */\n  discriminateByTags?: string[];\n  /**\n   * When provided, will only match workflows whose status corresponds to the status group.\n   */\n  discriminateByStatusGroup?: \"active\" | \"finished\";\n}\n\nexport type GetOrCreateWorkflowInput = GetOrCreateWorkflowRequestBody & GetOrCreateWorkflowRequestHeaders & GetOrCreateWorkflowRequestQuery & GetOrCreateWorkflowRequestParams\n\nexport type GetOrCreateWorkflowRequest = {\n  headers: GetOrCreateWorkflowRequestHeaders;\n  query: GetOrCreateWorkflowRequestQuery;\n  params: GetOrCreateWorkflowRequestParams;\n  body: GetOrCreateWorkflowRequestBody;\n}\n\nexport const parseReq = (input: GetOrCreateWorkflowInput): GetOrCreateWorkflowRequest & { path: string } => {\n  return {\n    path: `/v1/chat/workflows/get-or-create`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'name': input['name'], 'input': input['input'], 'parentWorkflowId': input['parentWorkflowId'], 'conversationId': input['conversationId'], 'userId': input['userId'], 'timeoutAt': input['timeoutAt'], 'tags': input['tags'], 'status': input['status'], 'eventId': input['eventId'], 'discriminateByTags': input['discriminateByTags'], 'discriminateByStatusGroup': input['discriminateByStatusGroup'] },\n  }\n}\n\nexport interface GetOrCreateWorkflowResponse {\n  /**\n   * Workflow definition\n   */\n  workflow: {\n    /**\n     * Id of the [Workflow](#schema_workflow)\n     */\n    id: string;\n    /**\n     * Name of the workflow\n     */\n    name: string;\n    /**\n     * Status of the [Workflow](#schema_workflow)\n     */\n    status: \"pending\" | \"in_progress\" | \"failed\" | \"completed\" | \"listening\" | \"paused\" | \"timedout\" | \"cancelled\";\n    /**\n     * Input provided to the [Workflow](#schema_workflow)\n     */\n    input: {\n      [k: string]: any;\n    };\n    /**\n     * Data returned by the [Workflow](#schema_workflow) output\n     */\n    output: {\n      [k: string]: any;\n    };\n    /**\n     * Parent [Workflow](#schema_workflow) id is the parent [Workflow](#schema_workflow) that created this [Workflow](#schema_workflow)\n     */\n    parentWorkflowId?: string;\n    /**\n     * Conversation id related to this [Workflow](#schema_workflow)\n     */\n    conversationId?: string;\n    /**\n     * User id related to this [Workflow](#schema_workflow)\n     */\n    userId?: string;\n    /**\n     * Creation date of the [Workflow](#schema_workflow) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Workflow](#schema_workflow) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * The date when the [Workflow](#schema_workflow) completed in ISO 8601 format\n     */\n    completedAt?: string;\n    /**\n     * If the [Workflow](#schema_workflow) fails this is the reason behind it\n     */\n    failureReason?: string;\n    /**\n     * The timeout date when the [Workflow](#schema_workflow) will fail in the ISO 8601 format\n     */\n    timeoutAt: string;\n    /**\n     * Set of [Tags](/docs/developers/concepts/tags) that you can attach to a [Workflow](#schema_workflow). Individual keys can be unset by posting an empty value to them.\n     */\n    tags: {\n      [k: string]: string;\n    };\n  };\n  meta: {\n    created: boolean;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListTagValuesRequestHeaders {}\n\nexport interface ListTagValuesRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n  type: \"user\" | \"conversation\" | \"message\";\n}\n\nexport interface ListTagValuesRequestParams {\n  key: string;\n}\n\nexport interface ListTagValuesRequestBody {}\n\nexport type ListTagValuesInput = ListTagValuesRequestBody & ListTagValuesRequestHeaders & ListTagValuesRequestQuery & ListTagValuesRequestParams\n\nexport type ListTagValuesRequest = {\n  headers: ListTagValuesRequestHeaders;\n  query: ListTagValuesRequestQuery;\n  params: ListTagValuesRequestParams;\n  body: ListTagValuesRequestBody;\n}\n\nexport const parseReq = (input: ListTagValuesInput): ListTagValuesRequest & { path: string } => {\n  return {\n    path: `/v1/chat/tags/${encodeURIComponent(input['key'])}/values`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'], 'type': input['type'] },\n    params: { 'key': input['key'] },\n    body: {  },\n  }\n}\n\nexport interface ListTagValuesResponse {\n  tags: {\n    value: string;\n  }[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface TrackAnalyticsRequestHeaders {}\n\nexport interface TrackAnalyticsRequestQuery {}\n\nexport interface TrackAnalyticsRequestParams {}\n\nexport interface TrackAnalyticsRequestBody {\n  name: string;\n  count: number;\n}\n\nexport type TrackAnalyticsInput = TrackAnalyticsRequestBody & TrackAnalyticsRequestHeaders & TrackAnalyticsRequestQuery & TrackAnalyticsRequestParams\n\nexport type TrackAnalyticsRequest = {\n  headers: TrackAnalyticsRequestHeaders;\n  query: TrackAnalyticsRequestQuery;\n  params: TrackAnalyticsRequestParams;\n  body: TrackAnalyticsRequestBody;\n}\n\nexport const parseReq = (input: TrackAnalyticsInput): TrackAnalyticsRequest & { path: string } => {\n  return {\n    path: `/v1/chat/analytics`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'name': input['name'], 'count': input['count'] },\n  }\n}\n\nexport interface TrackAnalyticsResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CaptureObservationRequestHeaders {}\n\nexport interface CaptureObservationRequestQuery {}\n\nexport interface CaptureObservationRequestParams {}\n\nexport interface CaptureObservationRequestBody {\n  /**\n   * Caller-defined identifier for the observation (e.g. llmz context ID). Uniqueness is not enforced nor guaranteed.\n   */\n  id?: string;\n  /**\n   * Name of the observation\n   */\n  name: string;\n  /**\n   * Data of the observation\n   */\n  data: {\n    [k: string]: any;\n  };\n  /**\n   * ID of the message associated with the observation\n   */\n  messageId?: string;\n  /**\n   * ID of the event associated with the observation\n   */\n  eventId?: string;\n  /**\n   * ID of the conversation associated with the observation\n   */\n  conversationId?: string;\n  /**\n   * ID of the user associated with the observation\n   */\n  userId?: string;\n  /**\n   * ID of the error associated with the observation\n   */\n  errorId?: string;\n  /**\n   * ID of the trace associated with the observation\n   */\n  traceId?: string;\n}\n\nexport type CaptureObservationInput = CaptureObservationRequestBody & CaptureObservationRequestHeaders & CaptureObservationRequestQuery & CaptureObservationRequestParams\n\nexport type CaptureObservationRequest = {\n  headers: CaptureObservationRequestHeaders;\n  query: CaptureObservationRequestQuery;\n  params: CaptureObservationRequestParams;\n  body: CaptureObservationRequestBody;\n}\n\nexport const parseReq = (input: CaptureObservationInput): CaptureObservationRequest & { path: string } => {\n  return {\n    path: `/v1/chat/observations`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'id': input['id'], 'name': input['name'], 'data': input['data'], 'messageId': input['messageId'], 'eventId': input['eventId'], 'conversationId': input['conversationId'], 'userId': input['userId'], 'errorId': input['errorId'], 'traceId': input['traceId'] },\n  }\n}\n\nexport interface CaptureObservationResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface RunVrlRequestHeaders {}\n\nexport interface RunVrlRequestQuery {}\n\nexport interface RunVrlRequestParams {}\n\nexport interface RunVrlRequestBody {\n  data: {\n    [k: string]: any;\n  };\n  script: string;\n}\n\nexport type RunVrlInput = RunVrlRequestBody & RunVrlRequestHeaders & RunVrlRequestQuery & RunVrlRequestParams\n\nexport type RunVrlRequest = {\n  headers: RunVrlRequestHeaders;\n  query: RunVrlRequestQuery;\n  params: RunVrlRequestParams;\n  body: RunVrlRequestBody;\n}\n\nexport const parseReq = (input: RunVrlInput): RunVrlRequest & { path: string } => {\n  return {\n    path: `/v1/admin/helper/vrl`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'data': input['data'], 'script': input['script'] },\n  }\n}\n\nexport interface RunVrlResponse {\n  data: {\n    [k: string]: any;\n  };\n  result?: any;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetAccountRequestHeaders {}\n\nexport interface GetAccountRequestQuery {}\n\nexport interface GetAccountRequestParams {}\n\nexport interface GetAccountRequestBody {}\n\nexport type GetAccountInput = GetAccountRequestBody & GetAccountRequestHeaders & GetAccountRequestQuery & GetAccountRequestParams\n\nexport type GetAccountRequest = {\n  headers: GetAccountRequestHeaders;\n  query: GetAccountRequestQuery;\n  params: GetAccountRequestParams;\n  body: GetAccountRequestBody;\n}\n\nexport const parseReq = (_: GetAccountInput): GetAccountRequest & { path: string } => {\n  return {\n    path: `/v1/admin/account/me`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface GetAccountResponse {\n  account: {\n    id: string;\n    email: string;\n    displayName?: string;\n    emailVerified: boolean;\n    profilePicture?: string;\n    /**\n     * Creation date of the [Account](#schema_account) in ISO 8601 format\n     */\n    createdAt: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface UpdateAccountRequestHeaders {}\n\nexport interface UpdateAccountRequestQuery {}\n\nexport interface UpdateAccountRequestParams {}\n\nexport interface UpdateAccountRequestBody {\n  displayName?: string;\n  profilePicture?: string;\n  refresh?: boolean;\n}\n\nexport type UpdateAccountInput = UpdateAccountRequestBody & UpdateAccountRequestHeaders & UpdateAccountRequestQuery & UpdateAccountRequestParams\n\nexport type UpdateAccountRequest = {\n  headers: UpdateAccountRequestHeaders;\n  query: UpdateAccountRequestQuery;\n  params: UpdateAccountRequestParams;\n  body: UpdateAccountRequestBody;\n}\n\nexport const parseReq = (input: UpdateAccountInput): UpdateAccountRequest & { path: string } => {\n  return {\n    path: `/v1/admin/account/me`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'displayName': input['displayName'], 'profilePicture': input['profilePicture'], 'refresh': input['refresh'] },\n  }\n}\n\nexport interface UpdateAccountResponse {\n  account: {\n    id: string;\n    email: string;\n    displayName?: string;\n    emailVerified: boolean;\n    profilePicture?: string;\n    /**\n     * Creation date of the [Account](#schema_account) in ISO 8601 format\n     */\n    createdAt: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface DeleteAccountRequestHeaders {}\n\nexport interface DeleteAccountRequestQuery {}\n\nexport interface DeleteAccountRequestParams {}\n\nexport interface DeleteAccountRequestBody {}\n\nexport type DeleteAccountInput = DeleteAccountRequestBody & DeleteAccountRequestHeaders & DeleteAccountRequestQuery & DeleteAccountRequestParams\n\nexport type DeleteAccountRequest = {\n  headers: DeleteAccountRequestHeaders;\n  query: DeleteAccountRequestQuery;\n  params: DeleteAccountRequestParams;\n  body: DeleteAccountRequestBody;\n}\n\nexport const parseReq = (_: DeleteAccountInput): DeleteAccountRequest & { path: string } => {\n  return {\n    path: `/v1/admin/account/me`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface DeleteAccountResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListPersonalAccessTokensRequestHeaders {}\n\nexport interface ListPersonalAccessTokensRequestQuery {}\n\nexport interface ListPersonalAccessTokensRequestParams {}\n\nexport interface ListPersonalAccessTokensRequestBody {}\n\nexport type ListPersonalAccessTokensInput = ListPersonalAccessTokensRequestBody & ListPersonalAccessTokensRequestHeaders & ListPersonalAccessTokensRequestQuery & ListPersonalAccessTokensRequestParams\n\nexport type ListPersonalAccessTokensRequest = {\n  headers: ListPersonalAccessTokensRequestHeaders;\n  query: ListPersonalAccessTokensRequestQuery;\n  params: ListPersonalAccessTokensRequestParams;\n  body: ListPersonalAccessTokensRequestBody;\n}\n\nexport const parseReq = (_: ListPersonalAccessTokensInput): ListPersonalAccessTokensRequest & { path: string } => {\n  return {\n    path: `/v1/admin/account/pats`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListPersonalAccessTokensResponse {\n  pats: {\n    id: string;\n    createdAt: string;\n    note: string;\n  }[];\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CreatePersonalAccessTokenRequestHeaders {}\n\nexport interface CreatePersonalAccessTokenRequestQuery {}\n\nexport interface CreatePersonalAccessTokenRequestParams {}\n\nexport interface CreatePersonalAccessTokenRequestBody {\n  /**\n   * Note to identify the PAT\n   */\n  note: string;\n}\n\nexport type CreatePersonalAccessTokenInput = CreatePersonalAccessTokenRequestBody & CreatePersonalAccessTokenRequestHeaders & CreatePersonalAccessTokenRequestQuery & CreatePersonalAccessTokenRequestParams\n\nexport type CreatePersonalAccessTokenRequest = {\n  headers: CreatePersonalAccessTokenRequestHeaders;\n  query: CreatePersonalAccessTokenRequestQuery;\n  params: CreatePersonalAccessTokenRequestParams;\n  body: CreatePersonalAccessTokenRequestBody;\n}\n\nexport const parseReq = (input: CreatePersonalAccessTokenInput): CreatePersonalAccessTokenRequest & { path: string } => {\n  return {\n    path: `/v1/admin/account/pats`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'note': input['note'] },\n  }\n}\n\nexport interface CreatePersonalAccessTokenResponse {\n  pat: {\n    id: string;\n    createdAt: string;\n    note: string;\n    /**\n     * The PAT value. This will only be returned here when created and cannot be retrieved later.\n     */\n    value: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface DeletePersonalAccessTokenRequestHeaders {}\n\nexport interface DeletePersonalAccessTokenRequestQuery {}\n\nexport interface DeletePersonalAccessTokenRequestParams {\n  id: string;\n}\n\nexport interface DeletePersonalAccessTokenRequestBody {}\n\nexport type DeletePersonalAccessTokenInput = DeletePersonalAccessTokenRequestBody & DeletePersonalAccessTokenRequestHeaders & DeletePersonalAccessTokenRequestQuery & DeletePersonalAccessTokenRequestParams\n\nexport type DeletePersonalAccessTokenRequest = {\n  headers: DeletePersonalAccessTokenRequestHeaders;\n  query: DeletePersonalAccessTokenRequestQuery;\n  params: DeletePersonalAccessTokenRequestParams;\n  body: DeletePersonalAccessTokenRequestBody;\n}\n\nexport const parseReq = (input: DeletePersonalAccessTokenInput): DeletePersonalAccessTokenRequest & { path: string } => {\n  return {\n    path: `/v1/admin/account/pats/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface DeletePersonalAccessTokenResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface SetAccountPreferenceRequestHeaders {}\n\nexport interface SetAccountPreferenceRequestQuery {}\n\nexport interface SetAccountPreferenceRequestParams {\n  key: string;\n}\n\nexport interface SetAccountPreferenceRequestBody {\n  value?: any;\n}\n\nexport type SetAccountPreferenceInput = SetAccountPreferenceRequestBody & SetAccountPreferenceRequestHeaders & SetAccountPreferenceRequestQuery & SetAccountPreferenceRequestParams\n\nexport type SetAccountPreferenceRequest = {\n  headers: SetAccountPreferenceRequestHeaders;\n  query: SetAccountPreferenceRequestQuery;\n  params: SetAccountPreferenceRequestParams;\n  body: SetAccountPreferenceRequestBody;\n}\n\nexport const parseReq = (input: SetAccountPreferenceInput): SetAccountPreferenceRequest & { path: string } => {\n  return {\n    path: `/v1/admin/account/preferences/${encodeURIComponent(input['key'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'key': input['key'] },\n    body: { 'value': input['value'] },\n  }\n}\n\nexport interface SetAccountPreferenceResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetAccountPreferenceRequestHeaders {}\n\nexport interface GetAccountPreferenceRequestQuery {}\n\nexport interface GetAccountPreferenceRequestParams {\n  key: string;\n}\n\nexport interface GetAccountPreferenceRequestBody {}\n\nexport type GetAccountPreferenceInput = GetAccountPreferenceRequestBody & GetAccountPreferenceRequestHeaders & GetAccountPreferenceRequestQuery & GetAccountPreferenceRequestParams\n\nexport type GetAccountPreferenceRequest = {\n  headers: GetAccountPreferenceRequestHeaders;\n  query: GetAccountPreferenceRequestQuery;\n  params: GetAccountPreferenceRequestParams;\n  body: GetAccountPreferenceRequestBody;\n}\n\nexport const parseReq = (input: GetAccountPreferenceInput): GetAccountPreferenceRequest & { path: string } => {\n  return {\n    path: `/v1/admin/account/preferences/${encodeURIComponent(input['key'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'key': input['key'] },\n    body: {  },\n  }\n}\n\nexport interface GetAccountPreferenceResponse {\n  value?: any;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListPublicIntegrationsRequestHeaders {}\n\nexport interface ListPublicIntegrationsRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n  limit?: number;\n  name?: string;\n  version?: string;\n  interfaceId?: string;\n  interfaceName?: string;\n  installedByBotId?: string;\n  verificationStatus?: \"unapproved\" | \"pending\" | \"approved\" | \"rejected\";\n  search?: string;\n  sortBy?: \"popularity\" | \"name\" | \"createdAt\" | \"updatedAt\" | \"installCount\";\n  direction?: \"asc\" | \"desc\";\n}\n\nexport interface ListPublicIntegrationsRequestParams {}\n\nexport interface ListPublicIntegrationsRequestBody {}\n\nexport type ListPublicIntegrationsInput = ListPublicIntegrationsRequestBody & ListPublicIntegrationsRequestHeaders & ListPublicIntegrationsRequestQuery & ListPublicIntegrationsRequestParams\n\nexport type ListPublicIntegrationsRequest = {\n  headers: ListPublicIntegrationsRequestHeaders;\n  query: ListPublicIntegrationsRequestQuery;\n  params: ListPublicIntegrationsRequestParams;\n  body: ListPublicIntegrationsRequestBody;\n}\n\nexport const parseReq = (input: ListPublicIntegrationsInput): ListPublicIntegrationsRequest & { path: string } => {\n  return {\n    path: `/v1/admin/hub/integrations`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'], 'limit': input['limit'], 'name': input['name'], 'version': input['version'], 'interfaceId': input['interfaceId'], 'interfaceName': input['interfaceName'], 'installedByBotId': input['installedByBotId'], 'verificationStatus': input['verificationStatus'], 'search': input['search'], 'sortBy': input['sortBy'], 'direction': input['direction'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListPublicIntegrationsResponse {\n  integrations: {\n    /**\n     * ID of the [Integration](#schema_integration)\n     */\n    id: string;\n    /**\n     * Name of the [Integration](#schema_integration)\n     */\n    name: string;\n    /**\n     * Version of the [Integration](#schema_integration)\n     */\n    version: string;\n    /**\n     * Creation date of the [Integration](#schema_integration) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Integration](#schema_integration) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Title of the integration. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the integration. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the integration. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * @deprecated\n     * [DEPRECATED] Indicates whether the integration is public. Please use the \"visibility\" parameter instead.\n     */\n    public: boolean;\n    /**\n     * The integration's visibility. Public integrations are available to all and cannot be updated without creating a new version. Unlisted integrations behave identically to public integrations, but they are not listed in the integration hub. By default, integrations are private and only accessible to the workspace that created them.\n     */\n    visibility: \"public\" | \"private\" | \"unlisted\";\n    /**\n     * Status of the integration version verification\n     */\n    verificationStatus: \"unapproved\" | \"pending\" | \"approved\" | \"rejected\";\n    /**\n     * The lifecycle status of the integration. When an integration is deprecated, it can no longer be installed.\n     */\n    lifecycleStatus: \"published\" | \"deprecated\";\n    ownerWorkspace: {\n      id: string;\n      handle: string | null;\n      name: string;\n    };\n    meta: {\n      installs: number;\n      views: number;\n    };\n    /**\n     * Metadata about which fields matched the search criteria\n     */\n    matchedOn?: {\n      /**\n       * Whether the integration name matched the search term\n       */\n      name?: boolean;\n      /**\n       * Whether the integration title matched the search term\n       */\n      title?: boolean;\n      /**\n       * Whether the integration description matched the search term\n       */\n      description?: boolean;\n      /**\n       * Action names that matched the search term\n       */\n      actions?: string[];\n      /**\n       * Interface names that matched the search term\n       */\n      interfaces?: string[];\n    };\n    /**\n     * Optional key-value attributes from the integration definition\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  }[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetPublicIntegrationByIdRequestHeaders {}\n\nexport interface GetPublicIntegrationByIdRequestQuery {}\n\nexport interface GetPublicIntegrationByIdRequestParams {\n  id: string;\n}\n\nexport interface GetPublicIntegrationByIdRequestBody {}\n\nexport type GetPublicIntegrationByIdInput = GetPublicIntegrationByIdRequestBody & GetPublicIntegrationByIdRequestHeaders & GetPublicIntegrationByIdRequestQuery & GetPublicIntegrationByIdRequestParams\n\nexport type GetPublicIntegrationByIdRequest = {\n  headers: GetPublicIntegrationByIdRequestHeaders;\n  query: GetPublicIntegrationByIdRequestQuery;\n  params: GetPublicIntegrationByIdRequestParams;\n  body: GetPublicIntegrationByIdRequestBody;\n}\n\nexport const parseReq = (input: GetPublicIntegrationByIdInput): GetPublicIntegrationByIdRequest & { path: string } => {\n  return {\n    path: `/v1/admin/hub/integrations/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetPublicIntegrationByIdResponse {\n  integration: {\n    /**\n     * ID of the [Integration](#schema_integration)\n     */\n    id: string;\n    /**\n     * Creation date of the [Integration](#schema_integration) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Integration](#schema_integration) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Global identifier configuration of the [Integration](#schema_integration)\n     */\n    identifier: {\n      /**\n       * VRL Script of the [Integration](#schema_integration) to handle incoming requests for a request that doesn't have an identifier\n       */\n      fallbackHandlerScript?: string;\n      /**\n       * VRL Script of the [Integration](#schema_integration) to extract the identifier from an incoming webhook often use for OAuth\n       */\n      extractScript?: string;\n    };\n    sandbox?: {\n      /**\n       * VRL Script of the [Integration](#schema_integration) to extract the identifier from an incoming webhook used specifically for the sandbox\n       */\n      identifierExtractScript?: string;\n      /**\n       * VRL Script of the [Integration](#schema_integration) to extract the message from an incoming webhook used specifically for the sandbox\n       */\n      messageExtractScript?: string;\n    };\n    /**\n     * Maximum execution time of the integration (in seconds).\n     */\n    maxExecutionTime?: number;\n    /**\n     * URL of the [Integration](#schema_integration)\n     */\n    url: string;\n    /**\n     * Signing secret of the [Integration](#schema_integration). This field is only visible when creating a new integration or when rotating the signing secret of an existing integration.\n     */\n    signingSecret: string;\n    /**\n     * Name of the [Integration](#schema_integration)\n     */\n    name: string;\n    /**\n     * Version of the [Integration](#schema_integration)\n     */\n    version: string;\n    interfaces: {\n      [k: string]: {\n        /**\n         * ID of the interface\n         */\n        id: string;\n        /**\n         * Name of the interface\n         */\n        name: string;\n        /**\n         * Version of the interface\n         */\n        version: string;\n        entities: {\n          [k: string]: {\n            name: string;\n          };\n        };\n        actions: {\n          [k: string]: {\n            name: string;\n          };\n        };\n        events: {\n          [k: string]: {\n            name: string;\n          };\n        };\n        channels: {\n          [k: string]: {\n            name: string;\n          };\n        };\n      };\n    };\n    /**\n     * Configuration definition\n     */\n    configuration: {\n      /**\n       * Title of the configuration\n       */\n      title?: string;\n      /**\n       * Description of the configuration\n       */\n      description?: string;\n      /**\n       * Identifier configuration of the [Integration](#schema_integration)\n       */\n      identifier: {\n        linkTemplateScript?: string;\n        required: boolean;\n      };\n      /**\n       * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n       */\n      schema: {\n        [k: string]: any;\n      };\n    };\n    configurations: {\n      /**\n       * Configuration definition\n       */\n      [k: string]: {\n        /**\n         * Title of the configuration\n         */\n        title?: string;\n        /**\n         * Description of the configuration\n         */\n        description?: string;\n        /**\n         * Identifier configuration of the [Integration](#schema_integration)\n         */\n        identifier: {\n          linkTemplateScript?: string;\n          required: boolean;\n        };\n        /**\n         * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n         */\n        schema: {\n          [k: string]: any;\n        };\n      };\n    };\n    channels: {\n      /**\n       * Channel definition\n       */\n      [k: string]: {\n        /**\n         * Title of the channel\n         */\n        title?: string;\n        /**\n         * Description of the channel\n         */\n        description?: string;\n        messages: {\n          /**\n           * Message definition\n           */\n          [k: string]: {\n            schema: {\n              [k: string]: any;\n            };\n          };\n        };\n        /**\n         * Conversation object configuration\n         */\n        conversation: {\n          tags: {\n            /**\n             * Definition of a tag that can be provided on the object\n             */\n            [k: string]: {\n              /**\n               * Title of the tag\n               */\n              title?: string;\n              /**\n               * Description of the tag\n               */\n              description?: string;\n            };\n          };\n          /**\n           * The conversation creation setting determines how to create a conversation through the API directly. The integration will have to implement the `createConversation` functionality to support this setting.\n           */\n          creation: {\n            /**\n             * Enable conversation creation\n             */\n            enabled: boolean;\n            /**\n             * The list of tags that are required to be specified when calling the API directly to create a conversation.\n             */\n            requiredTags: string[];\n          };\n        };\n        /**\n         * Message object configuration\n         */\n        message: {\n          tags: {\n            /**\n             * Definition of a tag that can be provided on the object\n             */\n            [k: string]: {\n              /**\n               * Title of the tag\n               */\n              title?: string;\n              /**\n               * Description of the tag\n               */\n              description?: string;\n            };\n          };\n        };\n      };\n    };\n    states: {\n      /**\n       * State definition\n       */\n      [k: string]: {\n        /**\n         * Type of the [State](#schema_state) (`conversation`, `user` or `integration`)\n         */\n        type: \"conversation\" | \"user\" | \"integration\";\n        /**\n         * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n         */\n        schema: {\n          [k: string]: any;\n        };\n      };\n    };\n    events: {\n      /**\n       * Event Definition\n       */\n      [k: string]: {\n        /**\n         * Title of the event\n         */\n        title?: string;\n        /**\n         * Description of the event\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    actions: {\n      /**\n       * Action definition\n       */\n      [k: string]: {\n        /**\n         * Title of the action\n         */\n        title?: string;\n        /**\n         * Description of the action\n         */\n        description?: string;\n        billable?: boolean;\n        cacheable?: boolean;\n        input: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        output: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    /**\n     * User object configuration\n     */\n    user: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n      /**\n       * The user creation setting determines how to create a user through the API directly. The integration will have to implement the `createUser` functionality to support this setting.\n       */\n      creation: {\n        /**\n         * Enable user creation\n         */\n        enabled: boolean;\n        /**\n         * The list of tags that are required to be specified when calling the API directly to create a user.\n         */\n        requiredTags: string[];\n      };\n    };\n    entities: {\n      /**\n       * Entity definition\n       */\n      [k: string]: {\n        /**\n         * Title of the entity\n         */\n        title?: string;\n        /**\n         * Description of the entity\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n      };\n    };\n    /**\n     * Indicates if the integration is a development integration; Dev integrations run locally\n     */\n    dev: boolean;\n    /**\n     * Title of the integration. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the integration. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the integration. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * URL of the readme of the integration. This is the readme that will be displayed in the UI\n     */\n    readmeUrl: string;\n    /**\n     * @deprecated\n     * [DEPRECATED] Indicates whether the integration is public. Please use the \"visibility\" parameter instead.\n     */\n    public: boolean;\n    /**\n     * The integration's visibility. Public integrations are available to all and cannot be updated without creating a new version. Unlisted integrations behave identically to public integrations, but they are not listed in the integration hub. By default, integrations are private and only accessible to the workspace that created them.\n     */\n    visibility: \"public\" | \"private\" | \"unlisted\";\n    /**\n     * Status of the integration version verification\n     */\n    verificationStatus: \"unapproved\" | \"pending\" | \"approved\" | \"rejected\";\n    /**\n     * The lifecycle status of the integration. When an integration is deprecated, it can no longer be installed.\n     */\n    lifecycleStatus: \"published\" | \"deprecated\";\n    /**\n     * Secrets are integration-wide values available in the code via environment variables formatted with a SECRET_ prefix followed by your secret name. A secret name must respect SCREAMING_SNAKE casing.\n     */\n    secrets: string[];\n    /**\n     * Optional key-value attributes from the integration definition\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n    ownerWorkspace: {\n      id: string;\n      handle: string | null;\n      name: string;\n    };\n    meta: {\n      installs: number;\n      views: number;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetPublicIntegrationRequestHeaders {}\n\nexport interface GetPublicIntegrationRequestQuery {}\n\nexport interface GetPublicIntegrationRequestParams {\n  name: string;\n  version: string;\n}\n\nexport interface GetPublicIntegrationRequestBody {}\n\nexport type GetPublicIntegrationInput = GetPublicIntegrationRequestBody & GetPublicIntegrationRequestHeaders & GetPublicIntegrationRequestQuery & GetPublicIntegrationRequestParams\n\nexport type GetPublicIntegrationRequest = {\n  headers: GetPublicIntegrationRequestHeaders;\n  query: GetPublicIntegrationRequestQuery;\n  params: GetPublicIntegrationRequestParams;\n  body: GetPublicIntegrationRequestBody;\n}\n\nexport const parseReq = (input: GetPublicIntegrationInput): GetPublicIntegrationRequest & { path: string } => {\n  return {\n    path: `/v1/admin/hub/integrations/${encodeURIComponent(input['name'])}/${encodeURIComponent(input['version'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'name': input['name'], 'version': input['version'] },\n    body: {  },\n  }\n}\n\nexport interface GetPublicIntegrationResponse {\n  integration: {\n    /**\n     * ID of the [Integration](#schema_integration)\n     */\n    id: string;\n    /**\n     * Creation date of the [Integration](#schema_integration) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Integration](#schema_integration) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Global identifier configuration of the [Integration](#schema_integration)\n     */\n    identifier: {\n      /**\n       * VRL Script of the [Integration](#schema_integration) to handle incoming requests for a request that doesn't have an identifier\n       */\n      fallbackHandlerScript?: string;\n      /**\n       * VRL Script of the [Integration](#schema_integration) to extract the identifier from an incoming webhook often use for OAuth\n       */\n      extractScript?: string;\n    };\n    sandbox?: {\n      /**\n       * VRL Script of the [Integration](#schema_integration) to extract the identifier from an incoming webhook used specifically for the sandbox\n       */\n      identifierExtractScript?: string;\n      /**\n       * VRL Script of the [Integration](#schema_integration) to extract the message from an incoming webhook used specifically for the sandbox\n       */\n      messageExtractScript?: string;\n    };\n    /**\n     * Maximum execution time of the integration (in seconds).\n     */\n    maxExecutionTime?: number;\n    /**\n     * URL of the [Integration](#schema_integration)\n     */\n    url: string;\n    /**\n     * Signing secret of the [Integration](#schema_integration). This field is only visible when creating a new integration or when rotating the signing secret of an existing integration.\n     */\n    signingSecret: string;\n    /**\n     * Name of the [Integration](#schema_integration)\n     */\n    name: string;\n    /**\n     * Version of the [Integration](#schema_integration)\n     */\n    version: string;\n    interfaces: {\n      [k: string]: {\n        /**\n         * ID of the interface\n         */\n        id: string;\n        /**\n         * Name of the interface\n         */\n        name: string;\n        /**\n         * Version of the interface\n         */\n        version: string;\n        entities: {\n          [k: string]: {\n            name: string;\n          };\n        };\n        actions: {\n          [k: string]: {\n            name: string;\n          };\n        };\n        events: {\n          [k: string]: {\n            name: string;\n          };\n        };\n        channels: {\n          [k: string]: {\n            name: string;\n          };\n        };\n      };\n    };\n    /**\n     * Configuration definition\n     */\n    configuration: {\n      /**\n       * Title of the configuration\n       */\n      title?: string;\n      /**\n       * Description of the configuration\n       */\n      description?: string;\n      /**\n       * Identifier configuration of the [Integration](#schema_integration)\n       */\n      identifier: {\n        linkTemplateScript?: string;\n        required: boolean;\n      };\n      /**\n       * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n       */\n      schema: {\n        [k: string]: any;\n      };\n    };\n    configurations: {\n      /**\n       * Configuration definition\n       */\n      [k: string]: {\n        /**\n         * Title of the configuration\n         */\n        title?: string;\n        /**\n         * Description of the configuration\n         */\n        description?: string;\n        /**\n         * Identifier configuration of the [Integration](#schema_integration)\n         */\n        identifier: {\n          linkTemplateScript?: string;\n          required: boolean;\n        };\n        /**\n         * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n         */\n        schema: {\n          [k: string]: any;\n        };\n      };\n    };\n    channels: {\n      /**\n       * Channel definition\n       */\n      [k: string]: {\n        /**\n         * Title of the channel\n         */\n        title?: string;\n        /**\n         * Description of the channel\n         */\n        description?: string;\n        messages: {\n          /**\n           * Message definition\n           */\n          [k: string]: {\n            schema: {\n              [k: string]: any;\n            };\n          };\n        };\n        /**\n         * Conversation object configuration\n         */\n        conversation: {\n          tags: {\n            /**\n             * Definition of a tag that can be provided on the object\n             */\n            [k: string]: {\n              /**\n               * Title of the tag\n               */\n              title?: string;\n              /**\n               * Description of the tag\n               */\n              description?: string;\n            };\n          };\n          /**\n           * The conversation creation setting determines how to create a conversation through the API directly. The integration will have to implement the `createConversation` functionality to support this setting.\n           */\n          creation: {\n            /**\n             * Enable conversation creation\n             */\n            enabled: boolean;\n            /**\n             * The list of tags that are required to be specified when calling the API directly to create a conversation.\n             */\n            requiredTags: string[];\n          };\n        };\n        /**\n         * Message object configuration\n         */\n        message: {\n          tags: {\n            /**\n             * Definition of a tag that can be provided on the object\n             */\n            [k: string]: {\n              /**\n               * Title of the tag\n               */\n              title?: string;\n              /**\n               * Description of the tag\n               */\n              description?: string;\n            };\n          };\n        };\n      };\n    };\n    states: {\n      /**\n       * State definition\n       */\n      [k: string]: {\n        /**\n         * Type of the [State](#schema_state) (`conversation`, `user` or `integration`)\n         */\n        type: \"conversation\" | \"user\" | \"integration\";\n        /**\n         * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n         */\n        schema: {\n          [k: string]: any;\n        };\n      };\n    };\n    events: {\n      /**\n       * Event Definition\n       */\n      [k: string]: {\n        /**\n         * Title of the event\n         */\n        title?: string;\n        /**\n         * Description of the event\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    actions: {\n      /**\n       * Action definition\n       */\n      [k: string]: {\n        /**\n         * Title of the action\n         */\n        title?: string;\n        /**\n         * Description of the action\n         */\n        description?: string;\n        billable?: boolean;\n        cacheable?: boolean;\n        input: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        output: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    /**\n     * User object configuration\n     */\n    user: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n      /**\n       * The user creation setting determines how to create a user through the API directly. The integration will have to implement the `createUser` functionality to support this setting.\n       */\n      creation: {\n        /**\n         * Enable user creation\n         */\n        enabled: boolean;\n        /**\n         * The list of tags that are required to be specified when calling the API directly to create a user.\n         */\n        requiredTags: string[];\n      };\n    };\n    entities: {\n      /**\n       * Entity definition\n       */\n      [k: string]: {\n        /**\n         * Title of the entity\n         */\n        title?: string;\n        /**\n         * Description of the entity\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n      };\n    };\n    /**\n     * Indicates if the integration is a development integration; Dev integrations run locally\n     */\n    dev: boolean;\n    /**\n     * Title of the integration. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the integration. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the integration. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * URL of the readme of the integration. This is the readme that will be displayed in the UI\n     */\n    readmeUrl: string;\n    /**\n     * @deprecated\n     * [DEPRECATED] Indicates whether the integration is public. Please use the \"visibility\" parameter instead.\n     */\n    public: boolean;\n    /**\n     * The integration's visibility. Public integrations are available to all and cannot be updated without creating a new version. Unlisted integrations behave identically to public integrations, but they are not listed in the integration hub. By default, integrations are private and only accessible to the workspace that created them.\n     */\n    visibility: \"public\" | \"private\" | \"unlisted\";\n    /**\n     * Status of the integration version verification\n     */\n    verificationStatus: \"unapproved\" | \"pending\" | \"approved\" | \"rejected\";\n    /**\n     * The lifecycle status of the integration. When an integration is deprecated, it can no longer be installed.\n     */\n    lifecycleStatus: \"published\" | \"deprecated\";\n    /**\n     * Secrets are integration-wide values available in the code via environment variables formatted with a SECRET_ prefix followed by your secret name. A secret name must respect SCREAMING_SNAKE casing.\n     */\n    secrets: string[];\n    /**\n     * Optional key-value attributes from the integration definition\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n    ownerWorkspace: {\n      id: string;\n      handle: string | null;\n      name: string;\n    };\n    meta: {\n      installs: number;\n      views: number;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListPublicPluginsRequestHeaders {}\n\nexport interface ListPublicPluginsRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n  name?: string;\n  version?: string;\n}\n\nexport interface ListPublicPluginsRequestParams {}\n\nexport interface ListPublicPluginsRequestBody {}\n\nexport type ListPublicPluginsInput = ListPublicPluginsRequestBody & ListPublicPluginsRequestHeaders & ListPublicPluginsRequestQuery & ListPublicPluginsRequestParams\n\nexport type ListPublicPluginsRequest = {\n  headers: ListPublicPluginsRequestHeaders;\n  query: ListPublicPluginsRequestQuery;\n  params: ListPublicPluginsRequestParams;\n  body: ListPublicPluginsRequestBody;\n}\n\nexport const parseReq = (input: ListPublicPluginsInput): ListPublicPluginsRequest & { path: string } => {\n  return {\n    path: `/v1/admin/hub/plugins`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'], 'name': input['name'], 'version': input['version'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListPublicPluginsResponse {\n  plugins: {\n    /**\n     * ID of the [Plugin](#schema_plugin)\n     */\n    id: string;\n    /**\n     * Creation date of the [Plugin](#schema_plugin) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Plugin](#schema_plugin) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Name of the [Plugin](#schema_plugin)\n     */\n    name: string;\n    /**\n     * Version of the [Plugin](#schema_plugin)\n     */\n    version: string;\n    /**\n     * Title of the plugin. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the plugin. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the plugin. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * URL of the readme of the plugin. This is the readme that will be displayed in the UI\n     */\n    readmeUrl: string;\n    /**\n     * @deprecated\n     * [DEPRECATED] Indicates if the plugin is public. Please use the \"visibility\" parameter instead.\n     */\n    public: boolean;\n    /**\n     * The plugin's visibility. Public plugins are available to all and cannot be updated without creating a new version. Unlisted plugins behave identically to public plugins, but they are not listed in the plugin hub. By default, plugins are private and only accessible to the workspace that created them.\n     */\n    visibility: \"public\" | \"private\" | \"unlisted\";\n    /**\n     * The lifecycle status of the plugin. When a plugin is deprecated, it can no longer be installed.\n     */\n    lifecycleStatus: \"published\" | \"deprecated\";\n  }[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetPublicPluginByIdRequestHeaders {}\n\nexport interface GetPublicPluginByIdRequestQuery {}\n\nexport interface GetPublicPluginByIdRequestParams {\n  id: string;\n}\n\nexport interface GetPublicPluginByIdRequestBody {}\n\nexport type GetPublicPluginByIdInput = GetPublicPluginByIdRequestBody & GetPublicPluginByIdRequestHeaders & GetPublicPluginByIdRequestQuery & GetPublicPluginByIdRequestParams\n\nexport type GetPublicPluginByIdRequest = {\n  headers: GetPublicPluginByIdRequestHeaders;\n  query: GetPublicPluginByIdRequestQuery;\n  params: GetPublicPluginByIdRequestParams;\n  body: GetPublicPluginByIdRequestBody;\n}\n\nexport const parseReq = (input: GetPublicPluginByIdInput): GetPublicPluginByIdRequest & { path: string } => {\n  return {\n    path: `/v1/admin/hub/plugins/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetPublicPluginByIdResponse {\n  plugin: {\n    /**\n     * ID of the [Plugin](#schema_plugin)\n     */\n    id: string;\n    /**\n     * Name of the [Plugin](#schema_plugin)\n     */\n    name: string;\n    /**\n     * Version of the [Plugin](#schema_plugin)\n     */\n    version: string;\n    /**\n     * Creation date of the [Plugin](#schema_plugin) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Plugin](#schema_plugin) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Configuration definition\n     */\n    configuration: {\n      /**\n       * Title of the configuration\n       */\n      title?: string;\n      /**\n       * Description of the configuration\n       */\n      description?: string;\n      /**\n       * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n       */\n      schema: {\n        [k: string]: any;\n      };\n    };\n    states: {\n      [k: string]: {\n        /**\n         * Type of the [State](#schema_state) (`conversation`, `user` or `bot`)\n         */\n        type: \"conversation\" | \"user\" | \"bot\";\n        /**\n         * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n         */\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Expiry of the [State](#schema_state) in milliseconds. The state will expire if it is idle for the configured value. By default, a state doesn't expire.\n         */\n        expiry?: number;\n      };\n    };\n    events: {\n      /**\n       * Event Definition\n       */\n      [k: string]: {\n        /**\n         * Title of the event\n         */\n        title?: string;\n        /**\n         * Description of the event\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    actions: {\n      /**\n       * Action definition\n       */\n      [k: string]: {\n        /**\n         * Title of the action\n         */\n        title?: string;\n        /**\n         * Description of the action\n         */\n        description?: string;\n        billable?: boolean;\n        cacheable?: boolean;\n        input: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        output: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    dependencies: {\n      interfaces: {\n        [k: string]: {\n          id: string;\n          name: string;\n          version: string;\n        };\n      };\n      integrations: {\n        [k: string]: {\n          id: string;\n          name: string;\n          version: string;\n        };\n      };\n    };\n    /**\n     * User object configuration\n     */\n    user: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Conversation object configuration\n     */\n    conversation: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Message object configuration\n     */\n    message: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Title of the plugin. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the plugin. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the plugin. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * URL of the readme of the plugin. This is the readme that will be displayed in the UI\n     */\n    readmeUrl: string;\n    /**\n     * @deprecated\n     * [DEPRECATED] Indicates if the plugin is public. Please use the \"visibility\" parameter instead.\n     */\n    public: boolean;\n    /**\n     * The plugin's visibility. Public plugins are available to all and cannot be updated without creating a new version. Unlisted plugins behave identically to public plugins, but they are not listed in the plugin hub. By default, plugins are private and only accessible to the workspace that created them.\n     */\n    visibility: \"public\" | \"private\" | \"unlisted\";\n    /**\n     * The lifecycle status of the plugin. When a plugin is deprecated, it can no longer be installed.\n     */\n    lifecycleStatus: \"published\" | \"deprecated\";\n    /**\n     * Optional key-value attributes from the plugin definition\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetDereferencedPublicPluginByIdRequestHeaders {}\n\nexport interface GetDereferencedPublicPluginByIdRequestQuery {\n  /**\n   * Mapping of interface aliases to integration IDs\n   */\n  interfaces: {\n    /**\n     * integration id\n     */\n    [k: string]: string;\n  };\n}\n\nexport interface GetDereferencedPublicPluginByIdRequestParams {\n  id: string;\n}\n\nexport interface GetDereferencedPublicPluginByIdRequestBody {}\n\nexport type GetDereferencedPublicPluginByIdInput = GetDereferencedPublicPluginByIdRequestBody & GetDereferencedPublicPluginByIdRequestHeaders & GetDereferencedPublicPluginByIdRequestQuery & GetDereferencedPublicPluginByIdRequestParams\n\nexport type GetDereferencedPublicPluginByIdRequest = {\n  headers: GetDereferencedPublicPluginByIdRequestHeaders;\n  query: GetDereferencedPublicPluginByIdRequestQuery;\n  params: GetDereferencedPublicPluginByIdRequestParams;\n  body: GetDereferencedPublicPluginByIdRequestBody;\n}\n\nexport const parseReq = (input: GetDereferencedPublicPluginByIdInput): GetDereferencedPublicPluginByIdRequest & { path: string } => {\n  return {\n    path: `/v1/admin/hub/plugins/${encodeURIComponent(input['id'])}/dereferenced`,\n    headers: {  },\n    query: { 'interfaces': input['interfaces'] },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetDereferencedPublicPluginByIdResponse {\n  plugin: {\n    /**\n     * ID of the [Plugin](#schema_plugin)\n     */\n    id: string;\n    /**\n     * Name of the [Plugin](#schema_plugin)\n     */\n    name: string;\n    /**\n     * Version of the [Plugin](#schema_plugin)\n     */\n    version: string;\n    /**\n     * Creation date of the [Plugin](#schema_plugin) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Plugin](#schema_plugin) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Configuration definition\n     */\n    configuration: {\n      /**\n       * Title of the configuration\n       */\n      title?: string;\n      /**\n       * Description of the configuration\n       */\n      description?: string;\n      /**\n       * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n       */\n      schema: {\n        [k: string]: any;\n      };\n    };\n    states: {\n      [k: string]: {\n        /**\n         * Type of the [State](#schema_state) (`conversation`, `user` or `bot`)\n         */\n        type: \"conversation\" | \"user\" | \"bot\";\n        /**\n         * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n         */\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Expiry of the [State](#schema_state) in milliseconds. The state will expire if it is idle for the configured value. By default, a state doesn't expire.\n         */\n        expiry?: number;\n      };\n    };\n    events: {\n      /**\n       * Event Definition\n       */\n      [k: string]: {\n        /**\n         * Title of the event\n         */\n        title?: string;\n        /**\n         * Description of the event\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    actions: {\n      /**\n       * Action definition\n       */\n      [k: string]: {\n        /**\n         * Title of the action\n         */\n        title?: string;\n        /**\n         * Description of the action\n         */\n        description?: string;\n        billable?: boolean;\n        cacheable?: boolean;\n        input: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        output: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    dependencies: {\n      interfaces: {\n        [k: string]: {\n          id: string;\n          name: string;\n          version: string;\n        };\n      };\n      integrations: {\n        [k: string]: {\n          id: string;\n          name: string;\n          version: string;\n        };\n      };\n    };\n    /**\n     * User object configuration\n     */\n    user: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Conversation object configuration\n     */\n    conversation: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Message object configuration\n     */\n    message: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Title of the plugin. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the plugin. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the plugin. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * URL of the readme of the plugin. This is the readme that will be displayed in the UI\n     */\n    readmeUrl: string;\n    /**\n     * @deprecated\n     * [DEPRECATED] Indicates if the plugin is public. Please use the \"visibility\" parameter instead.\n     */\n    public: boolean;\n    /**\n     * The plugin's visibility. Public plugins are available to all and cannot be updated without creating a new version. Unlisted plugins behave identically to public plugins, but they are not listed in the plugin hub. By default, plugins are private and only accessible to the workspace that created them.\n     */\n    visibility: \"public\" | \"private\" | \"unlisted\";\n    /**\n     * The lifecycle status of the plugin. When a plugin is deprecated, it can no longer be installed.\n     */\n    lifecycleStatus: \"published\" | \"deprecated\";\n    /**\n     * Optional key-value attributes from the plugin definition\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetPublicPluginRequestHeaders {}\n\nexport interface GetPublicPluginRequestQuery {}\n\nexport interface GetPublicPluginRequestParams {\n  name: string;\n  version: string;\n}\n\nexport interface GetPublicPluginRequestBody {}\n\nexport type GetPublicPluginInput = GetPublicPluginRequestBody & GetPublicPluginRequestHeaders & GetPublicPluginRequestQuery & GetPublicPluginRequestParams\n\nexport type GetPublicPluginRequest = {\n  headers: GetPublicPluginRequestHeaders;\n  query: GetPublicPluginRequestQuery;\n  params: GetPublicPluginRequestParams;\n  body: GetPublicPluginRequestBody;\n}\n\nexport const parseReq = (input: GetPublicPluginInput): GetPublicPluginRequest & { path: string } => {\n  return {\n    path: `/v1/admin/hub/plugins/${encodeURIComponent(input['name'])}/${encodeURIComponent(input['version'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'name': input['name'], 'version': input['version'] },\n    body: {  },\n  }\n}\n\nexport interface GetPublicPluginResponse {\n  plugin: {\n    /**\n     * ID of the [Plugin](#schema_plugin)\n     */\n    id: string;\n    /**\n     * Name of the [Plugin](#schema_plugin)\n     */\n    name: string;\n    /**\n     * Version of the [Plugin](#schema_plugin)\n     */\n    version: string;\n    /**\n     * Creation date of the [Plugin](#schema_plugin) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Plugin](#schema_plugin) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Configuration definition\n     */\n    configuration: {\n      /**\n       * Title of the configuration\n       */\n      title?: string;\n      /**\n       * Description of the configuration\n       */\n      description?: string;\n      /**\n       * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n       */\n      schema: {\n        [k: string]: any;\n      };\n    };\n    states: {\n      [k: string]: {\n        /**\n         * Type of the [State](#schema_state) (`conversation`, `user` or `bot`)\n         */\n        type: \"conversation\" | \"user\" | \"bot\";\n        /**\n         * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n         */\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Expiry of the [State](#schema_state) in milliseconds. The state will expire if it is idle for the configured value. By default, a state doesn't expire.\n         */\n        expiry?: number;\n      };\n    };\n    events: {\n      /**\n       * Event Definition\n       */\n      [k: string]: {\n        /**\n         * Title of the event\n         */\n        title?: string;\n        /**\n         * Description of the event\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    actions: {\n      /**\n       * Action definition\n       */\n      [k: string]: {\n        /**\n         * Title of the action\n         */\n        title?: string;\n        /**\n         * Description of the action\n         */\n        description?: string;\n        billable?: boolean;\n        cacheable?: boolean;\n        input: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        output: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    dependencies: {\n      interfaces: {\n        [k: string]: {\n          id: string;\n          name: string;\n          version: string;\n        };\n      };\n      integrations: {\n        [k: string]: {\n          id: string;\n          name: string;\n          version: string;\n        };\n      };\n    };\n    /**\n     * User object configuration\n     */\n    user: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Conversation object configuration\n     */\n    conversation: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Message object configuration\n     */\n    message: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Title of the plugin. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the plugin. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the plugin. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * URL of the readme of the plugin. This is the readme that will be displayed in the UI\n     */\n    readmeUrl: string;\n    /**\n     * @deprecated\n     * [DEPRECATED] Indicates if the plugin is public. Please use the \"visibility\" parameter instead.\n     */\n    public: boolean;\n    /**\n     * The plugin's visibility. Public plugins are available to all and cannot be updated without creating a new version. Unlisted plugins behave identically to public plugins, but they are not listed in the plugin hub. By default, plugins are private and only accessible to the workspace that created them.\n     */\n    visibility: \"public\" | \"private\" | \"unlisted\";\n    /**\n     * The lifecycle status of the plugin. When a plugin is deprecated, it can no longer be installed.\n     */\n    lifecycleStatus: \"published\" | \"deprecated\";\n    /**\n     * Optional key-value attributes from the plugin definition\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetPublicPluginCodeRequestHeaders {}\n\nexport interface GetPublicPluginCodeRequestQuery {}\n\nexport interface GetPublicPluginCodeRequestParams {\n  id: string;\n  platform: \"node\" | \"browser\";\n}\n\nexport interface GetPublicPluginCodeRequestBody {}\n\nexport type GetPublicPluginCodeInput = GetPublicPluginCodeRequestBody & GetPublicPluginCodeRequestHeaders & GetPublicPluginCodeRequestQuery & GetPublicPluginCodeRequestParams\n\nexport type GetPublicPluginCodeRequest = {\n  headers: GetPublicPluginCodeRequestHeaders;\n  query: GetPublicPluginCodeRequestQuery;\n  params: GetPublicPluginCodeRequestParams;\n  body: GetPublicPluginCodeRequestBody;\n}\n\nexport const parseReq = (input: GetPublicPluginCodeInput): GetPublicPluginCodeRequest & { path: string } => {\n  return {\n    path: `/v1/admin/hub/plugins/${encodeURIComponent(input['id'])}/code/${encodeURIComponent(input['platform'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'], 'platform': input['platform'] },\n    body: {  },\n  }\n}\n\nexport interface GetPublicPluginCodeResponse {\n  code: string;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListPublicInterfacesRequestHeaders {}\n\nexport interface ListPublicInterfacesRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n  name?: string;\n  version?: string;\n}\n\nexport interface ListPublicInterfacesRequestParams {}\n\nexport interface ListPublicInterfacesRequestBody {}\n\nexport type ListPublicInterfacesInput = ListPublicInterfacesRequestBody & ListPublicInterfacesRequestHeaders & ListPublicInterfacesRequestQuery & ListPublicInterfacesRequestParams\n\nexport type ListPublicInterfacesRequest = {\n  headers: ListPublicInterfacesRequestHeaders;\n  query: ListPublicInterfacesRequestQuery;\n  params: ListPublicInterfacesRequestParams;\n  body: ListPublicInterfacesRequestBody;\n}\n\nexport const parseReq = (input: ListPublicInterfacesInput): ListPublicInterfacesRequest & { path: string } => {\n  return {\n    path: `/v1/admin/hub/interfaces`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'], 'name': input['name'], 'version': input['version'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListPublicInterfacesResponse {\n  interfaces: {\n    /**\n     * ID of the [Interface](#schema_interface)\n     */\n    id: string;\n    /**\n     * Creation date of the [Interface](#schema_interface) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Interface](#schema_interface) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Name of the [Interface](#schema_interface)\n     */\n    name: string;\n    /**\n     * Version of the [Interface](#schema_interface)\n     */\n    version: string;\n    /**\n     * Title of the interface. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the interface. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the interface. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * URL of the readme of the interface. This is the readme that will be displayed in the UI\n     */\n    readmeUrl: string;\n    /**\n     * Indicates if the interface is public. Public interfaces are available to all and cannot be updated without creating a new version.\n     */\n    public: boolean;\n  }[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetPublicInterfaceByIdRequestHeaders {}\n\nexport interface GetPublicInterfaceByIdRequestQuery {}\n\nexport interface GetPublicInterfaceByIdRequestParams {\n  id: string;\n}\n\nexport interface GetPublicInterfaceByIdRequestBody {}\n\nexport type GetPublicInterfaceByIdInput = GetPublicInterfaceByIdRequestBody & GetPublicInterfaceByIdRequestHeaders & GetPublicInterfaceByIdRequestQuery & GetPublicInterfaceByIdRequestParams\n\nexport type GetPublicInterfaceByIdRequest = {\n  headers: GetPublicInterfaceByIdRequestHeaders;\n  query: GetPublicInterfaceByIdRequestQuery;\n  params: GetPublicInterfaceByIdRequestParams;\n  body: GetPublicInterfaceByIdRequestBody;\n}\n\nexport const parseReq = (input: GetPublicInterfaceByIdInput): GetPublicInterfaceByIdRequest & { path: string } => {\n  return {\n    path: `/v1/admin/hub/interfaces/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetPublicInterfaceByIdResponse {\n  interface: {\n    /**\n     * ID of the [Interface](#schema_interface)\n     */\n    id: string;\n    /**\n     * Creation date of the [Interface](#schema_interface) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Interface](#schema_interface) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Name of the [Interface](#schema_interface)\n     */\n    name: string;\n    /**\n     * Version of the [Interface](#schema_interface)\n     */\n    version: string;\n    entities: {\n      /**\n       * Entity definition\n       */\n      [k: string]: {\n        /**\n         * Title of the entity\n         */\n        title?: string;\n        /**\n         * Description of the entity\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n      };\n    };\n    events: {\n      /**\n       * Event Definition\n       */\n      [k: string]: {\n        /**\n         * Title of the event\n         */\n        title?: string;\n        /**\n         * Description of the event\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    actions: {\n      /**\n       * Action definition\n       */\n      [k: string]: {\n        /**\n         * Title of the action\n         */\n        title?: string;\n        /**\n         * Description of the action\n         */\n        description?: string;\n        billable?: boolean;\n        cacheable?: boolean;\n        input: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        output: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    channels: {\n      [k: string]: {\n        /**\n         * Title of the channel\n         */\n        title?: string;\n        /**\n         * Description of the channel\n         */\n        description?: string;\n        messages: {\n          /**\n           * Message definition\n           */\n          [k: string]: {\n            schema: {\n              [k: string]: any;\n            };\n          };\n        };\n      };\n    };\n    /**\n     * Template string optionaly used at build time by integrations implementing this interface to pick a name for actions and events.\n     */\n    nameTemplate?: {\n      script: string;\n      language: string;\n    };\n    /**\n     * Title of the interface. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the interface. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the interface. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * URL of the readme of the interface. This is the readme that will be displayed in the UI\n     */\n    readmeUrl: string;\n    /**\n     * Indicates if the interface is public. Public interfaces are available to all and cannot be updated without creating a new version.\n     */\n    public: boolean;\n    /**\n     * Optional key-value attributes from the interface definition\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetPublicInterfaceRequestHeaders {}\n\nexport interface GetPublicInterfaceRequestQuery {}\n\nexport interface GetPublicInterfaceRequestParams {\n  name: string;\n  version: string;\n}\n\nexport interface GetPublicInterfaceRequestBody {}\n\nexport type GetPublicInterfaceInput = GetPublicInterfaceRequestBody & GetPublicInterfaceRequestHeaders & GetPublicInterfaceRequestQuery & GetPublicInterfaceRequestParams\n\nexport type GetPublicInterfaceRequest = {\n  headers: GetPublicInterfaceRequestHeaders;\n  query: GetPublicInterfaceRequestQuery;\n  params: GetPublicInterfaceRequestParams;\n  body: GetPublicInterfaceRequestBody;\n}\n\nexport const parseReq = (input: GetPublicInterfaceInput): GetPublicInterfaceRequest & { path: string } => {\n  return {\n    path: `/v1/admin/hub/interfaces/${encodeURIComponent(input['name'])}/${encodeURIComponent(input['version'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'name': input['name'], 'version': input['version'] },\n    body: {  },\n  }\n}\n\nexport interface GetPublicInterfaceResponse {\n  interface: {\n    /**\n     * ID of the [Interface](#schema_interface)\n     */\n    id: string;\n    /**\n     * Creation date of the [Interface](#schema_interface) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Interface](#schema_interface) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Name of the [Interface](#schema_interface)\n     */\n    name: string;\n    /**\n     * Version of the [Interface](#schema_interface)\n     */\n    version: string;\n    entities: {\n      /**\n       * Entity definition\n       */\n      [k: string]: {\n        /**\n         * Title of the entity\n         */\n        title?: string;\n        /**\n         * Description of the entity\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n      };\n    };\n    events: {\n      /**\n       * Event Definition\n       */\n      [k: string]: {\n        /**\n         * Title of the event\n         */\n        title?: string;\n        /**\n         * Description of the event\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    actions: {\n      /**\n       * Action definition\n       */\n      [k: string]: {\n        /**\n         * Title of the action\n         */\n        title?: string;\n        /**\n         * Description of the action\n         */\n        description?: string;\n        billable?: boolean;\n        cacheable?: boolean;\n        input: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        output: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    channels: {\n      [k: string]: {\n        /**\n         * Title of the channel\n         */\n        title?: string;\n        /**\n         * Description of the channel\n         */\n        description?: string;\n        messages: {\n          /**\n           * Message definition\n           */\n          [k: string]: {\n            schema: {\n              [k: string]: any;\n            };\n          };\n        };\n      };\n    };\n    /**\n     * Template string optionaly used at build time by integrations implementing this interface to pick a name for actions and events.\n     */\n    nameTemplate?: {\n      script: string;\n      language: string;\n    };\n    /**\n     * Title of the interface. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the interface. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the interface. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * URL of the readme of the interface. This is the readme that will be displayed in the UI\n     */\n    readmeUrl: string;\n    /**\n     * Indicates if the interface is public. Public interfaces are available to all and cannot be updated without creating a new version.\n     */\n    public: boolean;\n    /**\n     * Optional key-value attributes from the interface definition\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CreateBotRequestHeaders {}\n\nexport interface CreateBotRequestQuery {}\n\nexport interface CreateBotRequestParams {}\n\nexport interface CreateBotRequestBody {\n  /**\n   * A mapping of states to their definition\n   */\n  states?: {\n    [k: string]: {\n      /**\n       * Type of the [State](#schema_state) (`conversation`, `user` or `bot`)\n       */\n      type: \"conversation\" | \"user\" | \"bot\";\n      /**\n       * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n       */\n      schema: {\n        [k: string]: any;\n      };\n      /**\n       * Expiry of the [State](#schema_state) in milliseconds. The state will expire if it is idle for the configured value. By default, a state doesn't expire.\n       */\n      expiry?: number;\n    };\n  };\n  /**\n   * Events definition\n   */\n  events?: {\n    /**\n     * Event Definition\n     */\n    [k: string]: {\n      /**\n       * Title of the event\n       */\n      title?: string;\n      /**\n       * Description of the event\n       */\n      description?: string;\n      schema: {\n        [k: string]: any;\n      };\n      /**\n       * Optional attributes\n       */\n      attributes?: {\n        [k: string]: string;\n      };\n    };\n  };\n  recurringEvents?: {\n    [k: string]: {\n      schedule: {\n        cron: string;\n      };\n      type: string;\n      payload: {\n        [k: string]: any;\n      };\n    };\n  };\n  /**\n   * Subscriptions of the bot\n   */\n  subscriptions?: {\n    /**\n     * Events that the bot is currently subscribed on (ex: \"slack:reactionAdded\"). If null, the bot is subscribed to all events.\n     */\n    events: {\n      [k: string]: {};\n    } | null;\n  };\n  /**\n   * Actions definition\n   */\n  actions?: {\n    /**\n     * Action definition\n     */\n    [k: string]: {\n      /**\n       * Title of the action\n       */\n      title?: string;\n      /**\n       * Description of the action\n       */\n      description?: string;\n      billable?: boolean;\n      cacheable?: boolean;\n      input: {\n        schema: {\n          [k: string]: any;\n        };\n      };\n      output: {\n        schema: {\n          [k: string]: any;\n        };\n      };\n      /**\n       * Optional attributes\n       */\n      attributes?: {\n        [k: string]: string;\n      };\n    };\n  };\n  configuration?: {\n    /**\n     * Configuration data\n     */\n    data?: {\n      [k: string]: any;\n    };\n    /**\n     * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n     */\n    schema?: {\n      [k: string]: any;\n    };\n  };\n  user?: {\n    tags?: {\n      /**\n       * Definition of a tag that can be provided on the object\n       */\n      [k: string]: {\n        /**\n         * Title of the tag\n         */\n        title?: string;\n        /**\n         * Description of the tag\n         */\n        description?: string;\n      };\n    };\n  };\n  conversation?: {\n    tags?: {\n      /**\n       * Definition of a tag that can be provided on the object\n       */\n      [k: string]: {\n        /**\n         * Title of the tag\n         */\n        title?: string;\n        /**\n         * Description of the tag\n         */\n        description?: string;\n      };\n    };\n  };\n  message?: {\n    tags?: {\n      /**\n       * Definition of a tag that can be provided on the object\n       */\n      [k: string]: {\n        /**\n         * Title of the tag\n         */\n        title?: string;\n        /**\n         * Description of the tag\n         */\n        description?: string;\n      };\n    };\n  };\n  /**\n   * Optional attributes of the [Bot](#schema_bot)\n   */\n  tags?: {\n    [k: string]: string;\n  };\n  /**\n   * JavaScript code of the bot\n   */\n  code?: string;\n  /**\n   * Optional name for the bot, if not provided will be auto-generated\n   */\n  name?: string;\n  /**\n   * Optional description for the bot\n   */\n  description?: string;\n  /**\n   * Media files associated with the [Bot](#schema_bot)\n   */\n  medias?: {\n    url: string;\n    name: string;\n  }[];\n  /**\n   * URL of the [Bot](#schema_bot)\n   */\n  url?: string;\n  /**\n   * Secrets are values available in the code via environment variables formatted with a SECRET_ prefix followed by your secret name. A secret name must respect SCREAMING_SNAKE casing.\n   */\n  secrets?: {\n    [k: string]: string;\n  };\n  /**\n   * Indicates if the [Bot](#schema_bot) is a development bot; Development bots run locally and can install dev integrations\n   */\n  dev?: boolean;\n  /**\n   * Type of the [Bot](#schema_bot)\n   */\n  type?: \"studio\" | \"adk\" | \"desk\";\n  /**\n   * Maximum execution time (in seconds).\n   */\n  maxExecutionTime?: number;\n}\n\nexport type CreateBotInput = CreateBotRequestBody & CreateBotRequestHeaders & CreateBotRequestQuery & CreateBotRequestParams\n\nexport type CreateBotRequest = {\n  headers: CreateBotRequestHeaders;\n  query: CreateBotRequestQuery;\n  params: CreateBotRequestParams;\n  body: CreateBotRequestBody;\n}\n\nexport const parseReq = (input: CreateBotInput): CreateBotRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'states': input['states'], 'events': input['events'], 'recurringEvents': input['recurringEvents'], 'subscriptions': input['subscriptions'], 'actions': input['actions'], 'configuration': input['configuration'], 'user': input['user'], 'conversation': input['conversation'], 'message': input['message'], 'tags': input['tags'], 'code': input['code'], 'name': input['name'], 'description': input['description'], 'medias': input['medias'], 'url': input['url'], 'secrets': input['secrets'], 'dev': input['dev'], 'type': input['type'], 'maxExecutionTime': input['maxExecutionTime'] },\n  }\n}\n\nexport interface CreateBotResponse {\n  bot: {\n    /**\n     * Id of the [Bot](#schema_bot)\n     */\n    id: string;\n    /**\n     * Creation date of the [Bot](#schema_bot) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Bot](#schema_bot) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Signing secret of the [Bot](#schema_bot). This field is only visible when creating a new bot or when rotating the signing secret of an existing bot.\n     */\n    signingSecret: string;\n    /**\n     * A mapping of integrations to their configuration. If the `x-multiple-integrations` header is present, this object is keyed by integration aliases. Otherwise, this object is keyed by integration ids.\n     */\n    integrations: {\n      [k: string]: {\n        enabled: boolean;\n        /**\n         * Name of the [Integration](#schema_integration)\n         */\n        name: string;\n        /**\n         * Version of the [Integration](#schema_integration)\n         */\n        version: string;\n        webhookUrl: string;\n        webhookId: string;\n        identifier?: string;\n        configurationType: string | null;\n        configuration: {\n          [k: string]: any;\n        };\n        status:\n          | \"registration_pending\"\n          | \"registered\"\n          | \"registration_failed\"\n          | \"unregistration_pending\"\n          | \"unregistered\"\n          | \"unregistration_failed\";\n        statusReason: string | null;\n        /**\n         * Disabled channels for this integration\n         */\n        disabledChannels: string[];\n        /**\n         * ID of the [Integration](#schema_integration)\n         */\n        id: string;\n        /**\n         * Creation date of the [Integration](#schema_integration) in ISO 8601 format\n         */\n        createdAt: string;\n        /**\n         * Updating date of the [Integration](#schema_integration) in ISO 8601 format\n         */\n        updatedAt: string;\n        /**\n         * Title of the integration. This is the name that will be displayed in the UI\n         */\n        title: string;\n        /**\n         * Description of the integration. This is the description that will be displayed in the UI\n         */\n        description: string;\n        /**\n         * URL of the icon of the integration. This is the icon that will be displayed in the UI\n         */\n        iconUrl: string;\n        /**\n         * @deprecated\n         * [DEPRECATED] Indicates whether the integration is public. Please use the \"visibility\" parameter instead.\n         */\n        public: boolean;\n        /**\n         * The integration's visibility. Public integrations are available to all and cannot be updated without creating a new version. Unlisted integrations behave identically to public integrations, but they are not listed in the integration hub. By default, integrations are private and only accessible to the workspace that created them.\n         */\n        visibility: \"public\" | \"private\" | \"unlisted\";\n        /**\n         * Status of the integration version verification\n         */\n        verificationStatus: \"unapproved\" | \"pending\" | \"approved\" | \"rejected\";\n        /**\n         * The lifecycle status of the integration. When an integration is deprecated, it can no longer be installed.\n         */\n        lifecycleStatus: \"published\" | \"deprecated\";\n      };\n    };\n    /**\n     * A mapping of plugin aliases to their configuration\n     */\n    plugins: {\n      [k: string]: {\n        enabled: boolean;\n        /**\n         * Name of the [Plugin](#schema_plugin)\n         */\n        name: string;\n        /**\n         * Version of the [Plugin](#schema_plugin)\n         */\n        version: string;\n        configuration: {\n          [k: string]: any;\n        };\n        /**\n         * A mapping of plugin interface aliases to their backing integrations\n         */\n        interfaces?: {\n          [k: string]: {\n            integrationId: string;\n            integrationAlias: string;\n            integrationInterfaceAlias?: string;\n            interfaceId: string;\n          };\n        };\n        /**\n         * A mapping of plugin integration aliases to their backing integrations\n         */\n        integrations?: {\n          [k: string]: {\n            integrationId: string;\n            integrationAlias: string;\n          };\n        };\n        /**\n         * ID of the [Plugin](#schema_plugin)\n         */\n        id: string;\n        /**\n         * Creation date of the [Plugin](#schema_plugin) in ISO 8601 format\n         */\n        createdAt: string;\n        /**\n         * Updating date of the [Plugin](#schema_plugin) in ISO 8601 format\n         */\n        updatedAt: string;\n        /**\n         * Title of the plugin. This is the name that will be displayed in the UI\n         */\n        title: string;\n        /**\n         * Description of the plugin. This is the description that will be displayed in the UI\n         */\n        description: string;\n        /**\n         * URL of the icon of the plugin. This is the icon that will be displayed in the UI\n         */\n        iconUrl: string;\n        /**\n         * URL of the readme of the plugin. This is the readme that will be displayed in the UI\n         */\n        readmeUrl: string;\n        /**\n         * @deprecated\n         * [DEPRECATED] Indicates if the plugin is public. Please use the \"visibility\" parameter instead.\n         */\n        public: boolean;\n        /**\n         * The plugin's visibility. Public plugins are available to all and cannot be updated without creating a new version. Unlisted plugins behave identically to public plugins, but they are not listed in the plugin hub. By default, plugins are private and only accessible to the workspace that created them.\n         */\n        visibility: \"public\" | \"private\" | \"unlisted\";\n        /**\n         * The lifecycle status of the plugin. When a plugin is deprecated, it can no longer be installed.\n         */\n        lifecycleStatus: \"published\" | \"deprecated\";\n      };\n    };\n    /**\n     * Maximum execution time of the bot (in seconds).\n     */\n    maxExecutionTime?: number;\n    /**\n     * User object configuration\n     */\n    user: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Conversation object configuration\n     */\n    conversation: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Message object configuration\n     */\n    message: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * A mapping of states to their definition\n     */\n    states: {\n      [k: string]: {\n        /**\n         * Type of the [State](#schema_state) (`conversation`, `user` or `bot`)\n         */\n        type: \"conversation\" | \"user\" | \"bot\";\n        /**\n         * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n         */\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Expiry of the [State](#schema_state) in milliseconds. The state will expire if it is idle for the configured value. By default, a state doesn't expire.\n         */\n        expiry?: number;\n      };\n    };\n    /**\n     * Configuration of the bot\n     */\n    configuration: {\n      /**\n       * Configuration data\n       */\n      data: {\n        [k: string]: any;\n      };\n      /**\n       * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n       */\n      schema: {\n        [k: string]: any;\n      };\n    };\n    /**\n     * Events definition\n     */\n    events: {\n      /**\n       * Event Definition\n       */\n      [k: string]: {\n        /**\n         * Title of the event\n         */\n        title?: string;\n        /**\n         * Description of the event\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    /**\n     * Recurring events\n     */\n    recurringEvents: {\n      [k: string]: {\n        schedule: {\n          cron: string;\n        };\n        type: string;\n        payload: {\n          [k: string]: any;\n        };\n        /**\n         * The number of times the recurring event failed to run. This counter resets once the recurring event runs successfully.\n         */\n        failedAttempts: number;\n        /**\n         * The reason why the recurring event failed to run in the last attempt.\n         */\n        lastFailureReason: string | null;\n      };\n    };\n    /**\n     * Subscriptions of the bot\n     */\n    subscriptions: {\n      /**\n       * Events that the bot is currently subscribed on (ex: \"slack:reactionAdded\"). If null, the bot is subscribed to all events.\n       */\n      events: {\n        [k: string]: {};\n      } | null;\n    };\n    /**\n     * Actions definition\n     */\n    actions: {\n      /**\n       * Action definition\n       */\n      [k: string]: {\n        /**\n         * Title of the action\n         */\n        title?: string;\n        /**\n         * Description of the action\n         */\n        description?: string;\n        billable?: boolean;\n        cacheable?: boolean;\n        input: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        output: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    /**\n     * Tags of [Bot](#schema_bot)\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Name of the [Bot](#schema_bot)\n     */\n    name: string;\n    /**\n     * Description of the [Bot](#schema_bot)\n     */\n    description?: string;\n    /**\n     * Last deployment date of the [Bot](#schema_bot) in the ISO 8601 format\n     */\n    deployedAt?: string;\n    /**\n     * Indicates if the [Bot](#schema_bot) is a development bot; Development bots run locally and can install dev integrations\n     */\n    dev: boolean;\n    /**\n     * List of secret names configured for this [Bot](#schema_bot)\n     */\n    secrets: string[];\n    /**\n     * Id of the user that created the bot\n     */\n    createdBy?: string;\n    /**\n     * Indicates if the [Bot](#schema_bot) should be in always alive mode\n     */\n    alwaysAlive: boolean;\n    /**\n     * Status of the bot\n     */\n    status: \"active\" | \"deploying\" | \"deleting\";\n    /**\n     * Media files associated with the [Bot](#schema_bot)\n     */\n    medias: {\n      /**\n       * URL of the media file\n       */\n      url: string;\n      /**\n       * Name of the media file\n       */\n      name: string;\n    }[];\n    /**\n     * Type of the [Bot](#schema_bot)\n     */\n    type: \"studio\" | \"adk\" | \"desk\";\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface UpdateBotRequestHeaders {}\n\nexport interface UpdateBotRequestQuery {}\n\nexport interface UpdateBotRequestParams {\n  id: string;\n}\n\nexport interface UpdateBotRequestBody {\n  /**\n   * URL of the [Bot](#schema_bot)\n   */\n  url?: string | null;\n  /**\n   * Type of the [Bot](#schema_bot) authentication (`iam` or `hmac-sha256`)\n   */\n  authentication?: \"iam\" | \"hmac-sha256\";\n  configuration?: {\n    /**\n     * Configuration data\n     */\n    data?: {\n      [k: string]: any;\n    };\n    /**\n     * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n     */\n    schema?: {\n      [k: string]: any;\n    };\n  };\n  blocked?: boolean;\n  /**\n   * Maximum execution time (in seconds).\n   */\n  maxExecutionTime?: number;\n  /**\n   * Indicates if the [Bot](#schema_bot) should be in always alive mode\n   */\n  alwaysAlive?: boolean;\n  /**\n   * Optional attributes of the [Bot](#schema_bot). Set to null or empty string to remove.\n   */\n  tags?: {\n    [k: string]: string | null;\n  };\n  user?: {\n    tags?: {\n      /**\n       * Definition of a tag that can be provided on the object\n       */\n      [k: string]: {\n        /**\n         * Title of the tag\n         */\n        title?: string;\n        /**\n         * Description of the tag\n         */\n        description?: string;\n      } | null;\n    };\n  };\n  message?: {\n    tags?: {\n      /**\n       * Definition of a tag that can be provided on the object\n       */\n      [k: string]: {\n        /**\n         * Title of the tag\n         */\n        title?: string;\n        /**\n         * Description of the tag\n         */\n        description?: string;\n      } | null;\n    };\n  };\n  conversation?: {\n    tags?: {\n      /**\n       * Definition of a tag that can be provided on the object\n       */\n      [k: string]: {\n        /**\n         * Title of the tag\n         */\n        title?: string;\n        /**\n         * Description of the tag\n         */\n        description?: string;\n      } | null;\n    };\n  };\n  events?: {\n    [k: string]: {\n      /**\n       * Title of the event\n       */\n      title?: string;\n      /**\n       * Description of the event\n       */\n      description?: string;\n      schema: {\n        [k: string]: any;\n      };\n      /**\n       * Optional attributes. Set attributes to null to remove them\n       */\n      attributes?: {\n        [k: string]: string | null;\n      };\n    } | null;\n  };\n  actions?: {\n    [k: string]: {\n      /**\n       * Title of the action\n       */\n      title?: string;\n      /**\n       * Description of the action\n       */\n      description?: string;\n      billable?: boolean;\n      cacheable?: boolean;\n      input: {\n        schema: {\n          [k: string]: any;\n        };\n      };\n      output: {\n        schema: {\n          [k: string]: any;\n        };\n      };\n      /**\n       * Optional attributes. Set attributes to null to remove them\n       */\n      attributes?: {\n        [k: string]: string | null;\n      };\n    } | null;\n  };\n  states?: {\n    [k: string]: {\n      /**\n       * Type of the [State](#schema_state) (`conversation`, `user` or `bot`)\n       */\n      type: \"conversation\" | \"user\" | \"bot\";\n      /**\n       * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n       */\n      schema: {\n        [k: string]: any;\n      };\n      /**\n       * Expiry of the [State](#schema_state) in milliseconds. The state will expire if it is idle for the configured value. By default, a state doesn't expire.\n       */\n      expiry?: number;\n    } | null;\n  };\n  recurringEvents?: {\n    [k: string]: {\n      schedule: {\n        cron: string;\n      };\n      type: string;\n      payload: {\n        [k: string]: any;\n      };\n    } | null;\n  };\n  integrations?: {\n    [k: string]: {\n      enabled?: boolean;\n      /**\n       * Integration's definition ID. If defined, the record's key is treated as an alias for the integration instance.\n       */\n      integrationId?: string;\n      /**\n       * Integration's configuration type. Set to default if null.\n       */\n      configurationType?: string | null;\n      configuration?: {\n        [k: string]: any;\n      };\n      /**\n       * Disabled channels for this integration\n       */\n      disabledChannels?: string[];\n    } | null;\n  };\n  /**\n   * A mapping of plugin aliases to their configuration\n   */\n  plugins?: {\n    [k: string]: {\n      id: string;\n      enabled?: boolean;\n      configuration?: {\n        [k: string]: any;\n      };\n      /**\n       * A mapping of plugin interface aliases to their backing integrations\n       */\n      interfaces?: {\n        [k: string]: {\n          integrationId: string;\n          /**\n           * When an alias is provided, the plugin will use the integration corresponding to this alias. If not provided, the first integration matching the integrationId will be used.\n           */\n          integrationAlias?: string;\n          /**\n           * When an alias is provided, the plugin will use the integration interface corresponding to this alias.\n           */\n          integrationInterfaceAlias?: string;\n        };\n      };\n      /**\n       * A mapping of plugin integration aliases to their backing integrations\n       */\n      integrations?: {\n        [k: string]: {\n          integrationId: string;\n          integrationAlias: string;\n        };\n      };\n    } | null;\n  };\n  subscriptions?: {\n    events: {\n      [k: string]: {} | null;\n    } | null;\n  };\n  /**\n   * JavaScript code of the bot\n   */\n  code?: string;\n  /**\n   * Optional name for the bot, if not provided will be auto-generated\n   */\n  name?: string;\n  /**\n   * Optional description for the bot\n   */\n  description?: string;\n  /**\n   * Media files associated with the [Bot](#schema_bot)\n   */\n  medias?: {\n    url: string;\n    name: string;\n  }[];\n  /**\n   * Secrets are values available in the code via environment variables formatted with a SECRET_ prefix followed by your secret name. A secret name must respect SCREAMING_SNAKE casing.\n   */\n  secrets?: {\n    [k: string]: string | null;\n  };\n  layers?: string[];\n  /**\n   * Type of the [Bot](#schema_bot)\n   */\n  type?: \"studio\" | \"adk\" | \"desk\";\n}\n\nexport type UpdateBotInput = UpdateBotRequestBody & UpdateBotRequestHeaders & UpdateBotRequestQuery & UpdateBotRequestParams\n\nexport type UpdateBotRequest = {\n  headers: UpdateBotRequestHeaders;\n  query: UpdateBotRequestQuery;\n  params: UpdateBotRequestParams;\n  body: UpdateBotRequestBody;\n}\n\nexport const parseReq = (input: UpdateBotInput): UpdateBotRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: { 'url': input['url'], 'authentication': input['authentication'], 'configuration': input['configuration'], 'blocked': input['blocked'], 'maxExecutionTime': input['maxExecutionTime'], 'alwaysAlive': input['alwaysAlive'], 'tags': input['tags'], 'user': input['user'], 'message': input['message'], 'conversation': input['conversation'], 'events': input['events'], 'actions': input['actions'], 'states': input['states'], 'recurringEvents': input['recurringEvents'], 'integrations': input['integrations'], 'plugins': input['plugins'], 'subscriptions': input['subscriptions'], 'code': input['code'], 'name': input['name'], 'description': input['description'], 'medias': input['medias'], 'secrets': input['secrets'], 'layers': input['layers'], 'type': input['type'] },\n  }\n}\n\nexport interface UpdateBotResponse {\n  bot: {\n    /**\n     * Id of the [Bot](#schema_bot)\n     */\n    id: string;\n    /**\n     * Creation date of the [Bot](#schema_bot) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Bot](#schema_bot) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Signing secret of the [Bot](#schema_bot). This field is only visible when creating a new bot or when rotating the signing secret of an existing bot.\n     */\n    signingSecret: string;\n    /**\n     * A mapping of integrations to their configuration. If the `x-multiple-integrations` header is present, this object is keyed by integration aliases. Otherwise, this object is keyed by integration ids.\n     */\n    integrations: {\n      [k: string]: {\n        enabled: boolean;\n        /**\n         * Name of the [Integration](#schema_integration)\n         */\n        name: string;\n        /**\n         * Version of the [Integration](#schema_integration)\n         */\n        version: string;\n        webhookUrl: string;\n        webhookId: string;\n        identifier?: string;\n        configurationType: string | null;\n        configuration: {\n          [k: string]: any;\n        };\n        status:\n          | \"registration_pending\"\n          | \"registered\"\n          | \"registration_failed\"\n          | \"unregistration_pending\"\n          | \"unregistered\"\n          | \"unregistration_failed\";\n        statusReason: string | null;\n        /**\n         * Disabled channels for this integration\n         */\n        disabledChannels: string[];\n        /**\n         * ID of the [Integration](#schema_integration)\n         */\n        id: string;\n        /**\n         * Creation date of the [Integration](#schema_integration) in ISO 8601 format\n         */\n        createdAt: string;\n        /**\n         * Updating date of the [Integration](#schema_integration) in ISO 8601 format\n         */\n        updatedAt: string;\n        /**\n         * Title of the integration. This is the name that will be displayed in the UI\n         */\n        title: string;\n        /**\n         * Description of the integration. This is the description that will be displayed in the UI\n         */\n        description: string;\n        /**\n         * URL of the icon of the integration. This is the icon that will be displayed in the UI\n         */\n        iconUrl: string;\n        /**\n         * @deprecated\n         * [DEPRECATED] Indicates whether the integration is public. Please use the \"visibility\" parameter instead.\n         */\n        public: boolean;\n        /**\n         * The integration's visibility. Public integrations are available to all and cannot be updated without creating a new version. Unlisted integrations behave identically to public integrations, but they are not listed in the integration hub. By default, integrations are private and only accessible to the workspace that created them.\n         */\n        visibility: \"public\" | \"private\" | \"unlisted\";\n        /**\n         * Status of the integration version verification\n         */\n        verificationStatus: \"unapproved\" | \"pending\" | \"approved\" | \"rejected\";\n        /**\n         * The lifecycle status of the integration. When an integration is deprecated, it can no longer be installed.\n         */\n        lifecycleStatus: \"published\" | \"deprecated\";\n      };\n    };\n    /**\n     * A mapping of plugin aliases to their configuration\n     */\n    plugins: {\n      [k: string]: {\n        enabled: boolean;\n        /**\n         * Name of the [Plugin](#schema_plugin)\n         */\n        name: string;\n        /**\n         * Version of the [Plugin](#schema_plugin)\n         */\n        version: string;\n        configuration: {\n          [k: string]: any;\n        };\n        /**\n         * A mapping of plugin interface aliases to their backing integrations\n         */\n        interfaces?: {\n          [k: string]: {\n            integrationId: string;\n            integrationAlias: string;\n            integrationInterfaceAlias?: string;\n            interfaceId: string;\n          };\n        };\n        /**\n         * A mapping of plugin integration aliases to their backing integrations\n         */\n        integrations?: {\n          [k: string]: {\n            integrationId: string;\n            integrationAlias: string;\n          };\n        };\n        /**\n         * ID of the [Plugin](#schema_plugin)\n         */\n        id: string;\n        /**\n         * Creation date of the [Plugin](#schema_plugin) in ISO 8601 format\n         */\n        createdAt: string;\n        /**\n         * Updating date of the [Plugin](#schema_plugin) in ISO 8601 format\n         */\n        updatedAt: string;\n        /**\n         * Title of the plugin. This is the name that will be displayed in the UI\n         */\n        title: string;\n        /**\n         * Description of the plugin. This is the description that will be displayed in the UI\n         */\n        description: string;\n        /**\n         * URL of the icon of the plugin. This is the icon that will be displayed in the UI\n         */\n        iconUrl: string;\n        /**\n         * URL of the readme of the plugin. This is the readme that will be displayed in the UI\n         */\n        readmeUrl: string;\n        /**\n         * @deprecated\n         * [DEPRECATED] Indicates if the plugin is public. Please use the \"visibility\" parameter instead.\n         */\n        public: boolean;\n        /**\n         * The plugin's visibility. Public plugins are available to all and cannot be updated without creating a new version. Unlisted plugins behave identically to public plugins, but they are not listed in the plugin hub. By default, plugins are private and only accessible to the workspace that created them.\n         */\n        visibility: \"public\" | \"private\" | \"unlisted\";\n        /**\n         * The lifecycle status of the plugin. When a plugin is deprecated, it can no longer be installed.\n         */\n        lifecycleStatus: \"published\" | \"deprecated\";\n      };\n    };\n    /**\n     * Maximum execution time of the bot (in seconds).\n     */\n    maxExecutionTime?: number;\n    /**\n     * User object configuration\n     */\n    user: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Conversation object configuration\n     */\n    conversation: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Message object configuration\n     */\n    message: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * A mapping of states to their definition\n     */\n    states: {\n      [k: string]: {\n        /**\n         * Type of the [State](#schema_state) (`conversation`, `user` or `bot`)\n         */\n        type: \"conversation\" | \"user\" | \"bot\";\n        /**\n         * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n         */\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Expiry of the [State](#schema_state) in milliseconds. The state will expire if it is idle for the configured value. By default, a state doesn't expire.\n         */\n        expiry?: number;\n      };\n    };\n    /**\n     * Configuration of the bot\n     */\n    configuration: {\n      /**\n       * Configuration data\n       */\n      data: {\n        [k: string]: any;\n      };\n      /**\n       * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n       */\n      schema: {\n        [k: string]: any;\n      };\n    };\n    /**\n     * Events definition\n     */\n    events: {\n      /**\n       * Event Definition\n       */\n      [k: string]: {\n        /**\n         * Title of the event\n         */\n        title?: string;\n        /**\n         * Description of the event\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    /**\n     * Recurring events\n     */\n    recurringEvents: {\n      [k: string]: {\n        schedule: {\n          cron: string;\n        };\n        type: string;\n        payload: {\n          [k: string]: any;\n        };\n        /**\n         * The number of times the recurring event failed to run. This counter resets once the recurring event runs successfully.\n         */\n        failedAttempts: number;\n        /**\n         * The reason why the recurring event failed to run in the last attempt.\n         */\n        lastFailureReason: string | null;\n      };\n    };\n    /**\n     * Subscriptions of the bot\n     */\n    subscriptions: {\n      /**\n       * Events that the bot is currently subscribed on (ex: \"slack:reactionAdded\"). If null, the bot is subscribed to all events.\n       */\n      events: {\n        [k: string]: {};\n      } | null;\n    };\n    /**\n     * Actions definition\n     */\n    actions: {\n      /**\n       * Action definition\n       */\n      [k: string]: {\n        /**\n         * Title of the action\n         */\n        title?: string;\n        /**\n         * Description of the action\n         */\n        description?: string;\n        billable?: boolean;\n        cacheable?: boolean;\n        input: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        output: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    /**\n     * Tags of [Bot](#schema_bot)\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Name of the [Bot](#schema_bot)\n     */\n    name: string;\n    /**\n     * Description of the [Bot](#schema_bot)\n     */\n    description?: string;\n    /**\n     * Last deployment date of the [Bot](#schema_bot) in the ISO 8601 format\n     */\n    deployedAt?: string;\n    /**\n     * Indicates if the [Bot](#schema_bot) is a development bot; Development bots run locally and can install dev integrations\n     */\n    dev: boolean;\n    /**\n     * List of secret names configured for this [Bot](#schema_bot)\n     */\n    secrets: string[];\n    /**\n     * Id of the user that created the bot\n     */\n    createdBy?: string;\n    /**\n     * Indicates if the [Bot](#schema_bot) should be in always alive mode\n     */\n    alwaysAlive: boolean;\n    /**\n     * Status of the bot\n     */\n    status: \"active\" | \"deploying\" | \"deleting\";\n    /**\n     * Media files associated with the [Bot](#schema_bot)\n     */\n    medias: {\n      /**\n       * URL of the media file\n       */\n      url: string;\n      /**\n       * Name of the media file\n       */\n      name: string;\n    }[];\n    /**\n     * Type of the [Bot](#schema_bot)\n     */\n    type: \"studio\" | \"adk\" | \"desk\";\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface RotateBotSigningSecretsRequestHeaders {}\n\nexport interface RotateBotSigningSecretsRequestQuery {}\n\nexport interface RotateBotSigningSecretsRequestParams {\n  id: string;\n}\n\nexport interface RotateBotSigningSecretsRequestBody {}\n\nexport type RotateBotSigningSecretsInput = RotateBotSigningSecretsRequestBody & RotateBotSigningSecretsRequestHeaders & RotateBotSigningSecretsRequestQuery & RotateBotSigningSecretsRequestParams\n\nexport type RotateBotSigningSecretsRequest = {\n  headers: RotateBotSigningSecretsRequestHeaders;\n  query: RotateBotSigningSecretsRequestQuery;\n  params: RotateBotSigningSecretsRequestParams;\n  body: RotateBotSigningSecretsRequestBody;\n}\n\nexport const parseReq = (input: RotateBotSigningSecretsInput): RotateBotSigningSecretsRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['id'])}/signing-secrets/rotate`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface RotateBotSigningSecretsResponse {\n  /**\n   * The new signing secret that can be used immediately. The old signing secret(s) will continue to work for 24 hours after this operation to allow for a smooth transition.\n   */\n  newSigningSecret: string;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface TransferBotRequestHeaders {}\n\nexport interface TransferBotRequestQuery {}\n\nexport interface TransferBotRequestParams {\n  id: string;\n}\n\nexport interface TransferBotRequestBody {\n  /**\n   * The ID of the workspace you want to transfer the bot to.\n   */\n  targetWorkspaceId: string;\n}\n\nexport type TransferBotInput = TransferBotRequestBody & TransferBotRequestHeaders & TransferBotRequestQuery & TransferBotRequestParams\n\nexport type TransferBotRequest = {\n  headers: TransferBotRequestHeaders;\n  query: TransferBotRequestQuery;\n  params: TransferBotRequestParams;\n  body: TransferBotRequestBody;\n}\n\nexport const parseReq = (input: TransferBotInput): TransferBotRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['id'])}/transfer`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: { 'targetWorkspaceId': input['targetWorkspaceId'] },\n  }\n}\n\nexport interface TransferBotResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListBotsRequestHeaders {}\n\nexport interface ListBotsRequestQuery {\n  dev?: boolean;\n  tags?: {\n    [k: string]: string;\n  };\n  integrationNames?: string[];\n  pluginNames?: string[];\n  nextToken?: string;\n  pageSize?: number;\n  sortField?: \"createdAt\" | \"updatedAt\";\n  sortDirection?: \"asc\" | \"desc\";\n}\n\nexport interface ListBotsRequestParams {}\n\nexport interface ListBotsRequestBody {}\n\nexport type ListBotsInput = ListBotsRequestBody & ListBotsRequestHeaders & ListBotsRequestQuery & ListBotsRequestParams\n\nexport type ListBotsRequest = {\n  headers: ListBotsRequestHeaders;\n  query: ListBotsRequestQuery;\n  params: ListBotsRequestParams;\n  body: ListBotsRequestBody;\n}\n\nexport const parseReq = (input: ListBotsInput): ListBotsRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots`,\n    headers: {  },\n    query: { 'dev': input['dev'], 'tags': input['tags'], 'integrationNames': input['integrationNames'], 'pluginNames': input['pluginNames'], 'nextToken': input['nextToken'], 'pageSize': input['pageSize'], 'sortField': input['sortField'], 'sortDirection': input['sortDirection'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListBotsResponse {\n  bots: {\n    /**\n     * Id of the [Bot](#schema_bot)\n     */\n    id: string;\n    /**\n     * Creation date of the [Bot](#schema_bot) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Bot](#schema_bot) in ISO 8601 format\n     */\n    updatedAt: string;\n    name: string;\n    deployedAt?: string;\n    /**\n     * Tags of [Bot](#schema_bot)\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Type of the [Bot](#schema_bot)\n     */\n    type: \"studio\" | \"adk\" | \"desk\";\n  }[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetBotRequestHeaders {}\n\nexport interface GetBotRequestQuery {}\n\nexport interface GetBotRequestParams {\n  id: string;\n}\n\nexport interface GetBotRequestBody {}\n\nexport type GetBotInput = GetBotRequestBody & GetBotRequestHeaders & GetBotRequestQuery & GetBotRequestParams\n\nexport type GetBotRequest = {\n  headers: GetBotRequestHeaders;\n  query: GetBotRequestQuery;\n  params: GetBotRequestParams;\n  body: GetBotRequestBody;\n}\n\nexport const parseReq = (input: GetBotInput): GetBotRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetBotResponse {\n  bot: {\n    /**\n     * Id of the [Bot](#schema_bot)\n     */\n    id: string;\n    /**\n     * Creation date of the [Bot](#schema_bot) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Bot](#schema_bot) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Signing secret of the [Bot](#schema_bot). This field is only visible when creating a new bot or when rotating the signing secret of an existing bot.\n     */\n    signingSecret: string;\n    /**\n     * A mapping of integrations to their configuration. If the `x-multiple-integrations` header is present, this object is keyed by integration aliases. Otherwise, this object is keyed by integration ids.\n     */\n    integrations: {\n      [k: string]: {\n        enabled: boolean;\n        /**\n         * Name of the [Integration](#schema_integration)\n         */\n        name: string;\n        /**\n         * Version of the [Integration](#schema_integration)\n         */\n        version: string;\n        webhookUrl: string;\n        webhookId: string;\n        identifier?: string;\n        configurationType: string | null;\n        configuration: {\n          [k: string]: any;\n        };\n        status:\n          | \"registration_pending\"\n          | \"registered\"\n          | \"registration_failed\"\n          | \"unregistration_pending\"\n          | \"unregistered\"\n          | \"unregistration_failed\";\n        statusReason: string | null;\n        /**\n         * Disabled channels for this integration\n         */\n        disabledChannels: string[];\n        /**\n         * ID of the [Integration](#schema_integration)\n         */\n        id: string;\n        /**\n         * Creation date of the [Integration](#schema_integration) in ISO 8601 format\n         */\n        createdAt: string;\n        /**\n         * Updating date of the [Integration](#schema_integration) in ISO 8601 format\n         */\n        updatedAt: string;\n        /**\n         * Title of the integration. This is the name that will be displayed in the UI\n         */\n        title: string;\n        /**\n         * Description of the integration. This is the description that will be displayed in the UI\n         */\n        description: string;\n        /**\n         * URL of the icon of the integration. This is the icon that will be displayed in the UI\n         */\n        iconUrl: string;\n        /**\n         * @deprecated\n         * [DEPRECATED] Indicates whether the integration is public. Please use the \"visibility\" parameter instead.\n         */\n        public: boolean;\n        /**\n         * The integration's visibility. Public integrations are available to all and cannot be updated without creating a new version. Unlisted integrations behave identically to public integrations, but they are not listed in the integration hub. By default, integrations are private and only accessible to the workspace that created them.\n         */\n        visibility: \"public\" | \"private\" | \"unlisted\";\n        /**\n         * Status of the integration version verification\n         */\n        verificationStatus: \"unapproved\" | \"pending\" | \"approved\" | \"rejected\";\n        /**\n         * The lifecycle status of the integration. When an integration is deprecated, it can no longer be installed.\n         */\n        lifecycleStatus: \"published\" | \"deprecated\";\n      };\n    };\n    /**\n     * A mapping of plugin aliases to their configuration\n     */\n    plugins: {\n      [k: string]: {\n        enabled: boolean;\n        /**\n         * Name of the [Plugin](#schema_plugin)\n         */\n        name: string;\n        /**\n         * Version of the [Plugin](#schema_plugin)\n         */\n        version: string;\n        configuration: {\n          [k: string]: any;\n        };\n        /**\n         * A mapping of plugin interface aliases to their backing integrations\n         */\n        interfaces?: {\n          [k: string]: {\n            integrationId: string;\n            integrationAlias: string;\n            integrationInterfaceAlias?: string;\n            interfaceId: string;\n          };\n        };\n        /**\n         * A mapping of plugin integration aliases to their backing integrations\n         */\n        integrations?: {\n          [k: string]: {\n            integrationId: string;\n            integrationAlias: string;\n          };\n        };\n        /**\n         * ID of the [Plugin](#schema_plugin)\n         */\n        id: string;\n        /**\n         * Creation date of the [Plugin](#schema_plugin) in ISO 8601 format\n         */\n        createdAt: string;\n        /**\n         * Updating date of the [Plugin](#schema_plugin) in ISO 8601 format\n         */\n        updatedAt: string;\n        /**\n         * Title of the plugin. This is the name that will be displayed in the UI\n         */\n        title: string;\n        /**\n         * Description of the plugin. This is the description that will be displayed in the UI\n         */\n        description: string;\n        /**\n         * URL of the icon of the plugin. This is the icon that will be displayed in the UI\n         */\n        iconUrl: string;\n        /**\n         * URL of the readme of the plugin. This is the readme that will be displayed in the UI\n         */\n        readmeUrl: string;\n        /**\n         * @deprecated\n         * [DEPRECATED] Indicates if the plugin is public. Please use the \"visibility\" parameter instead.\n         */\n        public: boolean;\n        /**\n         * The plugin's visibility. Public plugins are available to all and cannot be updated without creating a new version. Unlisted plugins behave identically to public plugins, but they are not listed in the plugin hub. By default, plugins are private and only accessible to the workspace that created them.\n         */\n        visibility: \"public\" | \"private\" | \"unlisted\";\n        /**\n         * The lifecycle status of the plugin. When a plugin is deprecated, it can no longer be installed.\n         */\n        lifecycleStatus: \"published\" | \"deprecated\";\n      };\n    };\n    /**\n     * Maximum execution time of the bot (in seconds).\n     */\n    maxExecutionTime?: number;\n    /**\n     * User object configuration\n     */\n    user: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Conversation object configuration\n     */\n    conversation: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Message object configuration\n     */\n    message: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * A mapping of states to their definition\n     */\n    states: {\n      [k: string]: {\n        /**\n         * Type of the [State](#schema_state) (`conversation`, `user` or `bot`)\n         */\n        type: \"conversation\" | \"user\" | \"bot\";\n        /**\n         * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n         */\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Expiry of the [State](#schema_state) in milliseconds. The state will expire if it is idle for the configured value. By default, a state doesn't expire.\n         */\n        expiry?: number;\n      };\n    };\n    /**\n     * Configuration of the bot\n     */\n    configuration: {\n      /**\n       * Configuration data\n       */\n      data: {\n        [k: string]: any;\n      };\n      /**\n       * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n       */\n      schema: {\n        [k: string]: any;\n      };\n    };\n    /**\n     * Events definition\n     */\n    events: {\n      /**\n       * Event Definition\n       */\n      [k: string]: {\n        /**\n         * Title of the event\n         */\n        title?: string;\n        /**\n         * Description of the event\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    /**\n     * Recurring events\n     */\n    recurringEvents: {\n      [k: string]: {\n        schedule: {\n          cron: string;\n        };\n        type: string;\n        payload: {\n          [k: string]: any;\n        };\n        /**\n         * The number of times the recurring event failed to run. This counter resets once the recurring event runs successfully.\n         */\n        failedAttempts: number;\n        /**\n         * The reason why the recurring event failed to run in the last attempt.\n         */\n        lastFailureReason: string | null;\n      };\n    };\n    /**\n     * Subscriptions of the bot\n     */\n    subscriptions: {\n      /**\n       * Events that the bot is currently subscribed on (ex: \"slack:reactionAdded\"). If null, the bot is subscribed to all events.\n       */\n      events: {\n        [k: string]: {};\n      } | null;\n    };\n    /**\n     * Actions definition\n     */\n    actions: {\n      /**\n       * Action definition\n       */\n      [k: string]: {\n        /**\n         * Title of the action\n         */\n        title?: string;\n        /**\n         * Description of the action\n         */\n        description?: string;\n        billable?: boolean;\n        cacheable?: boolean;\n        input: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        output: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    /**\n     * Tags of [Bot](#schema_bot)\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Name of the [Bot](#schema_bot)\n     */\n    name: string;\n    /**\n     * Description of the [Bot](#schema_bot)\n     */\n    description?: string;\n    /**\n     * Last deployment date of the [Bot](#schema_bot) in the ISO 8601 format\n     */\n    deployedAt?: string;\n    /**\n     * Indicates if the [Bot](#schema_bot) is a development bot; Development bots run locally and can install dev integrations\n     */\n    dev: boolean;\n    /**\n     * List of secret names configured for this [Bot](#schema_bot)\n     */\n    secrets: string[];\n    /**\n     * Id of the user that created the bot\n     */\n    createdBy?: string;\n    /**\n     * Indicates if the [Bot](#schema_bot) should be in always alive mode\n     */\n    alwaysAlive: boolean;\n    /**\n     * Status of the bot\n     */\n    status: \"active\" | \"deploying\" | \"deleting\";\n    /**\n     * Media files associated with the [Bot](#schema_bot)\n     */\n    medias: {\n      /**\n       * URL of the media file\n       */\n      url: string;\n      /**\n       * Name of the media file\n       */\n      name: string;\n    }[];\n    /**\n     * Type of the [Bot](#schema_bot)\n     */\n    type: \"studio\" | \"adk\" | \"desk\";\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface DeleteBotRequestHeaders {}\n\nexport interface DeleteBotRequestQuery {}\n\nexport interface DeleteBotRequestParams {\n  id: string;\n}\n\nexport interface DeleteBotRequestBody {}\n\nexport type DeleteBotInput = DeleteBotRequestBody & DeleteBotRequestHeaders & DeleteBotRequestQuery & DeleteBotRequestParams\n\nexport type DeleteBotRequest = {\n  headers: DeleteBotRequestHeaders;\n  query: DeleteBotRequestQuery;\n  params: DeleteBotRequestParams;\n  body: DeleteBotRequestBody;\n}\n\nexport const parseReq = (input: DeleteBotInput): DeleteBotRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface DeleteBotResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetBotLogsRequestHeaders {}\n\nexport interface GetBotLogsRequestQuery {\n  timeStart: string;\n  timeEnd?: string;\n  level?: string;\n  userId?: string;\n  workflowId?: string;\n  conversationId?: string;\n  messageContains?: string;\n  nextToken?: string;\n}\n\nexport interface GetBotLogsRequestParams {\n  id: string;\n}\n\nexport interface GetBotLogsRequestBody {}\n\nexport type GetBotLogsInput = GetBotLogsRequestBody & GetBotLogsRequestHeaders & GetBotLogsRequestQuery & GetBotLogsRequestParams\n\nexport type GetBotLogsRequest = {\n  headers: GetBotLogsRequestHeaders;\n  query: GetBotLogsRequestQuery;\n  params: GetBotLogsRequestParams;\n  body: GetBotLogsRequestBody;\n}\n\nexport const parseReq = (input: GetBotLogsInput): GetBotLogsRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['id'])}/logs`,\n    headers: {  },\n    query: { 'timeStart': input['timeStart'], 'timeEnd': input['timeEnd'], 'level': input['level'], 'userId': input['userId'], 'workflowId': input['workflowId'], 'conversationId': input['conversationId'], 'messageContains': input['messageContains'], 'nextToken': input['nextToken'] },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetBotLogsResponse {\n  logs: {\n    timestamp: string;\n    level: string;\n    message: string;\n    workflowId?: string;\n    userId?: string;\n    conversationId?: string;\n  }[];\n  nextToken?: string;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetBotWebchatRequestHeaders {}\n\nexport interface GetBotWebchatRequestQuery {\n  type: \"preconfigured\" | \"configurable\" | \"fullscreen\" | \"sharableUrl\";\n}\n\nexport interface GetBotWebchatRequestParams {\n  id: string;\n}\n\nexport interface GetBotWebchatRequestBody {}\n\nexport type GetBotWebchatInput = GetBotWebchatRequestBody & GetBotWebchatRequestHeaders & GetBotWebchatRequestQuery & GetBotWebchatRequestParams\n\nexport type GetBotWebchatRequest = {\n  headers: GetBotWebchatRequestHeaders;\n  query: GetBotWebchatRequestQuery;\n  params: GetBotWebchatRequestParams;\n  body: GetBotWebchatRequestBody;\n}\n\nexport const parseReq = (input: GetBotWebchatInput): GetBotWebchatRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['id'])}/webchat`,\n    headers: {  },\n    query: { 'type': input['type'] },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetBotWebchatResponse {\n  code: string;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetBotAnalyticsRequestHeaders {}\n\nexport interface GetBotAnalyticsRequestQuery {\n  startDate: string;\n  endDate: string;\n}\n\nexport interface GetBotAnalyticsRequestParams {\n  id: string;\n}\n\nexport interface GetBotAnalyticsRequestBody {}\n\nexport type GetBotAnalyticsInput = GetBotAnalyticsRequestBody & GetBotAnalyticsRequestHeaders & GetBotAnalyticsRequestQuery & GetBotAnalyticsRequestParams\n\nexport type GetBotAnalyticsRequest = {\n  headers: GetBotAnalyticsRequestHeaders;\n  query: GetBotAnalyticsRequestQuery;\n  params: GetBotAnalyticsRequestParams;\n  body: GetBotAnalyticsRequestBody;\n}\n\nexport const parseReq = (input: GetBotAnalyticsInput): GetBotAnalyticsRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['id'])}/analytics`,\n    headers: {  },\n    query: { 'startDate': input['startDate'], 'endDate': input['endDate'] },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetBotAnalyticsResponse {\n  records: {\n    /**\n     * ISO 8601 date string of the beginning (inclusive) of the period\n     */\n    startDateTimeUtc: string;\n    /**\n     * ISO 8601 date string of the end (inclusive) of the period\n     */\n    endDateTimeUtc: string;\n    returningUsers: number;\n    newUsers: number;\n    sessions: number;\n    /**\n     * Deprecated. Use `userMessages` instead.\n     */\n    messages: number;\n    userMessages: number;\n    botMessages: number;\n    events: number;\n    eventTypes: {\n      [k: string]: number;\n    };\n    customEvents: {\n      [k: string]: number;\n    };\n    llm: {\n      calls: number;\n      errors: number;\n      inputTokens: number;\n      outputTokens: number;\n      /**\n       * The time it took for the LLM to complete its response. Values are expressed in milliseconds\n       */\n      latency: {\n        mean: number;\n        sd: number;\n        min: number;\n        max: number;\n      };\n      /**\n       * LLM response generation speed expressed in output tokens per second.\n       */\n      tokensPerSecond: {\n        mean: number;\n        sd: number;\n        min: number;\n        max: number;\n      };\n      /**\n       * Values are expressed in U.S. dollars\n       */\n      cost: {\n        sum: number;\n        mean: number;\n        sd: number;\n        min: number;\n        max: number;\n      };\n    };\n  }[];\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListActionRunsRequestHeaders {}\n\nexport interface ListActionRunsRequestQuery {\n  integrationName: string;\n  timestampFrom?: string;\n  timestampUntil?: string;\n  nextToken?: string;\n  pageSize?: number;\n}\n\nexport interface ListActionRunsRequestParams {\n  id: string;\n}\n\nexport interface ListActionRunsRequestBody {}\n\nexport type ListActionRunsInput = ListActionRunsRequestBody & ListActionRunsRequestHeaders & ListActionRunsRequestQuery & ListActionRunsRequestParams\n\nexport type ListActionRunsRequest = {\n  headers: ListActionRunsRequestHeaders;\n  query: ListActionRunsRequestQuery;\n  params: ListActionRunsRequestParams;\n  body: ListActionRunsRequestBody;\n}\n\nexport const parseReq = (input: ListActionRunsInput): ListActionRunsRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['id'])}/action-runs`,\n    headers: {  },\n    query: { 'integrationName': input['integrationName'], 'timestampFrom': input['timestampFrom'], 'timestampUntil': input['timestampUntil'], 'nextToken': input['nextToken'], 'pageSize': input['pageSize'] },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface ListActionRunsResponse {\n  data: {\n    /**\n     * ISO 8601 timestamp of the action run\n     */\n    timestamp: string;\n    /**\n     * Alias of the integration instance used for this action run\n     */\n    integrationName?: string;\n    actionType: string;\n    /**\n     * Input of the action\n     */\n    input: {\n      [k: string]: any;\n    };\n    /**\n     * Present if the length of the action's input exceeds 190 KB.\n     */\n    inputTruncated?: boolean;\n    /**\n     * Output of the action\n     */\n    output: {\n      [k: string]: any;\n    } | null;\n    /**\n     * Present if the length of the action's output exceeds 190 KB.\n     */\n    outputTruncated?: boolean;\n    status: \"SUCCESS\" | \"FAILURE\";\n    durationMs: number;\n    cached: boolean;\n    errorMessage?: string | null;\n  }[];\n  meta: {\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetBotIssueRequestHeaders {}\n\nexport interface GetBotIssueRequestQuery {}\n\nexport interface GetBotIssueRequestParams {\n  id: string;\n  issueId: string;\n}\n\nexport interface GetBotIssueRequestBody {}\n\nexport type GetBotIssueInput = GetBotIssueRequestBody & GetBotIssueRequestHeaders & GetBotIssueRequestQuery & GetBotIssueRequestParams\n\nexport type GetBotIssueRequest = {\n  headers: GetBotIssueRequestHeaders;\n  query: GetBotIssueRequestQuery;\n  params: GetBotIssueRequestParams;\n  body: GetBotIssueRequestBody;\n}\n\nexport const parseReq = (input: GetBotIssueInput): GetBotIssueRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['id'])}/issues/${encodeURIComponent(input['issueId'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'], 'issueId': input['issueId'] },\n    body: {  },\n  }\n}\n\nexport interface GetBotIssueResponse {\n  issue: {\n    id: string;\n    code: string;\n    createdAt: string;\n    lastSeenAt: string;\n    title: string;\n    description: string;\n    groupedData: {\n      [k: string]: {\n        raw: string;\n        pretty?: string;\n      };\n    };\n    eventsCount: number;\n    category: \"user_code\" | \"limits\" | \"configuration\" | \"other\";\n    resolutionLink: string | null;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListBotIssuesRequestHeaders {}\n\nexport interface ListBotIssuesRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n}\n\nexport interface ListBotIssuesRequestParams {\n  id: string;\n}\n\nexport interface ListBotIssuesRequestBody {}\n\nexport type ListBotIssuesInput = ListBotIssuesRequestBody & ListBotIssuesRequestHeaders & ListBotIssuesRequestQuery & ListBotIssuesRequestParams\n\nexport type ListBotIssuesRequest = {\n  headers: ListBotIssuesRequestHeaders;\n  query: ListBotIssuesRequestQuery;\n  params: ListBotIssuesRequestParams;\n  body: ListBotIssuesRequestBody;\n}\n\nexport const parseReq = (input: ListBotIssuesInput): ListBotIssuesRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['id'])}/issues`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'] },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface ListBotIssuesResponse {\n  issues: {\n    id: string;\n    code: string;\n    createdAt: string;\n    lastSeenAt: string;\n    title: string;\n    description: string;\n    groupedData: {\n      [k: string]: {\n        raw: string;\n        pretty?: string;\n      };\n    };\n    eventsCount: number;\n    category: \"user_code\" | \"limits\" | \"configuration\" | \"other\";\n    resolutionLink: string | null;\n  }[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface DeleteBotIssueRequestHeaders {}\n\nexport interface DeleteBotIssueRequestQuery {}\n\nexport interface DeleteBotIssueRequestParams {\n  id: string;\n  issueId: string;\n}\n\nexport interface DeleteBotIssueRequestBody {}\n\nexport type DeleteBotIssueInput = DeleteBotIssueRequestBody & DeleteBotIssueRequestHeaders & DeleteBotIssueRequestQuery & DeleteBotIssueRequestParams\n\nexport type DeleteBotIssueRequest = {\n  headers: DeleteBotIssueRequestHeaders;\n  query: DeleteBotIssueRequestQuery;\n  params: DeleteBotIssueRequestParams;\n  body: DeleteBotIssueRequestBody;\n}\n\nexport const parseReq = (input: DeleteBotIssueInput): DeleteBotIssueRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['id'])}/issues/${encodeURIComponent(input['issueId'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'], 'issueId': input['issueId'] },\n    body: {  },\n  }\n}\n\nexport interface DeleteBotIssueResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListBotIssueEventsRequestHeaders {}\n\nexport interface ListBotIssueEventsRequestQuery {}\n\nexport interface ListBotIssueEventsRequestParams {\n  id: string;\n  issueId: string;\n}\n\nexport interface ListBotIssueEventsRequestBody {}\n\nexport type ListBotIssueEventsInput = ListBotIssueEventsRequestBody & ListBotIssueEventsRequestHeaders & ListBotIssueEventsRequestQuery & ListBotIssueEventsRequestParams\n\nexport type ListBotIssueEventsRequest = {\n  headers: ListBotIssueEventsRequestHeaders;\n  query: ListBotIssueEventsRequestQuery;\n  params: ListBotIssueEventsRequestParams;\n  body: ListBotIssueEventsRequestBody;\n}\n\nexport const parseReq = (input: ListBotIssueEventsInput): ListBotIssueEventsRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['id'])}/issues/${encodeURIComponent(input['issueId'])}/events`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'], 'issueId': input['issueId'] },\n    body: {  },\n  }\n}\n\nexport interface ListBotIssueEventsResponse {\n  issueEvents: {\n    id: string;\n    createdAt: string;\n    data: {\n      [k: string]: {\n        raw: string;\n        pretty?: string;\n      };\n    };\n  }[];\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListBotVersionsRequestHeaders {}\n\nexport interface ListBotVersionsRequestQuery {}\n\nexport interface ListBotVersionsRequestParams {\n  id: string;\n}\n\nexport interface ListBotVersionsRequestBody {}\n\nexport type ListBotVersionsInput = ListBotVersionsRequestBody & ListBotVersionsRequestHeaders & ListBotVersionsRequestQuery & ListBotVersionsRequestParams\n\nexport type ListBotVersionsRequest = {\n  headers: ListBotVersionsRequestHeaders;\n  query: ListBotVersionsRequestQuery;\n  params: ListBotVersionsRequestParams;\n  body: ListBotVersionsRequestBody;\n}\n\nexport const parseReq = (input: ListBotVersionsInput): ListBotVersionsRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['id'])}/versions`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface ListBotVersionsResponse {\n  versions: {\n    id: string;\n    name: string;\n    description?: string;\n  }[];\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetBotVersionRequestHeaders {}\n\nexport interface GetBotVersionRequestQuery {}\n\nexport interface GetBotVersionRequestParams {\n  id: string;\n  versionId: string;\n}\n\nexport interface GetBotVersionRequestBody {}\n\nexport type GetBotVersionInput = GetBotVersionRequestBody & GetBotVersionRequestHeaders & GetBotVersionRequestQuery & GetBotVersionRequestParams\n\nexport type GetBotVersionRequest = {\n  headers: GetBotVersionRequestHeaders;\n  query: GetBotVersionRequestQuery;\n  params: GetBotVersionRequestParams;\n  body: GetBotVersionRequestBody;\n}\n\nexport const parseReq = (input: GetBotVersionInput): GetBotVersionRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['id'])}/versions/${encodeURIComponent(input['versionId'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'], 'versionId': input['versionId'] },\n    body: {  },\n  }\n}\n\nexport interface GetBotVersionResponse {\n  url: string;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetBotJsonRequestHeaders {}\n\nexport interface GetBotJsonRequestQuery {}\n\nexport interface GetBotJsonRequestParams {\n  id: string;\n}\n\nexport interface GetBotJsonRequestBody {}\n\nexport type GetBotJsonInput = GetBotJsonRequestBody & GetBotJsonRequestHeaders & GetBotJsonRequestQuery & GetBotJsonRequestParams\n\nexport type GetBotJsonRequest = {\n  headers: GetBotJsonRequestHeaders;\n  query: GetBotJsonRequestQuery;\n  params: GetBotJsonRequestParams;\n  body: GetBotJsonRequestBody;\n}\n\nexport const parseReq = (input: GetBotJsonInput): GetBotJsonRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['id'])}/bot-json`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetBotJsonResponse {\n  [k: string]: any;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface PublishFromBotJsonRequestHeaders {}\n\nexport interface PublishFromBotJsonRequestQuery {}\n\nexport interface PublishFromBotJsonRequestParams {\n  id: string;\n}\n\nexport interface PublishFromBotJsonRequestBody {\n  botJson: {\n    [k: string]: any;\n  };\n}\n\nexport type PublishFromBotJsonInput = PublishFromBotJsonRequestBody & PublishFromBotJsonRequestHeaders & PublishFromBotJsonRequestQuery & PublishFromBotJsonRequestParams\n\nexport type PublishFromBotJsonRequest = {\n  headers: PublishFromBotJsonRequestHeaders;\n  query: PublishFromBotJsonRequestQuery;\n  params: PublishFromBotJsonRequestParams;\n  body: PublishFromBotJsonRequestBody;\n}\n\nexport const parseReq = (input: PublishFromBotJsonInput): PublishFromBotJsonRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['id'])}/publish-from-bot-json`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: { 'botJson': input['botJson'] },\n  }\n}\n\nexport interface PublishFromBotJsonResponse {\n  [k: string]: any;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CreateBotVersionRequestHeaders {}\n\nexport interface CreateBotVersionRequestQuery {}\n\nexport interface CreateBotVersionRequestParams {\n  id: string;\n}\n\nexport interface CreateBotVersionRequestBody {\n  name: string;\n  description?: string;\n}\n\nexport type CreateBotVersionInput = CreateBotVersionRequestBody & CreateBotVersionRequestHeaders & CreateBotVersionRequestQuery & CreateBotVersionRequestParams\n\nexport type CreateBotVersionRequest = {\n  headers: CreateBotVersionRequestHeaders;\n  query: CreateBotVersionRequestQuery;\n  params: CreateBotVersionRequestParams;\n  body: CreateBotVersionRequestBody;\n}\n\nexport const parseReq = (input: CreateBotVersionInput): CreateBotVersionRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['id'])}/versions`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: { 'name': input['name'], 'description': input['description'] },\n  }\n}\n\nexport interface CreateBotVersionResponse {\n  version: {\n    id: string;\n    name: string;\n    description?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface DeployBotVersionRequestHeaders {}\n\nexport interface DeployBotVersionRequestQuery {}\n\nexport interface DeployBotVersionRequestParams {\n  id: string;\n}\n\nexport interface DeployBotVersionRequestBody {\n  versionId: string;\n}\n\nexport type DeployBotVersionInput = DeployBotVersionRequestBody & DeployBotVersionRequestHeaders & DeployBotVersionRequestQuery & DeployBotVersionRequestParams\n\nexport type DeployBotVersionRequest = {\n  headers: DeployBotVersionRequestHeaders;\n  query: DeployBotVersionRequestQuery;\n  params: DeployBotVersionRequestParams;\n  body: DeployBotVersionRequestBody;\n}\n\nexport const parseReq = (input: DeployBotVersionInput): DeployBotVersionRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['id'])}/versions/deploy`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: { 'versionId': input['versionId'] },\n  }\n}\n\nexport interface DeployBotVersionResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CreateIntegrationShareableIdRequestHeaders {}\n\nexport interface CreateIntegrationShareableIdRequestQuery {\n  integrationInstanceAlias?: string;\n}\n\nexport interface CreateIntegrationShareableIdRequestParams {\n  botId: string;\n  integrationId: string;\n}\n\nexport interface CreateIntegrationShareableIdRequestBody {}\n\nexport type CreateIntegrationShareableIdInput = CreateIntegrationShareableIdRequestBody & CreateIntegrationShareableIdRequestHeaders & CreateIntegrationShareableIdRequestQuery & CreateIntegrationShareableIdRequestParams\n\nexport type CreateIntegrationShareableIdRequest = {\n  headers: CreateIntegrationShareableIdRequestHeaders;\n  query: CreateIntegrationShareableIdRequestQuery;\n  params: CreateIntegrationShareableIdRequestParams;\n  body: CreateIntegrationShareableIdRequestBody;\n}\n\nexport const parseReq = (input: CreateIntegrationShareableIdInput): CreateIntegrationShareableIdRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['botId'])}/integrations/${encodeURIComponent(input['integrationId'])}/shareable-id`,\n    headers: {  },\n    query: { 'integrationInstanceAlias': input['integrationInstanceAlias'] },\n    params: { 'botId': input['botId'], 'integrationId': input['integrationId'] },\n    body: {  },\n  }\n}\n\nexport interface CreateIntegrationShareableIdResponse {\n  shareableId: string;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface DeleteIntegrationShareableIdRequestHeaders {}\n\nexport interface DeleteIntegrationShareableIdRequestQuery {\n  integrationInstanceAlias?: string;\n}\n\nexport interface DeleteIntegrationShareableIdRequestParams {\n  botId: string;\n  integrationId: string;\n}\n\nexport interface DeleteIntegrationShareableIdRequestBody {}\n\nexport type DeleteIntegrationShareableIdInput = DeleteIntegrationShareableIdRequestBody & DeleteIntegrationShareableIdRequestHeaders & DeleteIntegrationShareableIdRequestQuery & DeleteIntegrationShareableIdRequestParams\n\nexport type DeleteIntegrationShareableIdRequest = {\n  headers: DeleteIntegrationShareableIdRequestHeaders;\n  query: DeleteIntegrationShareableIdRequestQuery;\n  params: DeleteIntegrationShareableIdRequestParams;\n  body: DeleteIntegrationShareableIdRequestBody;\n}\n\nexport const parseReq = (input: DeleteIntegrationShareableIdInput): DeleteIntegrationShareableIdRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['botId'])}/integrations/${encodeURIComponent(input['integrationId'])}/shareable-id`,\n    headers: {  },\n    query: { 'integrationInstanceAlias': input['integrationInstanceAlias'] },\n    params: { 'botId': input['botId'], 'integrationId': input['integrationId'] },\n    body: {  },\n  }\n}\n\nexport interface DeleteIntegrationShareableIdResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetIntegrationShareableIdRequestHeaders {}\n\nexport interface GetIntegrationShareableIdRequestQuery {\n  integrationInstanceAlias?: string;\n}\n\nexport interface GetIntegrationShareableIdRequestParams {\n  botId: string;\n  integrationId: string;\n}\n\nexport interface GetIntegrationShareableIdRequestBody {}\n\nexport type GetIntegrationShareableIdInput = GetIntegrationShareableIdRequestBody & GetIntegrationShareableIdRequestHeaders & GetIntegrationShareableIdRequestQuery & GetIntegrationShareableIdRequestParams\n\nexport type GetIntegrationShareableIdRequest = {\n  headers: GetIntegrationShareableIdRequestHeaders;\n  query: GetIntegrationShareableIdRequestQuery;\n  params: GetIntegrationShareableIdRequestParams;\n  body: GetIntegrationShareableIdRequestBody;\n}\n\nexport const parseReq = (input: GetIntegrationShareableIdInput): GetIntegrationShareableIdRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['botId'])}/integrations/${encodeURIComponent(input['integrationId'])}/shareable-id`,\n    headers: {  },\n    query: { 'integrationInstanceAlias': input['integrationInstanceAlias'] },\n    params: { 'botId': input['botId'], 'integrationId': input['integrationId'] },\n    body: {  },\n  }\n}\n\nexport interface GetIntegrationShareableIdResponse {\n  shareableId: string;\n  isExpired: boolean;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface UnlinkSandboxedConversationsRequestHeaders {}\n\nexport interface UnlinkSandboxedConversationsRequestQuery {\n  integrationInstanceAlias?: string;\n}\n\nexport interface UnlinkSandboxedConversationsRequestParams {\n  botId: string;\n  integrationId: string;\n}\n\nexport interface UnlinkSandboxedConversationsRequestBody {}\n\nexport type UnlinkSandboxedConversationsInput = UnlinkSandboxedConversationsRequestBody & UnlinkSandboxedConversationsRequestHeaders & UnlinkSandboxedConversationsRequestQuery & UnlinkSandboxedConversationsRequestParams\n\nexport type UnlinkSandboxedConversationsRequest = {\n  headers: UnlinkSandboxedConversationsRequestHeaders;\n  query: UnlinkSandboxedConversationsRequestQuery;\n  params: UnlinkSandboxedConversationsRequestParams;\n  body: UnlinkSandboxedConversationsRequestBody;\n}\n\nexport const parseReq = (input: UnlinkSandboxedConversationsInput): UnlinkSandboxedConversationsRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['botId'])}/integrations/${encodeURIComponent(input['integrationId'])}/sandboxed-conversations`,\n    headers: {  },\n    query: { 'integrationInstanceAlias': input['integrationInstanceAlias'] },\n    params: { 'botId': input['botId'], 'integrationId': input['integrationId'] },\n    body: {  },\n  }\n}\n\nexport interface UnlinkSandboxedConversationsResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListBotApiKeysRequestHeaders {}\n\nexport interface ListBotApiKeysRequestQuery {\n  botId: string;\n}\n\nexport interface ListBotApiKeysRequestParams {}\n\nexport interface ListBotApiKeysRequestBody {}\n\nexport type ListBotApiKeysInput = ListBotApiKeysRequestBody & ListBotApiKeysRequestHeaders & ListBotApiKeysRequestQuery & ListBotApiKeysRequestParams\n\nexport type ListBotApiKeysRequest = {\n  headers: ListBotApiKeysRequestHeaders;\n  query: ListBotApiKeysRequestQuery;\n  params: ListBotApiKeysRequestParams;\n  body: ListBotApiKeysRequestBody;\n}\n\nexport const parseReq = (input: ListBotApiKeysInput): ListBotApiKeysRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/baks`,\n    headers: {  },\n    query: { 'botId': input['botId'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListBotApiKeysResponse {\n  baks: {\n    id: string;\n    createdAt: string;\n    note: string;\n  }[];\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CreateBotApiKeyRequestHeaders {}\n\nexport interface CreateBotApiKeyRequestQuery {}\n\nexport interface CreateBotApiKeyRequestParams {}\n\nexport interface CreateBotApiKeyRequestBody {\n  botId: string;\n  note?: string;\n}\n\nexport type CreateBotApiKeyInput = CreateBotApiKeyRequestBody & CreateBotApiKeyRequestHeaders & CreateBotApiKeyRequestQuery & CreateBotApiKeyRequestParams\n\nexport type CreateBotApiKeyRequest = {\n  headers: CreateBotApiKeyRequestHeaders;\n  query: CreateBotApiKeyRequestQuery;\n  params: CreateBotApiKeyRequestParams;\n  body: CreateBotApiKeyRequestBody;\n}\n\nexport const parseReq = (input: CreateBotApiKeyInput): CreateBotApiKeyRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/baks`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'botId': input['botId'], 'note': input['note'] },\n  }\n}\n\nexport interface CreateBotApiKeyResponse {\n  id: string;\n  createdAt: string;\n  note: string;\n  /**\n   * The BAK value. This will only be returned here when created and cannot be retrieved later.\n   */\n  value: string;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface DeleteBotApiKeyRequestHeaders {}\n\nexport interface DeleteBotApiKeyRequestQuery {}\n\nexport interface DeleteBotApiKeyRequestParams {\n  id: string;\n}\n\nexport interface DeleteBotApiKeyRequestBody {}\n\nexport type DeleteBotApiKeyInput = DeleteBotApiKeyRequestBody & DeleteBotApiKeyRequestHeaders & DeleteBotApiKeyRequestQuery & DeleteBotApiKeyRequestParams\n\nexport type DeleteBotApiKeyRequest = {\n  headers: DeleteBotApiKeyRequestHeaders;\n  query: DeleteBotApiKeyRequestQuery;\n  params: DeleteBotApiKeyRequestParams;\n  body: DeleteBotApiKeyRequestBody;\n}\n\nexport const parseReq = (input: DeleteBotApiKeyInput): DeleteBotApiKeyRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/baks/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface DeleteBotApiKeyResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetBotAllowlistRequestHeaders {}\n\nexport interface GetBotAllowlistRequestQuery {}\n\nexport interface GetBotAllowlistRequestParams {\n  botId: string;\n}\n\nexport interface GetBotAllowlistRequestBody {}\n\nexport type GetBotAllowlistInput = GetBotAllowlistRequestBody & GetBotAllowlistRequestHeaders & GetBotAllowlistRequestQuery & GetBotAllowlistRequestParams\n\nexport type GetBotAllowlistRequest = {\n  headers: GetBotAllowlistRequestHeaders;\n  query: GetBotAllowlistRequestQuery;\n  params: GetBotAllowlistRequestParams;\n  body: GetBotAllowlistRequestBody;\n}\n\nexport const parseReq = (input: GetBotAllowlistInput): GetBotAllowlistRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['botId'])}/allowlist`,\n    headers: {  },\n    query: {  },\n    params: { 'botId': input['botId'] },\n    body: {  },\n  }\n}\n\nexport interface GetBotAllowlistResponse {\n  /**\n   * Allowlist setting of the bot\n   */\n  setting: \"ALL_WORKSPACE_USERS\" | \"SELECTED_USERS\";\n  users: {\n    id: string;\n  }[];\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface UpdateBotAllowlistRequestHeaders {}\n\nexport interface UpdateBotAllowlistRequestQuery {}\n\nexport interface UpdateBotAllowlistRequestParams {\n  botId: string;\n}\n\nexport interface UpdateBotAllowlistRequestBody {\n  /**\n   * Allowlist setting of the bot\n   */\n  setting?: \"ALL_WORKSPACE_USERS\" | \"SELECTED_USERS\";\n  users?: {\n    /**\n     * If `true`, the user should be added to the allowlist. If `false`, the user should be removed from the allowlist. This performs a partial update, so any existing users not included here will be kept in the allowlist\n     */\n    [k: string]: boolean;\n  };\n}\n\nexport type UpdateBotAllowlistInput = UpdateBotAllowlistRequestBody & UpdateBotAllowlistRequestHeaders & UpdateBotAllowlistRequestQuery & UpdateBotAllowlistRequestParams\n\nexport type UpdateBotAllowlistRequest = {\n  headers: UpdateBotAllowlistRequestHeaders;\n  query: UpdateBotAllowlistRequestQuery;\n  params: UpdateBotAllowlistRequestParams;\n  body: UpdateBotAllowlistRequestBody;\n}\n\nexport const parseReq = (input: UpdateBotAllowlistInput): UpdateBotAllowlistRequest & { path: string } => {\n  return {\n    path: `/v1/admin/bots/${encodeURIComponent(input['botId'])}/allowlist`,\n    headers: {  },\n    query: {  },\n    params: { 'botId': input['botId'] },\n    body: { 'setting': input['setting'], 'users': input['users'] },\n  }\n}\n\nexport interface UpdateBotAllowlistResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface MigrateWorkspaceToV4RequestHeaders {}\n\nexport interface MigrateWorkspaceToV4RequestQuery {}\n\nexport interface MigrateWorkspaceToV4RequestParams {\n  id: string;\n}\n\nexport interface MigrateWorkspaceToV4RequestBody {}\n\nexport type MigrateWorkspaceToV4Input = MigrateWorkspaceToV4RequestBody & MigrateWorkspaceToV4RequestHeaders & MigrateWorkspaceToV4RequestQuery & MigrateWorkspaceToV4RequestParams\n\nexport type MigrateWorkspaceToV4Request = {\n  headers: MigrateWorkspaceToV4RequestHeaders;\n  query: MigrateWorkspaceToV4RequestQuery;\n  params: MigrateWorkspaceToV4RequestParams;\n  body: MigrateWorkspaceToV4RequestBody;\n}\n\nexport const parseReq = (input: MigrateWorkspaceToV4Input): MigrateWorkspaceToV4Request & { path: string } => {\n  return {\n    path: `/v1/admin/workspaces/${encodeURIComponent(input['id'])}/migrate-to-v4`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface MigrateWorkspaceToV4Response {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListWorkspaceInvoicesRequestHeaders {}\n\nexport interface ListWorkspaceInvoicesRequestQuery {}\n\nexport interface ListWorkspaceInvoicesRequestParams {\n  id: string;\n}\n\nexport interface ListWorkspaceInvoicesRequestBody {}\n\nexport type ListWorkspaceInvoicesInput = ListWorkspaceInvoicesRequestBody & ListWorkspaceInvoicesRequestHeaders & ListWorkspaceInvoicesRequestQuery & ListWorkspaceInvoicesRequestParams\n\nexport type ListWorkspaceInvoicesRequest = {\n  headers: ListWorkspaceInvoicesRequestHeaders;\n  query: ListWorkspaceInvoicesRequestQuery;\n  params: ListWorkspaceInvoicesRequestParams;\n  body: ListWorkspaceInvoicesRequestBody;\n}\n\nexport const parseReq = (input: ListWorkspaceInvoicesInput): ListWorkspaceInvoicesRequest & { path: string } => {\n  return {\n    path: `/v1/admin/workspaces/${encodeURIComponent(input['id'])}/billing/invoices`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface ListWorkspaceInvoicesResponse {\n  invoices: {\n    id: string;\n    period: {\n      month: number;\n      year: number;\n    };\n    /**\n     * Date on which the invoice was generated.\n     */\n    date: string;\n    /**\n     * Total amount to pay of the invoice.\n     */\n    amount: number;\n    /**\n     * Currency of the invoice amount.\n     */\n    currency: string;\n    paymentStatus: (\"deleted\" | \"draft\" | \"open\" | \"paid\" | \"uncollectible\" | \"void\") | null;\n    /**\n     * Date on which the invoice is due.\n     */\n    dueDate?: string;\n    /**\n     * Number of times payment has been unsuccessfully attempted on the invoice.\n     */\n    paymentAttemptCount: number | null;\n    /**\n     * Date on which the next payment attempt will be made.\n     */\n    nextPaymentAttemptDate: string | null;\n    /**\n     * URL to download the PDF file of the invoice.\n     */\n    pdfUrl: string;\n  }[];\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetUpcomingInvoiceRequestHeaders {}\n\nexport interface GetUpcomingInvoiceRequestQuery {}\n\nexport interface GetUpcomingInvoiceRequestParams {\n  id: string;\n}\n\nexport interface GetUpcomingInvoiceRequestBody {}\n\nexport type GetUpcomingInvoiceInput = GetUpcomingInvoiceRequestBody & GetUpcomingInvoiceRequestHeaders & GetUpcomingInvoiceRequestQuery & GetUpcomingInvoiceRequestParams\n\nexport type GetUpcomingInvoiceRequest = {\n  headers: GetUpcomingInvoiceRequestHeaders;\n  query: GetUpcomingInvoiceRequestQuery;\n  params: GetUpcomingInvoiceRequestParams;\n  body: GetUpcomingInvoiceRequestBody;\n}\n\nexport const parseReq = (input: GetUpcomingInvoiceInput): GetUpcomingInvoiceRequest & { path: string } => {\n  return {\n    path: `/v1/admin/workspaces/${encodeURIComponent(input['id'])}/billing/upcoming-invoice`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetUpcomingInvoiceResponse {\n  /**\n   * Total amount to pay of the invoice.\n   */\n  total: number;\n  /**\n   * List of items included in the invoice.\n   */\n  lineItems: {\n    id: string;\n    /**\n     * Description of the line item.\n     */\n    description: string;\n    /**\n     * Total amount to pay (in cents) of the line item.\n     */\n    totalInCents: number;\n    /**\n     * Three-letter ISO currency code, in lowercase.\n     */\n    currency: string;\n    /**\n     * Price per unit (in cents) of the line item.\n     */\n    pricePerUnitInCents: number | null;\n    /**\n     * The quantity of the subscription, if the line item is a subscription or a proration.\n     */\n    quantity: number | null;\n    /**\n     * Type of the line item.\n     */\n    type: \"invoiceitem\" | \"subscription\";\n    /**\n     * Start date of the line item period.\n     */\n    periodStart: string | null;\n    /**\n     * End date of the line item period.\n     */\n    periodEnd: string | null;\n  }[];\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ChargeWorkspaceUnpaidInvoicesRequestHeaders {}\n\nexport interface ChargeWorkspaceUnpaidInvoicesRequestQuery {}\n\nexport interface ChargeWorkspaceUnpaidInvoicesRequestParams {\n  id: string;\n}\n\nexport interface ChargeWorkspaceUnpaidInvoicesRequestBody {\n  /**\n   * @minItems 1\n   */\n  invoiceIds?: string[];\n}\n\nexport type ChargeWorkspaceUnpaidInvoicesInput = ChargeWorkspaceUnpaidInvoicesRequestBody & ChargeWorkspaceUnpaidInvoicesRequestHeaders & ChargeWorkspaceUnpaidInvoicesRequestQuery & ChargeWorkspaceUnpaidInvoicesRequestParams\n\nexport type ChargeWorkspaceUnpaidInvoicesRequest = {\n  headers: ChargeWorkspaceUnpaidInvoicesRequestHeaders;\n  query: ChargeWorkspaceUnpaidInvoicesRequestQuery;\n  params: ChargeWorkspaceUnpaidInvoicesRequestParams;\n  body: ChargeWorkspaceUnpaidInvoicesRequestBody;\n}\n\nexport const parseReq = (input: ChargeWorkspaceUnpaidInvoicesInput): ChargeWorkspaceUnpaidInvoicesRequest & { path: string } => {\n  return {\n    path: `/v1/admin/workspaces/${encodeURIComponent(input['id'])}/billing/invoices/charge-unpaid`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: { 'invoiceIds': input['invoiceIds'] },\n  }\n}\n\nexport interface ChargeWorkspaceUnpaidInvoicesResponse {\n  /**\n   * Invoices that were successfully charged by this request.\n   */\n  chargedInvoices: {\n    id: string;\n    amount: number;\n  }[];\n  /**\n   * Invoices that failed to be charged by this request.\n   */\n  failedInvoices: {\n    id: string;\n    amount: number;\n    failedReason: string;\n  }[];\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CreateWorkspaceRequestHeaders {}\n\nexport interface CreateWorkspaceRequestQuery {}\n\nexport interface CreateWorkspaceRequestParams {}\n\nexport interface CreateWorkspaceRequestBody {\n  name: string;\n  billingVersion?: \"v4\";\n}\n\nexport type CreateWorkspaceInput = CreateWorkspaceRequestBody & CreateWorkspaceRequestHeaders & CreateWorkspaceRequestQuery & CreateWorkspaceRequestParams\n\nexport type CreateWorkspaceRequest = {\n  headers: CreateWorkspaceRequestHeaders;\n  query: CreateWorkspaceRequestQuery;\n  params: CreateWorkspaceRequestParams;\n  body: CreateWorkspaceRequestBody;\n}\n\nexport const parseReq = (input: CreateWorkspaceInput): CreateWorkspaceRequest & { path: string } => {\n  return {\n    path: `/v1/admin/workspaces`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'name': input['name'], 'billingVersion': input['billingVersion'] },\n  }\n}\n\nexport interface CreateWorkspaceResponse {\n  id: string;\n  name: string;\n  ownerId: string;\n  createdAt: string;\n  updatedAt: string;\n  botCount: number;\n  billingVersion: \"v1\" | \"v2\" | \"v3\" | \"v4\";\n  plan: \"community\" | \"team\" | \"enterprise\" | \"plus\" | \"managed\";\n  blocked: boolean;\n  spendingLimit: number;\n  about?: string;\n  profilePicture?: string;\n  contactEmail?: string;\n  website?: string;\n  socialAccounts?: string[];\n  isPublic?: boolean;\n  handle?: string;\n  activeTrialId: string | null;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetPublicWorkspaceRequestHeaders {}\n\nexport interface GetPublicWorkspaceRequestQuery {}\n\nexport interface GetPublicWorkspaceRequestParams {\n  id: string;\n}\n\nexport interface GetPublicWorkspaceRequestBody {}\n\nexport type GetPublicWorkspaceInput = GetPublicWorkspaceRequestBody & GetPublicWorkspaceRequestHeaders & GetPublicWorkspaceRequestQuery & GetPublicWorkspaceRequestParams\n\nexport type GetPublicWorkspaceRequest = {\n  headers: GetPublicWorkspaceRequestHeaders;\n  query: GetPublicWorkspaceRequestQuery;\n  params: GetPublicWorkspaceRequestParams;\n  body: GetPublicWorkspaceRequestBody;\n}\n\nexport const parseReq = (input: GetPublicWorkspaceInput): GetPublicWorkspaceRequest & { path: string } => {\n  return {\n    path: `/v1/admin/workspaces/${encodeURIComponent(input['id'])}/public`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetPublicWorkspaceResponse {\n  id: string;\n  name: string;\n  createdAt: string;\n  updatedAt: string;\n  about?: string;\n  profilePicture?: string;\n  contactEmail?: string;\n  website?: string;\n  socialAccounts?: string[];\n  handle?: string;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetWorkspaceRequestHeaders {}\n\nexport interface GetWorkspaceRequestQuery {}\n\nexport interface GetWorkspaceRequestParams {\n  id: string;\n}\n\nexport interface GetWorkspaceRequestBody {}\n\nexport type GetWorkspaceInput = GetWorkspaceRequestBody & GetWorkspaceRequestHeaders & GetWorkspaceRequestQuery & GetWorkspaceRequestParams\n\nexport type GetWorkspaceRequest = {\n  headers: GetWorkspaceRequestHeaders;\n  query: GetWorkspaceRequestQuery;\n  params: GetWorkspaceRequestParams;\n  body: GetWorkspaceRequestBody;\n}\n\nexport const parseReq = (input: GetWorkspaceInput): GetWorkspaceRequest & { path: string } => {\n  return {\n    path: `/v1/admin/workspaces/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetWorkspaceResponse {\n  id: string;\n  name: string;\n  ownerId: string;\n  createdAt: string;\n  updatedAt: string;\n  botCount: number;\n  billingVersion: \"v1\" | \"v2\" | \"v3\" | \"v4\";\n  plan: \"community\" | \"team\" | \"enterprise\" | \"plus\" | \"managed\";\n  blocked: boolean;\n  spendingLimit: number;\n  about?: string;\n  profilePicture?: string;\n  contactEmail?: string;\n  website?: string;\n  socialAccounts?: string[];\n  isPublic?: boolean;\n  handle?: string;\n  activeTrialId: string | null;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListWorkspaceUsagesRequestHeaders {}\n\nexport interface ListWorkspaceUsagesRequestQuery {\n  type:\n    | \"invocation_timeout\"\n    | \"invocation_calls\"\n    | \"storage_count\"\n    | \"bot_count\"\n    | \"knowledgebase_vector_storage\"\n    | \"workspace_ratelimit\"\n    | \"table_row_count\"\n    | \"workspace_member_count\"\n    | \"integrations_owned_count\"\n    | \"ai_spend\"\n    | \"openai_spend\"\n    | \"bing_search_spend\"\n    | \"always_alive\"\n    | \"indexed_file_count\"\n    | \"file_max_size_bytes\";\n  period?: string;\n}\n\nexport interface ListWorkspaceUsagesRequestParams {\n  id: string;\n}\n\nexport interface ListWorkspaceUsagesRequestBody {}\n\nexport type ListWorkspaceUsagesInput = ListWorkspaceUsagesRequestBody & ListWorkspaceUsagesRequestHeaders & ListWorkspaceUsagesRequestQuery & ListWorkspaceUsagesRequestParams\n\nexport type ListWorkspaceUsagesRequest = {\n  headers: ListWorkspaceUsagesRequestHeaders;\n  query: ListWorkspaceUsagesRequestQuery;\n  params: ListWorkspaceUsagesRequestParams;\n  body: ListWorkspaceUsagesRequestBody;\n}\n\nexport const parseReq = (input: ListWorkspaceUsagesInput): ListWorkspaceUsagesRequest & { path: string } => {\n  return {\n    path: `/v1/admin/workspaces/${encodeURIComponent(input['id'])}/usages`,\n    headers: {  },\n    query: { 'type': input['type'], 'period': input['period'] },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface ListWorkspaceUsagesResponse {\n  usages: {\n    /**\n     * Id of the usage that it is linked to. It can either be a workspace id or a bot id\n     */\n    id: string;\n    /**\n     * Period of the quota that it is applied to\n     */\n    period: string;\n    /**\n     * Value of the current usage\n     */\n    value: number;\n    /**\n     * Quota of the current usage\n     */\n    quota: number;\n    /**\n     * Usage type that can be used\n     */\n    type:\n      | \"invocation_timeout\"\n      | \"invocation_calls\"\n      | \"storage_count\"\n      | \"bot_count\"\n      | \"knowledgebase_vector_storage\"\n      | \"workspace_ratelimit\"\n      | \"table_row_count\"\n      | \"workspace_member_count\"\n      | \"integrations_owned_count\"\n      | \"ai_spend\"\n      | \"openai_spend\"\n      | \"bing_search_spend\"\n      | \"always_alive\"\n      | \"indexed_file_count\"\n      | \"file_max_size_bytes\";\n  }[];\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface BreakDownWorkspaceUsageByBotRequestHeaders {}\n\nexport interface BreakDownWorkspaceUsageByBotRequestQuery {\n  type:\n    | \"invocation_timeout\"\n    | \"invocation_calls\"\n    | \"storage_count\"\n    | \"bot_count\"\n    | \"knowledgebase_vector_storage\"\n    | \"workspace_ratelimit\"\n    | \"table_row_count\"\n    | \"workspace_member_count\"\n    | \"integrations_owned_count\"\n    | \"ai_spend\"\n    | \"openai_spend\"\n    | \"bing_search_spend\"\n    | \"always_alive\"\n    | \"indexed_file_count\"\n    | \"file_max_size_bytes\";\n  period?: string;\n}\n\nexport interface BreakDownWorkspaceUsageByBotRequestParams {\n  id: string;\n}\n\nexport interface BreakDownWorkspaceUsageByBotRequestBody {}\n\nexport type BreakDownWorkspaceUsageByBotInput = BreakDownWorkspaceUsageByBotRequestBody & BreakDownWorkspaceUsageByBotRequestHeaders & BreakDownWorkspaceUsageByBotRequestQuery & BreakDownWorkspaceUsageByBotRequestParams\n\nexport type BreakDownWorkspaceUsageByBotRequest = {\n  headers: BreakDownWorkspaceUsageByBotRequestHeaders;\n  query: BreakDownWorkspaceUsageByBotRequestQuery;\n  params: BreakDownWorkspaceUsageByBotRequestParams;\n  body: BreakDownWorkspaceUsageByBotRequestBody;\n}\n\nexport const parseReq = (input: BreakDownWorkspaceUsageByBotInput): BreakDownWorkspaceUsageByBotRequest & { path: string } => {\n  return {\n    path: `/v1/admin/workspaces/${encodeURIComponent(input['id'])}/usages/by-bot`,\n    headers: {  },\n    query: { 'type': input['type'], 'period': input['period'] },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface BreakDownWorkspaceUsageByBotResponse {\n  data: {\n    botId: string;\n    value: number;\n  }[];\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetAllWorkspaceQuotaCompletionRequestHeaders {}\n\nexport interface GetAllWorkspaceQuotaCompletionRequestQuery {}\n\nexport interface GetAllWorkspaceQuotaCompletionRequestParams {}\n\nexport interface GetAllWorkspaceQuotaCompletionRequestBody {}\n\nexport type GetAllWorkspaceQuotaCompletionInput = GetAllWorkspaceQuotaCompletionRequestBody & GetAllWorkspaceQuotaCompletionRequestHeaders & GetAllWorkspaceQuotaCompletionRequestQuery & GetAllWorkspaceQuotaCompletionRequestParams\n\nexport type GetAllWorkspaceQuotaCompletionRequest = {\n  headers: GetAllWorkspaceQuotaCompletionRequestHeaders;\n  query: GetAllWorkspaceQuotaCompletionRequestQuery;\n  params: GetAllWorkspaceQuotaCompletionRequestParams;\n  body: GetAllWorkspaceQuotaCompletionRequestBody;\n}\n\nexport const parseReq = (_: GetAllWorkspaceQuotaCompletionInput): GetAllWorkspaceQuotaCompletionRequest & { path: string } => {\n  return {\n    path: `/v1/admin/workspaces/usages/quota-completion`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface GetAllWorkspaceQuotaCompletionResponse {\n  [k: string]: {\n    type:\n      | \"invocation_timeout\"\n      | \"invocation_calls\"\n      | \"storage_count\"\n      | \"bot_count\"\n      | \"knowledgebase_vector_storage\"\n      | \"workspace_ratelimit\"\n      | \"table_row_count\"\n      | \"workspace_member_count\"\n      | \"integrations_owned_count\"\n      | \"ai_spend\"\n      | \"openai_spend\"\n      | \"bing_search_spend\"\n      | \"always_alive\"\n      | \"indexed_file_count\"\n      | \"file_max_size_bytes\";\n    completion: number;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetWorkspaceQuotaRequestHeaders {}\n\nexport interface GetWorkspaceQuotaRequestQuery {\n  type:\n    | \"invocation_timeout\"\n    | \"invocation_calls\"\n    | \"storage_count\"\n    | \"bot_count\"\n    | \"knowledgebase_vector_storage\"\n    | \"workspace_ratelimit\"\n    | \"table_row_count\"\n    | \"workspace_member_count\"\n    | \"integrations_owned_count\"\n    | \"ai_spend\"\n    | \"openai_spend\"\n    | \"bing_search_spend\"\n    | \"always_alive\"\n    | \"indexed_file_count\"\n    | \"file_max_size_bytes\";\n  period?: string;\n}\n\nexport interface GetWorkspaceQuotaRequestParams {\n  id: string;\n}\n\nexport interface GetWorkspaceQuotaRequestBody {}\n\nexport type GetWorkspaceQuotaInput = GetWorkspaceQuotaRequestBody & GetWorkspaceQuotaRequestHeaders & GetWorkspaceQuotaRequestQuery & GetWorkspaceQuotaRequestParams\n\nexport type GetWorkspaceQuotaRequest = {\n  headers: GetWorkspaceQuotaRequestHeaders;\n  query: GetWorkspaceQuotaRequestQuery;\n  params: GetWorkspaceQuotaRequestParams;\n  body: GetWorkspaceQuotaRequestBody;\n}\n\nexport const parseReq = (input: GetWorkspaceQuotaInput): GetWorkspaceQuotaRequest & { path: string } => {\n  return {\n    path: `/v1/admin/workspaces/${encodeURIComponent(input['id'])}/quota`,\n    headers: {  },\n    query: { 'type': input['type'], 'period': input['period'] },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetWorkspaceQuotaResponse {\n  quota: {\n    /**\n     * Period of the quota that it is applied to\n     */\n    period: string;\n    /**\n     * Value of the quota that is used\n     */\n    value: number;\n    /**\n     * Usage type that can be used\n     */\n    type:\n      | \"invocation_timeout\"\n      | \"invocation_calls\"\n      | \"storage_count\"\n      | \"bot_count\"\n      | \"knowledgebase_vector_storage\"\n      | \"workspace_ratelimit\"\n      | \"table_row_count\"\n      | \"workspace_member_count\"\n      | \"integrations_owned_count\"\n      | \"ai_spend\"\n      | \"openai_spend\"\n      | \"bing_search_spend\"\n      | \"always_alive\"\n      | \"indexed_file_count\"\n      | \"file_max_size_bytes\";\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListWorkspaceQuotasRequestHeaders {}\n\nexport interface ListWorkspaceQuotasRequestQuery {\n  period?: string;\n}\n\nexport interface ListWorkspaceQuotasRequestParams {\n  id: string;\n}\n\nexport interface ListWorkspaceQuotasRequestBody {}\n\nexport type ListWorkspaceQuotasInput = ListWorkspaceQuotasRequestBody & ListWorkspaceQuotasRequestHeaders & ListWorkspaceQuotasRequestQuery & ListWorkspaceQuotasRequestParams\n\nexport type ListWorkspaceQuotasRequest = {\n  headers: ListWorkspaceQuotasRequestHeaders;\n  query: ListWorkspaceQuotasRequestQuery;\n  params: ListWorkspaceQuotasRequestParams;\n  body: ListWorkspaceQuotasRequestBody;\n}\n\nexport const parseReq = (input: ListWorkspaceQuotasInput): ListWorkspaceQuotasRequest & { path: string } => {\n  return {\n    path: `/v1/admin/workspaces/${encodeURIComponent(input['id'])}/quotas`,\n    headers: {  },\n    query: { 'period': input['period'] },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface ListWorkspaceQuotasResponse {\n  quotas: {\n    /**\n     * Period of the quota that it is applied to\n     */\n    period: string;\n    /**\n     * Value of the quota that is used\n     */\n    value: number;\n    /**\n     * Usage type that can be used\n     */\n    type:\n      | \"invocation_timeout\"\n      | \"invocation_calls\"\n      | \"storage_count\"\n      | \"bot_count\"\n      | \"knowledgebase_vector_storage\"\n      | \"workspace_ratelimit\"\n      | \"table_row_count\"\n      | \"workspace_member_count\"\n      | \"integrations_owned_count\"\n      | \"ai_spend\"\n      | \"openai_spend\"\n      | \"bing_search_spend\"\n      | \"always_alive\"\n      | \"indexed_file_count\"\n      | \"file_max_size_bytes\";\n  }[];\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface UpdateWorkspaceRequestHeaders {}\n\nexport interface UpdateWorkspaceRequestQuery {}\n\nexport interface UpdateWorkspaceRequestParams {\n  id: string;\n}\n\nexport interface UpdateWorkspaceRequestBody {\n  name?: string;\n  spendingLimit?: number;\n  about?: string;\n  profilePicture?: string;\n  contactEmail?: string;\n  website?: string;\n  /**\n   * @maxItems 5\n   */\n  socialAccounts?: string[];\n  isPublic?: boolean;\n  handle?: string;\n}\n\nexport type UpdateWorkspaceInput = UpdateWorkspaceRequestBody & UpdateWorkspaceRequestHeaders & UpdateWorkspaceRequestQuery & UpdateWorkspaceRequestParams\n\nexport type UpdateWorkspaceRequest = {\n  headers: UpdateWorkspaceRequestHeaders;\n  query: UpdateWorkspaceRequestQuery;\n  params: UpdateWorkspaceRequestParams;\n  body: UpdateWorkspaceRequestBody;\n}\n\nexport const parseReq = (input: UpdateWorkspaceInput): UpdateWorkspaceRequest & { path: string } => {\n  return {\n    path: `/v1/admin/workspaces/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: { 'name': input['name'], 'spendingLimit': input['spendingLimit'], 'about': input['about'], 'profilePicture': input['profilePicture'], 'contactEmail': input['contactEmail'], 'website': input['website'], 'socialAccounts': input['socialAccounts'], 'isPublic': input['isPublic'], 'handle': input['handle'] },\n  }\n}\n\nexport interface UpdateWorkspaceResponse {\n  id: string;\n  name: string;\n  ownerId: string;\n  createdAt: string;\n  updatedAt: string;\n  botCount: number;\n  billingVersion: \"v1\" | \"v2\" | \"v3\" | \"v4\";\n  plan: \"community\" | \"team\" | \"enterprise\" | \"plus\" | \"managed\";\n  blocked: boolean;\n  spendingLimit: number;\n  about?: string;\n  profilePicture?: string;\n  contactEmail?: string;\n  website?: string;\n  socialAccounts?: string[];\n  isPublic?: boolean;\n  handle?: string;\n  activeTrialId: string | null;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CheckHandleAvailabilityRequestHeaders {}\n\nexport interface CheckHandleAvailabilityRequestQuery {}\n\nexport interface CheckHandleAvailabilityRequestParams {}\n\nexport interface CheckHandleAvailabilityRequestBody {\n  handle: string;\n}\n\nexport type CheckHandleAvailabilityInput = CheckHandleAvailabilityRequestBody & CheckHandleAvailabilityRequestHeaders & CheckHandleAvailabilityRequestQuery & CheckHandleAvailabilityRequestParams\n\nexport type CheckHandleAvailabilityRequest = {\n  headers: CheckHandleAvailabilityRequestHeaders;\n  query: CheckHandleAvailabilityRequestQuery;\n  params: CheckHandleAvailabilityRequestParams;\n  body: CheckHandleAvailabilityRequestBody;\n}\n\nexport const parseReq = (input: CheckHandleAvailabilityInput): CheckHandleAvailabilityRequest & { path: string } => {\n  return {\n    path: `/v1/admin/workspaces/handle-availability`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'handle': input['handle'] },\n  }\n}\n\nexport interface CheckHandleAvailabilityResponse {\n  available: boolean;\n  suggestions: string[];\n  usedBy?: string;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListWorkspacesRequestHeaders {}\n\nexport interface ListWorkspacesRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n  handle?: string;\n}\n\nexport interface ListWorkspacesRequestParams {}\n\nexport interface ListWorkspacesRequestBody {}\n\nexport type ListWorkspacesInput = ListWorkspacesRequestBody & ListWorkspacesRequestHeaders & ListWorkspacesRequestQuery & ListWorkspacesRequestParams\n\nexport type ListWorkspacesRequest = {\n  headers: ListWorkspacesRequestHeaders;\n  query: ListWorkspacesRequestQuery;\n  params: ListWorkspacesRequestParams;\n  body: ListWorkspacesRequestBody;\n}\n\nexport const parseReq = (input: ListWorkspacesInput): ListWorkspacesRequest & { path: string } => {\n  return {\n    path: `/v1/admin/workspaces`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'], 'handle': input['handle'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListWorkspacesResponse {\n  workspaces: UpdateWorkspaceResponse[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\nexport interface UpdateWorkspaceResponse {\n  id: string;\n  name: string;\n  ownerId: string;\n  createdAt: string;\n  updatedAt: string;\n  botCount: number;\n  billingVersion: \"v1\" | \"v2\" | \"v3\" | \"v4\";\n  plan: \"community\" | \"team\" | \"enterprise\" | \"plus\" | \"managed\";\n  blocked: boolean;\n  spendingLimit: number;\n  about?: string;\n  profilePicture?: string;\n  contactEmail?: string;\n  website?: string;\n  socialAccounts?: string[];\n  isPublic?: boolean;\n  handle?: string;\n  activeTrialId: string | null;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListPublicWorkspacesRequestHeaders {}\n\nexport interface ListPublicWorkspacesRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n  workspaceIds?: string[];\n  search?: string;\n}\n\nexport interface ListPublicWorkspacesRequestParams {}\n\nexport interface ListPublicWorkspacesRequestBody {}\n\nexport type ListPublicWorkspacesInput = ListPublicWorkspacesRequestBody & ListPublicWorkspacesRequestHeaders & ListPublicWorkspacesRequestQuery & ListPublicWorkspacesRequestParams\n\nexport type ListPublicWorkspacesRequest = {\n  headers: ListPublicWorkspacesRequestHeaders;\n  query: ListPublicWorkspacesRequestQuery;\n  params: ListPublicWorkspacesRequestParams;\n  body: ListPublicWorkspacesRequestBody;\n}\n\nexport const parseReq = (input: ListPublicWorkspacesInput): ListPublicWorkspacesRequest & { path: string } => {\n  return {\n    path: `/v1/admin/workspaces/public`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'], 'workspaceIds': input['workspaceIds'], 'search': input['search'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListPublicWorkspacesResponse {\n  workspaces: GetPublicWorkspaceResponse[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\nexport interface GetPublicWorkspaceResponse {\n  id: string;\n  name: string;\n  createdAt: string;\n  updatedAt: string;\n  about?: string;\n  profilePicture?: string;\n  contactEmail?: string;\n  website?: string;\n  socialAccounts?: string[];\n  handle?: string;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface DeleteWorkspaceRequestHeaders {}\n\nexport interface DeleteWorkspaceRequestQuery {}\n\nexport interface DeleteWorkspaceRequestParams {\n  id: string;\n}\n\nexport interface DeleteWorkspaceRequestBody {}\n\nexport type DeleteWorkspaceInput = DeleteWorkspaceRequestBody & DeleteWorkspaceRequestHeaders & DeleteWorkspaceRequestQuery & DeleteWorkspaceRequestParams\n\nexport type DeleteWorkspaceRequest = {\n  headers: DeleteWorkspaceRequestHeaders;\n  query: DeleteWorkspaceRequestQuery;\n  params: DeleteWorkspaceRequestParams;\n  body: DeleteWorkspaceRequestBody;\n}\n\nexport const parseReq = (input: DeleteWorkspaceInput): DeleteWorkspaceRequest & { path: string } => {\n  return {\n    path: `/v1/admin/workspaces/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface DeleteWorkspaceResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetAuditRecordsRequestHeaders {}\n\nexport interface GetAuditRecordsRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n}\n\nexport interface GetAuditRecordsRequestParams {\n  id: string;\n}\n\nexport interface GetAuditRecordsRequestBody {}\n\nexport type GetAuditRecordsInput = GetAuditRecordsRequestBody & GetAuditRecordsRequestHeaders & GetAuditRecordsRequestQuery & GetAuditRecordsRequestParams\n\nexport type GetAuditRecordsRequest = {\n  headers: GetAuditRecordsRequestHeaders;\n  query: GetAuditRecordsRequestQuery;\n  params: GetAuditRecordsRequestParams;\n  body: GetAuditRecordsRequestBody;\n}\n\nexport const parseReq = (input: GetAuditRecordsInput): GetAuditRecordsRequest & { path: string } => {\n  return {\n    path: `/v1/admin/workspaces/${encodeURIComponent(input['id'])}/audit-records`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'] },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetAuditRecordsResponse {\n  records: {\n    id: string;\n    recordedAt: string;\n    userId: string | null;\n    userEmail?: string | null;\n    resourceId: string | null;\n    resourceName?: string | null;\n    value?: string | null;\n    action:\n      | \"UNKNOWN\"\n      | \"ADD_WORKSPACE_MEMBER\"\n      | \"REMOVE_WORKSPACE_MEMBER\"\n      | \"UPDATE_WORKSPACE_MEMBER\"\n      | \"CLOSE_WORKSPACE\"\n      | \"CREATE_BOT\"\n      | \"CREATE_WORKSPACE\"\n      | \"DELETE_BOT\"\n      | \"DEPLOY_BOT\"\n      | \"TRANSFER_BOT\"\n      | \"DOWNLOAD_BOT_ARCHIVE\"\n      | \"UPDATE_BOT\"\n      | \"UPDATE_BOT_CHANNEL\"\n      | \"UPDATE_BOT_CONFIG\"\n      | \"UPDATE_PAYMENT_METHOD\"\n      | \"UPDATE_WORKSPACE\"\n      | \"SET_SPENDING_LIMIT\"\n      | \"SET_AI_SPENDING_LIMIT\"\n      | \"UPDATE_WORKSPACE_BILLING_READONLY\"\n      | \"UPDATE_WORKSPACE_PLAN_READONLY\"\n      | \"UPDATE_WORKSPACE_ADDONS_READONLY\"\n      | \"EXECUTE_AUTO_RECHARGE_SUCCESS\"\n      | \"EXECUTE_AUTO_RECHARGE_FAILED\";\n  }[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface SetWorkspacePreferenceRequestHeaders {}\n\nexport interface SetWorkspacePreferenceRequestQuery {}\n\nexport interface SetWorkspacePreferenceRequestParams {\n  key: string;\n}\n\nexport interface SetWorkspacePreferenceRequestBody {\n  value?: any;\n}\n\nexport type SetWorkspacePreferenceInput = SetWorkspacePreferenceRequestBody & SetWorkspacePreferenceRequestHeaders & SetWorkspacePreferenceRequestQuery & SetWorkspacePreferenceRequestParams\n\nexport type SetWorkspacePreferenceRequest = {\n  headers: SetWorkspacePreferenceRequestHeaders;\n  query: SetWorkspacePreferenceRequestQuery;\n  params: SetWorkspacePreferenceRequestParams;\n  body: SetWorkspacePreferenceRequestBody;\n}\n\nexport const parseReq = (input: SetWorkspacePreferenceInput): SetWorkspacePreferenceRequest & { path: string } => {\n  return {\n    path: `/v1/admin/workspaces/preferences/${encodeURIComponent(input['key'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'key': input['key'] },\n    body: { 'value': input['value'] },\n  }\n}\n\nexport interface SetWorkspacePreferenceResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetWorkspacePreferenceRequestHeaders {}\n\nexport interface GetWorkspacePreferenceRequestQuery {}\n\nexport interface GetWorkspacePreferenceRequestParams {\n  key: string;\n}\n\nexport interface GetWorkspacePreferenceRequestBody {}\n\nexport type GetWorkspacePreferenceInput = GetWorkspacePreferenceRequestBody & GetWorkspacePreferenceRequestHeaders & GetWorkspacePreferenceRequestQuery & GetWorkspacePreferenceRequestParams\n\nexport type GetWorkspacePreferenceRequest = {\n  headers: GetWorkspacePreferenceRequestHeaders;\n  query: GetWorkspacePreferenceRequestQuery;\n  params: GetWorkspacePreferenceRequestParams;\n  body: GetWorkspacePreferenceRequestBody;\n}\n\nexport const parseReq = (input: GetWorkspacePreferenceInput): GetWorkspacePreferenceRequest & { path: string } => {\n  return {\n    path: `/v1/admin/workspaces/preferences/${encodeURIComponent(input['key'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'key': input['key'] },\n    body: {  },\n  }\n}\n\nexport interface GetWorkspacePreferenceResponse {\n  value?: any;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListWorkspaceMembersRequestHeaders {}\n\nexport interface ListWorkspaceMembersRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n}\n\nexport interface ListWorkspaceMembersRequestParams {}\n\nexport interface ListWorkspaceMembersRequestBody {}\n\nexport type ListWorkspaceMembersInput = ListWorkspaceMembersRequestBody & ListWorkspaceMembersRequestHeaders & ListWorkspaceMembersRequestQuery & ListWorkspaceMembersRequestParams\n\nexport type ListWorkspaceMembersRequest = {\n  headers: ListWorkspaceMembersRequestHeaders;\n  query: ListWorkspaceMembersRequestQuery;\n  params: ListWorkspaceMembersRequestParams;\n  body: ListWorkspaceMembersRequestBody;\n}\n\nexport const parseReq = (input: ListWorkspaceMembersInput): ListWorkspaceMembersRequest & { path: string } => {\n  return {\n    path: `/v1/admin/workspace-members`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListWorkspaceMembersResponse {\n  members: UpdateWorkspaceMemberResponse[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\nexport interface UpdateWorkspaceMemberResponse {\n  id: string;\n  userId?: string;\n  email: string;\n  createdAt: string;\n  role: \"viewer\" | \"billing\" | \"developer\" | \"manager\" | \"administrator\" | \"owner\";\n  profilePicture?: string;\n  displayName?: string;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetWorkspaceMemberRequestHeaders {}\n\nexport interface GetWorkspaceMemberRequestQuery {}\n\nexport interface GetWorkspaceMemberRequestParams {}\n\nexport interface GetWorkspaceMemberRequestBody {}\n\nexport type GetWorkspaceMemberInput = GetWorkspaceMemberRequestBody & GetWorkspaceMemberRequestHeaders & GetWorkspaceMemberRequestQuery & GetWorkspaceMemberRequestParams\n\nexport type GetWorkspaceMemberRequest = {\n  headers: GetWorkspaceMemberRequestHeaders;\n  query: GetWorkspaceMemberRequestQuery;\n  params: GetWorkspaceMemberRequestParams;\n  body: GetWorkspaceMemberRequestBody;\n}\n\nexport const parseReq = (_: GetWorkspaceMemberInput): GetWorkspaceMemberRequest & { path: string } => {\n  return {\n    path: `/v1/admin/workspace-members/me`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface GetWorkspaceMemberResponse {\n  id: string;\n  userId?: string;\n  email: string;\n  createdAt: string;\n  role: \"viewer\" | \"billing\" | \"developer\" | \"manager\" | \"administrator\" | \"owner\";\n  profilePicture?: string;\n  displayName?: string;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface DeleteWorkspaceMemberRequestHeaders {}\n\nexport interface DeleteWorkspaceMemberRequestQuery {}\n\nexport interface DeleteWorkspaceMemberRequestParams {\n  id: string;\n}\n\nexport interface DeleteWorkspaceMemberRequestBody {}\n\nexport type DeleteWorkspaceMemberInput = DeleteWorkspaceMemberRequestBody & DeleteWorkspaceMemberRequestHeaders & DeleteWorkspaceMemberRequestQuery & DeleteWorkspaceMemberRequestParams\n\nexport type DeleteWorkspaceMemberRequest = {\n  headers: DeleteWorkspaceMemberRequestHeaders;\n  query: DeleteWorkspaceMemberRequestQuery;\n  params: DeleteWorkspaceMemberRequestParams;\n  body: DeleteWorkspaceMemberRequestBody;\n}\n\nexport const parseReq = (input: DeleteWorkspaceMemberInput): DeleteWorkspaceMemberRequest & { path: string } => {\n  return {\n    path: `/v1/admin/workspace-members/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface DeleteWorkspaceMemberResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CreateWorkspaceMemberRequestHeaders {}\n\nexport interface CreateWorkspaceMemberRequestQuery {}\n\nexport interface CreateWorkspaceMemberRequestParams {}\n\nexport interface CreateWorkspaceMemberRequestBody {\n  email: string;\n  role: \"viewer\" | \"billing\" | \"developer\" | \"manager\" | \"administrator\" | \"owner\";\n  sendEmail?: boolean;\n}\n\nexport type CreateWorkspaceMemberInput = CreateWorkspaceMemberRequestBody & CreateWorkspaceMemberRequestHeaders & CreateWorkspaceMemberRequestQuery & CreateWorkspaceMemberRequestParams\n\nexport type CreateWorkspaceMemberRequest = {\n  headers: CreateWorkspaceMemberRequestHeaders;\n  query: CreateWorkspaceMemberRequestQuery;\n  params: CreateWorkspaceMemberRequestParams;\n  body: CreateWorkspaceMemberRequestBody;\n}\n\nexport const parseReq = (input: CreateWorkspaceMemberInput): CreateWorkspaceMemberRequest & { path: string } => {\n  return {\n    path: `/v1/admin/workspace-members`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'email': input['email'], 'role': input['role'], 'sendEmail': input['sendEmail'] },\n  }\n}\n\nexport interface CreateWorkspaceMemberResponse {\n  id: string;\n  userId?: string;\n  email: string;\n  createdAt: string;\n  role: \"viewer\" | \"billing\" | \"developer\" | \"manager\" | \"administrator\" | \"owner\";\n  profilePicture?: string;\n  displayName?: string;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface UpdateWorkspaceMemberRequestHeaders {}\n\nexport interface UpdateWorkspaceMemberRequestQuery {}\n\nexport interface UpdateWorkspaceMemberRequestParams {\n  id: string;\n}\n\nexport interface UpdateWorkspaceMemberRequestBody {\n  role?: \"viewer\" | \"billing\" | \"developer\" | \"manager\" | \"administrator\" | \"owner\";\n}\n\nexport type UpdateWorkspaceMemberInput = UpdateWorkspaceMemberRequestBody & UpdateWorkspaceMemberRequestHeaders & UpdateWorkspaceMemberRequestQuery & UpdateWorkspaceMemberRequestParams\n\nexport type UpdateWorkspaceMemberRequest = {\n  headers: UpdateWorkspaceMemberRequestHeaders;\n  query: UpdateWorkspaceMemberRequestQuery;\n  params: UpdateWorkspaceMemberRequestParams;\n  body: UpdateWorkspaceMemberRequestBody;\n}\n\nexport const parseReq = (input: UpdateWorkspaceMemberInput): UpdateWorkspaceMemberRequest & { path: string } => {\n  return {\n    path: `/v1/admin/workspace-members/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: { 'role': input['role'] },\n  }\n}\n\nexport interface UpdateWorkspaceMemberResponse {\n  id: string;\n  userId?: string;\n  email: string;\n  createdAt: string;\n  role: \"viewer\" | \"billing\" | \"developer\" | \"manager\" | \"administrator\" | \"owner\";\n  profilePicture?: string;\n  displayName?: string;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListIntegrationApiKeysRequestHeaders {}\n\nexport interface ListIntegrationApiKeysRequestQuery {\n  integrationId: string;\n}\n\nexport interface ListIntegrationApiKeysRequestParams {}\n\nexport interface ListIntegrationApiKeysRequestBody {}\n\nexport type ListIntegrationApiKeysInput = ListIntegrationApiKeysRequestBody & ListIntegrationApiKeysRequestHeaders & ListIntegrationApiKeysRequestQuery & ListIntegrationApiKeysRequestParams\n\nexport type ListIntegrationApiKeysRequest = {\n  headers: ListIntegrationApiKeysRequestHeaders;\n  query: ListIntegrationApiKeysRequestQuery;\n  params: ListIntegrationApiKeysRequestParams;\n  body: ListIntegrationApiKeysRequestBody;\n}\n\nexport const parseReq = (input: ListIntegrationApiKeysInput): ListIntegrationApiKeysRequest & { path: string } => {\n  return {\n    path: `/v1/admin/integrations/iaks`,\n    headers: {  },\n    query: { 'integrationId': input['integrationId'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListIntegrationApiKeysResponse {\n  iaks: {\n    id: string;\n    createdAt: string;\n    note: string;\n  }[];\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CreateIntegrationApiKeyRequestHeaders {}\n\nexport interface CreateIntegrationApiKeyRequestQuery {}\n\nexport interface CreateIntegrationApiKeyRequestParams {}\n\nexport interface CreateIntegrationApiKeyRequestBody {\n  integrationId: string;\n  note?: string;\n}\n\nexport type CreateIntegrationApiKeyInput = CreateIntegrationApiKeyRequestBody & CreateIntegrationApiKeyRequestHeaders & CreateIntegrationApiKeyRequestQuery & CreateIntegrationApiKeyRequestParams\n\nexport type CreateIntegrationApiKeyRequest = {\n  headers: CreateIntegrationApiKeyRequestHeaders;\n  query: CreateIntegrationApiKeyRequestQuery;\n  params: CreateIntegrationApiKeyRequestParams;\n  body: CreateIntegrationApiKeyRequestBody;\n}\n\nexport const parseReq = (input: CreateIntegrationApiKeyInput): CreateIntegrationApiKeyRequest & { path: string } => {\n  return {\n    path: `/v1/admin/integrations/iaks`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'integrationId': input['integrationId'], 'note': input['note'] },\n  }\n}\n\nexport interface CreateIntegrationApiKeyResponse {\n  id: string;\n  createdAt: string;\n  note: string;\n  /**\n   * The IAK value. This will only be returned here when created and cannot be retrieved later.\n   */\n  value: string;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface DeleteIntegrationApiKeyRequestHeaders {}\n\nexport interface DeleteIntegrationApiKeyRequestQuery {}\n\nexport interface DeleteIntegrationApiKeyRequestParams {\n  id: string;\n}\n\nexport interface DeleteIntegrationApiKeyRequestBody {}\n\nexport type DeleteIntegrationApiKeyInput = DeleteIntegrationApiKeyRequestBody & DeleteIntegrationApiKeyRequestHeaders & DeleteIntegrationApiKeyRequestQuery & DeleteIntegrationApiKeyRequestParams\n\nexport type DeleteIntegrationApiKeyRequest = {\n  headers: DeleteIntegrationApiKeyRequestHeaders;\n  query: DeleteIntegrationApiKeyRequestQuery;\n  params: DeleteIntegrationApiKeyRequestParams;\n  body: DeleteIntegrationApiKeyRequestBody;\n}\n\nexport const parseReq = (input: DeleteIntegrationApiKeyInput): DeleteIntegrationApiKeyRequest & { path: string } => {\n  return {\n    path: `/v1/admin/integrations/iaks/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface DeleteIntegrationApiKeyResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CreateIntegrationRequestHeaders {}\n\nexport interface CreateIntegrationRequestQuery {}\n\nexport interface CreateIntegrationRequestParams {}\n\nexport interface CreateIntegrationRequestBody {\n  /**\n   * Name of the [Integration](#schema_integration)\n   */\n  name: string;\n  /**\n   * Version of the [Integration](#schema_integration)\n   */\n  version: string;\n  /**\n   * Default configuration definition of the integration\n   */\n  configuration?: {\n    /**\n     * Title of the configuration\n     */\n    title?: string;\n    /**\n     * Description of the configuration\n     */\n    description?: string;\n    /**\n     * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n     */\n    schema?: {\n      [k: string]: any;\n    };\n    identifier?: {\n      required?: boolean;\n      linkTemplateScript?: string;\n    };\n  };\n  /**\n   * Additional configuration definitions of the integration\n   */\n  configurations?: {\n    [k: string]: {\n      /**\n       * Title of the configuration\n       */\n      title?: string;\n      /**\n       * Description of the configuration\n       */\n      description?: string;\n      /**\n       * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n       */\n      schema?: {\n        [k: string]: any;\n      };\n      identifier?: {\n        required?: boolean;\n        linkTemplateScript?: string;\n      };\n    };\n  };\n  states?: {\n    /**\n     * State definition\n     */\n    [k: string]: {\n      /**\n       * Type of the [State](#schema_state) (`conversation`, `user` or `integration`)\n       */\n      type: \"conversation\" | \"user\" | \"integration\";\n      /**\n       * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n       */\n      schema: {\n        [k: string]: any;\n      };\n    };\n  };\n  events?: {\n    /**\n     * Event Definition\n     */\n    [k: string]: {\n      /**\n       * Title of the event\n       */\n      title?: string;\n      /**\n       * Description of the event\n       */\n      description?: string;\n      schema: {\n        [k: string]: any;\n      };\n      /**\n       * Optional attributes\n       */\n      attributes?: {\n        [k: string]: string;\n      };\n    };\n  };\n  actions?: {\n    /**\n     * Action definition\n     */\n    [k: string]: {\n      /**\n       * Title of the action\n       */\n      title?: string;\n      /**\n       * Description of the action\n       */\n      description?: string;\n      billable?: boolean;\n      cacheable?: boolean;\n      input: {\n        schema: {\n          [k: string]: any;\n        };\n      };\n      output: {\n        schema: {\n          [k: string]: any;\n        };\n      };\n      /**\n       * Optional attributes\n       */\n      attributes?: {\n        [k: string]: string;\n      };\n    };\n  };\n  entities?: {\n    /**\n     * Entity definition\n     */\n    [k: string]: {\n      /**\n       * Title of the entity\n       */\n      title?: string;\n      /**\n       * Description of the entity\n       */\n      description?: string;\n      schema: {\n        [k: string]: any;\n      };\n    };\n  };\n  identifier?: {\n    fallbackHandlerScript?: string;\n    extractScript?: string;\n  };\n  channels?: {\n    [k: string]: {\n      /**\n       * Title of the channel\n       */\n      title?: string;\n      /**\n       * Description of the channel\n       */\n      description?: string;\n      messages: {\n        /**\n         * Message definition\n         */\n        [k: string]: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n      };\n      conversation?: {\n        /**\n         * The conversation creation setting determines how to create a conversation through the API directly. The integration will have to implement the `createConversation` functionality to support this setting.\n         */\n        creation?: {\n          /**\n           * Enable conversation creation\n           */\n          enabled: boolean;\n          /**\n           * The list of tags that are required to be specified when calling the API directly to create a conversation.\n           */\n          requiredTags: string[];\n        };\n        tags?: {\n          /**\n           * Definition of a tag that can be provided on the object\n           */\n          [k: string]: {\n            /**\n             * Title of the tag\n             */\n            title?: string;\n            /**\n             * Description of the tag\n             */\n            description?: string;\n          };\n        };\n      };\n      message?: {\n        tags?: {\n          /**\n           * Definition of a tag that can be provided on the object\n           */\n          [k: string]: {\n            /**\n             * Title of the tag\n             */\n            title?: string;\n            /**\n             * Description of the tag\n             */\n            description?: string;\n          };\n        };\n      };\n    };\n  };\n  user?: {\n    /**\n     * The user creation setting determines how to create a user through the API directly. The integration will have to implement the `createUser` functionality to support this setting.\n     */\n    creation?: {\n      /**\n       * Enable user creation\n       */\n      enabled: boolean;\n      /**\n       * The list of tags that are required to be specified when calling the API directly to create a user.\n       */\n      requiredTags: string[];\n    };\n    tags?: {\n      /**\n       * Definition of a tag that can be provided on the object\n       */\n      [k: string]: {\n        /**\n         * Title of the tag\n         */\n        title?: string;\n        /**\n         * Description of the tag\n         */\n        description?: string;\n      };\n    };\n  };\n  interfaces?: {\n    [k: string]: {\n      /**\n       * ID of the interface\n       */\n      id: string;\n      entities?: {\n        [k: string]: {\n          name: string;\n        };\n      };\n      actions?: {\n        [k: string]: {\n          name: string;\n        };\n      };\n      events?: {\n        [k: string]: {\n          name: string;\n        };\n      };\n      channels?: {\n        [k: string]: {\n          name: string;\n        };\n      };\n    };\n  };\n  /**\n   * **EXPERIMENTAL** Extra integration operations that should be sent or not to the integration instances. The key is the operation name.\n   */\n  extraOperations?: {\n    [k: string]: {\n      enabled: boolean;\n    };\n  };\n  sdkVersion?: string;\n  /**\n   * Secrets are integration-wide values available in the code via environment variables formatted with a SECRET_ prefix followed by your secret name. A secret name must respect SCREAMING_SNAKE casing.\n   */\n  secrets?: {\n    [k: string]: string | null;\n  };\n  /**\n   * JavaScript code of the integration\n   */\n  code?: string;\n  /**\n   * URL of the integration\n   */\n  url?: string;\n  /**\n   * Indicates if the integration is a development integration; Dev integrations run locally\n   */\n  dev?: boolean;\n  /**\n   * Base64 encoded svg of the integration icon. This icon is global to the integration each versions will be updated when this changes.\n   */\n  icon?: string;\n  /**\n   * Base64 encoded markdown of the integration readme. The readme is specific to each integration versions.\n   */\n  readme?: string;\n  /**\n   * Title of the integration. This is the name that will be displayed in the UI\n   */\n  title?: string;\n  /**\n   * Description of the integration. This is the description that will be displayed in the UI\n   */\n  description?: string;\n  /**\n   * @deprecated\n   * [DEPRECATED] Indicates whether the integration is public. Please use the \"visibility\" parameter instead.\n   */\n  public?: boolean;\n  /**\n   * The integration's visibility. Public integrations are available to all and cannot be updated without creating a new version. Unlisted integrations behave identically to public integrations, but they are not listed in the integration hub. By default, integrations are private and only accessible to the workspace that created them.\n   */\n  visibility?: \"public\" | \"private\" | \"unlisted\";\n  layers?: string[];\n  /**\n   * Optional key-value attributes from the integration definition\n   */\n  attributes?: {\n    [k: string]: string;\n  };\n  /**\n   * Admission deadline for one integration operation, including queue and initialization (seconds).\n   */\n  maxExecutionTime?: number;\n  /**\n   * Maximum concurrent integration invocations. Definitions that omit this field run one invocation at a time.\n   */\n  maxConcurrency?: number;\n  /**\n   * Outbound host allowlist declared by the integration.\n   */\n  providerHosts?: string[];\n  /**\n   * Whether inbound webhook traffic is relayed through the platform.\n   */\n  ingressRelayed?: boolean;\n  /**\n   * Authentication mode enforced for inbound webhooks.\n   */\n  webhookAuthMode?: \"shared_secret\" | \"provider_verified\" | \"handler_verified\";\n}\n\nexport type CreateIntegrationInput = CreateIntegrationRequestBody & CreateIntegrationRequestHeaders & CreateIntegrationRequestQuery & CreateIntegrationRequestParams\n\nexport type CreateIntegrationRequest = {\n  headers: CreateIntegrationRequestHeaders;\n  query: CreateIntegrationRequestQuery;\n  params: CreateIntegrationRequestParams;\n  body: CreateIntegrationRequestBody;\n}\n\nexport const parseReq = (input: CreateIntegrationInput): CreateIntegrationRequest & { path: string } => {\n  return {\n    path: `/v1/admin/integrations`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'name': input['name'], 'version': input['version'], 'configuration': input['configuration'], 'configurations': input['configurations'], 'states': input['states'], 'events': input['events'], 'actions': input['actions'], 'entities': input['entities'], 'identifier': input['identifier'], 'channels': input['channels'], 'user': input['user'], 'interfaces': input['interfaces'], 'extraOperations': input['extraOperations'], 'sdkVersion': input['sdkVersion'], 'secrets': input['secrets'], 'code': input['code'], 'url': input['url'], 'dev': input['dev'], 'icon': input['icon'], 'readme': input['readme'], 'title': input['title'], 'description': input['description'], 'public': input['public'], 'visibility': input['visibility'], 'layers': input['layers'], 'attributes': input['attributes'], 'maxExecutionTime': input['maxExecutionTime'], 'maxConcurrency': input['maxConcurrency'], 'providerHosts': input['providerHosts'], 'ingressRelayed': input['ingressRelayed'], 'webhookAuthMode': input['webhookAuthMode'] },\n  }\n}\n\nexport interface CreateIntegrationResponse {\n  integration: {\n    /**\n     * ID of the [Integration](#schema_integration)\n     */\n    id: string;\n    /**\n     * Creation date of the [Integration](#schema_integration) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Integration](#schema_integration) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Global identifier configuration of the [Integration](#schema_integration)\n     */\n    identifier: {\n      /**\n       * VRL Script of the [Integration](#schema_integration) to handle incoming requests for a request that doesn't have an identifier\n       */\n      fallbackHandlerScript?: string;\n      /**\n       * VRL Script of the [Integration](#schema_integration) to extract the identifier from an incoming webhook often use for OAuth\n       */\n      extractScript?: string;\n    };\n    sandbox?: {\n      /**\n       * VRL Script of the [Integration](#schema_integration) to extract the identifier from an incoming webhook used specifically for the sandbox\n       */\n      identifierExtractScript?: string;\n      /**\n       * VRL Script of the [Integration](#schema_integration) to extract the message from an incoming webhook used specifically for the sandbox\n       */\n      messageExtractScript?: string;\n    };\n    /**\n     * Maximum execution time of the integration (in seconds).\n     */\n    maxExecutionTime?: number;\n    /**\n     * URL of the [Integration](#schema_integration)\n     */\n    url: string;\n    /**\n     * Signing secret of the [Integration](#schema_integration). This field is only visible when creating a new integration or when rotating the signing secret of an existing integration.\n     */\n    signingSecret: string;\n    /**\n     * Name of the [Integration](#schema_integration)\n     */\n    name: string;\n    /**\n     * Version of the [Integration](#schema_integration)\n     */\n    version: string;\n    interfaces: {\n      [k: string]: {\n        /**\n         * ID of the interface\n         */\n        id: string;\n        /**\n         * Name of the interface\n         */\n        name: string;\n        /**\n         * Version of the interface\n         */\n        version: string;\n        entities: {\n          [k: string]: {\n            name: string;\n          };\n        };\n        actions: {\n          [k: string]: {\n            name: string;\n          };\n        };\n        events: {\n          [k: string]: {\n            name: string;\n          };\n        };\n        channels: {\n          [k: string]: {\n            name: string;\n          };\n        };\n      };\n    };\n    /**\n     * Configuration definition\n     */\n    configuration: {\n      /**\n       * Title of the configuration\n       */\n      title?: string;\n      /**\n       * Description of the configuration\n       */\n      description?: string;\n      /**\n       * Identifier configuration of the [Integration](#schema_integration)\n       */\n      identifier: {\n        linkTemplateScript?: string;\n        required: boolean;\n      };\n      /**\n       * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n       */\n      schema: {\n        [k: string]: any;\n      };\n    };\n    configurations: {\n      /**\n       * Configuration definition\n       */\n      [k: string]: {\n        /**\n         * Title of the configuration\n         */\n        title?: string;\n        /**\n         * Description of the configuration\n         */\n        description?: string;\n        /**\n         * Identifier configuration of the [Integration](#schema_integration)\n         */\n        identifier: {\n          linkTemplateScript?: string;\n          required: boolean;\n        };\n        /**\n         * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n         */\n        schema: {\n          [k: string]: any;\n        };\n      };\n    };\n    channels: {\n      /**\n       * Channel definition\n       */\n      [k: string]: {\n        /**\n         * Title of the channel\n         */\n        title?: string;\n        /**\n         * Description of the channel\n         */\n        description?: string;\n        messages: {\n          /**\n           * Message definition\n           */\n          [k: string]: {\n            schema: {\n              [k: string]: any;\n            };\n          };\n        };\n        /**\n         * Conversation object configuration\n         */\n        conversation: {\n          tags: {\n            /**\n             * Definition of a tag that can be provided on the object\n             */\n            [k: string]: {\n              /**\n               * Title of the tag\n               */\n              title?: string;\n              /**\n               * Description of the tag\n               */\n              description?: string;\n            };\n          };\n          /**\n           * The conversation creation setting determines how to create a conversation through the API directly. The integration will have to implement the `createConversation` functionality to support this setting.\n           */\n          creation: {\n            /**\n             * Enable conversation creation\n             */\n            enabled: boolean;\n            /**\n             * The list of tags that are required to be specified when calling the API directly to create a conversation.\n             */\n            requiredTags: string[];\n          };\n        };\n        /**\n         * Message object configuration\n         */\n        message: {\n          tags: {\n            /**\n             * Definition of a tag that can be provided on the object\n             */\n            [k: string]: {\n              /**\n               * Title of the tag\n               */\n              title?: string;\n              /**\n               * Description of the tag\n               */\n              description?: string;\n            };\n          };\n        };\n      };\n    };\n    states: {\n      /**\n       * State definition\n       */\n      [k: string]: {\n        /**\n         * Type of the [State](#schema_state) (`conversation`, `user` or `integration`)\n         */\n        type: \"conversation\" | \"user\" | \"integration\";\n        /**\n         * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n         */\n        schema: {\n          [k: string]: any;\n        };\n      };\n    };\n    events: {\n      /**\n       * Event Definition\n       */\n      [k: string]: {\n        /**\n         * Title of the event\n         */\n        title?: string;\n        /**\n         * Description of the event\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    actions: {\n      /**\n       * Action definition\n       */\n      [k: string]: {\n        /**\n         * Title of the action\n         */\n        title?: string;\n        /**\n         * Description of the action\n         */\n        description?: string;\n        billable?: boolean;\n        cacheable?: boolean;\n        input: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        output: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    /**\n     * User object configuration\n     */\n    user: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n      /**\n       * The user creation setting determines how to create a user through the API directly. The integration will have to implement the `createUser` functionality to support this setting.\n       */\n      creation: {\n        /**\n         * Enable user creation\n         */\n        enabled: boolean;\n        /**\n         * The list of tags that are required to be specified when calling the API directly to create a user.\n         */\n        requiredTags: string[];\n      };\n    };\n    entities: {\n      /**\n       * Entity definition\n       */\n      [k: string]: {\n        /**\n         * Title of the entity\n         */\n        title?: string;\n        /**\n         * Description of the entity\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n      };\n    };\n    /**\n     * Indicates if the integration is a development integration; Dev integrations run locally\n     */\n    dev: boolean;\n    /**\n     * Title of the integration. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the integration. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the integration. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * URL of the readme of the integration. This is the readme that will be displayed in the UI\n     */\n    readmeUrl: string;\n    /**\n     * @deprecated\n     * [DEPRECATED] Indicates whether the integration is public. Please use the \"visibility\" parameter instead.\n     */\n    public: boolean;\n    /**\n     * The integration's visibility. Public integrations are available to all and cannot be updated without creating a new version. Unlisted integrations behave identically to public integrations, but they are not listed in the integration hub. By default, integrations are private and only accessible to the workspace that created them.\n     */\n    visibility: \"public\" | \"private\" | \"unlisted\";\n    /**\n     * Status of the integration version verification\n     */\n    verificationStatus: \"unapproved\" | \"pending\" | \"approved\" | \"rejected\";\n    /**\n     * The lifecycle status of the integration. When an integration is deprecated, it can no longer be installed.\n     */\n    lifecycleStatus: \"published\" | \"deprecated\";\n    /**\n     * Secrets are integration-wide values available in the code via environment variables formatted with a SECRET_ prefix followed by your secret name. A secret name must respect SCREAMING_SNAKE casing.\n     */\n    secrets: string[];\n    /**\n     * Optional key-value attributes from the integration definition\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ValidateIntegrationCreationRequestHeaders {}\n\nexport interface ValidateIntegrationCreationRequestQuery {}\n\nexport interface ValidateIntegrationCreationRequestParams {}\n\nexport interface ValidateIntegrationCreationRequestBody {\n  /**\n   * Name of the [Integration](#schema_integration)\n   */\n  name: string;\n  /**\n   * Version of the [Integration](#schema_integration)\n   */\n  version: string;\n  /**\n   * Default configuration definition of the integration\n   */\n  configuration?: {\n    /**\n     * Title of the configuration\n     */\n    title?: string;\n    /**\n     * Description of the configuration\n     */\n    description?: string;\n    /**\n     * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n     */\n    schema?: {\n      [k: string]: any;\n    };\n    identifier?: {\n      required?: boolean;\n      linkTemplateScript?: string;\n    };\n  };\n  /**\n   * Additional configuration definitions of the integration\n   */\n  configurations?: {\n    [k: string]: {\n      /**\n       * Title of the configuration\n       */\n      title?: string;\n      /**\n       * Description of the configuration\n       */\n      description?: string;\n      /**\n       * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n       */\n      schema?: {\n        [k: string]: any;\n      };\n      identifier?: {\n        required?: boolean;\n        linkTemplateScript?: string;\n      };\n    };\n  };\n  states?: {\n    /**\n     * State definition\n     */\n    [k: string]: {\n      /**\n       * Type of the [State](#schema_state) (`conversation`, `user` or `integration`)\n       */\n      type: \"conversation\" | \"user\" | \"integration\";\n      /**\n       * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n       */\n      schema: {\n        [k: string]: any;\n      };\n    };\n  };\n  events?: {\n    /**\n     * Event Definition\n     */\n    [k: string]: {\n      /**\n       * Title of the event\n       */\n      title?: string;\n      /**\n       * Description of the event\n       */\n      description?: string;\n      schema: {\n        [k: string]: any;\n      };\n      /**\n       * Optional attributes\n       */\n      attributes?: {\n        [k: string]: string;\n      };\n    };\n  };\n  actions?: {\n    /**\n     * Action definition\n     */\n    [k: string]: {\n      /**\n       * Title of the action\n       */\n      title?: string;\n      /**\n       * Description of the action\n       */\n      description?: string;\n      billable?: boolean;\n      cacheable?: boolean;\n      input: {\n        schema: {\n          [k: string]: any;\n        };\n      };\n      output: {\n        schema: {\n          [k: string]: any;\n        };\n      };\n      /**\n       * Optional attributes\n       */\n      attributes?: {\n        [k: string]: string;\n      };\n    };\n  };\n  entities?: {\n    /**\n     * Entity definition\n     */\n    [k: string]: {\n      /**\n       * Title of the entity\n       */\n      title?: string;\n      /**\n       * Description of the entity\n       */\n      description?: string;\n      schema: {\n        [k: string]: any;\n      };\n    };\n  };\n  identifier?: {\n    fallbackHandlerScript?: string;\n    extractScript?: string;\n  };\n  channels?: {\n    [k: string]: {\n      /**\n       * Title of the channel\n       */\n      title?: string;\n      /**\n       * Description of the channel\n       */\n      description?: string;\n      messages: {\n        /**\n         * Message definition\n         */\n        [k: string]: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n      };\n      conversation?: {\n        /**\n         * The conversation creation setting determines how to create a conversation through the API directly. The integration will have to implement the `createConversation` functionality to support this setting.\n         */\n        creation?: {\n          /**\n           * Enable conversation creation\n           */\n          enabled: boolean;\n          /**\n           * The list of tags that are required to be specified when calling the API directly to create a conversation.\n           */\n          requiredTags: string[];\n        };\n        tags?: {\n          /**\n           * Definition of a tag that can be provided on the object\n           */\n          [k: string]: {\n            /**\n             * Title of the tag\n             */\n            title?: string;\n            /**\n             * Description of the tag\n             */\n            description?: string;\n          };\n        };\n      };\n      message?: {\n        tags?: {\n          /**\n           * Definition of a tag that can be provided on the object\n           */\n          [k: string]: {\n            /**\n             * Title of the tag\n             */\n            title?: string;\n            /**\n             * Description of the tag\n             */\n            description?: string;\n          };\n        };\n      };\n    };\n  };\n  user?: {\n    /**\n     * The user creation setting determines how to create a user through the API directly. The integration will have to implement the `createUser` functionality to support this setting.\n     */\n    creation?: {\n      /**\n       * Enable user creation\n       */\n      enabled: boolean;\n      /**\n       * The list of tags that are required to be specified when calling the API directly to create a user.\n       */\n      requiredTags: string[];\n    };\n    tags?: {\n      /**\n       * Definition of a tag that can be provided on the object\n       */\n      [k: string]: {\n        /**\n         * Title of the tag\n         */\n        title?: string;\n        /**\n         * Description of the tag\n         */\n        description?: string;\n      };\n    };\n  };\n  interfaces?: {\n    [k: string]: {\n      /**\n       * ID of the interface\n       */\n      id: string;\n      entities?: {\n        [k: string]: {\n          name: string;\n        };\n      };\n      actions?: {\n        [k: string]: {\n          name: string;\n        };\n      };\n      events?: {\n        [k: string]: {\n          name: string;\n        };\n      };\n      channels?: {\n        [k: string]: {\n          name: string;\n        };\n      };\n    };\n  };\n  /**\n   * **EXPERIMENTAL** Extra integration operations that should be sent or not to the integration instances. The key is the operation name.\n   */\n  extraOperations?: {\n    [k: string]: {\n      enabled: boolean;\n    };\n  };\n  sdkVersion?: string;\n  /**\n   * Secrets are integration-wide values available in the code via environment variables formatted with a SECRET_ prefix followed by your secret name. A secret name must respect SCREAMING_SNAKE casing.\n   */\n  secrets?: {\n    [k: string]: string | null;\n  };\n  /**\n   * JavaScript code of the integration\n   */\n  code?: string;\n  /**\n   * URL of the integration\n   */\n  url?: string;\n  /**\n   * Indicates if the integration is a development integration; Dev integrations run locally\n   */\n  dev?: boolean;\n  /**\n   * Base64 encoded svg of the integration icon. This icon is global to the integration each versions will be updated when this changes.\n   */\n  icon?: string;\n  /**\n   * Base64 encoded markdown of the integration readme. The readme is specific to each integration versions.\n   */\n  readme?: string;\n  /**\n   * Title of the integration. This is the name that will be displayed in the UI\n   */\n  title?: string;\n  /**\n   * Description of the integration. This is the description that will be displayed in the UI\n   */\n  description?: string;\n  /**\n   * @deprecated\n   * [DEPRECATED] Indicates whether the integration is public. Please use the \"visibility\" parameter instead.\n   */\n  public?: boolean;\n  /**\n   * The integration's visibility. Public integrations are available to all and cannot be updated without creating a new version. Unlisted integrations behave identically to public integrations, but they are not listed in the integration hub. By default, integrations are private and only accessible to the workspace that created them.\n   */\n  visibility?: \"public\" | \"private\" | \"unlisted\";\n  layers?: string[];\n  /**\n   * Optional key-value attributes from the integration definition\n   */\n  attributes?: {\n    [k: string]: string;\n  };\n  /**\n   * Admission deadline for one integration operation, including queue and initialization (seconds).\n   */\n  maxExecutionTime?: number;\n  /**\n   * Maximum concurrent integration invocations. Definitions that omit this field run one invocation at a time.\n   */\n  maxConcurrency?: number;\n  /**\n   * Outbound host allowlist declared by the integration.\n   */\n  providerHosts?: string[];\n  /**\n   * Whether inbound webhook traffic is relayed through the platform.\n   */\n  ingressRelayed?: boolean;\n  /**\n   * Authentication mode enforced for inbound webhooks.\n   */\n  webhookAuthMode?: \"shared_secret\" | \"provider_verified\" | \"handler_verified\";\n}\n\nexport type ValidateIntegrationCreationInput = ValidateIntegrationCreationRequestBody & ValidateIntegrationCreationRequestHeaders & ValidateIntegrationCreationRequestQuery & ValidateIntegrationCreationRequestParams\n\nexport type ValidateIntegrationCreationRequest = {\n  headers: ValidateIntegrationCreationRequestHeaders;\n  query: ValidateIntegrationCreationRequestQuery;\n  params: ValidateIntegrationCreationRequestParams;\n  body: ValidateIntegrationCreationRequestBody;\n}\n\nexport const parseReq = (input: ValidateIntegrationCreationInput): ValidateIntegrationCreationRequest & { path: string } => {\n  return {\n    path: `/v1/admin/integrations/validate`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'name': input['name'], 'version': input['version'], 'configuration': input['configuration'], 'configurations': input['configurations'], 'states': input['states'], 'events': input['events'], 'actions': input['actions'], 'entities': input['entities'], 'identifier': input['identifier'], 'channels': input['channels'], 'user': input['user'], 'interfaces': input['interfaces'], 'extraOperations': input['extraOperations'], 'sdkVersion': input['sdkVersion'], 'secrets': input['secrets'], 'code': input['code'], 'url': input['url'], 'dev': input['dev'], 'icon': input['icon'], 'readme': input['readme'], 'title': input['title'], 'description': input['description'], 'public': input['public'], 'visibility': input['visibility'], 'layers': input['layers'], 'attributes': input['attributes'], 'maxExecutionTime': input['maxExecutionTime'], 'maxConcurrency': input['maxConcurrency'], 'providerHosts': input['providerHosts'], 'ingressRelayed': input['ingressRelayed'], 'webhookAuthMode': input['webhookAuthMode'] },\n  }\n}\n\nexport interface ValidateIntegrationCreationResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface UpdateIntegrationRequestHeaders {}\n\nexport interface UpdateIntegrationRequestQuery {}\n\nexport interface UpdateIntegrationRequestParams {\n  id: string;\n}\n\nexport interface UpdateIntegrationRequestBody {\n  /**\n   * Default configuration definition of the integration\n   */\n  configuration?: {\n    /**\n     * Title of the configuration\n     */\n    title?: string;\n    /**\n     * Description of the configuration\n     */\n    description?: string;\n    /**\n     * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n     */\n    schema?: {\n      [k: string]: any;\n    };\n    identifier?: {\n      linkTemplateScript?: string | null;\n      required?: boolean;\n    };\n  };\n  /**\n   * Additional configuration definitions of the integration\n   */\n  configurations?: {\n    [k: string]: {\n      /**\n       * Title of the configuration\n       */\n      title?: string;\n      /**\n       * Description of the configuration\n       */\n      description?: string;\n      /**\n       * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n       */\n      schema?: {\n        [k: string]: any;\n      };\n      identifier?: {\n        linkTemplateScript?: string | null;\n        required?: boolean;\n      };\n    } | null;\n  };\n  /**\n   * **EXPERIMENTAL** extra integration operations enabled for this integration. Keys map to operation names. A value of `null` or `{ enabled: false }` removes the operation; `{ enabled: true }` enables it. Operations that are not provided are left unchanged.\n   */\n  extraOperations?: {\n    [k: string]: {\n      enabled: boolean;\n    } | null;\n  };\n  sdkVersion?: string;\n  channels?: {\n    [k: string]: {\n      /**\n       * Title of the channel\n       */\n      title?: string;\n      /**\n       * Description of the channel\n       */\n      description?: string;\n      messages?: {\n        /**\n         * Message definition\n         */\n        [k: string]: {\n          schema: {\n            [k: string]: any;\n          };\n        } | null;\n      };\n      conversation?: {\n        /**\n         * The conversation creation setting determines how to create a conversation through the API directly. The integration will have to implement the `createConversation` functionality to support this setting.\n         */\n        creation?: {\n          /**\n           * Enable conversation creation\n           */\n          enabled: boolean;\n          /**\n           * The list of tags that are required to be specified when calling the API directly to create a conversation.\n           */\n          requiredTags: string[];\n        };\n        tags?: {\n          /**\n           * Definition of a tag that can be provided on the object\n           */\n          [k: string]: {\n            /**\n             * Title of the tag\n             */\n            title?: string;\n            /**\n             * Description of the tag\n             */\n            description?: string;\n          } | null;\n        };\n      };\n      message?: {\n        tags?: {\n          /**\n           * Definition of a tag that can be provided on the object\n           */\n          [k: string]: {\n            /**\n             * Title of the tag\n             */\n            title?: string;\n            /**\n             * Description of the tag\n             */\n            description?: string;\n          } | null;\n        };\n      };\n    } | null;\n  };\n  /**\n   * Maximum execution time of the integration (in seconds).\n   */\n  maxExecutionTime?: number;\n  identifier?: {\n    extractScript?: string | null;\n    fallbackHandlerScript?: string | null;\n  };\n  actions?: {\n    [k: string]: {\n      /**\n       * Title of the action\n       */\n      title?: string;\n      /**\n       * Description of the action\n       */\n      description?: string;\n      billable?: boolean;\n      cacheable?: boolean;\n      input: {\n        schema: {\n          [k: string]: any;\n        };\n      };\n      output: {\n        schema: {\n          [k: string]: any;\n        };\n      };\n      /**\n       * Optional attributes. Set attributes to null to remove them\n       */\n      attributes?: {\n        [k: string]: string | null;\n      };\n    } | null;\n  };\n  events?: {\n    [k: string]: {\n      /**\n       * Title of the event\n       */\n      title?: string;\n      /**\n       * Description of the event\n       */\n      description?: string;\n      schema: {\n        [k: string]: any;\n      };\n      /**\n       * Optional attributes. Set attributes to null to remove them\n       */\n      attributes?: {\n        [k: string]: string | null;\n      };\n    } | null;\n  };\n  states?: {\n    /**\n     * State definition\n     */\n    [k: string]: {\n      /**\n       * Type of the [State](#schema_state) (`conversation`, `user` or `integration`)\n       */\n      type: \"conversation\" | \"user\" | \"integration\";\n      /**\n       * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n       */\n      schema: {\n        [k: string]: any;\n      };\n    } | null;\n  };\n  user?: {\n    /**\n     * The user creation setting determines how to create a user through the API directly. The integration will have to implement the `createUser` functionality to support this setting.\n     */\n    creation?: {\n      /**\n       * Enable user creation\n       */\n      enabled: boolean;\n      /**\n       * The list of tags that are required to be specified when calling the API directly to create a user.\n       */\n      requiredTags: string[];\n    };\n    tags?: {\n      /**\n       * Definition of a tag that can be provided on the object\n       */\n      [k: string]: {\n        /**\n         * Title of the tag\n         */\n        title?: string;\n        /**\n         * Description of the tag\n         */\n        description?: string;\n      } | null;\n    };\n  };\n  entities?: {\n    /**\n     * Entity definition\n     */\n    [k: string]: {\n      /**\n       * Title of the entity\n       */\n      title?: string;\n      /**\n       * Description of the entity\n       */\n      description?: string;\n      schema: {\n        [k: string]: any;\n      };\n    } | null;\n  };\n  interfaces?: {\n    [k: string]: {\n      /**\n       * ID of the interface\n       */\n      id: string;\n      entities?: {\n        [k: string]: {\n          name: string;\n        };\n      };\n      actions?: {\n        [k: string]: {\n          name: string;\n        };\n      };\n      events?: {\n        [k: string]: {\n          name: string;\n        };\n      };\n      channels?: {\n        [k: string]: {\n          name: string;\n        };\n      };\n    } | null;\n  };\n  /**\n   * Optional key-value attributes. Set attributes to null to remove them\n   */\n  attributes?: {\n    [k: string]: string | null;\n  };\n  /**\n   * Secrets are integration-wide values available in the code via environment variables formatted with a SECRET_ prefix followed by your secret name. A secret name must respect SCREAMING_SNAKE casing.\n   */\n  secrets?: {\n    [k: string]: string | null;\n  };\n  /**\n   * JavaScript code of the integration\n   */\n  code?: string;\n  /**\n   * Base64 encoded svg of the integration icon. This icon is global to the integration each versions will be updated when this changes.\n   */\n  icon?: string;\n  /**\n   * Base64 encoded markdown of the integration readme. The readme is specific to each integration versions.\n   */\n  readme?: string;\n  /**\n   * Title of the integration. This is the name that will be displayed in the UI\n   */\n  title?: string;\n  /**\n   * Description of the integration. This is the description that will be displayed in the UI\n   */\n  description?: string;\n  /**\n   * URL of the integration\n   */\n  url?: string | null;\n  /**\n   * @deprecated\n   * [DEPRECATED] Indicates whether the integration is public. Please use the \"visibility\" parameter instead.\n   */\n  public?: boolean;\n  /**\n   * The integration's visibility. Public integrations are available to all and cannot be updated without creating a new version. Unlisted integrations behave identically to public integrations, but they are not listed in the integration hub. By default, integrations are private and only accessible to the workspace that created them.\n   */\n  visibility?: \"public\" | \"private\" | \"unlisted\";\n  layers?: string[];\n  /**\n   * Maximum concurrent integration invocations. Definitions that omit this field run one invocation at a time.\n   */\n  maxConcurrency?: number;\n  /**\n   * Outbound host allowlist declared by the integration.\n   */\n  providerHosts?: string[];\n  /**\n   * Whether inbound webhook traffic is relayed through the platform.\n   */\n  ingressRelayed?: boolean;\n  /**\n   * Authentication mode enforced for inbound webhooks.\n   */\n  webhookAuthMode?: \"shared_secret\" | \"provider_verified\" | \"handler_verified\";\n}\n\nexport type UpdateIntegrationInput = UpdateIntegrationRequestBody & UpdateIntegrationRequestHeaders & UpdateIntegrationRequestQuery & UpdateIntegrationRequestParams\n\nexport type UpdateIntegrationRequest = {\n  headers: UpdateIntegrationRequestHeaders;\n  query: UpdateIntegrationRequestQuery;\n  params: UpdateIntegrationRequestParams;\n  body: UpdateIntegrationRequestBody;\n}\n\nexport const parseReq = (input: UpdateIntegrationInput): UpdateIntegrationRequest & { path: string } => {\n  return {\n    path: `/v1/admin/integrations/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: { 'configuration': input['configuration'], 'configurations': input['configurations'], 'extraOperations': input['extraOperations'], 'sdkVersion': input['sdkVersion'], 'channels': input['channels'], 'maxExecutionTime': input['maxExecutionTime'], 'identifier': input['identifier'], 'actions': input['actions'], 'events': input['events'], 'states': input['states'], 'user': input['user'], 'entities': input['entities'], 'interfaces': input['interfaces'], 'attributes': input['attributes'], 'secrets': input['secrets'], 'code': input['code'], 'icon': input['icon'], 'readme': input['readme'], 'title': input['title'], 'description': input['description'], 'url': input['url'], 'public': input['public'], 'visibility': input['visibility'], 'layers': input['layers'], 'maxConcurrency': input['maxConcurrency'], 'providerHosts': input['providerHosts'], 'ingressRelayed': input['ingressRelayed'], 'webhookAuthMode': input['webhookAuthMode'] },\n  }\n}\n\nexport interface UpdateIntegrationResponse {\n  integration: {\n    /**\n     * ID of the [Integration](#schema_integration)\n     */\n    id: string;\n    /**\n     * Creation date of the [Integration](#schema_integration) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Integration](#schema_integration) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Global identifier configuration of the [Integration](#schema_integration)\n     */\n    identifier: {\n      /**\n       * VRL Script of the [Integration](#schema_integration) to handle incoming requests for a request that doesn't have an identifier\n       */\n      fallbackHandlerScript?: string;\n      /**\n       * VRL Script of the [Integration](#schema_integration) to extract the identifier from an incoming webhook often use for OAuth\n       */\n      extractScript?: string;\n    };\n    sandbox?: {\n      /**\n       * VRL Script of the [Integration](#schema_integration) to extract the identifier from an incoming webhook used specifically for the sandbox\n       */\n      identifierExtractScript?: string;\n      /**\n       * VRL Script of the [Integration](#schema_integration) to extract the message from an incoming webhook used specifically for the sandbox\n       */\n      messageExtractScript?: string;\n    };\n    /**\n     * Maximum execution time of the integration (in seconds).\n     */\n    maxExecutionTime?: number;\n    /**\n     * URL of the [Integration](#schema_integration)\n     */\n    url: string;\n    /**\n     * Signing secret of the [Integration](#schema_integration). This field is only visible when creating a new integration or when rotating the signing secret of an existing integration.\n     */\n    signingSecret: string;\n    /**\n     * Name of the [Integration](#schema_integration)\n     */\n    name: string;\n    /**\n     * Version of the [Integration](#schema_integration)\n     */\n    version: string;\n    interfaces: {\n      [k: string]: {\n        /**\n         * ID of the interface\n         */\n        id: string;\n        /**\n         * Name of the interface\n         */\n        name: string;\n        /**\n         * Version of the interface\n         */\n        version: string;\n        entities: {\n          [k: string]: {\n            name: string;\n          };\n        };\n        actions: {\n          [k: string]: {\n            name: string;\n          };\n        };\n        events: {\n          [k: string]: {\n            name: string;\n          };\n        };\n        channels: {\n          [k: string]: {\n            name: string;\n          };\n        };\n      };\n    };\n    /**\n     * Configuration definition\n     */\n    configuration: {\n      /**\n       * Title of the configuration\n       */\n      title?: string;\n      /**\n       * Description of the configuration\n       */\n      description?: string;\n      /**\n       * Identifier configuration of the [Integration](#schema_integration)\n       */\n      identifier: {\n        linkTemplateScript?: string;\n        required: boolean;\n      };\n      /**\n       * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n       */\n      schema: {\n        [k: string]: any;\n      };\n    };\n    configurations: {\n      /**\n       * Configuration definition\n       */\n      [k: string]: {\n        /**\n         * Title of the configuration\n         */\n        title?: string;\n        /**\n         * Description of the configuration\n         */\n        description?: string;\n        /**\n         * Identifier configuration of the [Integration](#schema_integration)\n         */\n        identifier: {\n          linkTemplateScript?: string;\n          required: boolean;\n        };\n        /**\n         * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n         */\n        schema: {\n          [k: string]: any;\n        };\n      };\n    };\n    channels: {\n      /**\n       * Channel definition\n       */\n      [k: string]: {\n        /**\n         * Title of the channel\n         */\n        title?: string;\n        /**\n         * Description of the channel\n         */\n        description?: string;\n        messages: {\n          /**\n           * Message definition\n           */\n          [k: string]: {\n            schema: {\n              [k: string]: any;\n            };\n          };\n        };\n        /**\n         * Conversation object configuration\n         */\n        conversation: {\n          tags: {\n            /**\n             * Definition of a tag that can be provided on the object\n             */\n            [k: string]: {\n              /**\n               * Title of the tag\n               */\n              title?: string;\n              /**\n               * Description of the tag\n               */\n              description?: string;\n            };\n          };\n          /**\n           * The conversation creation setting determines how to create a conversation through the API directly. The integration will have to implement the `createConversation` functionality to support this setting.\n           */\n          creation: {\n            /**\n             * Enable conversation creation\n             */\n            enabled: boolean;\n            /**\n             * The list of tags that are required to be specified when calling the API directly to create a conversation.\n             */\n            requiredTags: string[];\n          };\n        };\n        /**\n         * Message object configuration\n         */\n        message: {\n          tags: {\n            /**\n             * Definition of a tag that can be provided on the object\n             */\n            [k: string]: {\n              /**\n               * Title of the tag\n               */\n              title?: string;\n              /**\n               * Description of the tag\n               */\n              description?: string;\n            };\n          };\n        };\n      };\n    };\n    states: {\n      /**\n       * State definition\n       */\n      [k: string]: {\n        /**\n         * Type of the [State](#schema_state) (`conversation`, `user` or `integration`)\n         */\n        type: \"conversation\" | \"user\" | \"integration\";\n        /**\n         * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n         */\n        schema: {\n          [k: string]: any;\n        };\n      };\n    };\n    events: {\n      /**\n       * Event Definition\n       */\n      [k: string]: {\n        /**\n         * Title of the event\n         */\n        title?: string;\n        /**\n         * Description of the event\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    actions: {\n      /**\n       * Action definition\n       */\n      [k: string]: {\n        /**\n         * Title of the action\n         */\n        title?: string;\n        /**\n         * Description of the action\n         */\n        description?: string;\n        billable?: boolean;\n        cacheable?: boolean;\n        input: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        output: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    /**\n     * User object configuration\n     */\n    user: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n      /**\n       * The user creation setting determines how to create a user through the API directly. The integration will have to implement the `createUser` functionality to support this setting.\n       */\n      creation: {\n        /**\n         * Enable user creation\n         */\n        enabled: boolean;\n        /**\n         * The list of tags that are required to be specified when calling the API directly to create a user.\n         */\n        requiredTags: string[];\n      };\n    };\n    entities: {\n      /**\n       * Entity definition\n       */\n      [k: string]: {\n        /**\n         * Title of the entity\n         */\n        title?: string;\n        /**\n         * Description of the entity\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n      };\n    };\n    /**\n     * Indicates if the integration is a development integration; Dev integrations run locally\n     */\n    dev: boolean;\n    /**\n     * Title of the integration. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the integration. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the integration. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * URL of the readme of the integration. This is the readme that will be displayed in the UI\n     */\n    readmeUrl: string;\n    /**\n     * @deprecated\n     * [DEPRECATED] Indicates whether the integration is public. Please use the \"visibility\" parameter instead.\n     */\n    public: boolean;\n    /**\n     * The integration's visibility. Public integrations are available to all and cannot be updated without creating a new version. Unlisted integrations behave identically to public integrations, but they are not listed in the integration hub. By default, integrations are private and only accessible to the workspace that created them.\n     */\n    visibility: \"public\" | \"private\" | \"unlisted\";\n    /**\n     * Status of the integration version verification\n     */\n    verificationStatus: \"unapproved\" | \"pending\" | \"approved\" | \"rejected\";\n    /**\n     * The lifecycle status of the integration. When an integration is deprecated, it can no longer be installed.\n     */\n    lifecycleStatus: \"published\" | \"deprecated\";\n    /**\n     * Secrets are integration-wide values available in the code via environment variables formatted with a SECRET_ prefix followed by your secret name. A secret name must respect SCREAMING_SNAKE casing.\n     */\n    secrets: string[];\n    /**\n     * Optional key-value attributes from the integration definition\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface RotateIntegrationSigningSecretsRequestHeaders {}\n\nexport interface RotateIntegrationSigningSecretsRequestQuery {}\n\nexport interface RotateIntegrationSigningSecretsRequestParams {\n  id: string;\n}\n\nexport interface RotateIntegrationSigningSecretsRequestBody {}\n\nexport type RotateIntegrationSigningSecretsInput = RotateIntegrationSigningSecretsRequestBody & RotateIntegrationSigningSecretsRequestHeaders & RotateIntegrationSigningSecretsRequestQuery & RotateIntegrationSigningSecretsRequestParams\n\nexport type RotateIntegrationSigningSecretsRequest = {\n  headers: RotateIntegrationSigningSecretsRequestHeaders;\n  query: RotateIntegrationSigningSecretsRequestQuery;\n  params: RotateIntegrationSigningSecretsRequestParams;\n  body: RotateIntegrationSigningSecretsRequestBody;\n}\n\nexport const parseReq = (input: RotateIntegrationSigningSecretsInput): RotateIntegrationSigningSecretsRequest & { path: string } => {\n  return {\n    path: `/v1/admin/integrations/${encodeURIComponent(input['id'])}/signing-secrets/rotate`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface RotateIntegrationSigningSecretsResponse {\n  /**\n   * The new signing secret that can be used immediately. The old signing secret(s) will continue to work for 24 hours after this operation to allow for a smooth transition.\n   */\n  newSigningSecret: string;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ValidateIntegrationUpdateRequestHeaders {}\n\nexport interface ValidateIntegrationUpdateRequestQuery {}\n\nexport interface ValidateIntegrationUpdateRequestParams {\n  id: string;\n}\n\nexport interface ValidateIntegrationUpdateRequestBody {\n  /**\n   * Default configuration definition of the integration\n   */\n  configuration?: {\n    /**\n     * Title of the configuration\n     */\n    title?: string;\n    /**\n     * Description of the configuration\n     */\n    description?: string;\n    /**\n     * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n     */\n    schema?: {\n      [k: string]: any;\n    };\n    identifier?: {\n      linkTemplateScript?: string | null;\n      required?: boolean;\n    };\n  };\n  /**\n   * Additional configuration definitions of the integration\n   */\n  configurations?: {\n    [k: string]: {\n      /**\n       * Title of the configuration\n       */\n      title?: string;\n      /**\n       * Description of the configuration\n       */\n      description?: string;\n      /**\n       * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n       */\n      schema?: {\n        [k: string]: any;\n      };\n      identifier?: {\n        linkTemplateScript?: string | null;\n        required?: boolean;\n      };\n    } | null;\n  };\n  /**\n   * **EXPERIMENTAL** extra integration operations enabled for this integration. Keys map to operation names. A value of `null` or `{ enabled: false }` removes the operation; `{ enabled: true }` enables it. Operations that are not provided are left unchanged.\n   */\n  extraOperations?: {\n    [k: string]: {\n      enabled: boolean;\n    } | null;\n  };\n  sdkVersion?: string;\n  channels?: {\n    [k: string]: {\n      /**\n       * Title of the channel\n       */\n      title?: string;\n      /**\n       * Description of the channel\n       */\n      description?: string;\n      messages?: {\n        /**\n         * Message definition\n         */\n        [k: string]: {\n          schema: {\n            [k: string]: any;\n          };\n        } | null;\n      };\n      conversation?: {\n        /**\n         * The conversation creation setting determines how to create a conversation through the API directly. The integration will have to implement the `createConversation` functionality to support this setting.\n         */\n        creation?: {\n          /**\n           * Enable conversation creation\n           */\n          enabled: boolean;\n          /**\n           * The list of tags that are required to be specified when calling the API directly to create a conversation.\n           */\n          requiredTags: string[];\n        };\n        tags?: {\n          /**\n           * Definition of a tag that can be provided on the object\n           */\n          [k: string]: {\n            /**\n             * Title of the tag\n             */\n            title?: string;\n            /**\n             * Description of the tag\n             */\n            description?: string;\n          } | null;\n        };\n      };\n      message?: {\n        tags?: {\n          /**\n           * Definition of a tag that can be provided on the object\n           */\n          [k: string]: {\n            /**\n             * Title of the tag\n             */\n            title?: string;\n            /**\n             * Description of the tag\n             */\n            description?: string;\n          } | null;\n        };\n      };\n    } | null;\n  };\n  /**\n   * Maximum execution time of the integration (in seconds).\n   */\n  maxExecutionTime?: number;\n  identifier?: {\n    extractScript?: string | null;\n    fallbackHandlerScript?: string | null;\n  };\n  actions?: {\n    [k: string]: {\n      /**\n       * Title of the action\n       */\n      title?: string;\n      /**\n       * Description of the action\n       */\n      description?: string;\n      billable?: boolean;\n      cacheable?: boolean;\n      input: {\n        schema: {\n          [k: string]: any;\n        };\n      };\n      output: {\n        schema: {\n          [k: string]: any;\n        };\n      };\n      /**\n       * Optional attributes. Set attributes to null to remove them\n       */\n      attributes?: {\n        [k: string]: string | null;\n      };\n    } | null;\n  };\n  events?: {\n    [k: string]: {\n      /**\n       * Title of the event\n       */\n      title?: string;\n      /**\n       * Description of the event\n       */\n      description?: string;\n      schema: {\n        [k: string]: any;\n      };\n      /**\n       * Optional attributes. Set attributes to null to remove them\n       */\n      attributes?: {\n        [k: string]: string | null;\n      };\n    } | null;\n  };\n  states?: {\n    /**\n     * State definition\n     */\n    [k: string]: {\n      /**\n       * Type of the [State](#schema_state) (`conversation`, `user` or `integration`)\n       */\n      type: \"conversation\" | \"user\" | \"integration\";\n      /**\n       * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n       */\n      schema: {\n        [k: string]: any;\n      };\n    } | null;\n  };\n  user?: {\n    /**\n     * The user creation setting determines how to create a user through the API directly. The integration will have to implement the `createUser` functionality to support this setting.\n     */\n    creation?: {\n      /**\n       * Enable user creation\n       */\n      enabled: boolean;\n      /**\n       * The list of tags that are required to be specified when calling the API directly to create a user.\n       */\n      requiredTags: string[];\n    };\n    tags?: {\n      /**\n       * Definition of a tag that can be provided on the object\n       */\n      [k: string]: {\n        /**\n         * Title of the tag\n         */\n        title?: string;\n        /**\n         * Description of the tag\n         */\n        description?: string;\n      } | null;\n    };\n  };\n  entities?: {\n    /**\n     * Entity definition\n     */\n    [k: string]: {\n      /**\n       * Title of the entity\n       */\n      title?: string;\n      /**\n       * Description of the entity\n       */\n      description?: string;\n      schema: {\n        [k: string]: any;\n      };\n    } | null;\n  };\n  interfaces?: {\n    [k: string]: {\n      /**\n       * ID of the interface\n       */\n      id: string;\n      entities?: {\n        [k: string]: {\n          name: string;\n        };\n      };\n      actions?: {\n        [k: string]: {\n          name: string;\n        };\n      };\n      events?: {\n        [k: string]: {\n          name: string;\n        };\n      };\n      channels?: {\n        [k: string]: {\n          name: string;\n        };\n      };\n    } | null;\n  };\n  /**\n   * Optional key-value attributes. Set attributes to null to remove them\n   */\n  attributes?: {\n    [k: string]: string | null;\n  };\n  /**\n   * Secrets are integration-wide values available in the code via environment variables formatted with a SECRET_ prefix followed by your secret name. A secret name must respect SCREAMING_SNAKE casing.\n   */\n  secrets?: {\n    [k: string]: string | null;\n  };\n  /**\n   * JavaScript code of the integration\n   */\n  code?: string;\n  /**\n   * Base64 encoded svg of the integration icon. This icon is global to the integration each versions will be updated when this changes.\n   */\n  icon?: string;\n  /**\n   * Base64 encoded markdown of the integration readme. The readme is specific to each integration versions.\n   */\n  readme?: string;\n  /**\n   * Title of the integration. This is the name that will be displayed in the UI\n   */\n  title?: string;\n  /**\n   * Description of the integration. This is the description that will be displayed in the UI\n   */\n  description?: string;\n  /**\n   * URL of the integration\n   */\n  url?: string | null;\n  /**\n   * @deprecated\n   * [DEPRECATED] Indicates whether the integration is public. Please use the \"visibility\" parameter instead.\n   */\n  public?: boolean;\n  /**\n   * The integration's visibility. Public integrations are available to all and cannot be updated without creating a new version. Unlisted integrations behave identically to public integrations, but they are not listed in the integration hub. By default, integrations are private and only accessible to the workspace that created them.\n   */\n  visibility?: \"public\" | \"private\" | \"unlisted\";\n  layers?: string[];\n  /**\n   * Maximum concurrent integration invocations. Definitions that omit this field run one invocation at a time.\n   */\n  maxConcurrency?: number;\n  /**\n   * Outbound host allowlist declared by the integration.\n   */\n  providerHosts?: string[];\n  /**\n   * Whether inbound webhook traffic is relayed through the platform.\n   */\n  ingressRelayed?: boolean;\n  /**\n   * Authentication mode enforced for inbound webhooks.\n   */\n  webhookAuthMode?: \"shared_secret\" | \"provider_verified\" | \"handler_verified\";\n}\n\nexport type ValidateIntegrationUpdateInput = ValidateIntegrationUpdateRequestBody & ValidateIntegrationUpdateRequestHeaders & ValidateIntegrationUpdateRequestQuery & ValidateIntegrationUpdateRequestParams\n\nexport type ValidateIntegrationUpdateRequest = {\n  headers: ValidateIntegrationUpdateRequestHeaders;\n  query: ValidateIntegrationUpdateRequestQuery;\n  params: ValidateIntegrationUpdateRequestParams;\n  body: ValidateIntegrationUpdateRequestBody;\n}\n\nexport const parseReq = (input: ValidateIntegrationUpdateInput): ValidateIntegrationUpdateRequest & { path: string } => {\n  return {\n    path: `/v1/admin/integrations/${encodeURIComponent(input['id'])}/validate`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: { 'configuration': input['configuration'], 'configurations': input['configurations'], 'extraOperations': input['extraOperations'], 'sdkVersion': input['sdkVersion'], 'channels': input['channels'], 'maxExecutionTime': input['maxExecutionTime'], 'identifier': input['identifier'], 'actions': input['actions'], 'events': input['events'], 'states': input['states'], 'user': input['user'], 'entities': input['entities'], 'interfaces': input['interfaces'], 'attributes': input['attributes'], 'secrets': input['secrets'], 'code': input['code'], 'icon': input['icon'], 'readme': input['readme'], 'title': input['title'], 'description': input['description'], 'url': input['url'], 'public': input['public'], 'visibility': input['visibility'], 'layers': input['layers'], 'maxConcurrency': input['maxConcurrency'], 'providerHosts': input['providerHosts'], 'ingressRelayed': input['ingressRelayed'], 'webhookAuthMode': input['webhookAuthMode'] },\n  }\n}\n\nexport interface ValidateIntegrationUpdateResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListIntegrationsRequestHeaders {}\n\nexport interface ListIntegrationsRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n  limit?: number;\n  name?: string;\n  version?: string;\n  interfaceId?: string;\n  interfaceName?: string;\n  installedByBotId?: string;\n  verificationStatus?: \"unapproved\" | \"pending\" | \"approved\" | \"rejected\";\n  search?: string;\n  sortBy?: \"popularity\" | \"name\" | \"createdAt\" | \"updatedAt\" | \"installCount\";\n  direction?: \"asc\" | \"desc\";\n  visibility?: \"public\" | \"private\";\n  dev?: boolean;\n}\n\nexport interface ListIntegrationsRequestParams {}\n\nexport interface ListIntegrationsRequestBody {}\n\nexport type ListIntegrationsInput = ListIntegrationsRequestBody & ListIntegrationsRequestHeaders & ListIntegrationsRequestQuery & ListIntegrationsRequestParams\n\nexport type ListIntegrationsRequest = {\n  headers: ListIntegrationsRequestHeaders;\n  query: ListIntegrationsRequestQuery;\n  params: ListIntegrationsRequestParams;\n  body: ListIntegrationsRequestBody;\n}\n\nexport const parseReq = (input: ListIntegrationsInput): ListIntegrationsRequest & { path: string } => {\n  return {\n    path: `/v1/admin/integrations`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'], 'limit': input['limit'], 'name': input['name'], 'version': input['version'], 'interfaceId': input['interfaceId'], 'interfaceName': input['interfaceName'], 'installedByBotId': input['installedByBotId'], 'verificationStatus': input['verificationStatus'], 'search': input['search'], 'sortBy': input['sortBy'], 'direction': input['direction'], 'visibility': input['visibility'], 'dev': input['dev'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListIntegrationsResponse {\n  integrations: {\n    /**\n     * ID of the [Integration](#schema_integration)\n     */\n    id: string;\n    /**\n     * Name of the [Integration](#schema_integration)\n     */\n    name: string;\n    /**\n     * Version of the [Integration](#schema_integration)\n     */\n    version: string;\n    /**\n     * Creation date of the [Integration](#schema_integration) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Integration](#schema_integration) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Title of the integration. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the integration. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the integration. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * @deprecated\n     * [DEPRECATED] Indicates whether the integration is public. Please use the \"visibility\" parameter instead.\n     */\n    public: boolean;\n    /**\n     * The integration's visibility. Public integrations are available to all and cannot be updated without creating a new version. Unlisted integrations behave identically to public integrations, but they are not listed in the integration hub. By default, integrations are private and only accessible to the workspace that created them.\n     */\n    visibility: \"public\" | \"private\" | \"unlisted\";\n    /**\n     * Status of the integration version verification\n     */\n    verificationStatus: \"unapproved\" | \"pending\" | \"approved\" | \"rejected\";\n    /**\n     * The lifecycle status of the integration. When an integration is deprecated, it can no longer be installed.\n     */\n    lifecycleStatus: \"published\" | \"deprecated\";\n    /**\n     * Metadata about which fields matched the search criteria\n     */\n    matchedOn?: {\n      /**\n       * Whether the integration name matched the search term\n       */\n      name?: boolean;\n      /**\n       * Whether the integration title matched the search term\n       */\n      title?: boolean;\n      /**\n       * Whether the integration description matched the search term\n       */\n      description?: boolean;\n      /**\n       * Action names that matched the search term\n       */\n      actions?: string[];\n      /**\n       * Interface names that matched the search term\n       */\n      interfaces?: string[];\n    };\n    ownerWorkspace?: {\n      id: string;\n      handle: string | null;\n      name: string;\n    };\n    /**\n     * Optional key-value attributes from the integration definition\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  }[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetIntegrationRequestHeaders {}\n\nexport interface GetIntegrationRequestQuery {}\n\nexport interface GetIntegrationRequestParams {\n  id: string;\n}\n\nexport interface GetIntegrationRequestBody {}\n\nexport type GetIntegrationInput = GetIntegrationRequestBody & GetIntegrationRequestHeaders & GetIntegrationRequestQuery & GetIntegrationRequestParams\n\nexport type GetIntegrationRequest = {\n  headers: GetIntegrationRequestHeaders;\n  query: GetIntegrationRequestQuery;\n  params: GetIntegrationRequestParams;\n  body: GetIntegrationRequestBody;\n}\n\nexport const parseReq = (input: GetIntegrationInput): GetIntegrationRequest & { path: string } => {\n  return {\n    path: `/v1/admin/integrations/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetIntegrationResponse {\n  integration: {\n    /**\n     * ID of the [Integration](#schema_integration)\n     */\n    id: string;\n    /**\n     * Creation date of the [Integration](#schema_integration) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Integration](#schema_integration) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Global identifier configuration of the [Integration](#schema_integration)\n     */\n    identifier: {\n      /**\n       * VRL Script of the [Integration](#schema_integration) to handle incoming requests for a request that doesn't have an identifier\n       */\n      fallbackHandlerScript?: string;\n      /**\n       * VRL Script of the [Integration](#schema_integration) to extract the identifier from an incoming webhook often use for OAuth\n       */\n      extractScript?: string;\n    };\n    sandbox?: {\n      /**\n       * VRL Script of the [Integration](#schema_integration) to extract the identifier from an incoming webhook used specifically for the sandbox\n       */\n      identifierExtractScript?: string;\n      /**\n       * VRL Script of the [Integration](#schema_integration) to extract the message from an incoming webhook used specifically for the sandbox\n       */\n      messageExtractScript?: string;\n    };\n    /**\n     * Maximum execution time of the integration (in seconds).\n     */\n    maxExecutionTime?: number;\n    /**\n     * URL of the [Integration](#schema_integration)\n     */\n    url: string;\n    /**\n     * Signing secret of the [Integration](#schema_integration). This field is only visible when creating a new integration or when rotating the signing secret of an existing integration.\n     */\n    signingSecret: string;\n    /**\n     * Name of the [Integration](#schema_integration)\n     */\n    name: string;\n    /**\n     * Version of the [Integration](#schema_integration)\n     */\n    version: string;\n    interfaces: {\n      [k: string]: {\n        /**\n         * ID of the interface\n         */\n        id: string;\n        /**\n         * Name of the interface\n         */\n        name: string;\n        /**\n         * Version of the interface\n         */\n        version: string;\n        entities: {\n          [k: string]: {\n            name: string;\n          };\n        };\n        actions: {\n          [k: string]: {\n            name: string;\n          };\n        };\n        events: {\n          [k: string]: {\n            name: string;\n          };\n        };\n        channels: {\n          [k: string]: {\n            name: string;\n          };\n        };\n      };\n    };\n    /**\n     * Configuration definition\n     */\n    configuration: {\n      /**\n       * Title of the configuration\n       */\n      title?: string;\n      /**\n       * Description of the configuration\n       */\n      description?: string;\n      /**\n       * Identifier configuration of the [Integration](#schema_integration)\n       */\n      identifier: {\n        linkTemplateScript?: string;\n        required: boolean;\n      };\n      /**\n       * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n       */\n      schema: {\n        [k: string]: any;\n      };\n    };\n    configurations: {\n      /**\n       * Configuration definition\n       */\n      [k: string]: {\n        /**\n         * Title of the configuration\n         */\n        title?: string;\n        /**\n         * Description of the configuration\n         */\n        description?: string;\n        /**\n         * Identifier configuration of the [Integration](#schema_integration)\n         */\n        identifier: {\n          linkTemplateScript?: string;\n          required: boolean;\n        };\n        /**\n         * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n         */\n        schema: {\n          [k: string]: any;\n        };\n      };\n    };\n    channels: {\n      /**\n       * Channel definition\n       */\n      [k: string]: {\n        /**\n         * Title of the channel\n         */\n        title?: string;\n        /**\n         * Description of the channel\n         */\n        description?: string;\n        messages: {\n          /**\n           * Message definition\n           */\n          [k: string]: {\n            schema: {\n              [k: string]: any;\n            };\n          };\n        };\n        /**\n         * Conversation object configuration\n         */\n        conversation: {\n          tags: {\n            /**\n             * Definition of a tag that can be provided on the object\n             */\n            [k: string]: {\n              /**\n               * Title of the tag\n               */\n              title?: string;\n              /**\n               * Description of the tag\n               */\n              description?: string;\n            };\n          };\n          /**\n           * The conversation creation setting determines how to create a conversation through the API directly. The integration will have to implement the `createConversation` functionality to support this setting.\n           */\n          creation: {\n            /**\n             * Enable conversation creation\n             */\n            enabled: boolean;\n            /**\n             * The list of tags that are required to be specified when calling the API directly to create a conversation.\n             */\n            requiredTags: string[];\n          };\n        };\n        /**\n         * Message object configuration\n         */\n        message: {\n          tags: {\n            /**\n             * Definition of a tag that can be provided on the object\n             */\n            [k: string]: {\n              /**\n               * Title of the tag\n               */\n              title?: string;\n              /**\n               * Description of the tag\n               */\n              description?: string;\n            };\n          };\n        };\n      };\n    };\n    states: {\n      /**\n       * State definition\n       */\n      [k: string]: {\n        /**\n         * Type of the [State](#schema_state) (`conversation`, `user` or `integration`)\n         */\n        type: \"conversation\" | \"user\" | \"integration\";\n        /**\n         * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n         */\n        schema: {\n          [k: string]: any;\n        };\n      };\n    };\n    events: {\n      /**\n       * Event Definition\n       */\n      [k: string]: {\n        /**\n         * Title of the event\n         */\n        title?: string;\n        /**\n         * Description of the event\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    actions: {\n      /**\n       * Action definition\n       */\n      [k: string]: {\n        /**\n         * Title of the action\n         */\n        title?: string;\n        /**\n         * Description of the action\n         */\n        description?: string;\n        billable?: boolean;\n        cacheable?: boolean;\n        input: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        output: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    /**\n     * User object configuration\n     */\n    user: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n      /**\n       * The user creation setting determines how to create a user through the API directly. The integration will have to implement the `createUser` functionality to support this setting.\n       */\n      creation: {\n        /**\n         * Enable user creation\n         */\n        enabled: boolean;\n        /**\n         * The list of tags that are required to be specified when calling the API directly to create a user.\n         */\n        requiredTags: string[];\n      };\n    };\n    entities: {\n      /**\n       * Entity definition\n       */\n      [k: string]: {\n        /**\n         * Title of the entity\n         */\n        title?: string;\n        /**\n         * Description of the entity\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n      };\n    };\n    /**\n     * Indicates if the integration is a development integration; Dev integrations run locally\n     */\n    dev: boolean;\n    /**\n     * Title of the integration. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the integration. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the integration. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * URL of the readme of the integration. This is the readme that will be displayed in the UI\n     */\n    readmeUrl: string;\n    /**\n     * @deprecated\n     * [DEPRECATED] Indicates whether the integration is public. Please use the \"visibility\" parameter instead.\n     */\n    public: boolean;\n    /**\n     * The integration's visibility. Public integrations are available to all and cannot be updated without creating a new version. Unlisted integrations behave identically to public integrations, but they are not listed in the integration hub. By default, integrations are private and only accessible to the workspace that created them.\n     */\n    visibility: \"public\" | \"private\" | \"unlisted\";\n    /**\n     * Status of the integration version verification\n     */\n    verificationStatus: \"unapproved\" | \"pending\" | \"approved\" | \"rejected\";\n    /**\n     * The lifecycle status of the integration. When an integration is deprecated, it can no longer be installed.\n     */\n    lifecycleStatus: \"published\" | \"deprecated\";\n    /**\n     * Secrets are integration-wide values available in the code via environment variables formatted with a SECRET_ prefix followed by your secret name. A secret name must respect SCREAMING_SNAKE casing.\n     */\n    secrets: string[];\n    /**\n     * Optional key-value attributes from the integration definition\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetIntegrationLogsRequestHeaders {}\n\nexport interface GetIntegrationLogsRequestQuery {\n  timeStart: string;\n  timeEnd?: string;\n  level?: string;\n  userId?: string;\n  conversationId?: string;\n  messageContains?: string;\n  nextToken?: string;\n}\n\nexport interface GetIntegrationLogsRequestParams {\n  id: string;\n}\n\nexport interface GetIntegrationLogsRequestBody {}\n\nexport type GetIntegrationLogsInput = GetIntegrationLogsRequestBody & GetIntegrationLogsRequestHeaders & GetIntegrationLogsRequestQuery & GetIntegrationLogsRequestParams\n\nexport type GetIntegrationLogsRequest = {\n  headers: GetIntegrationLogsRequestHeaders;\n  query: GetIntegrationLogsRequestQuery;\n  params: GetIntegrationLogsRequestParams;\n  body: GetIntegrationLogsRequestBody;\n}\n\nexport const parseReq = (input: GetIntegrationLogsInput): GetIntegrationLogsRequest & { path: string } => {\n  return {\n    path: `/v1/admin/integrations/${encodeURIComponent(input['id'])}/logs`,\n    headers: {  },\n    query: { 'timeStart': input['timeStart'], 'timeEnd': input['timeEnd'], 'level': input['level'], 'userId': input['userId'], 'conversationId': input['conversationId'], 'messageContains': input['messageContains'], 'nextToken': input['nextToken'] },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetIntegrationLogsResponse {\n  logs: {\n    timestamp: string;\n    level: string;\n    message: string;\n    workflowId?: string;\n    userId?: string;\n    conversationId?: string;\n  }[];\n  nextToken?: string;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetIntegrationByNameRequestHeaders {}\n\nexport interface GetIntegrationByNameRequestQuery {}\n\nexport interface GetIntegrationByNameRequestParams {\n  name: string;\n  version: string;\n}\n\nexport interface GetIntegrationByNameRequestBody {}\n\nexport type GetIntegrationByNameInput = GetIntegrationByNameRequestBody & GetIntegrationByNameRequestHeaders & GetIntegrationByNameRequestQuery & GetIntegrationByNameRequestParams\n\nexport type GetIntegrationByNameRequest = {\n  headers: GetIntegrationByNameRequestHeaders;\n  query: GetIntegrationByNameRequestQuery;\n  params: GetIntegrationByNameRequestParams;\n  body: GetIntegrationByNameRequestBody;\n}\n\nexport const parseReq = (input: GetIntegrationByNameInput): GetIntegrationByNameRequest & { path: string } => {\n  return {\n    path: `/v1/admin/integrations/${encodeURIComponent(input['name'])}/${encodeURIComponent(input['version'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'name': input['name'], 'version': input['version'] },\n    body: {  },\n  }\n}\n\nexport interface GetIntegrationByNameResponse {\n  integration: {\n    /**\n     * ID of the [Integration](#schema_integration)\n     */\n    id: string;\n    /**\n     * Creation date of the [Integration](#schema_integration) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Integration](#schema_integration) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Global identifier configuration of the [Integration](#schema_integration)\n     */\n    identifier: {\n      /**\n       * VRL Script of the [Integration](#schema_integration) to handle incoming requests for a request that doesn't have an identifier\n       */\n      fallbackHandlerScript?: string;\n      /**\n       * VRL Script of the [Integration](#schema_integration) to extract the identifier from an incoming webhook often use for OAuth\n       */\n      extractScript?: string;\n    };\n    sandbox?: {\n      /**\n       * VRL Script of the [Integration](#schema_integration) to extract the identifier from an incoming webhook used specifically for the sandbox\n       */\n      identifierExtractScript?: string;\n      /**\n       * VRL Script of the [Integration](#schema_integration) to extract the message from an incoming webhook used specifically for the sandbox\n       */\n      messageExtractScript?: string;\n    };\n    /**\n     * Maximum execution time of the integration (in seconds).\n     */\n    maxExecutionTime?: number;\n    /**\n     * URL of the [Integration](#schema_integration)\n     */\n    url: string;\n    /**\n     * Signing secret of the [Integration](#schema_integration). This field is only visible when creating a new integration or when rotating the signing secret of an existing integration.\n     */\n    signingSecret: string;\n    /**\n     * Name of the [Integration](#schema_integration)\n     */\n    name: string;\n    /**\n     * Version of the [Integration](#schema_integration)\n     */\n    version: string;\n    interfaces: {\n      [k: string]: {\n        /**\n         * ID of the interface\n         */\n        id: string;\n        /**\n         * Name of the interface\n         */\n        name: string;\n        /**\n         * Version of the interface\n         */\n        version: string;\n        entities: {\n          [k: string]: {\n            name: string;\n          };\n        };\n        actions: {\n          [k: string]: {\n            name: string;\n          };\n        };\n        events: {\n          [k: string]: {\n            name: string;\n          };\n        };\n        channels: {\n          [k: string]: {\n            name: string;\n          };\n        };\n      };\n    };\n    /**\n     * Configuration definition\n     */\n    configuration: {\n      /**\n       * Title of the configuration\n       */\n      title?: string;\n      /**\n       * Description of the configuration\n       */\n      description?: string;\n      /**\n       * Identifier configuration of the [Integration](#schema_integration)\n       */\n      identifier: {\n        linkTemplateScript?: string;\n        required: boolean;\n      };\n      /**\n       * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n       */\n      schema: {\n        [k: string]: any;\n      };\n    };\n    configurations: {\n      /**\n       * Configuration definition\n       */\n      [k: string]: {\n        /**\n         * Title of the configuration\n         */\n        title?: string;\n        /**\n         * Description of the configuration\n         */\n        description?: string;\n        /**\n         * Identifier configuration of the [Integration](#schema_integration)\n         */\n        identifier: {\n          linkTemplateScript?: string;\n          required: boolean;\n        };\n        /**\n         * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n         */\n        schema: {\n          [k: string]: any;\n        };\n      };\n    };\n    channels: {\n      /**\n       * Channel definition\n       */\n      [k: string]: {\n        /**\n         * Title of the channel\n         */\n        title?: string;\n        /**\n         * Description of the channel\n         */\n        description?: string;\n        messages: {\n          /**\n           * Message definition\n           */\n          [k: string]: {\n            schema: {\n              [k: string]: any;\n            };\n          };\n        };\n        /**\n         * Conversation object configuration\n         */\n        conversation: {\n          tags: {\n            /**\n             * Definition of a tag that can be provided on the object\n             */\n            [k: string]: {\n              /**\n               * Title of the tag\n               */\n              title?: string;\n              /**\n               * Description of the tag\n               */\n              description?: string;\n            };\n          };\n          /**\n           * The conversation creation setting determines how to create a conversation through the API directly. The integration will have to implement the `createConversation` functionality to support this setting.\n           */\n          creation: {\n            /**\n             * Enable conversation creation\n             */\n            enabled: boolean;\n            /**\n             * The list of tags that are required to be specified when calling the API directly to create a conversation.\n             */\n            requiredTags: string[];\n          };\n        };\n        /**\n         * Message object configuration\n         */\n        message: {\n          tags: {\n            /**\n             * Definition of a tag that can be provided on the object\n             */\n            [k: string]: {\n              /**\n               * Title of the tag\n               */\n              title?: string;\n              /**\n               * Description of the tag\n               */\n              description?: string;\n            };\n          };\n        };\n      };\n    };\n    states: {\n      /**\n       * State definition\n       */\n      [k: string]: {\n        /**\n         * Type of the [State](#schema_state) (`conversation`, `user` or `integration`)\n         */\n        type: \"conversation\" | \"user\" | \"integration\";\n        /**\n         * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n         */\n        schema: {\n          [k: string]: any;\n        };\n      };\n    };\n    events: {\n      /**\n       * Event Definition\n       */\n      [k: string]: {\n        /**\n         * Title of the event\n         */\n        title?: string;\n        /**\n         * Description of the event\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    actions: {\n      /**\n       * Action definition\n       */\n      [k: string]: {\n        /**\n         * Title of the action\n         */\n        title?: string;\n        /**\n         * Description of the action\n         */\n        description?: string;\n        billable?: boolean;\n        cacheable?: boolean;\n        input: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        output: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    /**\n     * User object configuration\n     */\n    user: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n      /**\n       * The user creation setting determines how to create a user through the API directly. The integration will have to implement the `createUser` functionality to support this setting.\n       */\n      creation: {\n        /**\n         * Enable user creation\n         */\n        enabled: boolean;\n        /**\n         * The list of tags that are required to be specified when calling the API directly to create a user.\n         */\n        requiredTags: string[];\n      };\n    };\n    entities: {\n      /**\n       * Entity definition\n       */\n      [k: string]: {\n        /**\n         * Title of the entity\n         */\n        title?: string;\n        /**\n         * Description of the entity\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n      };\n    };\n    /**\n     * Indicates if the integration is a development integration; Dev integrations run locally\n     */\n    dev: boolean;\n    /**\n     * Title of the integration. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the integration. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the integration. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * URL of the readme of the integration. This is the readme that will be displayed in the UI\n     */\n    readmeUrl: string;\n    /**\n     * @deprecated\n     * [DEPRECATED] Indicates whether the integration is public. Please use the \"visibility\" parameter instead.\n     */\n    public: boolean;\n    /**\n     * The integration's visibility. Public integrations are available to all and cannot be updated without creating a new version. Unlisted integrations behave identically to public integrations, but they are not listed in the integration hub. By default, integrations are private and only accessible to the workspace that created them.\n     */\n    visibility: \"public\" | \"private\" | \"unlisted\";\n    /**\n     * Status of the integration version verification\n     */\n    verificationStatus: \"unapproved\" | \"pending\" | \"approved\" | \"rejected\";\n    /**\n     * The lifecycle status of the integration. When an integration is deprecated, it can no longer be installed.\n     */\n    lifecycleStatus: \"published\" | \"deprecated\";\n    /**\n     * Secrets are integration-wide values available in the code via environment variables formatted with a SECRET_ prefix followed by your secret name. A secret name must respect SCREAMING_SNAKE casing.\n     */\n    secrets: string[];\n    /**\n     * Optional key-value attributes from the integration definition\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface DeleteIntegrationRequestHeaders {}\n\nexport interface DeleteIntegrationRequestQuery {}\n\nexport interface DeleteIntegrationRequestParams {\n  id: string;\n}\n\nexport interface DeleteIntegrationRequestBody {}\n\nexport type DeleteIntegrationInput = DeleteIntegrationRequestBody & DeleteIntegrationRequestHeaders & DeleteIntegrationRequestQuery & DeleteIntegrationRequestParams\n\nexport type DeleteIntegrationRequest = {\n  headers: DeleteIntegrationRequestHeaders;\n  query: DeleteIntegrationRequestQuery;\n  params: DeleteIntegrationRequestParams;\n  body: DeleteIntegrationRequestBody;\n}\n\nexport const parseReq = (input: DeleteIntegrationInput): DeleteIntegrationRequest & { path: string } => {\n  return {\n    path: `/v1/admin/integrations/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface DeleteIntegrationResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface RequestIntegrationVerificationRequestHeaders {}\n\nexport interface RequestIntegrationVerificationRequestQuery {}\n\nexport interface RequestIntegrationVerificationRequestParams {}\n\nexport interface RequestIntegrationVerificationRequestBody {\n  integrationId: string;\n}\n\nexport type RequestIntegrationVerificationInput = RequestIntegrationVerificationRequestBody & RequestIntegrationVerificationRequestHeaders & RequestIntegrationVerificationRequestQuery & RequestIntegrationVerificationRequestParams\n\nexport type RequestIntegrationVerificationRequest = {\n  headers: RequestIntegrationVerificationRequestHeaders;\n  query: RequestIntegrationVerificationRequestQuery;\n  params: RequestIntegrationVerificationRequestParams;\n  body: RequestIntegrationVerificationRequestBody;\n}\n\nexport const parseReq = (input: RequestIntegrationVerificationInput): RequestIntegrationVerificationRequest & { path: string } => {\n  return {\n    path: `/v1/admin/integrations/request-verification`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'integrationId': input['integrationId'] },\n  }\n}\n\nexport interface RequestIntegrationVerificationResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CreateInterfaceRequestHeaders {}\n\nexport interface CreateInterfaceRequestQuery {}\n\nexport interface CreateInterfaceRequestParams {}\n\nexport interface CreateInterfaceRequestBody {\n  /**\n   * Name of the [Interface](#schema_interface)\n   */\n  name: string;\n  /**\n   * Version of the [Interface](#schema_interface)\n   */\n  version: string;\n  entities?: {\n    /**\n     * Entity definition\n     */\n    [k: string]: {\n      /**\n       * Title of the entity\n       */\n      title?: string;\n      /**\n       * Description of the entity\n       */\n      description?: string;\n      schema: {\n        [k: string]: any;\n      };\n    };\n  };\n  events?: {\n    /**\n     * Event Definition\n     */\n    [k: string]: {\n      /**\n       * Title of the event\n       */\n      title?: string;\n      /**\n       * Description of the event\n       */\n      description?: string;\n      schema: {\n        [k: string]: any;\n      };\n      /**\n       * Optional attributes\n       */\n      attributes?: {\n        [k: string]: string;\n      };\n    };\n  };\n  actions?: {\n    /**\n     * Action definition\n     */\n    [k: string]: {\n      /**\n       * Title of the action\n       */\n      title?: string;\n      /**\n       * Description of the action\n       */\n      description?: string;\n      billable?: boolean;\n      cacheable?: boolean;\n      input: {\n        schema: {\n          [k: string]: any;\n        };\n      };\n      output: {\n        schema: {\n          [k: string]: any;\n        };\n      };\n      /**\n       * Optional attributes\n       */\n      attributes?: {\n        [k: string]: string;\n      };\n    };\n  };\n  channels?: {\n    [k: string]: {\n      /**\n       * Title of the channel\n       */\n      title?: string;\n      /**\n       * Description of the channel\n       */\n      description?: string;\n      messages: {\n        /**\n         * Message definition\n         */\n        [k: string]: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n      };\n    };\n  };\n  /**\n   * Template string optionaly used at build time by integrations implementing this interface to pick a name for actions and events.\n   */\n  nameTemplate?: {\n    script: string;\n    language: string;\n  };\n  sdkVersion?: string;\n  /**\n   * Base64 encoded svg of the interface icon. This icon is global to the interface each versions will be updated when this changes.\n   */\n  icon?: string;\n  /**\n   * Base64 encoded markdown of the interface readme. The readme is specific to each interface versions.\n   */\n  readme?: string;\n  /**\n   * Title of the interface. This is the name that will be displayed in the UI\n   */\n  title?: string;\n  /**\n   * Description of the interface. This is the description that will be displayed in the UI\n   */\n  description?: string;\n  /**\n   * Indicates if the interface is public. Public interfaces are available to all and cannot be updated without creating a new version.\n   */\n  public?: boolean;\n  /**\n   * Optional key-value attributes from the interface definition\n   */\n  attributes?: {\n    [k: string]: string;\n  };\n}\n\nexport type CreateInterfaceInput = CreateInterfaceRequestBody & CreateInterfaceRequestHeaders & CreateInterfaceRequestQuery & CreateInterfaceRequestParams\n\nexport type CreateInterfaceRequest = {\n  headers: CreateInterfaceRequestHeaders;\n  query: CreateInterfaceRequestQuery;\n  params: CreateInterfaceRequestParams;\n  body: CreateInterfaceRequestBody;\n}\n\nexport const parseReq = (input: CreateInterfaceInput): CreateInterfaceRequest & { path: string } => {\n  return {\n    path: `/v1/admin/interfaces`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'name': input['name'], 'version': input['version'], 'entities': input['entities'], 'events': input['events'], 'actions': input['actions'], 'channels': input['channels'], 'nameTemplate': input['nameTemplate'], 'sdkVersion': input['sdkVersion'], 'icon': input['icon'], 'readme': input['readme'], 'title': input['title'], 'description': input['description'], 'public': input['public'], 'attributes': input['attributes'] },\n  }\n}\n\nexport interface CreateInterfaceResponse {\n  interface: {\n    /**\n     * ID of the [Interface](#schema_interface)\n     */\n    id: string;\n    /**\n     * Creation date of the [Interface](#schema_interface) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Interface](#schema_interface) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Name of the [Interface](#schema_interface)\n     */\n    name: string;\n    /**\n     * Version of the [Interface](#schema_interface)\n     */\n    version: string;\n    entities: {\n      /**\n       * Entity definition\n       */\n      [k: string]: {\n        /**\n         * Title of the entity\n         */\n        title?: string;\n        /**\n         * Description of the entity\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n      };\n    };\n    events: {\n      /**\n       * Event Definition\n       */\n      [k: string]: {\n        /**\n         * Title of the event\n         */\n        title?: string;\n        /**\n         * Description of the event\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    actions: {\n      /**\n       * Action definition\n       */\n      [k: string]: {\n        /**\n         * Title of the action\n         */\n        title?: string;\n        /**\n         * Description of the action\n         */\n        description?: string;\n        billable?: boolean;\n        cacheable?: boolean;\n        input: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        output: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    channels: {\n      [k: string]: {\n        /**\n         * Title of the channel\n         */\n        title?: string;\n        /**\n         * Description of the channel\n         */\n        description?: string;\n        messages: {\n          /**\n           * Message definition\n           */\n          [k: string]: {\n            schema: {\n              [k: string]: any;\n            };\n          };\n        };\n      };\n    };\n    /**\n     * Template string optionaly used at build time by integrations implementing this interface to pick a name for actions and events.\n     */\n    nameTemplate?: {\n      script: string;\n      language: string;\n    };\n    /**\n     * Title of the interface. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the interface. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the interface. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * URL of the readme of the interface. This is the readme that will be displayed in the UI\n     */\n    readmeUrl: string;\n    /**\n     * Indicates if the interface is public. Public interfaces are available to all and cannot be updated without creating a new version.\n     */\n    public: boolean;\n    /**\n     * Optional key-value attributes from the interface definition\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetInterfaceRequestHeaders {}\n\nexport interface GetInterfaceRequestQuery {}\n\nexport interface GetInterfaceRequestParams {\n  id: string;\n}\n\nexport interface GetInterfaceRequestBody {}\n\nexport type GetInterfaceInput = GetInterfaceRequestBody & GetInterfaceRequestHeaders & GetInterfaceRequestQuery & GetInterfaceRequestParams\n\nexport type GetInterfaceRequest = {\n  headers: GetInterfaceRequestHeaders;\n  query: GetInterfaceRequestQuery;\n  params: GetInterfaceRequestParams;\n  body: GetInterfaceRequestBody;\n}\n\nexport const parseReq = (input: GetInterfaceInput): GetInterfaceRequest & { path: string } => {\n  return {\n    path: `/v1/admin/interfaces/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetInterfaceResponse {\n  interface: {\n    /**\n     * ID of the [Interface](#schema_interface)\n     */\n    id: string;\n    /**\n     * Creation date of the [Interface](#schema_interface) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Interface](#schema_interface) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Name of the [Interface](#schema_interface)\n     */\n    name: string;\n    /**\n     * Version of the [Interface](#schema_interface)\n     */\n    version: string;\n    entities: {\n      /**\n       * Entity definition\n       */\n      [k: string]: {\n        /**\n         * Title of the entity\n         */\n        title?: string;\n        /**\n         * Description of the entity\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n      };\n    };\n    events: {\n      /**\n       * Event Definition\n       */\n      [k: string]: {\n        /**\n         * Title of the event\n         */\n        title?: string;\n        /**\n         * Description of the event\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    actions: {\n      /**\n       * Action definition\n       */\n      [k: string]: {\n        /**\n         * Title of the action\n         */\n        title?: string;\n        /**\n         * Description of the action\n         */\n        description?: string;\n        billable?: boolean;\n        cacheable?: boolean;\n        input: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        output: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    channels: {\n      [k: string]: {\n        /**\n         * Title of the channel\n         */\n        title?: string;\n        /**\n         * Description of the channel\n         */\n        description?: string;\n        messages: {\n          /**\n           * Message definition\n           */\n          [k: string]: {\n            schema: {\n              [k: string]: any;\n            };\n          };\n        };\n      };\n    };\n    /**\n     * Template string optionaly used at build time by integrations implementing this interface to pick a name for actions and events.\n     */\n    nameTemplate?: {\n      script: string;\n      language: string;\n    };\n    /**\n     * Title of the interface. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the interface. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the interface. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * URL of the readme of the interface. This is the readme that will be displayed in the UI\n     */\n    readmeUrl: string;\n    /**\n     * Indicates if the interface is public. Public interfaces are available to all and cannot be updated without creating a new version.\n     */\n    public: boolean;\n    /**\n     * Optional key-value attributes from the interface definition\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetInterfaceByNameRequestHeaders {}\n\nexport interface GetInterfaceByNameRequestQuery {}\n\nexport interface GetInterfaceByNameRequestParams {\n  name: string;\n  version: string;\n}\n\nexport interface GetInterfaceByNameRequestBody {}\n\nexport type GetInterfaceByNameInput = GetInterfaceByNameRequestBody & GetInterfaceByNameRequestHeaders & GetInterfaceByNameRequestQuery & GetInterfaceByNameRequestParams\n\nexport type GetInterfaceByNameRequest = {\n  headers: GetInterfaceByNameRequestHeaders;\n  query: GetInterfaceByNameRequestQuery;\n  params: GetInterfaceByNameRequestParams;\n  body: GetInterfaceByNameRequestBody;\n}\n\nexport const parseReq = (input: GetInterfaceByNameInput): GetInterfaceByNameRequest & { path: string } => {\n  return {\n    path: `/v1/admin/interfaces/${encodeURIComponent(input['name'])}/${encodeURIComponent(input['version'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'name': input['name'], 'version': input['version'] },\n    body: {  },\n  }\n}\n\nexport interface GetInterfaceByNameResponse {\n  interface: {\n    /**\n     * ID of the [Interface](#schema_interface)\n     */\n    id: string;\n    /**\n     * Creation date of the [Interface](#schema_interface) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Interface](#schema_interface) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Name of the [Interface](#schema_interface)\n     */\n    name: string;\n    /**\n     * Version of the [Interface](#schema_interface)\n     */\n    version: string;\n    entities: {\n      /**\n       * Entity definition\n       */\n      [k: string]: {\n        /**\n         * Title of the entity\n         */\n        title?: string;\n        /**\n         * Description of the entity\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n      };\n    };\n    events: {\n      /**\n       * Event Definition\n       */\n      [k: string]: {\n        /**\n         * Title of the event\n         */\n        title?: string;\n        /**\n         * Description of the event\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    actions: {\n      /**\n       * Action definition\n       */\n      [k: string]: {\n        /**\n         * Title of the action\n         */\n        title?: string;\n        /**\n         * Description of the action\n         */\n        description?: string;\n        billable?: boolean;\n        cacheable?: boolean;\n        input: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        output: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    channels: {\n      [k: string]: {\n        /**\n         * Title of the channel\n         */\n        title?: string;\n        /**\n         * Description of the channel\n         */\n        description?: string;\n        messages: {\n          /**\n           * Message definition\n           */\n          [k: string]: {\n            schema: {\n              [k: string]: any;\n            };\n          };\n        };\n      };\n    };\n    /**\n     * Template string optionaly used at build time by integrations implementing this interface to pick a name for actions and events.\n     */\n    nameTemplate?: {\n      script: string;\n      language: string;\n    };\n    /**\n     * Title of the interface. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the interface. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the interface. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * URL of the readme of the interface. This is the readme that will be displayed in the UI\n     */\n    readmeUrl: string;\n    /**\n     * Indicates if the interface is public. Public interfaces are available to all and cannot be updated without creating a new version.\n     */\n    public: boolean;\n    /**\n     * Optional key-value attributes from the interface definition\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface UpdateInterfaceRequestHeaders {}\n\nexport interface UpdateInterfaceRequestQuery {}\n\nexport interface UpdateInterfaceRequestParams {\n  id: string;\n}\n\nexport interface UpdateInterfaceRequestBody {\n  entities?: {\n    /**\n     * Entity definition\n     */\n    [k: string]: {\n      /**\n       * Title of the entity\n       */\n      title?: string;\n      /**\n       * Description of the entity\n       */\n      description?: string;\n      schema: {\n        [k: string]: any;\n      };\n    } | null;\n  };\n  events?: {\n    [k: string]: {\n      /**\n       * Title of the event\n       */\n      title?: string;\n      /**\n       * Description of the event\n       */\n      description?: string;\n      schema: {\n        [k: string]: any;\n      };\n      /**\n       * Optional attributes. Set attributes to null to remove them\n       */\n      attributes?: {\n        [k: string]: string | null;\n      };\n    } | null;\n  };\n  actions?: {\n    [k: string]: {\n      /**\n       * Title of the action\n       */\n      title?: string;\n      /**\n       * Description of the action\n       */\n      description?: string;\n      billable?: boolean;\n      cacheable?: boolean;\n      input: {\n        schema: {\n          [k: string]: any;\n        };\n      };\n      output: {\n        schema: {\n          [k: string]: any;\n        };\n      };\n      /**\n       * Optional attributes. Set attributes to null to remove them\n       */\n      attributes?: {\n        [k: string]: string | null;\n      };\n    } | null;\n  };\n  channels?: {\n    [k: string]: {\n      /**\n       * Title of the channel\n       */\n      title?: string;\n      /**\n       * Description of the channel\n       */\n      description?: string;\n      messages?: {\n        /**\n         * Message definition\n         */\n        [k: string]: {\n          schema: {\n            [k: string]: any;\n          };\n        } | null;\n      };\n    } | null;\n  };\n  /**\n   * Template string optionaly used at build time by integrations implementing this interface to pick a name for actions and events.\n   */\n  nameTemplate?: {\n    script: string;\n    language: string;\n  } | null;\n  sdkVersion?: string;\n  /**\n   * Base64 encoded svg of the interface icon. This icon is global to the interface each versions will be updated when this changes.\n   */\n  icon?: string;\n  /**\n   * Base64 encoded markdown of the interface readme. The readme is specific to each interface versions.\n   */\n  readme?: string;\n  /**\n   * Title of the interface. This is the name that will be displayed in the UI\n   */\n  title?: string;\n  /**\n   * Description of the interface. This is the description that will be displayed in the UI\n   */\n  description?: string;\n  /**\n   * Indicates if the interface is public. Public interfaces are available to all and cannot be updated without creating a new version.\n   */\n  public?: boolean;\n  /**\n   * Optional key-value attributes. Set attributes to null to remove them\n   */\n  attributes?: {\n    [k: string]: string | null;\n  };\n}\n\nexport type UpdateInterfaceInput = UpdateInterfaceRequestBody & UpdateInterfaceRequestHeaders & UpdateInterfaceRequestQuery & UpdateInterfaceRequestParams\n\nexport type UpdateInterfaceRequest = {\n  headers: UpdateInterfaceRequestHeaders;\n  query: UpdateInterfaceRequestQuery;\n  params: UpdateInterfaceRequestParams;\n  body: UpdateInterfaceRequestBody;\n}\n\nexport const parseReq = (input: UpdateInterfaceInput): UpdateInterfaceRequest & { path: string } => {\n  return {\n    path: `/v1/admin/interfaces/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: { 'entities': input['entities'], 'events': input['events'], 'actions': input['actions'], 'channels': input['channels'], 'nameTemplate': input['nameTemplate'], 'sdkVersion': input['sdkVersion'], 'icon': input['icon'], 'readme': input['readme'], 'title': input['title'], 'description': input['description'], 'public': input['public'], 'attributes': input['attributes'] },\n  }\n}\n\nexport interface UpdateInterfaceResponse {\n  interface: {\n    /**\n     * ID of the [Interface](#schema_interface)\n     */\n    id: string;\n    /**\n     * Creation date of the [Interface](#schema_interface) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Interface](#schema_interface) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Name of the [Interface](#schema_interface)\n     */\n    name: string;\n    /**\n     * Version of the [Interface](#schema_interface)\n     */\n    version: string;\n    entities: {\n      /**\n       * Entity definition\n       */\n      [k: string]: {\n        /**\n         * Title of the entity\n         */\n        title?: string;\n        /**\n         * Description of the entity\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n      };\n    };\n    events: {\n      /**\n       * Event Definition\n       */\n      [k: string]: {\n        /**\n         * Title of the event\n         */\n        title?: string;\n        /**\n         * Description of the event\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    actions: {\n      /**\n       * Action definition\n       */\n      [k: string]: {\n        /**\n         * Title of the action\n         */\n        title?: string;\n        /**\n         * Description of the action\n         */\n        description?: string;\n        billable?: boolean;\n        cacheable?: boolean;\n        input: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        output: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    channels: {\n      [k: string]: {\n        /**\n         * Title of the channel\n         */\n        title?: string;\n        /**\n         * Description of the channel\n         */\n        description?: string;\n        messages: {\n          /**\n           * Message definition\n           */\n          [k: string]: {\n            schema: {\n              [k: string]: any;\n            };\n          };\n        };\n      };\n    };\n    /**\n     * Template string optionaly used at build time by integrations implementing this interface to pick a name for actions and events.\n     */\n    nameTemplate?: {\n      script: string;\n      language: string;\n    };\n    /**\n     * Title of the interface. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the interface. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the interface. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * URL of the readme of the interface. This is the readme that will be displayed in the UI\n     */\n    readmeUrl: string;\n    /**\n     * Indicates if the interface is public. Public interfaces are available to all and cannot be updated without creating a new version.\n     */\n    public: boolean;\n    /**\n     * Optional key-value attributes from the interface definition\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface DeleteInterfaceRequestHeaders {}\n\nexport interface DeleteInterfaceRequestQuery {}\n\nexport interface DeleteInterfaceRequestParams {\n  id: string;\n}\n\nexport interface DeleteInterfaceRequestBody {}\n\nexport type DeleteInterfaceInput = DeleteInterfaceRequestBody & DeleteInterfaceRequestHeaders & DeleteInterfaceRequestQuery & DeleteInterfaceRequestParams\n\nexport type DeleteInterfaceRequest = {\n  headers: DeleteInterfaceRequestHeaders;\n  query: DeleteInterfaceRequestQuery;\n  params: DeleteInterfaceRequestParams;\n  body: DeleteInterfaceRequestBody;\n}\n\nexport const parseReq = (input: DeleteInterfaceInput): DeleteInterfaceRequest & { path: string } => {\n  return {\n    path: `/v1/admin/interfaces/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface DeleteInterfaceResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListInterfacesRequestHeaders {}\n\nexport interface ListInterfacesRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n  name?: string;\n  version?: string;\n}\n\nexport interface ListInterfacesRequestParams {}\n\nexport interface ListInterfacesRequestBody {}\n\nexport type ListInterfacesInput = ListInterfacesRequestBody & ListInterfacesRequestHeaders & ListInterfacesRequestQuery & ListInterfacesRequestParams\n\nexport type ListInterfacesRequest = {\n  headers: ListInterfacesRequestHeaders;\n  query: ListInterfacesRequestQuery;\n  params: ListInterfacesRequestParams;\n  body: ListInterfacesRequestBody;\n}\n\nexport const parseReq = (input: ListInterfacesInput): ListInterfacesRequest & { path: string } => {\n  return {\n    path: `/v1/admin/interfaces`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'], 'name': input['name'], 'version': input['version'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListInterfacesResponse {\n  interfaces: {\n    /**\n     * ID of the [Interface](#schema_interface)\n     */\n    id: string;\n    /**\n     * Creation date of the [Interface](#schema_interface) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Interface](#schema_interface) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Name of the [Interface](#schema_interface)\n     */\n    name: string;\n    /**\n     * Version of the [Interface](#schema_interface)\n     */\n    version: string;\n    /**\n     * Title of the interface. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the interface. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the interface. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * URL of the readme of the interface. This is the readme that will be displayed in the UI\n     */\n    readmeUrl: string;\n    /**\n     * Indicates if the interface is public. Public interfaces are available to all and cannot be updated without creating a new version.\n     */\n    public: boolean;\n  }[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CreatePluginRequestHeaders {}\n\nexport interface CreatePluginRequestQuery {}\n\nexport interface CreatePluginRequestParams {}\n\nexport interface CreatePluginRequestBody {\n  /**\n   * Name of the [Plugin](#schema_plugin)\n   */\n  name: string;\n  /**\n   * Version of the [Plugin](#schema_plugin)\n   */\n  version: string;\n  /**\n   * Configuration definition\n   */\n  configuration?: {\n    /**\n     * Title of the configuration\n     */\n    title?: string;\n    /**\n     * Description of the configuration\n     */\n    description?: string;\n    /**\n     * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n     */\n    schema: {\n      [k: string]: any;\n    };\n  };\n  states?: {\n    [k: string]: {\n      /**\n       * Type of the [State](#schema_state) (`conversation`, `user` or `bot`)\n       */\n      type: \"conversation\" | \"user\" | \"bot\";\n      /**\n       * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n       */\n      schema: {\n        [k: string]: any;\n      };\n      /**\n       * Expiry of the [State](#schema_state) in milliseconds. The state will expire if it is idle for the configured value. By default, a state doesn't expire.\n       */\n      expiry?: number;\n    };\n  };\n  events?: {\n    /**\n     * Event Definition\n     */\n    [k: string]: {\n      /**\n       * Title of the event\n       */\n      title?: string;\n      /**\n       * Description of the event\n       */\n      description?: string;\n      schema: {\n        [k: string]: any;\n      };\n      /**\n       * Optional attributes\n       */\n      attributes?: {\n        [k: string]: string;\n      };\n    };\n  };\n  actions?: {\n    /**\n     * Action definition\n     */\n    [k: string]: {\n      /**\n       * Title of the action\n       */\n      title?: string;\n      /**\n       * Description of the action\n       */\n      description?: string;\n      billable?: boolean;\n      cacheable?: boolean;\n      input: {\n        schema: {\n          [k: string]: any;\n        };\n      };\n      output: {\n        schema: {\n          [k: string]: any;\n        };\n      };\n      /**\n       * Optional attributes\n       */\n      attributes?: {\n        [k: string]: string;\n      };\n    };\n  };\n  /**\n   * User object configuration\n   */\n  user?: {\n    tags: {\n      /**\n       * Definition of a tag that can be provided on the object\n       */\n      [k: string]: {\n        /**\n         * Title of the tag\n         */\n        title?: string;\n        /**\n         * Description of the tag\n         */\n        description?: string;\n      };\n    };\n  };\n  /**\n   * Conversation object configuration\n   */\n  conversation?: {\n    tags: {\n      /**\n       * Definition of a tag that can be provided on the object\n       */\n      [k: string]: {\n        /**\n         * Title of the tag\n         */\n        title?: string;\n        /**\n         * Description of the tag\n         */\n        description?: string;\n      };\n    };\n  };\n  /**\n   * Message object configuration\n   */\n  message?: {\n    tags: {\n      /**\n       * Definition of a tag that can be provided on the object\n       */\n      [k: string]: {\n        /**\n         * Title of the tag\n         */\n        title?: string;\n        /**\n         * Description of the tag\n         */\n        description?: string;\n      };\n    };\n  };\n  sdkVersion?: string;\n  code: {\n    /**\n     * Code of plugin bundled for Node.JS\n     */\n    node: string;\n    /**\n     * Code of plugin bundled for the browser\n     */\n    browser: string;\n  };\n  /**\n   * Base64 encoded svg of the plugin icon. This icon is global to the plugin each versions will be updated when this changes.\n   */\n  icon?: string;\n  /**\n   * Base64 encoded markdown of the plugin readme. The readme is specific to each plugin versions.\n   */\n  readme?: string;\n  /**\n   * Title of the plugin. This is the name that will be displayed in the UI\n   */\n  title?: string;\n  /**\n   * Description of the plugin. This is the description that will be displayed in the UI\n   */\n  description?: string;\n  /**\n   * @deprecated\n   * [DEPRECATED] Indicates if the plugin is public. Please use the \"visibility\" parameter instead.\n   */\n  public?: boolean;\n  /**\n   * The plugin's visibility. Public plugins are available to all and cannot be updated without creating a new version. Unlisted plugins behave identically to public plugins, but they are not listed in the plugin hub. By default, plugins are private and only accessible to the workspace that created them.\n   */\n  visibility?: \"public\" | \"private\" | \"unlisted\";\n  dependencies?: {\n    /**\n     * Mapping of interface aliases to interface references\n     */\n    interfaces?: {\n      [k: string]: {\n        /**\n         * Id of the interface. If provided, \"name\" and \"version\" are ignored\n         */\n        id?: string;\n        /**\n         * Name of the interface\n         */\n        name?: string;\n        /**\n         * Version of the interface. Accepts semver versions and version ranges\n         */\n        version?: string;\n      };\n    };\n    /**\n     * Mapping of integration aliases to integration references\n     */\n    integrations?: {\n      [k: string]: {\n        /**\n         * Id of the integration. If provided, \"name\" and \"version\" are ignored\n         */\n        id?: string;\n        /**\n         * Name of the integration\n         */\n        name?: string;\n        /**\n         * Version of the integration. Accepts semver versions and version ranges\n         */\n        version?: string;\n      };\n    };\n  };\n  /**\n   * Optional key-value attributes from the plugin definition\n   */\n  attributes?: {\n    [k: string]: string;\n  };\n}\n\nexport type CreatePluginInput = CreatePluginRequestBody & CreatePluginRequestHeaders & CreatePluginRequestQuery & CreatePluginRequestParams\n\nexport type CreatePluginRequest = {\n  headers: CreatePluginRequestHeaders;\n  query: CreatePluginRequestQuery;\n  params: CreatePluginRequestParams;\n  body: CreatePluginRequestBody;\n}\n\nexport const parseReq = (input: CreatePluginInput): CreatePluginRequest & { path: string } => {\n  return {\n    path: `/v1/admin/plugins`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'name': input['name'], 'version': input['version'], 'configuration': input['configuration'], 'states': input['states'], 'events': input['events'], 'actions': input['actions'], 'user': input['user'], 'conversation': input['conversation'], 'message': input['message'], 'sdkVersion': input['sdkVersion'], 'code': input['code'], 'icon': input['icon'], 'readme': input['readme'], 'title': input['title'], 'description': input['description'], 'public': input['public'], 'visibility': input['visibility'], 'dependencies': input['dependencies'], 'attributes': input['attributes'] },\n  }\n}\n\nexport interface CreatePluginResponse {\n  plugin: {\n    /**\n     * ID of the [Plugin](#schema_plugin)\n     */\n    id: string;\n    /**\n     * Name of the [Plugin](#schema_plugin)\n     */\n    name: string;\n    /**\n     * Version of the [Plugin](#schema_plugin)\n     */\n    version: string;\n    /**\n     * Creation date of the [Plugin](#schema_plugin) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Plugin](#schema_plugin) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Configuration definition\n     */\n    configuration: {\n      /**\n       * Title of the configuration\n       */\n      title?: string;\n      /**\n       * Description of the configuration\n       */\n      description?: string;\n      /**\n       * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n       */\n      schema: {\n        [k: string]: any;\n      };\n    };\n    states: {\n      [k: string]: {\n        /**\n         * Type of the [State](#schema_state) (`conversation`, `user` or `bot`)\n         */\n        type: \"conversation\" | \"user\" | \"bot\";\n        /**\n         * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n         */\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Expiry of the [State](#schema_state) in milliseconds. The state will expire if it is idle for the configured value. By default, a state doesn't expire.\n         */\n        expiry?: number;\n      };\n    };\n    events: {\n      /**\n       * Event Definition\n       */\n      [k: string]: {\n        /**\n         * Title of the event\n         */\n        title?: string;\n        /**\n         * Description of the event\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    actions: {\n      /**\n       * Action definition\n       */\n      [k: string]: {\n        /**\n         * Title of the action\n         */\n        title?: string;\n        /**\n         * Description of the action\n         */\n        description?: string;\n        billable?: boolean;\n        cacheable?: boolean;\n        input: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        output: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    dependencies: {\n      interfaces: {\n        [k: string]: {\n          id: string;\n          name: string;\n          version: string;\n        };\n      };\n      integrations: {\n        [k: string]: {\n          id: string;\n          name: string;\n          version: string;\n        };\n      };\n    };\n    /**\n     * User object configuration\n     */\n    user: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Conversation object configuration\n     */\n    conversation: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Message object configuration\n     */\n    message: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Title of the plugin. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the plugin. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the plugin. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * URL of the readme of the plugin. This is the readme that will be displayed in the UI\n     */\n    readmeUrl: string;\n    /**\n     * @deprecated\n     * [DEPRECATED] Indicates if the plugin is public. Please use the \"visibility\" parameter instead.\n     */\n    public: boolean;\n    /**\n     * The plugin's visibility. Public plugins are available to all and cannot be updated without creating a new version. Unlisted plugins behave identically to public plugins, but they are not listed in the plugin hub. By default, plugins are private and only accessible to the workspace that created them.\n     */\n    visibility: \"public\" | \"private\" | \"unlisted\";\n    /**\n     * The lifecycle status of the plugin. When a plugin is deprecated, it can no longer be installed.\n     */\n    lifecycleStatus: \"published\" | \"deprecated\";\n    /**\n     * Optional key-value attributes from the plugin definition\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetPluginRequestHeaders {}\n\nexport interface GetPluginRequestQuery {}\n\nexport interface GetPluginRequestParams {\n  id: string;\n}\n\nexport interface GetPluginRequestBody {}\n\nexport type GetPluginInput = GetPluginRequestBody & GetPluginRequestHeaders & GetPluginRequestQuery & GetPluginRequestParams\n\nexport type GetPluginRequest = {\n  headers: GetPluginRequestHeaders;\n  query: GetPluginRequestQuery;\n  params: GetPluginRequestParams;\n  body: GetPluginRequestBody;\n}\n\nexport const parseReq = (input: GetPluginInput): GetPluginRequest & { path: string } => {\n  return {\n    path: `/v1/admin/plugins/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetPluginResponse {\n  plugin: {\n    /**\n     * ID of the [Plugin](#schema_plugin)\n     */\n    id: string;\n    /**\n     * Name of the [Plugin](#schema_plugin)\n     */\n    name: string;\n    /**\n     * Version of the [Plugin](#schema_plugin)\n     */\n    version: string;\n    /**\n     * Creation date of the [Plugin](#schema_plugin) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Plugin](#schema_plugin) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Configuration definition\n     */\n    configuration: {\n      /**\n       * Title of the configuration\n       */\n      title?: string;\n      /**\n       * Description of the configuration\n       */\n      description?: string;\n      /**\n       * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n       */\n      schema: {\n        [k: string]: any;\n      };\n    };\n    states: {\n      [k: string]: {\n        /**\n         * Type of the [State](#schema_state) (`conversation`, `user` or `bot`)\n         */\n        type: \"conversation\" | \"user\" | \"bot\";\n        /**\n         * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n         */\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Expiry of the [State](#schema_state) in milliseconds. The state will expire if it is idle for the configured value. By default, a state doesn't expire.\n         */\n        expiry?: number;\n      };\n    };\n    events: {\n      /**\n       * Event Definition\n       */\n      [k: string]: {\n        /**\n         * Title of the event\n         */\n        title?: string;\n        /**\n         * Description of the event\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    actions: {\n      /**\n       * Action definition\n       */\n      [k: string]: {\n        /**\n         * Title of the action\n         */\n        title?: string;\n        /**\n         * Description of the action\n         */\n        description?: string;\n        billable?: boolean;\n        cacheable?: boolean;\n        input: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        output: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    dependencies: {\n      interfaces: {\n        [k: string]: {\n          id: string;\n          name: string;\n          version: string;\n        };\n      };\n      integrations: {\n        [k: string]: {\n          id: string;\n          name: string;\n          version: string;\n        };\n      };\n    };\n    /**\n     * User object configuration\n     */\n    user: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Conversation object configuration\n     */\n    conversation: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Message object configuration\n     */\n    message: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Title of the plugin. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the plugin. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the plugin. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * URL of the readme of the plugin. This is the readme that will be displayed in the UI\n     */\n    readmeUrl: string;\n    /**\n     * @deprecated\n     * [DEPRECATED] Indicates if the plugin is public. Please use the \"visibility\" parameter instead.\n     */\n    public: boolean;\n    /**\n     * The plugin's visibility. Public plugins are available to all and cannot be updated without creating a new version. Unlisted plugins behave identically to public plugins, but they are not listed in the plugin hub. By default, plugins are private and only accessible to the workspace that created them.\n     */\n    visibility: \"public\" | \"private\" | \"unlisted\";\n    /**\n     * The lifecycle status of the plugin. When a plugin is deprecated, it can no longer be installed.\n     */\n    lifecycleStatus: \"published\" | \"deprecated\";\n    /**\n     * Optional key-value attributes from the plugin definition\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetDereferencedPluginRequestHeaders {}\n\nexport interface GetDereferencedPluginRequestQuery {\n  /**\n   * Mapping of interface aliases to integration IDs\n   */\n  interfaces: {\n    /**\n     * integration id\n     */\n    [k: string]: string;\n  };\n}\n\nexport interface GetDereferencedPluginRequestParams {\n  id: string;\n}\n\nexport interface GetDereferencedPluginRequestBody {}\n\nexport type GetDereferencedPluginInput = GetDereferencedPluginRequestBody & GetDereferencedPluginRequestHeaders & GetDereferencedPluginRequestQuery & GetDereferencedPluginRequestParams\n\nexport type GetDereferencedPluginRequest = {\n  headers: GetDereferencedPluginRequestHeaders;\n  query: GetDereferencedPluginRequestQuery;\n  params: GetDereferencedPluginRequestParams;\n  body: GetDereferencedPluginRequestBody;\n}\n\nexport const parseReq = (input: GetDereferencedPluginInput): GetDereferencedPluginRequest & { path: string } => {\n  return {\n    path: `/v1/admin/plugins/${encodeURIComponent(input['id'])}/dereferenced`,\n    headers: {  },\n    query: { 'interfaces': input['interfaces'] },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetDereferencedPluginResponse {\n  plugin: {\n    /**\n     * ID of the [Plugin](#schema_plugin)\n     */\n    id: string;\n    /**\n     * Name of the [Plugin](#schema_plugin)\n     */\n    name: string;\n    /**\n     * Version of the [Plugin](#schema_plugin)\n     */\n    version: string;\n    /**\n     * Creation date of the [Plugin](#schema_plugin) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Plugin](#schema_plugin) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Configuration definition\n     */\n    configuration: {\n      /**\n       * Title of the configuration\n       */\n      title?: string;\n      /**\n       * Description of the configuration\n       */\n      description?: string;\n      /**\n       * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n       */\n      schema: {\n        [k: string]: any;\n      };\n    };\n    states: {\n      [k: string]: {\n        /**\n         * Type of the [State](#schema_state) (`conversation`, `user` or `bot`)\n         */\n        type: \"conversation\" | \"user\" | \"bot\";\n        /**\n         * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n         */\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Expiry of the [State](#schema_state) in milliseconds. The state will expire if it is idle for the configured value. By default, a state doesn't expire.\n         */\n        expiry?: number;\n      };\n    };\n    events: {\n      /**\n       * Event Definition\n       */\n      [k: string]: {\n        /**\n         * Title of the event\n         */\n        title?: string;\n        /**\n         * Description of the event\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    actions: {\n      /**\n       * Action definition\n       */\n      [k: string]: {\n        /**\n         * Title of the action\n         */\n        title?: string;\n        /**\n         * Description of the action\n         */\n        description?: string;\n        billable?: boolean;\n        cacheable?: boolean;\n        input: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        output: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    dependencies: {\n      interfaces: {\n        [k: string]: {\n          id: string;\n          name: string;\n          version: string;\n        };\n      };\n      integrations: {\n        [k: string]: {\n          id: string;\n          name: string;\n          version: string;\n        };\n      };\n    };\n    /**\n     * User object configuration\n     */\n    user: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Conversation object configuration\n     */\n    conversation: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Message object configuration\n     */\n    message: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Title of the plugin. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the plugin. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the plugin. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * URL of the readme of the plugin. This is the readme that will be displayed in the UI\n     */\n    readmeUrl: string;\n    /**\n     * @deprecated\n     * [DEPRECATED] Indicates if the plugin is public. Please use the \"visibility\" parameter instead.\n     */\n    public: boolean;\n    /**\n     * The plugin's visibility. Public plugins are available to all and cannot be updated without creating a new version. Unlisted plugins behave identically to public plugins, but they are not listed in the plugin hub. By default, plugins are private and only accessible to the workspace that created them.\n     */\n    visibility: \"public\" | \"private\" | \"unlisted\";\n    /**\n     * The lifecycle status of the plugin. When a plugin is deprecated, it can no longer be installed.\n     */\n    lifecycleStatus: \"published\" | \"deprecated\";\n    /**\n     * Optional key-value attributes from the plugin definition\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetPluginByNameRequestHeaders {}\n\nexport interface GetPluginByNameRequestQuery {}\n\nexport interface GetPluginByNameRequestParams {\n  name: string;\n  version: string;\n}\n\nexport interface GetPluginByNameRequestBody {}\n\nexport type GetPluginByNameInput = GetPluginByNameRequestBody & GetPluginByNameRequestHeaders & GetPluginByNameRequestQuery & GetPluginByNameRequestParams\n\nexport type GetPluginByNameRequest = {\n  headers: GetPluginByNameRequestHeaders;\n  query: GetPluginByNameRequestQuery;\n  params: GetPluginByNameRequestParams;\n  body: GetPluginByNameRequestBody;\n}\n\nexport const parseReq = (input: GetPluginByNameInput): GetPluginByNameRequest & { path: string } => {\n  return {\n    path: `/v1/admin/plugins/${encodeURIComponent(input['name'])}/${encodeURIComponent(input['version'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'name': input['name'], 'version': input['version'] },\n    body: {  },\n  }\n}\n\nexport interface GetPluginByNameResponse {\n  plugin: {\n    /**\n     * ID of the [Plugin](#schema_plugin)\n     */\n    id: string;\n    /**\n     * Name of the [Plugin](#schema_plugin)\n     */\n    name: string;\n    /**\n     * Version of the [Plugin](#schema_plugin)\n     */\n    version: string;\n    /**\n     * Creation date of the [Plugin](#schema_plugin) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Plugin](#schema_plugin) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Configuration definition\n     */\n    configuration: {\n      /**\n       * Title of the configuration\n       */\n      title?: string;\n      /**\n       * Description of the configuration\n       */\n      description?: string;\n      /**\n       * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n       */\n      schema: {\n        [k: string]: any;\n      };\n    };\n    states: {\n      [k: string]: {\n        /**\n         * Type of the [State](#schema_state) (`conversation`, `user` or `bot`)\n         */\n        type: \"conversation\" | \"user\" | \"bot\";\n        /**\n         * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n         */\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Expiry of the [State](#schema_state) in milliseconds. The state will expire if it is idle for the configured value. By default, a state doesn't expire.\n         */\n        expiry?: number;\n      };\n    };\n    events: {\n      /**\n       * Event Definition\n       */\n      [k: string]: {\n        /**\n         * Title of the event\n         */\n        title?: string;\n        /**\n         * Description of the event\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    actions: {\n      /**\n       * Action definition\n       */\n      [k: string]: {\n        /**\n         * Title of the action\n         */\n        title?: string;\n        /**\n         * Description of the action\n         */\n        description?: string;\n        billable?: boolean;\n        cacheable?: boolean;\n        input: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        output: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    dependencies: {\n      interfaces: {\n        [k: string]: {\n          id: string;\n          name: string;\n          version: string;\n        };\n      };\n      integrations: {\n        [k: string]: {\n          id: string;\n          name: string;\n          version: string;\n        };\n      };\n    };\n    /**\n     * User object configuration\n     */\n    user: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Conversation object configuration\n     */\n    conversation: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Message object configuration\n     */\n    message: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Title of the plugin. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the plugin. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the plugin. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * URL of the readme of the plugin. This is the readme that will be displayed in the UI\n     */\n    readmeUrl: string;\n    /**\n     * @deprecated\n     * [DEPRECATED] Indicates if the plugin is public. Please use the \"visibility\" parameter instead.\n     */\n    public: boolean;\n    /**\n     * The plugin's visibility. Public plugins are available to all and cannot be updated without creating a new version. Unlisted plugins behave identically to public plugins, but they are not listed in the plugin hub. By default, plugins are private and only accessible to the workspace that created them.\n     */\n    visibility: \"public\" | \"private\" | \"unlisted\";\n    /**\n     * The lifecycle status of the plugin. When a plugin is deprecated, it can no longer be installed.\n     */\n    lifecycleStatus: \"published\" | \"deprecated\";\n    /**\n     * Optional key-value attributes from the plugin definition\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface UpdatePluginRequestHeaders {}\n\nexport interface UpdatePluginRequestQuery {}\n\nexport interface UpdatePluginRequestParams {\n  id: string;\n}\n\nexport interface UpdatePluginRequestBody {\n  /**\n   * Configuration definition\n   */\n  configuration?: {\n    /**\n     * Title of the configuration\n     */\n    title?: string;\n    /**\n     * Description of the configuration\n     */\n    description?: string;\n    /**\n     * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n     */\n    schema: {\n      [k: string]: any;\n    };\n  } | null;\n  states?: {\n    [k: string]: {\n      /**\n       * Type of the [State](#schema_state) (`conversation`, `user` or `bot`)\n       */\n      type: \"conversation\" | \"user\" | \"bot\";\n      /**\n       * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n       */\n      schema: {\n        [k: string]: any;\n      };\n      /**\n       * Expiry of the [State](#schema_state) in milliseconds. The state will expire if it is idle for the configured value. By default, a state doesn't expire.\n       */\n      expiry?: number;\n    } | null;\n  };\n  events?: {\n    [k: string]: {\n      /**\n       * Title of the event\n       */\n      title?: string;\n      /**\n       * Description of the event\n       */\n      description?: string;\n      schema: {\n        [k: string]: any;\n      };\n      /**\n       * Optional attributes. Set attributes to null to remove them\n       */\n      attributes?: {\n        [k: string]: string | null;\n      };\n    } | null;\n  };\n  actions?: {\n    [k: string]: {\n      /**\n       * Title of the action\n       */\n      title?: string;\n      /**\n       * Description of the action\n       */\n      description?: string;\n      billable?: boolean;\n      cacheable?: boolean;\n      input: {\n        schema: {\n          [k: string]: any;\n        };\n      };\n      output: {\n        schema: {\n          [k: string]: any;\n        };\n      };\n      /**\n       * Optional attributes. Set attributes to null to remove them\n       */\n      attributes?: {\n        [k: string]: string | null;\n      };\n    } | null;\n  };\n  user?: {\n    tags: {\n      /**\n       * Definition of a tag that can be provided on the object\n       */\n      [k: string]: {\n        /**\n         * Title of the tag\n         */\n        title?: string;\n        /**\n         * Description of the tag\n         */\n        description?: string;\n      } | null;\n    };\n  };\n  conversation?: {\n    tags: {\n      /**\n       * Definition of a tag that can be provided on the object\n       */\n      [k: string]: {\n        /**\n         * Title of the tag\n         */\n        title?: string;\n        /**\n         * Description of the tag\n         */\n        description?: string;\n      } | null;\n    };\n  };\n  message?: {\n    tags: {\n      /**\n       * Definition of a tag that can be provided on the object\n       */\n      [k: string]: {\n        /**\n         * Title of the tag\n         */\n        title?: string;\n        /**\n         * Description of the tag\n         */\n        description?: string;\n      } | null;\n    };\n  };\n  sdkVersion?: string;\n  code?: {\n    /**\n     * Code of plugin bundled for Node.JS\n     */\n    node?: string;\n    /**\n     * Code of plugin bundled for the browser\n     */\n    browser?: string;\n  };\n  /**\n   * Base64 encoded svg of the plugin icon. This icon is global to the plugin each versions will be updated when this changes.\n   */\n  icon?: string;\n  /**\n   * Base64 encoded markdown of the plugin readme. The readme is specific to each plugin versions.\n   */\n  readme?: string;\n  /**\n   * Title of the plugin. This is the name that will be displayed in the UI\n   */\n  title?: string;\n  /**\n   * Description of the plugin. This is the description that will be displayed in the UI\n   */\n  description?: string;\n  /**\n   * @deprecated\n   * [DEPRECATED] Indicates if the plugin is public. Please use the \"visibility\" parameter instead.\n   */\n  public?: boolean;\n  /**\n   * The plugin's visibility. Public plugins are available to all and cannot be updated without creating a new version. Unlisted plugins behave identically to public plugins, but they are not listed in the plugin hub. By default, plugins are private and only accessible to the workspace that created them.\n   */\n  visibility?: \"public\" | \"private\" | \"unlisted\";\n  dependencies?: {\n    /**\n     * Mapping of interface aliases to interface references\n     */\n    interfaces?: {\n      [k: string]: {\n        /**\n         * Id of the interface. If provided, \"name\" and \"version\" are ignored\n         */\n        id?: string;\n        /**\n         * Name of the interface\n         */\n        name?: string;\n        /**\n         * Version of the interface. Accepts semver versions and version ranges\n         */\n        version?: string;\n      } | null;\n    };\n    /**\n     * Mapping of integration aliases to integration references\n     */\n    integrations?: {\n      [k: string]: {\n        /**\n         * Id of the integration. If provided, \"name\" and \"version\" are ignored\n         */\n        id?: string;\n        /**\n         * Name of the integration\n         */\n        name?: string;\n        /**\n         * Version of the integration. Accepts semver versions and version ranges\n         */\n        version?: string;\n      } | null;\n    };\n  };\n  /**\n   * Optional key-value attributes. Set attributes to null to remove them\n   */\n  attributes?: {\n    [k: string]: string | null;\n  };\n}\n\nexport type UpdatePluginInput = UpdatePluginRequestBody & UpdatePluginRequestHeaders & UpdatePluginRequestQuery & UpdatePluginRequestParams\n\nexport type UpdatePluginRequest = {\n  headers: UpdatePluginRequestHeaders;\n  query: UpdatePluginRequestQuery;\n  params: UpdatePluginRequestParams;\n  body: UpdatePluginRequestBody;\n}\n\nexport const parseReq = (input: UpdatePluginInput): UpdatePluginRequest & { path: string } => {\n  return {\n    path: `/v1/admin/plugins/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: { 'configuration': input['configuration'], 'states': input['states'], 'events': input['events'], 'actions': input['actions'], 'user': input['user'], 'conversation': input['conversation'], 'message': input['message'], 'sdkVersion': input['sdkVersion'], 'code': input['code'], 'icon': input['icon'], 'readme': input['readme'], 'title': input['title'], 'description': input['description'], 'public': input['public'], 'visibility': input['visibility'], 'dependencies': input['dependencies'], 'attributes': input['attributes'] },\n  }\n}\n\nexport interface UpdatePluginResponse {\n  plugin: {\n    /**\n     * ID of the [Plugin](#schema_plugin)\n     */\n    id: string;\n    /**\n     * Name of the [Plugin](#schema_plugin)\n     */\n    name: string;\n    /**\n     * Version of the [Plugin](#schema_plugin)\n     */\n    version: string;\n    /**\n     * Creation date of the [Plugin](#schema_plugin) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Plugin](#schema_plugin) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Configuration definition\n     */\n    configuration: {\n      /**\n       * Title of the configuration\n       */\n      title?: string;\n      /**\n       * Description of the configuration\n       */\n      description?: string;\n      /**\n       * Schema of the configuration in the `JSON schema` format. The configuration data is validated against this `JSON schema`.\n       */\n      schema: {\n        [k: string]: any;\n      };\n    };\n    states: {\n      [k: string]: {\n        /**\n         * Type of the [State](#schema_state) (`conversation`, `user` or `bot`)\n         */\n        type: \"conversation\" | \"user\" | \"bot\";\n        /**\n         * Schema of the [State](#schema_state) in the `JSON schema` format. This `JSON schema` is going to be used for validating the state data.\n         */\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Expiry of the [State](#schema_state) in milliseconds. The state will expire if it is idle for the configured value. By default, a state doesn't expire.\n         */\n        expiry?: number;\n      };\n    };\n    events: {\n      /**\n       * Event Definition\n       */\n      [k: string]: {\n        /**\n         * Title of the event\n         */\n        title?: string;\n        /**\n         * Description of the event\n         */\n        description?: string;\n        schema: {\n          [k: string]: any;\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    actions: {\n      /**\n       * Action definition\n       */\n      [k: string]: {\n        /**\n         * Title of the action\n         */\n        title?: string;\n        /**\n         * Description of the action\n         */\n        description?: string;\n        billable?: boolean;\n        cacheable?: boolean;\n        input: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        output: {\n          schema: {\n            [k: string]: any;\n          };\n        };\n        /**\n         * Optional attributes\n         */\n        attributes?: {\n          [k: string]: string;\n        };\n      };\n    };\n    dependencies: {\n      interfaces: {\n        [k: string]: {\n          id: string;\n          name: string;\n          version: string;\n        };\n      };\n      integrations: {\n        [k: string]: {\n          id: string;\n          name: string;\n          version: string;\n        };\n      };\n    };\n    /**\n     * User object configuration\n     */\n    user: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Conversation object configuration\n     */\n    conversation: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Message object configuration\n     */\n    message: {\n      tags: {\n        /**\n         * Definition of a tag that can be provided on the object\n         */\n        [k: string]: {\n          /**\n           * Title of the tag\n           */\n          title?: string;\n          /**\n           * Description of the tag\n           */\n          description?: string;\n        };\n      };\n    };\n    /**\n     * Title of the plugin. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the plugin. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the plugin. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * URL of the readme of the plugin. This is the readme that will be displayed in the UI\n     */\n    readmeUrl: string;\n    /**\n     * @deprecated\n     * [DEPRECATED] Indicates if the plugin is public. Please use the \"visibility\" parameter instead.\n     */\n    public: boolean;\n    /**\n     * The plugin's visibility. Public plugins are available to all and cannot be updated without creating a new version. Unlisted plugins behave identically to public plugins, but they are not listed in the plugin hub. By default, plugins are private and only accessible to the workspace that created them.\n     */\n    visibility: \"public\" | \"private\" | \"unlisted\";\n    /**\n     * The lifecycle status of the plugin. When a plugin is deprecated, it can no longer be installed.\n     */\n    lifecycleStatus: \"published\" | \"deprecated\";\n    /**\n     * Optional key-value attributes from the plugin definition\n     */\n    attributes?: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface DeletePluginRequestHeaders {}\n\nexport interface DeletePluginRequestQuery {}\n\nexport interface DeletePluginRequestParams {\n  id: string;\n}\n\nexport interface DeletePluginRequestBody {}\n\nexport type DeletePluginInput = DeletePluginRequestBody & DeletePluginRequestHeaders & DeletePluginRequestQuery & DeletePluginRequestParams\n\nexport type DeletePluginRequest = {\n  headers: DeletePluginRequestHeaders;\n  query: DeletePluginRequestQuery;\n  params: DeletePluginRequestParams;\n  body: DeletePluginRequestBody;\n}\n\nexport const parseReq = (input: DeletePluginInput): DeletePluginRequest & { path: string } => {\n  return {\n    path: `/v1/admin/plugins/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface DeletePluginResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListPluginsRequestHeaders {}\n\nexport interface ListPluginsRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n  name?: string;\n  version?: string;\n}\n\nexport interface ListPluginsRequestParams {}\n\nexport interface ListPluginsRequestBody {}\n\nexport type ListPluginsInput = ListPluginsRequestBody & ListPluginsRequestHeaders & ListPluginsRequestQuery & ListPluginsRequestParams\n\nexport type ListPluginsRequest = {\n  headers: ListPluginsRequestHeaders;\n  query: ListPluginsRequestQuery;\n  params: ListPluginsRequestParams;\n  body: ListPluginsRequestBody;\n}\n\nexport const parseReq = (input: ListPluginsInput): ListPluginsRequest & { path: string } => {\n  return {\n    path: `/v1/admin/plugins`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'], 'name': input['name'], 'version': input['version'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListPluginsResponse {\n  plugins: {\n    /**\n     * ID of the [Plugin](#schema_plugin)\n     */\n    id: string;\n    /**\n     * Creation date of the [Plugin](#schema_plugin) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Plugin](#schema_plugin) in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Name of the [Plugin](#schema_plugin)\n     */\n    name: string;\n    /**\n     * Version of the [Plugin](#schema_plugin)\n     */\n    version: string;\n    /**\n     * Title of the plugin. This is the name that will be displayed in the UI\n     */\n    title: string;\n    /**\n     * Description of the plugin. This is the description that will be displayed in the UI\n     */\n    description: string;\n    /**\n     * URL of the icon of the plugin. This is the icon that will be displayed in the UI\n     */\n    iconUrl: string;\n    /**\n     * URL of the readme of the plugin. This is the readme that will be displayed in the UI\n     */\n    readmeUrl: string;\n    /**\n     * @deprecated\n     * [DEPRECATED] Indicates if the plugin is public. Please use the \"visibility\" parameter instead.\n     */\n    public: boolean;\n    /**\n     * The plugin's visibility. Public plugins are available to all and cannot be updated without creating a new version. Unlisted plugins behave identically to public plugins, but they are not listed in the plugin hub. By default, plugins are private and only accessible to the workspace that created them.\n     */\n    visibility: \"public\" | \"private\" | \"unlisted\";\n    /**\n     * The lifecycle status of the plugin. When a plugin is deprecated, it can no longer be installed.\n     */\n    lifecycleStatus: \"published\" | \"deprecated\";\n  }[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetPluginCodeRequestHeaders {}\n\nexport interface GetPluginCodeRequestQuery {}\n\nexport interface GetPluginCodeRequestParams {\n  id: string;\n  platform: \"node\" | \"browser\";\n}\n\nexport interface GetPluginCodeRequestBody {}\n\nexport type GetPluginCodeInput = GetPluginCodeRequestBody & GetPluginCodeRequestHeaders & GetPluginCodeRequestQuery & GetPluginCodeRequestParams\n\nexport type GetPluginCodeRequest = {\n  headers: GetPluginCodeRequestHeaders;\n  query: GetPluginCodeRequestQuery;\n  params: GetPluginCodeRequestParams;\n  body: GetPluginCodeRequestBody;\n}\n\nexport const parseReq = (input: GetPluginCodeInput): GetPluginCodeRequest & { path: string } => {\n  return {\n    path: `/v1/admin/plugins/${encodeURIComponent(input['id'])}/code/${encodeURIComponent(input['platform'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'], 'platform': input['platform'] },\n    body: {  },\n  }\n}\n\nexport interface GetPluginCodeResponse {\n  code: string;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetUsageRequestHeaders {}\n\nexport interface GetUsageRequestQuery {\n  type:\n    | \"invocation_timeout\"\n    | \"invocation_calls\"\n    | \"storage_count\"\n    | \"bot_count\"\n    | \"knowledgebase_vector_storage\"\n    | \"workspace_ratelimit\"\n    | \"table_row_count\"\n    | \"workspace_member_count\"\n    | \"integrations_owned_count\"\n    | \"ai_spend\"\n    | \"openai_spend\"\n    | \"bing_search_spend\"\n    | \"always_alive\"\n    | \"indexed_file_count\"\n    | \"file_max_size_bytes\";\n  period?: string;\n}\n\nexport interface GetUsageRequestParams {\n  id: string;\n}\n\nexport interface GetUsageRequestBody {}\n\nexport type GetUsageInput = GetUsageRequestBody & GetUsageRequestHeaders & GetUsageRequestQuery & GetUsageRequestParams\n\nexport type GetUsageRequest = {\n  headers: GetUsageRequestHeaders;\n  query: GetUsageRequestQuery;\n  params: GetUsageRequestParams;\n  body: GetUsageRequestBody;\n}\n\nexport const parseReq = (input: GetUsageInput): GetUsageRequest & { path: string } => {\n  return {\n    path: `/v1/admin/usages/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: { 'type': input['type'], 'period': input['period'] },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetUsageResponse {\n  usage: {\n    /**\n     * Id of the usage that it is linked to. It can either be a workspace id or a bot id\n     */\n    id: string;\n    /**\n     * Period of the quota that it is applied to\n     */\n    period: string;\n    /**\n     * Value of the current usage\n     */\n    value: number;\n    /**\n     * Quota of the current usage\n     */\n    quota: number;\n    /**\n     * Usage type that can be used\n     */\n    type:\n      | \"invocation_timeout\"\n      | \"invocation_calls\"\n      | \"storage_count\"\n      | \"bot_count\"\n      | \"knowledgebase_vector_storage\"\n      | \"workspace_ratelimit\"\n      | \"table_row_count\"\n      | \"workspace_member_count\"\n      | \"integrations_owned_count\"\n      | \"ai_spend\"\n      | \"openai_spend\"\n      | \"bing_search_spend\"\n      | \"always_alive\"\n      | \"indexed_file_count\"\n      | \"file_max_size_bytes\";\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetMultipleUsagesRequestHeaders {}\n\nexport interface GetMultipleUsagesRequestQuery {\n  types: string[];\n  ids: string[];\n  period?: string;\n}\n\nexport interface GetMultipleUsagesRequestParams {}\n\nexport interface GetMultipleUsagesRequestBody {}\n\nexport type GetMultipleUsagesInput = GetMultipleUsagesRequestBody & GetMultipleUsagesRequestHeaders & GetMultipleUsagesRequestQuery & GetMultipleUsagesRequestParams\n\nexport type GetMultipleUsagesRequest = {\n  headers: GetMultipleUsagesRequestHeaders;\n  query: GetMultipleUsagesRequestQuery;\n  params: GetMultipleUsagesRequestParams;\n  body: GetMultipleUsagesRequestBody;\n}\n\nexport const parseReq = (input: GetMultipleUsagesInput): GetMultipleUsagesRequest & { path: string } => {\n  return {\n    path: `/v1/admin/usages/multiple`,\n    headers: {  },\n    query: { 'types': input['types'], 'ids': input['ids'], 'period': input['period'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface GetMultipleUsagesResponse {\n  usages: {\n    /**\n     * Id of the usage that it is linked to. It can either be a workspace id or a bot id\n     */\n    id: string;\n    /**\n     * Period of the quota that it is applied to\n     */\n    period: string;\n    /**\n     * Value of the current usage\n     */\n    value: number;\n    /**\n     * Quota of the current usage\n     */\n    quota: number;\n    /**\n     * Usage type that can be used\n     */\n    type:\n      | \"invocation_timeout\"\n      | \"invocation_calls\"\n      | \"storage_count\"\n      | \"bot_count\"\n      | \"knowledgebase_vector_storage\"\n      | \"workspace_ratelimit\"\n      | \"table_row_count\"\n      | \"workspace_member_count\"\n      | \"integrations_owned_count\"\n      | \"ai_spend\"\n      | \"openai_spend\"\n      | \"bing_search_spend\"\n      | \"always_alive\"\n      | \"indexed_file_count\"\n      | \"file_max_size_bytes\";\n  }[];\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListUsageHistoryRequestHeaders {}\n\nexport interface ListUsageHistoryRequestQuery {\n  type:\n    | \"invocation_timeout\"\n    | \"invocation_calls\"\n    | \"storage_count\"\n    | \"bot_count\"\n    | \"knowledgebase_vector_storage\"\n    | \"workspace_ratelimit\"\n    | \"table_row_count\"\n    | \"workspace_member_count\"\n    | \"integrations_owned_count\"\n    | \"ai_spend\"\n    | \"openai_spend\"\n    | \"bing_search_spend\"\n    | \"always_alive\"\n    | \"indexed_file_count\"\n    | \"file_max_size_bytes\";\n}\n\nexport interface ListUsageHistoryRequestParams {\n  id: string;\n}\n\nexport interface ListUsageHistoryRequestBody {}\n\nexport type ListUsageHistoryInput = ListUsageHistoryRequestBody & ListUsageHistoryRequestHeaders & ListUsageHistoryRequestQuery & ListUsageHistoryRequestParams\n\nexport type ListUsageHistoryRequest = {\n  headers: ListUsageHistoryRequestHeaders;\n  query: ListUsageHistoryRequestQuery;\n  params: ListUsageHistoryRequestParams;\n  body: ListUsageHistoryRequestBody;\n}\n\nexport const parseReq = (input: ListUsageHistoryInput): ListUsageHistoryRequest & { path: string } => {\n  return {\n    path: `/v1/admin/usages/${encodeURIComponent(input['id'])}/history`,\n    headers: {  },\n    query: { 'type': input['type'] },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface ListUsageHistoryResponse {\n  usages: {\n    /**\n     * Id of the usage that it is linked to. It can either be a workspace id or a bot id\n     */\n    id: string;\n    /**\n     * Period of the quota that it is applied to\n     */\n    period: string;\n    /**\n     * Value of the current usage\n     */\n    value: number;\n    /**\n     * Quota of the current usage\n     */\n    quota: number;\n    /**\n     * Usage type that can be used\n     */\n    type:\n      | \"invocation_timeout\"\n      | \"invocation_calls\"\n      | \"storage_count\"\n      | \"bot_count\"\n      | \"knowledgebase_vector_storage\"\n      | \"workspace_ratelimit\"\n      | \"table_row_count\"\n      | \"workspace_member_count\"\n      | \"integrations_owned_count\"\n      | \"ai_spend\"\n      | \"openai_spend\"\n      | \"bing_search_spend\"\n      | \"always_alive\"\n      | \"indexed_file_count\"\n      | \"file_max_size_bytes\";\n  }[];\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListUsageActivityRequestHeaders {}\n\nexport interface ListUsageActivityRequestQuery {\n  type:\n    | \"invocation_timeout\"\n    | \"invocation_calls\"\n    | \"storage_count\"\n    | \"bot_count\"\n    | \"knowledgebase_vector_storage\"\n    | \"workspace_ratelimit\"\n    | \"table_row_count\"\n    | \"workspace_member_count\"\n    | \"integrations_owned_count\"\n    | \"ai_spend\"\n    | \"openai_spend\"\n    | \"bing_search_spend\"\n    | \"always_alive\"\n    | \"indexed_file_count\"\n    | \"file_max_size_bytes\";\n  timestampFrom?: string;\n  timestampUntil?: string;\n  nextToken?: string;\n  pageSize?: number;\n}\n\nexport interface ListUsageActivityRequestParams {\n  id: string;\n}\n\nexport interface ListUsageActivityRequestBody {}\n\nexport type ListUsageActivityInput = ListUsageActivityRequestBody & ListUsageActivityRequestHeaders & ListUsageActivityRequestQuery & ListUsageActivityRequestParams\n\nexport type ListUsageActivityRequest = {\n  headers: ListUsageActivityRequestHeaders;\n  query: ListUsageActivityRequestQuery;\n  params: ListUsageActivityRequestParams;\n  body: ListUsageActivityRequestBody;\n}\n\nexport const parseReq = (input: ListUsageActivityInput): ListUsageActivityRequest & { path: string } => {\n  return {\n    path: `/v1/admin/usages/${encodeURIComponent(input['id'])}/activity`,\n    headers: {  },\n    query: { 'type': input['type'], 'timestampFrom': input['timestampFrom'], 'timestampUntil': input['timestampUntil'], 'nextToken': input['nextToken'], 'pageSize': input['pageSize'] },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface ListUsageActivityResponse {\n  data: {\n    timestamp: string;\n    value: number;\n    period: string;\n    metadata: {\n      [k: string]: any | null;\n    };\n  }[];\n  meta: {\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListUsageActivityDailyRequestHeaders {}\n\nexport interface ListUsageActivityDailyRequestQuery {\n  type:\n    | \"invocation_timeout\"\n    | \"invocation_calls\"\n    | \"storage_count\"\n    | \"bot_count\"\n    | \"knowledgebase_vector_storage\"\n    | \"workspace_ratelimit\"\n    | \"table_row_count\"\n    | \"workspace_member_count\"\n    | \"integrations_owned_count\"\n    | \"ai_spend\"\n    | \"openai_spend\"\n    | \"bing_search_spend\"\n    | \"always_alive\"\n    | \"indexed_file_count\"\n    | \"file_max_size_bytes\";\n  dateFrom?: string;\n  dateUntil?: string;\n  nextToken?: string;\n  pageSize?: number;\n}\n\nexport interface ListUsageActivityDailyRequestParams {\n  id: string;\n}\n\nexport interface ListUsageActivityDailyRequestBody {}\n\nexport type ListUsageActivityDailyInput = ListUsageActivityDailyRequestBody & ListUsageActivityDailyRequestHeaders & ListUsageActivityDailyRequestQuery & ListUsageActivityDailyRequestParams\n\nexport type ListUsageActivityDailyRequest = {\n  headers: ListUsageActivityDailyRequestHeaders;\n  query: ListUsageActivityDailyRequestQuery;\n  params: ListUsageActivityDailyRequestParams;\n  body: ListUsageActivityDailyRequestBody;\n}\n\nexport const parseReq = (input: ListUsageActivityDailyInput): ListUsageActivityDailyRequest & { path: string } => {\n  return {\n    path: `/v1/admin/usages/${encodeURIComponent(input['id'])}/daily-activity`,\n    headers: {  },\n    query: { 'type': input['type'], 'dateFrom': input['dateFrom'], 'dateUntil': input['dateUntil'], 'nextToken': input['nextToken'], 'pageSize': input['pageSize'] },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface ListUsageActivityDailyResponse {\n  data: {\n    key: string;\n    date: string;\n    value: number;\n    metadata?: {\n      botId: string;\n      type: \"IntegrationAction\" | \"FileIndexing\" | \"BingSearch\" | \"WebSearch\";\n      subtype?: string;\n      source?: string;\n    };\n  }[];\n  meta: {\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ChangeAispendQuotaRequestHeaders {}\n\nexport interface ChangeAispendQuotaRequestQuery {}\n\nexport interface ChangeAispendQuotaRequestParams {}\n\nexport interface ChangeAispendQuotaRequestBody {\n  monthlySpendingLimit: number;\n}\n\nexport type ChangeAispendQuotaInput = ChangeAispendQuotaRequestBody & ChangeAispendQuotaRequestHeaders & ChangeAispendQuotaRequestQuery & ChangeAispendQuotaRequestParams\n\nexport type ChangeAispendQuotaRequest = {\n  headers: ChangeAispendQuotaRequestHeaders;\n  query: ChangeAispendQuotaRequestQuery;\n  params: ChangeAispendQuotaRequestParams;\n  body: ChangeAispendQuotaRequestBody;\n}\n\nexport const parseReq = (input: ChangeAispendQuotaInput): ChangeAispendQuotaRequest & { path: string } => {\n  return {\n    path: `/v1/admin/quotas/ai-spend`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'monthlySpendingLimit': input['monthlySpendingLimit'] },\n  }\n}\n\nexport interface ChangeAispendQuotaResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListActivitiesRequestHeaders {}\n\nexport interface ListActivitiesRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n  taskId: string;\n  botId: string;\n}\n\nexport interface ListActivitiesRequestParams {}\n\nexport interface ListActivitiesRequestBody {}\n\nexport type ListActivitiesInput = ListActivitiesRequestBody & ListActivitiesRequestHeaders & ListActivitiesRequestQuery & ListActivitiesRequestParams\n\nexport type ListActivitiesRequest = {\n  headers: ListActivitiesRequestHeaders;\n  query: ListActivitiesRequestQuery;\n  params: ListActivitiesRequestParams;\n  body: ListActivitiesRequestBody;\n}\n\nexport const parseReq = (input: ListActivitiesInput): ListActivitiesRequest & { path: string } => {\n  return {\n    path: `/v1/admin/activities`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'], 'taskId': input['taskId'], 'botId': input['botId'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListActivitiesResponse {\n  activities: {\n    id: string;\n    description: string;\n    taskId: string;\n    category:\n      | \"unknown\"\n      | \"capture\"\n      | \"bot_message\"\n      | \"user_message\"\n      | \"agent_message\"\n      | \"event\"\n      | \"action\"\n      | \"task_status\"\n      | \"subtask_status\"\n      | \"exception\";\n    data: {\n      [k: string]: any;\n    };\n    /**\n     * Creation date of the activity in ISO 8601 format\n     */\n    createdAt: string;\n  }[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface IntrospectRequestHeaders {}\n\nexport interface IntrospectRequestQuery {}\n\nexport interface IntrospectRequestParams {}\n\nexport interface IntrospectRequestBody {\n  botId: string;\n}\n\nexport type IntrospectInput = IntrospectRequestBody & IntrospectRequestHeaders & IntrospectRequestQuery & IntrospectRequestParams\n\nexport type IntrospectRequest = {\n  headers: IntrospectRequestHeaders;\n  query: IntrospectRequestQuery;\n  params: IntrospectRequestParams;\n  body: IntrospectRequestBody;\n}\n\nexport const parseReq = (input: IntrospectInput): IntrospectRequest & { path: string } => {\n  return {\n    path: `/v1/admin/introspect`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'botId': input['botId'] },\n  }\n}\n\nexport interface IntrospectResponse {\n  workspaceId: string;\n  botId: string;\n  userId: string;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface UpsertFileRequestHeaders {}\n\nexport interface UpsertFileRequestQuery {}\n\nexport interface UpsertFileRequestParams {}\n\nexport interface UpsertFileRequestBody {\n  /**\n   * Unique key for the file. Must be unique across the bot (and the integration, when applicable).\n   */\n  key: string;\n  /**\n   * File tags as an object of key-value pairs. Tag values should be of `string` (text) type.\n   */\n  tags?: {\n    [k: string]: string;\n  };\n  /**\n   * File size in bytes. This will count against your File Storage quota. If the `index` parameter is set to `true`, this will also count against your Vector DB Storage quota.\n   */\n  size: number;\n  /**\n   * Set to a value of 'true' to index the file in vector storage. Only certain file formats are currently supported for indexing. Files larger than 95 MB cannot be indexed. Note that if a file is indexed, it will count towards both the Vector DB Storage quota and the File Storage quota of the workspace.\n   */\n  index?: boolean;\n  indexing?: {\n    /**\n     * Configuration to use for indexing the file, will be stored in the file's metadata for reference.\n     */\n    configuration: {\n      parsing?: {\n        /**\n         * The parsing mode to index the file. Using `agent` will use agentic document processing to parse the file and will incurr in AI Spend cost, while `standard` will use a faster but less accurate parser that will not incur in AI Spend cost.\n         */\n        mode?: \"agent\" | \"standard\";\n        /**\n         * The minimum length a standalone paragraph should have. If a paragraph is shorter than this, it will be merged with the next immediate paragraph.\n         */\n        minimumParagraphLength?: number;\n        /**\n         * (Team/Enterprise plan only, charged as AI Spend) Enabling this will use a lightweight/inexpensive LLM to clean up the extracted content of PDF files before indexing them to increase the quality of the stored vectors, as PDFs often store raw text in unusual ways which when extracted may result in formatting issues (e.g. broken sentences/paragraphs, unexpected headings, garbled characters, etc.) that can affect retrieval performance for certain user queries if left untouched.\n         *\n         * Notes:\n         * - This feature is only available in Team and Enterprise plans.\n         * - This feature is only available for PDF files. If the file isn't a PDF, this setting will be ignored and no AI Spend will be incurred.\n         * - We recommend using this feature for PDFs that have custom layouts or design. For simple text-based PDFs like documents and books, this feature is usually not necessary.\n         * - The smart cleanup takes some time to perform due to the LLM calls involved, so enabling it will increase the total time it takes to index the file.\n         * - We take steps to prevent the original text from being fundamentally changed but due to the nature of LLMs this could theoretically still happen so it's recommended to review the passages generated for the file after indexing to ensure the content is still accurate.\n         * - This feature is limited to the first 30 pages or 20 KB of text in the PDF file (whichever comes first). If the file has more content than these limits then the rest of the file will be indexed as-is without any cleanup. If you need to clean up the content of the entire file, consider splitting it into smaller files.\n         */\n        smartCleanup?: boolean;\n      };\n      chunking?: {\n        /**\n         * The maximum length of a chunk in characters.\n         */\n        maximumChunkLength?: number;\n        /**\n         * The number of surrounding context levels to include in the vector embedding of the chunk.\n         */\n        embeddedContextLevels?: number;\n        /**\n         * Include the breadcrumb of the chunk in the vector embedding.\n         */\n        embedBreadcrumb?: boolean;\n      };\n      summarization?: {\n        /**\n         * (Team/Enterprise plan only, charged as AI Spend) Create summaries for this file and index them as standalone vectors. Enabling this option will incur in AI Spend cost (charged to the workspace of the bot) to generate the summaries based on the amount of content in the file and the summarization model used.\n         *\n         * Please note that this feature is only available in Team and Enterprise plans.\n         */\n        enable?: boolean;\n        /**\n         * The model type to use for summarization.\n         */\n        modelType?: \"inexpensive\" | \"balanced\" | \"accurate\";\n        /**\n         * The minimum length a section of the file should have to create a summary of it.\n         */\n        minimumInputLength?: number;\n        /**\n         * The maximum length of a summary (in tokens).\n         */\n        outputTokenLimit?: number;\n        /**\n         * Generate a summary of the entire file and index it as a standalone vector.\n         */\n        generateMasterSummary?: boolean;\n      };\n      /**\n       * If not set, the default indexing stack will be used.\n       */\n      stack?: \"legacy\" | \"realtime-v1\";\n      vision?: {\n        /**\n         * (Team/Enterprise plan only, charged as AI Spend) For PDF files, set this option to `true` or pass an array with specific page numbers to use a vision-enabled LLM to transcribe each page of the PDF as standalone vectors and index them.\n         *\n         * This feature is useful when a PDF file contains custom designs or layouts, or when your document has many infographics, which require visual processing in order to index the file effectively, as the default text-based indexing may not be enough to allow your bot to correctly understand the content in your PDFs.\n         *\n         * Notes:\n         * - This feature is only available in Team and Enterprise plans.\n         * - Enabling this feature will incur in AI Spend cost to use a vision-enabled LLM to index the PDF pages.\n         * - This is limited to a maximum of 100 pages of the PDF. If the file has more pages then the rest of the pages will NOT be transcribed using this vision feature, and will be processed using the default text-based indexing instead. If you need to transcribe the entire file using vision, please split it into smaller files.\n         * - Pages that are vision-transcribed will not be processed by the default text-based indexing to avoid duplicate content in the index.\n         * - This feature is only available for PDF files. If the file isn't a PDF, this setting will be ignored and no AI Spend will be incurred.\n         */\n        transcribePages?: {\n          [k: string]: any;\n        };\n        /**\n         * (Team/Enterprise plan only, charged as AI Spend) For PDF files, set this option to `true` or pass an array with specific page numbers to use a vision-enabled LLM to index each page of the PDF as a standalone image.\n         *\n         * Enabling this feature will allow Autonomous Nodes in your bot to answer visual or higher-level questions about the content in these pages that can usually not be answered correctly by the default text-based indexing or visual transcription.\n         *\n         * This feature is useful when a PDF has:\n         * - Tables with complex layouts\n         * - Charts, diagrams or infographics\n         * - Photos or images that can be used to answer user queries\n         *\n         * Notes:\n         * - This feature is only available in Team and Enterprise plans.\n         * - Enabling this will incur in extra AI Spend cost and additional File Storage usage, in order to use a vision-enabled LLM to visually index the PDF pages and store them as standalone page images in the bot's file storage.\n         * - Enabling this may increase the overall AI Spend cost of your bot as your bot may pass one or more indexed page images to a vision-enabled LLM for answering user queries.\n         * - This is limited to the first 100 pages of the PDF. If the file has more pages then the rest of the pages will NOT be vision-indexed. If you need to visually index the entire file, please split it into smaller files.\n         * - This feature is only available for PDF files. If the file isn't a PDF, this setting will be ignored and no AI Spend will be incurred.\n         */\n        indexPages?: {\n          [k: string]: any;\n        };\n      };\n    };\n  };\n  /**\n   * File access policies. Add \"public_content\" to allow public access to the file content. Add \"integrations\" to allow read, search and list operations for any integration installed in the bot.\n   */\n  accessPolicies?: (\"public_content\" | \"integrations\")[];\n  /**\n   * File content type. If omitted, the content type will be inferred from the file extension (if any) specified in `key`. If a content type cannot be inferred, the default is \"application/octet-stream\".\n   */\n  contentType?: string;\n  /**\n   * Expiry timestamp in ISO 8601 format with UTC timezone. After expiry, the File will be deleted. Must be in the future. Cannot be more than 90 days from now. The value up to minutes is considered. Seconds and milliseconds are ignored.\n   */\n  expiresAt?: string;\n  /**\n   * Use when your file has \"public_content\" in its access policy and you need the file\\'s content to be immediately accessible through its URL after the file has been uploaded without having to wait for the upload to be processed by our system.\n   *\n   * If set to `true`, the `x-amz-tagging` HTTP header with a value of `public=true` will need to be sent in the HTTP PUT request to the `uploadUrl` in order for the upload request to work.\n   */\n  publicContentImmediatelyAccessible?: boolean;\n  /**\n   * Custom metadata for the file expressed as an object of key-value pairs. The values can be of any type.\n   */\n  metadata?: {\n    [k: string]: any;\n  };\n}\n\nexport type UpsertFileInput = UpsertFileRequestBody & UpsertFileRequestHeaders & UpsertFileRequestQuery & UpsertFileRequestParams\n\nexport type UpsertFileRequest = {\n  headers: UpsertFileRequestHeaders;\n  query: UpsertFileRequestQuery;\n  params: UpsertFileRequestParams;\n  body: UpsertFileRequestBody;\n}\n\nexport const parseReq = (input: UpsertFileInput): UpsertFileRequest & { path: string } => {\n  return {\n    path: `/v1/files`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'key': input['key'], 'tags': input['tags'], 'size': input['size'], 'index': input['index'], 'indexing': input['indexing'], 'accessPolicies': input['accessPolicies'], 'contentType': input['contentType'], 'expiresAt': input['expiresAt'], 'publicContentImmediatelyAccessible': input['publicContentImmediatelyAccessible'], 'metadata': input['metadata'] },\n  }\n}\n\nexport interface UpsertFileResponse {\n  file: {\n    /**\n     * File ID\n     */\n    id: string;\n    /**\n     * The ID of the bot the file belongs to\n     */\n    botId: string;\n    /**\n     * Unique key for the file. Must be unique across the bot (and the integration, when applicable).\n     */\n    key: string;\n    /**\n     * URL to retrieve the file content. This URL will be ready to use once the file is uploaded.\n     *\n     * If the file has a `public_content` policy, this will contain the permanent public URL to retrieve the file, otherwise this will contain a temporary pre-signed URL to download the file which should be used shortly after retrieving and should not be stored long-term as the URL will expire after a short timeframe.\n     */\n    url: string;\n    /**\n     * File size in bytes. Non-null if file upload status is \"COMPLETE\".\n     */\n    size: number | null;\n    /**\n     * MIME type of the file's content\n     */\n    contentType: string;\n    /**\n     * The tags of the file as an object of key/value pairs\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Metadata of the file as an object of key/value pairs. The values can be of any type.\n     */\n    metadata: {\n      [k: string]: any;\n    };\n    /**\n     * File creation timestamp in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * File last update timestamp in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Access policies configured for the file.\n     */\n    accessPolicies: (\"integrations\" | \"public_content\")[];\n    /**\n     * Whether the file was requested to be indexed for search or not.\n     */\n    index: boolean;\n    /**\n     * Status of the file. If the status is `upload_pending`, the file content has not been uploaded yet. The status will be set to `upload_completed` once the file content has been uploaded successfully.\n     *\n     * If the upload failed for any reason (e.g. exceeding the storage quota or the maximum file size limit) the status will be set to `upload_failed` and the reason for the failure will be available in the `failedStatusReason` field of the file.\n     *\n     * However, if the file has been uploaded and the `index` attribute was set to `true` on the file, the status will immediately transition to the `indexing_pending` status (the `upload_completed` status step will be skipped).\n     *\n     * Once the indexing is completed and the file is ready to be used for searching its status will be set to `indexing_completed`. If the indexing failed the status will be set to `indexing_failed` and the reason for the failure will be available in the `failedStatusReason` field.\n     */\n    status:\n      | \"upload_pending\"\n      | \"upload_failed\"\n      | \"upload_completed\"\n      | \"indexing_pending\"\n      | \"indexing_failed\"\n      | \"indexing_completed\";\n    /**\n     * If the file status is `upload_failed` or `indexing_failed` this will contain the reason of the failure.\n     */\n    failedStatusReason?: string;\n    /**\n     * File expiry timestamp in ISO 8601 format\n     */\n    expiresAt?: string;\n    owner: {\n      type: \"bot\" | \"integration\" | \"user\";\n      /**\n       * This field is present if `type` is \"user\" or \"bot\". If `type` is \"user\", this is the user ID. If `type` is \"bot\", this is the bot ID.\n       */\n      id?: string;\n      /**\n       * This field is present if the `type` is \"integration\". If `type` is \"integration\", this is the integration name.\n       */\n      name?: string;\n      /**\n       * This field is present if the `type` is \"integration\". If `type` is \"integration\", this is the integration instance alias.\n       */\n      alias?: string;\n    };\n    /**\n     * Indicates the indexing stack used to index this file. Present only when file has been successfully indexed. A value of \"v2\" denotes the latest stack, \"v1\" denotes the legacy stack.\n     */\n    indexingStack?: \"v1\" | \"v2\";\n    /**\n     * URL to upload the file content. File content needs to be sent to this URL via a PUT request.\n     */\n    uploadUrl: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface DeleteFileRequestHeaders {}\n\nexport interface DeleteFileRequestQuery {}\n\nexport interface DeleteFileRequestParams {\n  id: string;\n}\n\nexport interface DeleteFileRequestBody {}\n\nexport type DeleteFileInput = DeleteFileRequestBody & DeleteFileRequestHeaders & DeleteFileRequestQuery & DeleteFileRequestParams\n\nexport type DeleteFileRequest = {\n  headers: DeleteFileRequestHeaders;\n  query: DeleteFileRequestQuery;\n  params: DeleteFileRequestParams;\n  body: DeleteFileRequestBody;\n}\n\nexport const parseReq = (input: DeleteFileInput): DeleteFileRequest & { path: string } => {\n  return {\n    path: `/v1/files/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface DeleteFileResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListFilesRequestHeaders {}\n\nexport interface ListFilesRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n  sortField?: \"key\" | \"size\" | \"createdAt\" | \"updatedAt\" | \"status\";\n  sortDirection?: \"asc\" | \"desc\";\n  tags?: any;\n  /**\n   * @maxItems 50\n   */\n  ids?: string[];\n  indexed?: boolean;\n}\n\nexport interface ListFilesRequestParams {}\n\nexport interface ListFilesRequestBody {}\n\nexport type ListFilesInput = ListFilesRequestBody & ListFilesRequestHeaders & ListFilesRequestQuery & ListFilesRequestParams\n\nexport type ListFilesRequest = {\n  headers: ListFilesRequestHeaders;\n  query: ListFilesRequestQuery;\n  params: ListFilesRequestParams;\n  body: ListFilesRequestBody;\n}\n\nexport const parseReq = (input: ListFilesInput): ListFilesRequest & { path: string } => {\n  return {\n    path: `/v1/files`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'], 'sortField': input['sortField'], 'sortDirection': input['sortDirection'], 'tags': input['tags'], 'ids': input['ids'], 'indexed': input['indexed'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListFilesResponse {\n  files: {\n    /**\n     * File ID\n     */\n    id: string;\n    /**\n     * The ID of the bot the file belongs to\n     */\n    botId: string;\n    /**\n     * Unique key for the file. Must be unique across the bot (and the integration, when applicable).\n     */\n    key: string;\n    /**\n     * URL to retrieve the file content. This URL will be ready to use once the file is uploaded.\n     *\n     * If the file has a `public_content` policy, this will contain the permanent public URL to retrieve the file, otherwise this will contain a temporary pre-signed URL to download the file which should be used shortly after retrieving and should not be stored long-term as the URL will expire after a short timeframe.\n     */\n    url: string;\n    /**\n     * File size in bytes. Non-null if file upload status is \"COMPLETE\".\n     */\n    size: number | null;\n    /**\n     * MIME type of the file's content\n     */\n    contentType: string;\n    /**\n     * The tags of the file as an object of key/value pairs\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Metadata of the file as an object of key/value pairs. The values can be of any type.\n     */\n    metadata: {\n      [k: string]: any | null;\n    };\n    /**\n     * File creation timestamp in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * File last update timestamp in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Access policies configured for the file.\n     */\n    accessPolicies: (\"integrations\" | \"public_content\")[];\n    /**\n     * Whether the file was requested to be indexed for search or not.\n     */\n    index: boolean;\n    /**\n     * Status of the file. If the status is `upload_pending`, the file content has not been uploaded yet. The status will be set to `upload_completed` once the file content has been uploaded successfully.\n     *\n     * If the upload failed for any reason (e.g. exceeding the storage quota or the maximum file size limit) the status will be set to `upload_failed` and the reason for the failure will be available in the `failedStatusReason` field of the file.\n     *\n     * However, if the file has been uploaded and the `index` attribute was set to `true` on the file, the status will immediately transition to the `indexing_pending` status (the `upload_completed` status step will be skipped).\n     *\n     * Once the indexing is completed and the file is ready to be used for searching its status will be set to `indexing_completed`. If the indexing failed the status will be set to `indexing_failed` and the reason for the failure will be available in the `failedStatusReason` field.\n     */\n    status:\n      | \"upload_pending\"\n      | \"upload_failed\"\n      | \"upload_completed\"\n      | \"indexing_pending\"\n      | \"indexing_failed\"\n      | \"indexing_completed\";\n    /**\n     * If the file status is `upload_failed` or `indexing_failed` this will contain the reason of the failure.\n     */\n    failedStatusReason?: string;\n    /**\n     * File expiry timestamp in ISO 8601 format\n     */\n    expiresAt?: string;\n    owner: {\n      type: \"bot\" | \"integration\" | \"user\";\n      /**\n       * This field is present if `type` is \"user\" or \"bot\". If `type` is \"user\", this is the user ID. If `type` is \"bot\", this is the bot ID.\n       */\n      id?: string;\n      /**\n       * This field is present if the `type` is \"integration\". If `type` is \"integration\", this is the integration name.\n       */\n      name?: string;\n      /**\n       * This field is present if the `type` is \"integration\". If `type` is \"integration\", this is the integration instance alias.\n       */\n      alias?: string;\n    };\n    /**\n     * Indicates the indexing stack used to index this file. Present only when file has been successfully indexed. A value of \"v2\" denotes the latest stack, \"v1\" denotes the legacy stack.\n     */\n    indexingStack?: \"v1\" | \"v2\";\n  }[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetFileRequestHeaders {}\n\nexport interface GetFileRequestQuery {}\n\nexport interface GetFileRequestParams {\n  id: string;\n}\n\nexport interface GetFileRequestBody {}\n\nexport type GetFileInput = GetFileRequestBody & GetFileRequestHeaders & GetFileRequestQuery & GetFileRequestParams\n\nexport type GetFileRequest = {\n  headers: GetFileRequestHeaders;\n  query: GetFileRequestQuery;\n  params: GetFileRequestParams;\n  body: GetFileRequestBody;\n}\n\nexport const parseReq = (input: GetFileInput): GetFileRequest & { path: string } => {\n  return {\n    path: `/v1/files/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetFileResponse {\n  file: {\n    /**\n     * File ID\n     */\n    id: string;\n    /**\n     * The ID of the bot the file belongs to\n     */\n    botId: string;\n    /**\n     * Unique key for the file. Must be unique across the bot (and the integration, when applicable).\n     */\n    key: string;\n    /**\n     * URL to retrieve the file content. This URL will be ready to use once the file is uploaded.\n     *\n     * If the file has a `public_content` policy, this will contain the permanent public URL to retrieve the file, otherwise this will contain a temporary pre-signed URL to download the file which should be used shortly after retrieving and should not be stored long-term as the URL will expire after a short timeframe.\n     */\n    url: string;\n    /**\n     * File size in bytes. Non-null if file upload status is \"COMPLETE\".\n     */\n    size: number | null;\n    /**\n     * MIME type of the file's content\n     */\n    contentType: string;\n    /**\n     * The tags of the file as an object of key/value pairs\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Metadata of the file as an object of key/value pairs. The values can be of any type.\n     */\n    metadata: {\n      [k: string]: any;\n    };\n    /**\n     * File creation timestamp in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * File last update timestamp in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Access policies configured for the file.\n     */\n    accessPolicies: (\"integrations\" | \"public_content\")[];\n    /**\n     * Whether the file was requested to be indexed for search or not.\n     */\n    index: boolean;\n    /**\n     * Status of the file. If the status is `upload_pending`, the file content has not been uploaded yet. The status will be set to `upload_completed` once the file content has been uploaded successfully.\n     *\n     * If the upload failed for any reason (e.g. exceeding the storage quota or the maximum file size limit) the status will be set to `upload_failed` and the reason for the failure will be available in the `failedStatusReason` field of the file.\n     *\n     * However, if the file has been uploaded and the `index` attribute was set to `true` on the file, the status will immediately transition to the `indexing_pending` status (the `upload_completed` status step will be skipped).\n     *\n     * Once the indexing is completed and the file is ready to be used for searching its status will be set to `indexing_completed`. If the indexing failed the status will be set to `indexing_failed` and the reason for the failure will be available in the `failedStatusReason` field.\n     */\n    status:\n      | \"upload_pending\"\n      | \"upload_failed\"\n      | \"upload_completed\"\n      | \"indexing_pending\"\n      | \"indexing_failed\"\n      | \"indexing_completed\";\n    /**\n     * If the file status is `upload_failed` or `indexing_failed` this will contain the reason of the failure.\n     */\n    failedStatusReason?: string;\n    /**\n     * File expiry timestamp in ISO 8601 format\n     */\n    expiresAt?: string;\n    owner: {\n      type: \"bot\" | \"integration\" | \"user\";\n      /**\n       * This field is present if `type` is \"user\" or \"bot\". If `type` is \"user\", this is the user ID. If `type` is \"bot\", this is the bot ID.\n       */\n      id?: string;\n      /**\n       * This field is present if the `type` is \"integration\". If `type` is \"integration\", this is the integration name.\n       */\n      name?: string;\n      /**\n       * This field is present if the `type` is \"integration\". If `type` is \"integration\", this is the integration instance alias.\n       */\n      alias?: string;\n    };\n    /**\n     * Indicates the indexing stack used to index this file. Present only when file has been successfully indexed. A value of \"v2\" denotes the latest stack, \"v1\" denotes the legacy stack.\n     */\n    indexingStack?: \"v1\" | \"v2\";\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface UpdateFileMetadataRequestHeaders {}\n\nexport interface UpdateFileMetadataRequestQuery {}\n\nexport interface UpdateFileMetadataRequestParams {\n  id: string;\n}\n\nexport interface UpdateFileMetadataRequestBody {\n  /**\n   * Custom metadata for the file expressed as an object of key-value pairs. Omit to keep existing metadata intact. Any existing metadata keys not included will be preserved. New keys will be added. To delete a metadata key, set its value to `null`.\n   */\n  metadata?: {\n    [k: string]: any;\n  };\n  /**\n   * The file tags to update as an object of key-value pairs with `string` (text) values. Omit to keep existing tags intact. Any existing tags not included will be preserved. New tags will be added. To delete a tag, set its value to `null`.\n   */\n  tags?: {\n    [k: string]: string | null;\n  };\n  /**\n   * New access policies to set for the file. Omit to keep existing policies intact.\n   */\n  accessPolicies?: (\"integrations\" | \"public_content\")[];\n  /**\n   * Expiry timestamp in ISO 8601 format with UTC timezone. After expiry, the File will be deleted. Must be in the future. Cannot be more than 90 days from now. The value up to minutes is considered. Seconds and milliseconds are ignored. Omit to keep the existing expiry intact. Set to `null` to remove the expiry.\n   */\n  expiresAt?: string | null;\n}\n\nexport type UpdateFileMetadataInput = UpdateFileMetadataRequestBody & UpdateFileMetadataRequestHeaders & UpdateFileMetadataRequestQuery & UpdateFileMetadataRequestParams\n\nexport type UpdateFileMetadataRequest = {\n  headers: UpdateFileMetadataRequestHeaders;\n  query: UpdateFileMetadataRequestQuery;\n  params: UpdateFileMetadataRequestParams;\n  body: UpdateFileMetadataRequestBody;\n}\n\nexport const parseReq = (input: UpdateFileMetadataInput): UpdateFileMetadataRequest & { path: string } => {\n  return {\n    path: `/v1/files/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: { 'metadata': input['metadata'], 'tags': input['tags'], 'accessPolicies': input['accessPolicies'], 'expiresAt': input['expiresAt'] },\n  }\n}\n\nexport interface UpdateFileMetadataResponse {\n  file: {\n    /**\n     * File ID\n     */\n    id: string;\n    /**\n     * The ID of the bot the file belongs to\n     */\n    botId: string;\n    /**\n     * Unique key for the file. Must be unique across the bot (and the integration, when applicable).\n     */\n    key: string;\n    /**\n     * URL to retrieve the file content. This URL will be ready to use once the file is uploaded.\n     *\n     * If the file has a `public_content` policy, this will contain the permanent public URL to retrieve the file, otherwise this will contain a temporary pre-signed URL to download the file which should be used shortly after retrieving and should not be stored long-term as the URL will expire after a short timeframe.\n     */\n    url: string;\n    /**\n     * File size in bytes. Non-null if file upload status is \"COMPLETE\".\n     */\n    size: number | null;\n    /**\n     * MIME type of the file's content\n     */\n    contentType: string;\n    /**\n     * The tags of the file as an object of key/value pairs\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Metadata of the file as an object of key/value pairs. The values can be of any type.\n     */\n    metadata: {\n      [k: string]: any;\n    };\n    /**\n     * File creation timestamp in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * File last update timestamp in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Access policies configured for the file.\n     */\n    accessPolicies: (\"integrations\" | \"public_content\")[];\n    /**\n     * Whether the file was requested to be indexed for search or not.\n     */\n    index: boolean;\n    /**\n     * Status of the file. If the status is `upload_pending`, the file content has not been uploaded yet. The status will be set to `upload_completed` once the file content has been uploaded successfully.\n     *\n     * If the upload failed for any reason (e.g. exceeding the storage quota or the maximum file size limit) the status will be set to `upload_failed` and the reason for the failure will be available in the `failedStatusReason` field of the file.\n     *\n     * However, if the file has been uploaded and the `index` attribute was set to `true` on the file, the status will immediately transition to the `indexing_pending` status (the `upload_completed` status step will be skipped).\n     *\n     * Once the indexing is completed and the file is ready to be used for searching its status will be set to `indexing_completed`. If the indexing failed the status will be set to `indexing_failed` and the reason for the failure will be available in the `failedStatusReason` field.\n     */\n    status:\n      | \"upload_pending\"\n      | \"upload_failed\"\n      | \"upload_completed\"\n      | \"indexing_pending\"\n      | \"indexing_failed\"\n      | \"indexing_completed\";\n    /**\n     * If the file status is `upload_failed` or `indexing_failed` this will contain the reason of the failure.\n     */\n    failedStatusReason?: string;\n    /**\n     * File expiry timestamp in ISO 8601 format\n     */\n    expiresAt?: string;\n    owner: {\n      type: \"bot\" | \"integration\" | \"user\";\n      /**\n       * This field is present if `type` is \"user\" or \"bot\". If `type` is \"user\", this is the user ID. If `type` is \"bot\", this is the bot ID.\n       */\n      id?: string;\n      /**\n       * This field is present if the `type` is \"integration\". If `type` is \"integration\", this is the integration name.\n       */\n      name?: string;\n      /**\n       * This field is present if the `type` is \"integration\". If `type` is \"integration\", this is the integration instance alias.\n       */\n      alias?: string;\n    };\n    /**\n     * Indicates the indexing stack used to index this file. Present only when file has been successfully indexed. A value of \"v2\" denotes the latest stack, \"v1\" denotes the legacy stack.\n     */\n    indexingStack?: \"v1\" | \"v2\";\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CopyFileRequestHeaders {\n  \"x-destination-bot-id\"?: string;\n}\n\nexport interface CopyFileRequestQuery {}\n\nexport interface CopyFileRequestParams {\n  idOrKey: string;\n  destinationKey: string;\n}\n\nexport interface CopyFileRequestBody {\n  /**\n   * Set to `true` to overwrite the file if it already exists, otherwise an error will be returned.\n   *\n   * When this endpoint is called using bot authentication, the existing file must have been originally created by the same bot making the file copy request in order to overwrite it.\n   */\n  overwrite?: boolean;\n}\n\nexport type CopyFileInput = CopyFileRequestBody & CopyFileRequestHeaders & CopyFileRequestQuery & CopyFileRequestParams\n\nexport type CopyFileRequest = {\n  headers: CopyFileRequestHeaders;\n  query: CopyFileRequestQuery;\n  params: CopyFileRequestParams;\n  body: CopyFileRequestBody;\n}\n\nexport const parseReq = (input: CopyFileInput): CopyFileRequest & { path: string } => {\n  return {\n    path: `/v1/files/${encodeURIComponent(input['idOrKey'])}/${encodeURIComponent(input['destinationKey'])}`,\n    headers: { 'x-destination-bot-id': input['x-destination-bot-id'] },\n    query: {  },\n    params: { 'idOrKey': input['idOrKey'], 'destinationKey': input['destinationKey'] },\n    body: { 'overwrite': input['overwrite'] },\n  }\n}\n\nexport interface CopyFileResponse {\n  file: {\n    /**\n     * File ID\n     */\n    id: string;\n    /**\n     * The ID of the bot the file belongs to\n     */\n    botId: string;\n    /**\n     * Unique key for the file. Must be unique across the bot (and the integration, when applicable).\n     */\n    key: string;\n    /**\n     * URL to retrieve the file content. This URL will be ready to use once the file is uploaded.\n     *\n     * If the file has a `public_content` policy, this will contain the permanent public URL to retrieve the file, otherwise this will contain a temporary pre-signed URL to download the file which should be used shortly after retrieving and should not be stored long-term as the URL will expire after a short timeframe.\n     */\n    url: string;\n    /**\n     * File size in bytes. Non-null if file upload status is \"COMPLETE\".\n     */\n    size: number | null;\n    /**\n     * MIME type of the file's content\n     */\n    contentType: string;\n    /**\n     * The tags of the file as an object of key/value pairs\n     */\n    tags: {\n      [k: string]: string;\n    };\n    /**\n     * Metadata of the file as an object of key/value pairs. The values can be of any type.\n     */\n    metadata: {\n      [k: string]: any;\n    };\n    /**\n     * File creation timestamp in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * File last update timestamp in ISO 8601 format\n     */\n    updatedAt: string;\n    /**\n     * Access policies configured for the file.\n     */\n    accessPolicies: (\"integrations\" | \"public_content\")[];\n    /**\n     * Whether the file was requested to be indexed for search or not.\n     */\n    index: boolean;\n    /**\n     * Status of the file. If the status is `upload_pending`, the file content has not been uploaded yet. The status will be set to `upload_completed` once the file content has been uploaded successfully.\n     *\n     * If the upload failed for any reason (e.g. exceeding the storage quota or the maximum file size limit) the status will be set to `upload_failed` and the reason for the failure will be available in the `failedStatusReason` field of the file.\n     *\n     * However, if the file has been uploaded and the `index` attribute was set to `true` on the file, the status will immediately transition to the `indexing_pending` status (the `upload_completed` status step will be skipped).\n     *\n     * Once the indexing is completed and the file is ready to be used for searching its status will be set to `indexing_completed`. If the indexing failed the status will be set to `indexing_failed` and the reason for the failure will be available in the `failedStatusReason` field.\n     */\n    status:\n      | \"upload_pending\"\n      | \"upload_failed\"\n      | \"upload_completed\"\n      | \"indexing_pending\"\n      | \"indexing_failed\"\n      | \"indexing_completed\";\n    /**\n     * If the file status is `upload_failed` or `indexing_failed` this will contain the reason of the failure.\n     */\n    failedStatusReason?: string;\n    /**\n     * File expiry timestamp in ISO 8601 format\n     */\n    expiresAt?: string;\n    owner: {\n      type: \"bot\" | \"integration\" | \"user\";\n      /**\n       * This field is present if `type` is \"user\" or \"bot\". If `type` is \"user\", this is the user ID. If `type` is \"bot\", this is the bot ID.\n       */\n      id?: string;\n      /**\n       * This field is present if the `type` is \"integration\". If `type` is \"integration\", this is the integration name.\n       */\n      name?: string;\n      /**\n       * This field is present if the `type` is \"integration\". If `type` is \"integration\", this is the integration instance alias.\n       */\n      alias?: string;\n    };\n    /**\n     * Indicates the indexing stack used to index this file. Present only when file has been successfully indexed. A value of \"v2\" denotes the latest stack, \"v1\" denotes the legacy stack.\n     */\n    indexingStack?: \"v1\" | \"v2\";\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface SearchFilesRequestHeaders {}\n\nexport interface SearchFilesRequestQuery {\n  tags?: any;\n  query: string;\n  contextDepth?: number;\n  limit?: number;\n  consolidate?: boolean;\n  includeBreadcrumb?: boolean;\n  withContext?: boolean;\n}\n\nexport interface SearchFilesRequestParams {}\n\nexport interface SearchFilesRequestBody {}\n\nexport type SearchFilesInput = SearchFilesRequestBody & SearchFilesRequestHeaders & SearchFilesRequestQuery & SearchFilesRequestParams\n\nexport type SearchFilesRequest = {\n  headers: SearchFilesRequestHeaders;\n  query: SearchFilesRequestQuery;\n  params: SearchFilesRequestParams;\n  body: SearchFilesRequestBody;\n}\n\nexport const parseReq = (input: SearchFilesInput): SearchFilesRequest & { path: string } => {\n  return {\n    path: `/v1/files/search`,\n    headers: {  },\n    query: { 'tags': input['tags'], 'query': input['query'], 'contextDepth': input['contextDepth'], 'limit': input['limit'], 'consolidate': input['consolidate'], 'includeBreadcrumb': input['includeBreadcrumb'], 'withContext': input['withContext'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface SearchFilesResponse {\n  passages: {\n    /**\n     * The content of the matching passage in the file including surrounding context, if any.\n     */\n    content: string;\n    /**\n     * The score indicating the similarity of the passage to the query. A higher score indicates higher similarity.\n     */\n    score: number;\n    /**\n     * The passage metadata.\n     */\n    meta: {\n      /**\n       * The type of passage\n       */\n      type?: \"chunk\" | \"summary\" | \"consolidated\" | \"image\";\n      /**\n       * The subtype of passage, if available.\n       */\n      subtype?: \"title\" | \"subtitle\" | \"paragraph\" | \"blockquote\" | \"list\" | \"table\" | \"code\" | \"image\" | \"page\";\n      /**\n       * Page number the passage is located on. Only applicable if the passage was extracted from a PDF file.\n       */\n      pageNumber?: number;\n      /**\n       * Position number of the passage in the file relative to the other passages, if available. Can be used to know the order of passages within a file.\n       */\n      position?: number;\n      /**\n       * The URL of the source file for the vector, if applicable (e.g. for image vectors).\n       */\n      sourceUrl?: string;\n    };\n    file: {\n      /**\n       * File ID\n       */\n      id: string;\n      /**\n       * Unique key for the file. Must be unique across the bot (and the integration, when applicable).\n       */\n      key: string;\n      /**\n       * MIME type of the file's content\n       */\n      contentType: string;\n      /**\n       * Metadata of the file as an object of key-value pairs.\n       */\n      metadata: {\n        [k: string]: any | null;\n      };\n      /**\n       * The tags of the file as an object of key-value pairs.\n       */\n      tags: {\n        [k: string]: string;\n      };\n      /**\n       * File creation timestamp in ISO 8601 format\n       */\n      createdAt: string;\n      /**\n       * File last update timestamp in ISO 8601 format\n       */\n      updatedAt: string;\n    };\n    /**\n     * Surrounding passages including the current passage, based on the requested `contextDepth`. Only returned if the `withContext` parameter is set to `true`. Not supported when using the `consolidate` option.\n     */\n    context?: {\n      /**\n       * The ID of the vector that the context passage belongs to. Omitted for breadcrumbs.\n       */\n      id?: string;\n      text: string;\n      /**\n       * Position of the context passage relative to the current passage. Negative for preceding passages, positive for subsequent, ommited for breadcrumbs.\n       */\n      offset?: number;\n      /**\n       * The type of context passage\n       */\n      type: \"preceding\" | \"subsequent\" | \"current\" | \"breadcrumb\";\n    }[];\n  }[];\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListFilePassagesRequestHeaders {}\n\nexport interface ListFilePassagesRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n  limit?: number;\n}\n\nexport interface ListFilePassagesRequestParams {\n  id: string;\n}\n\nexport interface ListFilePassagesRequestBody {}\n\nexport type ListFilePassagesInput = ListFilePassagesRequestBody & ListFilePassagesRequestHeaders & ListFilePassagesRequestQuery & ListFilePassagesRequestParams\n\nexport type ListFilePassagesRequest = {\n  headers: ListFilePassagesRequestHeaders;\n  query: ListFilePassagesRequestQuery;\n  params: ListFilePassagesRequestParams;\n  body: ListFilePassagesRequestBody;\n}\n\nexport const parseReq = (input: ListFilePassagesInput): ListFilePassagesRequest & { path: string } => {\n  return {\n    path: `/v1/files/${encodeURIComponent(input['id'])}/passages`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'], 'limit': input['limit'] },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface ListFilePassagesResponse {\n  passages: {\n    /**\n     * Passage ID\n     */\n    id: string;\n    /**\n     * The content of the passage.\n     */\n    content: string;\n    /**\n     * The passage metadata.\n     */\n    meta: {\n      /**\n       * The type of passage\n       */\n      type?: \"chunk\" | \"summary\" | \"consolidated\" | \"image\";\n      /**\n       * The subtype of passage, if available.\n       */\n      subtype?: \"title\" | \"subtitle\" | \"paragraph\" | \"blockquote\" | \"list\" | \"table\" | \"code\" | \"image\" | \"page\";\n      /**\n       * Page number the passage is located on. Only applicable if the passage was extracted from a PDF file.\n       */\n      pageNumber?: number;\n      /**\n       * Position number of the passage in the file relative to the other passages, if available. Can be used to know the order of passages within a file.\n       */\n      position?: number;\n      /**\n       * The URL of the source file for the vector, if applicable (e.g. for image vectors).\n       */\n      sourceUrl?: string;\n    };\n  }[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface SetFilePassagesRequestHeaders {}\n\nexport interface SetFilePassagesRequestQuery {}\n\nexport interface SetFilePassagesRequestParams {\n  id: string;\n}\n\nexport interface SetFilePassagesRequestBody {\n  /**\n   * Note: The passages should appear in the array in the same order as they appear in the original document.\n   */\n  passages: {\n    /**\n     * The content of the passage, supports Markdown formatting.\n     */\n    content: string;\n    /**\n     * The type should match the Markdown format used for the passage content.\n     */\n    type?: \"title\" | \"subtitle\" | \"paragraph\" | \"blockquote\" | \"list\" | \"table\" | \"code\" | \"image\";\n    pageNumber?: number;\n  }[];\n}\n\nexport type SetFilePassagesInput = SetFilePassagesRequestBody & SetFilePassagesRequestHeaders & SetFilePassagesRequestQuery & SetFilePassagesRequestParams\n\nexport type SetFilePassagesRequest = {\n  headers: SetFilePassagesRequestHeaders;\n  query: SetFilePassagesRequestQuery;\n  params: SetFilePassagesRequestParams;\n  body: SetFilePassagesRequestBody;\n}\n\nexport const parseReq = (input: SetFilePassagesInput): SetFilePassagesRequest & { path: string } => {\n  return {\n    path: `/v1/files/${encodeURIComponent(input['id'])}/passages`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: { 'passages': input['passages'] },\n  }\n}\n\nexport interface SetFilePassagesResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListFileTagsRequestHeaders {}\n\nexport interface ListFileTagsRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n}\n\nexport interface ListFileTagsRequestParams {}\n\nexport interface ListFileTagsRequestBody {}\n\nexport type ListFileTagsInput = ListFileTagsRequestBody & ListFileTagsRequestHeaders & ListFileTagsRequestQuery & ListFileTagsRequestParams\n\nexport type ListFileTagsRequest = {\n  headers: ListFileTagsRequestHeaders;\n  query: ListFileTagsRequestQuery;\n  params: ListFileTagsRequestParams;\n  body: ListFileTagsRequestBody;\n}\n\nexport const parseReq = (input: ListFileTagsInput): ListFileTagsRequest & { path: string } => {\n  return {\n    path: `/v1/files/tags`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListFileTagsResponse {\n  tags: string[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListFileTagValuesRequestHeaders {}\n\nexport interface ListFileTagValuesRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n}\n\nexport interface ListFileTagValuesRequestParams {\n  tag: string;\n}\n\nexport interface ListFileTagValuesRequestBody {}\n\nexport type ListFileTagValuesInput = ListFileTagValuesRequestBody & ListFileTagValuesRequestHeaders & ListFileTagValuesRequestQuery & ListFileTagValuesRequestParams\n\nexport type ListFileTagValuesRequest = {\n  headers: ListFileTagValuesRequestHeaders;\n  query: ListFileTagValuesRequestQuery;\n  params: ListFileTagValuesRequestParams;\n  body: ListFileTagValuesRequestBody;\n}\n\nexport const parseReq = (input: ListFileTagValuesInput): ListFileTagValuesRequest & { path: string } => {\n  return {\n    path: `/v1/files/tags/${encodeURIComponent(input['tag'])}/values`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'] },\n    params: { 'tag': input['tag'] },\n    body: {  },\n  }\n}\n\nexport interface ListFileTagValuesResponse {\n  values: string[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CreateKnowledgeBaseRequestHeaders {}\n\nexport interface CreateKnowledgeBaseRequestQuery {}\n\nexport interface CreateKnowledgeBaseRequestParams {}\n\nexport interface CreateKnowledgeBaseRequestBody {\n  /**\n   * Name of the knowledge base.\n   */\n  name: string;\n  tags?: {\n    [k: string]: string;\n  };\n}\n\nexport type CreateKnowledgeBaseInput = CreateKnowledgeBaseRequestBody & CreateKnowledgeBaseRequestHeaders & CreateKnowledgeBaseRequestQuery & CreateKnowledgeBaseRequestParams\n\nexport type CreateKnowledgeBaseRequest = {\n  headers: CreateKnowledgeBaseRequestHeaders;\n  query: CreateKnowledgeBaseRequestQuery;\n  params: CreateKnowledgeBaseRequestParams;\n  body: CreateKnowledgeBaseRequestBody;\n}\n\nexport const parseReq = (input: CreateKnowledgeBaseInput): CreateKnowledgeBaseRequest & { path: string } => {\n  return {\n    path: `/v1/files/knowledge-bases`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'name': input['name'], 'tags': input['tags'] },\n  }\n}\n\nexport interface CreateKnowledgeBaseResponse {\n  knowledgeBase: {\n    /**\n     * Knowledge base ID\n     */\n    id: string;\n    /**\n     * Name of the knowledge base.\n     */\n    name: string;\n    tags: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface DeleteKnowledgeBaseRequestHeaders {}\n\nexport interface DeleteKnowledgeBaseRequestQuery {}\n\nexport interface DeleteKnowledgeBaseRequestParams {\n  id: string;\n}\n\nexport interface DeleteKnowledgeBaseRequestBody {}\n\nexport type DeleteKnowledgeBaseInput = DeleteKnowledgeBaseRequestBody & DeleteKnowledgeBaseRequestHeaders & DeleteKnowledgeBaseRequestQuery & DeleteKnowledgeBaseRequestParams\n\nexport type DeleteKnowledgeBaseRequest = {\n  headers: DeleteKnowledgeBaseRequestHeaders;\n  query: DeleteKnowledgeBaseRequestQuery;\n  params: DeleteKnowledgeBaseRequestParams;\n  body: DeleteKnowledgeBaseRequestBody;\n}\n\nexport const parseReq = (input: DeleteKnowledgeBaseInput): DeleteKnowledgeBaseRequest & { path: string } => {\n  return {\n    path: `/v1/files/knowledge-bases/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface DeleteKnowledgeBaseResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface UpdateKnowledgeBaseRequestHeaders {}\n\nexport interface UpdateKnowledgeBaseRequestQuery {}\n\nexport interface UpdateKnowledgeBaseRequestParams {\n  id: string;\n}\n\nexport interface UpdateKnowledgeBaseRequestBody {\n  /**\n   * New name of the knowledge base.\n   */\n  name: string;\n  /**\n   * The knowledge base tags to update as an object of key-value pairs with `string` (text) values. Omit to keep existing tags intact. Any existing tags not included will be preserved. New tags will be added. To delete a tag, set its value to `null`.\n   */\n  tags?: {\n    [k: string]: string | null;\n  };\n}\n\nexport type UpdateKnowledgeBaseInput = UpdateKnowledgeBaseRequestBody & UpdateKnowledgeBaseRequestHeaders & UpdateKnowledgeBaseRequestQuery & UpdateKnowledgeBaseRequestParams\n\nexport type UpdateKnowledgeBaseRequest = {\n  headers: UpdateKnowledgeBaseRequestHeaders;\n  query: UpdateKnowledgeBaseRequestQuery;\n  params: UpdateKnowledgeBaseRequestParams;\n  body: UpdateKnowledgeBaseRequestBody;\n}\n\nexport const parseReq = (input: UpdateKnowledgeBaseInput): UpdateKnowledgeBaseRequest & { path: string } => {\n  return {\n    path: `/v1/files/knowledge-bases/${encodeURIComponent(input['id'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: { 'name': input['name'], 'tags': input['tags'] },\n  }\n}\n\nexport interface UpdateKnowledgeBaseResponse {\n  knowledgeBase: {\n    /**\n     * Knowledge base ID\n     */\n    id: string;\n    /**\n     * Name of the knowledge base.\n     */\n    name: string;\n    tags: {\n      [k: string]: string;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListKnowledgeBasesRequestHeaders {}\n\nexport interface ListKnowledgeBasesRequestQuery {\n  nextToken?: string;\n  pageSize?: number;\n  tags?: any;\n}\n\nexport interface ListKnowledgeBasesRequestParams {}\n\nexport interface ListKnowledgeBasesRequestBody {}\n\nexport type ListKnowledgeBasesInput = ListKnowledgeBasesRequestBody & ListKnowledgeBasesRequestHeaders & ListKnowledgeBasesRequestQuery & ListKnowledgeBasesRequestParams\n\nexport type ListKnowledgeBasesRequest = {\n  headers: ListKnowledgeBasesRequestHeaders;\n  query: ListKnowledgeBasesRequestQuery;\n  params: ListKnowledgeBasesRequestParams;\n  body: ListKnowledgeBasesRequestBody;\n}\n\nexport const parseReq = (input: ListKnowledgeBasesInput): ListKnowledgeBasesRequest & { path: string } => {\n  return {\n    path: `/v1/files/knowledge-bases`,\n    headers: {  },\n    query: { 'nextToken': input['nextToken'], 'pageSize': input['pageSize'], 'tags': input['tags'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListKnowledgeBasesResponse {\n  knowledgeBases: {\n    /**\n     * Knowledge base ID\n     */\n    id: string;\n    /**\n     * Name of the knowledge base.\n     */\n    name: string;\n    /**\n     * Knowledge base creation timestamp in ISO 8601 format\n     */\n    createdAt: string;\n    tags: {\n      [k: string]: string;\n    };\n  }[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListTablesRequestHeaders {}\n\nexport interface ListTablesRequestQuery {\n  tags?: {\n    [k: string]: string;\n  };\n}\n\nexport interface ListTablesRequestParams {}\n\nexport interface ListTablesRequestBody {}\n\nexport type ListTablesInput = ListTablesRequestBody & ListTablesRequestHeaders & ListTablesRequestQuery & ListTablesRequestParams\n\nexport type ListTablesRequest = {\n  headers: ListTablesRequestHeaders;\n  query: ListTablesRequestQuery;\n  params: ListTablesRequestParams;\n  body: ListTablesRequestBody;\n}\n\nexport const parseReq = (input: ListTablesInput): ListTablesRequest & { path: string } => {\n  return {\n    path: `/v1/tables`,\n    headers: {  },\n    query: { 'tags': input['tags'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListTablesResponse {\n  tables: {\n    /**\n     * Unique identifier for the table\n     */\n    id: string;\n    /**\n     * Required. This name is used to identify your table.\n     */\n    name: string;\n    /**\n     * The 'factor' multiplies the row's data storage limit by 4KB and its quota count. It can only be increased (not decreased) after table creation via updateTable. For instance, a factor of 2 increases storage to 8KB but counts as 2 rows in your quota. The default factor is 1.\n     */\n    factor?: number;\n    /**\n     * A table designated as \"frozen\" is immutable in terms of its name and schema structure; modifications to its schema or a renaming operation are not permitted. The only action that can be taken on such a table is deletion. The schema established at the time of creation is locked in as the final structure. To implement any changes, the table must be duplicated with the desired alterations.\n     */\n    frozen?: boolean;\n    /**\n     * Designate a column as the primary unique identifier for this table. When set, a unique index is automatically created on this column, enabling significantly faster upsert operations. All values in this column must be unique across the table. When set to null, the key index is removed.\n     */\n    keyColumn?: string | null;\n    keyColumnUnique?: boolean;\n    keyColumnUniqueState?: \"disabled\" | \"enabling\" | \"enabled\" | \"disabling\" | \"error\";\n    keyColumnUniqueOperationId?: string | null;\n    keyColumnUniqueAttempts?: number;\n    keyColumnUniqueLastErrorCode?: string | null;\n    uniqueGeneration?: number;\n    schemaGeneration?: number;\n    schema: {\n      $schema?: string;\n      /**\n       * List of keys/columns in the table.\n       */\n      properties: {\n        [k: string]: {\n          type: \"string\" | \"number\" | \"boolean\" | \"object\" | \"array\" | \"null\";\n          format?: \"date-time\";\n          description?: string;\n          /**\n           * String properties must match this pattern\n           */\n          pattern?: string;\n          /**\n           * String properties must be one of these values\n           */\n          enum?: string[];\n          /**\n           * Defines the shape of items in an array\n           */\n          items?: {\n            type: \"string\" | \"number\" | \"boolean\" | \"object\" | \"array\" | \"null\";\n            [k: string]: any;\n          };\n          nullable?: boolean;\n          properties?: {\n            [k: string]: {\n              type: \"string\" | \"number\" | \"boolean\" | \"object\" | \"array\" | \"null\";\n              [k: string]: any;\n            };\n          };\n          \"x-zui\": {\n            index: number;\n            /**\n             * [deprecated] ID of the column.\n             */\n            id?: string;\n            /**\n             * Indicates if the column is vectorized and searchable.\n             */\n            searchable?: boolean;\n            /**\n             * Indicates if the field is hidden in the UI\n             */\n            hidden?: boolean;\n            /**\n             * Order of the column in the UI\n             */\n            order?: number;\n            /**\n             * Width of the column in the UI\n             */\n            width?: number;\n            /**\n             * ID of the schema\n             */\n            schemaId?: string;\n            computed?: {\n              action: \"ai\" | \"code\" | \"workflow\";\n              dependencies?: string[];\n              /**\n               * Prompt when action is \"ai\"\n               */\n              prompt?: string;\n              /**\n               * Code to execute when action is \"code\"\n               */\n              code?: string;\n              /**\n               * Model to use when action is \"ai\"\n               */\n              model?: string;\n              /**\n               * ID of Workflow to execute when action is \"workflow\"\n               */\n              workflowId?: string;\n              enabled?: boolean;\n            };\n            /**\n             * TypeScript typings for the column. Recommended if the type is \"object\", ex: \"\\{ foo: string; bar: number \\}\"\n             */\n            typings?: string;\n          };\n        };\n      };\n      /**\n       * Additional properties can be provided, but they will be ignored if no column matches.\n       */\n      additionalProperties: true;\n      /**\n       * Array of required properties.\n       */\n      required?: string[];\n      type: \"object\";\n    };\n    /**\n     * Optional tags to help organize your tables. These should be passed here as an object representing key/value pairs.\n     */\n    tags?: {\n      [k: string]: string;\n    };\n    /**\n     * Indicates if the table is enabled for computation.\n     */\n    isComputeEnabled?: boolean;\n    /**\n     * Timestamp of table creation.\n     */\n    createdAt?: string;\n    /**\n     * Timestamp of the last table update.\n     */\n    updatedAt?: string;\n  }[];\n}\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetTableRequestHeaders {}\n\nexport interface GetTableRequestQuery {}\n\nexport interface GetTableRequestParams {\n  table: string;\n}\n\nexport interface GetTableRequestBody {}\n\nexport type GetTableInput = GetTableRequestBody & GetTableRequestHeaders & GetTableRequestQuery & GetTableRequestParams\n\nexport type GetTableRequest = {\n  headers: GetTableRequestHeaders;\n  query: GetTableRequestQuery;\n  params: GetTableRequestParams;\n  body: GetTableRequestBody;\n}\n\nexport const parseReq = (input: GetTableInput): GetTableRequest & { path: string } => {\n  return {\n    path: `/v1/tables/${encodeURIComponent(input['table'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'table': input['table'] },\n    body: {  },\n  }\n}\n\nexport interface GetTableResponse {\n  table: {\n    /**\n     * Unique identifier for the table\n     */\n    id: string;\n    /**\n     * Required. This name is used to identify your table.\n     */\n    name: string;\n    /**\n     * The 'factor' multiplies the row's data storage limit by 4KB and its quota count. It can only be increased (not decreased) after table creation via updateTable. For instance, a factor of 2 increases storage to 8KB but counts as 2 rows in your quota. The default factor is 1.\n     */\n    factor?: number;\n    /**\n     * A table designated as \"frozen\" is immutable in terms of its name and schema structure; modifications to its schema or a renaming operation are not permitted. The only action that can be taken on such a table is deletion. The schema established at the time of creation is locked in as the final structure. To implement any changes, the table must be duplicated with the desired alterations.\n     */\n    frozen?: boolean;\n    /**\n     * Designate a column as the primary unique identifier for this table. When set, a unique index is automatically created on this column, enabling significantly faster upsert operations. All values in this column must be unique across the table. When set to null, the key index is removed.\n     */\n    keyColumn?: string | null;\n    keyColumnUnique?: boolean;\n    keyColumnUniqueState?: \"disabled\" | \"enabling\" | \"enabled\" | \"disabling\" | \"error\";\n    keyColumnUniqueOperationId?: string | null;\n    keyColumnUniqueAttempts?: number;\n    keyColumnUniqueLastErrorCode?: string | null;\n    uniqueGeneration?: number;\n    schemaGeneration?: number;\n    schema: {\n      $schema?: string;\n      /**\n       * List of keys/columns in the table.\n       */\n      properties: {\n        [k: string]: {\n          type: \"string\" | \"number\" | \"boolean\" | \"object\" | \"array\" | \"null\";\n          format?: \"date-time\";\n          description?: string;\n          /**\n           * String properties must match this pattern\n           */\n          pattern?: string;\n          /**\n           * String properties must be one of these values\n           */\n          enum?: string[];\n          /**\n           * Defines the shape of items in an array\n           */\n          items?: {\n            type: \"string\" | \"number\" | \"boolean\" | \"object\" | \"array\" | \"null\";\n            [k: string]: any;\n          };\n          nullable?: boolean;\n          properties?: {\n            [k: string]: {\n              type: \"string\" | \"number\" | \"boolean\" | \"object\" | \"array\" | \"null\";\n              [k: string]: any;\n            };\n          };\n          \"x-zui\": {\n            index: number;\n            /**\n             * [deprecated] ID of the column.\n             */\n            id?: string;\n            /**\n             * Indicates if the column is vectorized and searchable.\n             */\n            searchable?: boolean;\n            /**\n             * Indicates if the field is hidden in the UI\n             */\n            hidden?: boolean;\n            /**\n             * Order of the column in the UI\n             */\n            order?: number;\n            /**\n             * Width of the column in the UI\n             */\n            width?: number;\n            /**\n             * ID of the schema\n             */\n            schemaId?: string;\n            computed?: {\n              action: \"ai\" | \"code\" | \"workflow\";\n              dependencies?: string[];\n              /**\n               * Prompt when action is \"ai\"\n               */\n              prompt?: string;\n              /**\n               * Code to execute when action is \"code\"\n               */\n              code?: string;\n              /**\n               * Model to use when action is \"ai\"\n               */\n              model?: string;\n              /**\n               * ID of Workflow to execute when action is \"workflow\"\n               */\n              workflowId?: string;\n              enabled?: boolean;\n            };\n            /**\n             * TypeScript typings for the column. Recommended if the type is \"object\", ex: \"\\{ foo: string; bar: number \\}\"\n             */\n            typings?: string;\n          };\n        };\n      };\n      /**\n       * Additional properties can be provided, but they will be ignored if no column matches.\n       */\n      additionalProperties: true;\n      /**\n       * Array of required properties.\n       */\n      required?: string[];\n      type: \"object\";\n    };\n    /**\n     * Optional tags to help organize your tables. These should be passed here as an object representing key/value pairs.\n     */\n    tags?: {\n      [k: string]: string;\n    };\n    /**\n     * Indicates if the table is enabled for computation.\n     */\n    isComputeEnabled?: boolean;\n    /**\n     * Timestamp of table creation.\n     */\n    createdAt?: string;\n    /**\n     * Timestamp of the last table update.\n     */\n    updatedAt?: string;\n  };\n  /**\n   * The total number of rows present in the table.\n   */\n  rows: number;\n  /**\n   * The number of stale rows that are waiting to be processed\n   */\n  stale: number;\n  /**\n   * The number of rows that are waiting to be indexed (for search)\n   */\n  indexing: number;\n}\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetOrCreateTableRequestHeaders {}\n\nexport interface GetOrCreateTableRequestQuery {}\n\nexport interface GetOrCreateTableRequestParams {\n  table: string;\n}\n\nexport interface GetOrCreateTableRequestBody {\n  /**\n   * The 'factor' multiplies the row's data storage limit by 4KB and its quota count. It can only be increased (not decreased) after table creation via updateTable. For instance, a factor of 2 increases storage to 8KB but counts as 2 rows in your quota. The default factor is 1.\n   */\n  factor?: number;\n  /**\n   * A table designated as \"frozen\" is immutable in terms of its name and schema structure; modifications to its schema or a renaming operation are not permitted. The only action that can be taken on such a table is deletion. The schema established at the time of creation is locked in as the final structure. To implement any changes, the table must be duplicated with the desired alterations.\n   */\n  frozen?: boolean;\n  /**\n   * Designate a column as the primary unique identifier for this table. When set, a unique index is automatically created on this column, enabling significantly faster upsert operations. All values in this column must be unique across the table. When set to null, the key index is removed.\n   */\n  keyColumn?: string | null;\n  /**\n   * Opts a newly created table into the physical unique key contract.\n   */\n  keyColumnUnique?: boolean;\n  /**\n   * Provide an object or a JSON schema to define the user columns of the table. A maximum of 64 keys in the object/schema is allowed; system fields are excluded.\n   */\n  schema: {\n    [k: string]: any;\n  };\n  /**\n   * Optional tags to help organize your tables. These should be passed here as an object representing key/value pairs.\n   */\n  tags?: {\n    [k: string]: string;\n  };\n  /**\n   * Indicates if the table is enabled for computation.\n   */\n  isComputeEnabled?: boolean;\n}\n\nexport type GetOrCreateTableInput = GetOrCreateTableRequestBody & GetOrCreateTableRequestHeaders & GetOrCreateTableRequestQuery & GetOrCreateTableRequestParams\n\nexport type GetOrCreateTableRequest = {\n  headers: GetOrCreateTableRequestHeaders;\n  query: GetOrCreateTableRequestQuery;\n  params: GetOrCreateTableRequestParams;\n  body: GetOrCreateTableRequestBody;\n}\n\nexport const parseReq = (input: GetOrCreateTableInput): GetOrCreateTableRequest & { path: string } => {\n  return {\n    path: `/v1/tables/${encodeURIComponent(input['table'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'table': input['table'] },\n    body: { 'factor': input['factor'], 'frozen': input['frozen'], 'keyColumn': input['keyColumn'], 'keyColumnUnique': input['keyColumnUnique'], 'schema': input['schema'], 'tags': input['tags'], 'isComputeEnabled': input['isComputeEnabled'] },\n  }\n}\n\nexport interface GetOrCreateTableResponse {\n  table: {\n    /**\n     * Unique identifier for the table\n     */\n    id: string;\n    /**\n     * Required. This name is used to identify your table.\n     */\n    name: string;\n    /**\n     * The 'factor' multiplies the row's data storage limit by 4KB and its quota count. It can only be increased (not decreased) after table creation via updateTable. For instance, a factor of 2 increases storage to 8KB but counts as 2 rows in your quota. The default factor is 1.\n     */\n    factor?: number;\n    /**\n     * A table designated as \"frozen\" is immutable in terms of its name and schema structure; modifications to its schema or a renaming operation are not permitted. The only action that can be taken on such a table is deletion. The schema established at the time of creation is locked in as the final structure. To implement any changes, the table must be duplicated with the desired alterations.\n     */\n    frozen?: boolean;\n    /**\n     * Designate a column as the primary unique identifier for this table. When set, a unique index is automatically created on this column, enabling significantly faster upsert operations. All values in this column must be unique across the table. When set to null, the key index is removed.\n     */\n    keyColumn?: string | null;\n    keyColumnUnique?: boolean;\n    keyColumnUniqueState?: \"disabled\" | \"enabling\" | \"enabled\" | \"disabling\" | \"error\";\n    keyColumnUniqueOperationId?: string | null;\n    keyColumnUniqueAttempts?: number;\n    keyColumnUniqueLastErrorCode?: string | null;\n    uniqueGeneration?: number;\n    schemaGeneration?: number;\n    schema: {\n      $schema?: string;\n      /**\n       * List of keys/columns in the table.\n       */\n      properties: {\n        [k: string]: {\n          type: \"string\" | \"number\" | \"boolean\" | \"object\" | \"array\" | \"null\";\n          format?: \"date-time\";\n          description?: string;\n          /**\n           * String properties must match this pattern\n           */\n          pattern?: string;\n          /**\n           * String properties must be one of these values\n           */\n          enum?: string[];\n          /**\n           * Defines the shape of items in an array\n           */\n          items?: {\n            type: \"string\" | \"number\" | \"boolean\" | \"object\" | \"array\" | \"null\";\n            [k: string]: any;\n          };\n          nullable?: boolean;\n          properties?: {\n            [k: string]: {\n              type: \"string\" | \"number\" | \"boolean\" | \"object\" | \"array\" | \"null\";\n              [k: string]: any;\n            };\n          };\n          \"x-zui\": {\n            index: number;\n            /**\n             * [deprecated] ID of the column.\n             */\n            id?: string;\n            /**\n             * Indicates if the column is vectorized and searchable.\n             */\n            searchable?: boolean;\n            /**\n             * Indicates if the field is hidden in the UI\n             */\n            hidden?: boolean;\n            /**\n             * Order of the column in the UI\n             */\n            order?: number;\n            /**\n             * Width of the column in the UI\n             */\n            width?: number;\n            /**\n             * ID of the schema\n             */\n            schemaId?: string;\n            computed?: {\n              action: \"ai\" | \"code\" | \"workflow\";\n              dependencies?: string[];\n              /**\n               * Prompt when action is \"ai\"\n               */\n              prompt?: string;\n              /**\n               * Code to execute when action is \"code\"\n               */\n              code?: string;\n              /**\n               * Model to use when action is \"ai\"\n               */\n              model?: string;\n              /**\n               * ID of Workflow to execute when action is \"workflow\"\n               */\n              workflowId?: string;\n              enabled?: boolean;\n            };\n            /**\n             * TypeScript typings for the column. Recommended if the type is \"object\", ex: \"\\{ foo: string; bar: number \\}\"\n             */\n            typings?: string;\n          };\n        };\n      };\n      /**\n       * Additional properties can be provided, but they will be ignored if no column matches.\n       */\n      additionalProperties: true;\n      /**\n       * Array of required properties.\n       */\n      required?: string[];\n      type: \"object\";\n    };\n    /**\n     * Optional tags to help organize your tables. These should be passed here as an object representing key/value pairs.\n     */\n    tags?: {\n      [k: string]: string;\n    };\n    /**\n     * Indicates if the table is enabled for computation.\n     */\n    isComputeEnabled?: boolean;\n    /**\n     * Timestamp of table creation.\n     */\n    createdAt?: string;\n    /**\n     * Timestamp of the last table update.\n     */\n    updatedAt?: string;\n  };\n  /**\n   * Flag indicating if the table was newly created.\n   */\n  created: boolean;\n  /**\n   * The total number of rows present in the table.\n   */\n  rows: number;\n  /**\n   * The number of stale rows that are waiting to be processed\n   */\n  stale: number;\n  /**\n   * The number of rows that are waiting to be indexed (for search)\n   */\n  indexing: number;\n}\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CreateTableRequestHeaders {}\n\nexport interface CreateTableRequestQuery {}\n\nexport interface CreateTableRequestParams {}\n\nexport interface CreateTableRequestBody {\n  /**\n   * Required. This name is used to identify your table.\n   */\n  name: string;\n  /**\n   * The 'factor' multiplies the row's data storage limit by 4KB and its quota count. It can only be increased (not decreased) after table creation via updateTable. For instance, a factor of 2 increases storage to 8KB but counts as 2 rows in your quota. The default factor is 1.\n   */\n  factor?: number;\n  /**\n   * A table designated as \"frozen\" is immutable in terms of its name and schema structure; modifications to its schema or a renaming operation are not permitted. The only action that can be taken on such a table is deletion. The schema established at the time of creation is locked in as the final structure. To implement any changes, the table must be duplicated with the desired alterations.\n   */\n  frozen?: boolean;\n  /**\n   * Designate a column as the primary unique identifier for this table. When set, a unique index is automatically created on this column, enabling significantly faster upsert operations. All values in this column must be unique across the table. When set to null, the key index is removed.\n   */\n  keyColumn?: string | null;\n  /**\n   * Opts a newly created table into the physical unique key contract.\n   */\n  keyColumnUnique?: boolean;\n  /**\n   * Provide an object or a JSON schema to define the user columns of the table. A maximum of 64 keys in the object/schema is allowed; system fields are excluded.\n   */\n  schema: {\n    [k: string]: any;\n  };\n  /**\n   * Optional tags to help organize your tables. These should be passed here as an object representing key/value pairs.\n   */\n  tags?: {\n    [k: string]: string;\n  };\n  /**\n   * Indicates if the table is enabled for computation.\n   */\n  isComputeEnabled?: boolean;\n}\n\nexport type CreateTableInput = CreateTableRequestBody & CreateTableRequestHeaders & CreateTableRequestQuery & CreateTableRequestParams\n\nexport type CreateTableRequest = {\n  headers: CreateTableRequestHeaders;\n  query: CreateTableRequestQuery;\n  params: CreateTableRequestParams;\n  body: CreateTableRequestBody;\n}\n\nexport const parseReq = (input: CreateTableInput): CreateTableRequest & { path: string } => {\n  return {\n    path: `/v1/tables`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'name': input['name'], 'factor': input['factor'], 'frozen': input['frozen'], 'keyColumn': input['keyColumn'], 'keyColumnUnique': input['keyColumnUnique'], 'schema': input['schema'], 'tags': input['tags'], 'isComputeEnabled': input['isComputeEnabled'] },\n  }\n}\n\nexport interface CreateTableResponse {\n  table: {\n    /**\n     * Unique identifier for the table\n     */\n    id: string;\n    /**\n     * Required. This name is used to identify your table.\n     */\n    name: string;\n    /**\n     * The 'factor' multiplies the row's data storage limit by 4KB and its quota count. It can only be increased (not decreased) after table creation via updateTable. For instance, a factor of 2 increases storage to 8KB but counts as 2 rows in your quota. The default factor is 1.\n     */\n    factor?: number;\n    /**\n     * A table designated as \"frozen\" is immutable in terms of its name and schema structure; modifications to its schema or a renaming operation are not permitted. The only action that can be taken on such a table is deletion. The schema established at the time of creation is locked in as the final structure. To implement any changes, the table must be duplicated with the desired alterations.\n     */\n    frozen?: boolean;\n    /**\n     * Designate a column as the primary unique identifier for this table. When set, a unique index is automatically created on this column, enabling significantly faster upsert operations. All values in this column must be unique across the table. When set to null, the key index is removed.\n     */\n    keyColumn?: string | null;\n    keyColumnUnique?: boolean;\n    keyColumnUniqueState?: \"disabled\" | \"enabling\" | \"enabled\" | \"disabling\" | \"error\";\n    keyColumnUniqueOperationId?: string | null;\n    keyColumnUniqueAttempts?: number;\n    keyColumnUniqueLastErrorCode?: string | null;\n    uniqueGeneration?: number;\n    schemaGeneration?: number;\n    schema: {\n      $schema?: string;\n      /**\n       * List of keys/columns in the table.\n       */\n      properties: {\n        [k: string]: {\n          type: \"string\" | \"number\" | \"boolean\" | \"object\" | \"array\" | \"null\";\n          format?: \"date-time\";\n          description?: string;\n          /**\n           * String properties must match this pattern\n           */\n          pattern?: string;\n          /**\n           * String properties must be one of these values\n           */\n          enum?: string[];\n          /**\n           * Defines the shape of items in an array\n           */\n          items?: {\n            type: \"string\" | \"number\" | \"boolean\" | \"object\" | \"array\" | \"null\";\n            [k: string]: any;\n          };\n          nullable?: boolean;\n          properties?: {\n            [k: string]: {\n              type: \"string\" | \"number\" | \"boolean\" | \"object\" | \"array\" | \"null\";\n              [k: string]: any;\n            };\n          };\n          \"x-zui\": {\n            index: number;\n            /**\n             * [deprecated] ID of the column.\n             */\n            id?: string;\n            /**\n             * Indicates if the column is vectorized and searchable.\n             */\n            searchable?: boolean;\n            /**\n             * Indicates if the field is hidden in the UI\n             */\n            hidden?: boolean;\n            /**\n             * Order of the column in the UI\n             */\n            order?: number;\n            /**\n             * Width of the column in the UI\n             */\n            width?: number;\n            /**\n             * ID of the schema\n             */\n            schemaId?: string;\n            computed?: {\n              action: \"ai\" | \"code\" | \"workflow\";\n              dependencies?: string[];\n              /**\n               * Prompt when action is \"ai\"\n               */\n              prompt?: string;\n              /**\n               * Code to execute when action is \"code\"\n               */\n              code?: string;\n              /**\n               * Model to use when action is \"ai\"\n               */\n              model?: string;\n              /**\n               * ID of Workflow to execute when action is \"workflow\"\n               */\n              workflowId?: string;\n              enabled?: boolean;\n            };\n            /**\n             * TypeScript typings for the column. Recommended if the type is \"object\", ex: \"\\{ foo: string; bar: number \\}\"\n             */\n            typings?: string;\n          };\n        };\n      };\n      /**\n       * Additional properties can be provided, but they will be ignored if no column matches.\n       */\n      additionalProperties: true;\n      /**\n       * Array of required properties.\n       */\n      required?: string[];\n      type: \"object\";\n    };\n    /**\n     * Optional tags to help organize your tables. These should be passed here as an object representing key/value pairs.\n     */\n    tags?: {\n      [k: string]: string;\n    };\n    /**\n     * Indicates if the table is enabled for computation.\n     */\n    isComputeEnabled?: boolean;\n    /**\n     * Timestamp of table creation.\n     */\n    createdAt?: string;\n    /**\n     * Timestamp of the last table update.\n     */\n    updatedAt?: string;\n  };\n}\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface DuplicateTableRequestHeaders {}\n\nexport interface DuplicateTableRequestQuery {}\n\nexport interface DuplicateTableRequestParams {\n  sourceTableId: string;\n}\n\nexport interface DuplicateTableRequestBody {\n  tableName?: string;\n  /**\n   * Only duplicate the schema, not the content\n   */\n  schemaOnly?: boolean;\n  /**\n   * Override the factor for the duplicated table. If not provided, the new table will use the same factor as the source table.\n   */\n  factor?: number;\n}\n\nexport type DuplicateTableInput = DuplicateTableRequestBody & DuplicateTableRequestHeaders & DuplicateTableRequestQuery & DuplicateTableRequestParams\n\nexport type DuplicateTableRequest = {\n  headers: DuplicateTableRequestHeaders;\n  query: DuplicateTableRequestQuery;\n  params: DuplicateTableRequestParams;\n  body: DuplicateTableRequestBody;\n}\n\nexport const parseReq = (input: DuplicateTableInput): DuplicateTableRequest & { path: string } => {\n  return {\n    path: `/v1/tables/${encodeURIComponent(input['sourceTableId'])}/duplicate`,\n    headers: {  },\n    query: {  },\n    params: { 'sourceTableId': input['sourceTableId'] },\n    body: { 'tableName': input['tableName'], 'schemaOnly': input['schemaOnly'], 'factor': input['factor'] },\n  }\n}\n\nexport interface DuplicateTableResponse {\n  table: {\n    /**\n     * Unique identifier for the table\n     */\n    id: string;\n    /**\n     * Required. This name is used to identify your table.\n     */\n    name: string;\n    /**\n     * The 'factor' multiplies the row's data storage limit by 4KB and its quota count. It can only be increased (not decreased) after table creation via updateTable. For instance, a factor of 2 increases storage to 8KB but counts as 2 rows in your quota. The default factor is 1.\n     */\n    factor?: number;\n    /**\n     * A table designated as \"frozen\" is immutable in terms of its name and schema structure; modifications to its schema or a renaming operation are not permitted. The only action that can be taken on such a table is deletion. The schema established at the time of creation is locked in as the final structure. To implement any changes, the table must be duplicated with the desired alterations.\n     */\n    frozen?: boolean;\n    /**\n     * Designate a column as the primary unique identifier for this table. When set, a unique index is automatically created on this column, enabling significantly faster upsert operations. All values in this column must be unique across the table. When set to null, the key index is removed.\n     */\n    keyColumn?: string | null;\n    keyColumnUnique?: boolean;\n    keyColumnUniqueState?: \"disabled\" | \"enabling\" | \"enabled\" | \"disabling\" | \"error\";\n    keyColumnUniqueOperationId?: string | null;\n    keyColumnUniqueAttempts?: number;\n    keyColumnUniqueLastErrorCode?: string | null;\n    uniqueGeneration?: number;\n    schemaGeneration?: number;\n    schema: {\n      $schema?: string;\n      /**\n       * List of keys/columns in the table.\n       */\n      properties: {\n        [k: string]: {\n          type: \"string\" | \"number\" | \"boolean\" | \"object\" | \"array\" | \"null\";\n          format?: \"date-time\";\n          description?: string;\n          /**\n           * String properties must match this pattern\n           */\n          pattern?: string;\n          /**\n           * String properties must be one of these values\n           */\n          enum?: string[];\n          /**\n           * Defines the shape of items in an array\n           */\n          items?: {\n            type: \"string\" | \"number\" | \"boolean\" | \"object\" | \"array\" | \"null\";\n            [k: string]: any;\n          };\n          nullable?: boolean;\n          properties?: {\n            [k: string]: {\n              type: \"string\" | \"number\" | \"boolean\" | \"object\" | \"array\" | \"null\";\n              [k: string]: any;\n            };\n          };\n          \"x-zui\": {\n            index: number;\n            /**\n             * [deprecated] ID of the column.\n             */\n            id?: string;\n            /**\n             * Indicates if the column is vectorized and searchable.\n             */\n            searchable?: boolean;\n            /**\n             * Indicates if the field is hidden in the UI\n             */\n            hidden?: boolean;\n            /**\n             * Order of the column in the UI\n             */\n            order?: number;\n            /**\n             * Width of the column in the UI\n             */\n            width?: number;\n            /**\n             * ID of the schema\n             */\n            schemaId?: string;\n            computed?: {\n              action: \"ai\" | \"code\" | \"workflow\";\n              dependencies?: string[];\n              /**\n               * Prompt when action is \"ai\"\n               */\n              prompt?: string;\n              /**\n               * Code to execute when action is \"code\"\n               */\n              code?: string;\n              /**\n               * Model to use when action is \"ai\"\n               */\n              model?: string;\n              /**\n               * ID of Workflow to execute when action is \"workflow\"\n               */\n              workflowId?: string;\n              enabled?: boolean;\n            };\n            /**\n             * TypeScript typings for the column. Recommended if the type is \"object\", ex: \"\\{ foo: string; bar: number \\}\"\n             */\n            typings?: string;\n          };\n        };\n      };\n      /**\n       * Additional properties can be provided, but they will be ignored if no column matches.\n       */\n      additionalProperties: true;\n      /**\n       * Array of required properties.\n       */\n      required?: string[];\n      type: \"object\";\n    };\n    /**\n     * Optional tags to help organize your tables. These should be passed here as an object representing key/value pairs.\n     */\n    tags?: {\n      [k: string]: string;\n    };\n    /**\n     * Indicates if the table is enabled for computation.\n     */\n    isComputeEnabled?: boolean;\n    /**\n     * Timestamp of table creation.\n     */\n    createdAt?: string;\n    /**\n     * Timestamp of the last table update.\n     */\n    updatedAt?: string;\n  };\n  /**\n   * The total number of rows present in the source table.\n   */\n  rows: number;\n  job?: {\n    id: string;\n    status: string;\n  };\n}\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ExportTableRequestHeaders {}\n\nexport interface ExportTableRequestQuery {\n  format?: \"csv\" | \"json\";\n  compress?: boolean;\n}\n\nexport interface ExportTableRequestParams {\n  table: string;\n}\n\nexport interface ExportTableRequestBody {}\n\nexport type ExportTableInput = ExportTableRequestBody & ExportTableRequestHeaders & ExportTableRequestQuery & ExportTableRequestParams\n\nexport type ExportTableRequest = {\n  headers: ExportTableRequestHeaders;\n  query: ExportTableRequestQuery;\n  params: ExportTableRequestParams;\n  body: ExportTableRequestBody;\n}\n\nexport const parseReq = (input: ExportTableInput): ExportTableRequest & { path: string } => {\n  return {\n    path: `/v1/tables/${encodeURIComponent(input['table'])}/export`,\n    headers: {  },\n    query: { 'format': input['format'], 'compress': input['compress'] },\n    params: { 'table': input['table'] },\n    body: {  },\n  }\n}\n\nexport interface ExportTableResponse {\n  job: {\n    id: string;\n    botId: string;\n    tableId: string;\n    type: \"export\" | \"import\" | \"clear_column\" | \"clear_vectors\" | \"delete_rows\" | \"duplicate_table\";\n    status: \"pending\" | \"in_progress\" | \"finalizing\" | \"completed\" | \"failed\";\n    progress?: number;\n    inputFileId: string | null;\n    outputFileId: string | null;\n    createdAt: string;\n    updatedAt: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetTableJobsRequestHeaders {}\n\nexport interface GetTableJobsRequestQuery {}\n\nexport interface GetTableJobsRequestParams {\n  table: string;\n}\n\nexport interface GetTableJobsRequestBody {}\n\nexport type GetTableJobsInput = GetTableJobsRequestBody & GetTableJobsRequestHeaders & GetTableJobsRequestQuery & GetTableJobsRequestParams\n\nexport type GetTableJobsRequest = {\n  headers: GetTableJobsRequestHeaders;\n  query: GetTableJobsRequestQuery;\n  params: GetTableJobsRequestParams;\n  body: GetTableJobsRequestBody;\n}\n\nexport const parseReq = (input: GetTableJobsInput): GetTableJobsRequest & { path: string } => {\n  return {\n    path: `/v1/tables/${encodeURIComponent(input['table'])}/jobs`,\n    headers: {  },\n    query: {  },\n    params: { 'table': input['table'] },\n    body: {  },\n  }\n}\n\nexport interface GetTableJobsResponse {\n  jobs: {\n    id: string;\n    botId: string;\n    tableId: string;\n    type: \"export\" | \"import\" | \"clear_column\" | \"clear_vectors\" | \"delete_rows\" | \"duplicate_table\";\n    status: \"pending\" | \"in_progress\" | \"finalizing\" | \"completed\" | \"failed\";\n    progress?: number;\n    inputFileId: string | null;\n    outputFileId: string | null;\n    createdAt: string;\n    updatedAt: string;\n  }[];\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ImportTableRequestHeaders {}\n\nexport interface ImportTableRequestQuery {}\n\nexport interface ImportTableRequestParams {\n  table: string;\n}\n\nexport interface ImportTableRequestBody {\n  /**\n   * The file ID to import. It must have been uploaded to the Files API before. Supported formats: CSV, JSON (gzipped or not)\n   */\n  fileId: string;\n}\n\nexport type ImportTableInput = ImportTableRequestBody & ImportTableRequestHeaders & ImportTableRequestQuery & ImportTableRequestParams\n\nexport type ImportTableRequest = {\n  headers: ImportTableRequestHeaders;\n  query: ImportTableRequestQuery;\n  params: ImportTableRequestParams;\n  body: ImportTableRequestBody;\n}\n\nexport const parseReq = (input: ImportTableInput): ImportTableRequest & { path: string } => {\n  return {\n    path: `/v1/tables/${encodeURIComponent(input['table'])}/import`,\n    headers: {  },\n    query: {  },\n    params: { 'table': input['table'] },\n    body: { 'fileId': input['fileId'] },\n  }\n}\n\nexport interface ImportTableResponse {\n  job: {\n    id: string;\n    botId: string;\n    tableId: string;\n    type: \"export\" | \"import\" | \"clear_column\" | \"clear_vectors\" | \"delete_rows\" | \"duplicate_table\";\n    status: \"pending\" | \"in_progress\" | \"finalizing\" | \"completed\" | \"failed\";\n    progress?: number;\n    inputFileId: string | null;\n    outputFileId: string | null;\n    createdAt: string;\n    updatedAt: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface UpdateTableRequestHeaders {}\n\nexport interface UpdateTableRequestQuery {}\n\nexport interface UpdateTableRequestParams {\n  table: string;\n}\n\nexport interface UpdateTableRequestBody {\n  /**\n   * Required. This name is used to identify your table.\n   */\n  name?: string;\n  /**\n   * A table designated as \"frozen\" is immutable in terms of its name and schema structure; modifications to its schema or a renaming operation are not permitted. The only action that can be taken on such a table is deletion. The schema established at the time of creation is locked in as the final structure. To implement any changes, the table must be duplicated with the desired alterations.\n   */\n  frozen?: boolean;\n  /**\n   * Designate a column as the primary unique identifier for this table. When set, a unique index is automatically created on this column, enabling significantly faster upsert operations. All values in this column must be unique across the table. When set to null, the key index is removed.\n   */\n  keyColumn?: string | null;\n  /**\n   * Provide an object or a JSON schema to define the user columns of the table. A maximum of 64 keys in the object/schema is allowed; system fields are excluded.\n   */\n  schema?: {\n    [k: string]: any;\n  };\n  /**\n   * Optional tags to help organize your tables. These should be passed here as an object representing key/value pairs.\n   */\n  tags?: {\n    [k: string]: string;\n  };\n  /**\n   * Indicates if the table is enabled for computation.\n   */\n  isComputeEnabled?: boolean;\n  /**\n   * The 'factor' multiplies the row's data storage limit by 4KB and its quota count. It can only be increased, not decreased. For instance, a factor of 2 increases storage to 8KB but counts as 2 rows in your quota.\n   */\n  factor?: number;\n}\n\nexport type UpdateTableInput = UpdateTableRequestBody & UpdateTableRequestHeaders & UpdateTableRequestQuery & UpdateTableRequestParams\n\nexport type UpdateTableRequest = {\n  headers: UpdateTableRequestHeaders;\n  query: UpdateTableRequestQuery;\n  params: UpdateTableRequestParams;\n  body: UpdateTableRequestBody;\n}\n\nexport const parseReq = (input: UpdateTableInput): UpdateTableRequest & { path: string } => {\n  return {\n    path: `/v1/tables/${encodeURIComponent(input['table'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'table': input['table'] },\n    body: { 'name': input['name'], 'frozen': input['frozen'], 'keyColumn': input['keyColumn'], 'schema': input['schema'], 'tags': input['tags'], 'isComputeEnabled': input['isComputeEnabled'], 'factor': input['factor'] },\n  }\n}\n\nexport interface UpdateTableResponse {\n  table: {\n    /**\n     * Unique identifier for the table\n     */\n    id: string;\n    /**\n     * Required. This name is used to identify your table.\n     */\n    name: string;\n    /**\n     * The 'factor' multiplies the row's data storage limit by 4KB and its quota count. It can only be increased (not decreased) after table creation via updateTable. For instance, a factor of 2 increases storage to 8KB but counts as 2 rows in your quota. The default factor is 1.\n     */\n    factor?: number;\n    /**\n     * A table designated as \"frozen\" is immutable in terms of its name and schema structure; modifications to its schema or a renaming operation are not permitted. The only action that can be taken on such a table is deletion. The schema established at the time of creation is locked in as the final structure. To implement any changes, the table must be duplicated with the desired alterations.\n     */\n    frozen?: boolean;\n    /**\n     * Designate a column as the primary unique identifier for this table. When set, a unique index is automatically created on this column, enabling significantly faster upsert operations. All values in this column must be unique across the table. When set to null, the key index is removed.\n     */\n    keyColumn?: string | null;\n    keyColumnUnique?: boolean;\n    keyColumnUniqueState?: \"disabled\" | \"enabling\" | \"enabled\" | \"disabling\" | \"error\";\n    keyColumnUniqueOperationId?: string | null;\n    keyColumnUniqueAttempts?: number;\n    keyColumnUniqueLastErrorCode?: string | null;\n    uniqueGeneration?: number;\n    schemaGeneration?: number;\n    schema: {\n      $schema?: string;\n      /**\n       * List of keys/columns in the table.\n       */\n      properties: {\n        [k: string]: {\n          type: \"string\" | \"number\" | \"boolean\" | \"object\" | \"array\" | \"null\";\n          format?: \"date-time\";\n          description?: string;\n          /**\n           * String properties must match this pattern\n           */\n          pattern?: string;\n          /**\n           * String properties must be one of these values\n           */\n          enum?: string[];\n          /**\n           * Defines the shape of items in an array\n           */\n          items?: {\n            type: \"string\" | \"number\" | \"boolean\" | \"object\" | \"array\" | \"null\";\n            [k: string]: any;\n          };\n          nullable?: boolean;\n          properties?: {\n            [k: string]: {\n              type: \"string\" | \"number\" | \"boolean\" | \"object\" | \"array\" | \"null\";\n              [k: string]: any;\n            };\n          };\n          \"x-zui\": {\n            index: number;\n            /**\n             * [deprecated] ID of the column.\n             */\n            id?: string;\n            /**\n             * Indicates if the column is vectorized and searchable.\n             */\n            searchable?: boolean;\n            /**\n             * Indicates if the field is hidden in the UI\n             */\n            hidden?: boolean;\n            /**\n             * Order of the column in the UI\n             */\n            order?: number;\n            /**\n             * Width of the column in the UI\n             */\n            width?: number;\n            /**\n             * ID of the schema\n             */\n            schemaId?: string;\n            computed?: {\n              action: \"ai\" | \"code\" | \"workflow\";\n              dependencies?: string[];\n              /**\n               * Prompt when action is \"ai\"\n               */\n              prompt?: string;\n              /**\n               * Code to execute when action is \"code\"\n               */\n              code?: string;\n              /**\n               * Model to use when action is \"ai\"\n               */\n              model?: string;\n              /**\n               * ID of Workflow to execute when action is \"workflow\"\n               */\n              workflowId?: string;\n              enabled?: boolean;\n            };\n            /**\n             * TypeScript typings for the column. Recommended if the type is \"object\", ex: \"\\{ foo: string; bar: number \\}\"\n             */\n            typings?: string;\n          };\n        };\n      };\n      /**\n       * Additional properties can be provided, but they will be ignored if no column matches.\n       */\n      additionalProperties: true;\n      /**\n       * Array of required properties.\n       */\n      required?: string[];\n      type: \"object\";\n    };\n    /**\n     * Optional tags to help organize your tables. These should be passed here as an object representing key/value pairs.\n     */\n    tags?: {\n      [k: string]: string;\n    };\n    /**\n     * Indicates if the table is enabled for computation.\n     */\n    isComputeEnabled?: boolean;\n    /**\n     * Timestamp of table creation.\n     */\n    createdAt?: string;\n    /**\n     * Timestamp of the last table update.\n     */\n    updatedAt?: string;\n  };\n  /**\n   * List of columns that have become stale following the modification.\n   */\n  staleColumns?: string[];\n}\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface RenameTableColumnRequestHeaders {}\n\nexport interface RenameTableColumnRequestQuery {}\n\nexport interface RenameTableColumnRequestParams {\n  table: string;\n}\n\nexport interface RenameTableColumnRequestBody {\n  /**\n   * The existing name of the column.\n   */\n  name: string;\n  /**\n   * The new name to assign to the column.\n   */\n  newName: string;\n}\n\nexport type RenameTableColumnInput = RenameTableColumnRequestBody & RenameTableColumnRequestHeaders & RenameTableColumnRequestQuery & RenameTableColumnRequestParams\n\nexport type RenameTableColumnRequest = {\n  headers: RenameTableColumnRequestHeaders;\n  query: RenameTableColumnRequestQuery;\n  params: RenameTableColumnRequestParams;\n  body: RenameTableColumnRequestBody;\n}\n\nexport const parseReq = (input: RenameTableColumnInput): RenameTableColumnRequest & { path: string } => {\n  return {\n    path: `/v1/tables/${encodeURIComponent(input['table'])}/column`,\n    headers: {  },\n    query: {  },\n    params: { 'table': input['table'] },\n    body: { 'name': input['name'], 'newName': input['newName'] },\n  }\n}\n\nexport interface RenameTableColumnResponse {\n  table: {\n    /**\n     * Unique identifier for the table\n     */\n    id: string;\n    /**\n     * Required. This name is used to identify your table.\n     */\n    name: string;\n    /**\n     * The 'factor' multiplies the row's data storage limit by 4KB and its quota count. It can only be increased (not decreased) after table creation via updateTable. For instance, a factor of 2 increases storage to 8KB but counts as 2 rows in your quota. The default factor is 1.\n     */\n    factor?: number;\n    /**\n     * A table designated as \"frozen\" is immutable in terms of its name and schema structure; modifications to its schema or a renaming operation are not permitted. The only action that can be taken on such a table is deletion. The schema established at the time of creation is locked in as the final structure. To implement any changes, the table must be duplicated with the desired alterations.\n     */\n    frozen?: boolean;\n    /**\n     * Designate a column as the primary unique identifier for this table. When set, a unique index is automatically created on this column, enabling significantly faster upsert operations. All values in this column must be unique across the table. When set to null, the key index is removed.\n     */\n    keyColumn?: string | null;\n    keyColumnUnique?: boolean;\n    keyColumnUniqueState?: \"disabled\" | \"enabling\" | \"enabled\" | \"disabling\" | \"error\";\n    keyColumnUniqueOperationId?: string | null;\n    keyColumnUniqueAttempts?: number;\n    keyColumnUniqueLastErrorCode?: string | null;\n    uniqueGeneration?: number;\n    schemaGeneration?: number;\n    schema: {\n      $schema?: string;\n      /**\n       * List of keys/columns in the table.\n       */\n      properties: {\n        [k: string]: {\n          type: \"string\" | \"number\" | \"boolean\" | \"object\" | \"array\" | \"null\";\n          format?: \"date-time\";\n          description?: string;\n          /**\n           * String properties must match this pattern\n           */\n          pattern?: string;\n          /**\n           * String properties must be one of these values\n           */\n          enum?: string[];\n          /**\n           * Defines the shape of items in an array\n           */\n          items?: {\n            type: \"string\" | \"number\" | \"boolean\" | \"object\" | \"array\" | \"null\";\n            [k: string]: any;\n          };\n          nullable?: boolean;\n          properties?: {\n            [k: string]: {\n              type: \"string\" | \"number\" | \"boolean\" | \"object\" | \"array\" | \"null\";\n              [k: string]: any;\n            };\n          };\n          \"x-zui\": {\n            index: number;\n            /**\n             * [deprecated] ID of the column.\n             */\n            id?: string;\n            /**\n             * Indicates if the column is vectorized and searchable.\n             */\n            searchable?: boolean;\n            /**\n             * Indicates if the field is hidden in the UI\n             */\n            hidden?: boolean;\n            /**\n             * Order of the column in the UI\n             */\n            order?: number;\n            /**\n             * Width of the column in the UI\n             */\n            width?: number;\n            /**\n             * ID of the schema\n             */\n            schemaId?: string;\n            computed?: {\n              action: \"ai\" | \"code\" | \"workflow\";\n              dependencies?: string[];\n              /**\n               * Prompt when action is \"ai\"\n               */\n              prompt?: string;\n              /**\n               * Code to execute when action is \"code\"\n               */\n              code?: string;\n              /**\n               * Model to use when action is \"ai\"\n               */\n              model?: string;\n              /**\n               * ID of Workflow to execute when action is \"workflow\"\n               */\n              workflowId?: string;\n              enabled?: boolean;\n            };\n            /**\n             * TypeScript typings for the column. Recommended if the type is \"object\", ex: \"\\{ foo: string; bar: number \\}\"\n             */\n            typings?: string;\n          };\n        };\n      };\n      /**\n       * Additional properties can be provided, but they will be ignored if no column matches.\n       */\n      additionalProperties: true;\n      /**\n       * Array of required properties.\n       */\n      required?: string[];\n      type: \"object\";\n    };\n    /**\n     * Optional tags to help organize your tables. These should be passed here as an object representing key/value pairs.\n     */\n    tags?: {\n      [k: string]: string;\n    };\n    /**\n     * Indicates if the table is enabled for computation.\n     */\n    isComputeEnabled?: boolean;\n    /**\n     * Timestamp of table creation.\n     */\n    createdAt?: string;\n    /**\n     * Timestamp of the last table update.\n     */\n    updatedAt?: string;\n  };\n}\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface DeleteTableRequestHeaders {}\n\nexport interface DeleteTableRequestQuery {}\n\nexport interface DeleteTableRequestParams {\n  table: string;\n}\n\nexport interface DeleteTableRequestBody {}\n\nexport type DeleteTableInput = DeleteTableRequestBody & DeleteTableRequestHeaders & DeleteTableRequestQuery & DeleteTableRequestParams\n\nexport type DeleteTableRequest = {\n  headers: DeleteTableRequestHeaders;\n  query: DeleteTableRequestQuery;\n  params: DeleteTableRequestParams;\n  body: DeleteTableRequestBody;\n}\n\nexport const parseReq = (input: DeleteTableInput): DeleteTableRequest & { path: string } => {\n  return {\n    path: `/v1/tables/${encodeURIComponent(input['table'])}`,\n    headers: {  },\n    query: {  },\n    params: { 'table': input['table'] },\n    body: {  },\n  }\n}\n\nexport interface DeleteTableResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetTableRowRequestHeaders {}\n\nexport interface GetTableRowRequestQuery {\n  id: number;\n}\n\nexport interface GetTableRowRequestParams {\n  table: string;\n}\n\nexport interface GetTableRowRequestBody {}\n\nexport type GetTableRowInput = GetTableRowRequestBody & GetTableRowRequestHeaders & GetTableRowRequestQuery & GetTableRowRequestParams\n\nexport type GetTableRowRequest = {\n  headers: GetTableRowRequestHeaders;\n  query: GetTableRowRequestQuery;\n  params: GetTableRowRequestParams;\n  body: GetTableRowRequestBody;\n}\n\nexport const parseReq = (input: GetTableRowInput): GetTableRowRequest & { path: string } => {\n  return {\n    path: `/v1/tables/${encodeURIComponent(input['table'])}/row`,\n    headers: {  },\n    query: { 'id': input['id'] },\n    params: { 'table': input['table'] },\n    body: {  },\n  }\n}\n\nexport interface GetTableRowResponse {\n  row: {\n    /**\n     * Unique identifier for the row.\n     */\n    id: number;\n    /**\n     * System-managed optimistic concurrency token for the row.\n     */\n    rowVersion: number;\n    /**\n     * Timestamp of row creation.\n     */\n    createdAt: string;\n    /**\n     * Timestamp of the last row update.\n     */\n    updatedAt: string;\n    computed: {\n      [k: string]: {\n        status: string;\n        error?: string;\n        updatedBy?: string;\n        updatedAt?: string;\n      };\n    };\n    /**\n     * [Read-only] List of stale values that are waiting to be recomputed.\n     */\n    stale?: string[];\n    /**\n     * Optional numeric value indicating similarity, when using findTableRows.\n     */\n    similarity?: number;\n    [k: string]: any;\n  };\n}\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nimport type {\n  TableSystemFilter,\n  TableSystemOrderBy,\n} from '../../../tables/system-fields'\n\nexport interface FindTableRowsRequestHeaders {}\n\nexport interface FindTableRowsRequestQuery {}\n\nexport interface FindTableRowsRequestParams {\n  table: string;\n}\n\nexport interface FindTableRowsRequestBody {\n  /**\n   * Limit for pagination, specifying the maximum number of rows to return.\n   */\n  limit?: number;\n  /**\n   * Offset for pagination, specifying where to start returning rows from.\n   */\n  offset?: number;\n  /**\n   * Provide a mongodb-like filter to apply to the query. Example: \\{ \"name\": \\{ \"$eq\": \"John\" \\} \\}\n   */\n  filter?: TableSystemFilter;\n  /**\n   * Group the rows by a specific column and apply aggregations to them. Allowed values: key, avg, max, min, sum, count. Example: \\{ \"someId\": \"key\", \"orders\": [\"sum\", \"avg\"] \\}\n   */\n  group?: {\n    [k: string]: any;\n  };\n  /**\n   * Search term to apply to the row search. When using this parameter, some rows which doesn't match the search term will be returned, use the similarity field to know how much the row matches the search term.\n   */\n  search?: string;\n  /**\n   * Specify which columns to return in the response. Supports both top-level columns (e.g., \"name\") and nested attributes using dot notation (e.g., \"attributes.price\"). System columns (id, createdAt, updatedAt, etc.) are always included. If omitted, all columns are returned.\n   */\n  select?: string[];\n  /**\n   * Specifies the column by which to order the results. By default it is ordered by id. Build-in columns: id, createdAt, updatedAt\n   */\n  orderBy?: TableSystemOrderBy;\n  /**\n   * Specifies the direction of sorting, either ascending or descending.\n   */\n  orderDirection?: \"asc\" | \"desc\";\n}\n\nexport type FindTableRowsInput = FindTableRowsRequestBody & FindTableRowsRequestHeaders & FindTableRowsRequestQuery & FindTableRowsRequestParams\n\nexport type FindTableRowsRequest = {\n  headers: FindTableRowsRequestHeaders;\n  query: FindTableRowsRequestQuery;\n  params: FindTableRowsRequestParams;\n  body: FindTableRowsRequestBody;\n}\n\nexport const parseReq = (input: FindTableRowsInput): FindTableRowsRequest & { path: string } => {\n  return {\n    path: `/v1/tables/${encodeURIComponent(input['table'])}/rows/find`,\n    headers: {  },\n    query: {  },\n    params: { 'table': input['table'] },\n    body: { 'limit': input['limit'], 'offset': input['offset'], 'filter': input['filter'], 'group': input['group'], 'search': input['search'], 'select': input['select'], 'orderBy': input['orderBy'], 'orderDirection': input['orderDirection'] },\n  }\n}\n\nexport interface FindTableRowsResponse {\n  rows: {\n    /**\n     * Unique identifier for the row.\n     */\n    id: number;\n    /**\n     * System-managed optimistic concurrency token for the row.\n     */\n    rowVersion: number;\n    /**\n     * Timestamp of row creation.\n     */\n    createdAt: string;\n    /**\n     * Timestamp of the last row update.\n     */\n    updatedAt: string;\n    computed: {\n      [k: string]: {\n        status: string;\n        error?: string;\n        updatedBy?: string;\n        updatedAt?: string;\n      };\n    };\n    /**\n     * [Read-only] List of stale values that are waiting to be recomputed.\n     */\n    stale?: string[];\n    /**\n     * Optional numeric value indicating similarity, when using findTableRows.\n     */\n    similarity?: number;\n    [k: string]: any;\n  }[];\n  /**\n   * Flag indicating if there are more rows to fetch.\n   */\n  hasMore: boolean;\n  offset: number;\n  limit: number;\n  /**\n   * Alerts for minor issues that don't block the operation but suggest possible improvements.\n   */\n  warnings?: string[];\n}\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CreateTableRowsRequestHeaders {}\n\nexport interface CreateTableRowsRequestQuery {}\n\nexport interface CreateTableRowsRequestParams {\n  table: string;\n}\n\nexport interface CreateTableRowsRequestBody {\n  /**\n   * @minItems 1\n   * @maxItems 1000\n   */\n  rows: {\n    [k: string]: any;\n  }[];\n  /**\n   * Ensure computed columns are fully processed before returning the result. This is applicable only when the number of rows involved is fewer than 1.\n   */\n  waitComputed?: boolean;\n}\n\nexport type CreateTableRowsInput = CreateTableRowsRequestBody & CreateTableRowsRequestHeaders & CreateTableRowsRequestQuery & CreateTableRowsRequestParams\n\nexport type CreateTableRowsRequest = {\n  headers: CreateTableRowsRequestHeaders;\n  query: CreateTableRowsRequestQuery;\n  params: CreateTableRowsRequestParams;\n  body: CreateTableRowsRequestBody;\n}\n\nexport const parseReq = (input: CreateTableRowsInput): CreateTableRowsRequest & { path: string } => {\n  return {\n    path: `/v1/tables/${encodeURIComponent(input['table'])}/rows`,\n    headers: {  },\n    query: {  },\n    params: { 'table': input['table'] },\n    body: { 'rows': input['rows'], 'waitComputed': input['waitComputed'] },\n  }\n}\n\nexport interface CreateTableRowsResponse {\n  rows: {\n    /**\n     * Unique identifier for the row.\n     */\n    id: number;\n    /**\n     * System-managed optimistic concurrency token for the row.\n     */\n    rowVersion: number;\n    /**\n     * Timestamp of row creation.\n     */\n    createdAt: string;\n    /**\n     * Timestamp of the last row update.\n     */\n    updatedAt: string;\n    computed: {\n      [k: string]: {\n        status: string;\n        error?: string;\n        updatedBy?: string;\n        updatedAt?: string;\n      };\n    };\n    /**\n     * [Read-only] List of stale values that are waiting to be recomputed.\n     */\n    stale?: string[];\n    /**\n     * Optional numeric value indicating similarity, when using findTableRows.\n     */\n    similarity?: number;\n    [k: string]: any;\n  }[];\n  /**\n   * Alerts for minor issues that don't block the operation but suggest possible improvements.\n   */\n  warnings?: string[];\n  /**\n   * Critical issues in specific elements that prevent their successful processing, allowing partial operation success.\n   */\n  errors?: string[];\n}\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nimport type { TableSystemFilter } from '../../../tables/system-fields'\n\nexport interface DeleteTableRowsRequestHeaders {}\n\nexport interface DeleteTableRowsRequestQuery {}\n\nexport interface DeleteTableRowsRequestParams {\n  table: string;\n}\n\nexport interface DeleteTableRowsRequestBody {\n  /**\n   * @maxItems 1000\n   */\n  ids?: number[];\n  /**\n   * Filter to apply when deleting rows. Deletion with a filter is performed asynchronously in batches and returns a job object to track progress. Example: \\{ \"createdAt\": \\{ \"$lt\": \"2026-01-01\" \\} \\}\n   */\n  filter?: TableSystemFilter;\n  /**\n   * Flag to delete all rows. Use with caution as this action is irreversible.\n   */\n  deleteAllRows?: boolean;\n}\n\nexport type DeleteTableRowsInput = DeleteTableRowsRequestBody & DeleteTableRowsRequestHeaders & DeleteTableRowsRequestQuery & DeleteTableRowsRequestParams\n\nexport type DeleteTableRowsRequest = {\n  headers: DeleteTableRowsRequestHeaders;\n  query: DeleteTableRowsRequestQuery;\n  params: DeleteTableRowsRequestParams;\n  body: DeleteTableRowsRequestBody;\n}\n\nexport const parseReq = (input: DeleteTableRowsInput): DeleteTableRowsRequest & { path: string } => {\n  return {\n    path: `/v1/tables/${encodeURIComponent(input['table'])}/rows/delete`,\n    headers: {  },\n    query: {  },\n    params: { 'table': input['table'] },\n    body: { 'ids': input['ids'], 'filter': input['filter'], 'deleteAllRows': input['deleteAllRows'] },\n  }\n}\n\nexport interface DeleteTableRowsResponse {\n  deletedRows: number;\n  job?: {\n    id: string;\n    status: string;\n  };\n}\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface UpdateTableRowsRequestHeaders {}\n\nexport interface UpdateTableRowsRequestQuery {}\n\nexport interface UpdateTableRowsRequestParams {\n  table: string;\n}\n\nexport interface UpdateTableRowsRequestBody {\n  /**\n   * Rows with updated data, identified by ID.\n   *\n   * @minItems 1\n   * @maxItems 1000\n   */\n  rows: {\n    id: number;\n    /**\n     * Expected row version for optimistic concurrency control.\n     */\n    rowVersion?: number;\n    [k: string]: any;\n  }[];\n  /**\n   * Ensure computed columns are fully processed before returning the result. This is applicable only when the number of rows involved is fewer than 1.\n   */\n  waitComputed?: boolean;\n}\n\nexport type UpdateTableRowsInput = UpdateTableRowsRequestBody & UpdateTableRowsRequestHeaders & UpdateTableRowsRequestQuery & UpdateTableRowsRequestParams\n\nexport type UpdateTableRowsRequest = {\n  headers: UpdateTableRowsRequestHeaders;\n  query: UpdateTableRowsRequestQuery;\n  params: UpdateTableRowsRequestParams;\n  body: UpdateTableRowsRequestBody;\n}\n\nexport const parseReq = (input: UpdateTableRowsInput): UpdateTableRowsRequest & { path: string } => {\n  return {\n    path: `/v1/tables/${encodeURIComponent(input['table'])}/rows`,\n    headers: {  },\n    query: {  },\n    params: { 'table': input['table'] },\n    body: { 'rows': input['rows'], 'waitComputed': input['waitComputed'] },\n  }\n}\n\nexport interface UpdateTableRowsResponse {\n  rows: {\n    /**\n     * Unique identifier for the row.\n     */\n    id: number;\n    /**\n     * System-managed optimistic concurrency token for the row.\n     */\n    rowVersion: number;\n    /**\n     * Timestamp of row creation.\n     */\n    createdAt: string;\n    /**\n     * Timestamp of the last row update.\n     */\n    updatedAt: string;\n    computed: {\n      [k: string]: {\n        status: string;\n        error?: string;\n        updatedBy?: string;\n        updatedAt?: string;\n      };\n    };\n    /**\n     * [Read-only] List of stale values that are waiting to be recomputed.\n     */\n    stale?: string[];\n    /**\n     * Optional numeric value indicating similarity, when using findTableRows.\n     */\n    similarity?: number;\n    [k: string]: any;\n  }[];\n  /**\n   * Alerts for minor issues that don't block the operation but suggest possible improvements.\n   */\n  warnings?: string[];\n  /**\n   * Critical issues in specific elements that prevent their successful processing, allowing partial operation success.\n   */\n  errors?: string[];\n}\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface UpsertTableRowsRequestHeaders {}\n\nexport interface UpsertTableRowsRequestQuery {}\n\nexport interface UpsertTableRowsRequestParams {\n  table: string;\n}\n\nexport interface UpsertTableRowsRequestBody {\n  /**\n   * @minItems 1\n   * @maxItems 1000\n   */\n  rows: {\n    id?: number;\n    /**\n     * Expected row version for optimistic concurrency control.\n     */\n    rowVersion?: number;\n    [k: string]: any;\n  }[];\n  /**\n   * Determines if a row is inserted or updated. Defaults to \"id\".\n   */\n  keyColumn?: string;\n  /**\n   * Ensure computed columns are fully processed before returning the result. This is applicable only when the number of rows involved is fewer than 1.\n   */\n  waitComputed?: boolean;\n}\n\nexport type UpsertTableRowsInput = UpsertTableRowsRequestBody & UpsertTableRowsRequestHeaders & UpsertTableRowsRequestQuery & UpsertTableRowsRequestParams\n\nexport type UpsertTableRowsRequest = {\n  headers: UpsertTableRowsRequestHeaders;\n  query: UpsertTableRowsRequestQuery;\n  params: UpsertTableRowsRequestParams;\n  body: UpsertTableRowsRequestBody;\n}\n\nexport const parseReq = (input: UpsertTableRowsInput): UpsertTableRowsRequest & { path: string } => {\n  return {\n    path: `/v1/tables/${encodeURIComponent(input['table'])}/rows/upsert`,\n    headers: {  },\n    query: {  },\n    params: { 'table': input['table'] },\n    body: { 'rows': input['rows'], 'keyColumn': input['keyColumn'], 'waitComputed': input['waitComputed'] },\n  }\n}\n\nexport interface UpsertTableRowsResponse {\n  inserted: {\n    /**\n     * Unique identifier for the row.\n     */\n    id: number;\n    /**\n     * System-managed optimistic concurrency token for the row.\n     */\n    rowVersion: number;\n    /**\n     * Timestamp of row creation.\n     */\n    createdAt: string;\n    /**\n     * Timestamp of the last row update.\n     */\n    updatedAt: string;\n    computed: {\n      [k: string]: {\n        status: string;\n        error?: string;\n        updatedBy?: string;\n        updatedAt?: string;\n      };\n    };\n    /**\n     * [Read-only] List of stale values that are waiting to be recomputed.\n     */\n    stale?: string[];\n    /**\n     * Optional numeric value indicating similarity, when using findTableRows.\n     */\n    similarity?: number;\n    [k: string]: any;\n  }[];\n  updated: {\n    /**\n     * Unique identifier for the row.\n     */\n    id: number;\n    /**\n     * System-managed optimistic concurrency token for the row.\n     */\n    rowVersion: number;\n    /**\n     * Timestamp of row creation.\n     */\n    createdAt: string;\n    /**\n     * Timestamp of the last row update.\n     */\n    updatedAt: string;\n    computed: {\n      [k: string]: {\n        status: string;\n        error?: string;\n        updatedBy?: string;\n        updatedAt?: string;\n      };\n    };\n    /**\n     * [Read-only] List of stale values that are waiting to be recomputed.\n     */\n    stale?: string[];\n    /**\n     * Optional numeric value indicating similarity, when using findTableRows.\n     */\n    similarity?: number;\n    [k: string]: any;\n  }[];\n  /**\n   * Alerts for minor issues that don't block the operation but suggest possible improvements.\n   */\n  warnings?: string[];\n  /**\n   * Critical issues in specific elements that prevent their successful processing, allowing partial operation success.\n   */\n  errors?: string[];\n}\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nimport axios, { AxiosInstance } from 'axios'\nimport { errorFrom } from './errors'\nimport { toAxiosRequest } from './to-axios'\nimport * as createConversation from './operations/createConversation'\nimport * as getConversation from './operations/getConversation'\nimport * as listConversations from './operations/listConversations'\nimport * as getOrCreateConversation from './operations/getOrCreateConversation'\nimport * as updateConversation from './operations/updateConversation'\nimport * as deleteConversation from './operations/deleteConversation'\nimport * as listParticipants from './operations/listParticipants'\nimport * as addParticipant from './operations/addParticipant'\nimport * as getParticipant from './operations/getParticipant'\nimport * as removeParticipant from './operations/removeParticipant'\nimport * as createEvent from './operations/createEvent'\nimport * as getEvent from './operations/getEvent'\nimport * as listEvents from './operations/listEvents'\nimport * as cancelScheduledEvent from './operations/cancelScheduledEvent'\nimport * as createMessage from './operations/createMessage'\nimport * as getOrCreateMessage from './operations/getOrCreateMessage'\nimport * as getMessage from './operations/getMessage'\nimport * as updateMessage from './operations/updateMessage'\nimport * as listMessages from './operations/listMessages'\nimport * as deleteMessage from './operations/deleteMessage'\nimport * as initializeIncomingMessage from './operations/initializeIncomingMessage'\nimport * as importMessages from './operations/importMessages'\nimport * as createUser from './operations/createUser'\nimport * as getUser from './operations/getUser'\nimport * as listUsers from './operations/listUsers'\nimport * as getOrCreateUser from './operations/getOrCreateUser'\nimport * as updateUser from './operations/updateUser'\nimport * as deleteUser from './operations/deleteUser'\nimport * as setStateExpiry from './operations/setStateExpiry'\nimport * as getState from './operations/getState'\nimport * as setState from './operations/setState'\nimport * as getOrSetState from './operations/getOrSetState'\nimport * as patchState from './operations/patchState'\nimport * as callAction from './operations/callAction'\nimport * as configureIntegration from './operations/configureIntegration'\nimport * as createWorkflow from './operations/createWorkflow'\nimport * as getWorkflow from './operations/getWorkflow'\nimport * as updateWorkflow from './operations/updateWorkflow'\nimport * as deleteWorkflow from './operations/deleteWorkflow'\nimport * as listWorkflows from './operations/listWorkflows'\nimport * as getOrCreateWorkflow from './operations/getOrCreateWorkflow'\nimport * as listTagValues from './operations/listTagValues'\nimport * as trackAnalytics from './operations/trackAnalytics'\nimport * as captureObservation from './operations/captureObservation'\nimport * as runVrl from './operations/runVrl'\nimport * as getAccount from './operations/getAccount'\nimport * as updateAccount from './operations/updateAccount'\nimport * as deleteAccount from './operations/deleteAccount'\nimport * as listPersonalAccessTokens from './operations/listPersonalAccessTokens'\nimport * as createPersonalAccessToken from './operations/createPersonalAccessToken'\nimport * as deletePersonalAccessToken from './operations/deletePersonalAccessToken'\nimport * as setAccountPreference from './operations/setAccountPreference'\nimport * as getAccountPreference from './operations/getAccountPreference'\nimport * as listPublicIntegrations from './operations/listPublicIntegrations'\nimport * as getPublicIntegrationById from './operations/getPublicIntegrationById'\nimport * as getPublicIntegration from './operations/getPublicIntegration'\nimport * as listPublicPlugins from './operations/listPublicPlugins'\nimport * as getPublicPluginById from './operations/getPublicPluginById'\nimport * as getDereferencedPublicPluginById from './operations/getDereferencedPublicPluginById'\nimport * as getPublicPlugin from './operations/getPublicPlugin'\nimport * as getPublicPluginCode from './operations/getPublicPluginCode'\nimport * as listPublicInterfaces from './operations/listPublicInterfaces'\nimport * as getPublicInterfaceById from './operations/getPublicInterfaceById'\nimport * as getPublicInterface from './operations/getPublicInterface'\nimport * as createBot from './operations/createBot'\nimport * as updateBot from './operations/updateBot'\nimport * as rotateBotSigningSecrets from './operations/rotateBotSigningSecrets'\nimport * as transferBot from './operations/transferBot'\nimport * as listBots from './operations/listBots'\nimport * as getBot from './operations/getBot'\nimport * as deleteBot from './operations/deleteBot'\nimport * as getBotLogs from './operations/getBotLogs'\nimport * as getBotWebchat from './operations/getBotWebchat'\nimport * as getBotAnalytics from './operations/getBotAnalytics'\nimport * as listActionRuns from './operations/listActionRuns'\nimport * as getBotIssue from './operations/getBotIssue'\nimport * as listBotIssues from './operations/listBotIssues'\nimport * as deleteBotIssue from './operations/deleteBotIssue'\nimport * as listBotIssueEvents from './operations/listBotIssueEvents'\nimport * as listBotVersions from './operations/listBotVersions'\nimport * as getBotVersion from './operations/getBotVersion'\nimport * as getBotJson from './operations/getBotJson'\nimport * as publishFromBotJson from './operations/publishFromBotJson'\nimport * as createBotVersion from './operations/createBotVersion'\nimport * as deployBotVersion from './operations/deployBotVersion'\nimport * as createIntegrationShareableId from './operations/createIntegrationShareableId'\nimport * as deleteIntegrationShareableId from './operations/deleteIntegrationShareableId'\nimport * as getIntegrationShareableId from './operations/getIntegrationShareableId'\nimport * as unlinkSandboxedConversations from './operations/unlinkSandboxedConversations'\nimport * as listBotApiKeys from './operations/listBotApiKeys'\nimport * as createBotApiKey from './operations/createBotApiKey'\nimport * as deleteBotApiKey from './operations/deleteBotApiKey'\nimport * as getBotAllowlist from './operations/getBotAllowlist'\nimport * as updateBotAllowlist from './operations/updateBotAllowlist'\nimport * as migrateWorkspaceToV4 from './operations/migrateWorkspaceToV4'\nimport * as listWorkspaceInvoices from './operations/listWorkspaceInvoices'\nimport * as getUpcomingInvoice from './operations/getUpcomingInvoice'\nimport * as chargeWorkspaceUnpaidInvoices from './operations/chargeWorkspaceUnpaidInvoices'\nimport * as createWorkspace from './operations/createWorkspace'\nimport * as getPublicWorkspace from './operations/getPublicWorkspace'\nimport * as getWorkspace from './operations/getWorkspace'\nimport * as listWorkspaceUsages from './operations/listWorkspaceUsages'\nimport * as breakDownWorkspaceUsageByBot from './operations/breakDownWorkspaceUsageByBot'\nimport * as getAllWorkspaceQuotaCompletion from './operations/getAllWorkspaceQuotaCompletion'\nimport * as getWorkspaceQuota from './operations/getWorkspaceQuota'\nimport * as listWorkspaceQuotas from './operations/listWorkspaceQuotas'\nimport * as updateWorkspace from './operations/updateWorkspace'\nimport * as checkHandleAvailability from './operations/checkHandleAvailability'\nimport * as listWorkspaces from './operations/listWorkspaces'\nimport * as listPublicWorkspaces from './operations/listPublicWorkspaces'\nimport * as deleteWorkspace from './operations/deleteWorkspace'\nimport * as getAuditRecords from './operations/getAuditRecords'\nimport * as setWorkspacePreference from './operations/setWorkspacePreference'\nimport * as getWorkspacePreference from './operations/getWorkspacePreference'\nimport * as listWorkspaceMembers from './operations/listWorkspaceMembers'\nimport * as getWorkspaceMember from './operations/getWorkspaceMember'\nimport * as deleteWorkspaceMember from './operations/deleteWorkspaceMember'\nimport * as createWorkspaceMember from './operations/createWorkspaceMember'\nimport * as updateWorkspaceMember from './operations/updateWorkspaceMember'\nimport * as listIntegrationApiKeys from './operations/listIntegrationApiKeys'\nimport * as createIntegrationApiKey from './operations/createIntegrationApiKey'\nimport * as deleteIntegrationApiKey from './operations/deleteIntegrationApiKey'\nimport * as createIntegration from './operations/createIntegration'\nimport * as validateIntegrationCreation from './operations/validateIntegrationCreation'\nimport * as updateIntegration from './operations/updateIntegration'\nimport * as rotateIntegrationSigningSecrets from './operations/rotateIntegrationSigningSecrets'\nimport * as validateIntegrationUpdate from './operations/validateIntegrationUpdate'\nimport * as listIntegrations from './operations/listIntegrations'\nimport * as getIntegration from './operations/getIntegration'\nimport * as getIntegrationLogs from './operations/getIntegrationLogs'\nimport * as getIntegrationByName from './operations/getIntegrationByName'\nimport * as deleteIntegration from './operations/deleteIntegration'\nimport * as requestIntegrationVerification from './operations/requestIntegrationVerification'\nimport * as createInterface from './operations/createInterface'\nimport * as getInterface from './operations/getInterface'\nimport * as getInterfaceByName from './operations/getInterfaceByName'\nimport * as updateInterface from './operations/updateInterface'\nimport * as deleteInterface from './operations/deleteInterface'\nimport * as listInterfaces from './operations/listInterfaces'\nimport * as createPlugin from './operations/createPlugin'\nimport * as getPlugin from './operations/getPlugin'\nimport * as getDereferencedPlugin from './operations/getDereferencedPlugin'\nimport * as getPluginByName from './operations/getPluginByName'\nimport * as updatePlugin from './operations/updatePlugin'\nimport * as deletePlugin from './operations/deletePlugin'\nimport * as listPlugins from './operations/listPlugins'\nimport * as getPluginCode from './operations/getPluginCode'\nimport * as getUsage from './operations/getUsage'\nimport * as getMultipleUsages from './operations/getMultipleUsages'\nimport * as listUsageHistory from './operations/listUsageHistory'\nimport * as listUsageActivity from './operations/listUsageActivity'\nimport * as listUsageActivityDaily from './operations/listUsageActivityDaily'\nimport * as changeAISpendQuota from './operations/changeAISpendQuota'\nimport * as listActivities from './operations/listActivities'\nimport * as introspect from './operations/introspect'\nimport * as upsertFile from './operations/upsertFile'\nimport * as deleteFile from './operations/deleteFile'\nimport * as listFiles from './operations/listFiles'\nimport * as getFile from './operations/getFile'\nimport * as updateFileMetadata from './operations/updateFileMetadata'\nimport * as copyFile from './operations/copyFile'\nimport * as searchFiles from './operations/searchFiles'\nimport * as listFilePassages from './operations/listFilePassages'\nimport * as setFilePassages from './operations/setFilePassages'\nimport * as listFileTags from './operations/listFileTags'\nimport * as listFileTagValues from './operations/listFileTagValues'\nimport * as createKnowledgeBase from './operations/createKnowledgeBase'\nimport * as deleteKnowledgeBase from './operations/deleteKnowledgeBase'\nimport * as updateKnowledgeBase from './operations/updateKnowledgeBase'\nimport * as listKnowledgeBases from './operations/listKnowledgeBases'\nimport * as listTables from './operations/listTables'\nimport * as getTable from './operations/getTable'\nimport * as getOrCreateTable from './operations/getOrCreateTable'\nimport * as createTable from './operations/createTable'\nimport * as duplicateTable from './operations/duplicateTable'\nimport * as exportTable from './operations/exportTable'\nimport * as getTableJobs from './operations/getTableJobs'\nimport * as importTable from './operations/importTable'\nimport * as updateTable from './operations/updateTable'\nimport * as renameTableColumn from './operations/renameTableColumn'\nimport * as deleteTable from './operations/deleteTable'\nimport * as getTableRow from './operations/getTableRow'\nimport * as findTableRows from './operations/findTableRows'\nimport * as createTableRows from './operations/createTableRows'\nimport * as deleteTableRows from './operations/deleteTableRows'\nimport * as updateTableRows from './operations/updateTableRows'\nimport * as upsertTableRows from './operations/upsertTableRows'\n\nexport * from './models'\n\nexport * as createConversation from './operations/createConversation'\nexport * as getConversation from './operations/getConversation'\nexport * as listConversations from './operations/listConversations'\nexport * as getOrCreateConversation from './operations/getOrCreateConversation'\nexport * as updateConversation from './operations/updateConversation'\nexport * as deleteConversation from './operations/deleteConversation'\nexport * as listParticipants from './operations/listParticipants'\nexport * as addParticipant from './operations/addParticipant'\nexport * as getParticipant from './operations/getParticipant'\nexport * as removeParticipant from './operations/removeParticipant'\nexport * as createEvent from './operations/createEvent'\nexport * as getEvent from './operations/getEvent'\nexport * as listEvents from './operations/listEvents'\nexport * as cancelScheduledEvent from './operations/cancelScheduledEvent'\nexport * as createMessage from './operations/createMessage'\nexport * as getOrCreateMessage from './operations/getOrCreateMessage'\nexport * as getMessage from './operations/getMessage'\nexport * as updateMessage from './operations/updateMessage'\nexport * as listMessages from './operations/listMessages'\nexport * as deleteMessage from './operations/deleteMessage'\nexport * as initializeIncomingMessage from './operations/initializeIncomingMessage'\nexport * as importMessages from './operations/importMessages'\nexport * as createUser from './operations/createUser'\nexport * as getUser from './operations/getUser'\nexport * as listUsers from './operations/listUsers'\nexport * as getOrCreateUser from './operations/getOrCreateUser'\nexport * as updateUser from './operations/updateUser'\nexport * as deleteUser from './operations/deleteUser'\nexport * as setStateExpiry from './operations/setStateExpiry'\nexport * as getState from './operations/getState'\nexport * as setState from './operations/setState'\nexport * as getOrSetState from './operations/getOrSetState'\nexport * as patchState from './operations/patchState'\nexport * as callAction from './operations/callAction'\nexport * as configureIntegration from './operations/configureIntegration'\nexport * as createWorkflow from './operations/createWorkflow'\nexport * as getWorkflow from './operations/getWorkflow'\nexport * as updateWorkflow from './operations/updateWorkflow'\nexport * as deleteWorkflow from './operations/deleteWorkflow'\nexport * as listWorkflows from './operations/listWorkflows'\nexport * as getOrCreateWorkflow from './operations/getOrCreateWorkflow'\nexport * as listTagValues from './operations/listTagValues'\nexport * as trackAnalytics from './operations/trackAnalytics'\nexport * as captureObservation from './operations/captureObservation'\nexport * as runVrl from './operations/runVrl'\nexport * as getAccount from './operations/getAccount'\nexport * as updateAccount from './operations/updateAccount'\nexport * as deleteAccount from './operations/deleteAccount'\nexport * as listPersonalAccessTokens from './operations/listPersonalAccessTokens'\nexport * as createPersonalAccessToken from './operations/createPersonalAccessToken'\nexport * as deletePersonalAccessToken from './operations/deletePersonalAccessToken'\nexport * as setAccountPreference from './operations/setAccountPreference'\nexport * as getAccountPreference from './operations/getAccountPreference'\nexport * as listPublicIntegrations from './operations/listPublicIntegrations'\nexport * as getPublicIntegrationById from './operations/getPublicIntegrationById'\nexport * as getPublicIntegration from './operations/getPublicIntegration'\nexport * as listPublicPlugins from './operations/listPublicPlugins'\nexport * as getPublicPluginById from './operations/getPublicPluginById'\nexport * as getDereferencedPublicPluginById from './operations/getDereferencedPublicPluginById'\nexport * as getPublicPlugin from './operations/getPublicPlugin'\nexport * as getPublicPluginCode from './operations/getPublicPluginCode'\nexport * as listPublicInterfaces from './operations/listPublicInterfaces'\nexport * as getPublicInterfaceById from './operations/getPublicInterfaceById'\nexport * as getPublicInterface from './operations/getPublicInterface'\nexport * as createBot from './operations/createBot'\nexport * as updateBot from './operations/updateBot'\nexport * as rotateBotSigningSecrets from './operations/rotateBotSigningSecrets'\nexport * as transferBot from './operations/transferBot'\nexport * as listBots from './operations/listBots'\nexport * as getBot from './operations/getBot'\nexport * as deleteBot from './operations/deleteBot'\nexport * as getBotLogs from './operations/getBotLogs'\nexport * as getBotWebchat from './operations/getBotWebchat'\nexport * as getBotAnalytics from './operations/getBotAnalytics'\nexport * as listActionRuns from './operations/listActionRuns'\nexport * as getBotIssue from './operations/getBotIssue'\nexport * as listBotIssues from './operations/listBotIssues'\nexport * as deleteBotIssue from './operations/deleteBotIssue'\nexport * as listBotIssueEvents from './operations/listBotIssueEvents'\nexport * as listBotVersions from './operations/listBotVersions'\nexport * as getBotVersion from './operations/getBotVersion'\nexport * as getBotJson from './operations/getBotJson'\nexport * as publishFromBotJson from './operations/publishFromBotJson'\nexport * as createBotVersion from './operations/createBotVersion'\nexport * as deployBotVersion from './operations/deployBotVersion'\nexport * as createIntegrationShareableId from './operations/createIntegrationShareableId'\nexport * as deleteIntegrationShareableId from './operations/deleteIntegrationShareableId'\nexport * as getIntegrationShareableId from './operations/getIntegrationShareableId'\nexport * as unlinkSandboxedConversations from './operations/unlinkSandboxedConversations'\nexport * as listBotApiKeys from './operations/listBotApiKeys'\nexport * as createBotApiKey from './operations/createBotApiKey'\nexport * as deleteBotApiKey from './operations/deleteBotApiKey'\nexport * as getBotAllowlist from './operations/getBotAllowlist'\nexport * as updateBotAllowlist from './operations/updateBotAllowlist'\nexport * as migrateWorkspaceToV4 from './operations/migrateWorkspaceToV4'\nexport * as listWorkspaceInvoices from './operations/listWorkspaceInvoices'\nexport * as getUpcomingInvoice from './operations/getUpcomingInvoice'\nexport * as chargeWorkspaceUnpaidInvoices from './operations/chargeWorkspaceUnpaidInvoices'\nexport * as createWorkspace from './operations/createWorkspace'\nexport * as getPublicWorkspace from './operations/getPublicWorkspace'\nexport * as getWorkspace from './operations/getWorkspace'\nexport * as listWorkspaceUsages from './operations/listWorkspaceUsages'\nexport * as breakDownWorkspaceUsageByBot from './operations/breakDownWorkspaceUsageByBot'\nexport * as getAllWorkspaceQuotaCompletion from './operations/getAllWorkspaceQuotaCompletion'\nexport * as getWorkspaceQuota from './operations/getWorkspaceQuota'\nexport * as listWorkspaceQuotas from './operations/listWorkspaceQuotas'\nexport * as updateWorkspace from './operations/updateWorkspace'\nexport * as checkHandleAvailability from './operations/checkHandleAvailability'\nexport * as listWorkspaces from './operations/listWorkspaces'\nexport * as listPublicWorkspaces from './operations/listPublicWorkspaces'\nexport * as deleteWorkspace from './operations/deleteWorkspace'\nexport * as getAuditRecords from './operations/getAuditRecords'\nexport * as setWorkspacePreference from './operations/setWorkspacePreference'\nexport * as getWorkspacePreference from './operations/getWorkspacePreference'\nexport * as listWorkspaceMembers from './operations/listWorkspaceMembers'\nexport * as getWorkspaceMember from './operations/getWorkspaceMember'\nexport * as deleteWorkspaceMember from './operations/deleteWorkspaceMember'\nexport * as createWorkspaceMember from './operations/createWorkspaceMember'\nexport * as updateWorkspaceMember from './operations/updateWorkspaceMember'\nexport * as listIntegrationApiKeys from './operations/listIntegrationApiKeys'\nexport * as createIntegrationApiKey from './operations/createIntegrationApiKey'\nexport * as deleteIntegrationApiKey from './operations/deleteIntegrationApiKey'\nexport * as createIntegration from './operations/createIntegration'\nexport * as validateIntegrationCreation from './operations/validateIntegrationCreation'\nexport * as updateIntegration from './operations/updateIntegration'\nexport * as rotateIntegrationSigningSecrets from './operations/rotateIntegrationSigningSecrets'\nexport * as validateIntegrationUpdate from './operations/validateIntegrationUpdate'\nexport * as listIntegrations from './operations/listIntegrations'\nexport * as getIntegration from './operations/getIntegration'\nexport * as getIntegrationLogs from './operations/getIntegrationLogs'\nexport * as getIntegrationByName from './operations/getIntegrationByName'\nexport * as deleteIntegration from './operations/deleteIntegration'\nexport * as requestIntegrationVerification from './operations/requestIntegrationVerification'\nexport * as createInterface from './operations/createInterface'\nexport * as getInterface from './operations/getInterface'\nexport * as getInterfaceByName from './operations/getInterfaceByName'\nexport * as updateInterface from './operations/updateInterface'\nexport * as deleteInterface from './operations/deleteInterface'\nexport * as listInterfaces from './operations/listInterfaces'\nexport * as createPlugin from './operations/createPlugin'\nexport * as getPlugin from './operations/getPlugin'\nexport * as getDereferencedPlugin from './operations/getDereferencedPlugin'\nexport * as getPluginByName from './operations/getPluginByName'\nexport * as updatePlugin from './operations/updatePlugin'\nexport * as deletePlugin from './operations/deletePlugin'\nexport * as listPlugins from './operations/listPlugins'\nexport * as getPluginCode from './operations/getPluginCode'\nexport * as getUsage from './operations/getUsage'\nexport * as getMultipleUsages from './operations/getMultipleUsages'\nexport * as listUsageHistory from './operations/listUsageHistory'\nexport * as listUsageActivity from './operations/listUsageActivity'\nexport * as listUsageActivityDaily from './operations/listUsageActivityDaily'\nexport * as changeAISpendQuota from './operations/changeAISpendQuota'\nexport * as listActivities from './operations/listActivities'\nexport * as introspect from './operations/introspect'\nexport * as upsertFile from './operations/upsertFile'\nexport * as deleteFile from './operations/deleteFile'\nexport * as listFiles from './operations/listFiles'\nexport * as getFile from './operations/getFile'\nexport * as updateFileMetadata from './operations/updateFileMetadata'\nexport * as copyFile from './operations/copyFile'\nexport * as searchFiles from './operations/searchFiles'\nexport * as listFilePassages from './operations/listFilePassages'\nexport * as setFilePassages from './operations/setFilePassages'\nexport * as listFileTags from './operations/listFileTags'\nexport * as listFileTagValues from './operations/listFileTagValues'\nexport * as createKnowledgeBase from './operations/createKnowledgeBase'\nexport * as deleteKnowledgeBase from './operations/deleteKnowledgeBase'\nexport * as updateKnowledgeBase from './operations/updateKnowledgeBase'\nexport * as listKnowledgeBases from './operations/listKnowledgeBases'\nexport * as listTables from './operations/listTables'\nexport * as getTable from './operations/getTable'\nexport * as getOrCreateTable from './operations/getOrCreateTable'\nexport * as createTable from './operations/createTable'\nexport * as duplicateTable from './operations/duplicateTable'\nexport * as exportTable from './operations/exportTable'\nexport * as getTableJobs from './operations/getTableJobs'\nexport * as importTable from './operations/importTable'\nexport * as updateTable from './operations/updateTable'\nexport * as renameTableColumn from './operations/renameTableColumn'\nexport * as deleteTable from './operations/deleteTable'\nexport * as getTableRow from './operations/getTableRow'\nexport * as findTableRows from './operations/findTableRows'\nexport * as createTableRows from './operations/createTableRows'\nexport * as deleteTableRows from './operations/deleteTableRows'\nexport * as updateTableRows from './operations/updateTableRows'\nexport * as upsertTableRows from './operations/upsertTableRows'\n\nexport const apiVersion = '1.108.0'\n\nexport type ClientProps = {\n  toAxiosRequest: typeof toAxiosRequest\n  toApiError: typeof toApiError\n}\n\nexport class Client {\n\n  public constructor(private axiosInstance: AxiosInstance, private props: Partial<ClientProps> = {}) {}\n\n  public readonly createConversation = async (input: createConversation.CreateConversationInput): Promise<createConversation.CreateConversationResponse> => {\n    const { path, headers, query, body } = createConversation.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<createConversation.CreateConversationResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getConversation = async (input: getConversation.GetConversationInput): Promise<getConversation.GetConversationResponse> => {\n    const { path, headers, query, body } = getConversation.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getConversation.GetConversationResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listConversations = async (input: listConversations.ListConversationsInput): Promise<listConversations.ListConversationsResponse> => {\n    const { path, headers, query, body } = listConversations.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listConversations.ListConversationsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getOrCreateConversation = async (input: getOrCreateConversation.GetOrCreateConversationInput): Promise<getOrCreateConversation.GetOrCreateConversationResponse> => {\n    const { path, headers, query, body } = getOrCreateConversation.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getOrCreateConversation.GetOrCreateConversationResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly updateConversation = async (input: updateConversation.UpdateConversationInput): Promise<updateConversation.UpdateConversationResponse> => {\n    const { path, headers, query, body } = updateConversation.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"put\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<updateConversation.UpdateConversationResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly deleteConversation = async (input: deleteConversation.DeleteConversationInput): Promise<deleteConversation.DeleteConversationResponse> => {\n    const { path, headers, query, body } = deleteConversation.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"delete\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<deleteConversation.DeleteConversationResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listParticipants = async (input: listParticipants.ListParticipantsInput): Promise<listParticipants.ListParticipantsResponse> => {\n    const { path, headers, query, body } = listParticipants.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listParticipants.ListParticipantsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly addParticipant = async (input: addParticipant.AddParticipantInput): Promise<addParticipant.AddParticipantResponse> => {\n    const { path, headers, query, body } = addParticipant.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<addParticipant.AddParticipantResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getParticipant = async (input: getParticipant.GetParticipantInput): Promise<getParticipant.GetParticipantResponse> => {\n    const { path, headers, query, body } = getParticipant.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getParticipant.GetParticipantResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly removeParticipant = async (input: removeParticipant.RemoveParticipantInput): Promise<removeParticipant.RemoveParticipantResponse> => {\n    const { path, headers, query, body } = removeParticipant.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"delete\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<removeParticipant.RemoveParticipantResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly createEvent = async (input: createEvent.CreateEventInput): Promise<createEvent.CreateEventResponse> => {\n    const { path, headers, query, body } = createEvent.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<createEvent.CreateEventResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getEvent = async (input: getEvent.GetEventInput): Promise<getEvent.GetEventResponse> => {\n    const { path, headers, query, body } = getEvent.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getEvent.GetEventResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listEvents = async (input: listEvents.ListEventsInput): Promise<listEvents.ListEventsResponse> => {\n    const { path, headers, query, body } = listEvents.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listEvents.ListEventsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly cancelScheduledEvent = async (input: cancelScheduledEvent.CancelScheduledEventInput): Promise<cancelScheduledEvent.CancelScheduledEventResponse> => {\n    const { path, headers, query, body } = cancelScheduledEvent.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"delete\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<cancelScheduledEvent.CancelScheduledEventResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly createMessage = async (input: createMessage.CreateMessageInput): Promise<createMessage.CreateMessageResponse> => {\n    const { path, headers, query, body } = createMessage.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<createMessage.CreateMessageResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getOrCreateMessage = async (input: getOrCreateMessage.GetOrCreateMessageInput): Promise<getOrCreateMessage.GetOrCreateMessageResponse> => {\n    const { path, headers, query, body } = getOrCreateMessage.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getOrCreateMessage.GetOrCreateMessageResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getMessage = async (input: getMessage.GetMessageInput): Promise<getMessage.GetMessageResponse> => {\n    const { path, headers, query, body } = getMessage.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getMessage.GetMessageResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly updateMessage = async (input: updateMessage.UpdateMessageInput): Promise<updateMessage.UpdateMessageResponse> => {\n    const { path, headers, query, body } = updateMessage.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"put\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<updateMessage.UpdateMessageResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listMessages = async (input: listMessages.ListMessagesInput): Promise<listMessages.ListMessagesResponse> => {\n    const { path, headers, query, body } = listMessages.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listMessages.ListMessagesResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly deleteMessage = async (input: deleteMessage.DeleteMessageInput): Promise<deleteMessage.DeleteMessageResponse> => {\n    const { path, headers, query, body } = deleteMessage.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"delete\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<deleteMessage.DeleteMessageResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly initializeIncomingMessage = async (input: initializeIncomingMessage.InitializeIncomingMessageInput): Promise<initializeIncomingMessage.InitializeIncomingMessageResponse> => {\n    const { path, headers, query, body } = initializeIncomingMessage.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<initializeIncomingMessage.InitializeIncomingMessageResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly importMessages = async (input: importMessages.ImportMessagesInput): Promise<importMessages.ImportMessagesResponse> => {\n    const { path, headers, query, body } = importMessages.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<importMessages.ImportMessagesResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly createUser = async (input: createUser.CreateUserInput): Promise<createUser.CreateUserResponse> => {\n    const { path, headers, query, body } = createUser.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<createUser.CreateUserResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getUser = async (input: getUser.GetUserInput): Promise<getUser.GetUserResponse> => {\n    const { path, headers, query, body } = getUser.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getUser.GetUserResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listUsers = async (input: listUsers.ListUsersInput): Promise<listUsers.ListUsersResponse> => {\n    const { path, headers, query, body } = listUsers.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listUsers.ListUsersResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getOrCreateUser = async (input: getOrCreateUser.GetOrCreateUserInput): Promise<getOrCreateUser.GetOrCreateUserResponse> => {\n    const { path, headers, query, body } = getOrCreateUser.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getOrCreateUser.GetOrCreateUserResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly updateUser = async (input: updateUser.UpdateUserInput): Promise<updateUser.UpdateUserResponse> => {\n    const { path, headers, query, body } = updateUser.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"put\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<updateUser.UpdateUserResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly deleteUser = async (input: deleteUser.DeleteUserInput): Promise<deleteUser.DeleteUserResponse> => {\n    const { path, headers, query, body } = deleteUser.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"delete\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<deleteUser.DeleteUserResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly setStateExpiry = async (input: setStateExpiry.SetStateExpiryInput): Promise<setStateExpiry.SetStateExpiryResponse> => {\n    const { path, headers, query, body } = setStateExpiry.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<setStateExpiry.SetStateExpiryResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getState = async (input: getState.GetStateInput): Promise<getState.GetStateResponse> => {\n    const { path, headers, query, body } = getState.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getState.GetStateResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly setState = async (input: setState.SetStateInput): Promise<setState.SetStateResponse> => {\n    const { path, headers, query, body } = setState.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<setState.SetStateResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getOrSetState = async (input: getOrSetState.GetOrSetStateInput): Promise<getOrSetState.GetOrSetStateResponse> => {\n    const { path, headers, query, body } = getOrSetState.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getOrSetState.GetOrSetStateResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly patchState = async (input: patchState.PatchStateInput): Promise<patchState.PatchStateResponse> => {\n    const { path, headers, query, body } = patchState.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"patch\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<patchState.PatchStateResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly callAction = async (input: callAction.CallActionInput): Promise<callAction.CallActionResponse> => {\n    const { path, headers, query, body } = callAction.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<callAction.CallActionResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly configureIntegration = async (input: configureIntegration.ConfigureIntegrationInput): Promise<configureIntegration.ConfigureIntegrationResponse> => {\n    const { path, headers, query, body } = configureIntegration.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<configureIntegration.ConfigureIntegrationResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly createWorkflow = async (input: createWorkflow.CreateWorkflowInput): Promise<createWorkflow.CreateWorkflowResponse> => {\n    const { path, headers, query, body } = createWorkflow.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<createWorkflow.CreateWorkflowResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getWorkflow = async (input: getWorkflow.GetWorkflowInput): Promise<getWorkflow.GetWorkflowResponse> => {\n    const { path, headers, query, body } = getWorkflow.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getWorkflow.GetWorkflowResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly updateWorkflow = async (input: updateWorkflow.UpdateWorkflowInput): Promise<updateWorkflow.UpdateWorkflowResponse> => {\n    const { path, headers, query, body } = updateWorkflow.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"put\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<updateWorkflow.UpdateWorkflowResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly deleteWorkflow = async (input: deleteWorkflow.DeleteWorkflowInput): Promise<deleteWorkflow.DeleteWorkflowResponse> => {\n    const { path, headers, query, body } = deleteWorkflow.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"delete\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<deleteWorkflow.DeleteWorkflowResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listWorkflows = async (input: listWorkflows.ListWorkflowsInput): Promise<listWorkflows.ListWorkflowsResponse> => {\n    const { path, headers, query, body } = listWorkflows.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listWorkflows.ListWorkflowsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getOrCreateWorkflow = async (input: getOrCreateWorkflow.GetOrCreateWorkflowInput): Promise<getOrCreateWorkflow.GetOrCreateWorkflowResponse> => {\n    const { path, headers, query, body } = getOrCreateWorkflow.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getOrCreateWorkflow.GetOrCreateWorkflowResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listTagValues = async (input: listTagValues.ListTagValuesInput): Promise<listTagValues.ListTagValuesResponse> => {\n    const { path, headers, query, body } = listTagValues.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listTagValues.ListTagValuesResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly trackAnalytics = async (input: trackAnalytics.TrackAnalyticsInput): Promise<trackAnalytics.TrackAnalyticsResponse> => {\n    const { path, headers, query, body } = trackAnalytics.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<trackAnalytics.TrackAnalyticsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly captureObservation = async (input: captureObservation.CaptureObservationInput): Promise<captureObservation.CaptureObservationResponse> => {\n    const { path, headers, query, body } = captureObservation.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<captureObservation.CaptureObservationResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly runVrl = async (input: runVrl.RunVrlInput): Promise<runVrl.RunVrlResponse> => {\n    const { path, headers, query, body } = runVrl.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<runVrl.RunVrlResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getAccount = async (input: getAccount.GetAccountInput): Promise<getAccount.GetAccountResponse> => {\n    const { path, headers, query, body } = getAccount.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getAccount.GetAccountResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly updateAccount = async (input: updateAccount.UpdateAccountInput): Promise<updateAccount.UpdateAccountResponse> => {\n    const { path, headers, query, body } = updateAccount.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"put\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<updateAccount.UpdateAccountResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly deleteAccount = async (input: deleteAccount.DeleteAccountInput): Promise<deleteAccount.DeleteAccountResponse> => {\n    const { path, headers, query, body } = deleteAccount.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<deleteAccount.DeleteAccountResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listPersonalAccessTokens = async (input: listPersonalAccessTokens.ListPersonalAccessTokensInput): Promise<listPersonalAccessTokens.ListPersonalAccessTokensResponse> => {\n    const { path, headers, query, body } = listPersonalAccessTokens.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listPersonalAccessTokens.ListPersonalAccessTokensResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly createPersonalAccessToken = async (input: createPersonalAccessToken.CreatePersonalAccessTokenInput): Promise<createPersonalAccessToken.CreatePersonalAccessTokenResponse> => {\n    const { path, headers, query, body } = createPersonalAccessToken.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<createPersonalAccessToken.CreatePersonalAccessTokenResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly deletePersonalAccessToken = async (input: deletePersonalAccessToken.DeletePersonalAccessTokenInput): Promise<deletePersonalAccessToken.DeletePersonalAccessTokenResponse> => {\n    const { path, headers, query, body } = deletePersonalAccessToken.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"delete\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<deletePersonalAccessToken.DeletePersonalAccessTokenResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly setAccountPreference = async (input: setAccountPreference.SetAccountPreferenceInput): Promise<setAccountPreference.SetAccountPreferenceResponse> => {\n    const { path, headers, query, body } = setAccountPreference.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<setAccountPreference.SetAccountPreferenceResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getAccountPreference = async (input: getAccountPreference.GetAccountPreferenceInput): Promise<getAccountPreference.GetAccountPreferenceResponse> => {\n    const { path, headers, query, body } = getAccountPreference.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getAccountPreference.GetAccountPreferenceResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listPublicIntegrations = async (input: listPublicIntegrations.ListPublicIntegrationsInput): Promise<listPublicIntegrations.ListPublicIntegrationsResponse> => {\n    const { path, headers, query, body } = listPublicIntegrations.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listPublicIntegrations.ListPublicIntegrationsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getPublicIntegrationById = async (input: getPublicIntegrationById.GetPublicIntegrationByIdInput): Promise<getPublicIntegrationById.GetPublicIntegrationByIdResponse> => {\n    const { path, headers, query, body } = getPublicIntegrationById.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getPublicIntegrationById.GetPublicIntegrationByIdResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getPublicIntegration = async (input: getPublicIntegration.GetPublicIntegrationInput): Promise<getPublicIntegration.GetPublicIntegrationResponse> => {\n    const { path, headers, query, body } = getPublicIntegration.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getPublicIntegration.GetPublicIntegrationResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listPublicPlugins = async (input: listPublicPlugins.ListPublicPluginsInput): Promise<listPublicPlugins.ListPublicPluginsResponse> => {\n    const { path, headers, query, body } = listPublicPlugins.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listPublicPlugins.ListPublicPluginsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getPublicPluginById = async (input: getPublicPluginById.GetPublicPluginByIdInput): Promise<getPublicPluginById.GetPublicPluginByIdResponse> => {\n    const { path, headers, query, body } = getPublicPluginById.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getPublicPluginById.GetPublicPluginByIdResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getDereferencedPublicPluginById = async (input: getDereferencedPublicPluginById.GetDereferencedPublicPluginByIdInput): Promise<getDereferencedPublicPluginById.GetDereferencedPublicPluginByIdResponse> => {\n    const { path, headers, query, body } = getDereferencedPublicPluginById.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getDereferencedPublicPluginById.GetDereferencedPublicPluginByIdResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getPublicPlugin = async (input: getPublicPlugin.GetPublicPluginInput): Promise<getPublicPlugin.GetPublicPluginResponse> => {\n    const { path, headers, query, body } = getPublicPlugin.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getPublicPlugin.GetPublicPluginResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getPublicPluginCode = async (input: getPublicPluginCode.GetPublicPluginCodeInput): Promise<getPublicPluginCode.GetPublicPluginCodeResponse> => {\n    const { path, headers, query, body } = getPublicPluginCode.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getPublicPluginCode.GetPublicPluginCodeResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listPublicInterfaces = async (input: listPublicInterfaces.ListPublicInterfacesInput): Promise<listPublicInterfaces.ListPublicInterfacesResponse> => {\n    const { path, headers, query, body } = listPublicInterfaces.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listPublicInterfaces.ListPublicInterfacesResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getPublicInterfaceById = async (input: getPublicInterfaceById.GetPublicInterfaceByIdInput): Promise<getPublicInterfaceById.GetPublicInterfaceByIdResponse> => {\n    const { path, headers, query, body } = getPublicInterfaceById.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getPublicInterfaceById.GetPublicInterfaceByIdResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getPublicInterface = async (input: getPublicInterface.GetPublicInterfaceInput): Promise<getPublicInterface.GetPublicInterfaceResponse> => {\n    const { path, headers, query, body } = getPublicInterface.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getPublicInterface.GetPublicInterfaceResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly createBot = async (input: createBot.CreateBotInput): Promise<createBot.CreateBotResponse> => {\n    const { path, headers, query, body } = createBot.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<createBot.CreateBotResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly updateBot = async (input: updateBot.UpdateBotInput): Promise<updateBot.UpdateBotResponse> => {\n    const { path, headers, query, body } = updateBot.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"put\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<updateBot.UpdateBotResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly rotateBotSigningSecrets = async (input: rotateBotSigningSecrets.RotateBotSigningSecretsInput): Promise<rotateBotSigningSecrets.RotateBotSigningSecretsResponse> => {\n    const { path, headers, query, body } = rotateBotSigningSecrets.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<rotateBotSigningSecrets.RotateBotSigningSecretsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly transferBot = async (input: transferBot.TransferBotInput): Promise<transferBot.TransferBotResponse> => {\n    const { path, headers, query, body } = transferBot.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<transferBot.TransferBotResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listBots = async (input: listBots.ListBotsInput): Promise<listBots.ListBotsResponse> => {\n    const { path, headers, query, body } = listBots.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listBots.ListBotsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getBot = async (input: getBot.GetBotInput): Promise<getBot.GetBotResponse> => {\n    const { path, headers, query, body } = getBot.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getBot.GetBotResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly deleteBot = async (input: deleteBot.DeleteBotInput): Promise<deleteBot.DeleteBotResponse> => {\n    const { path, headers, query, body } = deleteBot.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"delete\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<deleteBot.DeleteBotResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getBotLogs = async (input: getBotLogs.GetBotLogsInput): Promise<getBotLogs.GetBotLogsResponse> => {\n    const { path, headers, query, body } = getBotLogs.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getBotLogs.GetBotLogsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getBotWebchat = async (input: getBotWebchat.GetBotWebchatInput): Promise<getBotWebchat.GetBotWebchatResponse> => {\n    const { path, headers, query, body } = getBotWebchat.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getBotWebchat.GetBotWebchatResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getBotAnalytics = async (input: getBotAnalytics.GetBotAnalyticsInput): Promise<getBotAnalytics.GetBotAnalyticsResponse> => {\n    const { path, headers, query, body } = getBotAnalytics.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getBotAnalytics.GetBotAnalyticsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listActionRuns = async (input: listActionRuns.ListActionRunsInput): Promise<listActionRuns.ListActionRunsResponse> => {\n    const { path, headers, query, body } = listActionRuns.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listActionRuns.ListActionRunsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getBotIssue = async (input: getBotIssue.GetBotIssueInput): Promise<getBotIssue.GetBotIssueResponse> => {\n    const { path, headers, query, body } = getBotIssue.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getBotIssue.GetBotIssueResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listBotIssues = async (input: listBotIssues.ListBotIssuesInput): Promise<listBotIssues.ListBotIssuesResponse> => {\n    const { path, headers, query, body } = listBotIssues.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listBotIssues.ListBotIssuesResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly deleteBotIssue = async (input: deleteBotIssue.DeleteBotIssueInput): Promise<deleteBotIssue.DeleteBotIssueResponse> => {\n    const { path, headers, query, body } = deleteBotIssue.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"delete\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<deleteBotIssue.DeleteBotIssueResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listBotIssueEvents = async (input: listBotIssueEvents.ListBotIssueEventsInput): Promise<listBotIssueEvents.ListBotIssueEventsResponse> => {\n    const { path, headers, query, body } = listBotIssueEvents.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listBotIssueEvents.ListBotIssueEventsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listBotVersions = async (input: listBotVersions.ListBotVersionsInput): Promise<listBotVersions.ListBotVersionsResponse> => {\n    const { path, headers, query, body } = listBotVersions.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listBotVersions.ListBotVersionsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getBotVersion = async (input: getBotVersion.GetBotVersionInput): Promise<getBotVersion.GetBotVersionResponse> => {\n    const { path, headers, query, body } = getBotVersion.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getBotVersion.GetBotVersionResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getBotJson = async (input: getBotJson.GetBotJsonInput): Promise<getBotJson.GetBotJsonResponse> => {\n    const { path, headers, query, body } = getBotJson.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getBotJson.GetBotJsonResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly publishFromBotJson = async (input: publishFromBotJson.PublishFromBotJsonInput): Promise<publishFromBotJson.PublishFromBotJsonResponse> => {\n    const { path, headers, query, body } = publishFromBotJson.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<publishFromBotJson.PublishFromBotJsonResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly createBotVersion = async (input: createBotVersion.CreateBotVersionInput): Promise<createBotVersion.CreateBotVersionResponse> => {\n    const { path, headers, query, body } = createBotVersion.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<createBotVersion.CreateBotVersionResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly deployBotVersion = async (input: deployBotVersion.DeployBotVersionInput): Promise<deployBotVersion.DeployBotVersionResponse> => {\n    const { path, headers, query, body } = deployBotVersion.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<deployBotVersion.DeployBotVersionResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly createIntegrationShareableId = async (input: createIntegrationShareableId.CreateIntegrationShareableIdInput): Promise<createIntegrationShareableId.CreateIntegrationShareableIdResponse> => {\n    const { path, headers, query, body } = createIntegrationShareableId.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<createIntegrationShareableId.CreateIntegrationShareableIdResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly deleteIntegrationShareableId = async (input: deleteIntegrationShareableId.DeleteIntegrationShareableIdInput): Promise<deleteIntegrationShareableId.DeleteIntegrationShareableIdResponse> => {\n    const { path, headers, query, body } = deleteIntegrationShareableId.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"delete\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<deleteIntegrationShareableId.DeleteIntegrationShareableIdResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getIntegrationShareableId = async (input: getIntegrationShareableId.GetIntegrationShareableIdInput): Promise<getIntegrationShareableId.GetIntegrationShareableIdResponse> => {\n    const { path, headers, query, body } = getIntegrationShareableId.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getIntegrationShareableId.GetIntegrationShareableIdResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly unlinkSandboxedConversations = async (input: unlinkSandboxedConversations.UnlinkSandboxedConversationsInput): Promise<unlinkSandboxedConversations.UnlinkSandboxedConversationsResponse> => {\n    const { path, headers, query, body } = unlinkSandboxedConversations.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"delete\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<unlinkSandboxedConversations.UnlinkSandboxedConversationsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listBotApiKeys = async (input: listBotApiKeys.ListBotApiKeysInput): Promise<listBotApiKeys.ListBotApiKeysResponse> => {\n    const { path, headers, query, body } = listBotApiKeys.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listBotApiKeys.ListBotApiKeysResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly createBotApiKey = async (input: createBotApiKey.CreateBotApiKeyInput): Promise<createBotApiKey.CreateBotApiKeyResponse> => {\n    const { path, headers, query, body } = createBotApiKey.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<createBotApiKey.CreateBotApiKeyResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly deleteBotApiKey = async (input: deleteBotApiKey.DeleteBotApiKeyInput): Promise<deleteBotApiKey.DeleteBotApiKeyResponse> => {\n    const { path, headers, query, body } = deleteBotApiKey.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"delete\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<deleteBotApiKey.DeleteBotApiKeyResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getBotAllowlist = async (input: getBotAllowlist.GetBotAllowlistInput): Promise<getBotAllowlist.GetBotAllowlistResponse> => {\n    const { path, headers, query, body } = getBotAllowlist.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getBotAllowlist.GetBotAllowlistResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly updateBotAllowlist = async (input: updateBotAllowlist.UpdateBotAllowlistInput): Promise<updateBotAllowlist.UpdateBotAllowlistResponse> => {\n    const { path, headers, query, body } = updateBotAllowlist.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"put\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<updateBotAllowlist.UpdateBotAllowlistResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly migrateWorkspaceToV4 = async (input: migrateWorkspaceToV4.MigrateWorkspaceToV4Input): Promise<migrateWorkspaceToV4.MigrateWorkspaceToV4Response> => {\n    const { path, headers, query, body } = migrateWorkspaceToV4.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<migrateWorkspaceToV4.MigrateWorkspaceToV4Response>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listWorkspaceInvoices = async (input: listWorkspaceInvoices.ListWorkspaceInvoicesInput): Promise<listWorkspaceInvoices.ListWorkspaceInvoicesResponse> => {\n    const { path, headers, query, body } = listWorkspaceInvoices.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listWorkspaceInvoices.ListWorkspaceInvoicesResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getUpcomingInvoice = async (input: getUpcomingInvoice.GetUpcomingInvoiceInput): Promise<getUpcomingInvoice.GetUpcomingInvoiceResponse> => {\n    const { path, headers, query, body } = getUpcomingInvoice.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getUpcomingInvoice.GetUpcomingInvoiceResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly chargeWorkspaceUnpaidInvoices = async (input: chargeWorkspaceUnpaidInvoices.ChargeWorkspaceUnpaidInvoicesInput): Promise<chargeWorkspaceUnpaidInvoices.ChargeWorkspaceUnpaidInvoicesResponse> => {\n    const { path, headers, query, body } = chargeWorkspaceUnpaidInvoices.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<chargeWorkspaceUnpaidInvoices.ChargeWorkspaceUnpaidInvoicesResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly createWorkspace = async (input: createWorkspace.CreateWorkspaceInput): Promise<createWorkspace.CreateWorkspaceResponse> => {\n    const { path, headers, query, body } = createWorkspace.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<createWorkspace.CreateWorkspaceResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getPublicWorkspace = async (input: getPublicWorkspace.GetPublicWorkspaceInput): Promise<getPublicWorkspace.GetPublicWorkspaceResponse> => {\n    const { path, headers, query, body } = getPublicWorkspace.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getPublicWorkspace.GetPublicWorkspaceResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getWorkspace = async (input: getWorkspace.GetWorkspaceInput): Promise<getWorkspace.GetWorkspaceResponse> => {\n    const { path, headers, query, body } = getWorkspace.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getWorkspace.GetWorkspaceResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listWorkspaceUsages = async (input: listWorkspaceUsages.ListWorkspaceUsagesInput): Promise<listWorkspaceUsages.ListWorkspaceUsagesResponse> => {\n    const { path, headers, query, body } = listWorkspaceUsages.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listWorkspaceUsages.ListWorkspaceUsagesResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly breakDownWorkspaceUsageByBot = async (input: breakDownWorkspaceUsageByBot.BreakDownWorkspaceUsageByBotInput): Promise<breakDownWorkspaceUsageByBot.BreakDownWorkspaceUsageByBotResponse> => {\n    const { path, headers, query, body } = breakDownWorkspaceUsageByBot.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<breakDownWorkspaceUsageByBot.BreakDownWorkspaceUsageByBotResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getAllWorkspaceQuotaCompletion = async (input: getAllWorkspaceQuotaCompletion.GetAllWorkspaceQuotaCompletionInput): Promise<getAllWorkspaceQuotaCompletion.GetAllWorkspaceQuotaCompletionResponse> => {\n    const { path, headers, query, body } = getAllWorkspaceQuotaCompletion.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getAllWorkspaceQuotaCompletion.GetAllWorkspaceQuotaCompletionResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getWorkspaceQuota = async (input: getWorkspaceQuota.GetWorkspaceQuotaInput): Promise<getWorkspaceQuota.GetWorkspaceQuotaResponse> => {\n    const { path, headers, query, body } = getWorkspaceQuota.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getWorkspaceQuota.GetWorkspaceQuotaResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listWorkspaceQuotas = async (input: listWorkspaceQuotas.ListWorkspaceQuotasInput): Promise<listWorkspaceQuotas.ListWorkspaceQuotasResponse> => {\n    const { path, headers, query, body } = listWorkspaceQuotas.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listWorkspaceQuotas.ListWorkspaceQuotasResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly updateWorkspace = async (input: updateWorkspace.UpdateWorkspaceInput): Promise<updateWorkspace.UpdateWorkspaceResponse> => {\n    const { path, headers, query, body } = updateWorkspace.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"put\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<updateWorkspace.UpdateWorkspaceResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly checkHandleAvailability = async (input: checkHandleAvailability.CheckHandleAvailabilityInput): Promise<checkHandleAvailability.CheckHandleAvailabilityResponse> => {\n    const { path, headers, query, body } = checkHandleAvailability.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"put\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<checkHandleAvailability.CheckHandleAvailabilityResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listWorkspaces = async (input: listWorkspaces.ListWorkspacesInput): Promise<listWorkspaces.ListWorkspacesResponse> => {\n    const { path, headers, query, body } = listWorkspaces.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listWorkspaces.ListWorkspacesResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listPublicWorkspaces = async (input: listPublicWorkspaces.ListPublicWorkspacesInput): Promise<listPublicWorkspaces.ListPublicWorkspacesResponse> => {\n    const { path, headers, query, body } = listPublicWorkspaces.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listPublicWorkspaces.ListPublicWorkspacesResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly deleteWorkspace = async (input: deleteWorkspace.DeleteWorkspaceInput): Promise<deleteWorkspace.DeleteWorkspaceResponse> => {\n    const { path, headers, query, body } = deleteWorkspace.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"delete\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<deleteWorkspace.DeleteWorkspaceResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getAuditRecords = async (input: getAuditRecords.GetAuditRecordsInput): Promise<getAuditRecords.GetAuditRecordsResponse> => {\n    const { path, headers, query, body } = getAuditRecords.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getAuditRecords.GetAuditRecordsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly setWorkspacePreference = async (input: setWorkspacePreference.SetWorkspacePreferenceInput): Promise<setWorkspacePreference.SetWorkspacePreferenceResponse> => {\n    const { path, headers, query, body } = setWorkspacePreference.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<setWorkspacePreference.SetWorkspacePreferenceResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getWorkspacePreference = async (input: getWorkspacePreference.GetWorkspacePreferenceInput): Promise<getWorkspacePreference.GetWorkspacePreferenceResponse> => {\n    const { path, headers, query, body } = getWorkspacePreference.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getWorkspacePreference.GetWorkspacePreferenceResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listWorkspaceMembers = async (input: listWorkspaceMembers.ListWorkspaceMembersInput): Promise<listWorkspaceMembers.ListWorkspaceMembersResponse> => {\n    const { path, headers, query, body } = listWorkspaceMembers.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listWorkspaceMembers.ListWorkspaceMembersResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getWorkspaceMember = async (input: getWorkspaceMember.GetWorkspaceMemberInput): Promise<getWorkspaceMember.GetWorkspaceMemberResponse> => {\n    const { path, headers, query, body } = getWorkspaceMember.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getWorkspaceMember.GetWorkspaceMemberResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly deleteWorkspaceMember = async (input: deleteWorkspaceMember.DeleteWorkspaceMemberInput): Promise<deleteWorkspaceMember.DeleteWorkspaceMemberResponse> => {\n    const { path, headers, query, body } = deleteWorkspaceMember.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"delete\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<deleteWorkspaceMember.DeleteWorkspaceMemberResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly createWorkspaceMember = async (input: createWorkspaceMember.CreateWorkspaceMemberInput): Promise<createWorkspaceMember.CreateWorkspaceMemberResponse> => {\n    const { path, headers, query, body } = createWorkspaceMember.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<createWorkspaceMember.CreateWorkspaceMemberResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly updateWorkspaceMember = async (input: updateWorkspaceMember.UpdateWorkspaceMemberInput): Promise<updateWorkspaceMember.UpdateWorkspaceMemberResponse> => {\n    const { path, headers, query, body } = updateWorkspaceMember.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"put\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<updateWorkspaceMember.UpdateWorkspaceMemberResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listIntegrationApiKeys = async (input: listIntegrationApiKeys.ListIntegrationApiKeysInput): Promise<listIntegrationApiKeys.ListIntegrationApiKeysResponse> => {\n    const { path, headers, query, body } = listIntegrationApiKeys.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listIntegrationApiKeys.ListIntegrationApiKeysResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly createIntegrationApiKey = async (input: createIntegrationApiKey.CreateIntegrationApiKeyInput): Promise<createIntegrationApiKey.CreateIntegrationApiKeyResponse> => {\n    const { path, headers, query, body } = createIntegrationApiKey.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<createIntegrationApiKey.CreateIntegrationApiKeyResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly deleteIntegrationApiKey = async (input: deleteIntegrationApiKey.DeleteIntegrationApiKeyInput): Promise<deleteIntegrationApiKey.DeleteIntegrationApiKeyResponse> => {\n    const { path, headers, query, body } = deleteIntegrationApiKey.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"delete\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<deleteIntegrationApiKey.DeleteIntegrationApiKeyResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly createIntegration = async (input: createIntegration.CreateIntegrationInput): Promise<createIntegration.CreateIntegrationResponse> => {\n    const { path, headers, query, body } = createIntegration.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<createIntegration.CreateIntegrationResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly validateIntegrationCreation = async (input: validateIntegrationCreation.ValidateIntegrationCreationInput): Promise<validateIntegrationCreation.ValidateIntegrationCreationResponse> => {\n    const { path, headers, query, body } = validateIntegrationCreation.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<validateIntegrationCreation.ValidateIntegrationCreationResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly updateIntegration = async (input: updateIntegration.UpdateIntegrationInput): Promise<updateIntegration.UpdateIntegrationResponse> => {\n    const { path, headers, query, body } = updateIntegration.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"put\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<updateIntegration.UpdateIntegrationResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly rotateIntegrationSigningSecrets = async (input: rotateIntegrationSigningSecrets.RotateIntegrationSigningSecretsInput): Promise<rotateIntegrationSigningSecrets.RotateIntegrationSigningSecretsResponse> => {\n    const { path, headers, query, body } = rotateIntegrationSigningSecrets.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<rotateIntegrationSigningSecrets.RotateIntegrationSigningSecretsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly validateIntegrationUpdate = async (input: validateIntegrationUpdate.ValidateIntegrationUpdateInput): Promise<validateIntegrationUpdate.ValidateIntegrationUpdateResponse> => {\n    const { path, headers, query, body } = validateIntegrationUpdate.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"put\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<validateIntegrationUpdate.ValidateIntegrationUpdateResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listIntegrations = async (input: listIntegrations.ListIntegrationsInput): Promise<listIntegrations.ListIntegrationsResponse> => {\n    const { path, headers, query, body } = listIntegrations.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listIntegrations.ListIntegrationsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getIntegration = async (input: getIntegration.GetIntegrationInput): Promise<getIntegration.GetIntegrationResponse> => {\n    const { path, headers, query, body } = getIntegration.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getIntegration.GetIntegrationResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getIntegrationLogs = async (input: getIntegrationLogs.GetIntegrationLogsInput): Promise<getIntegrationLogs.GetIntegrationLogsResponse> => {\n    const { path, headers, query, body } = getIntegrationLogs.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getIntegrationLogs.GetIntegrationLogsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getIntegrationByName = async (input: getIntegrationByName.GetIntegrationByNameInput): Promise<getIntegrationByName.GetIntegrationByNameResponse> => {\n    const { path, headers, query, body } = getIntegrationByName.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getIntegrationByName.GetIntegrationByNameResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly deleteIntegration = async (input: deleteIntegration.DeleteIntegrationInput): Promise<deleteIntegration.DeleteIntegrationResponse> => {\n    const { path, headers, query, body } = deleteIntegration.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"delete\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<deleteIntegration.DeleteIntegrationResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly requestIntegrationVerification = async (input: requestIntegrationVerification.RequestIntegrationVerificationInput): Promise<requestIntegrationVerification.RequestIntegrationVerificationResponse> => {\n    const { path, headers, query, body } = requestIntegrationVerification.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<requestIntegrationVerification.RequestIntegrationVerificationResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly createInterface = async (input: createInterface.CreateInterfaceInput): Promise<createInterface.CreateInterfaceResponse> => {\n    const { path, headers, query, body } = createInterface.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<createInterface.CreateInterfaceResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getInterface = async (input: getInterface.GetInterfaceInput): Promise<getInterface.GetInterfaceResponse> => {\n    const { path, headers, query, body } = getInterface.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getInterface.GetInterfaceResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getInterfaceByName = async (input: getInterfaceByName.GetInterfaceByNameInput): Promise<getInterfaceByName.GetInterfaceByNameResponse> => {\n    const { path, headers, query, body } = getInterfaceByName.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getInterfaceByName.GetInterfaceByNameResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly updateInterface = async (input: updateInterface.UpdateInterfaceInput): Promise<updateInterface.UpdateInterfaceResponse> => {\n    const { path, headers, query, body } = updateInterface.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"put\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<updateInterface.UpdateInterfaceResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly deleteInterface = async (input: deleteInterface.DeleteInterfaceInput): Promise<deleteInterface.DeleteInterfaceResponse> => {\n    const { path, headers, query, body } = deleteInterface.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"delete\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<deleteInterface.DeleteInterfaceResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listInterfaces = async (input: listInterfaces.ListInterfacesInput): Promise<listInterfaces.ListInterfacesResponse> => {\n    const { path, headers, query, body } = listInterfaces.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listInterfaces.ListInterfacesResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly createPlugin = async (input: createPlugin.CreatePluginInput): Promise<createPlugin.CreatePluginResponse> => {\n    const { path, headers, query, body } = createPlugin.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<createPlugin.CreatePluginResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getPlugin = async (input: getPlugin.GetPluginInput): Promise<getPlugin.GetPluginResponse> => {\n    const { path, headers, query, body } = getPlugin.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getPlugin.GetPluginResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getDereferencedPlugin = async (input: getDereferencedPlugin.GetDereferencedPluginInput): Promise<getDereferencedPlugin.GetDereferencedPluginResponse> => {\n    const { path, headers, query, body } = getDereferencedPlugin.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getDereferencedPlugin.GetDereferencedPluginResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getPluginByName = async (input: getPluginByName.GetPluginByNameInput): Promise<getPluginByName.GetPluginByNameResponse> => {\n    const { path, headers, query, body } = getPluginByName.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getPluginByName.GetPluginByNameResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly updatePlugin = async (input: updatePlugin.UpdatePluginInput): Promise<updatePlugin.UpdatePluginResponse> => {\n    const { path, headers, query, body } = updatePlugin.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"put\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<updatePlugin.UpdatePluginResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly deletePlugin = async (input: deletePlugin.DeletePluginInput): Promise<deletePlugin.DeletePluginResponse> => {\n    const { path, headers, query, body } = deletePlugin.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"delete\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<deletePlugin.DeletePluginResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listPlugins = async (input: listPlugins.ListPluginsInput): Promise<listPlugins.ListPluginsResponse> => {\n    const { path, headers, query, body } = listPlugins.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listPlugins.ListPluginsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getPluginCode = async (input: getPluginCode.GetPluginCodeInput): Promise<getPluginCode.GetPluginCodeResponse> => {\n    const { path, headers, query, body } = getPluginCode.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getPluginCode.GetPluginCodeResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getUsage = async (input: getUsage.GetUsageInput): Promise<getUsage.GetUsageResponse> => {\n    const { path, headers, query, body } = getUsage.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getUsage.GetUsageResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getMultipleUsages = async (input: getMultipleUsages.GetMultipleUsagesInput): Promise<getMultipleUsages.GetMultipleUsagesResponse> => {\n    const { path, headers, query, body } = getMultipleUsages.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getMultipleUsages.GetMultipleUsagesResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listUsageHistory = async (input: listUsageHistory.ListUsageHistoryInput): Promise<listUsageHistory.ListUsageHistoryResponse> => {\n    const { path, headers, query, body } = listUsageHistory.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listUsageHistory.ListUsageHistoryResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listUsageActivity = async (input: listUsageActivity.ListUsageActivityInput): Promise<listUsageActivity.ListUsageActivityResponse> => {\n    const { path, headers, query, body } = listUsageActivity.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listUsageActivity.ListUsageActivityResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listUsageActivityDaily = async (input: listUsageActivityDaily.ListUsageActivityDailyInput): Promise<listUsageActivityDaily.ListUsageActivityDailyResponse> => {\n    const { path, headers, query, body } = listUsageActivityDaily.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listUsageActivityDaily.ListUsageActivityDailyResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly changeAISpendQuota = async (input: changeAISpendQuota.ChangeAispendQuotaInput): Promise<changeAISpendQuota.ChangeAispendQuotaResponse> => {\n    const { path, headers, query, body } = changeAISpendQuota.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"put\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<changeAISpendQuota.ChangeAispendQuotaResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listActivities = async (input: listActivities.ListActivitiesInput): Promise<listActivities.ListActivitiesResponse> => {\n    const { path, headers, query, body } = listActivities.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listActivities.ListActivitiesResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly introspect = async (input: introspect.IntrospectInput): Promise<introspect.IntrospectResponse> => {\n    const { path, headers, query, body } = introspect.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<introspect.IntrospectResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly upsertFile = async (input: upsertFile.UpsertFileInput): Promise<upsertFile.UpsertFileResponse> => {\n    const { path, headers, query, body } = upsertFile.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"put\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<upsertFile.UpsertFileResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly deleteFile = async (input: deleteFile.DeleteFileInput): Promise<deleteFile.DeleteFileResponse> => {\n    const { path, headers, query, body } = deleteFile.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"delete\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<deleteFile.DeleteFileResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listFiles = async (input: listFiles.ListFilesInput): Promise<listFiles.ListFilesResponse> => {\n    const { path, headers, query, body } = listFiles.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listFiles.ListFilesResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getFile = async (input: getFile.GetFileInput): Promise<getFile.GetFileResponse> => {\n    const { path, headers, query, body } = getFile.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getFile.GetFileResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly updateFileMetadata = async (input: updateFileMetadata.UpdateFileMetadataInput): Promise<updateFileMetadata.UpdateFileMetadataResponse> => {\n    const { path, headers, query, body } = updateFileMetadata.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"put\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<updateFileMetadata.UpdateFileMetadataResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly copyFile = async (input: copyFile.CopyFileInput): Promise<copyFile.CopyFileResponse> => {\n    const { path, headers, query, body } = copyFile.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<copyFile.CopyFileResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly searchFiles = async (input: searchFiles.SearchFilesInput): Promise<searchFiles.SearchFilesResponse> => {\n    const { path, headers, query, body } = searchFiles.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<searchFiles.SearchFilesResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listFilePassages = async (input: listFilePassages.ListFilePassagesInput): Promise<listFilePassages.ListFilePassagesResponse> => {\n    const { path, headers, query, body } = listFilePassages.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listFilePassages.ListFilePassagesResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly setFilePassages = async (input: setFilePassages.SetFilePassagesInput): Promise<setFilePassages.SetFilePassagesResponse> => {\n    const { path, headers, query, body } = setFilePassages.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"put\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<setFilePassages.SetFilePassagesResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listFileTags = async (input: listFileTags.ListFileTagsInput): Promise<listFileTags.ListFileTagsResponse> => {\n    const { path, headers, query, body } = listFileTags.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listFileTags.ListFileTagsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listFileTagValues = async (input: listFileTagValues.ListFileTagValuesInput): Promise<listFileTagValues.ListFileTagValuesResponse> => {\n    const { path, headers, query, body } = listFileTagValues.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listFileTagValues.ListFileTagValuesResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly createKnowledgeBase = async (input: createKnowledgeBase.CreateKnowledgeBaseInput): Promise<createKnowledgeBase.CreateKnowledgeBaseResponse> => {\n    const { path, headers, query, body } = createKnowledgeBase.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<createKnowledgeBase.CreateKnowledgeBaseResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly deleteKnowledgeBase = async (input: deleteKnowledgeBase.DeleteKnowledgeBaseInput): Promise<deleteKnowledgeBase.DeleteKnowledgeBaseResponse> => {\n    const { path, headers, query, body } = deleteKnowledgeBase.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"delete\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<deleteKnowledgeBase.DeleteKnowledgeBaseResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly updateKnowledgeBase = async (input: updateKnowledgeBase.UpdateKnowledgeBaseInput): Promise<updateKnowledgeBase.UpdateKnowledgeBaseResponse> => {\n    const { path, headers, query, body } = updateKnowledgeBase.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"put\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<updateKnowledgeBase.UpdateKnowledgeBaseResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listKnowledgeBases = async (input: listKnowledgeBases.ListKnowledgeBasesInput): Promise<listKnowledgeBases.ListKnowledgeBasesResponse> => {\n    const { path, headers, query, body } = listKnowledgeBases.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listKnowledgeBases.ListKnowledgeBasesResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listTables = async (input: listTables.ListTablesInput): Promise<listTables.ListTablesResponse> => {\n    const { path, headers, query, body } = listTables.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listTables.ListTablesResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getTable = async (input: getTable.GetTableInput): Promise<getTable.GetTableResponse> => {\n    const { path, headers, query, body } = getTable.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getTable.GetTableResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getOrCreateTable = async (input: getOrCreateTable.GetOrCreateTableInput): Promise<getOrCreateTable.GetOrCreateTableResponse> => {\n    const { path, headers, query, body } = getOrCreateTable.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getOrCreateTable.GetOrCreateTableResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly createTable = async (input: createTable.CreateTableInput): Promise<createTable.CreateTableResponse> => {\n    const { path, headers, query, body } = createTable.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<createTable.CreateTableResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly duplicateTable = async (input: duplicateTable.DuplicateTableInput): Promise<duplicateTable.DuplicateTableResponse> => {\n    const { path, headers, query, body } = duplicateTable.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<duplicateTable.DuplicateTableResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly exportTable = async (input: exportTable.ExportTableInput): Promise<exportTable.ExportTableResponse> => {\n    const { path, headers, query, body } = exportTable.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<exportTable.ExportTableResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getTableJobs = async (input: getTableJobs.GetTableJobsInput): Promise<getTableJobs.GetTableJobsResponse> => {\n    const { path, headers, query, body } = getTableJobs.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getTableJobs.GetTableJobsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly importTable = async (input: importTable.ImportTableInput): Promise<importTable.ImportTableResponse> => {\n    const { path, headers, query, body } = importTable.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<importTable.ImportTableResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly updateTable = async (input: updateTable.UpdateTableInput): Promise<updateTable.UpdateTableResponse> => {\n    const { path, headers, query, body } = updateTable.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"put\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<updateTable.UpdateTableResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly renameTableColumn = async (input: renameTableColumn.RenameTableColumnInput): Promise<renameTableColumn.RenameTableColumnResponse> => {\n    const { path, headers, query, body } = renameTableColumn.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"put\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<renameTableColumn.RenameTableColumnResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly deleteTable = async (input: deleteTable.DeleteTableInput): Promise<deleteTable.DeleteTableResponse> => {\n    const { path, headers, query, body } = deleteTable.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"delete\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<deleteTable.DeleteTableResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getTableRow = async (input: getTableRow.GetTableRowInput): Promise<getTableRow.GetTableRowResponse> => {\n    const { path, headers, query, body } = getTableRow.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getTableRow.GetTableRowResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly findTableRows = async (input: findTableRows.FindTableRowsInput): Promise<findTableRows.FindTableRowsResponse> => {\n    const { path, headers, query, body } = findTableRows.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<findTableRows.FindTableRowsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly createTableRows = async (input: createTableRows.CreateTableRowsInput): Promise<createTableRows.CreateTableRowsResponse> => {\n    const { path, headers, query, body } = createTableRows.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<createTableRows.CreateTableRowsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly deleteTableRows = async (input: deleteTableRows.DeleteTableRowsInput): Promise<deleteTableRows.DeleteTableRowsResponse> => {\n    const { path, headers, query, body } = deleteTableRows.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<deleteTableRows.DeleteTableRowsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly updateTableRows = async (input: updateTableRows.UpdateTableRowsInput): Promise<updateTableRows.UpdateTableRowsResponse> => {\n    const { path, headers, query, body } = updateTableRows.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"put\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<updateTableRows.UpdateTableRowsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly upsertTableRows = async (input: upsertTableRows.UpsertTableRowsInput): Promise<upsertTableRows.UpsertTableRowsResponse> => {\n    const { path, headers, query, body } = upsertTableRows.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<upsertTableRows.UpsertTableRowsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n}\n\n// maps axios error to api error type\nfunction toApiError(err: unknown): Error {\n  if (axios.isAxiosError(err) && err.response?.data) {\n    return errorFrom(err.response.data)\n  }\n  return errorFrom(err)\n}\n\n", "import * as common from '../common'\nimport * as downloadFileRef from '../files/download-file-ref'\nimport * as integrationOperations from '../integration-operations'\nimport * as atomic from '../tables/atomic'\nimport * as reserveKey from '../tables/reserve-key'\nimport * as transitionUniqueKey from './transition-table-unique-key'\nimport * as uploadFile from '../files/upload-file'\nimport * as gen from '../gen/public'\nimport * as types from '../types'\n\ntype IClient = common.types.Simplify<\n  gen.Client & {\n    atomicTables: (\n      input: atomic.AtomicTablesInput\n    ) => Promise<atomic.AtomicTablesOutput>\n    downloadFileRef: (\n      input: downloadFileRef.DownloadFileRefInput\n    ) => Promise<downloadFileRef.DownloadFileRefOutput>\n    startIntegrationOperation: (\n      input: integrationOperations.StartIntegrationOperationInput\n    ) => Promise<integrationOperations.IntegrationOperation>\n    getIntegrationOperation: (\n      input: integrationOperations.GetIntegrationOperationInput\n    ) => Promise<integrationOperations.IntegrationOperation>\n    cancelIntegrationOperation: (\n      input: integrationOperations.CancelIntegrationOperationInput\n    ) => Promise<integrationOperations.IntegrationOperation>\n    uploadFile: (input: uploadFile.UploadFileInput) => Promise<uploadFile.UploadFileOutput>\n    reserveTableKey: (\n      input: reserveKey.ReserveTableKeyInput\n    ) => Promise<reserveKey.ReserveTableKeyOutput>\n    transitionTableUniqueKey: (\n      input: transitionUniqueKey.TransitionTableUniqueKeyInput\n    ) => Promise<transitionUniqueKey.TransitionTableUniqueKeyOutput<gen.Table>>\n  }\n>\nexport type Operation = common.types.Operation<IClient>\nexport type ClientInputs = common.types.Inputs<IClient>\nexport type ClientOutputs = common.types.Outputs<IClient>\n\nexport type ClientProps = common.types.CommonClientProps & {\n  integrationId?: string\n  integrationAlias?: string\n  workspaceId?: string\n  botId?: string\n  token?: string\n}\n\nexport class Client extends gen.Client implements IClient {\n  public readonly config: Readonly<types.ClientConfig>\n  private readonly _customAxiosInstance: ReturnType<typeof common.axios.createAxiosInstance>\n\n  public constructor(clientProps: ClientProps = {}) {\n    const clientConfig = common.config.getClientConfig(clientProps)\n    const axiosInstance = common.axios.createAxiosInstance(clientConfig, clientProps.retry)\n\n    super(axiosInstance, {\n      toApiError: common.errors.toApiError,\n    })\n\n    this.config = clientConfig\n    this._customAxiosInstance = axiosInstance\n  }\n\n  public get list() {\n    type ListInputs = common.types.ListInputs<IClient>\n    return {\n      conversations: (props: ListInputs['listConversations']) =>\n        new common.listing.AsyncCollection(({ nextToken }) =>\n          this.listConversations({ nextToken, ...props }).then((r) => ({ ...r, items: r.conversations }))\n        ),\n      participants: (props: ListInputs['listParticipants']) =>\n        new common.listing.AsyncCollection(({ nextToken }) =>\n          this.listParticipants({ nextToken, ...props }).then((r) => ({ ...r, items: r.participants }))\n        ),\n      events: (props: ListInputs['listEvents']) =>\n        new common.listing.AsyncCollection(({ nextToken }) =>\n          this.listEvents({ nextToken, ...props }).then((r) => ({ ...r, items: r.events }))\n        ),\n      messages: (props: ListInputs['listMessages']) =>\n        new common.listing.AsyncCollection(({ nextToken }) =>\n          this.listMessages({ nextToken, ...props }).then((r) => ({ ...r, items: r.messages }))\n        ),\n      users: (props: ListInputs['listUsers']) =>\n        new common.listing.AsyncCollection(({ nextToken }) =>\n          this.listUsers({ nextToken, ...props }).then((r) => ({ ...r, items: r.users }))\n        ),\n      publicIntegrations: (props: ListInputs['listPublicIntegrations']) =>\n        new common.listing.AsyncCollection(({ nextToken }) =>\n          this.listPublicIntegrations({ nextToken, ...props }).then((r) => ({ ...r, items: r.integrations }))\n        ),\n      bots: (props: ListInputs['listBots']) =>\n        new common.listing.AsyncCollection(({ nextToken }) =>\n          this.listBots({ nextToken, ...props }).then((r) => ({ ...r, items: r.bots }))\n        ),\n      botIssues: (props: ListInputs['listBotIssues']) =>\n        new common.listing.AsyncCollection(({ nextToken }) =>\n          this.listBotIssues({ nextToken, ...props }).then((r) => ({ ...r, items: r.issues }))\n        ),\n      workspaces: (props: ListInputs['listWorkspaces']) =>\n        new common.listing.AsyncCollection(({ nextToken }) =>\n          this.listWorkspaces({ nextToken, ...props }).then((r) => ({ ...r, items: r.workspaces }))\n        ),\n      publicWorkspaces: (props: ListInputs['listPublicWorkspaces']) =>\n        new common.listing.AsyncCollection(({ nextToken }) =>\n          this.listPublicWorkspaces({ nextToken, ...props }).then((r) => ({ ...r, items: r.workspaces }))\n        ),\n      workspaceMembers: (props: ListInputs['listWorkspaceMembers']) =>\n        new common.listing.AsyncCollection(({ nextToken }) =>\n          this.listWorkspaceMembers({ nextToken, ...props }).then((r) => ({ ...r, items: r.members }))\n        ),\n      integrations: (props: ListInputs['listIntegrations']) =>\n        new common.listing.AsyncCollection(({ nextToken }) =>\n          this.listIntegrations({ nextToken, ...props }).then((r) => ({ ...r, items: r.integrations }))\n        ),\n      interfaces: (props: ListInputs['listInterfaces']) =>\n        new common.listing.AsyncCollection(({ nextToken }) =>\n          this.listInterfaces({ nextToken, ...props }).then((r) => ({ ...r, items: r.interfaces }))\n        ),\n      publicInterfaces: (props: ListInputs['listPublicInterfaces']) =>\n        new common.listing.AsyncCollection(({ nextToken }) =>\n          this.listPublicInterfaces({ nextToken, ...props }).then((r) => ({ ...r, items: r.interfaces }))\n        ),\n      plugins: (props: ListInputs['listPlugins']) =>\n        new common.listing.AsyncCollection(({ nextToken }) =>\n          this.listPlugins({ nextToken, ...props }).then((r) => ({ ...r, items: r.plugins }))\n        ),\n      publicPlugins: (props: ListInputs['listPublicPlugins']) =>\n        new common.listing.AsyncCollection(({ nextToken }) =>\n          this.listPublicPlugins({ nextToken, ...props }).then((r) => ({ ...r, items: r.plugins }))\n        ),\n      activities: (props: ListInputs['listActivities']) =>\n        new common.listing.AsyncCollection(({ nextToken }) =>\n          this.listActivities({ nextToken, ...props }).then((r) => ({ ...r, items: r.activities }))\n        ),\n      files: (props: ListInputs['listFiles']) =>\n        new common.listing.AsyncCollection(({ nextToken }) =>\n          this.listFiles({ nextToken, ...props }).then((r) => ({ ...r, items: r.files }))\n        ),\n      filePassages: (props: ListInputs['listFilePassages']) =>\n        new common.listing.AsyncCollection(({ nextToken }) =>\n          this.listFilePassages({ nextToken, ...props }).then((r) => ({ ...r, items: r.passages }))\n        ),\n      fileTags: (props: ListInputs['listFileTags']) =>\n        new common.listing.AsyncCollection(({ nextToken }) =>\n          this.listFileTags({ nextToken, ...props }).then((r) => ({ ...r, items: r.tags }))\n        ),\n      fileTagValues: (props: ListInputs['listFileTagValues']) =>\n        new common.listing.AsyncCollection(({ nextToken }) =>\n          this.listFileTagValues({ nextToken, ...props }).then((r) => ({ ...r, items: r.values }))\n        ),\n      knowledgeBases: (props: ListInputs['listKnowledgeBases']) =>\n        new common.listing.AsyncCollection(({ nextToken }) =>\n          this.listKnowledgeBases({ nextToken, ...props }).then((r) => ({ ...r, items: r.knowledgeBases }))\n        ),\n      usageActivity: (props: ListInputs['listUsageActivity']) =>\n        new common.listing.AsyncCollection(({ nextToken }) =>\n          this.listUsageActivity({ nextToken, ...props }).then((r) => ({ ...r, items: r.data }))\n        ),\n      usageActivityDaily: (props: ListInputs['listUsageActivityDaily']) =>\n        new common.listing.AsyncCollection(({ nextToken }) =>\n          this.listUsageActivityDaily({ nextToken, ...props }).then((r) => ({ ...r, items: r.data }))\n        ),\n      workflows: (props: ListInputs['listWorkflows']) =>\n        new common.listing.AsyncCollection(({ nextToken }) =>\n          this.listWorkflows({ nextToken, ...props }).then((r) => ({ ...r, items: r.workflows }))\n        ),\n    }\n  }\n\n  /**\n   * Create/update and upload a file in a single step. Returns an object containing the file metadata and the URL to retrieve the file.\n   */\n  public readonly uploadFile = async (input: uploadFile.UploadFileInput): Promise<uploadFile.UploadFileOutput> => {\n    return await uploadFile.upload(this, input)\n  }\n\n  /**\n   * Stream the exact immutable FileRef generation without materializing it in memory.\n   */\n  public readonly downloadFileRef = async (\n    input: downloadFileRef.DownloadFileRefInput\n  ): Promise<downloadFileRef.DownloadFileRefOutput> => {\n    return await downloadFileRef.downloadFileRef(this.config, input)\n  }\n\n  public readonly startIntegrationOperation = async (\n    input: integrationOperations.StartIntegrationOperationInput\n  ): Promise<integrationOperations.IntegrationOperation> => {\n    return await integrationOperations.start(this._customAxiosInstance, input)\n  }\n\n  public readonly getIntegrationOperation = async (\n    input: integrationOperations.GetIntegrationOperationInput\n  ): Promise<integrationOperations.IntegrationOperation> => {\n    return await integrationOperations.get(this._customAxiosInstance, input)\n  }\n\n  public readonly cancelIntegrationOperation = async (\n    input: integrationOperations.CancelIntegrationOperationInput\n  ): Promise<integrationOperations.IntegrationOperation> => {\n    return await integrationOperations.cancel(this._customAxiosInstance, input)\n  }\n\n  public readonly reserveTableKey = async <TRow extends Record<string, unknown>>(\n    input: reserveKey.ReserveTableKeyInput<TRow>\n  ): Promise<reserveKey.ReserveTableKeyOutput<TRow>> => {\n    return await reserveKey.reserveTableKey(this._customAxiosInstance, input)\n  }\n\n  public readonly atomicTables = async <\n    const TOperations extends readonly atomic.AtomicTableOperation[],\n  >(\n    input: atomic.AtomicTablesInput<TOperations>\n  ): Promise<atomic.AtomicTablesOutput<TOperations>> => {\n    return await atomic.atomicTables(this._customAxiosInstance, input)\n  }\n\n  public readonly transitionTableUniqueKey = async (\n    input: transitionUniqueKey.TransitionTableUniqueKeyInput\n  ): Promise<transitionUniqueKey.TransitionTableUniqueKeyOutput<gen.Table>> => {\n    return await transitionUniqueKey.transitionTableUniqueKey<gen.Table>(\n      this._customAxiosInstance,\n      input\n    )\n  }\n}\n"],
  "mappings": "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",
  "names": ["require_delayed_stream", "__commonJSMin", "exports", "module", "Stream", "util", "DelayedStream", "source", "options", "delayedStream", "option", "realEmit", "args", "r", "message", "require_combined_stream", "__commonJSMin", "exports", "module", "util", "Stream", "DelayedStream", "CombinedStream", "options", "combinedStream", "option", "stream", "isStreamLike", "newStream", "dest", "getStream", "value", "self", "err", "data", "message", "require_db", "__commonJSMin", "exports", "module", "require_mime_db", "__commonJSMin", "exports", "module", "require_mime_types", "__commonJSMin", "exports", "db", "extname", "EXTRACT_TYPE_REGEXP", "TEXT_TYPE_REGEXP", "charset", "contentType", "extension", "lookup", "populateMaps", "type", "match", "mime", "str", "exts", "path", "extensions", "types", "preference", "i", "from", "to", "require_defer", "__commonJSMin", "exports", "module", "defer", "fn", "nextTick", "require_async", "__commonJSMin", "exports", "module", "defer", "async", "callback", "isAsync", "err", "result", "require_abort", "__commonJSMin", "exports", "module", "abort", "state", "clean", "key", "require_iterate", "__commonJSMin", "exports", "module", "async", "abort", "iterate", "list", "iterator", "state", "callback", "key", "runJob", "error", "output", "item", "aborter", "require_state", "__commonJSMin", "exports", "module", "state", "list", "sortMethod", "isNamedList", "initState", "b", "require_terminator", "__commonJSMin", "exports", "module", "abort", "async", "terminator", "callback", "require_parallel", "__commonJSMin", "exports", "module", "iterate", "initState", "terminator", "parallel", "list", "iterator", "callback", "state", "error", "result", "require_serialOrdered", "__commonJSMin", "exports", "module", "iterate", "initState", "terminator", "serialOrdered", "ascending", "descending", "list", "iterator", "sortMethod", "callback", "state", "iteratorHandler", "error", "result", "a", "b", "require_serial", "__commonJSMin", "exports", "module", "serialOrdered", "serial", "list", "iterator", "callback", "require_asynckit", "__commonJSMin", "exports", "module", "require_es_object_atoms", "__commonJSMin", "exports", "module", "require_es_errors", "__commonJSMin", "exports", "module", "require_eval", "__commonJSMin", "exports", "module", "require_range", "__commonJSMin", "exports", "module", "require_ref", "__commonJSMin", "exports", "module", "require_syntax", "__commonJSMin", "exports", "module", "require_type", "__commonJSMin", "exports", "module", "require_uri", "__commonJSMin", "exports", "module", "require_abs", "__commonJSMin", "exports", "module", "require_floor", "__commonJSMin", "exports", "module", "require_max", "__commonJSMin", "exports", "module", "require_min", "__commonJSMin", "exports", "module", "require_pow", "__commonJSMin", "exports", "module", "require_round", "__commonJSMin", "exports", "module", "require_isNaN", "__commonJSMin", "exports", "module", "a", "require_sign", "__commonJSMin", "exports", "module", "$isNaN", "number", "require_gOPD", "__commonJSMin", "exports", "module", "require_gopd", "__commonJSMin", "exports", "module", "$gOPD", "require_es_define_property", "__commonJSMin", "exports", "module", "$defineProperty", "require_shams", "__commonJSMin", "exports", "module", "obj", "sym", "symObj", "symVal", "_", "syms", "descriptor", "require_has_symbols", "__commonJSMin", "exports", "module", "origSymbol", "hasSymbolSham", "require_Reflect_getPrototypeOf", "__commonJSMin", "exports", "module", "require_Object_getPrototypeOf", "__commonJSMin", "exports", "module", "$Object", "require_implementation", "__commonJSMin", "exports", "module", "ERROR_MESSAGE", "toStr", "max", "funcType", "concatty", "a", "b", "arr", "i", "j", "slicy", "arrLike", "offset", "joiny", "joiner", "str", "that", "target", "args", "bound", "binder", "result", "boundLength", "boundArgs", "Empty", "require_function_bind", "__commonJSMin", "exports", "module", "implementation", "require_functionCall", "__commonJSMin", "exports", "module", "require_functionApply", "__commonJSMin", "exports", "module", "require_reflectApply", "__commonJSMin", "exports", "module", "require_actualApply", "__commonJSMin", "exports", "module", "bind", "$apply", "$call", "$reflectApply", "require_call_bind_apply_helpers", "__commonJSMin", "exports", "module", "bind", "$TypeError", "$call", "$actualApply", "args", "require_get", "__commonJSMin", "exports", "module", "callBind", "gOPD", "hasProtoAccessor", "desc", "$Object", "$getPrototypeOf", "value", "require_get_proto", "__commonJSMin", "exports", "module", "reflectGetProto", "originalGetProto", "getDunderProto", "O", "require_hasown", "__commonJSMin", "exports", "module", "call", "$hasOwn", "bind", "require_get_intrinsic", "__commonJSMin", "exports", "module", "undefined", "$Object", "$Error", "$EvalError", "$RangeError", "$ReferenceError", "$SyntaxError", "$TypeError", "$URIError", "abs", "floor", "max", "min", "pow", "round", "sign", "$Function", "getEvalledConstructor", "expressionSyntax", "$gOPD", "$defineProperty", "throwTypeError", "ThrowTypeError", "hasSymbols", "getProto", "$ObjectGPO", "$ReflectGPO", "$apply", "$call", "needsEval", "TypedArray", "INTRINSICS", "errorProto", "doEval", "name", "value", "fn", "gen", "LEGACY_ALIASES", "bind", "hasOwn", "$concat", "$spliceApply", "$replace", "$strSlice", "$exec", "rePropName", "reEscapeChar", "stringToPath", "string", "first", "last", "result", "match", "number", "quote", "subString", "getBaseIntrinsic", "allowMissing", "intrinsicName", "alias", "parts", "intrinsicBaseName", "intrinsic", "intrinsicRealName", "skipFurtherCaching", "i", "isOwn", "part", "desc", "require_shams", "__commonJSMin", "exports", "module", "hasSymbols", "require_es_set_tostringtag", "__commonJSMin", "exports", "module", "GetIntrinsic", "$defineProperty", "hasToStringTag", "hasOwn", "$TypeError", "toStringTag", "object", "value", "overrideIfSet", "nonConfigurable", "require_populate", "__commonJSMin", "exports", "module", "dst", "src", "prop", "require_form_data", "__commonJSMin", "exports", "module", "CombinedStream", "util", "path", "http", "https", "parseUrl", "fs", "Stream", "crypto", "mime", "asynckit", "setToStringTag", "hasOwn", "populate", "escapeHeaderParam", "str", "FormData", "options", "option", "field", "value", "append", "header", "footer", "valueLength", "callback", "err", "stat", "fileSize", "response", "contentDisposition", "contentType", "contents", "headers", "prop", "filename", "next", "lastPart", "userHeaders", "formHeaders", "boundary", "dataBuffer", "i", "len", "knownLength", "hasKnownLength", "cb", "values", "length", "params", "request", "defaults", "onResponse", "error", "responce", "require_ms", "__commonJSMin", "exports", "module", "s", "m", "h", "d", "w", "y", "val", "options", "type", "parse", "fmtLong", "fmtShort", "str", "match", "n", "ms", "msAbs", "plural", "name", "isPlural", "require_common", "__commonJSMin", "exports", "module", "setup", "env", "createDebug", "coerce", "disable", "enable", "enabled", "destroy", "key", "selectColor", "namespace", "hash", "i", "prevTime", "enableOverride", "namespacesCache", "enabledCache", "debug", "args", "self", "curr", "ms", "index", "match", "format", "formatter", "val", "extend", "v", "delimiter", "newDebug", "namespaces", "split", "ns", "matchesTemplate", "search", "template", "searchIndex", "templateIndex", "starIndex", "matchIndex", "name", "skip", "require_browser", "__commonJSMin", "exports", "module", "formatArgs", "save", "load", "useColors", "localstorage", "warned", "m", "args", "c", "index", "lastC", "match", "namespaces", "r", "formatters", "v", "error", "require_has_flag", "__commonJSMin", "exports", "module", "flag", "argv", "prefix", "position", "terminatorPosition", "require_supports_color", "__commonJSMin", "exports", "module", "os", "tty", "hasFlag", "env", "forceColor", "translateLevel", "level", "supportsColor", "haveStream", "streamIsTTY", "min", "osRelease", "sign", "version", "getSupportLevel", "stream", "require_node", "__commonJSMin", "exports", "module", "tty", "util", "init", "log", "formatArgs", "save", "load", "useColors", "supportsColor", "key", "obj", "prop", "_", "k", "val", "args", "name", "c", "colorCode", "prefix", "getDate", "namespaces", "debug", "keys", "i", "formatters", "v", "str", "require_src", "__commonJSMin", "exports", "module", "promisify", "fn", "req", "opts", "resolve", "reject", "err", "rtn", "exports", "events_1", "debug_1", "__importDefault", "promisify_1", "debug", "isAgent", "v", "isSecureEndpoint", "stack", "l", "createAgent", "callback", "opts", "Agent", "_opts", "req", "fn", "timedOut", "timeoutId", "timeoutMs", "onerror", "err", "ontimeout", "callbackError", "onsocket", "socket", "module", "debug_1", "__importDefault", "debug", "parseProxyResponse", "socket", "resolve", "reject", "buffersLength", "buffers", "read", "b", "ondata", "cleanup", "onend", "onerror", "onclose", "err", "buffered", "firstLine", "statusCode", "exports", "net_1", "__importDefault", "tls_1", "url_1", "assert_1", "debug_1", "agent_base_1", "parse_proxy_response_1", "debug", "HttpsProxyAgent", "_opts", "opts", "proxy", "isHTTPS", "req", "secureProxy", "socket", "headers", "payload", "host", "port", "secureEndpoint", "isDefaultPort", "name", "proxyResponsePromise", "statusCode", "buffered", "resume", "servername", "omit", "fakeSocket", "s", "exports", "secure", "protocol", "obj", "keys", "ret", "key", "agent_1", "__importDefault", "createHttpsProxyAgent", "opts", "module", "require_debug", "__commonJSMin", "exports", "module", "debug", "require_follow_redirects", "__commonJSMin", "exports", "module", "url", "URL", "http", "https", "Writable", "assert", "debug", "looksLikeNode", "looksLikeBrowser", "looksLikeV8", "isFunction", "useNativeURL", "error", "sensitiveHeaders", "preservedUrlFields", "events", "eventHandlers", "event", "arg1", "arg2", "arg3", "InvalidUrlError", "createErrorType", "RedirectionError", "TooManyRedirectsError", "MaxBodyLengthExceededError", "WriteAfterEndError", "destroy", "noop", "RedirectableRequest", "options", "responseCallback", "self", "response", "cause", "escapeRegex", "destroyRequest", "data", "encoding", "callback", "isString", "isBuffer", "currentRequest", "name", "value", "msecs", "destroyOnTimeout", "socket", "startTimer", "clearTimer", "method", "a", "b", "property", "isArray", "searchPos", "protocol", "nativeProtocol", "scheme", "request", "i", "buffers", "writeNext", "buffer", "statusCode", "location", "requestHeaders", "beforeRedirect", "removeMatchingHeaders", "currentHostHeader", "currentUrlParts", "parseUrl", "currentHost", "currentUrl", "redirectUrl", "resolveUrl", "spreadUrlObject", "isSubdomain", "responseDetails", "requestDetails", "wrap", "protocols", "nativeProtocols", "wrappedProtocol", "input", "isURL", "validateUrl", "get", "wrappedRequest", "parsed", "relative", "base", "urlObject", "target", "spread", "key", "regex", "headers", "lastValue", "header", "code", "message", "baseClass", "CustomError", "properties", "subdomain", "domain", "dot", "require_is_retry_allowed", "__commonJSMin", "exports", "module", "denyList", "error", "require_lib", "__commonJSMin", "exports", "_typeof", "obj", "isBrowser", "isNode", "isWebWorker", "isJsDom", "isDeno", "require_util_inspect", "__commonJSMin", "exports", "module", "require_object_inspect", "__commonJSMin", "exports", "module", "hasMap", "mapSizeDescriptor", "mapSize", "mapForEach", "hasSet", "setSizeDescriptor", "setSize", "setForEach", "hasWeakMap", "weakMapHas", "hasWeakSet", "weakSetHas", "hasWeakRef", "weakRefDeref", "booleanValueOf", "objectToString", "functionToString", "$match", "$slice", "$replace", "$toUpperCase", "$toLowerCase", "$test", "$concat", "$join", "$arrSlice", "$floor", "bigIntValueOf", "gOPS", "symToString", "hasShammedSymbols", "toStringTag", "isEnumerable", "gPO", "O", "addNumericSeparator", "num", "str", "sepRegex", "int", "intStr", "dec", "utilInspect", "inspectCustom", "inspectSymbol", "isSymbol", "quotes", "quoteREs", "inspect_", "obj", "options", "depth", "seen", "opts", "has", "customInspect", "numericSeparator", "inspectString", "bigIntStr", "maxDepth", "isArray", "indent", "getIndent", "indexOf", "inspect", "value", "from", "noIndent", "newOpts", "isRegExp", "name", "nameOf", "keys", "arrObjKeys", "symString", "markBoxed", "isElement", "s", "attrs", "i", "wrapQuotes", "quote", "xs", "singleLineValues", "indentedJoin", "isError", "parts", "isMap", "mapParts", "key", "collectionOf", "isSet", "setParts", "isWeakMap", "weakCollectionOf", "isWeakSet", "isWeakRef", "isNumber", "isBigInt", "isBoolean", "isString", "isDate", "ys", "isPlainObject", "protoTag", "stringTag", "toStr", "constructorTag", "tag", "defaultStyle", "style", "quoteChar", "canTrustToString", "hasOwn", "f", "m", "x", "l", "remaining", "trailer", "quoteRE", "lowbyte", "c", "n", "type", "size", "entries", "joinedEntries", "baseIndent", "lineJoiner", "isArr", "syms", "symMap", "k", "j", "require_side_channel_list", "__commonJSMin", "exports", "module", "inspect", "$TypeError", "listGetNode", "list", "key", "isDelete", "prev", "curr", "listGet", "objects", "node", "listSet", "value", "listHas", "listDelete", "$o", "channel", "deletedNode", "require_call_bound", "__commonJSMin", "exports", "module", "GetIntrinsic", "callBindBasic", "$indexOf", "name", "allowMissing", "intrinsic", "require_side_channel_map", "__commonJSMin", "exports", "module", "GetIntrinsic", "callBound", "inspect", "$TypeError", "$Map", "$mapGet", "$mapSet", "$mapHas", "$mapDelete", "$mapSize", "$m", "channel", "key", "result", "value", "require_side_channel_weakmap", "__commonJSMin", "exports", "module", "GetIntrinsic", "callBound", "inspect", "getSideChannelMap", "$TypeError", "$WeakMap", "$weakMapGet", "$weakMapSet", "$weakMapHas", "$weakMapDelete", "$wm", "$m", "channel", "key", "value", "require_side_channel", "__commonJSMin", "exports", "module", "$TypeError", "inspect", "getSideChannelList", "getSideChannelMap", "getSideChannelWeakMap", "makeChannel", "$channelData", "channel", "key", "keyDesc", "value", "require_formats", "__commonJSMin", "exports", "module", "replace", "percentTwenties", "Format", "value", "require_utils", "__commonJSMin", "exports", "module", "formats", "getSideChannel", "defineProperty", "has", "isArray", "overflowChannel", "markOverflow", "obj", "maxIndex", "isOverflow", "getMaxIndex", "setMaxIndex", "hexTable", "array", "i", "compactQueue", "queue", "item", "compacted", "j", "arrayToObject", "source", "options", "setProperty", "key", "value", "merge", "target", "nextIndex", "newIndex", "sourceKeys", "result", "m", "oldKey", "combined", "mergeTarget", "targetItem", "acc", "keyNum", "assign", "decode", "str", "defaultDecoder", "charset", "strWithoutPlus", "limit", "encode", "defaultEncoder", "kind", "format", "string", "$0", "out", "segment", "last", "arr", "c", "compact", "refs", "keys", "val", "isRegExp", "isBuffer", "combine", "a", "b", "arrayLimit", "plainObjects", "throwOnLimitExceeded", "maybeMap", "fn", "mapped", "require_stringify", "__commonJSMin", "exports", "module", "getSideChannel", "utils", "formats", "has", "arrayPrefixGenerators", "prefix", "key", "isArray", "push", "pushToArray", "arr", "valueOrArray", "toISO", "defaultFormat", "defaults", "date", "isNonNullishPrimitive", "v", "sentinel", "stringify", "object", "generateArrayPrefix", "commaRoundTrip", "allowEmptyArrays", "strictNullHandling", "skipNulls", "encodeDotInKeys", "encoder", "filter", "sort", "allowDots", "serializeDate", "format", "formatter", "encodeValuesOnly", "charset", "sideChannel", "obj", "tmpSc", "step", "findFlag", "pos", "value", "keyValue", "values", "objKeys", "keys", "encodedPrefix", "adjustedPrefix", "j", "encodedKey", "keyPrefix", "valueSideChannel", "normalizeStringifyOptions", "opts", "arrayFormat", "options", "i", "joined", "require_parse", "__commonJSMin", "exports", "module", "utils", "has", "isArray", "defaults", "interpretNumericEntities", "str", "$0", "numberStr", "parseArrayValue", "val", "options", "currentArrayLength", "isFlatArrayValue", "commaCount", "commaIndex", "isoSentinel", "charsetSentinel", "parseValues", "obj", "cleanStr", "limit", "parts", "skipIndex", "i", "charset", "part", "bracketEqualsPos", "pos", "key", "encodedVal", "existing", "parseObject", "chain", "valuesParsed", "parentKey", "leaf", "root", "cleanRoot", "decodedRoot", "index", "isValidArrayIndex", "splitKeyIntoSegments", "originalKey", "segments", "first", "parent", "n", "open", "collected", "level", "close", "cu", "seg", "content", "parseKeys", "givenKey", "keys", "normalizeParseOptions", "opts", "duplicates", "allowDots", "tempObj", "newObj", "require_lib", "__commonJSMin", "exports", "module", "stringify", "parse", "formats", "index_exports", "__export", "AlreadyExistsError", "BreakingChangesError", "Client", "DownloadFileRefError", "ForbiddenError", "IntegrationOperationConflictError", "InternalError", "InvalidDataFormatError", "InvalidIdentifierError", "InvalidJsonSchemaError", "InvalidPayloadError", "InvalidQueryError", "LimitExceededError", "MethodNotFoundError", "OperationCapabilityError", "OperationTimeoutError", "PayloadTooLargeError", "PaymentRequiredError", "QuotaExceededError", "RateLimitedError", "ReferenceConstraintError", "ReferenceNotFoundError", "RelationConflictError", "ResourceGoneError", "ResourceLockedConflictError", "ResourceNotFoundError", "RuntimeError", "UnauthorizedError", "UnknownError", "UnsupportedMediaTypeError", "UploadFileError", "admin_exports", "atomicReference", "axios_exports", "esm_exports", "billing_exports", "errorFrom", "files_exports", "installAxiosErrorFidelity", "integration_operations_exports", "isApiError", "isRowVersionConflict", "runtime_exports", "tables_exports", "toApiError", "__toCommonJS", "axios_exports", "__export", "Axios", "AxiosError", "AxiosHeaders", "Cancel", "CancelToken", "CanceledError", "HttpStatusCode", "VERSION", "all", "create", "axios_default", "formToJSON", "getAdapter", "isAxiosError", "isCancel", "mergeConfig", "spread", "toFormData", "bind", "fn", "thisArg", "toString", "getPrototypeOf", "iterator", "toStringTag", "hasOwnProperty", "obj", "prop", "hasOwnInPrototypeChain", "thing", "seen", "getSafeProp", "kindOf", "cache", "str", "kindOfTest", "type", "typeOfTest", "isArray", "isUndefined", "isBuffer", "val", "isFunction", "isArrayBuffer", "isArrayBufferView", "result", "isString", "isNumber", "isObject", "isBoolean", "isPlainObject", "prototype", "isEmptyObject", "isDate", "isFile", "isReactNativeBlob", "value", "isReactNative", "formData", "isBlob", "isFileList", "isStream", "getGlobal", "G", "FormDataCtor", "isFormData", "proto", "kind", "isURLSearchParams", "isReadableStream", "isRequest", "isResponse", "isHeaders", "trim", "forEach", "fn", "allOwnKeys", "i", "l", "keys", "len", "key", "findKey", "_key", "_global", "isContextDefined", "context", "merge", "objs", "caseless", "skipUndefined", "assignValue", "targetKey", "existing", "source", "symbols", "j", "symbol", "propertyIsEnumerable", "extend", "a", "b", "thisArg", "bind", "stripBOM", "content", "inherits", "constructor", "superConstructor", "props", "descriptors", "toFlatObject", "sourceObj", "destObj", "filter", "propFilter", "merged", "endsWith", "searchString", "position", "lastIndex", "toArray", "arr", "isTypedArray", "TypedArray", "forEachEntry", "_iterator", "pair", "matchAll", "regExp", "matches", "isHTMLForm", "toCamelCase", "m", "p1", "p2", "isRegExp", "reduceDescriptors", "reducer", "reducedDescriptors", "descriptor", "name", "ret", "freezeMethods", "toObjectSet", "arrayOrString", "delimiter", "define", "noop", "toFiniteNumber", "defaultValue", "isSpecCompliantForm", "toJSONObject", "visited", "visit", "target", "reducedValue", "isAsyncFn", "isThenable", "_setImmediate", "setImmediateSupported", "postMessageSupported", "token", "callbacks", "data", "cb", "asap", "isIterable", "isSafeIterable", "utils_default", "ignoreDuplicateOf", "utils_default", "parseHeaders_default", "rawHeaders", "parsed", "key", "val", "i", "line", "trimSPorHTAB", "str", "start", "end", "code", "INVALID_UNICODE_HEADER_VALUE_CHARS", "INVALID_BYTE_STRING_HEADER_VALUE_CHARS", "sanitizeValue", "value", "invalidChars", "utils_default", "item", "sanitizeHeaderValue", "sanitizeByteStringHeaderValue", "toByteStringHeaderObject", "headers", "byteStringHeaders", "header", "$internals", "normalizeHeader", "header", "normalizeValue", "value", "utils_default", "sanitizeHeaderValue", "parseTokens", "str", "tokens", "tokensRE", "match", "isValidHeaderName", "matchHeaderValue", "context", "filter", "isHeaderNameFilter", "formatHeader", "w", "char", "buildAccessors", "obj", "accessorName", "methodName", "arg1", "arg2", "arg3", "AxiosHeaders", "headers", "valueOrRewrite", "rewrite", "self", "setHeader", "_value", "_header", "_rewrite", "lHeader", "key", "setHeaders", "parseHeaders_default", "dest", "entry", "parser", "matcher", "deleted", "deleteHeader", "keys", "i", "format", "normalized", "targets", "asStrings", "thing", "first", "computed", "target", "accessors", "prototype", "defineAccessor", "mapped", "headerValue", "AxiosHeaders_default", "REDACTED", "hasOwnOrPrototypeToJSON", "source", "utils_default", "prototype", "redactConfig", "config", "redactKeys", "lowerKeys", "k", "seen", "visit", "AxiosHeaders_default", "result", "v", "i", "reducedValue", "key", "value", "AxiosError", "_AxiosError", "error", "code", "request", "response", "customProps", "axiosError", "message", "serializedConfig", "AxiosError_default", "import_form_data", "FormData_default", "FormData", "DEFAULT_FORM_DATA_MAX_DEPTH", "isVisitable", "thing", "utils_default", "removeBrackets", "key", "renderKey", "path", "dots", "token", "i", "isFlatArray", "arr", "predicates", "prop", "toFormData", "obj", "formData", "options", "FormData_default", "option", "source", "metaTokens", "visitor", "defaultVisitor", "indexes", "_Blob", "maxDepth", "useBlob", "stack", "convertValue", "value", "AxiosError_default", "throwIfMaxDepthExceeded", "depth", "stringifyWithDepthLimit", "ancestors", "_key", "currentValue", "el", "index", "exposedHelpers", "build", "toFormData_default", "encode", "str", "charMap", "match", "AxiosURLSearchParams", "params", "options", "toFormData_default", "prototype", "name", "value", "encoder", "_encode", "pair", "AxiosURLSearchParams_default", "encode", "val", "buildURL", "url", "params", "options", "_options", "utils_default", "_encode", "serializeFn", "serializedParams", "AxiosURLSearchParams_default", "hashmarkIndex", "InterceptorManager", "fulfilled", "rejected", "options", "id", "fn", "utils_default", "h", "InterceptorManager_default", "transitional_default", "import_crypto", "import_url", "URLSearchParams_default", "url", "ALPHA", "DIGIT", "ALPHABET", "generateString", "size", "alphabet", "str", "length", "randomValues", "crypto", "i", "node_default", "URLSearchParams_default", "FormData_default", "utils_exports", "__export", "hasBrowserEnv", "hasStandardBrowserEnv", "hasStandardBrowserWebWorkerEnv", "_navigator", "origin", "platform_default", "utils_exports", "node_default", "toURLEncodedForm", "data", "options", "toFormData_default", "platform_default", "value", "key", "path", "helpers", "utils_default", "MAX_DEPTH", "DEFAULT_FORM_DATA_MAX_DEPTH", "throwIfDepthExceeded", "index", "AxiosError_default", "parsePropPath", "name", "path", "pattern", "match", "arrayToObject", "arr", "obj", "keys", "i", "len", "key", "formDataToJSON", "formData", "buildPath", "value", "target", "isNumericKey", "isLast", "utils_default", "formDataToJSON_default", "own", "obj", "key", "utils_default", "stringifySafely", "rawValue", "parser", "encoder", "e", "defaults", "transitional_default", "data", "headers", "contentType", "hasJSONContentType", "isObjectPayload", "formDataToJSON_default", "isFileList", "formSerializer", "toURLEncodedForm", "env", "_FormData", "toFormData_default", "transitional", "forcedJSONParsing", "responseType", "JSONRequested", "strictJSONParsing", "AxiosError_default", "platform_default", "status", "method", "defaults_default", "transformData", "fns", "response", "config", "defaults_default", "context", "headers", "AxiosHeaders_default", "data", "utils_default", "fn", "isCancel", "value", "CanceledError", "AxiosError_default", "message", "config", "request", "CanceledError_default", "settle", "resolve", "reject", "response", "validateStatus", "AxiosError_default", "isAbsoluteURL", "url", "combineURLs", "baseURL", "relativeURL", "malformedHttpProtocol", "httpProtocolControlCharacters", "stripLeadingC0ControlOrSpace", "url", "i", "normalizeURLForProtocolCheck", "assertValidHttpProtocolURL", "config", "AxiosError_default", "buildFullPath", "baseURL", "requestedURL", "allowAbsoluteUrls", "isRelativeUrl", "isAbsoluteURL", "combineURLs", "DEFAULT_PORTS", "parseUrl", "urlString", "getProxyForUrl", "url", "parsedUrl", "proto", "hostname", "port", "shouldProxy", "proxy", "getEnv", "NO_PROXY", "parsedProxy", "parsedProxyHostname", "parsedProxyPort", "key", "import_https_proxy_agent", "import_http", "import_https", "import_http2", "import_util", "import_path", "import_follow_redirects", "import_zlib", "VERSION", "parseProtocol", "url", "match", "DATA_URL_PATTERN", "fromDataURI", "uri", "asBlob", "options", "_Blob", "platform_default", "protocol", "parseProtocol", "match", "AxiosError_default", "type", "params", "encoding", "body", "mime", "buffer", "import_stream", "import_stream", "kInternals", "AxiosTransformStream", "stream", "options", "utils_default", "prop", "source", "internals", "event", "size", "chunk", "encoding", "callback", "maxRate", "readableHighWaterMark", "timeWindow", "divider", "bytesThreshold", "minChunkSize", "pushChunk", "_chunk", "_callback", "bytes", "transformChunk", "chunkSize", "chunkRemainder", "maxChunkSize", "bytesLeft", "passed", "now", "transformNextChunk", "err", "AxiosTransformStream_default", "import_events", "import_util", "import_stream", "asyncIterator", "readBlob", "blob", "readBlob_default", "BOUNDARY_ALPHABET", "platform_default", "textEncoder", "util", "CRLF", "CRLF_BYTES", "CRLF_BYTES_COUNT", "FormDataPart", "name", "value", "escapeName", "isStringValue", "utils_default", "headers", "safeType", "readBlob_default", "match", "formDataToStream", "form", "headersHandler", "options", "tag", "size", "boundary", "boundaryBytes", "footerBytes", "contentLength", "parts", "part", "computedHeaders", "formDataToStream_default", "import_stream", "ZlibHeaderTransformStream", "stream", "chunk", "encoding", "callback", "header", "ZlibHeaderTransformStream_default", "import_http2", "import_util", "Http2Sessions", "authority", "options", "authoritySessions", "len", "i", "sessionHandle", "sessionOptions", "util", "session", "http2", "removed", "timer", "removeSession", "entries", "originalRequestFn", "sessionTimeout", "streamsCount", "stream", "entry", "Http2Sessions_default", "callbackify", "fn", "reducer", "utils_default", "args", "cb", "value", "err", "callbackify_default", "LOOPBACK_HOSTNAMES", "isIPv4Loopback", "host", "parts", "p", "isIPv6ZeroGroup", "group", "isIPv6Unspecified", "compressionIndex", "left", "right", "leftGroups", "rightGroups", "groups", "isIPv6Loopback", "v4MappedDotted", "v4MappedHex", "high", "i", "isLoopback", "DEFAULT_PORTS", "parseNoProxyEntry", "entry", "entryHost", "entryPort", "bracketIndex", "rest", "firstColon", "lastColon", "IPV4_MAPPED_DOTTED_RE", "IPV4_MAPPED_HEX_RE", "unmapIPv4MappedIPv6", "dotted", "hex", "low", "normalizeNoProxyHost", "hostname", "shouldBypassProxy", "location", "parsed", "noProxy", "port", "speedometer", "samplesCount", "min", "bytes", "timestamps", "head", "tail", "firstSampleTS", "chunkLength", "now", "startedAt", "i", "bytesCount", "passed", "speedometer_default", "throttle", "fn", "freq", "timestamp", "threshold", "lastArgs", "timer", "invoke", "args", "now", "passed", "throttle_default", "progressEventReducer", "listener", "isDownloadStream", "freq", "bytesNotified", "_speedometer", "speedometer_default", "throttle_default", "e", "rawLoaded", "total", "loaded", "progressBytes", "rate", "data", "progressEventDecorator", "throttled", "lengthComputable", "asyncDecorator", "fn", "args", "utils_default", "isHexDigit", "charCode", "isPercentEncodedByte", "str", "i", "len", "estimateDataURLDecodedBytes", "url", "comma", "meta", "body", "effectiveLen", "a", "b", "pad", "idx", "tailIsPct3D", "j", "bytes", "next", "zlibOptions", "zlib", "brotliOptions", "zstdOptions", "isBrotliSupported", "utils_default", "isZstdSupported", "ACCEPT_ENCODING", "ACCEPT_ENCODING_WITH_ZSTD", "httpFollow", "httpsFollow", "followRedirects", "isHttps", "FORM_DATA_CONTENT_HEADERS", "setFormDataHeaders", "headers", "formHeaders", "policy", "key", "val", "kAxiosSocketListener", "kAxiosCurrentReq", "kAxiosInstalledTunnel", "tunnelingAgentCache", "tunnelingAgentCacheUser", "NODE_NATIVE_ENV_PROXY_SUPPORT", "isNodeNativeEnvProxySupported", "nodeVersion", "major", "minor", "part", "isNodeEnvProxyEnabled", "agent", "agentOptions", "getProxyEnvAgent", "options", "configHttpAgent", "configHttpsAgent", "https", "http", "getTunnelingAgent", "userHttpsAgent", "cache", "merged", "HttpsProxyAgent", "originTLSOptions", "callback", "req", "opts", "supportedProtocols", "platform_default", "protocol", "decodeURIComponentSafe", "value", "flushOnFinish", "stream", "throttled", "flush", "http2Sessions", "Http2Sessions_default", "dispatchBeforeRedirect", "responseDetails", "requestDetails", "stripMatchingHeaders", "sensitiveSet", "header", "isSameOriginRedirect", "redirectOptions", "setProxy", "configProxy", "location", "isRedirect", "proxy", "proxyEnvAgent", "proxyUrl", "getProxyForUrl", "shouldBypassProxy", "name", "isProxyURL", "readProxyField", "proxyUsername", "proxyPassword", "proxyAuth", "authIsObject", "authUsername", "authPassword", "AxiosError_default", "proxyHost", "proxyPort", "rawProxyProtocol", "normalizedProtocol", "proxyHostForURL", "proxyURL", "tunnelingAgent", "base64", "hasUserHostHeader", "proxyProtocol", "isHttpAdapterSupported", "wrapAsync", "asyncExecutor", "resolve", "reject", "onDone", "isDone", "done", "isRejected", "_resolve", "_reject", "reason", "onDoneHandler", "resolveFamily", "address", "family", "buildAddressEntry", "http2Transport", "cb", "authority", "http2Options", "session", "HTTP2_HEADER_SCHEME", "HTTP2_HEADER_METHOD", "HTTP2_HEADER_PATH", "HTTP2_HEADER_STATUS", "http2", "http2Headers", "responseHeaders", "response", "status", "http_default", "config", "own", "transitional", "transitional_default", "data", "lookup", "httpVersion", "httpAgent", "httpsAgent", "responseType", "responseEncoding", "socketPath", "method", "maxRedirects", "maxBodyLength", "maxContentLength", "decompress", "rejected", "connectPhaseTimer", "isHttp2", "_lookup", "callbackify_default", "hostname", "opt", "err", "arg0", "arg1", "addresses", "addr", "abortEmitter", "abort", "CanceledError_default", "clearConnectPhaseTimer", "createTimeoutError", "configTimeout", "timeoutErrorMessage", "configTimeoutErrorMessage", "onFinished", "offListeners", "fullPath", "buildFullPath", "urlBase", "parsed", "dataUrl", "estimateDataURLDecodedBytes", "convertedData", "settle", "fromDataURI", "AxiosHeaders_default", "VERSION", "onUploadProgress", "onDownloadProgress", "maxRate", "maxUploadRate", "maxDownloadRate", "userBoundary", "formDataToStream_default", "knownLength", "util", "readBlob_default", "contentLength", "AxiosTransformStream_default", "progressEventDecorator", "progressEventReducer", "asyncDecorator", "auth", "configAuth", "username", "password", "urlUsername", "urlPassword", "path", "buildURL", "toByteStringHeaderObject", "allowedSocketPaths", "allowed", "resolvedSocket", "resolvePath", "entry", "transport", "isNativeTransport", "transportEnforcesMaxBodyLength", "isHttpsRequest", "configTransport", "configBeforeRedirect", "requestOrigin", "authToRestore", "sensitiveHeaders", "res", "streams", "responseLength", "transformStream", "responseStream", "lastRequest", "ZlibHeaderTransformStream_default", "limit", "source", "enforceMaxContentLength", "totalResponseBytes", "chunk", "responseBuffer", "responseData", "boundSockets", "socket", "current", "timeout", "handleTimeout", "ended", "errored", "uploadStream", "bytesSent", "_enc", "isURLSameOrigin_default", "platform_default", "origin", "isMSIE", "url", "cookies_default", "platform_default", "name", "value", "expires", "path", "domain", "secure", "sameSite", "cookie", "utils_default", "cookies", "i", "eq", "headersToObject", "thing", "AxiosHeaders_default", "mergeConfig", "config1", "config2", "config", "getMergedValue", "target", "source", "prop", "caseless", "utils_default", "mergeDeepProperties", "a", "b", "valueFromConfig2", "defaultToConfig2", "getMergedTransitionalOption", "transitional2", "transitional1", "mergeDirectKeys", "mergeMap", "merge", "configValue", "FORM_DATA_CONTENT_HEADERS", "setFormDataHeaders", "headers", "formHeaders", "policy", "key", "val", "encodeUTF8", "str", "_", "hex", "resolveConfig", "config", "newConfig", "mergeConfig", "own", "utils_default", "data", "withXSRFToken", "xsrfHeaderName", "xsrfCookieName", "auth", "baseURL", "allowAbsoluteUrls", "url", "AxiosHeaders_default", "buildURL", "buildFullPath", "username", "password", "e", "AxiosError_default", "platform_default", "isURLSameOrigin_default", "xsrfValue", "cookies_default", "resolveConfig_default", "isXHRAdapterSupported", "xhr_default", "config", "resolve", "reject", "_config", "resolveConfig_default", "requestData", "requestHeaders", "AxiosHeaders_default", "responseType", "onUploadProgress", "onDownloadProgress", "onCanceled", "uploadThrottled", "downloadThrottled", "flushUpload", "flushDownload", "done", "request", "onloadend", "responseHeaders", "response", "settle", "value", "err", "AxiosError_default", "event", "msg", "timeoutErrorMessage", "transitional", "transitional_default", "utils_default", "toByteStringHeaderObject", "val", "key", "progressEventReducer", "cancel", "CanceledError_default", "protocol", "parseProtocol", "platform_default", "composeSignals", "signals", "timeout", "controller", "aborted", "onabort", "reason", "unsubscribe", "err", "AxiosError_default", "CanceledError_default", "timer", "signal", "utils_default", "composeSignals_default", "streamChunk", "chunk", "chunkSize", "len", "pos", "end", "readBytes", "iterable", "readStream", "stream", "reader", "done", "value", "trackStream", "onProgress", "onFinish", "iterator", "bytes", "_onFinish", "e", "controller", "loadedBytes", "err", "reason", "DEFAULT_CHUNK_SIZE", "isFunction", "utils_default", "encodeUTF8", "str", "_", "hex", "decodeURIComponentSafe", "value", "test", "fn", "args", "maybeWithAuthCredentials", "url", "protocolIndex", "urlToCheck", "factory", "env", "globalObject", "ReadableStream", "TextEncoder", "envFetch", "Request", "Response", "isFetchSupported", "isRequestSupported", "isResponseSupported", "isReadableStreamSupported", "encodeText", "encoder", "supportsRequestStream", "duplexAccessed", "request", "platform_default", "hasContentType", "supportsResponseStream", "resolvers", "res", "type", "config", "method", "AxiosError_default", "getBodyLength", "body", "resolveBodyLength", "headers", "length", "data", "signal", "cancelToken", "timeout", "onDownloadProgress", "onUploadProgress", "responseType", "withCredentials", "fetchOptions", "maxContentLength", "maxBodyLength", "resolveConfig_default", "hasMaxContentLength", "hasMaxBodyLength", "own", "key", "_fetch", "composedSignal", "composeSignals_default", "unsubscribe", "requestContentLength", "pendingBodyError", "maxBodyLengthError", "auth", "configAuth", "username", "password", "parsedURL", "urlUsername", "urlPassword", "estimateDataURLDecodedBytes", "outboundLength", "mustEnforceStreamBody", "trackRequestStream", "stream", "onProgress", "flush", "trackStream", "loadedBytes", "_request", "contentTypeHeader", "progressEventDecorator", "progressEventReducer", "asyncDecorator", "isCredentialsSupported", "contentType", "VERSION", "resolvedOptions", "toByteStringHeaderObject", "response", "responseHeaders", "AxiosHeaders_default", "declaredLength", "isStreamResponse", "options", "prop", "responseContentLength", "bytesRead", "onChunkProgress", "responseData", "materializedSize", "resolve", "reject", "settle", "err", "canceledError", "networkError", "seedCache", "getFetch", "fetch", "seeds", "len", "i", "seed", "target", "map", "adapter", "knownAdapters", "http_default", "xhr_default", "getFetch", "utils_default", "fn", "value", "renderReason", "reason", "isResolvedHandle", "adapter", "getAdapter", "adapters", "config", "length", "nameOrAdapter", "rejectedReasons", "id", "AxiosError_default", "reasons", "state", "s", "adapters_default", "throwIfCancellationRequested", "config", "CanceledError_default", "dispatchRequest", "AxiosHeaders_default", "transformData", "adapters_default", "defaults_default", "response", "reason", "isCancel", "validators", "type", "i", "thing", "deprecatedWarnings", "validator", "version", "message", "formatMessage", "opt", "desc", "VERSION", "value", "opts", "AxiosError_default", "correctSpelling", "assertOptions", "options", "schema", "allowUnknown", "keys", "result", "validator_default", "validators", "validator_default", "Axios", "instanceConfig", "InterceptorManager_default", "configOrUrl", "config", "err", "dummy", "stack", "firstNewlineIndex", "secondNewlineIndex", "stackWithoutTwoTopLines", "mergeConfig", "transitional", "paramsSerializer", "headers", "utils_default", "contextHeaders", "method", "AxiosHeaders_default", "requestInterceptorChain", "synchronousRequestInterceptors", "interceptor", "transitional_default", "responseInterceptorChain", "promise", "i", "len", "chain", "dispatchRequest", "newConfig", "onFulfilled", "onRejected", "error", "fullPath", "buildFullPath", "buildURL", "url", "generateHTTPMethod", "isForm", "data", "Axios_default", "CancelToken", "_CancelToken", "executor", "resolvePromise", "resolve", "token", "cancel", "i", "onfulfilled", "_resolve", "promise", "message", "config", "request", "CanceledError_default", "listener", "index", "controller", "abort", "err", "c", "CancelToken_default", "spread", "callback", "arr", "isAxiosError", "payload", "utils_default", "HttpStatusCode", "key", "value", "HttpStatusCode_default", "createInstance", "defaultConfig", "context", "Axios_default", "instance", "bind", "utils_default", "instanceConfig", "mergeConfig", "axios", "defaults_default", "CanceledError_default", "CancelToken_default", "isCancel", "VERSION", "toFormData_default", "AxiosError_default", "promises", "spread", "isAxiosError", "AxiosHeaders_default", "thing", "formDataToJSON_default", "adapters_default", "HttpStatusCode_default", "axios_default", "Axios", "AxiosError", "CanceledError", "isCancel", "CancelToken", "VERSION", "all", "Cancel", "isAxiosError", "spread", "toFormData", "AxiosHeaders", "HttpStatusCode", "formToJSON", "getAdapter", "mergeConfig", "create", "axios_default", "esm_exports", "__export", "DEFAULT_OPTIONS", "esm_default", "exponentialDelay", "isIdempotentRequestError", "isNetworkError", "isNetworkOrIdempotentRequestError", "isRetryableError", "isSafeRequestError", "linearDelay", "namespace", "retryAfter", "import_is_retry_allowed", "error", "CODE_EXCLUDE_LIST", "isRetryAllowed", "SAFE_HTTP_METHODS", "IDEMPOTENT_HTTP_METHODS", "retryAfterHeader", "retryAfterMs", "noDelay", "_retryNumber", "retryNumber", "delayFactor", "calculatedDelay", "delay", "randomSum", "getRequestOptions", "config", "defaultOptions", "setCurrentState", "resetLastRequestTime", "currentState", "fixConfig", "axiosInstance", "shouldRetry", "retries", "retryCondition", "shouldRetryOrPromise", "handleRetry", "retryDelay", "shouldResetTimeout", "onRetry", "lastRequestDuration", "timeout", "data", "resolve", "abortListener", "handleMaxRetryTimesExceeded", "axiosRetry", "requestInterceptorId", "responseInterceptorId", "runtime_exports", "__export", "Client", "import_browser_or_node", "import_http", "import_https", "_100mb", "maxBodyLength", "maxContentLength", "httpAgent", "http", "httpsAgent", "https", "config_exports", "__export", "DEFAULT_ACTION_REQUEST_TIMEOUT_MS", "DEFAULT_API_REQUEST_TIMEOUT_MS", "getClientConfig", "import_browser_or_node", "defaultApiUrl", "defaultDebug", "apiUrlEnvName", "botIdEnvName", "integrationIdEnvName", "workspaceIdEnvName", "tokenEnvName", "clientProps", "props", "readEnvConfig", "headers", "apiUrl", "timeout", "actionTransportTimeoutMs", "debug", "getNodeConfig", "config", "token", "listing_exports", "__export", "AsyncCollection", "_list", "nextToken", "items", "meta", "item", "props", "limit", "arr", "count", "axios_exports", "__export", "ACTION_TIMEOUT_HEADER", "createAxiosInstance", "installAxiosErrorFidelity", "import_browser_or_node", "randomUUID", "addDebugInterceptors", "axiosInstance", "config", "_formatRequestLog", "response", "_formatResponseLog", "error", "_formatErrorLog", "method", "url", "headers", "data", "fullUrl", "status", "duration", "_formatDuration", "startTime", "endTime", "ACTION_TIMEOUT_HEADER", "CALL_ACTION_PATH", "ACTION_TIMEOUT_APPLIED", "createAxios", "config", "maxBodyLength", "maxContentLength", "httpAgent", "httpsAgent", "isCallActionRequest", "request", "boundedTransportTimeout", "timeout", "DEFAULT_ACTION_REQUEST_TIMEOUT_MS", "boundedActionTimeout", "value", "resolved", "installActionTimeoutHeader", "instance", "actionRequest", "headers", "AxiosHeaders", "transportTimeout", "actionTimeout", "createAxiosInstance", "retry", "axiosConfig", "axiosInstance", "axios_default", "addDebugInterceptors", "esm_default", "installAxiosErrorFidelity", "error", "isAxiosError", "errors_exports", "__export", "toApiError", "import_crypto", "cryptoLibPolyfill", "array", "cryptoLib", "crypto", "BaseApiError", "_BaseApiError", "code", "description", "type", "message", "error", "id", "metadata", "prefix", "timestamp", "randomSuffixByteLength", "randomHexSuffix", "x", "isObject", "obj", "isApiError", "thrown", "UnknownError", "InternalError", "UnauthorizedError", "ForbiddenError", "PayloadTooLargeError", "InvalidPayloadError", "UnsupportedMediaTypeError", "MethodNotFoundError", "ResourceNotFoundError", "InvalidJsonSchemaError", "InvalidDataFormatError", "InvalidIdentifierError", "RelationConflictError", "ReferenceConstraintError", "ResourceLockedConflictError", "ResourceGoneError", "ReferenceNotFoundError", "InvalidQueryError", "RuntimeError", "AlreadyExistsError", "RateLimitedError", "PaymentRequiredError", "QuotaExceededError", "LimitExceededError", "BreakingChangesError", "OperationTimeoutError", "errorTypes", "errorFrom", "err", "getApiErrorFromObject", "ErrorClass", "IntegrationOperationConflictError", "message", "id", "metadata", "error", "isApiError", "thrown", "errorFrom", "isRowVersionConflict", "UploadFileError", "innerError", "file", "CALL_ACTION_PATH", "conservativeActionMetadata", "normalizeForGen", "err", "safeErrorFrom", "errorFrom", "UnknownError", "toErrorCause", "preserveWireCode", "apiError", "envelope", "isCallActionError", "validIntegrationExecutionMetadata", "metadata", "execution", "attachActionExecutionMetadata", "transportError", "toApiError", "axios_default", "detail", "cause", "import_crypto", "cryptoLibPolyfill", "array", "cryptoLib", "crypto", "BaseApiError", "_BaseApiError", "code", "description", "type", "message", "error", "id", "metadata", "prefix", "timestamp", "randomSuffixByteLength", "randomHexSuffix", "x", "isObject", "obj", "isApiError", "thrown", "UnknownError", "InternalError", "UnauthorizedError", "ForbiddenError", "PayloadTooLargeError", "InvalidPayloadError", "UnsupportedMediaTypeError", "MethodNotFoundError", "ResourceNotFoundError", "InvalidJsonSchemaError", "InvalidDataFormatError", "InvalidIdentifierError", "RelationConflictError", "ReferenceConstraintError", "ResourceLockedConflictError", "ResourceGoneError", "ReferenceNotFoundError", "InvalidQueryError", "RuntimeError", "AlreadyExistsError", "RateLimitedError", "PaymentRequiredError", "QuotaExceededError", "LimitExceededError", "BreakingChangesError", "OperationTimeoutError", "errorTypes", "errorFrom", "err", "getApiErrorFromObject", "ErrorClass", "import_qs", "isDefined", "pair", "toAxiosRequest", "req", "method", "path", "query", "headerParams", "body", "headerEntries", "headers", "queryString", "qs", "url", "data", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "Client", "axiosInstance", "props", "input", "path", "headers", "query", "body", "parseReq", "mapRequest", "toAxiosRequest", "mapErrorResponse", "toApiError", "axiosReq", "res", "e", "err", "axios_default", "errorFrom", "Client", "clientProps", "clientConfig", "config_exports", "axiosInstance", "axios_exports", "errors_exports", "props", "listing_exports", "nextToken", "admin_exports", "__export", "Client", "import_crypto", "cryptoLibPolyfill", "array", "cryptoLib", "crypto", "BaseApiError", "_BaseApiError", "code", "description", "type", "message", "error", "id", "metadata", "prefix", "timestamp", "randomSuffixByteLength", "randomHexSuffix", "x", "isObject", "obj", "isApiError", "thrown", "UnknownError", "InternalError", "UnauthorizedError", "ForbiddenError", "PayloadTooLargeError", "InvalidPayloadError", "UnsupportedMediaTypeError", "MethodNotFoundError", "ResourceNotFoundError", "InvalidJsonSchemaError", "InvalidDataFormatError", "InvalidIdentifierError", "RelationConflictError", "ReferenceConstraintError", "ResourceLockedConflictError", "ResourceGoneError", "ReferenceNotFoundError", "InvalidQueryError", "RuntimeError", "AlreadyExistsError", "RateLimitedError", "PaymentRequiredError", "QuotaExceededError", "LimitExceededError", "BreakingChangesError", "OperationTimeoutError", "errorTypes", "errorFrom", "err", "getApiErrorFromObject", "ErrorClass", "import_qs", "isDefined", "pair", "toAxiosRequest", "req", "method", "path", "query", "headerParams", "body", "headerEntries", "headers", "queryString", "qs", "url", "data", "parseReq", "input", "parseReq", "_", "parseReq", "input", "parseReq", "_", "parseReq", "_", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "_", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "_", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "Client", "axiosInstance", "props", "input", "path", "headers", "query", "body", "parseReq", "mapRequest", "toAxiosRequest", "mapErrorResponse", "toApiError", "axiosReq", "res", "e", "err", "axios_default", "errorFrom", "Client", "clientProps", "clientConfig", "config_exports", "axiosInstance", "axios_exports", "errors_exports", "props", "listing_exports", "nextToken", "billing_exports", "__export", "Client", "import_crypto", "cryptoLibPolyfill", "array", "cryptoLib", "crypto", "BaseApiError", "_BaseApiError", "code", "description", "type", "message", "error", "id", "metadata", "prefix", "timestamp", "randomSuffixByteLength", "randomHexSuffix", "x", "isObject", "obj", "isApiError", "thrown", "UnknownError", "InternalError", "UnauthorizedError", "ForbiddenError", "PayloadTooLargeError", "InvalidPayloadError", "UnsupportedMediaTypeError", "MethodNotFoundError", "ResourceNotFoundError", "InvalidJsonSchemaError", "InvalidDataFormatError", "InvalidIdentifierError", "RelationConflictError", "ReferenceConstraintError", "ResourceLockedConflictError", "ResourceGoneError", "ReferenceNotFoundError", "InvalidQueryError", "RuntimeError", "AlreadyExistsError", "RateLimitedError", "PaymentRequiredError", "QuotaExceededError", "LimitExceededError", "BreakingChangesError", "OperationTimeoutError", "errorTypes", "errorFrom", "err", "getApiErrorFromObject", "ErrorClass", "import_qs", "isDefined", "pair", "toAxiosRequest", "req", "method", "path", "query", "headerParams", "body", "headerEntries", "headers", "queryString", "qs", "url", "data", "parseReq", "_", "parseReq", "_", "parseReq", "input", "parseReq", "_", "parseReq", "input", "parseReq", "input", "parseReq", "_", "parseReq", "input", "parseReq", "_", "parseReq", "_", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "_", "parseReq", "_", "parseReq", "input", "parseReq", "_", "parseReq", "input", "parseReq", "_", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "_", "parseReq", "input", "parseReq", "_", "parseReq", "_", "parseReq", "input", "parseReq", "input", "Client", "axiosInstance", "props", "input", "path", "headers", "query", "body", "parseReq", "mapRequest", "toAxiosRequest", "mapErrorResponse", "toApiError", "axiosReq", "res", "e", "err", "axios_default", "errorFrom", "Client", "clientProps", "clientConfig", "config_exports", "axiosInstance", "axios_exports", "errors_exports", "props", "listing_exports", "nextToken", "files_exports", "__export", "Client", "DownloadFileRefError", "import_crypto", "cryptoLibPolyfill", "array", "cryptoLib", "crypto", "BaseApiError", "_BaseApiError", "code", "description", "type", "message", "error", "id", "metadata", "prefix", "timestamp", "randomSuffixByteLength", "randomHexSuffix", "x", "isObject", "obj", "isApiError", "thrown", "UnknownError", "InternalError", "UnauthorizedError", "ForbiddenError", "PayloadTooLargeError", "InvalidPayloadError", "UnsupportedMediaTypeError", "MethodNotFoundError", "ResourceNotFoundError", "InvalidJsonSchemaError", "InvalidDataFormatError", "InvalidIdentifierError", "RelationConflictError", "ReferenceConstraintError", "ResourceLockedConflictError", "ResourceGoneError", "ReferenceNotFoundError", "InvalidQueryError", "RuntimeError", "AlreadyExistsError", "RateLimitedError", "PaymentRequiredError", "QuotaExceededError", "LimitExceededError", "BreakingChangesError", "OperationTimeoutError", "errorTypes", "errorFrom", "err", "getApiErrorFromObject", "ErrorClass", "import_qs", "isDefined", "pair", "toAxiosRequest", "req", "method", "path", "query", "headerParams", "body", "headerEntries", "headers", "queryString", "qs", "url", "data", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "Client", "axiosInstance", "props", "input", "path", "headers", "query", "body", "parseReq", "mapRequest", "toAxiosRequest", "mapErrorResponse", "toApiError", "axiosReq", "res", "e", "err", "axios_default", "errorFrom", "DownloadFileRefError", "status", "message", "errorCode", "metadata", "utf8Bytes", "value", "appendHeaders", "target", "source", "name", "item", "validateFileRef", "fileRef", "readBoundedError", "response", "reader", "chunks", "size", "done", "body", "offset", "chunk", "text", "emptyStream", "controller", "downloadFileRef", "config", "signal", "fetchImpl", "url", "headers", "payload", "envelope", "declaredSize", "sameOriginHeaders", "client", "uploadUrl", "upload", "key", "index", "tags", "contentType", "accessPolicies", "content", "url", "indexing", "expiresAt", "metadata", "publicContentImmediatelyAccessible", "UploadFileError", "axios_default", "res", "err", "buffer", "size", "uint8Array", "file", "headers", "thrown", "Client", "clientProps", "clientConfig", "config_exports", "axiosInstance", "axios_exports", "errors_exports", "props", "listing_exports", "nextToken", "input", "upload", "downloadFileRef", "integration_operations_exports", "__export", "OperationCapabilityError", "cancel", "createOperationCheckpointClient", "createOperationFilesClient", "get", "start", "validateOperationCheckpointSnapshot", "FILE_REF_CHECKSUM", "CHECKPOINT_KEY", "OperationCapabilityError", "status", "message", "code", "utf8Bytes", "value", "isNonEmptyBounded", "maxBytes", "validateOperationId", "operationId", "operationAuthorization", "config", "authorization", "name", "validateFileRefV1", "ref", "validateRange", "range", "size", "readBoundedText", "response", "reader", "chunks", "done", "body", "offset", "chunk", "capabilityError", "text", "emptyStream", "controller", "fileContentUrl", "generation", "validateFileResponse", "start", "end", "rangeRequest", "expectedStatus", "expectedSize", "declaredSize", "createOperationFilesClient", "options", "fetchImpl", "openOptions", "abort", "forwardAbort", "cleanup", "fetchPart", "partStart", "headers", "error", "responseOffset", "resumes", "resumesWithoutProgress", "reason", "statOptions", "contentType", "validateCheckpointEntries", "entries", "key", "validateOperationCheckpointSnapshot", "checkpointBody", "createOperationCheckpointClient", "snapshot", "tail", "appendExact", "signal", "send", "appendOptions", "result", "request", "transport", "config", "response", "error", "conflict", "integrationOperationConflictFrom", "errors_exports", "errorCause", "axios_default", "envelope", "metadata", "IntegrationOperationConflictError", "start", "idempotencyKey", "type", "input", "resourceKey", "timeoutSeconds", "get", "operationId", "cancel", "tables_exports", "__export", "Client", "atomicReference", "atomicTables", "import_crypto", "cryptoLibPolyfill", "array", "cryptoLib", "crypto", "BaseApiError", "_BaseApiError", "code", "description", "type", "message", "error", "id", "metadata", "prefix", "timestamp", "randomSuffixByteLength", "randomHexSuffix", "x", "isObject", "obj", "isApiError", "thrown", "UnknownError", "InternalError", "UnauthorizedError", "ForbiddenError", "PayloadTooLargeError", "InvalidPayloadError", "UnsupportedMediaTypeError", "MethodNotFoundError", "ResourceNotFoundError", "InvalidJsonSchemaError", "InvalidDataFormatError", "InvalidIdentifierError", "RelationConflictError", "ReferenceConstraintError", "ResourceLockedConflictError", "ResourceGoneError", "ReferenceNotFoundError", "InvalidQueryError", "RuntimeError", "AlreadyExistsError", "RateLimitedError", "PaymentRequiredError", "QuotaExceededError", "LimitExceededError", "BreakingChangesError", "OperationTimeoutError", "errorTypes", "errorFrom", "err", "getApiErrorFromObject", "ErrorClass", "import_qs", "isDefined", "pair", "toAxiosRequest", "req", "method", "path", "query", "headerParams", "body", "headerEntries", "headers", "queryString", "qs", "url", "data", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "Client", "axiosInstance", "props", "input", "path", "headers", "query", "body", "parseReq", "mapRequest", "toAxiosRequest", "mapErrorResponse", "toApiError", "axiosReq", "res", "e", "err", "axios_default", "errorFrom", "atomicReference", "operation", "path", "atomicTables", "axiosInstance", "input", "error", "toApiError", "reserveTableKey", "axiosInstance", "input", "error", "toApiError", "Client", "clientProps", "clientConfig", "config_exports", "axiosInstance", "axios_exports", "errors_exports", "input", "reserveTableKey", "atomicTables", "transitionTableUniqueKey", "axiosInstance", "input", "error", "toApiError", "import_qs", "isDefined", "pair", "toAxiosRequest", "req", "method", "path", "query", "headerParams", "body", "headerEntries", "headers", "queryString", "qs", "url", "data", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "_", "parseReq", "input", "parseReq", "_", "parseReq", "_", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "_", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "_", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "Client", "axiosInstance", "props", "input", "path", "headers", "query", "body", "parseReq", "mapRequest", "toAxiosRequest", "mapErrorResponse", "toApiError", "axiosReq", "res", "e", "err", "axios_default", "errorFrom", "Client", "clientProps", "clientConfig", "config_exports", "axiosInstance", "axios_exports", "errors_exports", "props", "listing_exports", "nextToken", "input", "upload", "downloadFileRef", "start", "get", "cancel", "reserveTableKey", "atomicTables", "transitionTableUniqueKey"]
}
