import createFetchClient from 'openapi-fetch'; /** * This file was auto-generated by openapi-typescript. * Do not make direct changes to the file. */ interface paths { "/v1/auth/login": { /** Log In */ post: operations["v1AuthLogin"]; }; "/v1/config": { /** Get all configs */ get: operations["v1GetConfig"]; }; "/v1/domain/{domainId}/auth/{providerId}": { /** Update an auth provider for a domain */ put: operations["v1UpdateDomainAuthProvider"]; /** Delete an auth provider from a domain */ delete: operations["v1DeleteDomainAuthProvider"]; }; "/v1/domain/{domainId}/auth": { /** Return all configured auth providers for a domain (including globally configured providers) */ get: operations["v1GetDomainAuthProviders"]; /** Create a new auth provider for a domain */ post: operations["v1CreateDomainAuthProvider"]; }; "/v1/instances/{instanceId}/hooks": { /** Get all hypervisor hooks for Instance */ get: operations["v1GetHooks"]; /** Create hypervisor hook for Instance */ post: operations["v1CreateHook"]; }; "/v1/hooks/{hookId}": { /** Get hypervisor hook by id */ get: operations["v1GetHookById"]; /** Update an existing hypervisor hook */ put: operations["v1UpdateHook"]; /** Delete an existing hypervisor hook */ delete: operations["v1DeleteHook"]; }; "/v1/images": { /** Get all Images Metadata */ get: operations["v1GetImages"]; /** Create a new Image */ post: operations["v1CreateImage"]; }; "/v1/images/{imageId}": { /** Get Image Metadata */ get: operations["v1GetImage"]; /** * Upload Image Data * @description If the active project has enough remaining quota, updates an Image with the contents of the request body. */ post: operations["v1UploadImageData"]; }; "/v2/images/{imageId}": { /** Delete Image */ delete: operations["v1DeleteImage"]; }; "/v1/ready": { /** * API Status * @description Check if API is ready for queries */ get: operations["v1Ready"]; }; "/v1/instances": { /** Get Instances */ get: operations["v1GetInstances"]; /** Create Instance */ post: operations["v1CreateInstance"]; }; "/v1/instances/{instanceId}": { /** Get Instance */ get: operations["v1GetInstance"]; /** Remove Instance */ delete: operations["v1DeleteInstance"]; /** Update Instance */ patch: operations["v1PatchInstance"]; }; "/v1/instances/{instanceId}/agent/v1/app/ready": { /** Check if App subsystem is ready */ get: operations["v1AgentAppReady"]; }; "/v1/instances/{instanceId}/agent/v1/app/install": { /** * Install App at path * @description Installs the app located at path which must be present on the VM filesystem */ post: operations["v1AgentInstallApp"]; }; "/v1/instances/{instanceId}/agent/v1/app/apps": { /** List Apps */ get: operations["v1AgentListApps"]; }; "/v1/instances/{instanceId}/agent/v1/app/apps/update": { /** List Apps Status */ get: operations["v1AgentListAppsStatus"]; }; "/v1/instances/{instanceId}/agent/v1/app/icons": { /** List App Icons */ get: operations["v1AgentListAppIcons"]; }; "/v1/instances/{instanceId}/agent/v1/app/apps/{bundleId}/run": { /** Run an App */ post: operations["v1AgentRunApp"]; }; "/v1/instances/{instanceId}/agent/v1/app/apps/{bundleId}/kill": { /** Kill an App */ post: operations["v1AgentKillApp"]; }; "/v1/instances/{instanceId}/agent/v1/app/apps/{bundleId}/uninstall": { /** Uninstall an App */ post: operations["v1AgentUninstallApp"]; }; "/v1/instances/{instanceId}/agent/v1/file/device/{filePath}": { /** Download a File from VM */ get: operations["v1AgentGetFile"]; /** Upload a file to VM */ put: operations["v1AgentUploadFile"]; /** Delete a File on VM */ delete: operations["v1AgentDeleteFile"]; /** Change Attrs of a File on VM */ patch: operations["v1AgentSetFileAttributes"]; }; "/v1/instances/{instanceId}/agent/v1/file/temp": { /** * Get the path for a new temp file * @description Returns a temporary random filename that is guranteed to be unique on the VMs * filesystem at the time of invocation of this method. */ post: operations["v1AgentGetTempFilename"]; }; "/v1/instances/{instanceId}/agent/v1/profile/profiles": { /** List Profiles */ get: operations["v1AgentListProfiles"]; }; "/v1/instances/{instanceId}/agent/v1/profile/install": { /** Install a Profile to VM */ post: operations["v1AgentInstallProfile"]; }; "/v1/instances/{instanceId}/agent/v1/profile/profiles/{profileId}": { /** Uninstall a Profile from VM */ delete: operations["v1AgentUninstallProfile"]; }; "/v1/instances/{instanceId}/agent/v1/system/setHostname": { /** Set Hostname of instance */ post: operations["v1AgentSystemSetHostname"]; }; "/v1/instances/{instanceId}/agent/v1/system/shutdown": { /** Instruct VM to halt */ post: operations["v1AgentSystemShutdown"]; }; "/v1/instances/{instanceId}/agent/v1/system/network": { /** Get IP of eth0 (AOSP only) */ get: operations["v1AgentSystemGetNetwork"]; }; "/v1/instances/{instanceId}/agent/v1/system/getprop": { /** Get System Property (AOSP only) */ post: operations["v1AgentSystemGetProp"]; }; "/v1/instances/{instanceId}/agent/v1/system/install-opengapps": { /** Install OpenGApps (AOSP only) */ post: operations["v1AgentSystemInstallOpenGApps"]; }; "/v1/instances/{instanceId}/agent/v1/system/adbauth": { /** Get ADB Auth Setting (AOSP only) */ get: operations["v1AgentSystemGetAdbAuth"]; /** Set ADB Auth Setting (AOSP only) */ put: operations["v1AgentSystemSetAdbAuth"]; }; "/v1/instances/{instanceId}/agent/v1/system/lock": { /** Lock Device (iOS Only) */ post: operations["v1AgentSystemLock"]; }; "/v1/instances/{instanceId}/agent/v1/system/unlock": { /** Unlock Device (iOS Only) */ post: operations["v1AgentSystemUnlock"]; }; "/v1/instances/{instanceId}/console": { /** Get console websocket URL */ get: operations["v1GetInstanceConsole"]; }; "/v1/instances/{instanceId}/networkMonitor.pcap": { /** Download a Network Monitor pcap file */ get: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; responses: { /** @description pcap file */ 200: { content: { "application/vnd.tcpdump.pcap": components["schemas"]["File"]; }; }; /** @description Bad Request */ 400: { content: { "application/json": components["schemas"]["UserError"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; }; "/v1/instances/{instanceId}/netdump.pcap": { /** Download a netdump pcap file */ get: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; responses: { /** @description pcapng file */ 200: { content: { "application/vnd.tcpdump.pcap": components["schemas"]["File"]; }; }; /** @description Bad Request */ 400: { content: { "application/json": components["schemas"]["UserError"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; }; "/v1/instances/{instanceId}/start": { /** Start an Instance */ post: operations["v1StartInstance"]; }; "/v1/instances/{instanceId}/stop": { /** Stop an Instance */ post: operations["v1StopInstance"]; }; "/v1/instances/{instanceId}/reboot": { /** Reboot an Instance */ post: operations["v1RebootInstance"]; }; "/v1/instances/{instanceId}/pause": { /** Pause an Instance */ post: operations["v1PauseInstance"]; }; "/v1/instances/{instanceId}/unpause": { /** Unpause an Instance */ post: operations["v1UnpauseInstance"]; }; "/v1/instances/{instanceId}/state": { /** Set state of Instance */ put: operations["v1SetInstanceState"]; }; "/v2/instances/{instanceId}/state": { /** Get state of Instance */ get: operations["v2GetInstanceState"]; }; "/v1/instances/{instanceId}/gpios": { /** Get Instance GPIOs */ get: operations["v1GetInstanceGpios"]; /** Set Instance GPIOs */ put: operations["v1SetInstanceGpios"]; }; "/v1/instances/{instanceId}/peripherals": { /** Get Instance Peripherals */ get: operations["v1GetInstancePeripherals"]; /** Set Instance Peripherals */ put: operations["v1SetInstancePeripherals"]; }; "/v1/instances/{instanceId}/restoreBackup": { /** Restore backup */ post: operations["v1RestoreBackup"]; }; "/v1/instances/{instanceId}/screenshot.{format}": { /** Get Instance Screenshot */ get: operations["v1GetInstanceScreenshot"]; }; "/v1/instances/{instanceId}/rotate": { /** * Rotate device to specified orientation * @description Rotate device to orientation. Accepted orientations: * 1. Portrait * 2. Portrait vertically inverted (up-side-down) * 3. Landscape with top of the device to the left * 4. Landscape with top of the device to the right */ post: operations["v1RotateInstance"]; }; "/v1/instances/{instanceId}/input": { /** * Provide Instance Input * @description Sends a touch or button event to the VM. * * - Buttons (or keys) to be held during the input are specified as an array of strings, each string must be either a single ascii character or one of the following keywords: * - VM Buttons: finger, homeButton, holdButton, volumeUp, volumeDown, ringerSwitch, backButton, overviewButton * - Keyboard Buttons: again, alt, alterase, apostrophe, back, backslash, backspace, bassboost, bookmarks, bsp, calc, camera, cancel, caps, capslock, chat, close, closecd, comma, compose, computer, config, connect, copy, ctrl, cut, cyclewindows, dashboard, del, delete, deletefile, dot, down, edit, eject, ejectclose, email, end, enter, equal, esc, escape, exit, f1, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f2, f20, f21, f22, f23, f24, f3, f4, f5, f6, f7, f8, f9, fastfwd, file, finance, find, forward, front, grave, hangeul, hanja, help, henkan, home, homepage, hp, hrgn, ins, insert, iso, k102, kp0, kp1, kp2, kp3, kp4, kp5, kp6, kp7, kp8, kp9, kpasterisk, kpcomma, kpdot, kpenter, kpequal, kpjpcomma, kpleftparen, kpminus, kpplus, kpplusminus, kprightparen, kpslash, ktkn, ktknhrgn, left, leftalt, leftbrace, leftctrl, leftmeta, leftshift, linefeed, macro, mail, menu, meta, minus, move, msdos, muhenkan, mute, new, next, numlock, open, pagedown, pageup, paste, pause, pausecd, pgdn, pgup, phone, play, playcd, playpause, power, previous, print, prog1, prog2, prog3, prog4, props, question, record, redo, refresh, return, rewind, right, rightalt, rightbrace, rightctrl, rightmeta, rightshift, ro, rotate, scale, screenlock, scrolldown, scrolllock, scrollup, search, semicolon, sendfile, setup, shift, shop, slash, sleep, sound, space, sport, stop, stopcd, suspend, sysrq, tab, undo, up, voldown, volup, wakeup, www, xfer, yen, zkhk */ post: operations["v1PostInstanceInput"]; }; "/v1/instances/{instanceId}/consoleLog": { /** Get Console Log */ get: operations["v1GetInstanceConsoleLog"]; }; "/v1/instances/{instanceId}/panics": { /** Get Panics */ get: operations["v1GetInstancePanics"]; /** Clear Panics */ delete: operations["v1ClearInstancePanics"]; }; "/v1/instances/{instanceId}/media/play": { /** Start playing media */ post: operations["v1MediaPlay"]; }; "/v1/instances/{instanceId}/media/stop": { /** Stop playing media */ post: operations["v1MediaStop"]; }; "/v1/instances/{instanceId}/strace": { /** Clear CoreTrace logs */ delete: operations["v1ClearCoreTrace"]; }; "/v1/instances/{instanceId}/strace/enable": { /** Start CoreTrace on an instance */ post: operations["v1StartCoreTrace"]; }; "/v1/instances/{instanceId}/strace/disable": { /** Stop CoreTrace on an instance. */ post: operations["v1StopCoreTrace"]; }; "/v1/instances/{instanceId}/strace/thread-list": { /** Get Running Threads (CoreTrace) */ get: operations["v1ListThreads"]; }; "/v1/instances/{instanceId}/btrace-authorize": { /** Pre-authorize an btrace download */ get: operations["v1BtracePreauthorize"]; }; "/v1/instances/{instanceId}/btrace-kcrange": { /** Get Kernel extension ranges */ get: operations["v1Kcrange"]; }; "/v1/instances/{instanceId}/btrace": { /** Clear HyperTrace logs */ delete: operations["v1ClearHyperTrace"]; }; "/v1/instances/{instanceId}/btrace/enable": { /** Start HyperTrace on an instance */ post: operations["v1StartHyperTrace"]; }; "/v1/instances/{instanceId}/btrace/disable": { /** Stop HyperTrace on an instance. */ post: operations["v1StopHyperTrace"]; }; "/v1/instances/{instanceId}/hooks/execute": { /** Execute Hooks on an instance */ post: operations["v1ExecuteHyperTraceHooks"]; }; "/v1/instances/{instanceId}/hooks/clear": { /** Clear Hooks on an instance */ post: operations["v1ClearHyperTraceHooks"]; }; "/v1/instances/{instanceId}/sslsplit/enable": { /** Start Network Monitor on an instance. */ post: operations["v1StartNetworkMonitor"]; }; "/v1/instances/{instanceId}/sslsplit/disable": { /** Stop Network Monitor on an instance. */ post: operations["v1StopNetworkMonitor"]; }; "/v1/instances/{instanceId}/netdump/enable": { /** Start Enhanced Network Monitor on an instance. */ post: operations["v1StartNetdump"]; }; "/v1/instances/{instanceId}/netdump/disable": { /** Stop Enhanced Network Monitor on an instance. */ post: operations["v1StopNetdump"]; }; "/v1/instances/{instanceId}/exposeport/enable": { /** Enable an exposed port on an instance for device access. */ post: operations["v1EnableExposePort"]; }; "/v1/instances/{instanceId}/exposeport/disable": { /** Disable an exposed port on an instance for device access. */ post: operations["v1DisableExposePort"]; }; "/v1/instances/{instanceId}/message": { /** * Inject a message into an iOS VM * @description Given a message and source phone number, place this message as an incoming SMS message on the iOS VM. * For advanced usage, a raw message of bytes may be sent. In this case, the parameter should provide hex encoded bytes * (0x00 0x11 0x22 0x33 in the example below) which are sent verbatim. * The user must ensure that the body is the correct format for the underlying device stack. */ post: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; /** @description Message data */ requestBody: { content: { "application/json": Record; }; }; responses: { /** @description No Content */ 204: { content: never; }; /** @description Bad Request */ 400: { content: { "application/json": components["schemas"]["UserError"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; }; "/v2/instances/{instanceId}/quickConnectCommand": { /** Recommended SSH Command for Quick Connect */ get: operations["v2GetInstanceQuickConnectCommand"]; }; "/v1/instances/{instanceId}/upgrade": { /** Upgrade iOS version */ post: operations["v1UpgradeInstance"]; }; "/v1/instances/{instanceId}/snapshots": { /** Get Instance Snapshots */ get: operations["v1GetInstanceSnapshots"]; /** Create Instance Snapshot */ post: operations["v1CreateSnapshot"]; }; "/v1/instances/{instanceId}/snapshots/{snapshotId}": { /** Get Instance Snapshot */ get: operations["v1GetInstanceSnapshot"]; /** Delete an Instance Snapshot */ delete: operations["v1DeleteInstanceSnapshot"]; /** Rename an Instance Snapshot */ patch: operations["v1RenameInstanceSnapshot"]; }; "/v1/instances/{instanceId}/snapshots/{snapshotId}/restore": { /** Restore an Instance Snapshot */ post: operations["v1RestoreInstanceSnapshot"]; }; "/v1/license/features": { /** Get all supported features for user */ get: operations["v1GetSupportedFeatures"]; }; "/v1/models": { /** Get Supported Models */ get: operations["v1GetModels"]; }; "/v1/models/{model}/software": { /** Get Software for Model */ get: operations["v1GetModelSoftware"]; }; "/v1/projects": { /** Get Projects */ get: operations["v1GetProjects"]; /** Create a Project */ post: operations["v1CreateProject"]; }; "/v1/projects/{projectId}": { /** Get a Project */ get: operations["v1GetProject"]; /** Delete a Project */ delete: operations["v1DeleteProject"]; /** Update a Project */ patch: operations["v1UpdateProject"]; }; "/v1/projects/{projectId}/instances": { /** Get Instances in Project */ get: operations["v1GetProjectInstances"]; }; "/v1/projects/{projectId}/settings": { /** Change Project Settings */ patch: operations["v1UpdateProjectSettings"]; }; "/v1/projects/{projectId}/vpnconfig/{format}": { /** * Get Project VPN Configuration * @description A Project VPN allows connection _into_ virtual devices in the project (e.g., connecting a researcher's computer as a VPN client to a virtual device within the project). If a Project VPN has been defined, this will return the configuration. */ get: operations["v1GetProjectVpnConfig"]; }; "/v1/projects/{projectId}/keys": { /** Get Project Authorized Keys */ get: operations["v1GetProjectKeys"]; /** Add Project Authorized Key */ post: operations["v1AddProjectKey"]; }; "/v1/projects/{projectId}/keys/{keyId}": { /** Delete Project Authorized Key */ delete: operations["v1RemoveProjectKey"]; }; "/v1/roles": { /** * Get all roles * @description This endpoint is available for Enterprise accounts only */ get: operations["v1Roles"]; }; "/v1/roles/projects/{projectId}/users/{userId}/roles/{roleId}": { /** * Add user role to project * @description This endpoint is available for Enterprise accounts only */ put: operations["v1AddUserRoleToProject"]; /** * Remove user role from project * @description This endpoint is available for Enterprise accounts only */ delete: operations["v1RemoveUserRoleFromProject"]; }; "/v1/roles/projects/{projectId}/teams/{teamId}/roles/{roleId}": { /** * Add team role to project * @description This endpoint is available for Enterprise accounts only */ put: operations["v1AddTeamRoleToProject"]; /** * Remove team role from project * @description This endpoint is available for Enterprise accounts only */ delete: operations["v1RemoveTeamRoleFromProject"]; }; "/v1/snapshots/{snapshotId}/share": { /** * Share snapshot * @description Share a snapshot */ post: operations["v1ShareSnapshot"]; }; "/v1/snapshots/accept": { /** * Accept a snapshot shared with you * @description Accept a snapshot shared with you */ post: operations["v1AcceptSharedSnapshot"]; }; "/v1/snapshots/{snapshotId}/permissions": { /** * Set member list * @description Sets the list of members who have access to the snapshot */ post: operations["v1SetSnapshotPermissions"]; /** * Delete member(s) * @description Deletes one or more members from the list of members who have access to the snapshot */ delete: operations["v1DeleteSnapshotPermissions"]; }; "/v1/snapshots/shared": { /** * Fetch shared snapshots * @description Fetch snapshots shared with and shared by the requesting user */ get: operations["v1GetSharedSnapshots"]; }; "/v1/snapshots/{snapshotId}": { /** Get Snapshot */ get: operations["v1GetSnapshot"]; /** Delete a Snapshot */ delete: operations["v1DeleteSnapshot"]; /** Rename a Snapshot */ patch: operations["v1SnapshotRename"]; }; "/v1/teams": { /** * Get teams * @description This endpoint is available for Enterprise accounts only */ get: operations["v1Teams"]; /** * Create team * @description This endpoint is available for Enterprise accounts only */ post: operations["v1TeamCreate"]; }; "/v1/teams/{teamId}": { /** * Delete team * @description This endpoint is available for Enterprise accounts only */ delete: operations["v1TeamDelete"]; /** * Update team * @description This endpoint is available for Enterprise accounts only */ patch: operations["v1TeamChange"]; }; "/v1/teams/{teamId}/users/{userId}": { /** * Add user to team * @description This endpoint is available for Enterprise accounts only */ put: operations["v1AddUserToTeam"]; /** * Remove user from team * @description This endpoint is available for Enterprise accounts only */ delete: operations["v1RemoveUserFromTeam"]; }; "/v1/users": { /** Create User */ post: operations["v1CreateUser"]; }; "/v1/users/agree": { /** Consent to the current terms and conditions */ post: operations["v1UserAgreeTerms"]; }; "/v1/users/{userId}": { /** Delete User */ delete: operations["v1DeleteUser"]; /** Update User */ patch: operations["v1UpdateUser"]; }; "/v1/users/login": { /** Log In */ post: operations["v1UsersLogin"]; }; "/v1/users/change-password": { /** * Change User Password * @description Authenticated solely by the old-password. */ post: { requestBody: { content: { "application/json": components["schemas"]["PasswordChangeBody"]; }; }; responses: { /** @description Accepted */ 204: { content: never; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; }; "/v1/users/reset-password": { /** Reset User Password */ post: operations["v1ResetUserPassword"]; }; "/v1/users/send-reset-link": { /** Send Password Reset Link */ post: operations["v1SendUserResetLink"]; }; "/v1/users/reset-link-info": { /** Send Password Reset Link Info */ get: operations["v1GetResetLinkInfo"]; }; "/v1/webplayer": { /** List all Webplayer sessions */ get: operations["v1WebPlayerListSessions"]; /** Create a new Webplayer Session */ post: operations["v1WebPlayerCreateSession"]; }; "/v1/webplayer/{sessionId}": { /** Retrieve Webplayer Session Information */ get: operations["v1WebPlayerSessionInfo"]; /** Tear down a Webplayer Session */ delete: operations["v1WebPlayerDestroySession"]; }; "/v1/webplayer/allowedDomains": { /** Retrieve the list of allowed domains for all Webplayer sessions */ get: operations["v1WebPlayerAllowedDomains"]; }; "/v1/network/connections": { /** * List available network connections * @description You must have the domain administrator or project administrator role to list network connections. */ get: operations["v1ListNetworkConnections"]; /** * Create a new Network Connection * @description You must have the domain administrator role to create a network connection. */ post: operations["v1CreateNetworkConnection"]; }; "/v1/network/connections/{id}": { /** * Update Network Connection * @description You must have the domain administrator role to update a network connection. */ put: operations["v1UpdateNetworkConnection"]; /** * Delete an existing Network Connection * @description You must have the domain administrator role to delete a network connection. */ delete: operations["v1DeleteNetworkConnection"]; /** * Update Network Connection (partial) * @description Only updates the specified attributes. You must have the domain administrator role to update a network connection. */ patch: operations["v1PartialUpdateNetworkConnection"]; }; "/v1/network/providers": { /** * List available network providers * @description Provides a list of registered network providers to be used when [creating network connections](#post-/v1/network/connections). You * must have the domain administrator role to list network providers. */ get: operations["v1ListNetworkProviders"]; }; "/v1/services/matrix/{instanceId}/instances/{instanceId}/assessments": { /** Get assessments by instanceId */ get: operations["getAssessmentsByInstanceId"]; }; "/v1/services/matrix/{instanceId}/assessments": { /** Create assessment */ post: operations["createAssessment"]; }; "/v1/services/matrix/{instanceId}/assessments/{assessmentId}": { /** Get assessment by ID */ get: operations["getAssessmentById"]; /** Delete assessment */ delete: operations["deleteAssessment"]; }; "/v1/services/matrix/{instanceId}/assessments/{assessmentId}/start": { /** Update assessment state and begin device monitoring */ post: operations["startMonitoring"]; }; "/v1/services/matrix/{instanceId}/assessments/{assessmentId}/stop": { /** Update assessment state and stop device monitoring */ post: operations["stopMonitoring"]; }; "/v1/services/matrix/{instanceId}/assessments/{assessmentId}/test": { /** Update assessment state and execute MATRIX tests */ post: operations["runTests"]; }; "/v1/services/matrix/{instanceId}/assessments/{assessmentId}/download": { /** Download report */ get: operations["downloadReport"]; }; } interface components { schemas: { Credentials: { /** @description Authentication Username */ username: string; /** * Format: password * @description Authentication Password */ password: string; }; Token: { token: string; /** * Format: date-time * @description Token expiration */ expiration?: string | null; }; ApiToken: { apiToken: string; }; /** @description Coupon options */ coupon_options: { /** @enum {string} */ type: "percent" | "discount" | "absolute"; /** @description Amount */ amount: number; /** @description Is Used. If true, this coupon has been used and cannot be used again */ used: boolean; }; /** @description Plan options */ plan: { /** @enum {string} */ licenseType: "premium" | "individual" | "standard" | "enterprise" | "individual-usage" | "enterprise-usage" | "unrestricted"; /** @description Number of CPU cores */ cores: number; }; /** @description Trial options */ trial: { /** @description Duration in days */ duration: number; }; /** @description Subscriber Invite */ SubscriberInvite: { /** @description Coupon Options */ coupon_options?: components["schemas"]["coupon_options"]; /** @description Plan Options */ plan?: components["schemas"]["plan"]; /** @description Trial Options */ trial?: components["schemas"]["trial"]; /** @description Name */ name?: string | null; /** @description Email */ email?: string | null; /** @description Coupon code */ coupon_code: string; /** @description Domain */ domain?: string | null; /** @description Aggregate */ aggregate: string; /** @description Used By */ use_by?: string | null; /** @description Is Active flag */ active: boolean; /** @description Is reusable flag */ reusable: boolean; /** @description Created Date in ISO-8601 format e.g. 2022-05-06T02:39:23.000Z */ createdAt: string; /** @description Updated Date in ISO-8601 format e.g. 2022-05-06T02:39:23.000Z */ updatedAt: string; }; MeteredSubscriptionUsage: { /** @description Unit price */ burst_rate?: number | null; /** @description Allocated hours */ allocated_hours?: number | null; /** @description Plan cost */ plan_billed_amount?: number | null; /** @description Units included in plan */ plan_billed_units?: number | null; /** @description Amount billed */ burst_billed_amount?: number | null; /** @description Units billed */ burst_billed_units?: number | null; /** @description Outstanding amount */ burst_outstanding_amount?: number | null; /** @description Outstanding units */ burst_outstanding_units?: number | null; /** @description Total cost in cents for current period */ total_usage_amount?: number | null; /** @description Total used units for current period */ total_used_units?: number | null; }; EmptyResponse: Record; TrialRequestMetadata: { name?: string | null; /** @description provided company name */ company?: string | null; /** @description option from sign up form, interesting using for malware */ malware?: boolean | null; /** @description option from sign up form, interesting using for research */ research?: boolean | null; /** @description option from sign up form, interesting using for pentesting */ pentest?: boolean | null; /** @description option from sign up form, interesting using for other area added here */ other?: string | null; }; /** @description The user's address */ Address: { /** @description Address line 1 (e.g., street, PO Box, or company name). */ address1?: string | null; /** @description Address line 2 (e.g., apartment, suite, unit, or building). */ address2?: string | null; /** @description City, district, suburb, town, or village. */ city?: string | null; /** @description Two-letter country code (ISO 3166-1 alpha-2). */ country?: string | null; /** @description ZIP or postal code. */ postal_code?: string | null; /** @description State, county, province, or region. */ state?: string | null; }; TrialRequestOptions: { /** @description The user's address. */ address?: components["schemas"]["Address"]; /** @description The user's email address. */ email?: string | null; /** @description The user's full name. */ name?: string | null; /** @description Metadata passed in from the sign up flow */ metadata?: components["schemas"]["TrialRequestMetadata"]; /** @description If true, create an enterprise domain. */ enterprise?: boolean | null; /** @description Stripe payment token. */ token?: string | null; }; GrantTrialRequestResponse: { /** @description Trial request code */ code?: string | null; }; Plan: { /** @description Plan ID */ planId?: string | null; /** @description Plan Name */ name?: string | null; }; Maintenance: { /** @description Maintenance message */ message?: string | null; /** @description Maintenance header */ header?: string | null; }; Trial: { /** @description Maintenance message */ defaultDuration?: number | null; /** @description Maintenance header */ defaultHours?: number | null; /** @description Maintenance header */ defaultDevices?: number | null; /** @description Maintenance header */ defaultCores?: number | null; }; Logging: { /** @description Denotes whether it's in development */ development?: boolean | null; /** @description Denotes whether to throw warnings */ throwWarnings?: boolean | null; }; AuthProvider: { /** @description Provider name for a given provider type */ name?: string | null; /** @description The identifier for the provider */ identifier?: string | null; /** @description Provider type */ providerType?: string | null; /** @description Denotes whether it's the default */ default?: boolean | null; /** @description Provider label */ label?: string | null; /** @description Denotes whether they're enabled or not */ enabled?: boolean | null; /** @description URL for provider auth */ authorizationUrl?: string | null; /** @description The identifier for the provider */ id?: string | null; /** @description Auth provider */ provider?: string | null; }; ConfigResponse: { /** @description Denotes whether it's an on-site install */ onSite?: boolean | null; /** @description Denotes whether to show domain settings */ showDomainSettings?: boolean | null; /** @description Denotes the version */ version?: string | null; /** @description Denotes whether the build is invalid */ invalidBuild?: boolean | null; /** @description Denotes whether sepSim is enabled */ sepSim?: boolean | null; /** @description Denotes whether installer is available */ installerAvailable?: boolean | null; /** @description API publishable key to use for Invoiced */ invoicedPublishableKey?: string | null; /** @description Stripe public key */ stripePublicKey?: string | null; /** @description Intercom app ID, also known as workspace ID */ intercomId?: string | null; /** @description Webhook URL for aux */ auxWebhook?: string | null; /** @description Google Tag Manager */ gtmId?: string | null; /** @description Webhook URL to send feedback into Productboard automatically */ zapierFeedbackWebhook?: string | null; /** @description Webhook URL to send frontend errors to Jira automatically */ zapierBugsWebhook?: string | null; /** @description Default backend billing api name for new subscriptions (e.g. "stripe") */ billingBackend?: string | null; /** @description Denotes whether the server is undergoing maintenance */ maintenance?: boolean | components["schemas"]["Maintenance"] | null; /** @description Info for logging */ logging?: components["schemas"]["Logging"]; /** @description URL for cloud admin login */ cloudAdmin?: string | null; /** @description URL for files admin login */ filesAdmin?: string | null; /** @description Cloud domain name (usually corellium.com or staging.corellium.com) */ cloudDomain?: string | null; /** @description Billing domain name */ billingDomain?: string | null; /** @description App domain name (usually app.corellium.com or app.staging.corellium.com) */ appDomain?: string | null; /** @description Maximum network monitor file size */ maxNetworkMonitorFileSize?: string | null; /** @description Denotes whether users can upload firmware images */ enableFirmwareImageUpload?: boolean | null; /** @description Auth providers */ authProviders?: components["schemas"]["AuthProvider"][] | null; /** @description Maximum number of snapshots to allow */ snapshotLimit?: number | null; /** @description The maximum size, in bytes, (default: 100 MB) that an uploaded kernel should be */ maxKernelSize?: number | null; /** @description The maximum size, in bytes, (default: 500 MB) that an uploaded ramdisk should be */ maxRamdiskSize?: number | null; /** @description Denotes whether charmSDK is enabled */ charmSDK?: string | null; /** @description Info about trial */ trial?: components["schemas"]["Trial"]; /** @description Sentry URL */ sentryUrl?: string | null; /** @description If enabled, adds the default providers in their current configuration */ domainAuthenticationProviders?: boolean | null; /** @description The configured Default SSID from /etc/corellium/setup.json */ defaultSsid?: string | null; }; DomainOptions: { /** @description if true, totp is required */ totpRequired?: boolean | null; trialExtension?: components["schemas"]["TrialExtension"]; /** @description Snapshot permissions settings */ snapshotSharingPermissions?: components["schemas"]["SnapshotSharingPermissions"]; }; TrialExtension: { /** @description how many additional days? */ duration?: number | null; /** @description why does the user want more time? */ reason?: string | null; denied?: boolean | null; /** @description explanation for why the request was denied */ deniedReason?: string | null; }; SnapshotSharingPermissions: { /** @description Indicates if snapshot permissions are enabled by the cloud admin */ cloudEnabled?: boolean | null; /** @description Indicates if snapshot permissions are enabled by the domain admin */ domainEnabled?: boolean | null; /** @description Indicates if public link access is enabled */ publicLink?: boolean | null; /** @description Indicates if domain-restricted link access is enabled */ domainRestrictedLink?: boolean | null; /** @description Indicates if password-protected public link access is enabled */ passwordPublicLink?: boolean | null; /** @description Indicates if email invite access is enabled */ emailInvite?: boolean | null; }; OpenIDConfig: { /** @description Service Discovery URL */ discoveryUrl?: string | null; /** @description Service Client ID */ clientId?: string | null; /** @description Service Client Secret */ clientSecret?: string | null; /** @description Only accept individuals with invitations */ invitedOnly?: boolean | null; }; DomainAuthProviderRequest: { /** @description Provider Type */ providerType: string; /** @description Enabled/Disabled */ enabled: boolean; /** @description Login Button Text */ label?: string | null; /** @description Optional configuration */ config?: components["schemas"]["OpenIDConfig"]; }; DomainAuthProviderResponse: { /** @description Provider ID */ identifier: string; /** @description Provider ID for backward compatibility with frontend */ id?: string | null; /** @description Provider Type */ providerType: string; /** @description Provider Type for backward compatibility with frontend */ provider?: string | null; /** @description Login Button Text */ label: string; /** @description Title Text for the Frontend's Provider Configuration Form */ name?: string | null; /** @description Coordinator endpoint for Authorizing with this provider */ authorizationUrl?: string | null; /** @description True: Configured in coordinator.json, False: Custom Domain Provider */ default: boolean; /** @description Enabled/Disabled */ enabled: boolean; /** @description Optional configuration */ config?: components["schemas"]["OpenIDConfig"]; /** @description Optional User ID of creator */ createdBy?: string | null; /** @description Created Date in ISO-8601 format e.g. 2022-05-06T02:39:23.000Z */ createdAt: string; /** @description Updated Date in ISO-8601 format e.g. 2022-05-06T02:39:23.000Z */ updatedAt: string; }; Extension: { /** @description Identifier */ identifier?: string | null; /** @description If true, instances requiring this extension can be created or started */ enabled?: boolean | null; /** @description Created Date in ISO-8601 format e.g. 2022-05-06T02:39:23.000Z */ createdAt?: string | null; /** @description Updated Date in ISO-8601 format e.g. 2022-05-06T02:39:23.000Z */ updatedAt?: string | null; /** * Format: uuid * @description Image Id */ imageId?: string | null; /** @description State */ state?: string | null; /** @description Array of Flavor definitions */ flavors?: Record[] | null; }; UpdateExtension: { /** @description If true, instances requiring this extension can be created or started */ enabled?: boolean | null; }; V1LoadExtensionParameters: { /** * Format: uuid * @description The uuid of the image to load */ imageId: string; }; Hook: { /** * Format: uuid * @description Identifier */ identifier?: string | null; /** @description Label */ label?: string | null; /** @description Address */ address?: string | null; /** @description Patch */ patch?: string | null; /** * @description Patch Type * @enum {string|null} */ patchType?: "csmfcc" | "csmfvm" | null; /** @description If true, instances can call required hooks */ enabled?: boolean | null; /** @description Created Date in ISO-8601 format e.g. 2022-05-06T02:39:23.000Z */ createdAt?: string | null; /** @description Updated Date in ISO-8601 format e.g. 2022-05-06T02:39:23.000Z */ updatedAt?: string | null; /** * Format: uuid * @description Instance Id */ instanceId?: string | null; }; V1CreateHookParameters: { /** @description Label */ label: string; /** @description Address */ address: string; /** @description Patch */ patch: string; /** * @description Patch Type * @enum {string} */ patchType: "csmfcc" | "csmfvm"; }; Image: { status: string; /** * Format: uuid * @description Image ID */ id?: string | null; name?: string | null; /** * @description Type of image * @enum {string|null} */ type?: "fwbinary" | "kernel" | "devicetree" | "ramdisk" | "loaderfile" | "sepfw" | "seprom" | "bootrom" | "llb" | "iboot" | "ibootdata" | "fwpackage" | "partition" | "backup" | null; filename?: string | null; uniqueid?: string | null; size?: number | null; /** * Format: uuid * @description project ID */ project?: string | null; /** * Format: date-time * @description When Image was created */ created_at?: string | null; /** * Format: date-time * @description When Image was last updated */ updated_at?: string | null; }; ImageCreationOptions: { /** @description Image type */ type: string; /** * @description How the file is stored * @enum {string} */ encoding: "plain"; /** @description set to false if the uploaded file is not encapsulated inside an outer zipfile */ encapsulated?: boolean | null; /** @description Image name */ name?: string | null; /** * Format: uuid * @description Project ID */ project?: string | null; /** * Format: uuid * @description Instance ID */ instance?: string | null; /** * Format: binary * @description Optionally the actual file */ file?: string | null; }; UserError: { /** @description Error text */ error: string; /** * @description Error ID * @enum {string} */ errorID: "UserError"; /** @description Field associated with error */ field?: string | null; }; ValidationError: { /** @description Error text */ error: string; /** * @description Error ID * @enum {string} */ errorID: "ValidationError"; /** @description Field associated with error */ field?: string | null; }; ApiInternalConsistencyError: { /** @description Error text */ error: string; /** @description Error ID */ errorID: string; /** @description Upstream error description */ originalError?: string | null; }; ApiError: { /** @description Error text */ error: string; /** @description Error ID */ errorID: string; /** @description Upstream error description */ originalError?: string | null; }; ApiConflictError: { /** @description Error text */ error: string; /** * @description Error ID * @enum {string} */ errorID: "Conflict"; /** @description Object that is conflicted with */ object?: Record | null; }; ApiNotFoundError: { /** @description Error text */ error: string; /** @description Error ID */ errorID: string; /** @description Name of the object requested */ name?: string | null; /** @description params provided by user */ params?: Record | null; }; /** * Format: binary * @description A File */ File: string; PasswordChangeBody: { /** * Format: uuid * @description userId */ user: string; /** @description old password */ "old-password": string; /** @description new password */ "new-password": string; }; /** * @description ### Instance Boot Option * * kalloc: Enable kalloc/kfree trace access via GDB (Enterprise only) * * gpu: Enable cloud GPU acceleration (Extra costs incurred, cloud only) * * no-keyboard: Enable keyboard passthrough from web interface * * nodevmode: Disable developer mode on iOS16 and greater * * sep-cons-ext: Patch SEPOS to print debug messages to console * * iboot-jailbreak: Patch iBoot to disable signature checks * * llb-jailbreak: Patch LLB to disable signature checks * * rom-jailbreak: Patch BootROM to disable signature checks * @enum {string} */ InstanceBootOptionsAdditionalTag: "kalloc" | "gpu" | "no-keyboard" | "nodevmode" | "sep-cons-ext" | "iboot-jailbreak" | "llb-jailbreak" | "rom-jailbreak"; InstanceBootOptions: { bootArgs?: string | null; restoreBootArgs?: string | null; /** * Format: uuid * @description Boot udid */ udid?: string | null; /** * Format: hex * @description Assigned ECID */ ecid?: string | null; /** @description Random seed to provide to boot if any */ randomSeed?: string | null; /** @description Enable PAC */ pac?: boolean | null; /** @description Enable APRR */ aprr?: boolean | null; additionalTags?: components["schemas"]["InstanceBootOptionsAdditionalTag"][] | null; }; /** * @description Current Instance State * @enum {string} */ InstanceState: "on" | "off" | "booting" | "deleting" | "creating" | "restoring" | "paused" | "rebooting" | "error"; VpnDefinition: { proxy?: Record[] | null; listeners?: Record[] | null; }; InstanceServices: { vpn?: components["schemas"]["VpnDefinition"]; }; InstanceAgentState: ({ hash?: string | null; info?: string | null; }) | null; InstanceNetmonState: { hash?: string | null; info?: string | null; enabled?: boolean | null; }; InstanceNetdumpState: { hash?: string | null; info?: string | null; enabled?: boolean | null; }; Instance: { /** * Format: uuid * @description Instance Identifier */ id?: string | null; /** @description Instance Name */ name?: string | null; /** * Format: hex * @description Key used to encrypt the Instance */ key?: string | null; /** @description The type of virtual machine this is */ flavor?: string | null; type?: string | null; /** * Format: uuid * @description The projectId of the project this instance belongs to */ project?: string | null; /** @description Current state of the instance */ state?: components["schemas"]["InstanceState"]; /** * Format: date-time * @description Time the state of the instance last changed */ stateChanged?: string | null; /** * Format: date-time, NULL if currently SHUTOFF * @description Time the instance was started */ startedAt?: string | null; /** @description Currently executing User Task */ userTask?: string | null; /** @description Current task state if any */ taskState?: string | null; /** @description Current error state if any */ error?: string | null; /** @description Instance boot options */ bootOptions?: components["schemas"]["InstanceBootOptions"]; /** * Format: ipv4 * @description Services IP Address */ serviceIp?: string | null; /** * Format: ipv4 * @description LAN IP Address */ wifiIp?: string | null; /** * Format: ipv4 * @description Secondary Inteface LAN IP Address (if supported) */ secondaryIp?: string | null; services?: components["schemas"]["InstanceServices"]; panicked?: boolean | null; /** * Format: date-time * @description Time instance was created */ created?: string | null; /** @description Model of virtual machine device */ model?: string | null; /** * Format: url * @description URL that package used to create this instance is available at */ fwpackage?: string | null; os?: string | null; agent?: components["schemas"]["InstanceAgentState"]; netmon?: components["schemas"]["InstanceNetmonState"]; netdump?: components["schemas"]["InstanceNetdumpState"]; exposePort?: string | null; fault?: boolean | null; patches?: string[] | null; createdBy?: components["schemas"]["createdBy"]; }; createdBy: { /** * Format: uuid * @description User Identifier */ id?: string | null; /** @description Username */ username?: string | null; /** @description User Label */ label?: string | null; /** @description Indicates if user was deleted */ deleted?: boolean | null; }; VolumeOptions: { /** @description GB */ allocate?: number | null; partitions?: Record[] | null; computeNode?: string | null; }; InstanceCreateOptions: { /** @description identifier of the snapshot that was shared. */ sharedSnapshot?: string | null; /** @description optional password if the shared snapshot requires a password. */ sharedSnapshotPassword?: string | null; /** @description the name of the device */ name?: string | null; /** * Format: hex * @description Key used to encrypt the Instance */ key?: string | null; /** @description the flavor id */ flavor: string; /** @description project UUID */ project: string; /** @description OS Version */ os: string; /** @description OS Build */ osbuild?: string | null; /** @description list of patches to apply */ patches?: string[] | null; /** @description URL or image id */ fwpackage?: string | null; /** * Format: url * @description URL that firmware package used to create this instance is available at */ origFwPackageUrl?: string | null; encrypt?: boolean | null; overrideWifiMAC?: string | null; volume?: components["schemas"]["VolumeOptions"]; /** * Format: uuid * @description Snapshot ID for this instance to be cloned from if defined */ snapshot?: string | null; /** @description Instance boot options */ bootOptions?: components["schemas"]["InstanceBootOptions"]; device?: components["schemas"]["Model"]; }; InstanceReturn: { /** * Format: uuid * @description Instance ID */ id: string; /** @description Instance state (creating) */ state: components["schemas"]["InstanceState"]; }; PatchInstanceOptions: { /** @description the name of the device */ name?: string | null; /** * @description the desired state of the device * @enum {string|null} */ state?: "on" | "off" | "paused" | "deleting" | null; /** @description the desired Boot Options */ bootOptions?: components["schemas"]["InstanceBootOptions"]; proxy?: Record | null; }; /** @description Represents a Proxy configuration object. */ ProxyConfig: { /** @description The device port to use for proxying. */ devicePort?: number | null; /** @description If `true`, the first available port will be used if `devicePort` is not available. */ firstAvailable?: boolean | null; /** @description If `true`, the proxy will be exposed to the external interface. */ expose?: boolean | null; /** @description The router port to use for proxying. */ routerPort?: number | null; }; AgentError: { /** @description The error encountered by the agent */ error: string; /** * @description AgentError * @enum {string} */ errorID: "AgentError"; /** @description The full error encountered by the agent */ originalError?: Record | null; }; AgentAppReadyResponse: { ready: boolean; }; AgentInstallBody: { /** @description path to app to install */ path?: string | null; }; AgentApp: { tags?: string[] | null; running?: boolean | null; diskUsage?: number | null; Date?: number | null; applicationType?: string | null; name?: string | null; bundleID?: string | null; }; AgentAppsList: { apps?: components["schemas"]["AgentApp"][] | null; /** @description bundleID of frontmost app or empty string if none are frontmost */ frontmost?: string | null; }; AgentAppStatus: { running?: boolean | null; bundleID?: string | null; }; AgentAppsStatusList: { apps?: components["schemas"]["AgentAppStatus"][] | null; /** @description bundleID of frontmost app or empty string if none are frontmost */ frontmost?: string | null; }; AgentIcons: { /** * Format: byte * @description The data for an icon */ icon?: string | null; }; FileChanges: { /** @description Optional New path */ path?: string | null; /** @description Optional New Mode */ mode?: number | null; /** @description Optional New Owner UID */ uid?: number | null; /** @description Optional New Group GID */ gid?: number | null; }; AgentProfilesReturn: { profiles: string[]; }; AgentSystemSetHostnameBody: { hostname: string; }; AgentValueReturn: { /** @description The requested value */ value?: string | null; }; AgentSystemGetPropBody: { property: string; }; AgentSystemAdbAuth: { enabled?: boolean | null; }; InstanceConsoleEndpoint: { /** * Format: url * @description Console Websocket URL */ url?: string | null; }; InstanceStartOptions: { /** @description Start device paused */ paused?: boolean | null; /** @description Start device with Process Network Monitoring enabled */ sockcap?: boolean | null; }; InstanceStopOptions: { /** @description Request VM OS power down */ soft?: boolean | null; }; V1SetStateBody: { state: components["schemas"]["InstanceState"]; }; /** * @description Bit value * @enum {number} */ Bit: 0 | 1; GpioStateDefinition: { /** @description count of bits in members of this bank */ bitCount: number; /** @description bits for each bank of this name as an array of arrays */ banks: components["schemas"]["Bit"][][]; }; /** @description Current state of GPIOs */ GpiosState: { led?: components["schemas"]["GpioStateDefinition"]; button?: components["schemas"]["GpioStateDefinition"]; switch?: components["schemas"]["GpioStateDefinition"]; }; PeripheralsData: { acceleration?: number[] | null; gyroscope?: number[] | null; magnetic?: number[] | null; orientation?: number[] | null; temperature?: number | null; proximity?: number | null; light?: number | null; pressure?: number | null; humidity?: number | null; }; RestoreBackupData: Record; /** * Format: binary * @description Screenshot Data */ Screenshot: string; RotateBody: { /** * @description Desired orientation * @enum {number} */ orientation: 1 | 2 | 3 | 4; }; /** * @description Button definition * @enum {string} */ Button: "finger" | "homeButton" | "holdButton" | "volumeUp" | "volumeDown" | "ringerSwitch" | "backButton" | "overviewButton"; TouchInput: { /** @description array of per-finger [x,y] touch positions, up to 10 depending on model */ position?: components["schemas"]["FingerPositions"]; }; TouchCurveInput: { /** @description array of per-finger [x,y] start touch positions, up to 10 depending on model */ start?: components["schemas"]["FingerPositions"]; /** @description array of per-finger [x,y] end touch positions, up to 10 depending on model */ end?: components["schemas"]["FingerPositions"]; }; TextInput: { /** @description text to type */ text?: string | null; }; InstanceInput: Record & (components["schemas"]["TouchInput"] | components["schemas"]["TouchCurveInput"] | components["schemas"]["TextInput"]); InputResponse: { /** @description Expected time to complete */ eta?: number | null; }; MediaPlayBody: { /** * Format: uuid * @description Image ID */ imageId?: string | null; /** * Format: string * @description URL to a media file */ url?: string | null; }; KernelThread: { /** * Format: uint64_t * @description Kernel Thread ID */ kernelId?: string | null; /** @description Task ID */ tid?: number | null; /** @description Array of stack addresses */ stack?: string[] | null; }; KernelTask: { /** * Format: uint64_t * @description Kernel Task ID */ kernelId?: string | null; /** @description Thread name */ name?: string | null; /** @description Process ID of task */ pid?: number | null; threads?: components["schemas"]["KernelThread"][] | null; }; Kcrange: { /** @description Kernel Extension */ kext?: string | null; /** @description Range */ range?: string[] | null; }; BtraceEnableOptions: { ranges?: string[][] | null; }; NetdumpFilter: { portRanges?: string[] | null; srcPorts?: string[] | null; dstPorts?: string[] | null; ports?: string[] | null; protocols?: string[] | null; processes?: string[] | null; }; InstanceUpgradeBody: { /** @description iOS version */ os: string; /** @description (optional) iOS build ID */ osbuild?: string | null; }; Invitation: { /** * Format: uuid * @description Invite ID */ identifier?: string | null; /** @description Invited email */ email?: string | null; settings?: Record | null; }; InviteRevokeParams: { /** @description id or array of ids to revoke */ ids?: string | string[] | null; }; Model: { type: string; name: string; flavor: string; description?: string | null; model: string; boardConfig?: string | null; platform?: string | null; cpid?: number | null; bdid?: number | null; peripherals?: boolean | null; }; Firmware: { version?: string | null; buildid?: string | null; /** @description Android only flavor */ AndroidFlavor?: string | null; /** @description Android only API version */ APIVersion?: string | null; sha256sum?: string | null; sha1sum?: string | null; md5sum?: string | null; size?: number | null; uniqueId?: string | null; /** @description Firmware metadata */ metadata?: Record | null; /** * Format: date-time * @description Release Date */ releasedate?: string | null; /** * Format: date-time * @description Date uploaded */ uploaddate?: string | null; /** * Format: url * @description URL firmware is available at */ url?: string | null; /** * Format: url * @description URL firmware is available at from vendor */ orig_url?: string | null; filename?: string | null; }; ModelSoftware: { name?: string | null; boardConfig?: string | null; platform?: string | null; cpid?: number | null; bdid?: number | null; firmwares?: components["schemas"]["Firmware"][] | null; }; ProjectSettings: { "internet-access": boolean; /** @description UUIDv4 network connection identifier or null for no vpn connection */ connection?: string | null; dhcp: boolean; }; ProjectQuota: { cores?: number | null; instances?: number | null; ram?: number | null; }; ProjectUsage: { cores?: number | null; instances?: number | null; ram?: number | null; gpu?: number | null; }; Project: { /** * Format: uuid * @description Project Identifier */ id: string; /** @description Project Name */ name?: string | null; settings?: components["schemas"]["ProjectSettings"]; quotas?: components["schemas"]["ProjectQuota"]; quotasUsed?: components["schemas"]["ProjectUsage"]; }; ProjectKey: { /** * Format: uuid * @description keyId */ identifier?: string | null; /** * @description kind of key * @enum {string} */ kind: "ssh" | "adb"; /** * Format: uuid * @description projectId */ project?: string | null; /** @description The public key */ key: string; /** @description Key fingerprint */ fingerprint?: string | null; /** * Format: date-time * @description Time of last update */ updatedAt?: string | null; /** * Format: date-time * @description Time of creation */ createdAt?: string | null; }; Role: { /** @enum {string} */ role: "admin" | "_member_"; /** * Format: uuid * @description Project ID */ project: string; /** * Format: uuid * @description User ID */ user: string; }; SnapshotOwner: { /** @description The name of the owner. */ name: string; /** @description The email of the member. */ email: string; }; SnapshotMember: { /** @description The email of the member */ email: string; /** @description The date when the invite was sent */ inviteSentAt: number; /** @description UNIX Date of when the snapshot was first shared with member */ sharedOn: number; /** @description The member's user ID */ userId?: string | null; /** @description The user's label or name */ label?: string | null; }; SnapshotSharing: { /** @enum {string} */ sharingType: "publicLink" | "domainRestrictedLink" | "passwordPublicLink" | "emailInvite"; /** @description Password with using passwordPublicLink */ password?: string | null; /** @description The owner of the snapshot */ sharedBy?: components["schemas"]["SnapshotOwner"]; /** @description The members who have access to the snapshot */ members?: Record | null; }; SnapshotStatus: { /** @description The current task being performed on the snapshot */ task?: string | null; /** @description Indicates if the snapshot has been successfully created */ created?: boolean | null; }; SharedSnapshotsInfo: { /** @description UUID of the snapshot */ id: string; /** @description Snapshot name */ name: string; /** @description Device model */ model: string; /** @description UNIX Date of when the snapshot was first shared with member */ sharedOn: number; /** @description The member who the snapshot was shared with. Only present in sharedWithUser */ sharedWithMember?: string | null; /** @description The owner of the snapshot */ sharedBy?: components["schemas"]["SnapshotOwner"]; }; UserSnapshots: { /** @description Snapshots shared with the logged-in user */ sharedWithUser: components["schemas"]["SharedSnapshotsInfo"]; /** @description Snapshots shared by the logged-in user */ sharedByUser: components["schemas"]["SharedSnapshotsInfo"]; }; Snapshot: { /** * Format: uuid * @description Snapshot ID */ id: string; /** @description Snapshot name */ name: string; /** * Format: uuid * @description Instance that this snapshot is of */ instance: string; status: components["schemas"]["SnapshotStatus"]; /** @description UNIX Date that the snapshot was created */ date: number; fresh: boolean; /** @description Live snapshot (included state and memory) */ live: boolean; local: boolean; /** @description The device model */ model?: string | null; /** @description The sharing information of the snapshot */ sharing?: components["schemas"]["SnapshotSharing"]; }; PostShareSnapshotRequestPayload: { /** @enum {string} */ sharingType: "publicLink" | "domainRestrictedLink" | "passwordPublicLink" | "emailInvite."; /** @description Password for passwordPublicLink. */ password?: string | null; }; SnapshotPermissionsRequestPayload: { /** @description The email addresses or user ids of the members. */ members: Record; }; SnapshotCreationOptions: { /** @description Snapshot name */ name: string; }; Team: { /** * Format: uuid * @description Team ID */ id: string; /** @description Team Label */ label: string; /** @description Users */ users?: components["schemas"]["User"][] | null; }; /** @description /** */ User: { /** * Format: uuid * @description User ID */ id: string; /** @description User Label */ label: string; /** @description User Name */ name: string; /** @description User Email */ email: string; /** @description the flag that specifies whether user is Administrator or not */ administrator?: boolean | null; /** @description Flag to determine if user attributes are editable. */ canEditUserAttributes?: boolean | null; }; CreateTeam: { /** @description Team name */ name: string; }; TeamCreate: { /** * Format: uuid * @description ID of newly created team */ id?: string | null; }; AgreedAck: { /** * Format: date-time * @description Date agreed */ agreedToTerms?: string | null; }; PasswordResetBody: { /** @description Password reset token */ token: string; /** @description Password reset totpToken */ totpToken: string; /** @description new password */ "new-password": string; }; ResetLinkBody: { /** @description Email address to request password reset link for */ email: string; }; /** @description Touch point defined as x,y */ TouchPoint: Record; /** * Format: up to 10 * @description Finger Positions */ FingerPositions: Record; Features: { apps?: boolean | null; connect?: boolean | null; console?: boolean | null; coretrace?: boolean | null; deviceControl?: boolean | null; deviceDelete?: boolean | null; files?: boolean | null; frida?: boolean | null; images?: boolean | null; messaging?: boolean | null; netmon?: boolean | null; network?: boolean | null; portForwarding?: boolean | null; powerManagement?: boolean | null; profile?: boolean | null; sensors?: boolean | null; settings?: boolean | null; snapshots?: boolean | null; strace?: boolean | null; system?: boolean | null; }; WebPlayerCreateSessionRequest: { /** @description Project Identifier */ projectId: string; /** @description VM Instance Identifier */ instanceId: string; /** @description Number of seconds token remains valid */ expiresIn: number; /** @description The enabled UI features for this session */ features: components["schemas"]["Features"]; /** @description Optional string value supplied by client for tracking purposes */ clientId?: string | null; }; WebPlayerSession: { /** @description New Session Identifier */ identifier: string; /** @description Session Token */ token: string; /** @description Expiration in ISO-8601 format e.g. 2022-05-06T02:39:23.000Z */ expiration: number; }; /** @description Network Connection Offset Pagination Result */ NetworkConnectionOffsetPaginationResult: { /** @description Total number of items. */ total: number; /** @description The number of items returned in this result. */ count: number; /** @description The maximum number of items that could be returned for this result. */ limit: number; /** @description That starting item 0-indexed. */ offset: number; /** @description Array of network connections associated with this domain. */ results: components["schemas"]["NetworkConnection"][]; }; NetworkConnection: { /** @description UUIDv4 */ identifier: string; /** @description User specified name for this network connection. e.g. My Network Connection */ name: string; /** @description An object containing network connection configuration data. Will vary based on network provider type. */ config?: Record | null; /** @description One of the registered [network provider types](#get-/v1/network/providers) */ provider?: string | null; /** @description Created Date in ISO-8601 format e.g. 2022-05-06T02:39:23.000Z */ createdAt: string; /** @description Updated Date in ISO-8601 format e.g. 2022-05-06T02:39:23.000Z */ updatedAt: string; /** @description UUIDv4 of the user who created this record. */ createdBy: string; /** @description UUIDv4 of the user who last updated this record. */ updatedBy: string; }; CreateNetworkConnectionOptions: { /** @description UUIDv4 */ identifier: string; /** @description User specified name for this network connection. e.g. My Network Connection */ name: string; /** @description One of the registered [network provider types](#get-/v1/network/providers) */ provider: string; /** @description An object containing network connection configuration data. Will vary based on network provider type. See examples. */ config?: Record | null; }; /** @description Network Connection Provider Offset Pagination Result */ NetworkConnectionProviderOffsetPaginationResult: { /** @description Total number of items. */ total: number; /** @description The number of items returned in this result. */ count: number; /** @description The maximum number of items that could be returned for this result. */ limit: number; /** @description That starting item 0-indexed. */ offset: number; /** @description Array of network connection providers. */ results: components["schemas"]["NetworkConnectionProvider"][]; }; NetworkConnectionProvider: { /** @description Human friendly name for Network Connection Provider. */ name: string; /** @description Internal identifier for Network Connection Provider. */ type: string; }; Assessment: { /** Format: date-time */ createdAt?: string; /** Format: date-time */ updatedAt?: string; /** Format: uuid */ createdBy?: string; /** Format: uuid */ reportId?: string; bundle?: { /** Format: uuid */ id?: string; /** @example Camera */ name?: string; /** @example 1.2.0 */ version?: string; }; results?: { pass?: number; fail?: number; info?: number; error?: number; }; metadata?: { /** @example 6.4.0 */ corelliumVersion?: string; }; } & components["schemas"]["CreateAssessmentDto"] & components["schemas"]["AssessmentIdStatus"]; AssessmentIdStatus: { /** Format: uuid */ id?: string; } & components["schemas"]["UpdateAssessmentDto"]; CreateAssessmentDto: { /** Format: uuid */ instanceId: string; /** @example com.android.egg */ bundleId: string; /** Format: uuid */ wordlistId?: string; }; UpdateAssessmentDto: { /** @example testing */ status: string; }; TestAssessmentDto: { invert?: boolean; /** @example masvs-storage-2-android-8 */ grep?: string; }; }; responses: { /** @description Successful operation */ AssessmentResponse: { content: { "application/json": components["schemas"]["Assessment"]; }; }; /** @description Successful operation */ AssessmentIdStatusResponse: { content: { "application/json": components["schemas"]["AssessmentIdStatus"]; }; }; /** @description Successful operation */ "204SuccessNoContent": { content: never; }; /** @description Assessment not found */ "404NotFound": { content: never; }; /** @description Internal Server Error */ "500InternalServerError": { content: { "application/json": { error?: string; }; }; }; }; parameters: { /** @description ID of assessment */ assessmentId: string; /** @description ID of instance */ instanceId: string; /** @description Assessment report download format */ format: string; }; requestBodies: never; headers: never; pathItems: never; } interface operations { /** Log In */ v1AuthLogin: { /** @description Authorization data ( Credentials|ApiToken ) */ requestBody: { content: { "application/json": Record; }; }; responses: { /** @description User Authorization */ 200: { content: { "application/json": components["schemas"]["Token"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Get all configs */ v1GetConfig: { responses: { /** @description application/json */ 200: { content: { "application/json": components["schemas"]["ConfigResponse"]; }; }; }; }; /** Update an auth provider for a domain */ v1UpdateDomainAuthProvider: { parameters: { path: { /** @description Domain ID - uuid */ domainId: string; /** @description Provider ID - uuid */ providerId: string; }; }; /** @description Request Data */ requestBody: { content: { "application/json": components["schemas"]["DomainAuthProviderRequest"]; }; }; responses: { /** @description OK */ 200: { content: { "application/json": components["schemas"]["DomainAuthProviderResponse"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Delete an auth provider from a domain */ v1DeleteDomainAuthProvider: { parameters: { path: { /** @description Domain ID - uuid */ domainId: string; /** @description Provider ID - uuid */ providerId: string; }; }; responses: { /** @description OK */ 200: { content: { "application/json": Record; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Return all configured auth providers for a domain (including globally configured providers) */ v1GetDomainAuthProviders: { parameters: { path: { /** @description Domain ID - uuid */ domainId: string; }; }; responses: { /** @description OK */ 200: { content: { "application/json": Record; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Create a new auth provider for a domain */ v1CreateDomainAuthProvider: { parameters: { path: { /** @description Domain ID - uuid */ domainId: string; }; }; /** @description Request Data */ requestBody: { content: { "application/json": components["schemas"]["DomainAuthProviderRequest"]; }; }; responses: { /** @description OK */ 200: { content: { "application/json": components["schemas"]["DomainAuthProviderResponse"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Get all hypervisor hooks for Instance */ v1GetHooks: { parameters: { query?: { /** @description limit for pagination results, defaults to 20 */ limit?: number; /** @description offset for pagination results, defaults to 0 */ offset?: number; /** @description sort ASC or DESC, defaults to DESC */ sort?: "ASC" | "DESC"; }; path: { /** @description Instance ID - uuid */ instanceId: string; }; }; responses: { /** @description Hooks */ 200: { content: { "application/json": components["schemas"]["Hook"][]; }; }; /** @description No changes */ 304: { content: never; }; /** @description Bad Request */ 400: { content: { "application/json": components["schemas"]["UserError"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Create hypervisor hook for Instance */ v1CreateHook: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; /** @description application/json */ requestBody: { content: { "application/json": components["schemas"]["V1CreateHookParameters"]; }; }; responses: { /** @description Hook */ 201: { content: { "application/json": components["schemas"]["Hook"]; }; }; /** @description Bad Request */ 400: { content: { "application/json": components["schemas"]["UserError"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Get hypervisor hook by id */ v1GetHookById: { parameters: { path: { /** @description Hook Id */ hookId: string; }; }; responses: { /** @description Hook */ 200: { content: { "application/json": components["schemas"]["Hook"]; }; }; /** @description Bad Request */ 400: { content: { "application/json": components["schemas"]["UserError"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Update an existing hypervisor hook */ v1UpdateHook: { parameters: { path: { /** @description Hook ID */ hookId: string; }; }; /** @description application/json */ requestBody: { content: { "application/json": components["schemas"]["V1CreateHookParameters"]; }; }; responses: { /** @description Hook */ 200: { content: { "application/json": components["schemas"]["Hook"]; }; }; /** @description Bad Request */ 400: { content: { "application/json": components["schemas"]["UserError"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Delete an existing hypervisor hook */ v1DeleteHook: { parameters: { path: { /** @description Hook ID */ hookId: string; }; }; responses: { /** @description Accepted */ 200: { content: never; }; /** @description Bad Request */ 400: { content: { "application/json": components["schemas"]["UserError"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Get all Images Metadata */ v1GetImages: { parameters: { query?: { /** @description Optionally filter by project - uuid */ project?: string; }; }; responses: { /** @description application/json */ 200: { content: { "application/json": components["schemas"]["Image"][]; }; }; }; }; /** Create a new Image */ v1CreateImage: { /** @description Image data */ requestBody: { content: { "multipart/form-data": components["schemas"]["ImageCreationOptions"]; }; }; responses: { /** @description application/json */ 200: { content: { "application/json": components["schemas"]["Image"]; }; }; /** @description application/json */ 404: { content: { "application/json": components["schemas"]["ApiNotFoundError"]; }; }; }; }; /** Get Image Metadata */ v1GetImage: { parameters: { path: { /** @description Image ID - uuid */ imageId: string; }; }; responses: { /** @description application/json */ 200: { content: { "application/json": components["schemas"]["Image"]; }; }; /** @description application/json */ 404: { content: { "application/json": components["schemas"]["ApiNotFoundError"]; }; }; }; }; /** * Upload Image Data * @description If the active project has enough remaining quota, updates an Image with the contents of the request body. */ v1UploadImageData: { parameters: { path: { /** @description Image ID - uuid */ imageId: string; }; }; /** @description Uploaded Image */ requestBody: { content: { "binary": string; }; }; responses: { /** @description application/json */ 200: { content: { "application/json": components["schemas"]["Image"]; }; }; /** @description application/json */ 404: { content: { "application/json": components["schemas"]["ApiNotFoundError"]; }; }; /** @description Conflict */ 409: { content: { "application/json": components["schemas"]["ApiConflictError"]; }; }; }; }; /** Delete Image */ v1DeleteImage: { parameters: { path: { /** @description Image ID - uuid */ imageId: string; }; }; responses: { /** @description Success */ 204: { content: never; }; /** @description Not Found */ 404: { content: { "application/json": components["schemas"]["ApiNotFoundError"]; }; }; }; }; /** * API Status * @description Check if API is ready for queries */ v1Ready: { responses: { /** @description API is ready for queries */ 204: { content: never; }; /** @description API is not ready */ 503: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Get Instances */ v1GetInstances: { parameters: { query?: { /** @description Optionally filter by instance name */ name?: string; /** @description Attributes to include in instance return */ returnAttr?: string[]; }; }; responses: { /** @description Success */ 200: { content: { "application/json": components["schemas"]["Instance"][]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Create Instance */ v1CreateInstance: { /** @description The vm definition to create */ requestBody: { content: { "application/json": components["schemas"]["InstanceCreateOptions"]; }; }; responses: { /** @description Accepted */ 200: { content: { "application/json": components["schemas"]["InstanceReturn"]; }; }; /** @description Bad Request */ 400: { content: { "application/json": components["schemas"]["UserError"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Get Instance */ v1GetInstance: { parameters: { query?: { /** @description Attributes to include in instance return */ returnAttr?: string[]; }; path: { /** @description Instance ID */ instanceId: string; }; }; responses: { /** @description Success */ 200: { content: { "application/json": components["schemas"]["Instance"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; /** @description Not Found */ 404: { content: { "application/json": components["schemas"]["ApiNotFoundError"]; }; }; }; }; /** Remove Instance */ v1DeleteInstance: { parameters: { path: { /** @description Instance ID */ instanceId: string; }; }; responses: { /** @description Accepted */ 204: { content: never; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; /** @description Not Found */ 404: { content: { "application/json": components["schemas"]["ApiNotFoundError"]; }; }; }; }; /** Update Instance */ v1PatchInstance: { parameters: { path: { /** @description Instance ID */ instanceId: string; }; }; requestBody: { content: { "application/json": components["schemas"]["PatchInstanceOptions"]; }; }; responses: { /** @description application/json */ 200: { content: { "application/json": components["schemas"]["Instance"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; /** @description Not Found */ 404: { content: { "application/json": components["schemas"]["ApiNotFoundError"]; }; }; }; }; /** Check if App subsystem is ready */ v1AgentAppReady: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; responses: { /** @description App Agent State */ 200: { content: { "application/json": components["schemas"]["AgentAppReadyResponse"]; }; }; /** @description Agent Error */ 400: { content: { "application/json": components["schemas"]["AgentError"]; }; }; }; }; /** * Install App at path * @description Installs the app located at path which must be present on the VM filesystem */ v1AgentInstallApp: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; /** @description App parameters */ requestBody: { content: { "application/json": components["schemas"]["AgentInstallBody"]; }; }; responses: { /** @description Success */ 204: { content: never; }; /** @description Agent Error */ 400: { content: { "application/json": components["schemas"]["AgentError"]; }; }; }; }; /** List Apps */ v1AgentListApps: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; responses: { /** @description Installed Apps Info */ 200: { content: { "application/json": components["schemas"]["AgentAppsList"]; }; }; /** @description Agent Error */ 400: { content: { "application/json": components["schemas"]["AgentError"]; }; }; }; }; /** List Apps Status */ v1AgentListAppsStatus: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; responses: { /** @description Installed Apps Status Info */ 200: { content: { "application/json": components["schemas"]["AgentAppsList"]; }; }; /** @description Agent Error */ 400: { content: { "application/json": components["schemas"]["AgentError"]; }; }; }; }; /** List App Icons */ v1AgentListAppIcons: { parameters: { query: { /** @description App Bundle ID */ bundleID: string[]; }; path: { /** @description Instance ID - uuid */ instanceId: string; }; }; responses: { /** @description Installed Apps Icons */ 200: { content: { "application/json": components["schemas"]["AgentIcons"][]; }; }; /** @description Agent Error */ 400: { content: { "application/json": components["schemas"]["AgentError"]; }; }; }; }; /** Run an App */ v1AgentRunApp: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; /** @description App Bundle ID */ bundleId: string; }; }; responses: { /** @description Success */ 204: { content: { "application/json": Record; }; }; /** @description Agent Error */ 400: { content: { "application/json": components["schemas"]["AgentError"]; }; }; }; }; /** Kill an App */ v1AgentKillApp: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; /** @description App Bundle ID */ bundleId: string; }; }; responses: { /** @description Success */ 204: { content: { "application/json": Record; }; }; /** @description Agent Error */ 400: { content: { "application/json": components["schemas"]["AgentError"]; }; }; }; }; /** Uninstall an App */ v1AgentUninstallApp: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; /** @description App Bundle ID */ bundleId: string; }; }; responses: { /** @description Success */ 204: { content: { "application/json": Record; }; }; /** @description Agent Error */ 400: { content: { "application/json": components["schemas"]["AgentError"]; }; }; }; }; /** Download a File from VM */ v1AgentGetFile: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; /** @description File Path on VM */ filePath: string; }; }; responses: { /** @description File Contents */ 200: { content: { "application/octet-stream": components["schemas"]["File"]; }; }; /** @description Agent Error */ 400: { content: { "application/json": components["schemas"]["AgentError"]; }; }; }; }; /** Upload a file to VM */ v1AgentUploadFile: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; /** @description File Path on VM to write to */ filePath: string; }; }; /** @description Uploaded File Contents */ requestBody: { content: { "application/octet-stream": components["schemas"]["File"]; }; }; responses: { /** @description No content */ 204: { content: never; }; /** @description Agent Error */ 400: { content: { "application/json": components["schemas"]["AgentError"]; }; }; }; }; /** Delete a File on VM */ v1AgentDeleteFile: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; /** @description File Path on VM */ filePath: string; }; }; responses: { /** @description Success */ 204: { content: never; }; /** @description Agent Error */ 400: { content: { "application/json": components["schemas"]["AgentError"]; }; }; }; }; /** Change Attrs of a File on VM */ v1AgentSetFileAttributes: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; /** @description File Path on VM */ filePath: string; }; }; /** @description New attrs */ requestBody: { content: { "application/json": components["schemas"]["FileChanges"]; }; }; responses: { /** @description Success */ 204: { content: never; }; }; }; /** * Get the path for a new temp file * @description Returns a temporary random filename that is guranteed to be unique on the VMs * filesystem at the time of invocation of this method. */ v1AgentGetTempFilename: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; responses: { /** @description The temp file path */ 200: { content: { "application/json": string; }; }; /** @description Agent Error */ 400: { content: { "application/json": components["schemas"]["AgentError"]; }; }; }; }; /** List Profiles */ v1AgentListProfiles: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; responses: { /** @description Installed Profiles */ 200: { content: { "application/json": components["schemas"]["AgentProfilesReturn"]; }; }; /** @description Agent Error */ 400: { content: { "application/json": components["schemas"]["AgentError"]; }; }; }; }; /** Install a Profile to VM */ v1AgentInstallProfile: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; /** @description Profile to Install */ requestBody: { content: { "application/octet-stream": components["schemas"]["File"]; }; }; responses: { /** @description Success */ 204: { content: never; }; /** @description Agent Error */ 400: { content: { "application/json": components["schemas"]["AgentError"]; }; }; }; }; /** Uninstall a Profile from VM */ v1AgentUninstallProfile: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; /** @description Instance ID - uuid */ profileId: string; }; }; responses: { /** @description Success */ 204: { content: never; }; /** @description Agent Error */ 400: { content: { "application/json": components["schemas"]["AgentError"]; }; }; }; }; /** Set Hostname of instance */ v1AgentSystemSetHostname: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; /** @description New hostname */ requestBody: { content: { "application/json": components["schemas"]["AgentSystemSetHostnameBody"]; }; }; responses: { /** @description Accepted */ 204: { content: never; }; /** @description Agent Error */ 400: { content: { "application/json": components["schemas"]["AgentError"]; }; }; }; }; /** Instruct VM to halt */ v1AgentSystemShutdown: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; responses: { /** @description Accepted */ 204: { content: never; }; /** @description Agent Error */ 400: { content: { "application/json": components["schemas"]["AgentError"]; }; }; }; }; /** Get IP of eth0 (AOSP only) */ v1AgentSystemGetNetwork: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; responses: { /** @description IP Address of eth0 */ 200: { content: { "application/json": components["schemas"]["AgentValueReturn"]; }; }; /** @description Agent Error */ 400: { content: { "application/json": components["schemas"]["AgentError"]; }; }; }; }; /** Get System Property (AOSP only) */ v1AgentSystemGetProp: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; /** @description Parameters */ requestBody: { content: { "application/json": components["schemas"]["AgentSystemGetPropBody"]; }; }; responses: { /** @description Value of requested property */ 200: { content: { "application/json": components["schemas"]["AgentValueReturn"]; }; }; /** @description Agent Error */ 400: { content: { "application/json": components["schemas"]["AgentError"]; }; }; }; }; /** Install OpenGApps (AOSP only) */ v1AgentSystemInstallOpenGApps: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; /** @description Installation parameters */ requestBody: { content: { "application/json": Record; }; }; responses: { /** @description Accepted */ 204: { content: never; }; /** @description Agent Error */ 400: { content: { "application/json": components["schemas"]["AgentError"]; }; }; }; }; /** Get ADB Auth Setting (AOSP only) */ v1AgentSystemGetAdbAuth: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; responses: { /** @description Current ADB Auth setting */ 200: { content: { "application/json": components["schemas"]["AgentSystemAdbAuth"]; }; }; /** @description Agent Error */ 400: { content: { "application/json": components["schemas"]["AgentError"]; }; }; }; }; /** Set ADB Auth Setting (AOSP only) */ v1AgentSystemSetAdbAuth: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; /** @description Desired ADB Auth Setting */ requestBody: { content: { "application/json": components["schemas"]["AgentSystemAdbAuth"]; }; }; responses: { /** @description Accepted */ 204: { content: never; }; /** @description Agent Error */ 400: { content: { "application/json": components["schemas"]["AgentError"]; }; }; }; }; /** Lock Device (iOS Only) */ v1AgentSystemLock: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; responses: { /** @description Accepted */ 204: { content: never; }; /** @description Agent Error */ 400: { content: { "application/json": components["schemas"]["AgentError"]; }; }; }; }; /** Unlock Device (iOS Only) */ v1AgentSystemUnlock: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; responses: { /** @description Accepted */ 204: { content: never; }; /** @description Agent Error */ 400: { content: { "application/json": components["schemas"]["AgentError"]; }; }; }; }; /** Get console websocket URL */ v1GetInstanceConsole: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; responses: { /** @description OK */ 200: { content: { "application/json": components["schemas"]["InstanceConsoleEndpoint"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; /** @description Not Found */ 404: { content: { "application/json": components["schemas"]["ApiNotFoundError"]; }; }; }; }; /** Start an Instance */ v1StartInstance: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; /** @description Start options */ requestBody?: { content: { "application/json": components["schemas"]["InstanceStartOptions"]; }; }; responses: { /** @description Accepted */ 204: { content: never; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; /** @description Not Found */ 404: { content: { "application/json": components["schemas"]["ApiError"]; }; }; /** @description Conflict */ 409: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Stop an Instance */ v1StopInstance: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; /** @description Stop options */ requestBody?: { content: { "application/json": components["schemas"]["InstanceStopOptions"]; }; }; responses: { /** @description Accepted */ 204: { content: never; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; /** @description Not Found */ 404: { content: { "application/json": components["schemas"]["ApiError"]; }; }; /** @description Conflict */ 409: { content: { "application/json": components["schemas"]["UserError"]; }; }; }; }; /** Reboot an Instance */ v1RebootInstance: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; responses: { /** @description Accepted */ 204: { content: never; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; /** @description Not Found */ 404: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Pause an Instance */ v1PauseInstance: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; responses: { /** @description Accepted */ 204: { content: never; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; /** @description Not Found */ 404: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Unpause an Instance */ v1UnpauseInstance: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; responses: { /** @description Accepted */ 204: { content: never; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; /** @description Not Found */ 404: { content: { "application/json": components["schemas"]["UserError"]; }; }; }; }; /** Set state of Instance */ v1SetInstanceState: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; /** @description Desired State */ requestBody: { content: { "application/json": components["schemas"]["V1SetStateBody"]; }; }; responses: { /** @description Accepted */ 204: { content: never; }; /** @description Bad Request */ 400: { content: { "application/json": components["schemas"]["UserError"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; /** @description Not Found */ 404: { content: { "application/json": components["schemas"]["UserError"]; }; }; /** @description Conflict */ 409: { content: { "application/json": components["schemas"]["UserError"]; }; }; }; }; /** Get state of Instance */ v2GetInstanceState: { parameters: { query?: { /** @description The attributes to return. */ returnAttr?: Record; }; path: { /** @description Instance ID - uuid */ instanceId: string; }; }; responses: { /** @description Current Instance State */ 200: { content: { "application/json": components["schemas"]["InstanceState"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; /** @description Not Found */ 404: { content: { "application/json": components["schemas"]["UserError"]; }; }; }; }; /** Get Instance GPIOs */ v1GetInstanceGpios: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; responses: { /** @description Current GPIO State */ 200: { content: { "application/json": components["schemas"]["GpiosState"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; /** @description Not Found */ 404: { content: { "application/json": components["schemas"]["UserError"]; }; }; }; }; /** Set Instance GPIOs */ v1SetInstanceGpios: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; /** @description New GPIO state */ requestBody: { content: { "application/json": components["schemas"]["GpiosState"]; }; }; responses: { /** @description Current GPIOs State */ 200: { content: { "application/json": components["schemas"]["GpiosState"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; /** @description Not Found */ 404: { content: { "application/json": components["schemas"]["UserError"]; }; }; }; }; /** Get Instance Peripherals */ v1GetInstancePeripherals: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; responses: { /** @description Current Peripherals State */ 200: { content: { "application/json": components["schemas"]["PeripheralsData"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; /** @description Not Found */ 404: { content: { "application/json": components["schemas"]["UserError"]; }; }; }; }; /** Set Instance Peripherals */ v1SetInstancePeripherals: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; /** @description New peripherals state */ requestBody: { content: { "application/json": components["schemas"]["PeripheralsData"]; }; }; responses: { /** @description Current Peripherals State */ 200: { content: { "application/json": components["schemas"]["PeripheralsData"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; /** @description Not Found */ 404: { content: { "application/json": components["schemas"]["UserError"]; }; }; }; }; /** Restore backup */ v1RestoreBackup: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; /** @description Restore backup data */ requestBody?: { content: { "application/json": components["schemas"]["RestoreBackupData"]; }; }; responses: { /** @description No Content */ 204: { content: never; }; /** @description Bad Request */ 400: { content: { "application/json": components["schemas"]["UserError"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Get Instance Screenshot */ v1GetInstanceScreenshot: { parameters: { query?: { /** @description Screenshot scale 1:N */ scale?: number; }; path: { /** @description Instance ID - uuid */ instanceId: string; /** @description New peripherals state */ format: "png" | "jpeg"; }; }; responses: { /** @description Screenshot */ 200: { content: { "image/png": components["schemas"]["Screenshot"]; "image/jpeg": components["schemas"]["Screenshot"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; /** @description Not Found */ 404: { content: { "application/json": components["schemas"]["UserError"]; }; }; }; }; /** * Rotate device to specified orientation * @description Rotate device to orientation. Accepted orientations: * 1. Portrait * 2. Portrait vertically inverted (up-side-down) * 3. Landscape with top of the device to the left * 4. Landscape with top of the device to the right */ v1RotateInstance: { parameters: { path: { instanceId: string; }; }; requestBody: { content: { "application/json": components["schemas"]["RotateBody"]; }; }; responses: { /** @description Accepted */ 204: { content: never; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; /** @description Not Found */ 404: { content: { "application/json": components["schemas"]["ApiNotFoundError"]; }; }; }; }; /** * Provide Instance Input * @description Sends a touch or button event to the VM. * * - Buttons (or keys) to be held during the input are specified as an array of strings, each string must be either a single ascii character or one of the following keywords: * - VM Buttons: finger, homeButton, holdButton, volumeUp, volumeDown, ringerSwitch, backButton, overviewButton * - Keyboard Buttons: again, alt, alterase, apostrophe, back, backslash, backspace, bassboost, bookmarks, bsp, calc, camera, cancel, caps, capslock, chat, close, closecd, comma, compose, computer, config, connect, copy, ctrl, cut, cyclewindows, dashboard, del, delete, deletefile, dot, down, edit, eject, ejectclose, email, end, enter, equal, esc, escape, exit, f1, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f2, f20, f21, f22, f23, f24, f3, f4, f5, f6, f7, f8, f9, fastfwd, file, finance, find, forward, front, grave, hangeul, hanja, help, henkan, home, homepage, hp, hrgn, ins, insert, iso, k102, kp0, kp1, kp2, kp3, kp4, kp5, kp6, kp7, kp8, kp9, kpasterisk, kpcomma, kpdot, kpenter, kpequal, kpjpcomma, kpleftparen, kpminus, kpplus, kpplusminus, kprightparen, kpslash, ktkn, ktknhrgn, left, leftalt, leftbrace, leftctrl, leftmeta, leftshift, linefeed, macro, mail, menu, meta, minus, move, msdos, muhenkan, mute, new, next, numlock, open, pagedown, pageup, paste, pause, pausecd, pgdn, pgup, phone, play, playcd, playpause, power, previous, print, prog1, prog2, prog3, prog4, props, question, record, redo, refresh, return, rewind, right, rightalt, rightbrace, rightctrl, rightmeta, rightshift, ro, rotate, scale, screenlock, scrolldown, scrolllock, scrollup, search, semicolon, sendfile, setup, shift, shop, slash, sleep, sound, space, sport, stop, stopcd, suspend, sysrq, tab, undo, up, voldown, volup, wakeup, www, xfer, yen, zkhk */ v1PostInstanceInput: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; /** @description The input to send to the VM */ requestBody: { content: { "application/json": components["schemas"]["InstanceInput"][]; }; }; responses: { /** @description ETA of input completion in milliseconds */ 200: { content: { "application/json": components["schemas"]["InputResponse"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; /** @description Not Found */ 404: { content: { "application/json": components["schemas"]["UserError"]; }; }; }; }; /** Get Console Log */ v1GetInstanceConsoleLog: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; responses: { /** @description Current console log */ 200: { content: { "text/plain": string; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Get Panics */ v1GetInstancePanics: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; responses: { /** @description Array of panics */ 200: { content: { "application/json": Record[]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Clear Panics */ v1ClearInstancePanics: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; responses: { /** @description Accepted */ 204: { content: never; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Start playing media */ v1MediaPlay: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; /** @description Request Body */ requestBody: { content: { "application/json": components["schemas"]["MediaPlayBody"]; }; }; responses: { /** @description Success response */ 204: { content: never; }; /** @description Bad Request */ 400: { content: { "application/json": components["schemas"]["ValidationError"]; }; }; /** @description Not Found */ 404: { content: { "application/json": components["schemas"]["UserError"]; }; }; /** @description Conflict */ 409: { content: { "application/json": components["schemas"]["UserError"]; }; }; }; }; /** Stop playing media */ v1MediaStop: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; responses: { /** @description Success response */ 204: { content: never; }; /** @description Bad Request */ 400: { content: { "application/json": components["schemas"]["ValidationError"]; }; }; /** @description Not Found */ 404: { content: { "application/json": components["schemas"]["UserError"]; }; }; }; }; /** Clear CoreTrace logs */ v1ClearCoreTrace: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; responses: { /** @description Accepted */ 204: { content: never; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Start CoreTrace on an instance */ v1StartCoreTrace: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; responses: { /** @description No Content */ 204: { content: never; }; /** @description Bad Request */ 400: { content: { "application/json": components["schemas"]["UserError"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Stop CoreTrace on an instance. */ v1StopCoreTrace: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; responses: { /** @description No Content */ 204: { content: never; }; /** @description Bad Request */ 400: { content: { "application/json": components["schemas"]["UserError"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Get Running Threads (CoreTrace) */ v1ListThreads: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; responses: { /** @description Threads */ 200: { content: { "application/json": components["schemas"]["KernelTask"][]; }; }; /** @description Bad Request */ 400: { content: { "application/json": components["schemas"]["UserError"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Pre-authorize an btrace download */ v1BtracePreauthorize: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; responses: { /** @description Token */ 200: { content: { "application/json": Record; }; }; /** @description Bad Request */ 400: { content: { "application/json": components["schemas"]["UserError"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Get Kernel extension ranges */ v1Kcrange: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; responses: { /** @description Kcranges */ 200: { content: { "application/json": components["schemas"]["Kcrange"][]; }; }; /** @description Bad Request */ 400: { content: { "application/json": components["schemas"]["UserError"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Clear HyperTrace logs */ v1ClearHyperTrace: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; responses: { /** @description Accepted */ 204: { content: never; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Start HyperTrace on an instance */ v1StartHyperTrace: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; requestBody: { content: { "application/json": components["schemas"]["BtraceEnableOptions"]; }; }; responses: { /** @description No Content */ 204: { content: never; }; /** @description Bad Request */ 400: { content: { "application/json": components["schemas"]["UserError"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Stop HyperTrace on an instance. */ v1StopHyperTrace: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; responses: { /** @description No Content */ 204: { content: never; }; /** @description Bad Request */ 400: { content: { "application/json": components["schemas"]["UserError"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Execute Hooks on an instance */ v1ExecuteHyperTraceHooks: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; responses: { /** @description No Content */ 204: { content: never; }; /** @description Bad Request */ 400: { content: { "application/json": components["schemas"]["UserError"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Clear Hooks on an instance */ v1ClearHyperTraceHooks: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; responses: { /** @description No Content */ 204: { content: never; }; /** @description Bad Request */ 400: { content: { "application/json": components["schemas"]["UserError"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Start Network Monitor on an instance. */ v1StartNetworkMonitor: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; responses: { /** @description No Content */ 204: { content: never; }; /** @description Bad Request */ 400: { content: { "application/json": components["schemas"]["UserError"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Stop Network Monitor on an instance. */ v1StopNetworkMonitor: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; responses: { /** @description No Content */ 204: { content: never; }; /** @description Bad Request */ 400: { content: { "application/json": components["schemas"]["UserError"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Start Enhanced Network Monitor on an instance. */ v1StartNetdump: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; requestBody?: { content: { "application/json": components["schemas"]["NetdumpFilter"]; }; }; responses: { /** @description No Content */ 204: { content: never; }; /** @description Bad Request */ 400: { content: { "application/json": components["schemas"]["UserError"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Stop Enhanced Network Monitor on an instance. */ v1StopNetdump: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; responses: { /** @description No Content */ 204: { content: never; }; /** @description Bad Request */ 400: { content: { "application/json": components["schemas"]["UserError"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Enable an exposed port on an instance for device access. */ v1EnableExposePort: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; responses: { /** @description No Content */ 204: { content: never; }; /** @description Bad Request */ 400: { content: { "application/json": components["schemas"]["UserError"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Disable an exposed port on an instance for device access. */ v1DisableExposePort: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; responses: { /** @description No Content */ 204: { content: never; }; /** @description Bad Request */ 400: { content: { "application/json": components["schemas"]["UserError"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Recommended SSH Command for Quick Connect */ v2GetInstanceQuickConnectCommand: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; responses: { /** @description Quick Connect Command */ 200: { content: { "application/json": string; }; }; /** @description Bad Request */ 400: { content: { "application/json": components["schemas"]["UserError"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Upgrade iOS version */ v1UpgradeInstance: { parameters: { path: { instanceId: string; }; }; requestBody: { content: { "application/json": components["schemas"]["InstanceUpgradeBody"]; }; }; responses: { /** @description Accepted */ 202: { content: never; }; /** @description Bad Request */ 400: { content: { "application/json": components["schemas"]["UserError"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Get Instance Snapshots */ v1GetInstanceSnapshots: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; responses: { /** @description application/json */ 200: { content: { "application/json": components["schemas"]["Snapshot"][]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; /** @description Not Found */ 404: { content: { "application/json": components["schemas"]["UserError"]; }; }; }; }; /** Create Instance Snapshot */ v1CreateSnapshot: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; }; }; requestBody: { content: { "application/json": components["schemas"]["SnapshotCreationOptions"]; }; }; responses: { /** @description application/json */ 200: { content: { "application/json": components["schemas"]["Snapshot"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; /** @description Not Found */ 404: { content: { "application/json": components["schemas"]["UserError"]; }; }; }; }; /** Get Instance Snapshot */ v1GetInstanceSnapshot: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; /** @description Snapshot ID - uuid */ snapshotId: string; }; }; responses: { /** @description application/json */ 200: { content: { "application/json": components["schemas"]["Snapshot"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; /** @description Not Found */ 404: { content: { "application/json": components["schemas"]["UserError"]; }; }; }; }; /** Delete an Instance Snapshot */ v1DeleteInstanceSnapshot: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; /** @description Snapshot ID - uuid */ snapshotId: string; }; }; responses: { /** @description Accepted */ 204: { content: never; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; /** @description Not Found */ 404: { content: { "application/json": components["schemas"]["UserError"]; }; }; }; }; /** Rename an Instance Snapshot */ v1RenameInstanceSnapshot: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; /** @description Snapshot ID - uuid */ snapshotId: string; }; }; requestBody: { content: { "application/json": components["schemas"]["SnapshotCreationOptions"]; }; }; responses: { /** @description application/json */ 200: { content: { "application/json": components["schemas"]["Snapshot"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; /** @description Not Found */ 404: { content: { "application/json": components["schemas"]["UserError"]; }; }; }; }; /** Restore an Instance Snapshot */ v1RestoreInstanceSnapshot: { parameters: { path: { /** @description Instance ID - uuid */ instanceId: string; /** @description Snapshot ID - uuid */ snapshotId: string; }; }; responses: { /** @description Accepted */ 204: { content: never; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; /** @description Not Found */ 404: { content: { "application/json": components["schemas"]["UserError"]; }; }; }; }; /** Get all supported features for user */ v1GetSupportedFeatures: { responses: { /** @description application/json */ 200: { content: { "application/json": string[]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Get Supported Models */ v1GetModels: { responses: { /** @description Supported device configurations */ 200: { content: { "application/json": components["schemas"]["Model"][]; }; }; }; }; /** Get Software for Model */ v1GetModelSoftware: { parameters: { path: { /** @description Model to list available software for */ model: string; }; }; responses: { /** @description Supported software loads for this model */ 200: { content: { "application/json": components["schemas"]["Firmware"][]; }; }; }; }; /** Get Projects */ v1GetProjects: { parameters: { query?: { /** @description Filter by project name */ name?: string; /** @description Only include id of project in results */ ids_only?: boolean; }; }; responses: { /** @description Projects */ 200: { content: { "application/json": components["schemas"]["Project"][]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; /** @description No Projects Found */ 404: { content: { "application/json": components["schemas"]["UserError"]; }; }; }; }; /** Create a Project */ v1CreateProject: { /** @description Project */ requestBody: { content: { "application/json": components["schemas"]["Project"]; }; }; responses: { /** @description OK */ 200: { content: { "application/json": components["schemas"]["Project"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Get a Project */ v1GetProject: { parameters: { path: { /** @description Project ID - uuid */ projectId: string; }; }; responses: { /** @description OK */ 200: { content: { "application/json": components["schemas"]["Project"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Delete a Project */ v1DeleteProject: { parameters: { path: { /** @description Project ID - uuid */ projectId: string; }; }; responses: { /** @description OK */ 204: { content: never; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Update a Project */ v1UpdateProject: { parameters: { path: { /** @description Project ID - uuid */ projectId: string; }; }; /** @description Updated Project Settings */ requestBody: { content: { "application/json": components["schemas"]["Project"]; }; }; responses: { /** @description OK */ 200: { content: { "application/json": components["schemas"]["Project"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Get Instances in Project */ v1GetProjectInstances: { parameters: { query?: { /** @description Filter by project name */ name?: string; /** @description Attributes to include in instance return */ returnAttr?: string[]; }; path: { /** @description Project ID - uuid */ projectId: string; }; }; responses: { /** @description Success */ 200: { content: { "application/json": components["schemas"]["Instance"][]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Change Project Settings */ v1UpdateProjectSettings: { parameters: { path: { /** @description Project ID - uuid */ projectId: string; }; }; /** @description New settings */ requestBody: { content: { "application/json": components["schemas"]["ProjectSettings"]; }; }; responses: { /** @description Success */ 204: { content: never; }; /** @description Validation Error */ 400: { content: { "application/json": components["schemas"]["ApiError"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** * Get Project VPN Configuration * @description A Project VPN allows connection _into_ virtual devices in the project (e.g., connecting a researcher's computer as a VPN client to a virtual device within the project). If a Project VPN has been defined, this will return the configuration. */ v1GetProjectVpnConfig: { parameters: { path: { /** @description Project ID - uuid */ projectId: string; /** @description VPN Config format */ format: "ovpn"; }; }; responses: { /** @description OpenVPN Configuration */ 200: { content: { "application/x-openvpn-profile": string; }; }; /** @description User Error */ 400: { content: { "application/json": components["schemas"]["ApiError"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Get Project Authorized Keys */ v1GetProjectKeys: { parameters: { path: { /** @description Project ID - uuid */ projectId: string; }; }; responses: { /** @description Authorized Keys */ 200: { content: { "application/json": components["schemas"]["ProjectKey"][]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Add Project Authorized Key */ v1AddProjectKey: { parameters: { path: { /** @description Project ID - uuid */ projectId: string; }; }; /** @description Key to add */ requestBody: { content: { "application/json": components["schemas"]["ProjectKey"]; }; }; responses: { /** @description Authorized Key */ 200: { content: { "application/json": components["schemas"]["ProjectKey"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Delete Project Authorized Key */ v1RemoveProjectKey: { parameters: { path: { /** @description Project ID - uuid */ projectId: string; /** @description Key ID - uuid */ keyId: string; }; }; responses: { /** @description Deleted */ 204: { content: never; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; /** @description Not found */ 404: { content: { "application/json": components["schemas"]["ApiNotFoundError"]; }; }; }; }; /** * Get all roles * @description This endpoint is available for Enterprise accounts only */ v1Roles: { responses: { /** @description Roles */ 200: { content: { "application/json": components["schemas"]["Role"][]; }; }; /** @description Bad Request */ 400: { content: { "application/json": components["schemas"]["UserError"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** * Add user role to project * @description This endpoint is available for Enterprise accounts only */ v1AddUserRoleToProject: { parameters: { path: { /** @description Project ID - uuid */ projectId: string; /** @description User ID - uuid */ userId: string; /** @description Role ID - uuid */ roleId: string; }; }; responses: { /** @description Success */ 200: { content: never; }; /** @description Bad Request */ 400: { content: { "application/json": components["schemas"]["UserError"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** * Remove user role from project * @description This endpoint is available for Enterprise accounts only */ v1RemoveUserRoleFromProject: { parameters: { path: { /** @description Project ID - uuid */ projectId: string; /** @description User ID - uuid */ userId: string; /** @description Role ID - uuid */ roleId: string; }; }; responses: { /** @description Success */ 200: { content: never; }; /** @description Bad Request */ 400: { content: { "application/json": components["schemas"]["UserError"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** * Add team role to project * @description This endpoint is available for Enterprise accounts only */ v1AddTeamRoleToProject: { parameters: { path: { /** @description Project ID - uuid */ projectId: string; /** @description Team ID - uuid */ teamId: string; /** @description Role ID - uuid */ roleId: string; }; }; responses: { /** @description Success */ 200: { content: never; }; /** @description Bad Request */ 400: { content: { "application/json": components["schemas"]["UserError"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** * Remove team role from project * @description This endpoint is available for Enterprise accounts only */ v1RemoveTeamRoleFromProject: { parameters: { path: { /** @description Project ID - uuid */ projectId: string; /** @description Team ID - uuid */ teamId: string; /** @description Role ID - uuid */ roleId: string; }; }; responses: { /** @description Success */ 200: { content: never; }; /** @description Bad Request */ 400: { content: { "application/json": components["schemas"]["UserError"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** * Share snapshot * @description Share a snapshot */ v1ShareSnapshot: { parameters: { path: { /** @description Snapshot ID - uuid */ snapshotId: string; }; }; requestBody: { content: { "application/json": components["schemas"]["PostShareSnapshotRequestPayload"]; }; }; responses: { /** @description application/json */ 200: { content: { "application/json": components["schemas"]["Snapshot"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; /** @description Not Found */ 404: { content: { "application/json": components["schemas"]["UserError"]; }; }; }; }; /** * Accept a snapshot shared with you * @description Accept a snapshot shared with you */ v1AcceptSharedSnapshot: { requestBody: { content: { "application/json": components["schemas"]["PostShareSnapshotRequestPayload"]; }; }; responses: { /** @description application/json */ 200: { content: { "application/json": components["schemas"]["Snapshot"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; /** @description Not Found */ 404: { content: { "application/json": components["schemas"]["UserError"]; }; }; }; }; /** * Set member list * @description Sets the list of members who have access to the snapshot */ v1SetSnapshotPermissions: { parameters: { path: { /** @description Snapshot ID - uuid */ snapshotId: string; }; }; requestBody: { content: { "application/json": components["schemas"]["SnapshotPermissionsRequestPayload"]; }; }; responses: { /** @description application/json */ 200: { content: { "application/json": components["schemas"]["Snapshot"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; /** @description Not Found */ 404: { content: { "application/json": components["schemas"]["UserError"]; }; }; }; }; /** * Delete member(s) * @description Deletes one or more members from the list of members who have access to the snapshot */ v1DeleteSnapshotPermissions: { parameters: { path: { /** @description Snapshot ID - uuid */ snapshotId: string; }; }; requestBody: { content: { "application/json": components["schemas"]["SnapshotPermissionsRequestPayload"]; }; }; responses: { /** @description application/json */ 200: { content: { "application/json": components["schemas"]["Snapshot"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; /** @description Not Found */ 404: { content: { "application/json": components["schemas"]["UserError"]; }; }; }; }; /** * Fetch shared snapshots * @description Fetch snapshots shared with and shared by the requesting user */ v1GetSharedSnapshots: { responses: { /** @description application/json */ 200: { content: { "application/json": components["schemas"]["UserSnapshots"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; /** @description Not Found */ 404: { content: { "application/json": components["schemas"]["UserError"]; }; }; }; }; /** Get Snapshot */ v1GetSnapshot: { parameters: { path: { /** @description Snapshot ID - uuid */ snapshotId: string; }; }; responses: { /** @description application/json */ 200: { content: { "application/json": components["schemas"]["Snapshot"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; /** @description Not Found */ 404: { content: { "application/json": components["schemas"]["UserError"]; }; }; }; }; /** Delete a Snapshot */ v1DeleteSnapshot: { parameters: { path: { /** @description Snapshot ID - uuid */ snapshotId: string; }; }; responses: { /** @description Accepted */ 204: { content: never; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; /** @description Not Found */ 404: { content: { "application/json": components["schemas"]["UserError"]; }; }; }; }; /** Rename a Snapshot */ v1SnapshotRename: { parameters: { path: { /** @description Snapshot ID - uuid */ snapshotId: string; }; }; requestBody: { content: { "application/json": components["schemas"]["SnapshotCreationOptions"]; }; }; responses: { /** @description application/json */ 200: { content: { "application/json": components["schemas"]["Snapshot"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; /** @description Not Found */ 404: { content: { "application/json": components["schemas"]["UserError"]; }; }; }; }; /** * Get teams * @description This endpoint is available for Enterprise accounts only */ v1Teams: { responses: { /** @description Teams */ 200: { content: { "application/json": components["schemas"]["Team"][]; }; }; /** @description Bad Request */ 400: { content: { "application/json": components["schemas"]["UserError"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** * Create team * @description This endpoint is available for Enterprise accounts only */ v1TeamCreate: { requestBody: { content: { "application/json": components["schemas"]["CreateTeam"]; }; }; responses: { /** @description User */ 200: { content: { "application/json": components["schemas"]["TeamCreate"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** * Delete team * @description This endpoint is available for Enterprise accounts only */ v1TeamDelete: { parameters: { path: { /** @description Team ID - uuid */ teamId: string; }; }; responses: { /** @description Success */ 204: { content: never; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; /** @description Internal Server Error */ 500: { content: { "application/json": components["schemas"]["ApiInternalConsistencyError"]; }; }; }; }; /** * Update team * @description This endpoint is available for Enterprise accounts only */ v1TeamChange: { parameters: { path: { /** @description Team ID - uuid */ teamId: string; }; }; requestBody: { content: { "application/json": components["schemas"]["CreateTeam"]; }; }; responses: { /** @description Success */ 204: { content: never; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; /** @description Not Found */ 404: { content: { "application/json": components["schemas"]["ApiNotFoundError"]; }; }; }; }; /** * Add user to team * @description This endpoint is available for Enterprise accounts only */ v1AddUserToTeam: { parameters: { path: { /** @description Team ID - uuid */ teamId: string; /** @description User ID - uuid */ userId: string; }; }; responses: { /** @description Success */ 204: { content: never; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; /** @description Internal Server Error */ 500: { content: { "application/json": components["schemas"]["ApiInternalConsistencyError"]; }; }; }; }; /** * Remove user from team * @description This endpoint is available for Enterprise accounts only */ v1RemoveUserFromTeam: { parameters: { path: { /** @description Team ID - uuid */ teamId: string; /** @description User ID - uuid */ userId: string; }; }; responses: { /** @description Success */ 204: { content: never; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; /** @description Internal Server Error */ 500: { content: { "application/json": components["schemas"]["ApiInternalConsistencyError"]; }; }; }; }; /** Create User */ v1CreateUser: { /** @description User data */ requestBody: { content: { "application/json": Record; }; }; responses: { /** @description User */ 200: { content: { "application/json": Record; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Consent to the current terms and conditions */ v1UserAgreeTerms: { responses: { /** @description application/json */ 200: { content: { "application/json": components["schemas"]["AgreedAck"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Delete User */ v1DeleteUser: { parameters: { path: { /** @description userId - uuid */ userId: string; }; }; responses: { /** @description User */ 200: { content: { "application/json": Record; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Update User */ v1UpdateUser: { parameters: { path: { /** @description userId - uuid */ userId: string; }; }; /** @description User data */ requestBody: { content: { "application/json": Record; }; }; responses: { /** @description User */ 200: { content: { "application/json": Record; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Log In */ v1UsersLogin: { /** @description Authorization data */ requestBody: { content: { "application/json": components["schemas"]["Credentials"]; }; }; responses: { /** @description User Authorization */ 200: { content: { "application/json": components["schemas"]["Token"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Reset User Password */ v1ResetUserPassword: { /** @description application/json */ requestBody: { content: { "application/json": components["schemas"]["PasswordResetBody"]; }; }; responses: { /** @description Accepted */ 204: { content: never; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Send Password Reset Link */ v1SendUserResetLink: { /** @description application/json */ requestBody: { content: { "application/json": components["schemas"]["ResetLinkBody"]; }; }; responses: { /** @description Accepted */ 204: { content: never; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Send Password Reset Link Info */ v1GetResetLinkInfo: { parameters: { query: { /** @description Reset token */ token: string; }; }; responses: { /** @description Reset Link Info */ 200: { content: { "application/json": Record; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** List all Webplayer sessions */ v1WebPlayerListSessions: { responses: { /** @description Success */ 200: { content: { "application/json": components["schemas"]["WebPlayerSession"][]; }; }; /** @description Bad Request */ 400: { content: { "application/json": components["schemas"]["UserError"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Create a new Webplayer Session */ v1WebPlayerCreateSession: { /** @description Request Data */ requestBody: { content: { "application/json": components["schemas"]["WebPlayerCreateSessionRequest"]; }; }; responses: { /** @description Success */ 200: { content: { "application/json": components["schemas"]["WebPlayerSession"]; }; }; /** @description Bad Request */ 400: { content: { "application/json": components["schemas"]["UserError"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Retrieve Webplayer Session Information */ v1WebPlayerSessionInfo: { parameters: { path: { /** @description Webplayer Session identifier */ sessionId: string; }; }; responses: { /** @description Success */ 200: { content: { "application/json": components["schemas"]["WebPlayerSession"]; }; }; /** @description Bad Request */ 400: { content: { "application/json": components["schemas"]["UserError"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; /** @description Not Found */ 404: { content: { "application/json": components["schemas"]["UserError"]; }; }; }; }; /** Tear down a Webplayer Session */ v1WebPlayerDestroySession: { parameters: { path: { /** @description Webplayer Session identifier */ sessionId: string; }; }; responses: { /** @description Bad Request */ 400: { content: { "application/json": components["schemas"]["UserError"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Retrieve the list of allowed domains for all Webplayer sessions */ v1WebPlayerAllowedDomains: { responses: { /** @description Success */ 200: { content: { "application/json": components["schemas"]["WebPlayerSession"]; }; }; /** @description Bad Request */ 400: { content: { "application/json": components["schemas"]["UserError"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** * List available network connections * @description You must have the domain administrator or project administrator role to list network connections. */ v1ListNetworkConnections: { responses: { /** @description Success */ 200: { content: { "application/json": components["schemas"]["NetworkConnectionOffsetPaginationResult"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** * Create a new Network Connection * @description You must have the domain administrator role to create a network connection. */ v1CreateNetworkConnection: { /** @description Network Connection Options */ requestBody: { content: { "application/json": components["schemas"]["CreateNetworkConnectionOptions"]; }; }; responses: { }; }; /** * Update Network Connection * @description You must have the domain administrator role to update a network connection. */ v1UpdateNetworkConnection: { parameters: { path: { /** @description Network Connection Identifier - uuid */ id: string; }; }; /** @description Network Connection Options */ requestBody: { content: { "application/json": components["schemas"]["UpdateNetworkConnectionOptions"]; }; }; responses: { }; }; /** * Delete an existing Network Connection * @description You must have the domain administrator role to delete a network connection. */ v1DeleteNetworkConnection: { parameters: { path: { /** @description Network Connection Identifier - uuid */ id: string; }; }; responses: { /** @description Success */ 204: { content: never; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** * Update Network Connection (partial) * @description Only updates the specified attributes. You must have the domain administrator role to update a network connection. */ v1PartialUpdateNetworkConnection: { parameters: { path: { /** @description Network Connection Identifier - uuid */ id: string; }; }; /** @description Network Connection Options */ requestBody: { content: { "application/json": components["schemas"]["UpdateNetworkConnectionOptions"]; }; }; responses: { }; }; /** * List available network providers * @description Provides a list of registered network providers to be used when [creating network connections](#post-/v1/network/connections). You * must have the domain administrator role to list network providers. */ v1ListNetworkProviders: { responses: { /** @description Success */ 200: { content: { "application/json": components["schemas"]["NetworkConnectionProviderOffsetPaginationResult"]; }; }; /** @description Forbidden */ 403: { content: { "application/json": components["schemas"]["ApiError"]; }; }; }; }; /** Get assessments by instanceId */ getAssessmentsByInstanceId: { parameters: { path: { instanceId: components["parameters"]["instanceId"]; }; }; responses: { /** @description Returns array of assessments */ 200: { content: { "application/json": components["schemas"]["Assessment"][]; }; }; 500: components["responses"]["500InternalServerError"]; }; }; /** Create assessment */ createAssessment: { parameters: { path: { instanceId: components["parameters"]["instanceId"]; }; }; /** @description Create a new assessment */ requestBody: { content: { "application/json": components["schemas"]["CreateAssessmentDto"]; }; }; responses: { 200: components["responses"]["AssessmentIdStatusResponse"]; /** @description Invalid body */ 400: { content: never; }; 500: components["responses"]["500InternalServerError"]; }; }; /** Get assessment by ID */ getAssessmentById: { parameters: { path: { instanceId: components["parameters"]["instanceId"]; assessmentId: components["parameters"]["assessmentId"]; }; }; responses: { 200: components["responses"]["AssessmentResponse"]; 404: components["responses"]["404NotFound"]; 500: components["responses"]["500InternalServerError"]; }; }; /** Delete assessment */ deleteAssessment: { parameters: { path: { instanceId: components["parameters"]["instanceId"]; assessmentId: components["parameters"]["assessmentId"]; }; }; responses: { 204: components["responses"]["204SuccessNoContent"]; 404: components["responses"]["404NotFound"]; 500: components["responses"]["500InternalServerError"]; }; }; /** Update assessment state and begin device monitoring */ startMonitoring: { parameters: { path: { instanceId: components["parameters"]["instanceId"]; assessmentId: components["parameters"]["assessmentId"]; }; }; responses: { 204: components["responses"]["204SuccessNoContent"]; 404: components["responses"]["404NotFound"]; 500: components["responses"]["500InternalServerError"]; }; }; /** Update assessment state and stop device monitoring */ stopMonitoring: { parameters: { path: { instanceId: components["parameters"]["instanceId"]; assessmentId: components["parameters"]["assessmentId"]; }; }; responses: { 204: components["responses"]["204SuccessNoContent"]; 404: components["responses"]["404NotFound"]; 500: components["responses"]["500InternalServerError"]; }; }; /** Update assessment state and execute MATRIX tests */ runTests: { parameters: { path: { instanceId: components["parameters"]["instanceId"]; assessmentId: components["parameters"]["assessmentId"]; }; }; /** @description Execute MATRIX tests */ requestBody?: { content: { "application/json": components["schemas"]["TestAssessmentDto"]; }; }; responses: { 200: components["responses"]["AssessmentIdStatusResponse"]; /** @description Assessment status invalid */ 400: { content: never; }; 404: components["responses"]["404NotFound"]; 500: components["responses"]["500InternalServerError"]; }; }; /** Download report */ downloadReport: { parameters: { query: { format: components["parameters"]["format"]; }; path: { instanceId: components["parameters"]["instanceId"]; assessmentId: components["parameters"]["assessmentId"]; }; }; responses: { /** @description Returns the HTML file of the report */ 200: { content: { "text/html": string; "application/json": string; }; }; /** @description Assessment status invalid */ 400: { content: never; }; 404: components["responses"]["404NotFound"]; 500: components["responses"]["500InternalServerError"]; }; }; } declare const createAppEndpoints: (api: ReturnType>, instanceId: string) => { /** * List all apps installed on the device. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').app.list(); */ list: () => Promise<{ apps?: components["schemas"]["AgentApp"][] | null; frontmost?: string | null; }>; /** * Run an app on the device. * @param bundleId The bundle ID of the app to run e.g. `com.corellium.cafe` * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').app.run('com.corellium.cafe'); */ run: (bundleId: paths["/v1/instances/{instanceId}/agent/v1/app/apps/{bundleId}/run"]["post"]["parameters"]["path"]["bundleId"]) => Promise>; /** * Install an app on the device. * @param body The request body. * @param body.path The path to the app to install. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').app.install({ path }); */ install: (body: paths["/v1/instances/{instanceId}/agent/v1/app/install"]["post"]["requestBody"]["content"]["application/json"]) => Promise; /** * Uninstall an app from the device. * @param bundleId The bundle ID of the app to uninstall e.g. `com.corellium.cafe` * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').app.uninstall('com.corellium.cafe'); */ uninstall: (bundleId: paths["/v1/instances/{instanceId}/agent/v1/app/apps/{bundleId}/uninstall"]["post"]["parameters"]["path"]["bundleId"]) => Promise>; /** * Get the status of the app. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').app.statuses(); */ statuses: () => Promise<{ apps?: components["schemas"]["AgentApp"][] | null; frontmost?: string | null; }>; /** * Get the icon of the app. * @param bundleIds The bundle IDs of the apps to get the icons for. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').app.icons(['com.corellium.cafe', 'com.apple.mobilesafari']); */ icons: (bundleIds: paths["/v1/instances/{instanceId}/agent/v1/app/icons"]["get"]["parameters"]["query"]["bundleID"]) => Promise<{ icon?: string | null; }[]>; /** * Kill an app on the device. * @param bundleId The bundle ID of the app to kill e.g. `com.corellium.cafe` * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').app.kill('com.corellium.cafe'); */ kill: (bundleId: paths["/v1/instances/{instanceId}/agent/v1/app/apps/{bundleId}/kill"]["post"]["parameters"]["path"]["bundleId"]) => Promise>; openGApps: { /** * Install OpenGApps on the device. * @param body The request body. * @param body.url The URL to the OpenGApps package e.g. `http://downloads.sourceforge.net/project/opengapps/arm64/20220119/open_gapps-arm64-11.0-pico-20220119.zip?r=&ts=1653516572&use_mirror=gigenet` * @param body.hash The hash of the OpenGApps package e.g. `58398bf7628f38ef07eaeb3abe26f3ebf0474f4d5ecdac0852bd5de3c15cc828` * @param body.fingerprint The fingerprint of the OpenGApps package e.g. `google/flame/flame:11/RP1A.200720.009/6720564:user/release-keys__2020-09-05` * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').app.openGApps.install({ url, hash, fingerprint }); */ install: (body: { url: string; hash: string; fingerprint: string; }) => Promise; }; }; declare const createAuthEndpoints: (api: ReturnType>) => { /** * Change the password of the user. * @param body The request body. * @param body.userId The user ID. * @param body.oldPassword The old password. * @param body.newPassword The new password. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.auth.changePassword({ userId, oldPassword, newPassword }); */ changePassword: (body: { userId: paths["/v1/users/change-password"]["post"]["requestBody"]["content"]["application/json"]["user"]; oldPassword: paths["/v1/users/change-password"]["post"]["requestBody"]["content"]["application/json"]["old-password"]; newPassword: paths["/v1/users/change-password"]["post"]["requestBody"]["content"]["application/json"]["new-password"]; }) => Promise; /** * Reset the password of the user. * @param body The request body. * @param body.token The reset password token. * @param body.totpToken The TOTP token. * @param body.newPassword The new password. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.auth.resetPassword({ token, totpToken, newPassword }); */ resetPassword: (body: { token: paths["/v1/users/reset-password"]["post"]["requestBody"]["content"]["application/json"]["token"]; totpToken: paths["/v1/users/reset-password"]["post"]["requestBody"]["content"]["application/json"]["totpToken"]; newPassword: paths["/v1/users/reset-password"]["post"]["requestBody"]["content"]["application/json"]["new-password"]; }) => Promise; /** * Send a reset password email to the user. * @param body The request body. * @param body.email The email address of the user. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.auth.sendResetPasswordEmail({ email }); */ sendResetPasswordEmail: (body: paths["/v1/users/send-reset-link"]["post"]["requestBody"]["content"]["application/json"]) => Promise; /** * Agree to the terms of service. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.auth.consent(); */ consent: () => Promise<{ agreedToTerms?: string | null; }>; }; declare const createAuthProviderEndpoints: (api: ReturnType>) => { /** * Update an authentication provider. * @param body The request body. * @param body.providerType The provider type. * @param body.enabled Whether the provider is enabled. * @param body.label The provider label. * @param body.config The provider configuration. * @param body.config.clientId The client ID. * @param body.config.clientSecret The client secret. * @param body.config.discoveryUrl The discovery URL. * @param body.config.invitedOnly Whether the provider is invited only. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.authProvider.update({ providerType, enabled, label, config }); */ update: (body: paths["/v1/domain/{domainId}/auth/{providerId}"]["put"]["requestBody"]["content"]["application/json"]) => Promise<{ identifier: string; id?: string | null; providerType: string; provider?: string | null; label: string; name?: string | null; authorizationUrl?: string | null; default: boolean; enabled: boolean; config?: components["schemas"]["OpenIDConfig"]; createdBy?: string | null; createdAt: string; updatedAt: string; }>; /** * Delete an authentication provider. * @param domainId The domain ID. * @param providerId The provider ID. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.authProvider.delete(domainId, providerId); */ delete: (domainId: paths["/v1/domain/{domainId}/auth/{providerId}"]["delete"]["parameters"]["path"]["domainId"], providerId: paths["/v1/domain/{domainId}/auth/{providerId}"]["delete"]["parameters"]["path"]["providerId"]) => Promise>; /** * List authentication providers. * @param domainId The domain ID. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.authProvider.get(domainId); */ list: (domainId: paths["/v1/domain/{domainId}/auth"]["get"]["parameters"]["path"]["domainId"]) => Promise>; /** * Create an authentication provider. * @param body The request body. * @param body.providerType The provider type. * @param body.enabled Whether the provider is enabled. * @param body.label The provider label. * @param body.config The provider configuration. * @param body.config.clientId The client ID. * @param body.config.clientSecret The client secret. * @param body.config.discoveryUrl The discovery URL. * @param body.config.invitedOnly Whether the provider is invited only. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.authProvider.create({ providerType, enabled, label, config }); */ create: (body: paths["/v1/domain/{domainId}/auth"]["post"]["requestBody"]["content"]["application/json"]) => Promise<{ identifier: string; id?: string | null; providerType: string; provider?: string | null; label: string; name?: string | null; authorizationUrl?: string | null; default: boolean; enabled: boolean; config?: components["schemas"]["OpenIDConfig"]; createdBy?: string | null; createdAt: string; updatedAt: string; }>; }; declare const createConnectEndpoints: (api: ReturnType>, instanceId: string, baseUrl: string) => { quickConnect: { /** * Get the quick connect command. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').connect.quickConnect.get(); */ get: () => Promise; }; eth0IP: { /** * Get the IP address of the eth0 interface. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').connect.eth0IP.get(); */ get: () => Promise<{ value?: string | null; }>; }; adbAuthSetting: { /** * Get the ADB authentication setting. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').connect.adbAuthSetting.get(); */ get: () => Promise<{ enabled?: boolean | null; }>; /** * Set the ADB authentication setting. * @param body The request body. * @param body.enabled Whether ADB authentication is enabled. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').connect.adbAuthSetting.set({ enabled }); */ set: (body: paths["/v1/instances/{instanceId}/agent/v1/system/adbauth"]["put"]["requestBody"]["content"]["application/json"]) => Promise; }; wifi: { connect: () => Promise; disconnect: () => Promise; }; }; declare const createConsoleEndpoints: (api: ReturnType>, instanceId: string) => { /** * Get the console output of the device. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').console.get(); */ get: () => Promise<{ url?: string | null; }>; }; declare const createCoreTraceEndpoints: (api: ReturnType>, instanceId: string) => { /** * Start CoreTrace on the device. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').coretrace.start(); */ start: () => Promise; /** * Stop CoreTrace on the device. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').coretrace.stop(); */ stop: () => Promise; /** * Get running threads of CoreTrace on the device. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').coretrace.get(); */ threads: () => Promise<{ kernelId?: string | null; name?: string | null; pid?: number | null; threads?: components["schemas"]["KernelThread"][] | null; }[]>; /** * Clear CoreTrace logs on the device. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').coretrace.log(); */ clear: () => Promise; }; declare const createCustomNetworkEndpoints: (api: ReturnType>) => { /** * List all custom networks. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.customNetwork.list(); */ list: () => Promise<{ total: number; count: number; limit: number; offset: number; results: components["schemas"]["NetworkConnection"][]; }>; /** * Create a custom network by ID. * @param body The custom network OpenVPN confguration. * @param body.name The name of the custom network. * @param body.config The OpenVPN configuration. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.customNetwork.get('123'); */ create: (body: paths["/v1/network/connections"]["post"]["requestBody"]["content"]["application/json"]) => Promise; /** * Update a custom network. * @param customNetworkId The custom network ID. * @param body The custom network OpenVPN confguration. * @param body.name The name of the custom network. * @param body.config The OpenVPN configuration. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.customNetwork.update('123', { name, config }); */ update: (customNetworkId: paths["/v1/network/connections/{id}"]["patch"]["parameters"]["path"]["id"], body: { name?: string; config?: string; }) => Promise; /** * Delete a custom network. * @param customNetworkId The custom network ID. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.customNetwork.delete('123'); */ delete: (customNetworkId: paths["/v1/network/connections/{id}"]["delete"]["parameters"]["path"]["id"]) => Promise; providers: { /** * List all custom network providers. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.customNetwork.providers.list(); */ list: () => Promise<{ total: number; count: number; limit: number; offset: number; results: components["schemas"]["NetworkConnectionProvider"][]; }>; }; }; type PatchedInstanceInputProperties = ({ text: string; keyDuration?: number; } | { start: [number, number][]; end: [number, number][]; bezierPoints?: number[][][]; startButtons: components['schemas']['Button'][]; endButtons?: components['schemas']['Button'][]; normalized?: boolean; wait?: number; duration: number; } | { position: [number, number][]; buttons?: components['schemas']['Button'][]; normalized?: boolean; wait?: number; })[]; declare const createDeviceEndpoints: (api: ReturnType>, instanceId: string, baseUrl: string) => { /** * Delete a device. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').delete(); */ delete: () => Promise; /** * Get a device. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').get(); */ get: () => Promise<{ id?: string | null; name?: string | null; key?: string | null; flavor?: string | null; type?: string | null; project?: string | null; state?: components["schemas"]["InstanceState"]; stateChanged?: string | null; startedAt?: string | null; userTask?: string | null; taskState?: string | null; error?: string | null; bootOptions?: components["schemas"]["InstanceBootOptions"]; serviceIp?: string | null; wifiIp?: string | null; secondaryIp?: string | null; services?: components["schemas"]["InstanceServices"]; panicked?: boolean | null; created?: string | null; model?: string | null; fwpackage?: string | null; os?: string | null; agent?: components["schemas"]["InstanceAgentState"]; netmon?: components["schemas"]["InstanceNetmonState"]; netdump?: components["schemas"]["InstanceNetdumpState"]; exposePort?: string | null; fault?: boolean | null; patches?: string[] | null; createdBy?: components["schemas"]["createdBy"]; }>; /** * Update a device. * @param body The request body. * @param body.name The name of the device. * @param body.state The state of the device e.g. `on`, `off`, `paused`, `deleting`. * @param body.os The OS version of the device e.g. `14.0.0`. * @param body.bootOptions The boot options of the device. * @param body.bootOptions.bootArgs Boot arguments to provide to the kernel * @param body.bootOptions.restoreBootArgs Boot arguments to provide to the kernel when restoring * @param body.bootOptions.udid UDID of the device * @param body.bootOptions.ecid Assigned ECID * @param body.bootOptions.randomSeed Random seed to provide to boot if any * @param body.bootOptions.pac Enable PAC * @param body.bootOptions.aprr Enable APRR * @param body.bootOptions.additionalTags Additional tags to provide to boot * @param body.proxy The proxy settings for the device. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').update({ name: 'My Device' }); */ update: (body: paths["/v1/instances/{instanceId}"]["patch"]["requestBody"]["content"]["application/json"]) => Promise<{ id?: string | null; name?: string | null; key?: string | null; flavor?: string | null; type?: string | null; project?: string | null; state?: components["schemas"]["InstanceState"]; stateChanged?: string | null; startedAt?: string | null; userTask?: string | null; taskState?: string | null; error?: string | null; bootOptions?: components["schemas"]["InstanceBootOptions"]; serviceIp?: string | null; wifiIp?: string | null; secondaryIp?: string | null; services?: components["schemas"]["InstanceServices"]; panicked?: boolean | null; created?: string | null; model?: string | null; fwpackage?: string | null; os?: string | null; agent?: components["schemas"]["InstanceAgentState"]; netmon?: components["schemas"]["InstanceNetmonState"]; netdump?: components["schemas"]["InstanceNetdumpState"]; exposePort?: string | null; fault?: boolean | null; patches?: string[] | null; createdBy?: components["schemas"]["createdBy"]; }>; /** * Start the device. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').start(); */ start: () => Promise; /** * Stop the device. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').stop(); */ stop: () => Promise; /** * Reboot the device. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').reboot(); */ reboot: () => Promise; /** * Pause the device. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').pause(); */ pause: () => Promise; /** * Resume the device. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').resume(); */ resume: () => Promise; /** * Lock the device (iOS only) * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').lock(); */ lock: () => Promise; /** * Unlock the device (iOS only) * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').unlock(); */ unlock: () => Promise; websocket: { /** * Get the websocket URL for the device. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').websocket.get(); */ get: () => Promise<{ url?: string | null; }>; }; state: { /** * Get the status of the device. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').state.get(); */ get: () => Promise<"on" | "off" | "booting" | "deleting" | "creating" | "restoring" | "paused" | "rebooting" | "error">; }; gpio: { /** * Get the GPIO list of the device. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').gpio.list(); */ list: () => Promise<{ led?: components["schemas"]["GpioStateDefinition"]; button?: components["schemas"]["GpioStateDefinition"]; switch?: components["schemas"]["GpioStateDefinition"]; }>; /** * Set the GPIO list of the device. * @param body The request body. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').gpio.set({ button: { bitCount: 2 }}); */ set: (body: paths["/v1/instances/{instanceId}/gpios"]["put"]["requestBody"]["content"]["application/json"]) => Promise<{ led?: components["schemas"]["GpioStateDefinition"]; button?: components["schemas"]["GpioStateDefinition"]; switch?: components["schemas"]["GpioStateDefinition"]; }>; }; sensors: { /** * Get the sensor list of the device. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').sensors.get(); */ get: () => Promise<{ acceleration?: number[] | null; gyroscope?: number[] | null; magnetic?: number[] | null; orientation?: number[] | null; temperature?: number | null; proximity?: number | null; light?: number | null; pressure?: number | null; humidity?: number | null; }>; /** * Set the sensor list of the device. * @param body The request body. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').sensors.set({ acceleration: acceleration: [0, 9.81, 0] }); */ set: (body: paths["/v1/instances/{instanceId}/peripherals"]["put"]["requestBody"]["content"]["application/json"]) => Promise<{ acceleration?: number[] | null; gyroscope?: number[] | null; magnetic?: number[] | null; orientation?: number[] | null; temperature?: number | null; proximity?: number | null; light?: number | null; pressure?: number | null; humidity?: number | null; }>; }; /** * Restore a backup to the device (iOS only) * @param body The request body. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').restoreBackup(body); */ restoreBackup: (body: paths["/v1/instances/{instanceId}/restoreBackup"]["post"]["requestBody"]) => Promise; /** * Take a screenshot of the device. * @param format The format of the screenshot. * @param scale The scale of the screenshot. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').takeScreenshot(format, scale); */ takeScreenshot: (format: paths["/v1/instances/{instanceId}/screenshot.{format}"]["get"]["parameters"]["path"]["format"], scale?: number) => Promise; /** * Rotate the device. * @param orientation The orientation to rotate the device to. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').rotate('landscape'); */ rotate: (orientation: "landscape-inverted" | "landscape" | "portrait-inverted" | "portrait") => Promise; /** * Send input to the device. * @param body The request body. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').input([{ buttons: ['finger'], position: [[300, 600]], wait: 0 }]); */ input: (body: PatchedInstanceInputProperties) => Promise<{ eta?: number | null; }>; /** * Upgrade the OS of the device (iOS only) * @param body The request body. * @param body.os The OS to upgrade to. * @param body.osbuild The OS build to upgrade to. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').upgrade({ os: '14.3', osbuild: '18C66' }); */ upgrade: (body: paths["/v1/instances/{instanceId}/upgrade"]["post"]["requestBody"]["content"]["application/json"]) => Promise; /** * Determine whether the device is ready. * @returns {boolean} Whether the device is ready. * @throws {Error} The error message. * @example const response = await corellium.device('123').ready(); */ ready: () => Promise; hostname: { /** * Set the hostname of the device. * @param body The request body. * @param body.hostname The hostname to set. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').hostname.set({ hostname: 'my-hostname' }); */ set: (body: paths["/v1/instances/{instanceId}/agent/v1/system/setHostname"]["post"]["requestBody"]["content"]["application/json"]) => Promise; }; property: { /** * Get a system property of the device. * @param body The request body. * @param body.property The property to get. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').property.get({ property: 'corellium.opengapps' }); */ get: (body: paths["/v1/instances/{instanceId}/agent/v1/system/getprop"]["post"]["requestBody"]["content"]["application/json"]) => Promise<{ value?: string | null; }>; }; /** * Send a command to the device. * @param type Passed in the `type` field of the agent command * @param op Passed in the `op` field of the agent command * @param params Any other parameters to include in the command * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').send('app', 'list');' */ send: (type: string, op: string, parameters?: Record) => Promise; frida: { /** * Run Frida on the device. * @param targetPid The PID of the target process. * @param targetName The name of the target process. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').frida.run('123', 'MyApp'); */ run: (targetPid: string, targetName: string) => Promise; /** * List Frida processes on the device. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').frida.list(); */ list: () => Promise; /** * Run Frida Kill on the device. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').frida.kill(); */ kill: () => Promise; }; sslPinning: { /** * Check if SSL pinning is enabled on the device. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').sslPinning.get(); */ get: () => Promise; /** * Set the SSL pinning state of the device. * @param enabled Whether to enable SSL pinning. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').sslPinning.set(true); */ set: (enabled: boolean) => Promise; }; uiAutomation: { /** * Set the UI automation state of the device. * @param enabled Whether to enable UI automation. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').uiAutomation.set(true); */ set: (enabled: boolean) => Promise; }; disableAutolockAssertion: { /** * Acquire the disable autolock assertion. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').disableAutolockAssertion.acquire(); */ acquire: () => Promise; /** * Release the disable autolock assertion. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').disableAutolockAssertion.release(); */ release: () => Promise; }; }; declare const createDevicesEndpoints: (api: ReturnType>, imageApi: any) => { /** * Create a new device. * @param body The request body. * @param body.project The project ID. * @param body.name The name of the device. * @param body.flavor The flavor of the device e.g. `ranchu`, `iphone6`, `iphone6plus`, `ipodtouch6`, `ipadmini4wifi`, `iphone6s`, `iphone6splus`, `iphonese`, `iphone7`, `iphone7plus`, `iphone8`, `iphone8plus`, `iphonex`, `iphonexs`, `iphonexsmax`, `iphonexsmaxww`, `iphonexr`, `iphone11`, `iphone11pro`, `iphone11promax`, `iphonese2`, `iphone12m`, `iphone12`, `iphone12p`, `iphone12pm`, `iphone13`, `iphone13m`, `iphone13p`, `iphone13pm`. * @param body.os The OS version of the device e.g. `14.0.0`. * @param body.osbuild The OS build of the device e.g. `18A373`. * @param body.fwpackage The firmware package to use for the device. * @param body.origFwPackageUrl The URL that the firmware package used to create this instance is available at. * @param body.encrypt Whether to encrypt the device. * @param body.overrideWifiMAC The MAC address to use for the device. * @param body.snapshot The snapshot ID for this instance to be cloned from if defined. * @param body.key The key used to encrypt the device. * @param body.sharedSnapshot The shared snapshot ID for this instance to be cloned from if defined. * @param body.sharedSnapshotPassword The shared snapshot password for this instance to be cloned from if defined. * @param body.patches The patches to apply to the device e.g. `jailbroken` | `corelliumd` | `nonjailbroken`. Jailbroken by default. * @param body.volume The volume options of the device. * @param body.volume.allocate The amount of storage to allocate for the device. * @param body.volume.partitions The partitions of the device. * @param body.volume.computeNode The compute node to use for the device. * @param body.bootOptions The boot options of the device. * @param body.bootOptions.kernelSlide The Kernel slide value for an iOS device. Defaults to zero. When set to an empty value, the slide will be randomized. * @param body.bootOptions.udid Predefined Unique Device ID (UDID) for iOS device * @param body.bootOptions.screen Change the screen metrics for Ranchu devices `XxY[:DPI]`, e.g. `720x1280:280` * @param body.bootOptions.additionalTags An array of addition features to utilize e.g. `["kalloc", "gpu", "no-keyboard", "nodevmode", "sep-cons-ext", "iboot-jailbreak", "llb-jailbreak", "rom-jailbreak"]` * @param body.bootOptions.kernel Custom kernel to pass to the device on creation * @param body.bootOptions.vmmio[] Paremeters to export a VM address space range (and IRQ & DMA functionality) over TCP to different models running on different machines or inside a different VM e.g. `{ start: 0x100000000, size: 0x1000000, irq: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16], port: 1234 }` * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.devices.create({ project: 'projectId', name: 'My New Device', flavor: 'ranchu', os: '14.0.0' }); */ create: ({ patches, ...body }: Omit & { patches?: "corelliumd" | "jailbroken" | "nonjailbroken"; }) => Promise<{ id: string; state: components["schemas"]["InstanceState"]; }>; /** * List all devices. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.devices.list(); */ list: () => Promise<{ id?: string | null; name?: string | null; key?: string | null; flavor?: string | null; type?: string | null; project?: string | null; state?: components["schemas"]["InstanceState"]; stateChanged?: string | null; startedAt?: string | null; userTask?: string | null; taskState?: string | null; error?: string | null; bootOptions?: components["schemas"]["InstanceBootOptions"]; serviceIp?: string | null; wifiIp?: string | null; secondaryIp?: string | null; services?: components["schemas"]["InstanceServices"]; panicked?: boolean | null; created?: string | null; model?: string | null; fwpackage?: string | null; os?: string | null; agent?: components["schemas"]["InstanceAgentState"]; netmon?: components["schemas"]["InstanceNetmonState"]; netdump?: components["schemas"]["InstanceNetdumpState"]; exposePort?: string | null; fault?: boolean | null; patches?: string[] | null; createdBy?: components["schemas"]["createdBy"]; }[]>; /** * Search for a device by name. * @param name The name of the device. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.devices.search('My Device'); */ search: (name: string) => Promise<{ id?: string | null; name?: string | null; key?: string | null; flavor?: string | null; type?: string | null; project?: string | null; state?: components["schemas"]["InstanceState"]; stateChanged?: string | null; startedAt?: string | null; userTask?: string | null; taskState?: string | null; error?: string | null; bootOptions?: components["schemas"]["InstanceBootOptions"]; serviceIp?: string | null; wifiIp?: string | null; secondaryIp?: string | null; services?: components["schemas"]["InstanceServices"]; panicked?: boolean | null; created?: string | null; model?: string | null; fwpackage?: string | null; os?: string | null; agent?: components["schemas"]["InstanceAgentState"]; netmon?: components["schemas"]["InstanceNetmonState"]; netdump?: components["schemas"]["InstanceNetdumpState"]; exposePort?: string | null; fault?: boolean | null; patches?: string[] | null; createdBy?: components["schemas"]["createdBy"]; }[]>; }; declare const createFileEndpoints: (api: ReturnType>, instanceId: string) => { /** * Get a file from a device. * @param filePath The path of the file to get e.g. `/etc/hosts` * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').file('/etc/hosts').get(); */ get: (filePath: paths["/v1/instances/{instanceId}/agent/v1/file/device/{filePath}"]["get"]["parameters"]["path"]["filePath"]) => Promise; /** * Create a file on a device. * @param filePath The path of the file to create e.g. `/etc/hosts` * @param body The file content. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').file('/etc/hosts').create('/etc/hosts', File); */ create: (filePath: paths["/v1/instances/{instanceId}/agent/v1/file/device/{filePath}"]["put"]["parameters"]["path"]["filePath"], body: paths["/v1/instances/{instanceId}/agent/v1/file/device/{filePath}"]["put"]["requestBody"]["content"]["application/octet-stream"]) => Promise; /** * Delete a file from a device. * @param filePath The path of the file to delete e.g. `/etc/hosts` * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').file('/etc/hosts').delete(); */ delete: (filePath: paths["/v1/instances/{instanceId}/agent/v1/file/device/{filePath}"]["delete"]["parameters"]["path"]["filePath"]) => Promise; /** * Generate a temporary filename. * @description Returns a temporary random filename that is guranteed to be unique on the device's filesystem at the time of invocation of this method. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').file.generateFilename(); */ generateFilename: () => Promise; /** * Update a file on a device. * @param filePath The path of the file to update e.g. `/etc/hosts` * @param body The file content. * @param body.path The new path of the file e.g. `/etc/hosts` * @param body.mode The new mode of the file e.g. `644` * @param body.uid The new owner of the file e.g. `0` * @param body.gid The new group of the file e.g. `0` */ update: (filePath: paths["/v1/instances/{instanceId}/agent/v1/file/device/{filePath}"]["patch"]["parameters"]["path"]["filePath"], body: paths["/v1/instances/{instanceId}/agent/v1/file/device/{filePath}"]["patch"]["requestBody"]["content"]["application/json"]) => Promise; }; declare const createHyperTraceEndpoints: (api: ReturnType>, instanceId: string) => { /** * Start HyperTrace on the device. * @param body The request body. * @param body.ranges The ranges to trace e.g. `[['0x1000', '0x2000']]` * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').hypertrace.start({ ranges: [['0x1000', '0x2000']] }); */ start: (body: paths["/v1/instances/{instanceId}/btrace/enable"]["post"]["requestBody"]["content"]["application/json"]) => Promise; /** * Stop HyperTrace on the device. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').hypertrace.stop(); */ stop: () => Promise; /** * Get HyperTrace ranges on the device. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').hypertrace.ranges(); */ ranges: () => Promise<{ kext?: string | null; range?: string[] | null; }[]>; /** * Pre-authorize a HyperTrace download. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').hypertrace.authorize(); */ authorize: () => Promise>; /** * Clear HyperTrace logs on the device. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').hypertrace.clear(); */ clear: () => Promise; }; declare const createImageEndpoints: (api: ReturnType>) => { /** * List all images. * @param projectId The project ID to filter images by. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.image.list(); */ list: (projectId?: string) => Promise<{ status: string; id?: string | null; name?: string | null; type?: "fwbinary" | "kernel" | "devicetree" | "ramdisk" | "loaderfile" | "sepfw" | "seprom" | "bootrom" | "llb" | "iboot" | "ibootdata" | "fwpackage" | "partition" | "backup" | null; filename?: string | null; uniqueid?: string | null; size?: number | null; project?: string | null; created_at?: string | null; updated_at?: string | null; }[]>; /** * Create a new image. * @param body The request body. * @param body.type The type of the image e.g. `binary`. * @param body.encoding The encoding of the image e.g. `plain`. * @param body.encapsulated Whether the uploaded file is encapsulated inside a zip file e.g. `true`. * @param body.name The name of the image. * @param body.project The project ID. * @param body.instance The instance ID. * @param body.file The image file. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.image.create({ type: 'binary', encoding: 'plain', encapsulated: true, name: 'My Image', project: 'projectId', instance: 'instanceId', file: File }); */ create: (body: Omit & { file: File; }) => Promise<{ status: string; id?: string | null; name?: string | null; type?: "fwbinary" | "kernel" | "devicetree" | "ramdisk" | "loaderfile" | "sepfw" | "seprom" | "bootrom" | "llb" | "iboot" | "ibootdata" | "fwpackage" | "partition" | "backup" | null; filename?: string | null; uniqueid?: string | null; size?: number | null; project?: string | null; created_at?: string | null; updated_at?: string | null; }>; /** * Get an image. * @param imageId The image ID. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.image.get('123'); */ get: (imageId: paths["/v1/images/{imageId}"]["get"]["parameters"]["path"]["imageId"]) => Promise<{ status: string; id?: string | null; name?: string | null; type?: "fwbinary" | "kernel" | "devicetree" | "ramdisk" | "loaderfile" | "sepfw" | "seprom" | "bootrom" | "llb" | "iboot" | "ibootdata" | "fwpackage" | "partition" | "backup" | null; filename?: string | null; uniqueid?: string | null; size?: number | null; project?: string | null; created_at?: string | null; updated_at?: string | null; }>; /** * Update an image. * @param imageId The image ID. * @param body The request body. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.image.update('123', File); */ update: (imageId: paths["/v1/images/{imageId}"]["post"]["parameters"]["path"]["imageId"], body: paths["/v1/images/{imageId}"]["post"]["requestBody"]["content"]["binary"]) => Promise<{ status: string; id?: string | null; name?: string | null; type?: "fwbinary" | "kernel" | "devicetree" | "ramdisk" | "loaderfile" | "sepfw" | "seprom" | "bootrom" | "llb" | "iboot" | "ibootdata" | "fwpackage" | "partition" | "backup" | null; filename?: string | null; uniqueid?: string | null; size?: number | null; project?: string | null; created_at?: string | null; updated_at?: string | null; }>; /** * Delete an image. * @param imageId The image ID. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.image.delete('123'); */ delete: (imageId: paths["/v2/images/{imageId}"]["delete"]["parameters"]["path"]["imageId"]) => Promise; }; declare const createKernelHookEndpoints: (api: ReturnType>, instanceId: string) => { /** * List all hooks installed on the device. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').kernelHook.list(); */ list: () => Promise<{ identifier?: string | null; label?: string | null; address?: string | null; patch?: string | null; patchType?: "csmfcc" | "csmfvm" | null; enabled?: boolean | null; createdAt?: string | null; updatedAt?: string | null; instanceId?: string | null; }[]>; /** * Create a new hook on the device. * @param body The request body. * @param body.label The label of the hook e.g. `My hook`. * @param body.address The address of the hook e.g. `0xfffffff006ae8864`. * @param body.patch The patch of the hook e.g. `print("Hello, world\n")`. * @param body.patchType The patch type of the hook - `csmfcc` or `csmfvm`. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').kernelHook.create({ label: 'My hook', address: '0xfffffff006ae8864', patch: 'print("Hello, world\n")', patchType: 'csmfcc' }); */ create: (body: paths["/v1/instances/{instanceId}/hooks"]["post"]["requestBody"]["content"]["application/json"]) => Promise<{ identifier?: string | null; label?: string | null; address?: string | null; patch?: string | null; patchType?: "csmfcc" | "csmfvm" | null; enabled?: boolean | null; createdAt?: string | null; updatedAt?: string | null; instanceId?: string | null; }>; /** * Get a hook from the device. * @param hookId The ID of the hook to get e.g. `123`. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').kernelHook.get('123'); */ get: (hookId: paths["/v1/hooks/{hookId}"]["get"]["parameters"]["path"]["hookId"]) => Promise<{ identifier?: string | null; label?: string | null; address?: string | null; patch?: string | null; patchType?: "csmfcc" | "csmfvm" | null; enabled?: boolean | null; createdAt?: string | null; updatedAt?: string | null; instanceId?: string | null; }>; /** * Update a hook on the device. * @param hookId The ID of the hook to update e.g. `123`. * @param body The request body. * @param body.label The label of the hook e.g. `My hook`. * @param body.address The address of the hook e.g. `0xfffffff006ae8864`. * @param body.patch The patch of the hook e.g. `print("Hello, world\n")`. * @param body.patchType The patch type of the hook - `csmfcc` or `csmfvm`. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').kernelHook.update('123', { label: 'My hook', address: '0xfffffff006ae8864', patch: 'print("Hello, world\n")', patchType: 'csmfcc' }); */ update: (hookId: paths["/v1/hooks/{hookId}"]["put"]["parameters"]["path"]["hookId"], body: paths["/v1/hooks/{hookId}"]["put"]["requestBody"]["content"]["application/json"]) => Promise<{ identifier?: string | null; label?: string | null; address?: string | null; patch?: string | null; patchType?: "csmfcc" | "csmfvm" | null; enabled?: boolean | null; createdAt?: string | null; updatedAt?: string | null; instanceId?: string | null; }>; /** * Delete a hook from the device. * @param hookId The ID of the hook to delete e.g. `123`. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').kernelHook.delete('123'); */ delete: (hookId: paths["/v1/hooks/{hookId}"]["delete"]["parameters"]["path"]["hookId"]) => Promise; /** * Execute all hooks on the device. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').kernelHook.run(); */ run: () => Promise; /** * Clear all hooks on the device. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').kernelHook.clear(); */ clear: () => Promise; }; declare const createMatrixEndpoints: (api: ReturnType>, instanceId: string, baseUrl: string) => { /** * Run a MATRIX assessment. * @param body The request body. * @param body.bundleId The bundle ID of the assessment to run. * @param body.input The input to provide to the assessment. * @param body.keywords The keywords to provide to the assessment. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').matrix.run({ bundleId: 'com.corellium.cafe' }); */ run: (body: { bundleId: components["schemas"]["CreateAssessmentDto"]["bundleId"]; input?: PatchedInstanceInputProperties; keywords?: string[]; }) => Promise<{ status: "complete" | "failed" | "generatingReport" | "monitoring" | "new" | "readyForTesting" | "startingMonitoring" | "stoppingMonitoring" | "testing"; createdAt?: string; updatedAt?: string; createdBy?: string; reportId?: string; bundle?: { id?: string; name?: string; version?: string; }; results?: { pass?: number; fail?: number; info?: number; error?: number; }; metadata?: { corelliumVersion?: string; }; instanceId: string; bundleId: string; wordlistId?: string; id?: string; }>; assessment: { /** * Get a MATRIX assessment. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').matrix.assessment.get('456'); */ get: (assessmentId: string) => Promise<{ status: "complete" | "failed" | "generatingReport" | "monitoring" | "new" | "readyForTesting" | "startingMonitoring" | "stoppingMonitoring" | "testing"; createdAt?: string; updatedAt?: string; createdBy?: string; reportId?: string; bundle?: { id?: string; name?: string; version?: string; }; results?: { pass?: number; fail?: number; info?: number; error?: number; }; metadata?: { corelliumVersion?: string; }; instanceId: string; bundleId: string; wordlistId?: string; id?: string; }>; /** * List MATRIX assessments. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').matrix.assessment.list(); */ list: () => Promise<({ createdAt?: string; updatedAt?: string; createdBy?: string; reportId?: string; bundle?: { id?: string; name?: string; version?: string; }; results?: { pass?: number; fail?: number; info?: number; error?: number; }; metadata?: { corelliumVersion?: string; }; } & { instanceId: string; bundleId: string; wordlistId?: string; } & { id?: string; } & { status: string; })[]>; /** * Delete a MATRIX assessment. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').matrix.assessment.delete('456'); */ delete: (assessmentId: string) => Promise; /** * Download a MATRIX assessment. * @param assessmentId The assessment ID. * @param format The format to download the assessment in. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').matrix.assessment.download('456', 'html'); */ download: (assessmentId: string, format?: "html" | "json") => Promise; }; }; declare const createMediaEndpoints: (api: ReturnType>, instanceId: string) => { /** * Play media on the device. * @param body The request body. * @param body.url The URL of the media to play. * @param body.imageId The image ID of the media to play. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').media.play({ url: 'https://example.com/video.mp4' }); */ start: (body: paths["/v1/instances/{instanceId}/media/play"]["post"]["requestBody"]["content"]["application/json"]) => Promise; /** * Stop media on the device. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').media.stop(); */ stop: () => Promise; }; declare const createMessagingEndpoints: (api: ReturnType>, instanceId: string) => { /** * Send an SMS message to a device (iOS only) * @param body - The message to send * @param body.number - The phone number to send the message to * @param body.message - The message to send * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.messaging.receive({ number: '+1234567890', message: 'Hello, World!' }); */ receive: (body: { number: string; message: string; }) => Promise; }; declare const createModelEndpoints: (api: ReturnType>) => { /** * Get the list of models on the Corellium instance. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.model.list(); */ list: () => Promise<{ type: string; name: string; flavor: string; description?: string | null; model: string; boardConfig?: string | null; platform?: string | null; cpid?: number | null; bdid?: number | null; peripherals?: boolean | null; }[]>; software: { /** * Get the list of software for a model. * @param modelId The model ID to filter software by. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.model.software.list('123'); */ list: (modelId: paths["/v1/models/{model}/software"]["get"]["parameters"]["path"]["model"]) => Promise<{ version?: string | null; buildid?: string | null; AndroidFlavor?: string | null; APIVersion?: string | null; sha256sum?: string | null; sha1sum?: string | null; md5sum?: string | null; size?: number | null; uniqueId?: string | null; metadata?: Record | null; releasedate?: string | null; uploaddate?: string | null; url?: string | null; orig_url?: string | null; filename?: string | null; }[]>; }; }; declare const createNetworkMonitorEndpoints: (api: ReturnType>, instanceId: string) => { /** * Download the network monitor pcap file. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').networkMonitor.download(); */ download: () => Promise; /** * Start the network monitor on the device. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').networkMonitor.start(); */ start: () => Promise; /** * Stop the network monitor on the device. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').networkMonitor.stop(); */ stop: () => Promise; advanced: { /** * Start the advanced network monitor on the device. * @param body The request body. * @param body.portRanges A list of port ranges to filter on. * @param body.srcPorts A list of source ports to filter on. * @param body.dstPorts A list of destination ports to filter on. * @param body.ports A list of ports to filter on. * @param body.protocols A list of protocols to filter on. * @param body.processes A list of processes to filter on. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').networkMonitor.advanced.start({ portRanges: [1, 2, 3] }); */ start: (body: paths["/v1/instances/{instanceId}/netdump/enable"]["post"]["requestBody"]) => Promise; /** * Stop the advanced network monitor on the device. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').networkMonitor.advanced.stop(); */ stop: () => Promise; /** * Download the advanced network monitor pcap file. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').networkMonitor.advanced.download(); */ download: () => Promise; }; }; declare const createPanicEndpoints: (api: ReturnType>, instanceId: string) => { /** * List all panics on the device. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').panic.list(); */ list: () => Promise[]>; /** * Clear all panics on the device. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').panic.clear(); */ clear: () => Promise; }; declare const createPortForwardingEndpoints: (api: ReturnType>, instanceId: string) => { create: () => Promise; delete: () => Promise; }; declare const createProfileEndpoints: (api: ReturnType>, instanceId: string) => { /** * List all profiles on the device. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').profile.list(); */ list: () => Promise<{ profiles: string[]; }>; /** * Install a profile on the device. * @param body The profile data. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').profile.install(File); */ install: (body: paths["/v1/instances/{instanceId}/agent/v1/profile/install"]["post"]["requestBody"]["content"]["application/octet-stream"]) => Promise; /** * Delete a profile from the device. * @param profileId The profile ID to delete. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').profile.delete('123'); */ delete: (profileId: paths["/v1/instances/{instanceId}/agent/v1/profile/profiles/{profileId}"]["delete"]["parameters"]["path"]["profileId"]) => Promise; }; declare const createProjectEndpoints: (api: ReturnType>, projectId: string) => { /** * Get a project by ID. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.project('123').get(); */ get: () => Promise<{ id: string; name?: string | null; settings?: components["schemas"]["ProjectSettings"]; quotas?: components["schemas"]["ProjectQuota"]; quotasUsed?: components["schemas"]["ProjectUsage"]; }>; /** * Delete a project by ID. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.project('123').delete(); */ delete: () => Promise; /** * Update a project by ID. * @param body The project settings. * @param body.name The project name. * @param body.settings The project settings. * @param body.settings.internetAccess Whether the project has internet access. * @param body.settings.connection The project connection. * @param body.settings.dhcp Whether the project uses DHCP. * @param body.quotas The project quotas. * @param body.quotas.cores The project core quota. * @param body.quotas.instances The project instance quota. * @param body.quotas.ram The project RAM quota. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.project('123').update({ name: 'My Project' }); */ update: (body: paths["/v1/projects/{projectId}"]["patch"]["requestBody"]["content"]["application/json"]) => Promise<{ id: string; name?: string | null; settings?: components["schemas"]["ProjectSettings"]; quotas?: components["schemas"]["ProjectQuota"]; quotasUsed?: components["schemas"]["ProjectUsage"]; }>; device: { /** * List all devices in a project. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.project('123').device.list(); */ list: () => Promise<{ id?: string | null; name?: string | null; key?: string | null; flavor?: string | null; type?: string | null; project?: string | null; state?: components["schemas"]["InstanceState"]; stateChanged?: string | null; startedAt?: string | null; userTask?: string | null; taskState?: string | null; error?: string | null; bootOptions?: components["schemas"]["InstanceBootOptions"]; serviceIp?: string | null; wifiIp?: string | null; secondaryIp?: string | null; services?: components["schemas"]["InstanceServices"]; panicked?: boolean | null; created?: string | null; model?: string | null; fwpackage?: string | null; os?: string | null; agent?: components["schemas"]["InstanceAgentState"]; netmon?: components["schemas"]["InstanceNetmonState"]; netdump?: components["schemas"]["InstanceNetdumpState"]; exposePort?: string | null; fault?: boolean | null; patches?: string[] | null; createdBy?: components["schemas"]["createdBy"]; }[]>; }; vpn: { /** * Get the VPN configuration for a project. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.project('123').vpn.get(); */ get: () => Promise; }; keys: { /** * List all keys in a project. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.project('123').keys.list(); */ list: () => Promise<{ identifier?: string | null; kind: "ssh" | "adb"; project?: string | null; key: string; fingerprint?: string | null; updatedAt?: string | null; createdAt?: string | null; }[]>; /** * Add a key to a project. * @param body The key data. * @param body.kind The key kind e.g. `ssh` or `adb`. * @param body.name The key name e.g. `My Key`. * @param body.key The key e.g. `ssh-rsa ...`. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.project('123').keys.add({ kind: 'ssh', name: 'My Key', key: 'ssh-rsa ...' }); */ add: (body: paths["/v1/projects/{projectId}/keys"]["post"]["requestBody"]["content"]["application/json"]) => Promise<{ identifier?: string | null; kind: "ssh" | "adb"; project?: string | null; key: string; fingerprint?: string | null; updatedAt?: string | null; createdAt?: string | null; }>; /** * Delete a key from a project. * @param keyId The key ID. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.project('123').keys.delete('456'); */ delete: (keyId: paths["/v1/projects/{projectId}/keys/{keyId}"]["delete"]["parameters"]["path"]["keyId"]) => Promise; }; }; declare const createProjectsEndpoints: (api: ReturnType>) => { /** * Create a new project. * @param body The project settings. * @param body.name The project name. * @param body.settings The project settings. * @param body.settings.internetAccess Whether the project has internet access. * @param body.settings.connection The project connection. * @param body.settings.dhcp Whether the project uses DHCP. * @param body.quotas The project quotas. * @param body.quotas.cores The project core quota. * @param body.quotas.instances The project instance quota. * @param body.quotas.ram The project RAM quota. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.project.create({ name: 'My Project' }); */ create: (body: Omit & { settings?: Omit & { internetAccess: boolean; }; }) => Promise<{ id: string; name?: string | null; settings?: components["schemas"]["ProjectSettings"]; quotas?: components["schemas"]["ProjectQuota"]; quotasUsed?: components["schemas"]["ProjectUsage"]; }>; /** * List all projects. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.project.list(); */ list: () => Promise<{ id: string; name?: string | null; settings?: components["schemas"]["ProjectSettings"]; quotas?: components["schemas"]["ProjectQuota"]; quotasUsed?: components["schemas"]["ProjectUsage"]; }[]>; /** * Search for a project by name. * @param name The project name. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.project.search('My Project'); */ search: (name: string) => Promise<{ id: string; name?: string | null; settings?: components["schemas"]["ProjectSettings"]; quotas?: components["schemas"]["ProjectQuota"]; quotasUsed?: components["schemas"]["ProjectUsage"]; } | undefined>; }; declare const createRoleEndpoints: (api: ReturnType>) => { /** * List all roles. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.role.list(); */ list: () => Promise<{ role: "admin" | "_member_"; project: string; user: string; }[]>; /** * Add a role for a user or team to a project. * @param projectId The project ID. * @param roleId The role ID. * @param options The user or team ID. * @param options.userId The user ID. * @param options.teamId The team ID. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.role.add('123', '456', { userId: '789' }); * @example const response = await corellium.role.add('123', '456', { teamId: '789' }); */ add: (projectId: paths["/v1/roles/projects/{projectId}/users/{userId}/roles/{roleId}"]["put"]["parameters"]["path"]["projectId"], roleId: paths["/v1/roles/projects/{projectId}/users/{userId}/roles/{roleId}"]["put"]["parameters"]["path"]["roleId"], options: { teamId: paths["/v1/roles/projects/{projectId}/teams/{teamId}/roles/{roleId}"]["put"]["parameters"]["path"]["teamId"]; } | { userId: paths["/v1/roles/projects/{projectId}/users/{userId}/roles/{roleId}"]["put"]["parameters"]["path"]["userId"]; }) => Promise; /** * Delete a role for a user or team from a project. * @param projectId The project ID. * @param roleId The role ID. * @param options The user or team ID. * @param options.userId The user ID. * @param options.teamId The team ID. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.role.delete('123', '456', { userId: '789' }); * @example const response = await corellium.role.delete('123', '456', { teamId: '789' }); */ delete: (projectId: paths["/v1/roles/projects/{projectId}/users/{userId}/roles/{roleId}"]["delete"]["parameters"]["path"]["projectId"], roleId: paths["/v1/roles/projects/{projectId}/users/{userId}/roles/{roleId}"]["delete"]["parameters"]["path"]["roleId"], options: { teamId: paths["/v1/roles/projects/{projectId}/teams/{teamId}/roles/{roleId}"]["delete"]["parameters"]["path"]["teamId"]; } | { userId: paths["/v1/roles/projects/{projectId}/users/{userId}/roles/{roleId}"]["delete"]["parameters"]["path"]["userId"]; }) => Promise; }; declare const createSnapshotEndpoints: (api: ReturnType>, instanceId?: string) => { /** * List all snapshots. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').snapshot.list(); */ list: () => Promise<{ id: string; name: string; instance: string; status: components["schemas"]["SnapshotStatus"]; date: number; fresh: boolean; live: boolean; local: boolean; model?: string | null; sharing?: components["schemas"]["SnapshotSharing"]; }[]>; /** * Get a snapshot. * @param snapshotId The snapshot ID. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.snapshot.get('123'); * @example const response = await corellium.device('123').snapshot.get('123'); */ get: (snapshotId: paths["/v1/snapshots/{snapshotId}"]["get"]["parameters"]["path"]["snapshotId"]) => Promise<{ id: string; name: string; instance: string; status: components["schemas"]["SnapshotStatus"]; date: number; fresh: boolean; live: boolean; local: boolean; model?: string | null; sharing?: components["schemas"]["SnapshotSharing"]; }>; /** * Create a snapshot. * @param body The snapshot data. * @param body.name The snapshot name. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').snapshot.create({ name: 'Snapshot' }); */ create: (body: paths["/v1/instances/{instanceId}/snapshots"]["post"]["requestBody"]["content"]["application/json"]) => Promise<{ id: string; name: string; instance: string; status: components["schemas"]["SnapshotStatus"]; date: number; fresh: boolean; live: boolean; local: boolean; model?: string | null; sharing?: components["schemas"]["SnapshotSharing"]; }>; /** * Delete a snapshot. * @param snapshotId The snapshot ID. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.snapshot.delete('123'); * @example const response = await corellium.device('123').snapshot.delete('123'); */ delete: (snapshotId: paths["/v1/snapshots/{snapshotId}"]["delete"]["parameters"]["path"]["snapshotId"]) => Promise; /** * Update a snapshot. * @param snapshotId The snapshot ID. * @param body The snapshot data. * @param body.name The snapshot name. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.snapshot.update('123', { name: 'Snapshot' }); * @example const response = await corellium.device('123').snapshot.update('123', { name: 'Snapshot' }); */ update: (snapshotId: paths["/v1/snapshots/{snapshotId}"]["patch"]["parameters"]["path"]["snapshotId"], body: paths["/v1/instances/{instanceId}/snapshots/{snapshotId}"]["patch"]["requestBody"]["content"]["application/json"]) => Promise<{ id: string; name: string; instance: string; status: components["schemas"]["SnapshotStatus"]; date: number; fresh: boolean; live: boolean; local: boolean; model?: string | null; sharing?: components["schemas"]["SnapshotSharing"]; }>; /** * Restore a snapshot. * @param snapshotId The snapshot ID. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.device('123').snapshot.restore('123'); */ restore: (snapshotId: paths["/v1/instances/{instanceId}/snapshots/{snapshotId}/restore"]["post"]["parameters"]["path"]["snapshotId"]) => Promise; sharing: { /** * Share a snapshot. * @param snapshotId The snapshot ID. * @param body The sharing data. * @param body.sharingType The sharing type e.g. `publicLink`, `domainRestrictedLink`, `passwordPublicLink` or `emailInvite.`. * @param body.password The password for the sharing type `passwordPublicLink`. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.snapshot.sharing.create('123', { sharingType: 'publicLink' }); */ create: (snapshotId: paths["/v1/snapshots/{snapshotId}/share"]["post"]["parameters"]["path"]["snapshotId"], body: paths["/v1/snapshots/{snapshotId}/share"]["post"]["requestBody"]["content"]["application/json"]) => Promise<{ id: string; name: string; instance: string; status: components["schemas"]["SnapshotStatus"]; date: number; fresh: boolean; live: boolean; local: boolean; model?: string | null; sharing?: components["schemas"]["SnapshotSharing"]; }>; /** * Allow access to a shared snapshot. * @param snapshotId The snapshot ID. * @param body The sharing data. * @param body.members The members to allow access e.g. `['jane@acme.com', 'john@acme.com']`. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.snapshot.sharing.allow('123', { members: ['jane@acme.com', 'john@acme.com'] }); */ allow: (snapshotId: paths["/v1/snapshots/{snapshotId}/permissions"]["post"]["parameters"]["path"]["snapshotId"], body: paths["/v1/snapshots/{snapshotId}/permissions"]["post"]["requestBody"]["content"]["application/json"]) => Promise<{ id: string; name: string; instance: string; status: components["schemas"]["SnapshotStatus"]; date: number; fresh: boolean; live: boolean; local: boolean; model?: string | null; sharing?: components["schemas"]["SnapshotSharing"]; }>; /** * Revoke access to a shared snapshot. * @param snapshotId The snapshot ID. * @param body The sharing data. * @param body.members The members to revoke access e.g. `['jane@acme.com', 'john@acme.com']`. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.snapshot.sharing.revoke('123', { members: ['jane@acme.com', 'john@acme.com'] }); */ revoke: (snapshotId: paths["/v1/snapshots/{snapshotId}/permissions"]["delete"]["parameters"]["path"]["snapshotId"], body: paths["/v1/snapshots/{snapshotId}/permissions"]["delete"]["requestBody"]["content"]["application/json"]) => Promise<{ id: string; name: string; instance: string; status: components["schemas"]["SnapshotStatus"]; date: number; fresh: boolean; live: boolean; local: boolean; model?: string | null; sharing?: components["schemas"]["SnapshotSharing"]; }>; /** * List all shared snapshots. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.snapshot.sharing.list(); */ list: () => Promise<{ sharedWithUser: components["schemas"]["SharedSnapshotsInfo"]; sharedByUser: components["schemas"]["SharedSnapshotsInfo"]; }>; /** * Accept a snapshot shared with you. * @returns The response data. * @throws {Error} The error message. * @example await corellium.snapshot.sharing.accept({ sharingType: 'passwordPublicLink', password: 'abcd' }); */ accept: (body: paths["/v1/snapshots/accept"]["post"]["requestBody"]["content"]["application/json"]) => Promise<{ id: string; name: string; instance: string; status: components["schemas"]["SnapshotStatus"]; date: number; fresh: boolean; live: boolean; local: boolean; model?: string | null; sharing?: components["schemas"]["SnapshotSharing"]; }>; }; }; declare const createTeamEndpoints: (api: ReturnType>) => { /** * List all teams. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.team.list(); */ list: () => Promise<{ id: string; label: string; users?: components["schemas"]["User"][] | null; }[]>; /** * Get a team. * @param teamId The team ID. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.team.get('123'); */ get: (teamId: string) => Promise<{ id: string; label: string; users?: components["schemas"]["User"][] | null; } | undefined>; /** * Create a team. * @param body The request body. * @param body.name The team name. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.team.create({ name: 'Team' }); */ create: (body: paths["/v1/teams"]["post"]["requestBody"]["content"]["application/json"]) => Promise<{ id?: string | null; }>; /** * Update a team. * @param teamId The team ID. * @param body The request body. * @param body.name The team name. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.team.update('123', { name: 'Team' }); */ update: (teamId: paths["/v1/teams/{teamId}"]["patch"]["parameters"]["path"]["teamId"], body: paths["/v1/teams/{teamId}"]["patch"]["requestBody"]["content"]["application/json"]) => Promise; /** * Delete a team. * @param teamId The team ID. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.team.delete('123'); */ delete: (teamId: paths["/v1/teams/{teamId}"]["delete"]["parameters"]["path"]["teamId"]) => Promise; users: { /** * Add a user to a team. * @param teamId The team ID. * @param userId The user ID. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.team.users.create('123', '456'); */ create: (teamId: paths["/v1/teams/{teamId}/users/{userId}"]["put"]["parameters"]["path"]["teamId"], userId: paths["/v1/teams/{teamId}/users/{userId}"]["put"]["parameters"]["path"]["userId"]) => Promise; /** * Delete a user from a team. * @param teamId The team ID. * @param userId The user ID. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.team.users.delete('123', '456'); */ delete: (teamId: paths["/v1/teams/{teamId}/users/{userId}"]["delete"]["parameters"]["path"]["teamId"], userId: paths["/v1/teams/{teamId}/users/{userId}"]["delete"]["parameters"]["path"]["userId"]) => Promise; }; }; declare const createTokenEndpoints: (baseUrl: string, Authorization: string) => { /** * Generate an API Token for the current user. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.token.create(); */ create: () => Promise<{ apiToken: string; }>; /** * Delete the API Token for the current user. * @returns `void`. * @throws {Error} The error message. * @example await corellium.token.delete(); */ delete: () => Promise; }; declare const createUserEndpoints: (api: ReturnType>) => { /** * Create a user. * @param body The request body. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.user.create(body); */ create: (body: paths["/v1/users"]["post"]["requestBody"]["content"]["application/json"]) => Promise>; /** * Delete a user. * @param userId The user ID. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.user.delete('123'); */ delete: (userId: paths["/v1/users/{userId}"]["delete"]["parameters"]["path"]["userId"]) => Promise>; /** * Update a user. * @param userId The user ID. * @param body The request body. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.user.update('123', body); */ update: (userId: paths["/v1/users/{userId}"]["patch"]["parameters"]["path"]["userId"], body: paths["/v1/users/{userId}"]["patch"]["requestBody"]["content"]["application/json"]) => Promise>; }; declare const createWebplayerEndpoints: (api: ReturnType>, baseUrl: string, Authorization: string) => { /** * Get a webplayer session. * @param sessionId The session ID. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.webplayer.get('123'); */ get: (sessionId: string) => Promise<{ identifier: string; token: string; expiration: number; }>; /** * List all webplayer sessions. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.webplayer.list(); */ list: () => Promise<{ identifier: string; token: string; expiration: number; }[]>; /** * Refresh a webplayer session. * @param sessionId The session ID. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.webplayer.refresh('123'); */ refresh: (sessionId: string) => Promise<{ identifier: string; token: string; expiration: number; }>; /** * Create a new webplayer session. * @param body The request body. * @param body.projectId The project ID. * @param body.instanceId The device ID. * @param body.expiresIn The session expiration time. * @param body.features The session features e.g. `{ apps: true, connect: true }`. * @param body.clientId The client ID. * @returns The response data. * @throws {Error} The error message. * @example const response = await corellium.webplayer.create({ projectId: '123', instanceId: '456', expiresIn: 3600, features: { apps: true, connect: true }, clientId: '789' }); */ create: (body: components["schemas"]["WebPlayerCreateSessionRequest"]) => Promise<{ identifier: string; token: string; expiration: number; }>; /** * Delete a webplayer session. * @param sessionId The session ID. * @throws {Error} The error message. * @example await corellium.webplayer.delete('123'); */ delete: (sessionId: string) => Promise; domains: { /** * Retrieve the list of allowed domains for all Webplayer sessions. * @throws {Error} The error message. * @example await corellium.webplayer.domains.list(); */ list: () => Promise<{ identifier: string; token: string; expiration: number; }>; }; }; declare class CorelliumSDKError extends Error { errorID: string; field?: string | null; constructor(data: RawSDKError); } interface RawSDKError { error: string; errorID: string; field?: string | null; } interface RawMissingFirmwareAssetError extends RawSDKError { missingFwAssets: string[]; projectId: string; } declare class MissingFirmwareAssetError extends CorelliumSDKError { missingFwAssets: string[]; projectId: string; constructor(data: RawMissingFirmwareAssetError); } type errors_CorelliumSDKError = CorelliumSDKError; declare const errors_CorelliumSDKError: typeof CorelliumSDKError; type errors_MissingFirmwareAssetError = MissingFirmwareAssetError; declare const errors_MissingFirmwareAssetError: typeof MissingFirmwareAssetError; type errors_RawMissingFirmwareAssetError = RawMissingFirmwareAssetError; type errors_RawSDKError = RawSDKError; declare namespace errors { export { errors_CorelliumSDKError as CorelliumSDKError, errors_MissingFirmwareAssetError as MissingFirmwareAssetError }; export type { errors_RawMissingFirmwareAssetError as RawMissingFirmwareAssetError, errors_RawSDKError as RawSDKError }; } type CorelliumOptions = { endpoint?: string; }; type AuthenticationMethod = string | { username: string; password: string; }; declare class Corellium { auth: ReturnType; authProvider: ReturnType; customNetwork: ReturnType; device: (deviceId: string) => ReturnType & { app: ReturnType; connect: ReturnType; console: ReturnType; coreTrace: ReturnType; file: ReturnType; hyperTrace: ReturnType; kernelHook: ReturnType; matrix: ReturnType; media: ReturnType; messaging: ReturnType; networkMonitor: ReturnType; panic: ReturnType; portForwarding: ReturnType; profile: ReturnType; snapshot: ReturnType; }; devices: ReturnType; image: ReturnType; model: ReturnType; projects: ReturnType; project: (projectId: string) => ReturnType; role: ReturnType; snapshot: ReturnType; team: ReturnType; token: ReturnType; user: ReturnType; webplayer: ReturnType; /** * Create a new Corellium TypeScript SDK instance. * @param apiToken The Corellium API token e.g. `1234567890abcdef`. * @param options The Corellium SDK options. * @param options.endpoint The Corellium API endpoint e.g. `https://acme.enterprise.corellium.com`. * @returns The Corellium TypeScript SDK instance. * @example const corellium = new Corellium('1234567890abcdef'); */ constructor(authentication: AuthenticationMethod, options?: CorelliumOptions); } export { Corellium, errors };