{
  "version": 3,
  "sources": ["../../../node_modules/.pnpm/delayed-stream@1.0.0/node_modules/delayed-stream/lib/delayed_stream.js", "../../../node_modules/.pnpm/combined-stream@1.0.8/node_modules/combined-stream/lib/combined_stream.js", "../../../node_modules/.pnpm/mime-db@1.52.0/node_modules/mime-db/db.json", "../../../node_modules/.pnpm/mime-db@1.52.0/node_modules/mime-db/index.js", "../../../node_modules/.pnpm/mime-types@2.1.35/node_modules/mime-types/index.js", "../../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/defer.js", "../../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/async.js", "../../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/abort.js", "../../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/iterate.js", "../../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/state.js", "../../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/terminator.js", "../../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/parallel.js", "../../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/serialOrdered.js", "../../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/serial.js", "../../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/index.js", "../../../node_modules/.pnpm/es-object-atoms@1.1.1/node_modules/es-object-atoms/index.js", "../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/index.js", "../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/eval.js", "../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/range.js", "../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/ref.js", "../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/syntax.js", "../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/type.js", "../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/uri.js", "../../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/abs.js", "../../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/floor.js", "../../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/max.js", "../../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/min.js", "../../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/pow.js", "../../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/round.js", "../../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/isNaN.js", "../../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/sign.js", "../../../node_modules/.pnpm/gopd@1.2.0/node_modules/gopd/gOPD.js", "../../../node_modules/.pnpm/gopd@1.2.0/node_modules/gopd/index.js", "../../../node_modules/.pnpm/es-define-property@1.0.1/node_modules/es-define-property/index.js", "../../../node_modules/.pnpm/has-symbols@1.1.0/node_modules/has-symbols/shams.js", "../../../node_modules/.pnpm/has-symbols@1.1.0/node_modules/has-symbols/index.js", "../../../node_modules/.pnpm/get-proto@1.0.1/node_modules/get-proto/Reflect.getPrototypeOf.js", "../../../node_modules/.pnpm/get-proto@1.0.1/node_modules/get-proto/Object.getPrototypeOf.js", "../../../node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/implementation.js", "../../../node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/index.js", "../../../node_modules/.pnpm/call-bind-apply-helpers@1.0.1/node_modules/call-bind-apply-helpers/functionCall.js", "../../../node_modules/.pnpm/call-bind-apply-helpers@1.0.1/node_modules/call-bind-apply-helpers/functionApply.js", "../../../node_modules/.pnpm/call-bind-apply-helpers@1.0.1/node_modules/call-bind-apply-helpers/reflectApply.js", "../../../node_modules/.pnpm/call-bind-apply-helpers@1.0.1/node_modules/call-bind-apply-helpers/actualApply.js", "../../../node_modules/.pnpm/call-bind-apply-helpers@1.0.1/node_modules/call-bind-apply-helpers/index.js", "../../../node_modules/.pnpm/dunder-proto@1.0.1/node_modules/dunder-proto/get.js", "../../../node_modules/.pnpm/get-proto@1.0.1/node_modules/get-proto/index.js", "../../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/functionApply.js", "../../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/functionCall.js", "../../../node_modules/.pnpm/hasown@2.0.2/node_modules/hasown/index.js", "../../../node_modules/.pnpm/get-intrinsic@1.3.0/node_modules/get-intrinsic/index.js", "../../../node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/shams.js", "../../../node_modules/.pnpm/es-set-tostringtag@2.1.0/node_modules/es-set-tostringtag/index.js", "../../../node_modules/.pnpm/form-data@4.0.4/node_modules/form-data/lib/populate.js", "../../../node_modules/.pnpm/form-data@4.0.4/node_modules/form-data/lib/form_data.js", "../../../node_modules/.pnpm/proxy-from-env@1.1.0/node_modules/proxy-from-env/index.js", "../../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js", "../../../node_modules/.pnpm/debug@4.4.0/node_modules/debug/src/common.js", "../../../node_modules/.pnpm/debug@4.4.0/node_modules/debug/src/browser.js", "../../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js", "../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js", "../../../node_modules/.pnpm/debug@4.4.0/node_modules/debug/src/node.js", "../../../node_modules/.pnpm/debug@4.4.0/node_modules/debug/src/index.js", "../../../node_modules/.pnpm/follow-redirects@1.15.2/node_modules/follow-redirects/debug.js", "../../../node_modules/.pnpm/follow-redirects@1.15.2/node_modules/follow-redirects/index.js", "../../../node_modules/.pnpm/is-retry-allowed@2.2.0/node_modules/is-retry-allowed/index.js", "../../../node_modules/.pnpm/browser-or-node@2.1.1/node_modules/browser-or-node/lib/index.js", "../../../node_modules/.pnpm/es-object-atoms@1.0.0/node_modules/es-object-atoms/index.js", "../../../node_modules/.pnpm/get-intrinsic@1.2.7/node_modules/get-intrinsic/index.js", "../../../node_modules/.pnpm/define-data-property@1.1.4/node_modules/define-data-property/index.js", "../../../node_modules/.pnpm/has-property-descriptors@1.0.2/node_modules/has-property-descriptors/index.js", "../../../node_modules/.pnpm/set-function-length@1.2.2/node_modules/set-function-length/index.js", "../../../node_modules/.pnpm/call-bind@1.0.7/node_modules/call-bind/index.js", "../../../node_modules/.pnpm/call-bind@1.0.7/node_modules/call-bind/callBound.js", "../../../node_modules/.pnpm/object-inspect@1.13.3/node_modules/object-inspect/util.inspect.js", "../../../node_modules/.pnpm/object-inspect@1.13.3/node_modules/object-inspect/index.js", "../../../node_modules/.pnpm/side-channel@1.0.4/node_modules/side-channel/index.js", "../../../node_modules/.pnpm/qs@6.11.0/node_modules/qs/lib/formats.js", "../../../node_modules/.pnpm/qs@6.11.0/node_modules/qs/lib/utils.js", "../../../node_modules/.pnpm/qs@6.11.0/node_modules/qs/lib/stringify.js", "../../../node_modules/.pnpm/qs@6.11.0/node_modules/qs/lib/parse.js", "../../../node_modules/.pnpm/qs@6.11.0/node_modules/qs/lib/index.js", "../src/index.ts", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/index.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/helpers/bind.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/utils.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/core/AxiosError.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/platform/node/classes/FormData.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/helpers/toFormData.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/helpers/AxiosURLSearchParams.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/helpers/buildURL.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/core/InterceptorManager.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/defaults/transitional.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/platform/node/classes/URLSearchParams.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/platform/node/index.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/platform/common/utils.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/platform/index.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/helpers/toURLEncodedForm.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/helpers/formDataToJSON.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/defaults/index.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/helpers/parseHeaders.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/core/AxiosHeaders.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/core/transformData.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/cancel/isCancel.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/cancel/CanceledError.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/core/settle.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/helpers/isAbsoluteURL.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/helpers/combineURLs.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/core/buildFullPath.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/adapters/http.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/env/data.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/helpers/parseProtocol.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/helpers/fromDataURI.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/helpers/AxiosTransformStream.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/helpers/throttle.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/helpers/speedometer.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/helpers/formDataToStream.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/helpers/readBlob.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/helpers/callbackify.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/helpers/cookies.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/helpers/isURLSameOrigin.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/adapters/xhr.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/adapters/adapters.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/core/dispatchRequest.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/core/mergeConfig.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/helpers/validator.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/core/Axios.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/cancel/CancelToken.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/helpers/spread.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/helpers/isAxiosError.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/helpers/HttpStatusCode.js", "../../../node_modules/.pnpm/axios@1.6.1/node_modules/axios/lib/axios.js", "../../../node_modules/.pnpm/axios-retry@4.5.0_axios@1.6.1/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/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/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/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/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/upload-file.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/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/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 {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\n/** @type {import('./functionApply')} */\nmodule.exports = Function.prototype.apply;\n", "'use strict';\n\n/** @type {import('./functionCall')} */\nmodule.exports = Function.prototype.call;\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 * 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=\"' + 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=\"' + 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); // eslint-disable-line no-invalid-this\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, 'FormData');\n\n// Public API\nmodule.exports = FormData;\n", "'use strict';\n\nvar parseUrl = require('url').parse;\n\nvar DEFAULT_PORTS = {\n  ftp: 21,\n  gopher: 70,\n  http: 80,\n  https: 443,\n  ws: 80,\n  wss: 443,\n};\n\nvar stringEndsWith = String.prototype.endsWith || function(s) {\n  return s.length <= this.length &&\n    this.indexOf(s, this.length - s.length) !== -1;\n};\n\n/**\n * @param {string|object} url - The URL, or the result from 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 */\nfunction 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 =\n    getEnv('npm_config_' + proto + '_proxy') ||\n    getEnv(proto + '_proxy') ||\n    getEnv('npm_config_proxy') ||\n    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 =\n    (getEnv('npm_config_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 !stringEndsWith.call(hostname, 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\nexports.getProxyForUrl = getProxyForUrl;\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(' ', ',')\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');\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", "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// 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\nvar InvalidUrlError = createErrorType(\n  \"ERR_INVALID_URL\",\n  \"Invalid URL\",\n  TypeError\n);\n// Error types with codes\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);\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// 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    self._processResponse(response);\n  };\n\n  // Perform the first request\n  this._performRequest();\n}\nRedirectableRequest.prototype = Object.create(Writable.prototype);\n\nRedirectableRequest.prototype.abort = function () {\n  abortRequest(this._currentRequest);\n  this.emit(\"abort\");\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    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\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\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    this.emit(\"error\", new TypeError(\"Unsupported protocol \" + protocol));\n    return;\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  abortRequest(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    this.emit(\"error\", new TooManyRedirectsError());\n    return;\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 = url.parse(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  // Determine the URL of the redirection\n  var redirectUrl;\n  try {\n    redirectUrl = url.resolve(currentUrl, location);\n  }\n  catch (cause) {\n    this.emit(\"error\", new RedirectionError({ cause: cause }));\n    return;\n  }\n\n  // Create the redirected request\n  debug(\"redirecting to\", redirectUrl);\n  this._isRedirect = true;\n  var redirectUrlParts = url.parse(redirectUrl);\n  Object.assign(this._options, redirectUrlParts);\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 (redirectUrlParts.protocol !== currentUrlParts.protocol &&\n     redirectUrlParts.protocol !== \"https:\" ||\n     redirectUrlParts.host !== currentHost &&\n     !isSubdomain(redirectUrlParts.host, currentHost)) {\n    removeMatchingHeaders(/^(?:authorization|cookie)$/i, 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    try {\n      beforeRedirect(this._options, responseDetails, requestDetails);\n    }\n    catch (err) {\n      this.emit(\"error\", err);\n      return;\n    }\n    this._sanitizeOptions(this._options);\n  }\n\n  // Perform the redirected request\n  try {\n    this._performRequest();\n  }\n  catch (cause) {\n    this.emit(\"error\", new RedirectionError({ cause: cause }));\n  }\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\n      if (isString(input)) {\n        var parsed;\n        try {\n          parsed = urlToOptions(new URL(input));\n        }\n        catch (err) {\n          /* istanbul ignore next */\n          parsed = url.parse(input);\n        }\n        if (!isString(parsed.protocol)) {\n          throw new InvalidUrlError({ input });\n        }\n        input = parsed;\n      }\n      else if (URL && (input instanceof URL)) {\n        input = urlToOptions(input);\n      }\n      else {\n        callback = options;\n        options = 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\n/* istanbul ignore next */\nfunction noop() { /* empty */ }\n\n// from https://github.com/nodejs/node/blob/master/lib/internal/url.js\nfunction urlToOptions(urlObject) {\n  var options = {\n    protocol: urlObject.protocol,\n    hostname: urlObject.hostname.startsWith(\"[\") ?\n      /* istanbul ignore next */\n      urlObject.hostname.slice(1, -1) :\n      urlObject.hostname,\n    hash: urlObject.hash,\n    search: urlObject.search,\n    pathname: urlObject.pathname,\n    path: urlObject.pathname + urlObject.search,\n    href: urlObject.href,\n  };\n  if (urlObject.port !== \"\") {\n    options.port = Number(urlObject.port);\n  }\n  return options;\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    Error.captureStackTrace(this, this.constructor);\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  CustomError.prototype.constructor = CustomError;\n  CustomError.prototype.name = \"Error [\" + code + \"]\";\n  return CustomError;\n}\n\nfunction abortRequest(request) {\n  for (var event of events) {\n    request.removeListener(event, eventHandlers[event]);\n  }\n  request.on(\"error\", noop);\n  request.abort();\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 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\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;", "'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Object;\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'%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 $defineProperty = require('es-define-property');\n\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\n\nvar gopd = require('gopd');\n\n/** @type {import('.')} */\nmodule.exports = function defineDataProperty(\n\tobj,\n\tproperty,\n\tvalue\n) {\n\tif (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n\t\tthrow new $TypeError('`obj` must be an object or a function`');\n\t}\n\tif (typeof property !== 'string' && typeof property !== 'symbol') {\n\t\tthrow new $TypeError('`property` must be a string or a symbol`');\n\t}\n\tif (arguments.length > 3 && typeof arguments[3] !== 'boolean' && arguments[3] !== null) {\n\t\tthrow new $TypeError('`nonEnumerable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 4 && typeof arguments[4] !== 'boolean' && arguments[4] !== null) {\n\t\tthrow new $TypeError('`nonWritable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 5 && typeof arguments[5] !== 'boolean' && arguments[5] !== null) {\n\t\tthrow new $TypeError('`nonConfigurable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 6 && typeof arguments[6] !== 'boolean') {\n\t\tthrow new $TypeError('`loose`, if provided, must be a boolean');\n\t}\n\n\tvar nonEnumerable = arguments.length > 3 ? arguments[3] : null;\n\tvar nonWritable = arguments.length > 4 ? arguments[4] : null;\n\tvar nonConfigurable = arguments.length > 5 ? arguments[5] : null;\n\tvar loose = arguments.length > 6 ? arguments[6] : false;\n\n\t/* @type {false | TypedPropertyDescriptor<unknown>} */\n\tvar desc = !!gopd && gopd(obj, property);\n\n\tif ($defineProperty) {\n\t\t$defineProperty(obj, property, {\n\t\t\tconfigurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable,\n\t\t\tenumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable,\n\t\t\tvalue: value,\n\t\t\twritable: nonWritable === null && desc ? desc.writable : !nonWritable\n\t\t});\n\t} else if (loose || (!nonEnumerable && !nonWritable && !nonConfigurable)) {\n\t\t// must fall back to [[Set]], and was not explicitly asked to make non-enumerable, non-writable, or non-configurable\n\t\tobj[property] = value; // eslint-disable-line no-param-reassign\n\t} else {\n\t\tthrow new $SyntaxError('This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.');\n\t}\n};\n", "'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\treturn !!$defineProperty;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!$defineProperty) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n", "'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar define = require('define-data-property');\nvar hasDescriptors = require('has-property-descriptors')();\nvar gOPD = require('gopd');\n\nvar $TypeError = require('es-errors/type');\nvar $floor = GetIntrinsic('%Math.floor%');\n\n/** @type {import('.')} */\nmodule.exports = function setFunctionLength(fn, length) {\n\tif (typeof fn !== 'function') {\n\t\tthrow new $TypeError('`fn` is not a function');\n\t}\n\tif (typeof length !== 'number' || length < 0 || length > 0xFFFFFFFF || $floor(length) !== length) {\n\t\tthrow new $TypeError('`length` must be a positive 32-bit integer');\n\t}\n\n\tvar loose = arguments.length > 2 && !!arguments[2];\n\n\tvar functionLengthIsConfigurable = true;\n\tvar functionLengthIsWritable = true;\n\tif ('length' in fn && gOPD) {\n\t\tvar desc = gOPD(fn, 'length');\n\t\tif (desc && !desc.configurable) {\n\t\t\tfunctionLengthIsConfigurable = false;\n\t\t}\n\t\tif (desc && !desc.writable) {\n\t\t\tfunctionLengthIsWritable = false;\n\t\t}\n\t}\n\n\tif (functionLengthIsConfigurable || functionLengthIsWritable || !loose) {\n\t\tif (hasDescriptors) {\n\t\t\tdefine(/** @type {Parameters<define>[0]} */ (fn), 'length', length, true, true);\n\t\t} else {\n\t\t\tdefine(/** @type {Parameters<define>[0]} */ (fn), 'length', length);\n\t\t}\n\t}\n\treturn fn;\n};\n", "'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\nvar setFunctionLength = require('set-function-length');\n\nvar $TypeError = require('es-errors/type');\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $defineProperty = require('es-define-property');\nvar $max = GetIntrinsic('%Math.max%');\n\nmodule.exports = function callBind(originalFunction) {\n\tif (typeof originalFunction !== 'function') {\n\t\tthrow new $TypeError('a function is required');\n\t}\n\tvar func = $reflectApply(bind, $call, arguments);\n\treturn setFunctionLength(\n\t\tfunc,\n\t\t1 + $max(0, originalFunction.length - (arguments.length - 1)),\n\t\ttrue\n\t);\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n", "'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n", "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 isArray(obj) { return toStr(obj) === '[object Array]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isDate(obj) { return toStr(obj) === '[object Date]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isRegExp(obj) { return toStr(obj) === '[object RegExp]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isError(obj) { return toStr(obj) === '[object Error]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isString(obj) { return toStr(obj) === '[object String]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isNumber(obj) { return toStr(obj) === '[object Number]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isBoolean(obj) { return toStr(obj) === '[object Boolean]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in 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 GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bind/callBound');\nvar inspect = require('object-inspect');\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $WeakMap = GetIntrinsic('%WeakMap%', true);\nvar $Map = GetIntrinsic('%Map%', true);\n\nvar $weakMapGet = callBound('WeakMap.prototype.get', true);\nvar $weakMapSet = callBound('WeakMap.prototype.set', true);\nvar $weakMapHas = callBound('WeakMap.prototype.has', true);\nvar $mapGet = callBound('Map.prototype.get', true);\nvar $mapSet = callBound('Map.prototype.set', true);\nvar $mapHas = callBound('Map.prototype.has', true);\n\n/*\n * This function traverses the list returning the node corresponding to the\n * given key.\n *\n * That node is also moved to the head of the list, so that if it's accessed\n * again we don't need to traverse the whole list. By doing so, all the recently\n * used nodes can be accessed relatively quickly.\n */\nvar listGetNode = function (list, key) { // eslint-disable-line consistent-return\n\tfor (var prev = list, curr; (curr = prev.next) !== null; prev = curr) {\n\t\tif (curr.key === key) {\n\t\t\tprev.next = curr.next;\n\t\t\tcurr.next = list.next;\n\t\t\tlist.next = curr; // eslint-disable-line no-param-reassign\n\t\t\treturn curr;\n\t\t}\n\t}\n};\n\nvar listGet = function (objects, key) {\n\tvar node = listGetNode(objects, key);\n\treturn node && node.value;\n};\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 = { // eslint-disable-line no-param-reassign\n\t\t\tkey: key,\n\t\t\tnext: objects.next,\n\t\t\tvalue: value\n\t\t};\n\t}\n};\nvar listHas = function (objects, key) {\n\treturn !!listGetNode(objects, key);\n};\n\nmodule.exports = function getSideChannel() {\n\tvar $wm;\n\tvar $m;\n\tvar $o;\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\tget: function (key) { // eslint-disable-line consistent-return\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapGet($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapGet($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listGet($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\thas: function (key) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapHas($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapHas($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listHas($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif (!$wm) {\n\t\t\t\t\t$wm = new $WeakMap();\n\t\t\t\t}\n\t\t\t\t$weakMapSet($wm, key, value);\n\t\t\t} else if ($Map) {\n\t\t\t\tif (!$m) {\n\t\t\t\t\t$m = new $Map();\n\t\t\t\t}\n\t\t\t\t$mapSet($m, key, value);\n\t\t\t} else {\n\t\t\t\tif (!$o) {\n\t\t\t\t\t/*\n\t\t\t\t\t * Initialize the linked list as an empty node, so that we don't have\n\t\t\t\t\t * to special-case handling of the first node: we can always refer to\n\t\t\t\t\t * it as (previous node).next, instead of something like (list).head\n\t\t\t\t\t */\n\t\t\t\t\t$o = { key: {}, next: null };\n\t\t\t\t}\n\t\t\t\tlistSet($o, key, value);\n\t\t\t}\n\t\t}\n\t};\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');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar hexTable = (function () {\n    var array = [];\n    for (var i = 0; i < 256; ++i) {\n        array.push('%' + ((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.push(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 ? Object.create(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 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') {\n        if (isArray(target)) {\n            target.push(source);\n        } else if (target && typeof target === 'object') {\n            if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) {\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        return [target].concat(source);\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.push(item);\n                }\n            } else {\n                target[i] = item;\n            }\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            acc[key] = merge(acc[key], value, options);\n        } else {\n            acc[key] = value;\n        }\n        return acc;\n    }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n    return Object.keys(source).reduce(function (acc, key) {\n        acc[key] = source[key];\n        return acc;\n    }, target);\n};\n\nvar decode = function (str, decoder, 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 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 i = 0; i < string.length; ++i) {\n        var c = string.charCodeAt(i);\n\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            out += string.charAt(i);\n            continue;\n        }\n\n        if (c < 0x80) {\n            out = out + hexTable[c];\n            continue;\n        }\n\n        if (c < 0x800) {\n            out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);\n            continue;\n        }\n\n        if (c < 0xD800 || c >= 0xE000) {\n            out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);\n            continue;\n        }\n\n        i += 1;\n        c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));\n        /* eslint operator-linebreak: [2, \"before\"] */\n        out += hexTable[0xF0 | (c >> 18)]\n            + hexTable[0x80 | ((c >> 12) & 0x3F)]\n            + hexTable[0x80 | ((c >> 6) & 0x3F)]\n            + hexTable[0x80 | (c & 0x3F)];\n    }\n\n    return out;\n};\n\nvar compact = function compact(value) {\n    var queue = [{ obj: { o: value }, prop: 'o' }];\n    var refs = [];\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.indexOf(val) === -1) {\n                queue.push({ obj: obj, prop: key });\n                refs.push(val);\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) {\n    return [].concat(a, b);\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.push(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    isRegExp: isRegExp,\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 split = String.prototype.split;\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    charset: 'utf-8',\n    charsetSentinel: false,\n    delimiter: '&',\n    encode: true,\n    encoder: utils.encode,\n    encodeValuesOnly: false,\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    strictNullHandling,\n    skipNulls,\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 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            if (generateArrayPrefix === 'comma' && encodeValuesOnly) {\n                var valuesArray = split.call(String(obj), ',');\n                var valuesJoined = '';\n                for (var i = 0; i < valuesArray.length; ++i) {\n                    valuesJoined += (i === 0 ? '' : ',') + formatter(encoder(valuesArray[i], defaults.encoder, charset, 'value', format));\n                }\n                return [formatter(keyValue) + (commaRoundTrip && isArray(obj) && valuesArray.length === 1 ? '[]' : '') + '=' + valuesJoined];\n            }\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        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 adjustedPrefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? prefix + '[]' : prefix;\n\n    for (var j = 0; j < objKeys.length; ++j) {\n        var key = objKeys[j];\n        var value = typeof key === 'object' && typeof key.value !== 'undefined' ? key.value : obj[key];\n\n        if (skipNulls && value === null) {\n            continue;\n        }\n\n        var keyPrefix = isArray(obj)\n            ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(adjustedPrefix, key) : adjustedPrefix\n            : adjustedPrefix + (allowDots ? '.' + key : '[' + key + ']');\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            strictNullHandling,\n            skipNulls,\n            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 (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    return {\n        addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n        allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n        charset: charset,\n        charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n        delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n        encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\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 arrayFormat;\n    if (opts && opts.arrayFormat in arrayPrefixGenerators) {\n        arrayFormat = opts.arrayFormat;\n    } else if (opts && 'indices' in opts) {\n        arrayFormat = opts.indices ? 'indices' : 'repeat';\n    } else {\n        arrayFormat = 'indices';\n    }\n\n    var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n    if (opts && 'commaRoundTrip' in opts && typeof opts.commaRoundTrip !== 'boolean') {\n        throw new TypeError('`commaRoundTrip` must be a boolean, or absent');\n    }\n    var commaRoundTrip = generateArrayPrefix === 'comma' && opts && opts.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 (options.skipNulls && obj[key] === null) {\n            continue;\n        }\n        pushToArray(keys, stringify(\n            obj[key],\n            key,\n            generateArrayPrefix,\n            commaRoundTrip,\n            options.strictNullHandling,\n            options.skipNulls,\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&';\n        } else {\n            // encodeURIComponent('\u2713')\n            prefix += 'utf8=%E2%9C%93&';\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    allowPrototypes: false,\n    allowSparse: false,\n    arrayLimit: 20,\n    charset: 'utf-8',\n    charsetSentinel: false,\n    comma: false,\n    decoder: utils.decode,\n    delimiter: '&',\n    depth: 5,\n    ignoreQueryPrefix: false,\n    interpretNumericEntities: false,\n    parameterLimit: 1000,\n    parseArrays: true,\n    plainObjects: false,\n    strictNullHandling: 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) {\n    if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n        return val.split(',');\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 = {};\n    var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n    var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n    var parts = cleanStr.split(options.delimiter, limit);\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, 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            val = utils.maybeMap(\n                parseArrayValue(part.slice(pos + 1), options),\n                function (encodedVal) {\n                    return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n                }\n            );\n        }\n\n        if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n            val = interpretNumericEntities(val);\n        }\n\n        if (part.indexOf('[]=') > -1) {\n            val = isArray(val) ? [val] : val;\n        }\n\n        if (has.call(obj, key)) {\n            obj[key] = utils.combine(obj[key], val);\n        } else {\n            obj[key] = val;\n        }\n    }\n\n    return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n    var leaf = valuesParsed ? val : parseArrayValue(val, options);\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            obj = [].concat(leaf);\n        } else {\n            obj = options.plainObjects ? Object.create(null) : {};\n            var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n            var index = parseInt(cleanRoot, 10);\n            if (!options.parseArrays && cleanRoot === '') {\n                obj = { 0: leaf };\n            } else if (\n                !isNaN(index)\n                && root !== cleanRoot\n                && String(index) === cleanRoot\n                && index >= 0\n                && (options.parseArrays && index <= options.arrayLimit)\n            ) {\n                obj = [];\n                obj[index] = leaf;\n            } else if (cleanRoot !== '__proto__') {\n                obj[cleanRoot] = leaf;\n            }\n        }\n\n        leaf = obj;\n    }\n\n    return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n    if (!givenKey) {\n        return;\n    }\n\n    // Transform dot notation to bracket notation\n    var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n    // The regex chunks\n\n    var brackets = /(\\[[^[\\]]*])/;\n    var child = /(\\[[^[\\]]*])/g;\n\n    // Get the parent\n\n    var segment = options.depth > 0 && brackets.exec(key);\n    var parent = segment ? key.slice(0, segment.index) : key;\n\n    // Stash the parent if it exists\n\n    var keys = [];\n    if (parent) {\n        // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n        if (!options.plainObjects && has.call(Object.prototype, parent)) {\n            if (!options.allowPrototypes) {\n                return;\n            }\n        }\n\n        keys.push(parent);\n    }\n\n    // Loop through children appending to the array until we hit depth\n\n    var i = 0;\n    while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n        i += 1;\n        if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n            if (!options.allowPrototypes) {\n                return;\n            }\n        }\n        keys.push(segment[1]);\n    }\n\n    // If there's a remainder, just add whatever is left\n\n    if (segment) {\n        keys.push('[' + key.slice(segment.index) + ']');\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 (opts.decoder !== null && 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    var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n    return {\n        allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\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        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        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        strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\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 ? Object.create(null) : {};\n    }\n\n    var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n    var obj = options.plainObjects ? Object.create(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 tables from './tables'\nexport * from './public'\nexport * from './errors'\nexport * from './types'\nexport * from './gen/public/models'\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} = axios;\n\nexport {\n  axios as default,\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\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;\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 an Array\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 val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n    && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\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/**\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 (kindOf(val) !== 'object') {\n    return false;\n  }\n\n  const prototype = getPrototypeOf(val);\n  return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\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 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 File, 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 */\nconst isFormData = (thing) => {\n  let kind;\n  return thing && (\n    (typeof FormData === 'function' && thing instanceof FormData) || (\n      isFunction(thing.append) && (\n        (kind = kindOf(thing)) === 'formdata' ||\n        // detect form-data instance\n        (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n      )\n    )\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\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) => str.trim ?\n  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} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [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    // 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\nfunction findKey(obj, key) {\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 * var 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(/* obj1, obj2, obj3, ... */) {\n  const {caseless} = isContextDefined(this) && this || {};\n  const result = {};\n  const assignValue = (val, key) => {\n    const targetKey = caseless && findKey(result, key) || key;\n    if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n      result[targetKey] = merge(result[targetKey], val);\n    } else if (isPlainObject(val)) {\n      result[targetKey] = merge({}, val);\n    } else if (isArray(val)) {\n      result[targetKey] = val.slice();\n    } else {\n      result[targetKey] = val;\n    }\n  }\n\n  for (let i = 0, l = arguments.length; i < l; i++) {\n    arguments[i] && forEach(arguments[i], assignValue);\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 {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n  forEach(b, (val, key) => {\n    if (thisArg && isFunction(val)) {\n      a[key] = bind(val, thisArg);\n    } else {\n      a[key] = val;\n    }\n  }, {allOwnKeys});\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  constructor.prototype.constructor = constructor;\n  Object.defineProperty(constructor, 'super', {\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/**\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[Symbol.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,\n    function replacer(m, p1, p2) {\n      return p1.toUpperCase() + p2;\n    }\n  );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(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'].indexOf(name) !== -1) {\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\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  value = +value;\n  return Number.isFinite(value) ? value : defaultValue;\n}\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  while (size--) {\n    str += alphabet[Math.random() * length|0]\n  }\n\n  return str;\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 !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n  const stack = new Array(10);\n\n  const visit = (source, i) => {\n\n    if (isObject(source)) {\n      if (stack.indexOf(source) >= 0) {\n        return;\n      }\n\n      if(!('toJSON' in source)) {\n        stack[i] = source;\n        const target = isArray(source) ? [] : {};\n\n        forEach(source, (value, key) => {\n          const reducedValue = visit(value, i + 1);\n          !isUndefined(reducedValue) && (target[key] = reducedValue);\n        });\n\n        stack[i] = undefined;\n\n        return target;\n      }\n    }\n\n    return source;\n  }\n\n  return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n  thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nexport default {\n  isArray,\n  isArrayBuffer,\n  isBuffer,\n  isFormData,\n  isArrayBufferView,\n  isString,\n  isNumber,\n  isBoolean,\n  isObject,\n  isPlainObject,\n  isUndefined,\n  isDate,\n  isFile,\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  reduceDescriptors,\n  freezeMethods,\n  toObjectSet,\n  toCamelCase,\n  noop,\n  toFiniteNumber,\n  findKey,\n  global: _global,\n  isContextDefined,\n  ALPHABET,\n  generateString,\n  isSpecCompliantForm,\n  toJSONObject,\n  isAsyncFn,\n  isThenable\n};\n", "'use strict';\n\nimport utils from '../utils.js';\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 */\nfunction AxiosError(message, code, config, request, response) {\n  Error.call(this);\n\n  if (Error.captureStackTrace) {\n    Error.captureStackTrace(this, this.constructor);\n  } else {\n    this.stack = (new Error()).stack;\n  }\n\n  this.message = message;\n  this.name = 'AxiosError';\n  code && (this.code = code);\n  config && (this.config = config);\n  request && (this.request = request);\n  response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n  toJSON: function toJSON() {\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: utils.toJSONObject(this.config),\n      code: this.code,\n      status: this.response && this.response.status ? this.response.status : null\n    };\n  }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n  'ERR_BAD_OPTION_VALUE',\n  'ERR_BAD_OPTION',\n  'ECONNABORTED',\n  'ETIMEDOUT',\n  'ERR_NETWORK',\n  'ERR_FR_TOO_MANY_REDIRECTS',\n  'ERR_DEPRECATED',\n  'ERR_BAD_RESPONSE',\n  'ERR_BAD_REQUEST',\n  'ERR_CANCELED',\n  'ERR_NOT_SUPPORT',\n  'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n  descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n  const axiosError = Object.create(prototype);\n\n  utils.toFlatObject(error, axiosError, function filter(obj) {\n    return obj !== Error.prototype;\n  }, prop => {\n    return prop !== 'isAxiosError';\n  });\n\n  AxiosError.call(axiosError, error.message, code, config, request, response);\n\n  axiosError.cause = error;\n\n  axiosError.name = error.name;\n\n  customProps && Object.assign(axiosError, customProps);\n\n  return axiosError;\n};\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/**\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.concat(key).map(function each(token, i) {\n    // eslint-disable-next-line no-param-reassign\n    token = removeBrackets(token);\n    return !dots && i ? '[' + token + ']' : token;\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(options, {\n    metaTokens: true,\n    dots: false,\n    indexes: false\n  }, false, function defined(option, source) {\n    // eslint-disable-next-line no-eq-null,eqeqeq\n    return !utils.isUndefined(source[option]);\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 useBlob = _Blob && utils.isSpecCompliantForm(formData);\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 (!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      return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n    }\n\n    return value;\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 (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 = JSON.stringify(value);\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) && formData.append(\n            // eslint-disable-next-line no-nested-ternary\n            indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : 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 stack = [];\n\n  const exposedHelpers = Object.assign(predicates, {\n    defaultVisitor,\n    convertValue,\n    isVisitable\n  });\n\n  function build(value, path) {\n    if (utils.isUndefined(value)) return;\n\n    if (stack.indexOf(value) !== -1) {\n      throw 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 = !(utils.isUndefined(el) || el === null) && visitor.call(\n        formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n      );\n\n      if (result === true) {\n        build(el, path ? path.concat(key) : [key]);\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    '%00': '\\x00'\n  };\n  return encodeURIComponent(str).replace(/[!'()~]|%20|%00/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 ? function(value) {\n    return encoder.call(this, value, encode);\n  } : encode;\n\n  return this._pairs.map(function each(pair) {\n    return _encode(pair[0]) + '=' + _encode(pair[1]);\n  }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n", "'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n  return encodeURIComponent(val).\n    replace(/%3A/gi, ':').\n    replace(/%24/g, '$').\n    replace(/%2C/gi, ',').\n    replace(/%20/g, '+').\n    replace(/%5B/gi, '[').\n    replace(/%5D/gi, ']');\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} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n  /*eslint no-param-reassign:0*/\n  if (!params) {\n    return url;\n  }\n  \n  const _encode = options && options.encode || encode;\n\n  const serializeFn = options && 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   *\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 {Boolean} `true` if the interceptor was removed, `false` otherwise\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};\n", "'use strict';\n\nimport url from 'url';\nexport default url.URLSearchParams;\n", "import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\n\nexport default {\n  isNode: true,\n  classes: {\n    URLSearchParams,\n    FormData,\n    Blob: typeof Blob !== 'undefined' && Blob || null\n  },\n  protocols: [ 'http', 'https', 'file', 'data' ]\n};\n", "const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== '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  (product) => {\n    return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0\n  })(typeof navigator !== 'undefined' && navigator.product);\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\nexport {\n  hasBrowserEnv,\n  hasStandardBrowserWebWorkerEnv,\n  hasStandardBrowserEnv\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(), Object.assign({\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", "'use strict';\n\nimport utils from '../utils.js';\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  return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n    return match[0] === '[]' ? '' : match[1] || match[0];\n  });\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    let name = path[index++];\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] = [target[name], value];\n      } else {\n        target[name] = value;\n      }\n\n      return !isNumericKey;\n    }\n\n    if (!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\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\n  transitional: transitionalDefaults,\n\n  adapter: ['xhr', 'http'],\n\n  transformRequest: [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      if (!hasJSONContentType) {\n        return data;\n      }\n      return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n    }\n\n    if (utils.isArrayBuffer(data) ||\n      utils.isBuffer(data) ||\n      utils.isStream(data) ||\n      utils.isFile(data) ||\n      utils.isBlob(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      if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n        return toURLEncodedForm(data, this.formSerializer).toString();\n      }\n\n      if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n        const _FormData = this.env && this.env.FormData;\n\n        return toFormData(\n          isFileList ? {'files[]': data} : data,\n          _FormData && new _FormData(),\n          this.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  transformResponse: [function transformResponse(data) {\n    const transitional = this.transitional || defaults.transitional;\n    const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n    const JSONRequested = this.responseType === 'json';\n\n    if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n      const silentJSONParsing = transitional && transitional.silentJSONParsing;\n      const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n      try {\n        return JSON.parse(data);\n      } catch (e) {\n        if (strictJSONParsing) {\n          if (e.name === 'SyntaxError') {\n            throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n          }\n          throw e;\n        }\n      }\n    }\n\n    return data;\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'], (method) => {\n  defaults.headers[method] = {};\n});\n\nexport default defaults;\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', 'authorization', 'content-length', 'content-type', 'etag',\n  'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n  'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n  'referer', 'retry-after', '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 && 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';\nimport parseHeaders from '../helpers/parseHeaders.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) : 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.trim()\n    .toLowerCase().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      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        throw new Error('header name must be a non-empty string');\n      }\n\n      const key = utils.findKey(self, lHeader);\n\n      if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\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 {\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 !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\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 && value !== false && (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()).map(([header, value]) => header + ': ' + value).join('\\n');\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 = this[$internals] = (this[$internals] = {\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(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\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 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';\nimport utils from '../utils.js';\n\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 */\nfunction CanceledError(message, config, request) {\n  // eslint-disable-next-line no-eq-null,eqeqeq\n  AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n  this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n  __CANCEL__: true\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      [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\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  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 isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\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) {\n  if (baseURL && !isAbsoluteURL(requestedURL)) {\n    return combineURLs(baseURL, requestedURL);\n  }\n  return requestedURL;\n}\n", "'use strict';\n\nimport 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 http from 'http';\nimport https from 'https';\nimport util from 'util';\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 callbackify from \"../helpers/callbackify.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 isBrotliSupported = utils.isFunction(zlib.createBrotliDecompress);\n\nconst {http: httpFollow, https: httpsFollow} = followRedirects;\n\nconst isHttps = /https:?/;\n\nconst supportedProtocols = platform.protocols.map(protocol => {\n  return protocol + ':';\n});\n\n/**\n * If the proxy or config beforeRedirects functions are defined, call them with the options\n * 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) {\n  if (options.beforeRedirects.proxy) {\n    options.beforeRedirects.proxy(options);\n  }\n  if (options.beforeRedirects.config) {\n    options.beforeRedirects.config(options);\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) {\n  let proxy = configProxy;\n  if (!proxy && proxy !== false) {\n    const proxyUrl = getProxyForUrl(location);\n    if (proxyUrl) {\n      proxy = new URL(proxyUrl);\n    }\n  }\n  if (proxy) {\n    // Basic proxy authorization\n    if (proxy.username) {\n      proxy.auth = (proxy.username || '') + ':' + (proxy.password || '');\n    }\n\n    if (proxy.auth) {\n      // Support proxy auth object form\n      if (proxy.auth.username || proxy.auth.password) {\n        proxy.auth = (proxy.auth.username || '') + ':' + (proxy.auth.password || '');\n      }\n      const base64 = Buffer\n        .from(proxy.auth, 'utf8')\n        .toString('base64');\n      options.headers['Proxy-Authorization'] = 'Basic ' + base64;\n    }\n\n    options.headers.host = options.hostname + (options.port ? ':' + options.port : '');\n    const proxyHost = proxy.hostname || proxy.host;\n    options.hostname = proxyHost;\n    // Replace 'host' since options is not a URL object\n    options.host = proxyHost;\n    options.port = proxy.port;\n    options.path = location;\n    if (proxy.protocol) {\n      options.protocol = proxy.protocol.includes(':') ? proxy.protocol : `${proxy.protocol}:`;\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(redirectOptions, configProxy, redirectOptions.href);\n  };\n}\n\nconst isHttpAdapterSupported = 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) => resolveFamily(utils.isObject(address) ? address : {address, family});\n\n/*eslint consistent-return:0*/\nexport default isHttpAdapterSupported && function httpAdapter(config) {\n  return wrapAsync(async function dispatchHttpRequest(resolve, reject, onDone) {\n    let {data, lookup, family} = config;\n    const {responseType, responseEncoding} = config;\n    const method = config.method.toUpperCase();\n    let isDone;\n    let rejected = false;\n    let req;\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          const addresses = utils.isArray(arg0) ? arg0.map(addr => buildAddressEntry(addr)) : [buildAddressEntry(arg0, arg1)];\n\n          opt.all ? cb(err, addresses) : cb(err, addresses[0].address, addresses[0].family);\n        });\n      }\n    }\n\n    // temporary internal emitter until the AxiosRequest class will be implemented\n    const emitter = new EventEmitter();\n\n    const onFinished = () => {\n      if (config.cancelToken) {\n        config.cancelToken.unsubscribe(abort);\n      }\n\n      if (config.signal) {\n        config.signal.removeEventListener('abort', abort);\n      }\n\n      emitter.removeAllListeners();\n    }\n\n    onDone((value, isRejected) => {\n      isDone = true;\n      if (isRejected) {\n        rejected = true;\n        onFinished();\n      }\n    });\n\n    function abort(reason) {\n      emitter.emit('abort', !reason || reason.type ? new CanceledError(null, config, req) : reason);\n    }\n\n    emitter.once('abort', reject);\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    // Parse url\n    const fullPath = buildFullPath(config.baseURL, config.url);\n    const parsed = new URL(fullPath, 'http://localhost');\n    const protocol = parsed.protocol || supportedProtocols[0];\n\n    if (protocol === 'data:') {\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(config.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(new AxiosError(\n        'Unsupported protocol ' + protocol,\n        AxiosError.ERR_BAD_REQUEST,\n        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 onDownloadProgress = config.onDownloadProgress;\n    const onUploadProgress = config.onUploadProgress;\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(data, (formHeaders) => {\n        headers.set(formHeaders);\n      }, {\n        tag: `axios-${VERSION}-boundary`,\n        boundary: userBoundary && userBoundary[1] || undefined\n      });\n      // support for https://www.npmjs.com/package/form-data api\n    } else if (utils.isFormData(data) && utils.isFunction(data.getHeaders)) {\n      headers.set(data.getHeaders());\n\n      if (!headers.hasContentLength()) {\n        try {\n          const knownLength = await util.promisify(data.getLength).call(data);\n          Number.isFinite(knownLength) && knownLength >= 0 && headers.setContentLength(knownLength);\n          /*eslint no-empty:0*/\n        } catch (e) {\n        }\n      }\n    } else if (utils.isBlob(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(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      // Add Content-Length header if data exists\n      headers.setContentLength(data.length, false);\n\n      if (config.maxBodyLength > -1 && data.length > config.maxBodyLength) {\n        return reject(new AxiosError(\n          'Request body larger than maxBodyLength limit',\n          AxiosError.ERR_BAD_REQUEST,\n          config\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([data, new AxiosTransformStream({\n        length: contentLength,\n        maxRate: utils.toFiniteNumber(maxUploadRate)\n      })], utils.noop);\n\n      onUploadProgress && data.on('progress', progress => {\n        onUploadProgress(Object.assign(progress, {\n          upload: true\n        }));\n      });\n    }\n\n    // HTTP basic authentication\n    let auth = undefined;\n    if (config.auth) {\n      const username = config.auth.username || '';\n      const password = config.auth.password || '';\n      auth = username + ':' + password;\n    }\n\n    if (!auth && parsed.username) {\n      const urlUsername = parsed.username;\n      const urlPassword = 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        config.params,\n        config.paramsSerializer\n      ).replace(/^\\?/, '');\n    } catch (err) {\n      const customErr = new Error(err.message);\n      customErr.config = config;\n      customErr.url = config.url;\n      customErr.exists = true;\n      return reject(customErr);\n    }\n\n    headers.set(\n      'Accept-Encoding',\n      'gzip, compress, deflate' + (isBrotliSupported ? ', br' : ''), false\n      );\n\n    const options = {\n      path,\n      method: method,\n      headers: headers.toJSON(),\n      agents: { http: config.httpAgent, https: config.httpsAgent },\n      auth,\n      protocol,\n      family,\n      beforeRedirect: dispatchBeforeRedirect,\n      beforeRedirects: {}\n    };\n\n    // cacheable-lookup integration hotfix\n    !utils.isUndefined(lookup) && (options.lookup = lookup);\n\n    if (config.socketPath) {\n      options.socketPath = config.socketPath;\n    } else {\n      options.hostname = parsed.hostname;\n      options.port = parsed.port;\n      setProxy(options, config.proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path);\n    }\n\n    let transport;\n    const isHttpsRequest = isHttps.test(options.protocol);\n    options.agent = isHttpsRequest ? config.httpsAgent : config.httpAgent;\n    if (config.transport) {\n      transport = config.transport;\n    } else if (config.maxRedirects === 0) {\n      transport = isHttpsRequest ? https : http;\n    } else {\n      if (config.maxRedirects) {\n        options.maxRedirects = config.maxRedirects;\n      }\n      if (config.beforeRedirect) {\n        options.beforeRedirects.config = config.beforeRedirect;\n      }\n      transport = isHttpsRequest ? httpsFollow : httpFollow;\n    }\n\n    if (config.maxBodyLength > -1) {\n      options.maxBodyLength = config.maxBodyLength;\n    } else {\n      // follow-redirects does not skip comparison, so it should always succeed for axios -1 unlimited\n      options.maxBodyLength = Infinity;\n    }\n\n    if (config.insecureHTTPParser) {\n      options.insecureHTTPParser = config.insecureHTTPParser;\n    }\n\n    // Create the request\n    req = transport.request(options, function handleResponse(res) {\n      if (req.destroyed) return;\n\n      const streams = [res];\n\n      const responseLength = +res.headers['content-length'];\n\n      if (onDownloadProgress) {\n        const transformStream = new AxiosTransformStream({\n          length: utils.toFiniteNumber(responseLength),\n          maxRate: utils.toFiniteNumber(maxDownloadRate)\n        });\n\n        onDownloadProgress && transformStream.on('progress', progress => {\n          onDownloadProgress(Object.assign(progress, {\n            download: true\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 (config.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        }\n      }\n\n      responseStream = streams.length > 1 ? stream.pipeline(streams, utils.noop) : streams[0];\n\n      const offListeners = stream.finished(responseStream, () => {\n        offListeners();\n        onFinished();\n      });\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        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 (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) {\n            // stream.destroy() emit aborted event before calling reject() on Node.js v16\n            rejected = true;\n            responseStream.destroy();\n            reject(new AxiosError('maxContentLength size of ' + config.maxContentLength + ' exceeded',\n              AxiosError.ERR_BAD_RESPONSE, config, lastRequest));\n          }\n        });\n\n        responseStream.on('aborted', function handlerStreamAborted() {\n          if (rejected) {\n            return;\n          }\n\n          const err = new AxiosError(\n            'maxContentLength size of ' + config.maxContentLength + ' exceeded',\n            AxiosError.ERR_BAD_RESPONSE,\n            config,\n            lastRequest\n          );\n          responseStream.destroy(err);\n          reject(err);\n        });\n\n        responseStream.on('error', function handleStreamError(err) {\n          if (req.destroyed) return;\n          reject(AxiosError.from(err, null, config, lastRequest));\n        });\n\n        responseStream.on('end', function handleStreamEnd() {\n          try {\n            let responseData = 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      emitter.once('abort', err => {\n        if (!responseStream.destroyed) {\n          responseStream.emit('error', err);\n          responseStream.destroy();\n        }\n      });\n    });\n\n    emitter.once('abort', err => {\n      reject(err);\n      req.destroy(err);\n    });\n\n    // Handle errors\n    req.on('error', function handleRequestError(err) {\n      // @todo remove\n      // if (req.aborted && err.code !== AxiosError.ERR_FR_TOO_MANY_REDIRECTS) return;\n      reject(AxiosError.from(err, null, config, req));\n    });\n\n    // set tcp keep alive to prevent drop connection by peer\n    req.on('socket', function handleRequestSocket(socket) {\n      // default interval of sending ack packet is 1 minute\n      socket.setKeepAlive(true, 1000 * 60);\n    });\n\n    // Handle request timeout\n    if (config.timeout) {\n      // This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types.\n      const timeout = parseInt(config.timeout, 10);\n\n      if (Number.isNaN(timeout)) {\n        reject(new AxiosError(\n          'error trying to parse `config.timeout` to int',\n          AxiosError.ERR_BAD_OPTION_VALUE,\n          config,\n          req\n        ));\n\n        return;\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, function handleRequestTimeout() {\n        if (isDone) return;\n        let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n        const transitional = config.transitional || transitionalDefaults;\n        if (config.timeoutErrorMessage) {\n          timeoutErrorMessage = config.timeoutErrorMessage;\n        }\n        reject(new AxiosError(\n          timeoutErrorMessage,\n          transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n          config,\n          req\n        ));\n        abort();\n      });\n    }\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      data.pipe(req);\n    } else {\n      req.end(data);\n    }\n  });\n}\n\nexport const __setProxy = setProxy;\n", "export const VERSION = \"1.6.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\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 mime = match[1];\n    const isBase64 = match[2];\n    const body = match[3];\n    const buffer = Buffer.from(decodeURIComponent(body), isBase64 ? 'base64' : 'utf8');\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';\nimport throttle from './throttle.js';\nimport speedometer from './speedometer.js';\n\nconst kInternals = Symbol('internals');\n\nclass AxiosTransformStream extends stream.Transform{\n  constructor(options) {\n    options = utils.toFlatObject(options, {\n      maxRate: 0,\n      chunkSize: 64 * 1024,\n      minChunkSize: 100,\n      timeWindow: 500,\n      ticksRate: 2,\n      samplesCount: 15\n    }, null, (prop, source) => {\n      return !utils.isUndefined(source[prop]);\n    });\n\n    super({\n      readableHighWaterMark: options.chunkSize\n    });\n\n    const self = this;\n\n    const internals = this[kInternals] = {\n      length: options.length,\n      timeWindow: options.timeWindow,\n      ticksRate: options.ticksRate,\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    const _speedometer = speedometer(internals.ticksRate * options.samplesCount, internals.timeWindow);\n\n    this.on('newListener', event => {\n      if (event === 'progress') {\n        if (!internals.isCaptured) {\n          internals.isCaptured = true;\n        }\n      }\n    });\n\n    let bytesNotified = 0;\n\n    internals.updateProgress = throttle(function throttledHandler() {\n      const totalBytes = internals.length;\n      const bytesTransferred = internals.bytesSeen;\n      const progressBytes = bytesTransferred - bytesNotified;\n      if (!progressBytes || self.destroyed) return;\n\n      const rate = _speedometer(progressBytes);\n\n      bytesNotified = bytesTransferred;\n\n      process.nextTick(() => {\n        self.emit('progress', {\n          'loaded': bytesTransferred,\n          'total': totalBytes,\n          'progress': totalBytes ? (bytesTransferred / totalBytes) : undefined,\n          'bytes': progressBytes,\n          'rate': rate ? rate : undefined,\n          'estimated': rate && totalBytes && bytesTransferred <= totalBytes ?\n            (totalBytes - bytesTransferred) / rate : undefined\n        });\n      });\n    }, internals.ticksRate);\n\n    const onFinish = () => {\n      internals.updateProgress(true);\n    };\n\n    this.once('end', onFinish);\n    this.once('error', onFinish);\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 self = this;\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 = internals.minChunkSize !== false ? Math.max(internals.minChunkSize, bytesThreshold * 0.01) : 0;\n\n    function pushChunk(_chunk, _callback) {\n      const bytes = Buffer.byteLength(_chunk);\n      internals.bytesSeen += bytes;\n      internals.bytes += bytes;\n\n      if (internals.isCaptured) {\n        internals.updateProgress();\n      }\n\n      if (self.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(_chunk, chunkRemainder ? () => {\n        process.nextTick(_callback, null, chunkRemainder);\n      } : _callback);\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  setLength(length) {\n    this[kInternals].length = +length;\n    return this;\n  }\n}\n\nexport default AxiosTransformStream;\n", "'use strict';\n\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  const threshold = 1000 / freq;\n  let timer = null;\n  return function throttled(force, args) {\n    const now = Date.now();\n    if (force || now - timestamp > threshold) {\n      if (timer) {\n        clearTimeout(timer);\n        timer = null;\n      }\n      timestamp = now;\n      return fn.apply(null, args);\n    }\n    if (!timer) {\n      timer = setTimeout(() => {\n        timer = null;\n        timestamp = Date.now();\n        return fn.apply(null, args);\n      }, threshold - (now - timestamp));\n    }\n  };\n}\n\nexport default throttle;\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", "import {TextEncoder} from 'util';\nimport {Readable} from 'stream';\nimport utils from \"../utils.js\";\nimport readBlob from \"./readBlob.js\";\n\nconst BOUNDARY_ALPHABET = utils.ALPHABET.ALPHA_DIGIT + '-_';\n\nconst textEncoder = new 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      headers += `Content-Type: ${value.type || \"application/octet-stream\"}${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(/[\\r\\n\"]/g, (match) => ({\n        '\\r' : '%0D',\n        '\\n' : '%0A',\n        '\"' : '%22',\n      }[match]));\n  }\n}\n\nconst formDataToStream = (form, headersHandler, options) => {\n  const {\n    tag = 'form-data-boundary',\n    size = 25,\n    boundary = tag + '-' + utils.generateString(size, BOUNDARY_ALPHABET)\n  } = options || {};\n\n  if(!utils.isFormData(form)) {\n    throw TypeError('FormData instance required');\n  }\n\n  if (boundary.length < 1 || boundary.length > 70) {\n    throw Error('boundary must be 10-70 characters long')\n  }\n\n  const boundaryBytes = textEncoder.encode('--' + boundary + CRLF);\n  const footerBytes = textEncoder.encode('--' + boundary + '--' + CRLF + 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((async function *() {\n    for(const part of parts) {\n      yield boundaryBytes;\n      yield* part.encode();\n    }\n\n    yield footerBytes;\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) { // 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", "import utils from \"../utils.js\";\n\nconst callbackify = (fn, reducer) => {\n  return utils.isAsyncFn(fn) ? 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  } : fn;\n}\n\nexport default callbackify;\n", "'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs support document.cookie\n  (function standardBrowserEnv() {\n    return {\n      write: function write(name, value, expires, path, domain, secure) {\n        const cookie = [];\n        cookie.push(name + '=' + encodeURIComponent(value));\n\n        if (utils.isNumber(expires)) {\n          cookie.push('expires=' + new Date(expires).toGMTString());\n        }\n\n        if (utils.isString(path)) {\n          cookie.push('path=' + path);\n        }\n\n        if (utils.isString(domain)) {\n          cookie.push('domain=' + domain);\n        }\n\n        if (secure === true) {\n          cookie.push('secure');\n        }\n\n        document.cookie = cookie.join('; ');\n      },\n\n      read: function read(name) {\n        const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n        return (match ? decodeURIComponent(match[3]) : null);\n      },\n\n      remove: function remove(name) {\n        this.write(name, '', Date.now() - 86400000);\n      }\n    };\n  })() :\n\n// Non standard browser env (web workers, react-native) lack needed support.\n  (function nonStandardBrowserEnv() {\n    return {\n      write: function write() {},\n      read: function read() { return null; },\n      remove: function remove() {}\n    };\n  })();\n", "'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n  (function standardBrowserEnv() {\n    const msie = /(msie|trident)/i.test(navigator.userAgent);\n    const urlParsingNode = document.createElement('a');\n    let originURL;\n\n    /**\n    * Parse a URL to discover it's components\n    *\n    * @param {String} url The URL to be parsed\n    * @returns {Object}\n    */\n    function resolveURL(url) {\n      let href = url;\n\n      if (msie) {\n        // IE needs attribute set twice to normalize properties\n        urlParsingNode.setAttribute('href', href);\n        href = urlParsingNode.href;\n      }\n\n      urlParsingNode.setAttribute('href', href);\n\n      // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n      return {\n        href: urlParsingNode.href,\n        protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n        host: urlParsingNode.host,\n        search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n        hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n        hostname: urlParsingNode.hostname,\n        port: urlParsingNode.port,\n        pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n          urlParsingNode.pathname :\n          '/' + urlParsingNode.pathname\n      };\n    }\n\n    originURL = resolveURL(window.location.href);\n\n    /**\n    * Determine if a URL shares the same origin as the current location\n    *\n    * @param {String} requestURL The URL to test\n    * @returns {boolean} True if URL shares the same origin, otherwise false\n    */\n    return function isURLSameOrigin(requestURL) {\n      const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n      return (parsed.protocol === originURL.protocol &&\n          parsed.host === originURL.host);\n    };\n  })() :\n\n  // Non standard browser envs (web workers, react-native) lack needed support.\n  (function nonStandardBrowserEnv() {\n    return function isURLSameOrigin() {\n      return true;\n    };\n  })();\n", "'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport cookies from './../helpers/cookies.js';\nimport buildURL from './../helpers/buildURL.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport isURLSameOrigin from './../helpers/isURLSameOrigin.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 speedometer from '../helpers/speedometer.js';\n\nfunction progressEventReducer(listener, isDownloadStream) {\n  let bytesNotified = 0;\n  const _speedometer = speedometer(50, 250);\n\n  return e => {\n    const loaded = e.loaded;\n    const total = e.lengthComputable ? e.total : undefined;\n    const progressBytes = loaded - bytesNotified;\n    const rate = _speedometer(progressBytes);\n    const inRange = loaded <= total;\n\n    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 && inRange ? (total - loaded) / rate : undefined,\n      event: e\n    };\n\n    data[isDownloadStream ? 'download' : 'upload'] = true;\n\n    listener(data);\n  };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n  return new Promise(function dispatchXhrRequest(resolve, reject) {\n    let requestData = config.data;\n    const requestHeaders = AxiosHeaders.from(config.headers).normalize();\n    const responseType = config.responseType;\n    let onCanceled;\n    function done() {\n      if (config.cancelToken) {\n        config.cancelToken.unsubscribe(onCanceled);\n      }\n\n      if (config.signal) {\n        config.signal.removeEventListener('abort', onCanceled);\n      }\n    }\n\n    let contentType;\n\n    if (utils.isFormData(requestData)) {\n      if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n        requestHeaders.setContentType(false); // Let the browser set it\n      } else if ((contentType = requestHeaders.getContentType()) !== false) {\n        // fix semicolon duplication issue for ReactNative FormData implementation\n        const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n        requestHeaders.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n      }\n    }\n\n    let request = new XMLHttpRequest();\n\n    // HTTP basic authentication\n    if (config.auth) {\n      const username = config.auth.username || '';\n      const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n      requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n    }\n\n    const fullPath = buildFullPath(config.baseURL, config.url);\n\n    request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), 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 = !responseType || responseType === 'text' || responseType === 'json' ?\n        request.responseText : 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(function _resolve(value) {\n        resolve(value);\n        done();\n      }, function _reject(err) {\n        reject(err);\n        done();\n      }, response);\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 (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\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\n      // Clean up request\n      request = null;\n    };\n\n    // Handle low level network errors\n    request.onerror = function handleError() {\n      // Real errors are hidden from us by the browser\n      // onerror should only fire if it's a network error\n      reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Handle timeout\n    request.ontimeout = function handleTimeout() {\n      let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n      const transitional = config.transitional || transitionalDefaults;\n      if (config.timeoutErrorMessage) {\n        timeoutErrorMessage = config.timeoutErrorMessage;\n      }\n      reject(new AxiosError(\n        timeoutErrorMessage,\n        transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n        config,\n        request));\n\n      // Clean up request\n      request = null;\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    if (platform.hasStandardBrowserEnv) {\n      // Add xsrf header\n      // regarding CVE-2023-45857 config.withCredentials condition was removed temporarily\n      const xsrfValue = isURLSameOrigin(fullPath) && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n      if (xsrfValue) {\n        requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n      }\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(requestHeaders.toJSON(), 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 (typeof config.onDownloadProgress === 'function') {\n      request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n    }\n\n    // Not all browsers support upload events\n    if (typeof config.onUploadProgress === 'function' && request.upload) {\n      request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\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        request = null;\n      };\n\n      config.cancelToken && config.cancelToken.subscribe(onCanceled);\n      if (config.signal) {\n        config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n      }\n    }\n\n    const protocol = parseProtocol(fullPath);\n\n    if (protocol && platform.protocols.indexOf(protocol) === -1) {\n      reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n      return;\n    }\n\n\n    // Send the request\n    request.send(requestData || null);\n  });\n}\n", "import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n  http: httpAdapter,\n  xhr: xhrAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n  if (fn) {\n    try {\n      Object.defineProperty(fn, 'name', {value});\n    } catch (e) {\n      // eslint-disable-next-line no-empty\n    }\n    Object.defineProperty(fn, 'adapterName', {value});\n  }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n  getAdapter: (adapters) => {\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) {\n        break;\n      }\n\n      rejectedReasons[id || '#' + i] = adapter;\n    }\n\n    if (!adapter) {\n\n      const reasons = Object.entries(rejectedReasons)\n        .map(([id, state]) => `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 ? 'since :\\n' + reasons.map(renderReason).join('\\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        'ERR_NOT_SUPPORT'\n      );\n    }\n\n    return adapter;\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(\n    config,\n    config.transformRequest\n  );\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);\n\n  return adapter(config).then(function onAdapterResolution(response) {\n    throwIfCancellationRequested(config);\n\n    // Transform response data\n    response.data = transformData.call(\n      config,\n      config.transformResponse,\n      response\n    );\n\n    response.headers = AxiosHeaders.from(response.headers);\n\n    return response;\n  }, function onAdapterRejection(reason) {\n    if (!isCancel(reason)) {\n      throwIfCancellationRequested(config);\n\n      // Transform response data\n      if (reason && reason.response) {\n        reason.response.data = transformData.call(\n          config,\n          config.transformResponse,\n          reason.response\n        );\n        reason.response.headers = AxiosHeaders.from(reason.response.headers);\n      }\n    }\n\n    return Promise.reject(reason);\n  });\n}\n", "'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? thing.toJSON() : 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  config2 = config2 || {};\n  const config = {};\n\n  function getMergedValue(target, source, 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  // eslint-disable-next-line consistent-return\n  function mergeDeepProperties(a, b, caseless) {\n    if (!utils.isUndefined(b)) {\n      return getMergedValue(a, b, caseless);\n    } else if (!utils.isUndefined(a)) {\n      return getMergedValue(undefined, a, 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  // eslint-disable-next-line consistent-return\n  function mergeDirectKeys(a, b, prop) {\n    if (prop in config2) {\n      return getMergedValue(a, b);\n    } else if (prop in config1) {\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    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    responseEncoding: defaultToConfig2,\n    validateStatus: mergeDirectKeys,\n    headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n  };\n\n  utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n    const merge = mergeMap[prop] || mergeDeepProperties;\n    const configValue = merge(config1[prop], config2[prop], prop);\n    (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n  });\n\n  return config;\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 '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\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\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') {\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    const validator = schema[opt];\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('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\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';\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  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(transitional, {\n        silentJSONParsing: validators.transitional(validators.boolean),\n        forcedJSONParsing: validators.transitional(validators.boolean),\n        clarifyTimeoutError: validators.transitional(validators.boolean)\n      }, false);\n    }\n\n    if (paramsSerializer != null) {\n      if (utils.isFunction(paramsSerializer)) {\n        config.paramsSerializer = {\n          serialize: paramsSerializer\n        }\n      } else {\n        validator.assertOptions(paramsSerializer, {\n          encode: validators.function,\n          serialize: validators.function\n        }, true);\n      }\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(\n      headers.common,\n      headers[config.method]\n    );\n\n    headers && utils.forEach(\n      ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n      (method) => {\n        delete headers[method];\n      }\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      requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\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.apply(chain, requestInterceptorChain);\n      chain.push.apply(chain, 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    i = 0;\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);\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(mergeConfig(config || {}, {\n      method,\n      url,\n      data: (config || {}).data\n    }));\n  };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n  /*eslint func-names:0*/\n\n  function generateHTTPMethod(isForm) {\n    return function httpMethod(url, data, config) {\n      return this.request(mergeConfig(config || {}, {\n        method,\n        headers: isForm ? {\n          'Content-Type': 'multipart/form-data'\n        } : {},\n        url,\n        data\n      }));\n    };\n  }\n\n  Axios.prototype[method] = generateHTTPMethod();\n\n  Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\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  /**\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 *  var 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};\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 axiosRetry from 'axios-retry'\nimport * 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)\n\n    super(axiosInstance, {\n      toApiError: common.errors.toApiError,\n    })\n\n    if (clientProps.retry) {\n      axiosRetry(axiosInstance, clientProps.retry)\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://api.botpress.cloud'\nconst defaultTimeout = 60_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 ?? defaultTimeout\n  const debug = props.debug ?? defaultDebug\n\n  return {\n    apiUrl,\n    timeout,\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 * as consts from './consts'\nimport * as interceptors from './debug-interceptors'\nimport * as types from './types'\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\nexport const createAxiosInstance = (config: types.ClientConfig): 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\n  return axiosInstance\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 from 'axios'\nimport * as errors from '../errors'\n\nexport const toApiError = (err: unknown): Error => {\n  if (axios.isAxiosError(err) && err.response?.data) {\n    return errors.errorFrom(err.response.data)\n  }\n  return errors.errorFrom(err)\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 { UpsertFileResponse } from './gen/public/operations/upsertFile'\n\nexport * from './gen/public/errors'\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\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'] },\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     * Id of the current [Workflow](#schema_workflow)\n     */\n    currentWorkflowId?: 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}\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     * Id of the current [Workflow](#schema_workflow)\n     */\n    currentWorkflowId?: 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}\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  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}\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'], 'sortField': input['sortField'], 'sortDirection': input['sortDirection'], 'tags': input['tags'], 'participantIds': input['participantIds'], 'integrationName': input['integrationName'], 'channel': input['channel'], 'afterDate': input['afterDate'], 'beforeDate': input['beforeDate'] },\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     * Id of the current [Workflow](#schema_workflow)\n     */\n    currentWorkflowId?: 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  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)\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   * 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'], '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     * Id of the current [Workflow](#schema_workflow)\n     */\n    currentWorkflowId?: 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}\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)\n   */\n  tags?: {\n    [k: string]: string;\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'] },\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     * Id of the current [Workflow](#schema_workflow)\n     */\n    currentWorkflowId?: 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}\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}\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'] },\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 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 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 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  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'], '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   * 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   * 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}\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 [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   * 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  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'], '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 attributes that can be accessed and modified by both the bot and any of its integrations.\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     * 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 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     * Id of the current [Workflow](#schema_workflow)\n     */\n    currentWorkflowId?: 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  /**\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 attributes that can be accessed and modified by both the bot and any of its integrations.\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'], '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 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 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  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'], '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 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](#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 attributes that can be accessed and modified by both the bot and any of its integrations.\n   */\n  attributes?: {\n    [k: string]: string;\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'], '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 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 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)\n   */\n  tags?: {\n    [k: string]: string;\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   * EXPERIMENTAL - Optional shared attributes that can be accessed and modified by both the bot and any of its integrations. Set individual attributes to null to remove them.\n   */\n  attributes?: {\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'] },\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 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     * 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}\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     * 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  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\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'] },\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     * 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}\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     * 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  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\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'] },\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     * 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}\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)\n   */\n  tags?: {\n    [k: string]: string;\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  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'], '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}\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  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'], '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.73.4'\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 axiosRetry from 'axios-retry'\nimport * 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)\n\n    super(axiosInstance, {\n      toApiError: common.errors.toApiError,\n    })\n\n    if (clientProps.retry) {\n      axiosRetry(axiosInstance, clientProps.retry)\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  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'], '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     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: string;\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    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     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: string;\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    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  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'], '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     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: string;\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}\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     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: string;\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}\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     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: string;\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}\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  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'], '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     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: 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}\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     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: 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}\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   * 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\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'], 'dev': input['dev'] },\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     * 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}\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  /**\n   * Optional attributes of the [Bot](#schema_bot)\n   */\n  tags?: {\n    [k: string]: string;\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  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  layers?: string[];\n  /**\n   * UNUSED. Please ignore this field. It will be removed in the near future.\n   */\n  shouldMergePlugins?: boolean;\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'], 'tags': input['tags'], 'blocked': input['blocked'], 'maxExecutionTime': input['maxExecutionTime'], 'alwaysAlive': input['alwaysAlive'], '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'], 'layers': input['layers'], 'shouldMergePlugins': input['shouldMergePlugins'] },\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     * 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}\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  nextToken?: string;\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'], 'nextToken': input['nextToken'], '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  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  shouldMergePlugins?: boolean;\n}\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: { 'shouldMergePlugins': input['shouldMergePlugins'] },\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     * 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}\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}\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'] },\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}\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'] },\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 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}\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'] },\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\";\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\";\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\";\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  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'], '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\";\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  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'], '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}\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'] },\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}\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'] },\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}\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'] },\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  /**\n   * Optional attributes\n   */\n  attributes?: {\n    [k: string]: string;\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\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'], 'attributes': input['attributes'], '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'] },\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     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: string;\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}\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  /**\n   * Optional attributes\n   */\n  attributes?: {\n    [k: string]: string;\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\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'], 'attributes': input['attributes'], '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'] },\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 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  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 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\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'] },\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     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: string;\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}\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 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  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 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\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'] },\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  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'], '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     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: string;\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}\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     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: string;\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}\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  /**\n   * Optional attributes\n   */\n  attributes?: {\n    [k: string]: 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\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'], 'attributes': input['attributes'], 'sdkVersion': input['sdkVersion'], 'icon': input['icon'], 'readme': input['readme'], 'title': input['title'], 'description': input['description'], 'public': input['public'] },\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     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: 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}\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     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: 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}\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     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: 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}\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  /**\n   * Optional attributes. Set attributes to null to remove them\n   */\n  attributes?: {\n    [k: string]: string | null;\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\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'], 'attributes': input['attributes'], 'sdkVersion': input['sdkVersion'], 'icon': input['icon'], 'readme': input['readme'], 'title': input['title'], 'description': input['description'], 'public': input['public'] },\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     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: 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}\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  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'], '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   * Optional attributes\n   */\n  attributes?: {\n    [k: string]: string;\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\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'], 'attributes': input['attributes'], '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'] },\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     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: string;\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}\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     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: string;\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}\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     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: string;\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}\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     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: string;\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}\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  /**\n   * Optional attributes. Set attributes to null to remove them\n   */\n  attributes?: {\n    [k: string]: string | null;\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\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'], 'attributes': input['attributes'], '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'] },\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     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: string;\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}\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  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'], '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}\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'] },\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}\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'] },\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  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'], '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 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 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.73.4'\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 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 axiosRetry from 'axios-retry'\nimport * 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)\n\n    super(axiosInstance, {\n      toApiError: common.errors.toApiError,\n    })\n\n    if (clientProps.retry) {\n      axiosRetry(axiosInstance, clientProps.retry)\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 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      amount: number;\n      currency: string;\n    };\n    year?: {\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      amount: number;\n      currency: string;\n    };\n    year?: {\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  price: number;\n  feature:\n    | \"human_in_the_loop\"\n    | \"ratelimit\"\n    | \"incoming_messages_events\"\n    | \"integration_spend\"\n    | \"integration_subscription\"\n    | \"table_rows\"\n    | \"bot_count\"\n    | \"always_alive_count\"\n    | \"always_alive_concurrency\"\n    | \"collaborator_count\"\n    | \"file_storage\"\n    | \"vector_db_storage\"\n    | \"saved_versions\";\n  increment: number;\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  price: number;\n  feature:\n    | \"human_in_the_loop\"\n    | \"ratelimit\"\n    | \"incoming_messages_events\"\n    | \"integration_spend\"\n    | \"integration_subscription\"\n    | \"table_rows\"\n    | \"bot_count\"\n    | \"always_alive_count\"\n    | \"always_alive_concurrency\"\n    | \"collaborator_count\"\n    | \"file_storage\"\n    | \"vector_db_storage\"\n    | \"saved_versions\";\n  increment: number;\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\" | \"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\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\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'] },\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;\n    };\n    addons: {\n      [k: string]: {\n        quantity: number;\n        effectiveDate: string;\n      };\n    };\n  };\n  changeType: \"upgrade\" | \"downgrade\" | \"same\";\n  costs: {\n    /**\n     * Prorated charges due immediately (0 for downgrades)\n     */\n    immediate: {\n      total: number;\n      lineItems: {\n        type: \"plan\" | \"addon\" | \"proration_credit\";\n        id: string;\n        description: string;\n        amount: number;\n        quantity?: number;\n      }[];\n    };\n    /**\n     * Monthly recurring cost (addons, or plan if monthly interval)\n     */\n    monthly: {\n      total: number;\n      lineItems: {\n        type: \"plan\" | \"addon\" | \"proration_credit\";\n        id: string;\n        description: string;\n        amount: number;\n        quantity?: number;\n      }[];\n    };\n    /**\n     * Yearly recurring cost (plan if yearly interval)\n     */\n    yearly: {\n      total: number;\n      lineItems: {\n        type: \"plan\" | \"addon\" | \"proration_credit\";\n        id: string;\n        description: string;\n        amount: number;\n        quantity?: number;\n      }[];\n    };\n  };\n  currentPeriodEnd: 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\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'] },\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\" | \"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\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\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'] },\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\" | \"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\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  cancelAtPeriodEnd: boolean;\n}\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 = (input: SetCancelAtPeriodEndInput): SetCancelAtPeriodEndRequest & { path: string } => {\n  return {\n    path: `/v2/billing/subscriptions/cancel`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'cancelAtPeriodEnd': input['cancelAtPeriodEnd'] },\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\" | \"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\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    table_row_count: {\n      enabled: boolean;\n      threshold?: number;\n      limit?: number;\n      disabledReason?: string;\n    };\n    invocation_calls: {\n      enabled: boolean;\n      threshold?: number;\n      limit?: number;\n      disabledReason?: string;\n    };\n    knowledgebase_vector_storage: {\n      enabled: boolean;\n      threshold?: number;\n      limit?: number;\n      disabledReason?: string;\n    };\n    storage_count: {\n      enabled: boolean;\n      threshold?: number;\n      limit?: 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    table_row_count?: {\n      enabled: boolean;\n      threshold?: number;\n      limit?: number;\n      disabledReason?: string;\n    };\n    invocation_calls?: {\n      enabled: boolean;\n      threshold?: number;\n      limit?: number;\n      disabledReason?: string;\n    };\n    knowledgebase_vector_storage?: {\n      enabled: boolean;\n      threshold?: number;\n      limit?: number;\n      disabledReason?: string;\n    };\n    storage_count?: {\n      enabled: boolean;\n      threshold?: number;\n      limit?: number;\n      disabledReason?: string;\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    table_row_count: {\n      enabled: boolean;\n      threshold?: number;\n      limit?: number;\n      disabledReason?: string;\n    };\n    invocation_calls: {\n      enabled: boolean;\n      threshold?: number;\n      limit?: number;\n      disabledReason?: string;\n    };\n    knowledgebase_vector_storage: {\n      enabled: boolean;\n      threshold?: number;\n      limit?: number;\n      disabledReason?: string;\n    };\n    storage_count: {\n      enabled: boolean;\n      threshold?: number;\n      limit?: 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 ListInvoicesRequestHeaders {}\n\nexport interface ListInvoicesRequestQuery {\n  nextToken?: string;\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'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListInvoicesResponse {\n  invoices: {\n    id: string;\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  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\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 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 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'\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 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 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'\n\nexport const apiVersion = '1.73.4'\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 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: \"put\",\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 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}\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 axiosRetry from 'axios-retry'\nimport * as common from '../common'\nimport * as gen from '../gen/files'\nimport * as types from '../types'\nimport * as uploadFile from './upload-file'\n\ntype IClient = common.types.Simplify<\n  gen.Client & {\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)\n\n    super(axiosInstance, {\n      toApiError: common.errors.toApiError,\n    })\n\n    if (clientProps.retry) {\n      axiosRetry(axiosInstance, clientProps.retry)\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", "\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  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'], '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  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'], '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}\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'] },\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}\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'] },\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  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'], '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.73.4'\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 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}\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> = {\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 axiosRetry from 'axios-retry'\nimport * as common from '../common'\nimport * as gen from '../gen/tables'\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)\n\n    super(axiosInstance, {\n      toApiError: common.errors.toApiError,\n    })\n\n    if (clientProps.retry) {\n      axiosRetry(axiosInstance, clientProps.retry)\n    }\n\n    this.config = clientConfig\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    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\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    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\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   * Provide an object or a JSON schema to define the columns of the table. A maximum of 20 keys in the object/schema is allowed.\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'], '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    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\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   * Provide an object or a JSON schema to define the columns of the table. A maximum of 20 keys in the object/schema is allowed.\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'], '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    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\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    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\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\";\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\";\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\";\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 columns of the table. A maximum of 20 keys in the object/schema is allowed.\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    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\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    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\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     * 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\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\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?: {\n    [k: string]: any;\n  };\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?: string;\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     * 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\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     * 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\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\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. Example: \\{ \"name\": \\{ \"$eq\": \"John\" \\} \\}\n   */\n  filter?: {\n    [k: string]: any;\n  };\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}\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    [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     * 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\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    [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     * 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     * 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\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.73.4'\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", "\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\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'] },\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     * Id of the current [Workflow](#schema_workflow)\n     */\n    currentWorkflowId?: 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}\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     * Id of the current [Workflow](#schema_workflow)\n     */\n    currentWorkflowId?: 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}\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  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}\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'], 'sortField': input['sortField'], 'sortDirection': input['sortDirection'], 'tags': input['tags'], 'participantIds': input['participantIds'], 'integrationName': input['integrationName'], 'channel': input['channel'], 'afterDate': input['afterDate'], 'beforeDate': input['beforeDate'] },\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     * Id of the current [Workflow](#schema_workflow)\n     */\n    currentWorkflowId?: 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  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)\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   * 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'], '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     * Id of the current [Workflow](#schema_workflow)\n     */\n    currentWorkflowId?: 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}\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)\n   */\n  tags?: {\n    [k: string]: string;\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'] },\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     * Id of the current [Workflow](#schema_workflow)\n     */\n    currentWorkflowId?: 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}\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}\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'] },\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 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 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 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  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'], '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   * 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   * 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}\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 [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   * 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  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'], '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 attributes that can be accessed and modified by both the bot and any of its integrations.\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     * 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 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     * Id of the current [Workflow](#schema_workflow)\n     */\n    currentWorkflowId?: 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  /**\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 attributes that can be accessed and modified by both the bot and any of its integrations.\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'], '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 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 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  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'], '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 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](#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 attributes that can be accessed and modified by both the bot and any of its integrations.\n   */\n  attributes?: {\n    [k: string]: string;\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'], '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 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 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)\n   */\n  tags?: {\n    [k: string]: string;\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   * EXPERIMENTAL - Optional shared attributes that can be accessed and modified by both the bot and any of its integrations. Set individual attributes to null to remove them.\n   */\n  attributes?: {\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'] },\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 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     * 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}\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     * 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  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\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'] },\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     * 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}\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     * 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  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\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'] },\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     * 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}\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)\n   */\n  tags?: {\n    [k: string]: string;\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  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'], '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}\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  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'], '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  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'], '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     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: string;\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    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     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: string;\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    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  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'], '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     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: string;\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}\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     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: string;\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}\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     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: string;\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}\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  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'], '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     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: 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}\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     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: 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}\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   * 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\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'], 'dev': input['dev'] },\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     * 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}\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  /**\n   * Optional attributes of the [Bot](#schema_bot)\n   */\n  tags?: {\n    [k: string]: string;\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  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  layers?: string[];\n  /**\n   * UNUSED. Please ignore this field. It will be removed in the near future.\n   */\n  shouldMergePlugins?: boolean;\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'], 'tags': input['tags'], 'blocked': input['blocked'], 'maxExecutionTime': input['maxExecutionTime'], 'alwaysAlive': input['alwaysAlive'], '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'], 'layers': input['layers'], 'shouldMergePlugins': input['shouldMergePlugins'] },\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     * 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}\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  nextToken?: string;\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'], 'nextToken': input['nextToken'], '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  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  shouldMergePlugins?: boolean;\n}\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: { 'shouldMergePlugins': input['shouldMergePlugins'] },\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     * 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}\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}\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'] },\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}\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'] },\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 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}\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'] },\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\";\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\";\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\";\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  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'], '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\";\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  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'], '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}\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'] },\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}\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'] },\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}\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'] },\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  /**\n   * Optional attributes\n   */\n  attributes?: {\n    [k: string]: string;\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\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'], 'attributes': input['attributes'], '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'] },\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     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: string;\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}\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  /**\n   * Optional attributes\n   */\n  attributes?: {\n    [k: string]: string;\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\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'], 'attributes': input['attributes'], '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'] },\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 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  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 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\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'] },\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     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: string;\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}\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 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  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 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\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'] },\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  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'], '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     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: string;\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}\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     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: string;\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}\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  /**\n   * Optional attributes\n   */\n  attributes?: {\n    [k: string]: 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\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'], 'attributes': input['attributes'], 'sdkVersion': input['sdkVersion'], 'icon': input['icon'], 'readme': input['readme'], 'title': input['title'], 'description': input['description'], 'public': input['public'] },\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     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: 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}\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     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: 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}\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     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: 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}\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  /**\n   * Optional attributes. Set attributes to null to remove them\n   */\n  attributes?: {\n    [k: string]: string | null;\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\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'], 'attributes': input['attributes'], 'sdkVersion': input['sdkVersion'], 'icon': input['icon'], 'readme': input['readme'], 'title': input['title'], 'description': input['description'], 'public': input['public'] },\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     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: 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}\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  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'], '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   * Optional attributes\n   */\n  attributes?: {\n    [k: string]: string;\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\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'], 'attributes': input['attributes'], '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'] },\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     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: string;\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}\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     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: string;\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}\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     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: string;\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}\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     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: string;\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}\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  /**\n   * Optional attributes. Set attributes to null to remove them\n   */\n  attributes?: {\n    [k: string]: string | null;\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\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'], 'attributes': input['attributes'], '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'] },\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     * Optional attributes\n     */\n    attributes?: {\n      [k: string]: string;\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}\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  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'], '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}\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'] },\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}\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'] },\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  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'], '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  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'], '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  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'], '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}\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'] },\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}\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'] },\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  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'], '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    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\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    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\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   * Provide an object or a JSON schema to define the columns of the table. A maximum of 20 keys in the object/schema is allowed.\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'], '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    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\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   * Provide an object or a JSON schema to define the columns of the table. A maximum of 20 keys in the object/schema is allowed.\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'], '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    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\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    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\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\";\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\";\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\";\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 columns of the table. A maximum of 20 keys in the object/schema is allowed.\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    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\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    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\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     * 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\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\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?: {\n    [k: string]: any;\n  };\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?: string;\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     * 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\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     * 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\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\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. Example: \\{ \"name\": \\{ \"$eq\": \"John\" \\} \\}\n   */\n  filter?: {\n    [k: string]: any;\n  };\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}\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    [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     * 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\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    [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     * 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     * 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\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 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 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.73.4'\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 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 axiosRetry from 'axios-retry'\nimport * as common from '../common'\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    uploadFile: (input: uploadFile.UploadFileInput) => Promise<uploadFile.UploadFileOutput>\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\n  public constructor(clientProps: ClientProps = {}) {\n    const clientConfig = common.config.getClientConfig(clientProps)\n    const axiosInstance = common.axios.createAxiosInstance(clientConfig)\n\n    super(axiosInstance, {\n      toApiError: common.errors.toApiError,\n    })\n\n    if (clientProps.retry) {\n      axiosRetry(axiosInstance, clientProps.retry)\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      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"],
  "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", "a", "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_functionApply", "__commonJSMin", "exports", "module", "require_functionCall", "__commonJSMin", "exports", "module", "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", "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_proxy_from_env", "__commonJSMin", "exports", "parseUrl", "DEFAULT_PORTS", "stringEndsWith", "s", "getProxyForUrl", "url", "parsedUrl", "proto", "hostname", "port", "shouldProxy", "proxy", "getEnv", "NO_PROXY", "parsedProxy", "parsedProxyHostname", "parsedProxyPort", "key", "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", "require_debug", "__commonJSMin", "exports", "module", "debug", "require_follow_redirects", "__commonJSMin", "exports", "module", "url", "URL", "http", "https", "Writable", "assert", "debug", "events", "eventHandlers", "event", "arg1", "arg2", "arg3", "InvalidUrlError", "createErrorType", "RedirectionError", "TooManyRedirectsError", "MaxBodyLengthExceededError", "WriteAfterEndError", "RedirectableRequest", "options", "responseCallback", "self", "response", "abortRequest", "data", "encoding", "callback", "isString", "isBuffer", "isFunction", "currentRequest", "name", "value", "msecs", "destroyOnTimeout", "socket", "startTimer", "clearTimer", "method", "a", "b", "property", "searchPos", "protocol", "nativeProtocol", "scheme", "request", "i", "buffers", "writeNext", "error", "buffer", "statusCode", "location", "requestHeaders", "beforeRedirect", "removeMatchingHeaders", "currentHostHeader", "currentUrlParts", "currentHost", "currentUrl", "redirectUrl", "cause", "redirectUrlParts", "isSubdomain", "responseDetails", "requestDetails", "err", "wrap", "protocols", "nativeProtocols", "wrappedProtocol", "input", "parsed", "urlToOptions", "get", "wrappedRequest", "noop", "urlObject", "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_es_object_atoms", "__commonJSMin", "exports", "module", "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_define_data_property", "__commonJSMin", "exports", "module", "$defineProperty", "$SyntaxError", "$TypeError", "gopd", "obj", "property", "value", "nonEnumerable", "nonWritable", "nonConfigurable", "loose", "desc", "require_has_property_descriptors", "__commonJSMin", "exports", "module", "$defineProperty", "hasPropertyDescriptors", "require_set_function_length", "__commonJSMin", "exports", "module", "GetIntrinsic", "define", "hasDescriptors", "gOPD", "$TypeError", "$floor", "fn", "length", "loose", "functionLengthIsConfigurable", "functionLengthIsWritable", "desc", "require_call_bind", "__commonJSMin", "exports", "module", "bind", "GetIntrinsic", "setFunctionLength", "$TypeError", "$apply", "$call", "$reflectApply", "$defineProperty", "$max", "originalFunction", "func", "applyBind", "require_callBound", "__commonJSMin", "exports", "module", "GetIntrinsic", "callBind", "$indexOf", "name", "allowMissing", "intrinsic", "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", "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", "__commonJSMin", "exports", "module", "GetIntrinsic", "callBound", "inspect", "$TypeError", "$WeakMap", "$Map", "$weakMapGet", "$weakMapSet", "$weakMapHas", "$mapGet", "$mapSet", "$mapHas", "listGetNode", "list", "key", "prev", "curr", "listGet", "objects", "node", "listSet", "value", "listHas", "$wm", "$m", "$o", "channel", "require_formats", "__commonJSMin", "exports", "module", "replace", "percentTwenties", "Format", "value", "require_utils", "__commonJSMin", "exports", "module", "formats", "has", "isArray", "hexTable", "array", "i", "compactQueue", "queue", "item", "obj", "compacted", "j", "arrayToObject", "source", "options", "merge", "target", "mergeTarget", "targetItem", "acc", "key", "value", "assign", "decode", "str", "decoder", "charset", "strWithoutPlus", "encode", "defaultEncoder", "kind", "format", "string", "$0", "out", "c", "compact", "refs", "keys", "val", "isRegExp", "isBuffer", "combine", "a", "b", "maybeMap", "fn", "mapped", "require_stringify", "__commonJSMin", "exports", "module", "getSideChannel", "utils", "formats", "has", "arrayPrefixGenerators", "prefix", "key", "isArray", "split", "push", "pushToArray", "arr", "valueOrArray", "toISO", "defaultFormat", "defaults", "date", "isNonNullishPrimitive", "v", "sentinel", "stringify", "object", "generateArrayPrefix", "commaRoundTrip", "strictNullHandling", "skipNulls", "encoder", "filter", "sort", "allowDots", "serializeDate", "format", "formatter", "encodeValuesOnly", "charset", "sideChannel", "obj", "tmpSc", "step", "findFlag", "pos", "value", "keyValue", "valuesArray", "valuesJoined", "i", "values", "objKeys", "keys", "adjustedPrefix", "j", "keyPrefix", "valueSideChannel", "normalizeStringifyOptions", "opts", "options", "arrayFormat", "joined", "require_parse", "__commonJSMin", "exports", "module", "utils", "has", "isArray", "defaults", "interpretNumericEntities", "str", "$0", "numberStr", "parseArrayValue", "val", "options", "isoSentinel", "charsetSentinel", "parseValues", "obj", "cleanStr", "limit", "parts", "skipIndex", "i", "charset", "part", "bracketEqualsPos", "pos", "key", "encodedVal", "parseObject", "chain", "valuesParsed", "leaf", "root", "cleanRoot", "index", "parseKeys", "givenKey", "brackets", "child", "segment", "parent", "keys", "normalizeParseOptions", "opts", "tempObj", "newObj", "require_lib", "__commonJSMin", "exports", "module", "stringify", "parse", "formats", "index_exports", "__export", "AlreadyExistsError", "BreakingChangesError", "Client", "ForbiddenError", "InternalError", "InvalidDataFormatError", "InvalidIdentifierError", "InvalidJsonSchemaError", "InvalidPayloadError", "InvalidQueryError", "LimitExceededError", "MethodNotFoundError", "OperationTimeoutError", "PayloadTooLargeError", "PaymentRequiredError", "QuotaExceededError", "RateLimitedError", "ReferenceConstraintError", "ReferenceNotFoundError", "RelationConflictError", "ResourceGoneError", "ResourceLockedConflictError", "ResourceNotFoundError", "RuntimeError", "UnauthorizedError", "UnknownError", "UnsupportedMediaTypeError", "UploadFileError", "admin_exports", "axios_exports", "esm_exports", "billing_exports", "errorFrom", "files_exports", "isApiError", "runtime_exports", "tables_exports", "__toCommonJS", "axios_exports", "__export", "Axios", "AxiosError", "AxiosHeaders", "Cancel", "CancelToken", "CanceledError", "HttpStatusCode", "VERSION", "all", "axios_default", "formToJSON", "getAdapter", "isAxiosError", "isCancel", "mergeConfig", "spread", "toFormData", "bind", "fn", "thisArg", "toString", "getPrototypeOf", "kindOf", "cache", "thing", "str", "kindOfTest", "type", "typeOfTest", "isArray", "isUndefined", "isBuffer", "val", "isFunction", "isArrayBuffer", "isArrayBufferView", "result", "isString", "isNumber", "isObject", "isBoolean", "isPlainObject", "prototype", "isDate", "isFile", "isBlob", "isFileList", "isStream", "isFormData", "kind", "isURLSearchParams", "trim", "forEach", "obj", "fn", "allOwnKeys", "i", "l", "keys", "len", "key", "findKey", "_key", "_global", "isContextDefined", "context", "merge", "caseless", "assignValue", "targetKey", "extend", "a", "b", "thisArg", "bind", "stripBOM", "content", "inherits", "constructor", "superConstructor", "props", "descriptors", "toFlatObject", "sourceObj", "destObj", "filter", "propFilter", "prop", "merged", "endsWith", "searchString", "position", "lastIndex", "toArray", "arr", "isTypedArray", "TypedArray", "forEachEntry", "iterator", "pair", "matchAll", "regExp", "matches", "isHTMLForm", "toCamelCase", "m", "p1", "p2", "hasOwnProperty", "isRegExp", "reduceDescriptors", "reducer", "reducedDescriptors", "descriptor", "name", "ret", "freezeMethods", "value", "toObjectSet", "arrayOrString", "delimiter", "define", "noop", "toFiniteNumber", "defaultValue", "ALPHA", "DIGIT", "ALPHABET", "generateString", "size", "alphabet", "length", "isSpecCompliantForm", "toJSONObject", "stack", "visit", "source", "target", "reducedValue", "isAsyncFn", "isThenable", "utils_default", "AxiosError", "message", "code", "config", "request", "response", "utils_default", "prototype", "descriptors", "error", "customProps", "axiosError", "obj", "prop", "AxiosError_default", "import_form_data", "FormData_default", "FormData", "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", "useBlob", "convertValue", "value", "AxiosError_default", "el", "index", "stack", "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", "_encode", "serializeFn", "serializedParams", "utils_default", "AxiosURLSearchParams_default", "hashmarkIndex", "InterceptorManager", "fulfilled", "rejected", "options", "id", "fn", "utils_default", "h", "InterceptorManager_default", "transitional_default", "import_url", "URLSearchParams_default", "url", "node_default", "URLSearchParams_default", "FormData_default", "utils_exports", "__export", "hasBrowserEnv", "hasStandardBrowserEnv", "hasStandardBrowserWebWorkerEnv", "product", "platform_default", "utils_exports", "node_default", "toURLEncodedForm", "data", "options", "toFormData_default", "platform_default", "value", "key", "path", "helpers", "utils_default", "parsePropPath", "name", "utils_default", "match", "arrayToObject", "arr", "obj", "keys", "i", "len", "key", "formDataToJSON", "formData", "buildPath", "path", "value", "target", "index", "isNumericKey", "isLast", "formDataToJSON_default", "stringifySafely", "rawValue", "parser", "encoder", "utils_default", "e", "defaults", "transitional_default", "data", "headers", "contentType", "hasJSONContentType", "isObjectPayload", "formDataToJSON_default", "isFileList", "toURLEncodedForm", "_FormData", "toFormData_default", "transitional", "forcedJSONParsing", "JSONRequested", "strictJSONParsing", "AxiosError_default", "platform_default", "status", "method", "defaults_default", "ignoreDuplicateOf", "utils_default", "parseHeaders_default", "rawHeaders", "parsed", "key", "val", "i", "line", "$internals", "normalizeHeader", "header", "normalizeValue", "value", "utils_default", "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", "parser", "matcher", "deleted", "deleteHeader", "keys", "i", "format", "normalized", "targets", "asStrings", "thing", "first", "computed", "target", "accessors", "prototype", "defineAccessor", "mapped", "headerValue", "AxiosHeaders_default", "transformData", "fns", "response", "config", "defaults_default", "context", "headers", "AxiosHeaders_default", "data", "utils_default", "fn", "isCancel", "value", "CanceledError", "message", "config", "request", "AxiosError_default", "utils_default", "CanceledError_default", "settle", "resolve", "reject", "response", "validateStatus", "AxiosError_default", "isAbsoluteURL", "url", "combineURLs", "baseURL", "relativeURL", "buildFullPath", "baseURL", "requestedURL", "isAbsoluteURL", "combineURLs", "import_proxy_from_env", "import_http", "import_https", "import_util", "import_follow_redirects", "import_zlib", "VERSION", "parseProtocol", "url", "match", "DATA_URL_PATTERN", "fromDataURI", "uri", "asBlob", "options", "_Blob", "platform_default", "protocol", "parseProtocol", "match", "AxiosError_default", "mime", "isBase64", "body", "buffer", "import_stream", "import_stream", "throttle", "fn", "freq", "timestamp", "threshold", "timer", "force", "args", "now", "throttle_default", "speedometer", "samplesCount", "min", "bytes", "timestamps", "head", "tail", "firstSampleTS", "chunkLength", "now", "startedAt", "i", "bytesCount", "passed", "speedometer_default", "kInternals", "AxiosTransformStream", "stream", "options", "utils_default", "prop", "source", "self", "internals", "_speedometer", "speedometer_default", "event", "bytesNotified", "throttle_default", "totalBytes", "bytesTransferred", "progressBytes", "rate", "onFinish", "size", "chunk", "encoding", "callback", "maxRate", "readableHighWaterMark", "timeWindow", "divider", "bytesThreshold", "minChunkSize", "pushChunk", "_chunk", "_callback", "bytes", "transformChunk", "chunkSize", "chunkRemainder", "maxChunkSize", "bytesLeft", "passed", "now", "transformNextChunk", "err", "length", "AxiosTransformStream_default", "import_events", "import_util", "import_stream", "asyncIterator", "readBlob", "blob", "readBlob_default", "BOUNDARY_ALPHABET", "utils_default", "textEncoder", "CRLF", "CRLF_BYTES", "CRLF_BYTES_COUNT", "FormDataPart", "name", "value", "escapeName", "isStringValue", "headers", "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", "callbackify", "fn", "reducer", "utils_default", "args", "cb", "value", "err", "callbackify_default", "zlibOptions", "zlib", "brotliOptions", "isBrotliSupported", "utils_default", "httpFollow", "httpsFollow", "followRedirects", "isHttps", "supportedProtocols", "platform_default", "protocol", "dispatchBeforeRedirect", "options", "setProxy", "configProxy", "location", "proxy", "proxyUrl", "base64", "proxyHost", "redirectOptions", "isHttpAdapterSupported", "wrapAsync", "asyncExecutor", "resolve", "reject", "onDone", "isDone", "done", "value", "isRejected", "_resolve", "_reject", "reason", "onDoneHandler", "resolveFamily", "address", "family", "buildAddressEntry", "http_default", "config", "data", "lookup", "responseType", "responseEncoding", "method", "rejected", "req", "_lookup", "callbackify_default", "hostname", "opt", "cb", "err", "arg0", "arg1", "addresses", "addr", "emitter", "EventEmitter", "onFinished", "abort", "CanceledError_default", "fullPath", "buildFullPath", "parsed", "convertedData", "settle", "fromDataURI", "AxiosError_default", "stream", "AxiosHeaders_default", "headers", "VERSION", "onDownloadProgress", "onUploadProgress", "maxRate", "maxUploadRate", "maxDownloadRate", "userBoundary", "formDataToStream_default", "formHeaders", "knownLength", "util", "readBlob_default", "contentLength", "AxiosTransformStream_default", "progress", "auth", "username", "password", "urlUsername", "urlPassword", "path", "buildURL", "customErr", "transport", "isHttpsRequest", "https", "http", "res", "streams", "responseLength", "transformStream", "responseStream", "lastRequest", "ZlibHeaderTransformStream_default", "offListeners", "response", "responseBuffer", "totalResponseBytes", "chunk", "responseData", "socket", "timeout", "timeoutErrorMessage", "transitional", "transitional_default", "ended", "errored", "cookies_default", "platform_default", "name", "value", "expires", "path", "domain", "secure", "cookie", "utils_default", "match", "isURLSameOrigin_default", "platform_default", "msie", "urlParsingNode", "originURL", "resolveURL", "url", "href", "requestURL", "parsed", "utils_default", "progressEventReducer", "listener", "isDownloadStream", "bytesNotified", "_speedometer", "speedometer_default", "e", "loaded", "total", "progressBytes", "rate", "inRange", "data", "isXHRAdapterSupported", "xhr_default", "config", "resolve", "reject", "requestData", "requestHeaders", "AxiosHeaders_default", "responseType", "onCanceled", "done", "contentType", "utils_default", "platform_default", "type", "tokens", "token", "request", "username", "password", "fullPath", "buildFullPath", "buildURL", "onloadend", "responseHeaders", "response", "settle", "value", "err", "AxiosError_default", "timeoutErrorMessage", "transitional", "transitional_default", "xsrfValue", "isURLSameOrigin_default", "cookies_default", "val", "key", "cancel", "CanceledError_default", "protocol", "parseProtocol", "knownAdapters", "http_default", "xhr_default", "utils_default", "fn", "value", "renderReason", "reason", "isResolvedHandle", "adapter", "adapters_default", "adapters", "length", "nameOrAdapter", "rejectedReasons", "i", "id", "AxiosError_default", "reasons", "state", "s", "throwIfCancellationRequested", "config", "CanceledError_default", "dispatchRequest", "AxiosHeaders_default", "transformData", "adapters_default", "defaults_default", "response", "reason", "isCancel", "headersToObject", "thing", "AxiosHeaders_default", "mergeConfig", "config1", "config2", "config", "getMergedValue", "target", "source", "caseless", "utils_default", "mergeDeepProperties", "b", "valueFromConfig2", "defaultToConfig2", "mergeDirectKeys", "prop", "mergeMap", "merge", "configValue", "validators", "type", "i", "thing", "deprecatedWarnings", "validator", "version", "message", "formatMessage", "opt", "desc", "VERSION", "value", "opts", "AxiosError_default", "assertOptions", "options", "schema", "allowUnknown", "keys", "result", "validator_default", "validators", "validator_default", "Axios", "instanceConfig", "InterceptorManager_default", "configOrUrl", "config", "mergeConfig", "transitional", "paramsSerializer", "headers", "utils_default", "contextHeaders", "method", "AxiosHeaders_default", "requestInterceptorChain", "synchronousRequestInterceptors", "interceptor", "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", "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", "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", "getClientConfig", "import_browser_or_node", "defaultApiUrl", "defaultTimeout", "defaultDebug", "apiUrlEnvName", "botIdEnvName", "integrationIdEnvName", "workspaceIdEnvName", "tokenEnvName", "clientProps", "props", "readEnvConfig", "headers", "apiUrl", "timeout", "debug", "getNodeConfig", "config", "token", "listing_exports", "__export", "AsyncCollection", "_list", "nextToken", "items", "meta", "item", "props", "limit", "arr", "count", "axios_exports", "__export", "createAxiosInstance", "import_browser_or_node", "randomUUID", "addDebugInterceptors", "axiosInstance", "config", "_formatRequestLog", "response", "_formatResponseLog", "error", "_formatErrorLog", "method", "url", "headers", "data", "fullUrl", "status", "duration", "_formatDuration", "startTime", "endTime", "createAxios", "config", "maxBodyLength", "maxContentLength", "httpAgent", "httpsAgent", "createAxiosInstance", "axiosConfig", "axiosInstance", "axios_default", "addDebugInterceptors", "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", "UploadFileError", "message", "innerError", "file", "toApiError", "err", "axios_default", "errorFrom", "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", "esm_default", "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", "_", "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", "esm_default", "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", "input", "parseReq", "_", "parseReq", "input", "parseReq", "_", "parseReq", "_", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "input", "parseReq", "_", "parseReq", "input", "parseReq", "_", "parseReq", "input", "parseReq", "_", "parseReq", "input", "parseReq", "input", "parseReq", "_", "parseReq", "input", "parseReq", "_", "parseReq", "_", "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", "esm_default", "props", "listing_exports", "nextToken", "files_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", "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", "upload", "client", "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", "esm_default", "props", "listing_exports", "nextToken", "input", "upload", "tables_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", "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", "esm_default", "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", "_", "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", "esm_default", "props", "listing_exports", "nextToken", "input", "upload"]
}
