import {z} from 'zod' export type ActorType = 'HUMAN' | 'API_KEY' | 'ADMIN_API_KEY' | 'SERVICE_ACCOUNT' | 'OTHER'; export type AuditLogEventType = 'user.create' | 'user.delete' | 'user.log_in' | 'user.info.update' | 'user.password.update' | 'user.phone_number.verify' | 'user.organization.leave' | 'user.organization.role.update' | 'user.organization.delete' | 'user.organization.join' | 'organization.create' | 'organization.delete' | 'organization.update' | 'organization.invite.send' | 'organization.invite.resend' | 'organization.invite.accepted' | 'organization.invite.revoked' | 'organization.join_by_email_domain' | 'organization.domain_verification.disable' | 'organization.domain_verification.enable' | 'organization.email_domain_authentication.enable' | 'organization.email_domain_authentication.disable' | 'organization.saml_authentication.enable' | 'organization.saml_authentication.disable' | 'organization.saml_authentication.sso_user_provisioning.update' | 'organization.scim_sync.trigger' | 'organization.scim.secret.rotate' | 'organization.seat_auto_assign.enable' | 'organization.seat_auto_assign.disable' | 'organization.kind.update' | 'organization.sso_seat_auto_assign.enable' | 'organization.sso_seat_auto_assign.disable' | 'workspace.create' | 'workspace.update' | 'workspace.delete' | 'workspace.member.add' | 'workspace.member.remove' | 'workspace.member.role.update' | 'user_group.create' | 'user_group.update' | 'user_group.delete' | 'user_group.member.add' | 'user_group.member.remove' | 'user_group.workspace.provision' | 'user_group.workspace.deprovision' | 'user_group.workspace.update' | 'billing.information.updated' | 'billing.payment_method.added' | 'billing.payment_method.removed' | 'billing.payment_method.default_changed' | 'billing.invoice.retried' | 'billing.subscription.subscribe' | 'billing.subscription.unsubscribe' | 'billing.subscription.cancel_unsubscribe' | 'billing.subscription.add_seats' | 'billing.subscription.remove_seats' | 'billing.subscription.termination_date.updated' | 'billing.credits.added' | 'billing.gift_code.used' | 'billing.credit_coupon.used' | 'billing.subscription_coupon.used' | 'billing.monthly_limit.updated' | 'billing.workspace_monthly_limit.updated' | 'billing.shared_budget_override.updated' | 'billing.auto_recharge.updated' | 'billing.seat.grant' | 'billing.seat.revoke' | 'billing.priority_service_tier.updated' | 'billing.priority_service_tier.removed' | 'le_chat.conversation.created' | 'le_chat.temporary_conversation.created' | 'le_chat.temporary_conversation.converted' | 'le_chat.conversation.deleted' | 'le_chat.conversation_batch.deleted' | 'le_chat.conversation.public_sharing.enabled' | 'le_chat.conversation.public_sharing.disabled' | 'le_chat.flash_answers.enabled' | 'le_chat.flash_answers.disabled' | 'le_chat.localisation_sharing.enabled' | 'le_chat.localisation_sharing.disabled' | 'le_chat.memories.enabled' | 'le_chat.memories.disabled' | 'le_chat.data.training_enabled' | 'le_chat.data.training_disabled' | 'le_chat.actions.external_link' | 'admin_api_key.created' | 'admin_api_key.delete' | 'api_key.create' | 'api_key.rotate' | 'api_key.delete' | 'api_key_policy.update' | 'secret_store.entry.create' | 'secret_store.entry.update' | 'secret_store.entry.delete' | 'service_account.create' | 'service_account.update' | 'service_account.delete' | 'service_account.client_secret.create' | 'service_account.client_secret.delete' | 'service_account.roles.set' | 'workload_identity.credential_registration.create' | 'workload_identity.credential.create' | 'trusted_issuer.create' | 'trusted_issuer.update' | 'trusted_issuer.delete' | 'agent.create' | 'agent.delete' | 'agent.update' | 'skill.create' | 'skill.delete' | 'skill.enable' | 'skill.disable' | 'skill.update' | 'skill.share' | 'skill.unshare' | 'skill.load' | 'skill.force_load' | 'skill.version.create' | 'plugin.create' | 'plugin.update' | 'plugin.delete' | 'prompt.create' | 'prompt.delete' | 'prompt.update' | 'prompt.version.create' | 'knowledge_base.create' | 'knowledge_base.delete' | 'knowledge_base.update' | 'knowledge_base.version.create' | 'custom_voice.create' | 'custom_voice.update' | 'custom_voice.delete' | 'feature_permission.override.created' | 'feature_permission.override.deleted' | 'resource.share' | 'resource.unshare' | 'la_plateforme.training.enabled' | 'la_plateforme.training.disabled' | 'cloud_runtime.app.created' | 'cloud_runtime.app.updated' | 'cloud_runtime.app.deleted' | 'cloud_runtime.app.paused' | 'cloud_runtime.app.resumed' | 'cloud_runtime.deployment.created' | 'cloud_runtime.deployment.succeeded' | 'cloud_runtime.deployment.canceled' | 'cloud_runtime.deployment.stopped' | 'cloud_runtime.deployment.failed' | 'cloud_runtime.deployment.autoscaled' | 'cloud_runtime.domain.created' | 'cloud_runtime.domain.updated' | 'cloud_runtime.domain.deleted' | 'cloud_runtime.secret.created' | 'cloud_runtime.secret.updated' | 'cloud_runtime.secret.deleted' | 'cloud_runtime.service.created' | 'cloud_runtime.service.paused' | 'cloud_runtime.service.resumed' | 'cloud_runtime.service.deleted' | 'cloud_runtime.service.manually_scaled' | 'cloud_runtime.service.manual_scaling_deleted' | 'cloud_runtime.persistent_volume.created' | 'cloud_runtime.persistent_volume.deleted' | 'cloud_runtime.persistent_volume.attached' | 'cloud_runtime.persistent_volume.detached' | 'fine_tuning_job.create' | 'fine_tuning_job.cancel' | 'batch_job.create' | 'batch_job.cancel' | 'batch_job.delete' | 'data_capture.extract_job.create' | 'data_capture.extract_job.cancel' | 'dataset.create' | 'dataset.delete' | 'library.create' | 'library.delete' | 'library.update' | 'library.share' | 'library.unshare' | 'library.document.create' | 'library.document.delete' | 'library.document.bulk_delete' | 'library.document.update' | 'library.document.reprocess' | 'integration.connected' | 'integration.disconnected' | 'indexing.workflow.completed' | 'indexing.deleted' | 'connection.admin.setup_index' | 'connection.admin.deleted' | 'integration.activated_for_org' | 'integration.deactivated_for_org' | 'integration.activated_for_workspace' | 'integration.deactivated_for_workspace' | 'integration.activated_for_user' | 'integration.deactivated_for_user' | 'integration.created' | 'integration.updated' | 'integration.deleted' | 'integration.tool_called' | 'integration.tool_activated' | 'integration.tool_deactivated' | 'integration.credentials.created_or_updated' | 'integration.credentials.deleted' | 'integration.credentials.revoked' | 'integration.credentials.revocation_failed' | 'integration.preferences.created_or_updated' | 'integration.preferences.deleted' | 'integration.authentication_method.created_or_updated' | 'integration.connection.created' | 'integration.shared' | 'integration.unshared' | 'connectors_gateway.tool_called' | 'connectors_debugger.tool_called' | 'crawler.config.create' | 'crawler.config.update' | 'crawler.config.delete' | 'crawler.run.create' | 'crawler.run.cancel' | 'web_search.filter_config.update' | 'web_search.filter_domain.add' | 'web_search.filter_domain.remove' | 'web_filters.config.update' | 'web_filters.domain.add' | 'web_filters.domain.remove' | 'secrets_manager.secret.created' | 'secrets_manager.secret.updated' | 'secrets_manager.secret.revealed' | 'secrets_manager.secret.metadata_updated' | 'secrets_manager.secret.deleted' | 'secrets_manager.secret.version.deleted' | 'secrets_manager.secret.version.restored' | 'rate_limit.rule.create' | 'rate_limit.rule.update' | 'rate_limit.rule.delete' | 'workflow.execution.started' | 'workflow.execution.canceled' | 'workflow.execution.terminated' | 'workflow.execution.signal' | 'workflow.execution.query' | 'workflow.execution.update' | 'workflow.worker.registered' | 'workflow.schedule.created' | 'workflow.schedule.updated' | 'workflow.schedule.paused' | 'workflow.schedule.resumed' | 'workflow.schedule.deleted' | 'workflow.schedule.triggered' | 'workflow.archived' | 'workflow.unarchived' | 'workflow.deployment.authorized_credential.granted' | 'workflow.deployment.authorized_credential.revoked'; export type TargetType = 'USER' | 'USER_GROUP' | 'ORGANIZATION' | 'WORKSPACE' | 'API_KEY' | 'ADMIN_API_KEY' | 'API_KEY_POLICY' | 'SERVICE_ACCOUNT' | 'AGENT' | 'SKILL' | 'PLUGIN' | 'PROMPT' | 'KNOWLEDGE_BASE' | 'CUSTOM_VOICE' | 'DATASET' | 'FINE_TUNING_JOB' | 'BATCH_JOB' | 'DATA_CAPTURE_EXTRACT_JOB' | 'LE_CHAT_CONVERSATION' | 'LE_CHAT_MEMORIES' | 'LE_CHAT_FLASH_ANSWERS' | 'LE_CHAT_LOCALISATION' | 'LE_CHAT_DATA' | 'INVOICE' | 'WALLET' | 'MONTHLY_LIMIT' | 'WORKSPACE_MONTHLY_LIMIT' | 'SHARED_BUDGET' | 'AUTO_RECHARGE' | 'PAYMENT_METHOD' | 'SUBSCRIPTION' | 'BILLING_INFO' | 'LIBRARY' | 'LIBRARY_DOCUMENT' | 'INTEGRATION' | 'CONNECTORS_GATEWAY' | 'CONNECTORS_DEBUGGER' | 'FEATURE_PERMISSION' | 'SECRET_STORE_ENTRY' | 'CRAWLER_CONFIG' | 'WEB_SEARCH_FILTER' | 'WEB_FILTERS' | 'SHARED_RESOURCE' | 'RATE_LIMIT_RULE' | 'APP' | 'DEPLOYMENT' | 'DOMAIN' | 'PERSISTENT_VOLUME' | 'SECRET' | 'SERVICE' | 'TRUSTED_ISSUER' | 'WORKFLOW' | 'SCHEDULE'; export type GetApiV1AdminAuditLogsArgs = {actor_type?: (Array | null) | undefined, event_type?: (Array | null) | undefined, target_type?: (Array | null) | undefined, actor_user_uuid?: (string | null) | undefined, sort?: ('ascending' | 'descending') | undefined, after?: (string | null) | undefined, before?: (string | null) | undefined, limit?: number | undefined}; export type GetApiV1AdminAuditLogsOptions = {baseUrl?: string | undefined, AdminApiKey?: string | undefined, fetch?: typeof fetch | undefined}; export const actorType = z.enum(["HUMAN", "API_KEY", "ADMIN_API_KEY", "SERVICE_ACCOUNT", "OTHER"]); export const auditLogEventType = z.enum(["user.create", "user.delete", "user.log_in", "user.info.update", "user.password.update", "user.phone_number.verify", "user.organization.leave", "user.organization.role.update", "user.organization.delete", "user.organization.join", "organization.create", "organization.delete", "organization.update", "organization.invite.send", "organization.invite.resend", "organization.invite.accepted", "organization.invite.revoked", "organization.join_by_email_domain", "organization.domain_verification.disable", "organization.domain_verification.enable", "organization.email_domain_authentication.enable", "organization.email_domain_authentication.disable", "organization.saml_authentication.enable", "organization.saml_authentication.disable", "organization.saml_authentication.sso_user_provisioning.update", "organization.scim_sync.trigger", "organization.scim.secret.rotate", "organization.seat_auto_assign.enable", "organization.seat_auto_assign.disable", "organization.kind.update", "organization.sso_seat_auto_assign.enable", "organization.sso_seat_auto_assign.disable", "workspace.create", "workspace.update", "workspace.delete", "workspace.member.add", "workspace.member.remove", "workspace.member.role.update", "user_group.create", "user_group.update", "user_group.delete", "user_group.member.add", "user_group.member.remove", "user_group.workspace.provision", "user_group.workspace.deprovision", "user_group.workspace.update", "billing.information.updated", "billing.payment_method.added", "billing.payment_method.removed", "billing.payment_method.default_changed", "billing.invoice.retried", "billing.subscription.subscribe", "billing.subscription.unsubscribe", "billing.subscription.cancel_unsubscribe", "billing.subscription.add_seats", "billing.subscription.remove_seats", "billing.subscription.termination_date.updated", "billing.credits.added", "billing.gift_code.used", "billing.credit_coupon.used", "billing.subscription_coupon.used", "billing.monthly_limit.updated", "billing.workspace_monthly_limit.updated", "billing.shared_budget_override.updated", "billing.auto_recharge.updated", "billing.seat.grant", "billing.seat.revoke", "billing.priority_service_tier.updated", "billing.priority_service_tier.removed", "le_chat.conversation.created", "le_chat.temporary_conversation.created", "le_chat.temporary_conversation.converted", "le_chat.conversation.deleted", "le_chat.conversation_batch.deleted", "le_chat.conversation.public_sharing.enabled", "le_chat.conversation.public_sharing.disabled", "le_chat.flash_answers.enabled", "le_chat.flash_answers.disabled", "le_chat.localisation_sharing.enabled", "le_chat.localisation_sharing.disabled", "le_chat.memories.enabled", "le_chat.memories.disabled", "le_chat.data.training_enabled", "le_chat.data.training_disabled", "le_chat.actions.external_link", "admin_api_key.created", "admin_api_key.delete", "api_key.create", "api_key.rotate", "api_key.delete", "api_key_policy.update", "secret_store.entry.create", "secret_store.entry.update", "secret_store.entry.delete", "service_account.create", "service_account.update", "service_account.delete", "service_account.client_secret.create", "service_account.client_secret.delete", "service_account.roles.set", "workload_identity.credential_registration.create", "workload_identity.credential.create", "trusted_issuer.create", "trusted_issuer.update", "trusted_issuer.delete", "agent.create", "agent.delete", "agent.update", "skill.create", "skill.delete", "skill.enable", "skill.disable", "skill.update", "skill.share", "skill.unshare", "skill.load", "skill.force_load", "skill.version.create", "plugin.create", "plugin.update", "plugin.delete", "prompt.create", "prompt.delete", "prompt.update", "prompt.version.create", "knowledge_base.create", "knowledge_base.delete", "knowledge_base.update", "knowledge_base.version.create", "custom_voice.create", "custom_voice.update", "custom_voice.delete", "feature_permission.override.created", "feature_permission.override.deleted", "resource.share", "resource.unshare", "la_plateforme.training.enabled", "la_plateforme.training.disabled", "cloud_runtime.app.created", "cloud_runtime.app.updated", "cloud_runtime.app.deleted", "cloud_runtime.app.paused", "cloud_runtime.app.resumed", "cloud_runtime.deployment.created", "cloud_runtime.deployment.succeeded", "cloud_runtime.deployment.canceled", "cloud_runtime.deployment.stopped", "cloud_runtime.deployment.failed", "cloud_runtime.deployment.autoscaled", "cloud_runtime.domain.created", "cloud_runtime.domain.updated", "cloud_runtime.domain.deleted", "cloud_runtime.secret.created", "cloud_runtime.secret.updated", "cloud_runtime.secret.deleted", "cloud_runtime.service.created", "cloud_runtime.service.paused", "cloud_runtime.service.resumed", "cloud_runtime.service.deleted", "cloud_runtime.service.manually_scaled", "cloud_runtime.service.manual_scaling_deleted", "cloud_runtime.persistent_volume.created", "cloud_runtime.persistent_volume.deleted", "cloud_runtime.persistent_volume.attached", "cloud_runtime.persistent_volume.detached", "fine_tuning_job.create", "fine_tuning_job.cancel", "batch_job.create", "batch_job.cancel", "batch_job.delete", "data_capture.extract_job.create", "data_capture.extract_job.cancel", "dataset.create", "dataset.delete", "library.create", "library.delete", "library.update", "library.share", "library.unshare", "library.document.create", "library.document.delete", "library.document.bulk_delete", "library.document.update", "library.document.reprocess", "integration.connected", "integration.disconnected", "indexing.workflow.completed", "indexing.deleted", "connection.admin.setup_index", "connection.admin.deleted", "integration.activated_for_org", "integration.deactivated_for_org", "integration.activated_for_workspace", "integration.deactivated_for_workspace", "integration.activated_for_user", "integration.deactivated_for_user", "integration.created", "integration.updated", "integration.deleted", "integration.tool_called", "integration.tool_activated", "integration.tool_deactivated", "integration.credentials.created_or_updated", "integration.credentials.deleted", "integration.credentials.revoked", "integration.credentials.revocation_failed", "integration.preferences.created_or_updated", "integration.preferences.deleted", "integration.authentication_method.created_or_updated", "integration.connection.created", "integration.shared", "integration.unshared", "connectors_gateway.tool_called", "connectors_debugger.tool_called", "crawler.config.create", "crawler.config.update", "crawler.config.delete", "crawler.run.create", "crawler.run.cancel", "web_search.filter_config.update", "web_search.filter_domain.add", "web_search.filter_domain.remove", "web_filters.config.update", "web_filters.domain.add", "web_filters.domain.remove", "secrets_manager.secret.created", "secrets_manager.secret.updated", "secrets_manager.secret.revealed", "secrets_manager.secret.metadata_updated", "secrets_manager.secret.deleted", "secrets_manager.secret.version.deleted", "secrets_manager.secret.version.restored", "rate_limit.rule.create", "rate_limit.rule.update", "rate_limit.rule.delete", "workflow.execution.started", "workflow.execution.canceled", "workflow.execution.terminated", "workflow.execution.signal", "workflow.execution.query", "workflow.execution.update", "workflow.worker.registered", "workflow.schedule.created", "workflow.schedule.updated", "workflow.schedule.paused", "workflow.schedule.resumed", "workflow.schedule.deleted", "workflow.schedule.triggered", "workflow.archived", "workflow.unarchived", "workflow.deployment.authorized_credential.granted", "workflow.deployment.authorized_credential.revoked"]); export const targetType = z.enum(["USER", "USER_GROUP", "ORGANIZATION", "WORKSPACE", "API_KEY", "ADMIN_API_KEY", "API_KEY_POLICY", "SERVICE_ACCOUNT", "AGENT", "SKILL", "PLUGIN", "PROMPT", "KNOWLEDGE_BASE", "CUSTOM_VOICE", "DATASET", "FINE_TUNING_JOB", "BATCH_JOB", "DATA_CAPTURE_EXTRACT_JOB", "LE_CHAT_CONVERSATION", "LE_CHAT_MEMORIES", "LE_CHAT_FLASH_ANSWERS", "LE_CHAT_LOCALISATION", "LE_CHAT_DATA", "INVOICE", "WALLET", "MONTHLY_LIMIT", "WORKSPACE_MONTHLY_LIMIT", "SHARED_BUDGET", "AUTO_RECHARGE", "PAYMENT_METHOD", "SUBSCRIPTION", "BILLING_INFO", "LIBRARY", "LIBRARY_DOCUMENT", "INTEGRATION", "CONNECTORS_GATEWAY", "CONNECTORS_DEBUGGER", "FEATURE_PERMISSION", "SECRET_STORE_ENTRY", "CRAWLER_CONFIG", "WEB_SEARCH_FILTER", "WEB_FILTERS", "SHARED_RESOURCE", "RATE_LIMIT_RULE", "APP", "DEPLOYMENT", "DOMAIN", "PERSISTENT_VOLUME", "SECRET", "SERVICE", "TRUSTED_ISSUER", "WORKFLOW", "SCHEDULE"]); export const auditLogOut = z.object({created_at: z.string(), actor_type: actorType, actor_metadata: z.record(z.string(), z.string()), event_type: auditLogEventType, event_metadata: z.record(z.string(), z.string()), target_type: targetType, target_metadata: z.record(z.string(), z.string()), log_id: z.number().int(), organization_uuid: z.string().nullable().optional(), workspace_uuid: z.string().nullable().optional()}); export const getApiV1AdminAuditLogsResponse = z.array(auditLogOut); export const validateResponse = async ( schema: { readonly '~standard': { readonly validate: (value: unknown) => ({ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }) | Promise<{ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }> } }, value: unknown ): Promise => { const result = await schema['~standard'].validate(value) if (result.issues !== undefined) { const detail = result.issues .map(({ message, path }) => path?.length ? `${path.map((segment) => String(typeof segment === 'object' ? segment.key : segment)).join('.')}: ${message}` : message ) .join('; ') throw new Error(`Response does not match the schema: ${detail}`, { cause: { issues: result.issues } }) } return result.value }; /** * Get Audit Logs * * GET /v1/admin/audit-logs */ export const getApiV1AdminAuditLogs = async (args: GetApiV1AdminAuditLogsArgs, options?: GetApiV1AdminAuditLogsOptions) => { const {baseUrl = "https://api.mistral.ai", fetch: fetchFn = fetch, AdminApiKey} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('accept', "application/json") for (const item of args.actor_type ?? []) query.append("actor_type", String(item)) for (const item of args.event_type ?? []) query.append("event_type", String(item)) for (const item of args.target_type ?? []) query.append("target_type", String(item)) if (args.actor_user_uuid != null) query.append("actor_user_uuid", String(args.actor_user_uuid)) if (args.sort != null) query.append("sort", String(args.sort)) if (args.after != null) query.append("after", String(args.after)) if (args.before != null) query.append("before", String(args.before)) if (args.limit != null) query.append("limit", String(args.limit)) if (AdminApiKey !== undefined) headers.set('authorization', `Bearer ${AdminApiKey}`) const url = `${baseUrl.replace(/\/+$/, '')}/v1/admin/audit-logs${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "GET", headers}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(getApiV1AdminAuditLogsResponse, await res.json()) };