{"components":{"parameters":{"PathAccountID":{"example":"act_0123456789ab","in":"path","name":"account_id","required":true,"schema":{"$ref":"#/components/schemas/AccountID"}},"PathAgentID":{"example":"a_0123456789ab","in":"path","name":"agent_id","required":true,"schema":{"$ref":"#/components/schemas/AgentID"}},"PathAgentPassphraseID":{"example":"ape_0123456789ab","in":"path","name":"agent_passphrase_id","required":true,"schema":{"$ref":"#/components/schemas/AgentPassphraseID"}},"PathAlertID":{"example":"a_0123456789ab","in":"path","name":"alert_id","required":true,"schema":{"$ref":"#/components/schemas/AlertID"}},"PathAuditID":{"example":"aud_0123456789ab","in":"path","name":"audit_id","required":true,"schema":{"$ref":"#/components/schemas/AuditID"}},"PathBackupID":{"example":"b_0123456789ab","in":"path","name":"backup_id","required":true,"schema":{"$ref":"#/components/schemas/BackupID"}},"PathClientID":{"example":"c_0123456789ab","in":"path","name":"client_id","required":true,"schema":{"$ref":"#/components/schemas/ClientID"}},"PathDeviceID":{"example":"d_0123456789ab","in":"path","name":"device_id","required":true,"schema":{"$ref":"#/components/schemas/DeviceID"}},"PathFileRestoreID":{"example":"fr_0123456789ab","in":"path","name":"file_restore_id","required":true,"schema":{"$ref":"#/components/schemas/FileRestoreID"}},"PathFileRestorePushID":{"example":"frp_0123456789ab","in":"path","name":"file_restore_push_id","required":true,"schema":{"$ref":"#/components/schemas/FileRestorePushID"}},"PathIPSecID":{"example":"ipsec_0123456789ab","in":"path","name":"ipsec_id","required":true,"schema":{"$ref":"#/components/schemas/IPSecID"}},"PathImageExportID":{"example":"ie_0123456789ab","in":"path","name":"image_export_id","required":true,"schema":{"$ref":"#/components/schemas/ImageExportID"}},"PathNetworkID":{"example":"net_012345","in":"path","name":"network_id","required":true,"schema":{"$ref":"#/components/schemas/NetworkID"}},"PathPortForwardID":{"example":"pfw_0123456789ab","in":"path","name":"port_forward_id","required":true,"schema":{"$ref":"#/components/schemas/PortForwardID"}},"PathSnapshotID":{"example":"s_0123456789ab","in":"path","name":"snapshot_id","required":true,"schema":{"$ref":"#/components/schemas/SnapshotID"}},"PathUserID":{"example":"u_0123456789ab","in":"path","name":"user_id","required":true,"schema":{"$ref":"#/components/schemas/UserID"}},"PathVLANID":{"example":"vlan_012345","in":"path","name":"vlan_id","required":true,"schema":{"description":"The ID of the VLAN","type":"string"}},"PathVirtID":{"example":"v_0123456789ab","in":"path","name":"virt_id","required":true,"schema":{"$ref":"#/components/schemas/VirtID"}},"PathWGPeerID":{"example":"wgp_0123456789ab","in":"path","name":"wg_peer_id","required":true,"schema":{"$ref":"#/components/schemas/WGPeerID"}},"QueryAgentID":{"in":"query","name":"agent_id","schema":{"$ref":"#/components/schemas/AgentID"}},"QueryAuditActionName":{"in":"query","name":"audit_action_name","schema":{"$ref":"#/components/schemas/AuditActionName"}},"QueryAuditResourceTypeName":{"in":"query","name":"audit_resource_type_name","schema":{"$ref":"#/components/schemas/AuditResourceTypeName"}},"QueryBackupEndedAfter":{"description":"Filter snapshots completed after a specific backup end time (RFC3339 format)","in":"query","name":"backup_ended_after","schema":{"format":"date-time","type":"string"}},"QueryBackupEndedBefore":{"description":"Filter snapshots completed before a specific backup end time (RFC3339 format)","in":"query","name":"backup_ended_before","schema":{"format":"date-time","type":"string"}},"QueryBackupStartedAfter":{"description":"Filter snapshots created after a specific backup start time (RFC3339 format)","in":"query","name":"backup_started_after","schema":{"format":"date-time","type":"string"}},"QueryBackupStartedBefore":{"description":"Filter snapshots created before a specific backup start time (RFC3339 format)","in":"query","name":"backup_started_before","schema":{"format":"date-time","type":"string"}},"QueryClientID":{"in":"query","name":"client_id","schema":{"$ref":"#/components/schemas/ClientID"}},"QueryCreatedAfter":{"description":"Filter results to after a specific creation timestamp (RFC3339 format)","in":"query","name":"created_after","schema":{"format":"date-time","type":"string"}},"QueryCreatedBefore":{"description":"Filter results to before a specific creation timestamp (RFC3339 format)","in":"query","name":"created_before","schema":{"format":"date-time","type":"string"}},"QueryDeviceID":{"in":"query","name":"device_id","schema":{"$ref":"#/components/schemas/DeviceID"}},"QueryLimit":{"description":"Number of items to return for pagination","in":"query","name":"limit","schema":{"default":10,"format":"uint32","maximum":50,"minimum":1,"type":"integer"}},"QueryOffset":{"description":"Starting index for pagination","in":"query","name":"offset","schema":{"default":0,"format":"uint32","minimum":0,"type":"integer"}},"QueryResolved":{"in":"query","name":"resolved","schema":{"$ref":"#/components/schemas/Resolved"}},"QuerySnapshotID":{"in":"query","name":"snapshot_id","schema":{"$ref":"#/components/schemas/SnapshotID"}},"QuerySnapshotLocation":{"description":"Location of the snapshot, or if snapshot deleted state","in":"query","name":"snapshot_location","schema":{"$ref":"#/components/schemas/SnapshotLocation"}},"QuerySortAsc":{"description":"Sort in ascending order","in":"query","name":"sort_asc","schema":{"default":false,"type":"boolean"}}},"responses":{"400":{"content":{"application/json":{"examples":{"err_validation_error":{"summary":"Validation error","value":{"codes":["err_validation_error"],"details":["parameter \"device_id\" in path has an error: string doesn't match the regular expression \"^d_[a-z0-9]{12}$\""],"message":"bad request"}}},"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"401":{"content":{"application/json":{"examples":{"err_missing_authentication":{"summary":"Missing API token","value":{"codes":["err_missing_authentication"],"details":["You did not provide an API token. You need to provide your API token in the Authorization header, using Bearer auth (e.g. 'Authorization: Bearer YOUR_SECRET_TOKEN')."],"message":"unauthorized"}},"err_unauthorized":{"summary":"Invalid API token","value":{"codes":["err_unauthorized"],"details":["Invalid API token provided or you do not have permission to access this resource."],"message":"unauthorized"}}},"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"examples":{"err_internal_server_error":{"summary":"Internal server error","value":{"codes":["err_internal_server_error"],"details":["Something went wrong processing your request. See https://docs.slide.tech/api/#description/errors for more information."],"message":"internal server error"}}},"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}},"schemas":{"Account":{"description":"Account object that represents an Account","properties":{"account_id":{"$ref":"#/components/schemas/AccountID"},"account_name":{"$ref":"#/components/schemas/AccountName"},"alert_emails":{"$ref":"#/components/schemas/AlertEmails"},"billing_address":{"$ref":"#/components/schemas/PostalAddress"},"primary_contact":{"$ref":"#/components/schemas/PrimaryContact"},"primary_email":{"$ref":"#/components/schemas/PrimaryEmail"},"primary_phone":{"$ref":"#/components/schemas/PrimaryPhone"}},"required":["account_id","account_name","primary_contact","primary_email","primary_phone","billing_address","alert_emails"],"type":"object"},"AccountID":{"description":"ID of an account","example":"act_0123456789ab","pattern":"^act_[a-z0-9]{12}$","type":"string"},"AccountName":{"description":"Name of the account","example":"Slide Inc.","maxLength":128,"minLength":1,"type":"string"},"Agent":{"description":"Agent object that represents an agent that is paired to a device.","properties":{"addresses":{"$ref":"#/components/schemas/NetworkAddresses"},"agent_id":{"$ref":"#/components/schemas/AgentID"},"agent_type":{"description":"Type of agent. Possible values are \"windows\", \"linux\", \"nas\". May be empty for legacy agents.","enum":["windows","linux","nas"],"example":"windows","type":"string"},"agent_version":{"description":"Version of the agent","example":"1.2.3","type":"string"},"alert_configs":{"description":"Alert configurations for this agent","items":{"$ref":"#/components/schemas/AlertConfig"},"type":"array"},"backup_paused_indefinite":{"description":"Whether backups are paused indefinitely. When true, backups remain paused regardless of backup_paused_until and will not resume until explicitly set via backup_resume.","example":true,"type":"boolean"},"backup_paused_until":{"description":"Timestamp when backups will resume (RFC3339 format). If backup_paused_indefinite is also true, backups remain paused regardless of this timestamp until explicitly resumed via backup_resume.","example":"2025-10-31T23:59:59Z","format":"date-time","type":"string"},"backup_resume":{"description":"Set to true to immediately resume backups. This clears both backup_paused_until and backup_paused_indefinite, and takes precedence over both if provided in the same request.","example":true,"type":"boolean"},"backup_schedule":{"$ref":"#/components/schemas/BackupSchedule"},"backup_schedule_active":{"description":"Whether the backup schedule is active or paused. (for responses only)","example":true,"type":"boolean"},"booted_at":{"$ref":"#/components/schemas/BootedAt"},"client_id":{"$ref":"#/components/schemas/ClientID"},"comments":{"$ref":"#/components/schemas/Comments"},"default_restore_settings":{"$ref":"#/components/schemas/DefaultRestoreSettings"},"device_id":{"$ref":"#/components/schemas/DeviceID"},"display_name":{"$ref":"#/components/schemas/DisplayName"},"encryption_algorithm":{"description":"Storage encryption algorithm of the agent","example":"aes-256-gcm","type":"string"},"file_index_enabled":{"$ref":"#/components/schemas/FileIndexEnabled"},"firmware_type":{"description":"Firmware type of the agent","example":"UEFI","type":"string"},"hostname":{"$ref":"#/components/schemas/Hostname"},"ip_addresses":{"$ref":"#/components/schemas/IPAddresses"},"last_seen_at":{"$ref":"#/components/schemas/LastSeenAt"},"local_retention_policy":{"$ref":"#/components/schemas/LocalRetentionPolicy"},"manufacturer":{"description":"Manufacturer of the agent","example":"Microsoft Corporation","type":"string"},"nas_smb_username":{"description":"SMB username for the NAS share. Only present for NAS agents.","example":"backupuser","type":"string"},"nas_unc_path":{"description":"UNC path to the NAS SMB share. Only present for NAS agents.","example":"\\\\nas01\\backups","type":"string"},"os":{"description":"OS of the agent","example":"windows","type":"string"},"os_version":{"description":"OS version of the agent","example":"10.0.19042","type":"string"},"passphrases":{"description":"User-managed passphrases for the agent. An empty list means Slide manages the agent passphrase.","items":{"$ref":"#/components/schemas/AgentPassphrase"},"type":"array"},"platform":{"description":"OS platform of the agent","example":"Microsoft Windows 10 Home","type":"string"},"public_ip_address":{"description":"Public IP address of the agent","example":"74.83.124.111","format":"ipv4","type":"string"},"sealed":{"description":"Whether the agent's encryption key is unloaded and unavailable for backups.","example":false,"type":"boolean"},"timezone":{"$ref":"#/components/schemas/Timezone"},"volumes":{"$ref":"#/components/schemas/Volumes"},"volumes_include_default":{"$ref":"#/components/schemas/VolumesIncludeDefault"},"vss_writer_configs":{"description":"VSS writer configurations. VSS writers are always included by default.","example":[{"excluded":true,"writer_id":"{76fe1ac4-15f7-4bcd-987e-8e1acb462fb7}","writer_name":"Microsoft Exchange Writer"},{"excluded":false,"writer_id":"{A6AD56C2-B509-4E6C-BB19-49D8F43532F0}","writer_name":"WMI Writer"}],"items":{"$ref":"#/components/schemas/AgentVSSWriterConfig"},"type":"array"}},"required":["agent_id","device_id","display_name","comments","backup_schedule","timezone","local_retention_policy","volumes","volumes_include_default","alert_configs","default_restore_settings","last_seen_at","hostname","ip_addresses","addresses","public_ip_address","agent_version","platform","os","os_version","firmware_type","passphrases","vss_writer_configs","sealed","file_index_enabled"],"type":"object"},"AgentID":{"description":"ID of an agent","example":"a_0123456789ab","pattern":"^a_[a-z0-9]{12}$","type":"string"},"AgentPairCode":{"description":"Agent id and pair code","properties":{"agent_id":{"$ref":"#/components/schemas/AgentID"},"display_name":{"$ref":"#/components/schemas/DisplayName"},"pair_code":{"$ref":"#/components/schemas/PairCode"}},"required":["agent_id","display_name","pair_code"],"type":"object"},"AgentPassphrase":{"description":"User-managed passphrase for the agent","properties":{"agent_passphrase_id":{"$ref":"#/components/schemas/AgentPassphraseID"},"name":{"description":"Friendly name to help remember which passphrase this is.","type":"string"},"passphrase":{"description":"Your secret passphrase that secures the agent's data.","type":"string"}},"required":["name"],"type":"object"},"AgentPassphraseID":{"description":"ID of an agent passphrase","example":"ape_0123456789ab","pattern":"^ape_[a-z0-9]{12}$","type":"string"},"AgentService":{"description":"Agent service object representing a Windows service monitored by service verification.","properties":{"description":{"description":"Description of the Windows service.","example":"Enables the detection, download, and installation of updates for Windows.","type":"string"},"display_name":{"description":"Display name of the Windows service.","example":"Windows Update","type":"string"},"name":{"description":"Internal name of the Windows service.","example":"wuauserv","type":"string"},"service_id":{"description":"Unique identifier of the service.","example":"svc_abc123","type":"string"},"startup":{"description":"Startup type of the service.","enum":["Automatic","AutomaticDelayedStart","Manual","Disabled"],"example":"Automatic","type":"string"},"state":{"description":"Current state of the service.","enum":["Stopped","Running","StartPending","StopPending","ContinuePending","PausePending","Paused"],"example":"Running","type":"string"},"verify_on_boot":{"description":"Whether this service is checked during boot verification.","example":true,"type":"boolean"}},"required":["service_id","name","display_name","description","state","startup","verify_on_boot"],"type":"object"},"AgentServiceUpdateItem":{"description":"A service configuration update.","properties":{"service_id":{"description":"Unique identifier of the service.","example":"svc_abc123","type":"string"},"verify_on_boot":{"description":"Whether this service should be checked during boot verification.","type":"boolean"}},"required":["service_id","verify_on_boot"],"type":"object"},"AgentVSSWriterConfig":{"description":"VSS writer configuration for the agent.","properties":{"excluded":{"description":"Whether this VSS writer is excluded from participating in backups.","type":"boolean"},"writer_id":{"description":"VSS writer ID.","example":"{a65faa63-5ea8-4ebc-9dbd-a0c4db26912a}","type":"string"},"writer_name":{"description":"VSS writer name.","example":"SqlServerWriter","type":"string"}},"required":["writer_id","excluded"],"type":"object"},"Alert":{"description":"Alert object that represents an alert that has been triggered due to some condition.","properties":{"agent_id":{"$ref":"#/components/schemas/AgentID"},"alert_fields":{"description":"Unstructured fields specific to the alert type","type":"string"},"alert_id":{"$ref":"#/components/schemas/AlertID"},"alert_type":{"description":"Type of the alert","enum":["device_not_checking_in","device_out_of_date","device_storage_not_healthy","device_storage_space_low","device_storage_space_critical","agent_not_checking_in","agent_not_backing_up","agent_backup_failed","agent_duplicate_connection"],"example":"device_not_checking_in","type":"string"},"created_at":{"$ref":"#/components/schemas/CreatedAt"},"device_id":{"$ref":"#/components/schemas/DeviceID"},"resolved":{"$ref":"#/components/schemas/Resolved"},"resolved_at":{"$ref":"#/components/schemas/ResolvedAt"},"resolved_by":{"$ref":"#/components/schemas/ResolvedBy"}},"required":["alert_id","alert_type","alert_fields","created_at","resolved"],"type":"object"},"AlertConfig":{"description":"Alert configuration. For requests, use pause_for_minutes, alert_paused_indefinite or alert_resume. For responses, paused_until will be provided.","properties":{"alert_active":{"description":"Whether this alert is active. (for responses only)","type":"boolean"},"alert_paused_indefinite":{"description":"Set to true to pause this alert indefinitely.","example":false,"type":"boolean"},"alert_resume":{"description":"Set to true to resume this alert (clears paused_until). This takes precedence over paused_until if both are provided.","example":true,"type":"boolean"},"alert_type":{"description":"Type of alert","enum":["device_not_checking_in","device_out_of_date","device_storage_not_healthy","device_storage_space_low","device_storage_space_critical","agent_not_checking_in","agent_not_backing_up","agent_backup_failed","agent_duplicate_connection"],"example":"agent_backup_failed","type":"string"},"pause_for_minutes":{"description":"Number of minutes to pause alerts (for requests). Use 'resume' to unpause, or one of the predefined durations. Use 'alert_paused_indefinite' to pause indefinitely.","enum":[0,30,60,120,240,480,1440,10080],"example":1440,"type":"integer"},"paused_until":{"description":"Timestamp when alerts will resume (for responses). RFC3339 format. If null or empty, alerts are not paused.","example":"2025-10-31T23:59:59Z","format":"date-time","type":"string"}},"required":["alert_type"],"type":"object"},"AlertEmails":{"description":"List of email addresses to send alert emails to","example":["john.doe@gmail.com","jane.smith@example.com","user123@domain.net"],"items":{"format":"email","type":"string"},"maxItems":10,"type":"array"},"AlertID":{"description":"ID of an alert","example":"al_0123456789ab","pattern":"^al_[a-z0-9]{12}$","type":"string"},"Audit":{"description":"Audit object that represents an audit log.","properties":{"account_id":{"$ref":"#/components/schemas/AccountID"},"action":{"description":"Action that was performed on the resource","example":"user_created","type":"string"},"action_fields_json":{"description":"Unstructured fields specific to the action","example":"{\"user_id\":\"user_123\"}","type":"string"},"audit_id":{"$ref":"#/components/schemas/AuditID"},"audit_time":{"description":"Time of the audit log","example":"2021-01-01T00:00:00Z","format":"date-time","type":"string"},"client_id":{"$ref":"#/components/schemas/ClientIDOrEmpty"},"description":{"description":"Description of the audit log","example":"User created","type":"string"},"resource_id":{"description":"ID of the resource that was audited","example":"u_0123456789ab","type":"string"},"resource_type":{"description":"Type of the resource that was audited","example":"user","type":"string"},"source":{"description":"Source of the audit log","example":"api","type":"string"},"system":{"description":"Whether the audit log was created by the system or a user","example":true,"type":"boolean"},"user_id":{"$ref":"#/components/schemas/UserIDOrEmpty"}},"required":["audit_id","audit_time","account_id","client_id","user_id","system","source","resource_type","resource_id","action","action_fields_json","description"],"type":"object"},"AuditAction":{"description":"Audit action object to represent an audit action.","properties":{"description":{"description":"Description of the audit action","example":"User created","type":"string"},"name":{"description":"Name of the audit action","example":"user_created","type":"string"}},"required":["name","description"],"type":"object"},"AuditActionName":{"description":"Audit action","example":"user_created","type":"string"},"AuditID":{"description":"ID of an audit log","example":"aud_0123456789ab","pattern":"^aud_[a-z0-9]{12}$","type":"string"},"AuditResourceType":{"description":"Audit resource type object to represent an audit resource type.","properties":{"name":{"description":"Name of the audit resource type","example":"user","type":"string"}},"required":["name"],"type":"object"},"AuditResourceTypeName":{"description":"Audit resource type","type":"string"},"Avatar":{"description":"Avatar image for a user, encoded as a data URL.","properties":{"avatar":{"description":"Avatar image for a user, encoded as a data URL.","example":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAg...","format":"uri","type":"string"}},"required":["avatar"],"type":"object"},"Backup":{"description":"Backup object that represents a backup attempt that may have succeeded or failed.","properties":{"agent_id":{"$ref":"#/components/schemas/AgentID"},"backup_id":{"$ref":"#/components/schemas/BackupID"},"ended_at":{"description":"End time of the backup","example":"2024-08-23T01:40:08Z","format":"date-time","type":"string"},"error_code":{"description":"Error code of the backup","externalDocs":{"description":"See our console documentation for more information on backup error codes","url":"https://docs.slide.tech/backups/#common-errors"},"format":"uint32","type":"integer"},"error_message":{"description":"Human readable error message","type":"string"},"snapshot_id":{"description":"ID of the snapshot taken as part of the backup. If this field is not present, that indicates a snapshot was not taken.","example":"s_0123456789ab","pattern":"^s_[a-z0-9]{12}$","type":"string"},"started_at":{"description":"Start time of the backup","example":"2024-08-23T01:25:08Z","format":"date-time","type":"string"},"status":{"description":"Status of the backup","enum":["created","pending","started","preflight","contacting","creating_vss","preparing","transferring","snapshot","finalizing","canceling","failing","canceled","failed","succeeded"],"example":"succeeded","type":"string"}},"required":["backup_id","agent_id","started_at","status"],"type":"object"},"BackupID":{"description":"ID of a backup attempt","example":"b_0123456789ab","pattern":"^b_[a-z0-9]{12}$","type":"string"},"BackupSchedule":{"description":"Backup schedule configuration","properties":{"days":{"description":"Days of week when backups should run","example":[0,1,2,3,4,5,6],"items":{"description":"Day of week (0=Sunday, 1=Monday, ..., 6=Saturday)","enum":[0,1,2,3,4,5,6],"type":"integer"},"minItems":1,"type":"array"},"end_hour":{"description":"End hour (0-23)","example":18,"maximum":23,"minimum":0,"type":"integer"},"interval_in_minutes":{"description":"Backup interval in minutes","enum":[30,60,120,180,360],"example":60,"type":"integer"},"start_hour":{"description":"Start hour (0-23)","example":9,"maximum":23,"minimum":0,"type":"integer"}},"required":["interval_in_minutes","start_hour","end_hour","days"],"type":"object"},"BillingCreditMemo":{"description":"An account-scoped credit memo with line-level detail. Monetary amounts are in the currency's smallest unit.","properties":{"created_at":{"format":"date-time","type":"string"},"credit_memo_id":{"example":"cn_AbCdEfGhIjKlMn","type":"string"},"currency":{"example":"usd","type":"string"},"discount_amount":{"example":0,"format":"int64","type":"integer"},"effective_at":{"format":"date-time","type":"string"},"invoice_id":{"description":"The invoice the credit memo applies to.","example":"in_AbCdEfGhIjKlMn","type":"string"},"line_items":{"items":{"$ref":"#/components/schemas/BillingCreditMemoLineItem"},"type":"array"},"number":{"example":"CN-000123","type":"string"},"reason":{"type":"string"},"status":{"enum":["issued","void"],"type":"string"},"subtotal_amount":{"example":5000,"format":"int64","type":"integer"},"tax_amount":{"example":300,"format":"int64","type":"integer"},"total_amount":{"example":5300,"format":"int64","type":"integer"},"voided_at":{"format":"date-time","type":"string"}},"required":["credit_memo_id","invoice_id","number","status","currency","subtotal_amount","discount_amount","tax_amount","total_amount","created_at","line_items"],"type":"object"},"BillingCreditMemoLineItem":{"description":"A line item on a credit memo. Monetary amounts are in the credit memo currency's smallest unit.","properties":{"description":{"type":"string"},"device_ids":{"description":"Devices the credited line covers. Empty when the line is not attributable to devices.","example":["d_0123456789ab"],"items":{"type":"string"},"type":"array"},"discount_amount":{"example":0,"format":"int64","type":"integer"},"quantity":{"example":1,"format":"int64","type":"integer"},"sku":{"description":"Slide catalog identifier of the credited line. Absent when the line is not attributable to a catalog item.","example":"sm_p0000z1s1cr1","type":"string"},"subtotal_amount":{"description":"Gross credited line amount before discounts and exclusive tax. Inclusive tax, when present, is already included.","example":5000,"format":"int64","type":"integer"},"tax_amount":{"description":"Total inclusive and exclusive tax attributed to the line.","example":300,"format":"int64","type":"integer"},"total_amount":{"description":"Final credited line amount after discounts and tax.","example":5300,"format":"int64","type":"integer"},"unit_amount":{"description":"Set only when the credited line was billed per unit.","example":5000,"format":"int64","type":"integer"}},"required":["description","quantity","subtotal_amount","discount_amount","tax_amount","total_amount","device_ids"],"type":"object"},"BillingInvoice":{"description":"A finalized, account-scoped billing invoice with line-level detail. Monetary amounts are in the currency's smallest unit.","properties":{"amount_due":{"example":9540,"format":"int64","type":"integer"},"amount_paid":{"example":9540,"format":"int64","type":"integer"},"amount_remaining":{"example":0,"format":"int64","type":"integer"},"created_at":{"format":"date-time","type":"string"},"credit_memo_ids":{"items":{"type":"string"},"type":"array"},"currency":{"example":"usd","type":"string"},"discount_amount":{"example":1000,"format":"int64","type":"integer"},"invoice_id":{"example":"in_AbCdEfGhIjKlMn","type":"string"},"issued_at":{"description":"The date of issue printed on the invoice PDF.","format":"date-time","type":"string"},"line_items":{"items":{"$ref":"#/components/schemas/BillingInvoiceLineItem"},"type":"array"},"number":{"example":"000123-0001","type":"string"},"status":{"enum":["open","paid","uncollectible","void"],"type":"string"},"subtotal_amount":{"example":10000,"format":"int64","type":"integer"},"tax_amount":{"example":540,"format":"int64","type":"integer"},"total_amount":{"example":9540,"format":"int64","type":"integer"}},"required":["invoice_id","number","status","currency","subtotal_amount","discount_amount","tax_amount","total_amount","amount_due","amount_paid","amount_remaining","created_at","issued_at","line_items","credit_memo_ids"],"type":"object"},"BillingInvoiceLineItem":{"description":"A line item on a billing invoice. Monetary amounts are in the currency's smallest unit and can be negative for credits.","properties":{"description":{"example":"Slide Z1 Subscription, 1 TB, 1 Year Cloud Retention","type":"string"},"device_ids":{"description":"Devices the line covers; consolidated lines list one entry per device. Empty when the line is not attributable to devices.","example":["d_0123456789ab"],"items":{"type":"string"},"type":"array"},"discount_amount":{"example":1000,"format":"int64","type":"integer"},"proration":{"example":false,"type":"boolean"},"quantity":{"example":2,"format":"int64","type":"integer"},"service_period_end":{"format":"date-time","type":"string"},"service_period_start":{"format":"date-time","type":"string"},"sku":{"description":"Slide catalog identifier (service model ID or hardware SKU). Absent when the line is not attributable to a catalog item.","example":"sm_p0000z1s1cr1","type":"string"},"subtotal_amount":{"description":"Gross line amount before discounts and exclusive tax. Inclusive tax, when present, is already included.","example":10000,"format":"int64","type":"integer"},"tax_amount":{"description":"Total inclusive and exclusive tax attributed to the line.","example":540,"format":"int64","type":"integer"},"total_amount":{"description":"Final line amount after discounts and tax.","example":9540,"format":"int64","type":"integer"},"unit_amount":{"description":"Set only when the line is billed per unit.","example":5000,"format":"int64","type":"integer"}},"required":["description","subtotal_amount","discount_amount","tax_amount","total_amount","proration","device_ids"],"type":"object"},"BillingSubscription":{"description":"A licensed Slide service instance. Each item has quantity one; group by SKU for current license counts.","properties":{"activated_at":{"format":"date-time","type":"string"},"billing_interval":{"enum":["month","year"],"type":"string"},"cancel_at":{"format":"date-time","type":"string"},"currency":{"example":"usd","type":"string"},"device_id":{"description":"Absent when the subscription is not tied to a device.","example":"d_0123456789ab","type":"string"},"fto":{"$ref":"#/components/schemas/BillingSubscriptionFTO"},"purchased_at":{"format":"date-time","type":"string"},"quantity":{"example":1,"format":"int64","type":"integer"},"scheduled_activation_at":{"format":"date-time","type":"string"},"sku":{"description":"Stable Slide service-model identifier used as the subscription SKU.","example":"sm_p0000z1s1cr1","type":"string"},"status":{"enum":["pending_activation","active","canceled"],"type":"string"},"subscription_id":{"description":"Slide service-instance identifier.","example":"si_0123456789ab","type":"string"},"unit_amount":{"description":"Recurring unit amount in the currency's smallest unit.","example":5000,"format":"int64","type":"integer"},"usage_billed":{"description":"Whether charges are based on metered consumption. Currently false for Slide subscriptions.","example":false,"type":"boolean"}},"required":["subscription_id","sku","status","quantity","unit_amount","currency","billing_interval","usage_billed"],"type":"object"},"BillingSubscriptionFTO":{"description":"Free To Own progress for the subscription's device. Applied months are counted from paid service invoices and can decrease when an invoice is refunded or voided.","properties":{"applied_months":{"example":7,"type":"integer"},"required_months":{"example":36,"type":"integer"},"status":{"enum":["pending","active","completed","breached"],"type":"string"}},"required":["status","applied_months","required_months"],"type":"object"},"BootMods":{"description":"Optional boot mods to enable on the restore","items":{"enum":["passwordless_admin_user"],"type":"string"},"type":"array"},"BootedAt":{"description":"Boot timestamp","example":"2024-08-23T01:25:08Z","format":"date-time","type":"string"},"CPUCount":{"description":"Number of CPUs","example":2,"format":"uint32","maximum":16,"minimum":1,"nullable":true,"type":"integer"},"Client":{"description":"Client object to represent an end client (e.g. a customer of the MSP).","properties":{"client_id":{"$ref":"#/components/schemas/ClientID"},"comments":{"description":"Comments about the client","example":"This is a test client","type":"string"},"name":{"$ref":"#/components/schemas/ClientName"}},"required":["client_id","name","comments"],"type":"object"},"ClientComments":{"description":"Comments about the client","example":"This is a client for Slide's office","maxLength":1024,"type":"string"},"ClientID":{"description":"ID of a client","example":"c_0123456789ab","pattern":"^c_[a-z0-9]{12}$","type":"string"},"ClientIDOrEmpty":{"description":"ID of a client or an empty string","example":"c_0123456789ab","pattern":"^(c_[a-z0-9]{12}|)$","type":"string"},"ClientName":{"description":"Name of the client","example":"Slide Office","maxLength":128,"minLength":1,"type":"string"},"Comments":{"description":"Comments about the agent","example":"This is a test agent","maxLength":1024,"type":"string"},"CreatedAt":{"description":"Creation timestamp","example":"2024-08-23T01:25:08Z","format":"date-time","type":"string"},"DNSServerPrimary":{"description":"Primary DNS server IP address. Required when network_mode is \"static\".","example":"1.1.1.1","format":"ipv4","type":"string"},"DNSServerSecondary":{"description":"Secondary DNS server IP address. Optional when network_mode is \"static\".","example":"8.8.8.8","format":"ipv4","type":"string"},"DefaultRestoreSettings":{"description":"Default restore VM settings","properties":{"cpu_count":{"description":"Number of CPUs","enum":[1,2,4,8,16],"example":4,"type":"integer"},"disk_bus":{"description":"Disk bus type","enum":["sata","virtio"],"example":"virtio","type":"string"},"memory_mb":{"description":"Memory in MB","enum":[4096,6144,8192,12288,16384,24576,28672,32768,49152,65536,98304,131072,163840,196608,229376,262144],"example":8192,"type":"integer"},"network_model":{"description":"Network model","enum":["virtio","hypervisor_default","e1000","rtl8139"],"example":"virtio","type":"string"}},"type":"object"},"Deletion":{"description":"Deletion details","properties":{"deleted":{"description":"Timestamp when the deletion occurred","example":"2024-08-23T01:25:08Z","format":"date-time","type":"string"},"deleted_by":{"$ref":"#/components/schemas/SnapshotDeletedBy"},"first_and_last_name":{"$ref":"#/components/schemas/FirstAndLastName"},"type":{"$ref":"#/components/schemas/LocationType"}},"required":["type","deleted","deleted_by"],"type":"object"},"Deletions":{"description":"List of deletion details","items":{"$ref":"#/components/schemas/Deletion"},"type":"array"},"Device":{"description":"Device object that represents a Slide Box.","properties":{"addresses":{"$ref":"#/components/schemas/NetworkAddresses"},"booted_at":{"$ref":"#/components/schemas/BootedAt"},"client_id":{"$ref":"#/components/schemas/ClientID"},"device_id":{"$ref":"#/components/schemas/DeviceID"},"device_warranty_expiration_date":{"description":"Warranty expiration date of the device","example":"2029-08-23T01:25:08Z","format":"date-time","type":"string"},"display_name":{"$ref":"#/components/schemas/DisplayName"},"hardware_model_name":{"description":"Hardware model name of the device","example":"Slide Z1, 1 TB","type":"string"},"hostname":{"$ref":"#/components/schemas/Hostname"},"image_version":{"description":"Version of the device image","example":"1.0.0","type":"string"},"ip_addresses":{"$ref":"#/components/schemas/IPAddresses"},"last_seen_at":{"$ref":"#/components/schemas/LastSeenAt"},"network_update_pending":{"description":"Whether the device has a network update pending","example":false,"type":"boolean"},"nfr":{"description":"Whether the device is an NFR device","example":false,"type":"boolean"},"package_version":{"description":"Version of the Slide package","example":"1.2.3","type":"string"},"public_ip_address":{"description":"Public IP address of the device","example":"74.83.124.111","format":"ipv4","type":"string"},"serial_number":{"description":"Serial number of the device","example":"SN123456","type":"string"},"service_model_name":{"description":"Service model name of the device","example":"Slide Z1 Subscription, 1 TB, 1 Year Cloud Retention","type":"string"},"service_model_name_short":{"description":"Short service model name of the device","example":"1 Year Cloud Retention","type":"string"},"service_status":{"description":"Status of the service","enum":["pending_activation","active","canceled"],"example":"active","type":"string"},"storage_total_bytes":{"description":"Total storage in bytes","example":1099511627776,"format":"uint64","type":"integer"},"storage_used_bytes":{"description":"Used storage in bytes","example":274877906944,"format":"uint64","type":"integer"},"total_agent_included_volume_used_bytes":{"description":"Amount of data currently on the device's Protected Systems","example":274877906944,"format":"uint64","type":"integer"}},"required":["device_id","display_name","last_seen_at","hostname","ip_addresses","addresses","public_ip_address","image_version","package_version","storage_used_bytes","storage_total_bytes","total_agent_included_volume_used_bytes","serial_number","hardware_model_name","device_warranty_expiration_date","service_model_name","service_model_name_short","service_status","nfr"],"type":"object"},"DeviceID":{"description":"ID of a device","example":"d_0123456789ab","pattern":"^d_[a-z0-9]{12}$","type":"string"},"DeviceNetwork":{"description":"Device network configuration","properties":{"dns_server_primary":{"$ref":"#/components/schemas/DNSServerPrimary"},"dns_server_secondary":{"$ref":"#/components/schemas/DNSServerSecondary"},"network_address":{"$ref":"#/components/schemas/DeviceNetworkAddress"},"network_gateway":{"$ref":"#/components/schemas/DeviceNetworkGateway"},"network_mode":{"$ref":"#/components/schemas/NetworkMode"},"network_update_pending":{"description":"Returned in response only, to indicate that the network update is in progress.","example":false,"type":"boolean"}},"required":["network_mode"],"type":"object"},"DeviceNetworkAddress":{"description":"IP address and network mask in CIDR notation (e.g., \"192.168.1.100/24\"). Required when network_mode is \"static\".","example":"192.168.1.100/24","type":"string"},"DeviceNetworkGateway":{"description":"Gateway IP address. Required when network_mode is \"static\".","example":"192.168.1.1","format":"ipv4","type":"string"},"DeviceNetworkUpdate":{"description":"Device network configuration update","properties":{"dns_server_primary":{"$ref":"#/components/schemas/DNSServerPrimary"},"dns_server_secondary":{"$ref":"#/components/schemas/DNSServerSecondary"},"network_address":{"$ref":"#/components/schemas/DeviceNetworkAddress"},"network_gateway":{"$ref":"#/components/schemas/DeviceNetworkGateway"},"network_mode":{"$ref":"#/components/schemas/NetworkMode"}},"type":"object"},"DeviceVLAN":{"description":"Device virtual interface (VLAN) configuration","properties":{"gateway":{"$ref":"#/components/schemas/VLANGateway"},"ip_address":{"$ref":"#/components/schemas/VLANIPAddress"},"name":{"$ref":"#/components/schemas/VLANName"},"network_mode":{"$ref":"#/components/schemas/NetworkMode"},"network_update_pending":{"description":"Returned in response only, to indicate that the network update is in progress.","example":false,"type":"boolean"},"vlan_id":{"description":"Unique identifier for the VLAN","example":"vlan_012345","type":"string"},"vlan_tag":{"$ref":"#/components/schemas/VLANTag"}},"required":["vlan_id","name","vlan_tag","network_mode"],"type":"object"},"DeviceVLANCreate":{"description":"Device virtual interface (VLAN) creation request","properties":{"gateway":{"$ref":"#/components/schemas/VLANGateway"},"ip_address":{"$ref":"#/components/schemas/VLANIPAddress"},"name":{"$ref":"#/components/schemas/VLANName"},"network_mode":{"$ref":"#/components/schemas/NetworkMode"},"network_update_pending":{"description":"Returned in response only, to indicate that the network update is in progress.","example":false,"type":"boolean"},"vlan_tag":{"$ref":"#/components/schemas/VLANTag"}},"required":["name","vlan_tag","network_mode"],"type":"object"},"DeviceVLANUpdate":{"description":"Device virtual interface (VLAN) update request","properties":{"gateway":{"$ref":"#/components/schemas/VLANGateway"},"ip_address":{"$ref":"#/components/schemas/VLANIPAddress"},"name":{"$ref":"#/components/schemas/VLANName"},"network_mode":{"$ref":"#/components/schemas/NetworkMode"},"network_update_pending":{"description":"Returned in response only, to indicate that the network update is in progress.","example":false,"type":"boolean"},"vlan_tag":{"$ref":"#/components/schemas/VLANTag"}},"type":"object"},"DisasterNetworkName":{"description":"Name of the network","example":"Bridge to LAN Network","maxLength":128,"minLength":1,"type":"string"},"DisasterNetworkType":{"description":"Network type of the disaster network","enum":["standard","bridge-lan"],"example":"standard","type":"string"},"DiskBus":{"description":"Disk bus of the virtual machine","enum":["sata","virtio"],"example":"virtio","type":"string"},"DisplayName":{"description":"Customizable display name","example":"My First Device","maxLength":128,"type":"string"},"DownloadURI":{"properties":{"type":{"$ref":"#/components/schemas/LocationType"},"uri":{"format":"uri","type":"string"}},"required":["type","uri"],"type":"object"},"DownloadURIs":{"description":"List of URIs to download the item. If you have network connectivity to the local device, use a local URI. Otherwise, use a cloud URI to proxy the download through the Slide Cloud.","items":{"$ref":"#/components/schemas/DownloadURI"},"type":"array"},"Error":{"description":"Error response object that represents an error that occurred during a request.","properties":{"codes":{"description":"List of error codes that occurred during a request.","items":{"description":"A unique error code that identifies the error.","title":"Code","type":"string"},"title":"Codes","type":"array"},"details":{"description":"List of error details that occurred during a request. This may contain action(s) that need to be taken before retrying the request.","items":{"description":"Short detail message describing the error.","title":"Detail","type":"string"},"title":"Details","type":"array"},"message":{"description":"Short message describing the error.","title":"Message","type":"string"}},"required":["codes","message","details"]},"ExpiresAt":{"description":"Expiration timestamp","example":"2024-08-23T01:25:08Z","format":"date-time","type":"string"},"FileIndexEnabled":{"description":"Whether the file index is enabled","example":true,"type":"boolean"},"FileIndexSearch":{"description":"A single file search result","properties":{"modified_time":{"description":"the time when the file was modified in the most recent snapshot","example":"2024-08-23T01:40:08Z","format":"date-time","type":"string"},"path":{"description":"path to a file on the protected system","example":"C:\\Users\\Administrator\\Downloads\\SlideAgent.exe","type":"string"},"size":{"description":"size of the file in bytes","example":614352,"format":"int64","type":"integer"}},"required":["path","size","modified_time"],"type":"object"},"FileRestore":{"description":"File restore object that represents a snapshot that has been restored and files exposed.","properties":{"agent_id":{"$ref":"#/components/schemas/AgentID"},"created_at":{"$ref":"#/components/schemas/CreatedAt"},"device_id":{"$ref":"#/components/schemas/DeviceID"},"expires_at":{"$ref":"#/components/schemas/ExpiresAt"},"file_restore_id":{"$ref":"#/components/schemas/FileRestoreID"},"purpose":{"$ref":"#/components/schemas/Purpose"},"snapshot_id":{"$ref":"#/components/schemas/SnapshotID"}},"required":["file_restore_id","device_id","agent_id","snapshot_id","created_at","purpose"],"type":"object"},"FileRestoreEntry":{"description":"File restore entry","properties":{"download_uris":{"$ref":"#/components/schemas/DownloadURIs"},"modified_at":{"description":"Modified time of the file","example":"2024-08-23T01:25:08Z","format":"date-time","type":"string"},"name":{"description":"Name of the file without path","example":"desktop.ini","type":"string"},"path":{"description":"Relative path of the file","example":"C/Users/john/Desktop/desktop.ini","type":"string"},"size":{"description":"Size of the file in bytes","example":1024,"format":"uint64","type":"integer"},"symlink_target_path":{"description":"Relative path of symlink, if type is \"symlink\"","example":"C/Users/john/Desktop/desktop.ini","type":"string"},"type":{"description":"Type of the file","enum":["file","dir","symlink"],"example":"file","type":"string"}},"required":["name","path","size","type","modified_at","download_uris"],"title":"FileRestoreEntry","type":"object"},"FileRestoreID":{"description":"ID of a file restore","example":"fr_0123456789ab","externalDocs":{"description":"See our console documentation for more information on file restores","url":"https://docs.slide.tech/restores/#file-restore"},"pattern":"^fr_[a-z0-9]{12}$","type":"string"},"FileRestorePush":{"description":"File restore push object that represents an attempt to restore a file to a protected system.","properties":{"destination_folder":{"$ref":"#/components/schemas/PushDestinationFolder"},"end_time":{"description":"Timestamp of when the push operation ended","example":"2024-08-23T01:25:08Z","format":"date-time","type":"string"},"file_restore_id":{"$ref":"#/components/schemas/FileRestoreID"},"file_restore_push_id":{"$ref":"#/components/schemas/FileRestorePushID"},"size":{"description":"Size of the file in bytes","example":21536,"type":"integer"},"source_file_path":{"$ref":"#/components/schemas/PushSourceFilePath"},"start_time":{"description":"Timestamp of when the push operation started","example":"2024-08-23T01:25:08Z","format":"date-time","type":"string"},"state":{"$ref":"#/components/schemas/PushState"}},"required":["file_restore_push_id","file_restore_id","start_time","state","source_file_path","destination_folder"],"type":"object"},"FileRestorePushID":{"description":"ID of a file restore push","example":"frp_0123456789ab","externalDocs":{"description":"See our console documentation for more information on pushing files to protected systems","url":"https://docs.slide.tech/restores/#push-to-protected-system"},"pattern":"^frp_[a-z0-9]{12}$","type":"string"},"FirstAndLastName":{"description":"First and last name of a user","example":"John Smith","maxLength":128,"minLength":1,"type":"string"},"ForceBootMenu":{"description":"Whether to force the VM to boot to the menu","example":false,"type":"boolean"},"Hostname":{"description":"Hostname of the system","example":"my-hostname-1","maxLength":63,"minLength":1,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9-]{0,62}$","type":"string"},"IPAddresses":{"deprecated":true,"description":"This field is deprecated and will be removed in the future.","items":{"example":"192.168.3.53","format":"ipv4","type":"string"},"type":"array"},"IPSecID":{"description":"ID of an IPsec connection","example":"ipsec_0123456789ab","pattern":"^ipsec_[a-z0-9]{12}$","type":"string"},"ISCSI":{"description":"Whether the image export should be shared over iSCSI","type":"boolean"},"ImageExport":{"description":"Image export object that represents an image export that has been created from a snapshot.","properties":{"agent_id":{"$ref":"#/components/schemas/AgentID"},"created_at":{"$ref":"#/components/schemas/CreatedAt"},"device_id":{"$ref":"#/components/schemas/DeviceID"},"image_export_id":{"$ref":"#/components/schemas/ImageExportID"},"image_type":{"$ref":"#/components/schemas/ImageType"},"iscsi":{"$ref":"#/components/schemas/ISCSI"},"nfs":{"$ref":"#/components/schemas/NFS"},"nfs_clients":{"$ref":"#/components/schemas/NFSClients"},"password":{"description":"Samba password","format":"password","type":"string"},"snapshot_id":{"$ref":"#/components/schemas/SnapshotID"}},"required":["image_export_id","device_id","agent_id","snapshot_id","image_type","created_at"],"type":"object"},"ImageExportEntry":{"description":"Image export entry","properties":{"disk_id":{"description":"ID of the disk","example":"disk_0123456789ab","type":"string"},"download_uris":{"$ref":"#/components/schemas/DownloadURIs"},"name":{"description":"Name of the disk image","example":"MyWindowsAgent (2024-08-05 20-44-25 EDT, C).vhdx","type":"string"},"size":{"description":"Size of the disk in bytes","example":1073741824,"format":"uint64","type":"integer"}},"required":["disk_id","name","size","download_uris"],"title":"ImageExportEntry","type":"object"},"ImageExportID":{"description":"ID of an image export","example":"ie_0123456789ab","externalDocs":{"description":"See our console documentation for more information on image exports","url":"https://docs.slide.tech/restores/#image-export"},"pattern":"^ie_[a-z0-9]{12}$","type":"string"},"ImageType":{"description":"Image type of the image export","enum":["vhdx","vhdx-dynamic","vhd","vmdk","vmdk-flat","qcow2","raw"],"example":"vhdx","type":"string"},"LastSeenAt":{"description":"Last seen timestamp","example":"2024-08-23T01:25:08Z","format":"date-time","type":"string"},"LocalRetentionPolicy":{"description":"Local retention policy configuration","properties":{"retention_policy_max_age_months":{"description":"Maximum snapshot age in months","enum":[1,3,6,12,24,36,84],"example":84,"type":"integer"},"retention_policy_name":{"description":"Retention policy name","enum":["lean","balanced","comprehensive"],"example":"balanced","type":"string"}},"required":["retention_policy_name","retention_policy_max_age_months"],"type":"object"},"Location":{"description":"Location object that represents a location where a snapshot is stored. This may be on the local device or in the cloud.","properties":{"device_id":{"$ref":"#/components/schemas/DeviceID"},"type":{"description":"Type of the location","enum":["local","cloud"],"type":"string"}},"required":["type","device_id"],"title":"Location","type":"object"},"LocationType":{"description":"Type of the location","enum":["local","cloud"],"type":"string"},"MemoryInMB":{"description":"Memory in MB","example":4096,"format":"uint32","maximum":131072,"minimum":1024,"nullable":true,"type":"integer"},"NFS":{"description":"Whether the image export should be shared over NFS","type":"boolean"},"NFSClients":{"items":{"description":"Client IPv4 or CIDR that will be allowed to connect over NFS","example":"192.168.1.0/24","type":"string"},"type":"array"},"Network":{"description":"Network object that represents a network.","properties":{"bridge_device_id":{"$ref":"#/components/schemas/DeviceID"},"client_id":{"$ref":"#/components/schemas/ClientID"},"comments":{"description":"Comments about the network","example":"This is a test network","type":"string"},"connected_virt_ids":{"description":"List of the virtual machines connected to the network.","items":{"$ref":"#/components/schemas/VirtID"},"type":"array"},"dhcp":{"description":"Whether the disaster network should have DHCP","example":true,"type":"boolean"},"dhcp_range_end":{"description":"DHCP range end for the network","example":"10.0.0.200","type":"string"},"dhcp_range_start":{"description":"DHCP range start for the network","example":"10.0.0.100","type":"string"},"internet":{"description":"Whether the network should have Internet access","example":true,"type":"boolean"},"ipsec_conns":{"items":{"$ref":"#/components/schemas/NetworkIPSecConn"},"type":"array"},"name":{"$ref":"#/components/schemas/DisasterNetworkName"},"nameservers":{"description":"List of DNS servers","example":["1.1.1.1","1.0.0.1"],"items":{"type":"string"},"type":"array"},"network_id":{"$ref":"#/components/schemas/NetworkID"},"port_forwards":{"items":{"$ref":"#/components/schemas/NetworkPortForward"},"type":"array"},"router_prefix":{"description":"Router IP and netmask for the network","example":"10.0.0.1/24","type":"string"},"type":{"$ref":"#/components/schemas/DisasterNetworkType"},"vlan_tag":{"description":"VLAN tag for bridge-LAN networks (0 = no tagging, 1-4094 = tagged)","example":100,"type":"integer"},"wg":{"description":"Whether the network should have WireGuard enabled","example":true,"type":"boolean"},"wg_peers":{"items":{"$ref":"#/components/schemas/NetworkWGPeer"},"type":"array"},"wg_prefix":{"description":"WireGuard IP address and netmask for the WireGuard network","example":"192.168.178.1/24","type":"string"},"wg_public_key":{"description":"WireGuard server's public key","example":"IMKVRsReZWiyL9YorJjVQvQ8/cuFI/3tXBvoWeAxghw=","type":"string"}},"required":["network_id","type","name","comments","connected_virt_ids"],"type":"object"},"NetworkAddress":{"properties":{"ips":{"items":{"description":"The IP addresses associated with the MAC address.","example":"192.168.1.104","title":"IP Address","type":"string"},"type":"array"},"mac":{"description":"MAC address of the network interface.","example":"62:bb:d3:0d:db:7d","type":"string"}},"required":["mac","ips"],"type":"object"},"NetworkAddresses":{"description":"List of network addresses","items":{"$ref":"#/components/schemas/NetworkAddress"},"type":"array"},"NetworkComments":{"description":"Comments about the network","example":"This is a network for a client's disaster","maxLength":1024,"type":"string"},"NetworkID":{"description":"ID of an network","example":"net_012345","pattern":"^net_[a-z0-9]{6}$","type":"string"},"NetworkIPSecConn":{"description":"NetworkIPsecConn object that represents an IPsec connection into a network.","properties":{"ipsec_id":{"$ref":"#/components/schemas/IPSecID"},"local_addrs":{"description":"Public IP addresses of the Slide Cloud gateway that manages the IPsec connection","items":{"description":"Public IP address of the Slide Cloud gateway","example":"1.2.3.4","title":"Public IP Address","type":"string"},"type":"array"},"local_id":{"description":"Identifier for the Slide Cloud-side of the IPsec connection","example":"ipsec_0123456789ab_slide","type":"string"},"local_networks":{"description":"List of Slide-side networks that are accessible through the IPsec connection","items":{"example":"10.0.0.0/24","title":"Network in CIDR format","type":"string"},"type":"array"},"name":{"description":"Name of the IPsec connection","example":"Dental Associates, Main Office","type":"string"},"psk":{"description":"Pre-shared key for the IPsec connection","example":"buRAPDIX5SMlPlzLsLO8WVaWeFXam1Aa","type":"string"},"remote_addrs":{"description":"Public IP addresses of the partner-side of the router/firewall","items":{"description":"Public IP address used to connect to the Slide Cloud network's IPsec connection","example":"1.2.3.4","title":"Public IP Address","type":"string"},"type":"array"},"remote_id":{"description":"Identifier for the partner-side of the IPsec connection","example":"ipsec_0123456789ab_partner","type":"string"},"remote_networks":{"description":"List of partner-side networks that are accessible through the IPsec connection","items":{"example":"10.0.0.0/24","title":"Network in CIDR format","type":"string"},"type":"array"}},"required":["ipsec_id","name","psk","local_id","local_addrs","local_networks","remote_id","remote_addrs","remote_networks"],"type":"object"},"NetworkMode":{"description":"Network mode (DHCP or static IP)","enum":["dhcp","static"],"example":"static","type":"string"},"NetworkModel":{"description":"Network model of the virtual machine","enum":["hypervisor_default","e1000","rtl8139","virtio"],"example":"virtio","type":"string"},"NetworkPortForward":{"description":"NetworkPortForward object that represents a port forwarding.","properties":{"dest":{"description":"Destination IP address and port pair","example":"10.0.0.100:80","type":"string"},"endpoint":{"description":"Public host:port pair of the public gateway of the port forward","example":"use1-prod-gateway-1.slide.tech:25881","pattern":"^[0-9a-zA-Z.-]+:[0-9]+$","type":"string"},"port":{"description":"Listen port number on the public gateway","example":25881,"type":"integer"},"port_forward_id":{"$ref":"#/components/schemas/PortForwardID"},"proto":{"description":"Protocol, tcp or udp","example":"tcp","type":"string"}},"required":["port_forward_id","proto","port","dest"],"type":"object"},"NetworkType":{"description":"Network type of the virtual machine. If this field is not present, the virtual machine does not have networking.","enum":["network-none","network-nat-shared","network-nat-isolated","network-hostonly","bridge","network-id"],"example":"bridge","type":"string"},"NetworkWGPeer":{"description":"NetworkWGPeer object that represents a WireGuard client.","properties":{"peer_name":{"description":"Name of the WireGuard client","example":"My PC","type":"string"},"remote_networks":{"$ref":"#/components/schemas/RemoteNetworks"},"wg_address":{"description":"WireGuard address of this peer, part of the network defined in wg_prefix","example":"10.0.0.100","type":"string"},"wg_endpoint":{"description":"Address of the WireGuard endpoint that this peer connects to","example":"use1-prod-gateway-1.slide.tech:51820","type":"string"},"wg_peer_id":{"$ref":"#/components/schemas/WGPeerID"},"wg_private_key":{"description":"WireGuard private key of this peer","example":"INRPOJHOzuMiRzim2tzzU2OU7Z3jNOIS4HRVA32NzUY","type":"string"},"wg_public_key":{"description":"WireGuard public key of this peer","example":"buRAPDIX5SMlPlzLsLO8WVaWe+1+FXf+TKk26e4Vkm8=","type":"string"}},"required":["wg_peer_id","peer_name","wg_public_key","wg_private_key","wg_address","wg_endpoint","remote_networks"],"type":"object"},"Pagination":{"properties":{"next_offset":{"description":"Next offset to use for pagination. If this field is not present, that indicates there are no more items to fetch.","example":10,"format":"uint32","type":"integer"}},"type":"object"},"PairCode":{"description":"Short code used to identify an unpaired agent","example":"ABC123","externalDocs":{"description":"See our console documentation for more information on pairing agents","url":"https://docs.slide.tech/getting-started/#step-3-install-slide-agent"},"pattern":"^[a-zA-Z0-9]{6}$","type":"string"},"Passphrase":{"description":"User passphrase. If the agent has a user passphrase, you must provide it here.","example":"Super Secret Passphrase","minLength":10,"type":"string"},"PathVersion":{"description":"A single version of a path","properties":{"modified_time":{"description":"the time when the file was last modified in the snapshot","example":"2024-08-23T01:40:08Z","format":"date-time","type":"string"},"size":{"description":"size of the file in bytes","example":614352,"format":"int64","type":"integer"},"snapshot_id":{"$ref":"#/components/schemas/SnapshotID"}},"required":["snapshot_id","size","modified_time"],"type":"object"},"PortForwardID":{"description":"ID of a port forward definition","example":"pfw_0123456789ab","pattern":"^pfw_[a-z0-9]{12}$","type":"string"},"PostalAddress":{"description":"Postal address details","properties":{"City":{"description":"City of the postal address","example":"New York","type":"string"},"Country":{"description":"Two-letter country code","example":"US","type":"string"},"Line1":{"description":"First line of the postal address","example":"123 Main St","type":"string"},"Line2":{"description":"Second line of the postal address","example":"Apt 4B","type":"string"},"PostalCode":{"description":"Postal (ZIP) code of the postal address","example":"10001","type":"string"},"State":{"description":"State or province of the postal address","example":"NY","type":"string"}},"required":["Line1","City","State","PostalCode","Country"],"type":"object"},"PrimaryContact":{"description":"Name of the primary contact","example":"John Smith","maxLength":128,"minLength":1,"type":"string"},"PrimaryEmail":{"description":"Email of the primary contact","example":"john.doe@gmail.com","format":"email","type":"string"},"PrimaryPhone":{"description":"Phone number of the primary contact","example":"+1 555-555-5555","type":"string"},"Purpose":{"description":"Purpose for creating the virtual machine or file restore. If this is set to disaster, Slide Support will recieve a notification that you are in a disaster. File restores not created by the slide box for file system verification will have this field set to disaster.","enum":["test","disaster"],"example":"disaster","type":"string"},"PushDestinationFolder":{"description":"The folder on the protected system where the pushed file is restored.\nFor security reasons, restores are only permitted to a `SlideRestore` folder rooted at a known mount point on the agent:\nfor Windows agents, the root of a drive (e.g. `C:\\SlideRestore`); for Linux agents, an absolute path under a mounted\nvolume that ends in `/SlideRestore` (e.g. `/SlideRestore` for the root mount, or `/data/SlideRestore` for a `/data` mount).\n","example":"C:\\SlideRestore","pattern":"^([A-Z]:\\\\SlideRestore|(/[^/]+)*/SlideRestore)$","type":"string"},"PushSourceFilePath":{"description":"Path of the file as it appears inside the mounted file restore — not the file's path on the protected system.\nThe leading path component is the source volume's identifier (the drive letter for Windows, e.g. `C`, or `root` for the\nroot mount on Linux), followed by forward-slash-separated path components (e.g. `C/Users/Administrator/Documents/ImportantFile.docx`\nfor a Windows C: drive, or `root/home/admin/important.txt` for a Linux root mount).\n","example":"C/Users/Administrator/Documents/ImportantFile.docx","type":"string"},"PushState":{"description":"Current state of the push operation","enum":["created","in_progress","completed","failed","canceled"],"example":"completed","type":"string"},"RemoteNetworks":{"description":"List of remote networks","items":{"example":"10.80.0.0/24","format":"ipv4","type":"string"},"type":"array"},"Resolved":{"description":"Whether the alert has been resolved","example":false,"type":"boolean"},"ResolvedAt":{"description":"Timestamp at which an alert was resolved","example":"2024-08-23T01:25:08Z","format":"date-time","type":"string"},"ResolvedBy":{"description":"Name of the person who resolved the alert, or \"auto\" if resolved automatically","example":"John Smith","type":"string"},"RoleID":{"description":"ID of a role","enum":["r_account_owner","r_account_admin","r_account_bc_admin","r_account_bc_tech","r_account_readonly"],"example":"r_account_owner","type":"string"},"ServiceVerificationResult":{"description":"Result of verifying a single service during boot verification.","properties":{"name":{"description":"Internal name of the Windows service.","example":"wuauserv","type":"string"},"service_id":{"description":"Unique identifier of the service.","example":"svc_abc123","type":"string"},"state":{"description":"State of the service at verification time.","example":"Running","type":"string"}},"required":["service_id","name","state"],"type":"object"},"Snapshot":{"description":"Snapshot object that represents a snapshot that was taken as part of a successful backup.","properties":{"agent_id":{"$ref":"#/components/schemas/AgentID"},"backup_ended_at":{"description":"End time of the backup that created the snapshot","example":"2024-08-23T01:40:08Z","format":"date-time","type":"string"},"backup_started_at":{"description":"Start time of the backup that created the snapshot","example":"2024-08-23T01:25:08Z","format":"date-time","type":"string"},"deleted":{"description":"Timestamp when the snapshot was deleted. If this field is not present, the snapshot has not been deleted.","example":"2024-08-23T01:25:08Z","format":"date-time","type":"string"},"deletions":{"$ref":"#/components/schemas/Deletions"},"locations":{"description":"Location(s) of the snapshot. It will always exist in at least 1 location.","items":{"$ref":"#/components/schemas/Location"},"type":"array"},"snapshot_id":{"$ref":"#/components/schemas/SnapshotID"},"verify_boot_duration_seconds":{"description":"Duration of the boot verification in seconds, measured from VM power-on to the moment a successful boot was determined. Only present when verify_boot_status is success.","example":95,"format":"uint64","type":"integer"},"verify_boot_screenshot_url":{"description":"URL to the screenshot of the boot verification. If this field is not present, that indicates a screenshot was not taken.","format":"uri","type":"string"},"verify_boot_status":{"description":"Status of boot verification. If this field is not present, that indicates boot verification is pending.","enum":["success","warning","error","skipped","pending","pending_due_to_disaster_vm"],"example":"success","type":"string"},"verify_fs_status":{"description":"Status of filesystem verification. If this field is not present, that indicates filesystem verification is pending.","enum":["success","warning","error","skipped"],"example":"success","type":"string"},"verify_service_status":{"description":"Status of service verification. If this field is not present, that indicates service verification is pending.","enum":["success","error","skipped","stopped"],"example":"success","type":"string"}},"required":["snapshot_id","agent_id","locations","backup_started_at","backup_ended_at"],"type":"object"},"SnapshotDeletedBy":{"description":"Name of the person or system that deleted the snapshot","example":{"example1":{"value":"John Smith"},"example2":{"value":"Retention"}},"type":"string"},"SnapshotID":{"description":"ID of a snapshot","example":"s_0123456789ab","pattern":"^s_[a-z0-9]{12}$","type":"string"},"SnapshotLocation":{"description":"Filter snapshots by location or deleted status.\n\n**Enum Values:**\n- `exists_local`: Snapshots that exist on the local device storage\n- `exists_cloud`: Snapshots that exist in cloud storage\n- `exists_deleted`: Any deleted snapshots (includes all deletion types)\n- `exists_deleted_retention`: Snapshots deleted by retention policy\n- `exists_deleted_manual`: Snapshots manually deleted by users\n- `exists_deleted_other`: Snapshots deleted by other processes/systems\n- `location_any`: Snapshots in any location (local, cloud, including deleted)\n- If you do not specify a location, the default is local and cloud not including deleted.\n","enum":["exists_local","exists_cloud","exists_deleted","exists_deleted_retention","exists_deleted_manual","exists_deleted_other","location_any"],"type":"string"},"Timezone":{"description":"Timezone of the agent","example":"America/New_York","pattern":"^[a-zA-Z0-9/_-]+$","type":"string"},"User":{"description":"User object that represents a user.","properties":{"display_name":{"$ref":"#/components/schemas/DisplayName"},"email":{"description":"Email address of the user","example":"john.doe@gmail.com","format":"email","type":"string"},"first_name":{"description":"First name of the user","example":"John","type":"string"},"last_name":{"description":"Last name of the user","example":"Doe","type":"string"},"role_id":{"$ref":"#/components/schemas/RoleID"},"user_id":{"$ref":"#/components/schemas/UserID"}},"required":["user_id","first_name","last_name","display_name","email","role_id"],"type":"object"},"UserID":{"description":"ID of a user","example":"u_0123456789ab","pattern":"^u_[a-z0-9]{12}$","type":"string"},"UserIDOrEmpty":{"description":"ID of a user or an empty string","example":"u_0123456789ab","pattern":"^u_[a-z0-9]{12}$","type":"string"},"VLANGateway":{"description":"Gateway IP address. Required when network_mode is \"static\".","example":"192.168.100.1","format":"ipv4","type":"string"},"VLANIPAddress":{"description":"IP address and network mask in CIDR notation (e.g., \"192.168.100.1/24\"). Required when network_mode is \"static\".","example":"192.168.100.1/24","type":"string"},"VLANName":{"description":"Display name for the virtual interface","example":"vlan100","maxLength":32,"minLength":1,"type":"string"},"VLANTag":{"description":"802.1Q VLAN tag (1-4094)","example":100,"format":"uint32","maximum":4094,"minimum":1,"type":"integer"},"VNC":{"description":"VNC server object. Use this to connect to the virtual machine using a VNC client.","properties":{"host":{"description":"Host of the VNC server","example":"192.168.1.53","type":"string"},"port":{"description":"Port of the VNC server","example":12345,"format":"uint32","type":"integer"},"type":{"$ref":"#/components/schemas/LocationType"},"websocket_uri":{"description":"Websocket URI of the VNC server","example":"wss://example.com","type":"string"}},"required":["type"],"type":"object"},"VNCEnabled":{"description":"Whether VNC access is enabled","example":false,"nullable":true,"type":"boolean"},"VirtBootMods":{"description":"Optional boot mods to enable on the virtual machine. `passwordless_admin_user` allows the Windows Administrator user to log in. `enable_slide_agent` keeps the Slide Agent running on the virtual machine so it continues taking backups (otherwise the agent is disabled on restores).\n","items":{"enum":["passwordless_admin_user","enable_slide_agent"],"type":"string"},"type":"array"},"VirtID":{"description":"ID of a virtual machine","example":"virt_0123456789ab","externalDocs":{"description":"See our console documentation for more information on virtual machines","url":"https://docs.slide.tech/restores/#virtualization"},"pattern":"^virt_[a-z0-9]{12}$","type":"string"},"VirtualMachine":{"description":"Virtual machine object that represents a virtual machine that has been created from a snapshot.","properties":{"agent_id":{"$ref":"#/components/schemas/AgentID"},"cpu_count":{"$ref":"#/components/schemas/CPUCount"},"created_at":{"$ref":"#/components/schemas/CreatedAt"},"device_id":{"$ref":"#/components/schemas/DeviceID"},"disk_bus":{"$ref":"#/components/schemas/DiskBus"},"expires_at":{"$ref":"#/components/schemas/ExpiresAt"},"force_boot_menu":{"$ref":"#/components/schemas/ForceBootMenu"},"ip_address":{"description":"IP address","type":"string"},"mac_address":{"description":"MAC address","type":"string"},"memory_in_mb":{"$ref":"#/components/schemas/MemoryInMB"},"network_model":{"$ref":"#/components/schemas/NetworkModel"},"network_source":{"$ref":"#/components/schemas/NetworkID"},"network_type":{"$ref":"#/components/schemas/NetworkType"},"purpose":{"$ref":"#/components/schemas/Purpose"},"rdp_endpoint":{"description":"RDP endpoint","type":"string"},"snapshot_id":{"$ref":"#/components/schemas/SnapshotID"},"state":{"$ref":"#/components/schemas/VirtualMachineState"},"virt_id":{"$ref":"#/components/schemas/VirtID"},"vnc":{"description":"List of VNC connection info","items":{"$ref":"#/components/schemas/VNC"},"type":"array"},"vnc_enabled":{"$ref":"#/components/schemas/VNCEnabled"},"vnc_password":{"description":"VNC password","format":"password","type":"string"}},"required":["virt_id","device_id","agent_id","snapshot_id","state","created_at","cpu_count","memory_in_mb","disk_bus","network_model","mac_address","vnc_enabled","vnc","vnc_password","purpose"],"type":"object"},"VirtualMachineState":{"description":"State of the virtual machine","enum":["running","stopped","paused"],"example":"running","type":"string"},"VolumeID":{"description":"ID of a volume","example":"v_0123456789ab","pattern":"^v_[a-z0-9]{12}$","type":"string"},"VolumeSetting":{"description":"Volume setting configuration","properties":{"include":{"description":"Whether to include this volume in backups","example":true,"type":"boolean"},"mount_points":{"description":"Mount points for this volume (e.g., [\"C:\", \"D:\"])","example":["C:"],"items":{"type":"string"},"type":"array"},"volume_id":{"description":"Volume ID","example":"v_0123456789ab","type":"string"}},"required":["volume_id","include"],"type":"object"},"Volumes":{"description":"Volumes to include in the backup","items":{"properties":{"include":{"description":"Whether the volume is included in the backup","example":true,"type":"boolean"},"mount_points":{"description":"Mount points for this volume (e.g., [\"C:\", \"D:\"]) - present in responses only","example":["C:"],"items":{"type":"string"},"type":"array"},"volume_id":{"$ref":"#/components/schemas/VolumeID"}},"required":["volume_id","include"],"type":"object"},"type":"array"},"VolumesIncludeDefault":{"description":"Whether the default volume is included in the backup","example":true,"type":"boolean"},"WGPeerID":{"description":"ID of a WireGuard peer","example":"wgp_0123456789ab","pattern":"^wgp_[a-z0-9]{12}$","type":"string"}},"securitySchemes":{"BearerAuth":{"bearerFormat":"string","scheme":"bearer","type":"http"}}},"info":{"contact":{"email":"hey@slide.tech","name":"Slide Team","url":"https://docs.slide.tech"},"description":"## Introduction\nThe Slide API is organized around REST. Our API has predictable resource-oriented URLs, accepts JSON-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs.\n\n## Authentication\nWe use API tokens to authenticate requests. You can view and manage your API tokens in the [Slide Console](https://docs.slide.tech).\nWhen making HTTP requests, you'll need to include the API token in the `Authorization` header, using Bearer auth (e.g. `Authorization: Bearer YOUR_SECRET_TOKEN`).\n\nExample:\n```shell\n$ curl -H 'Authorization: Bearer YOUR_SECRET_TOKEN' 'https://api.slide.tech/v1/device'\n```\n\n## Pagination\nAll list endpoints support pagination. You can use the `limit` and `offset` query parameters to control the number of items returned and the starting index.\nList responses will include a `pagination` key that includes the `next_offset` to use for pagination.\nIf `next_offset` is not present, that indicates there are no more items to fetch.\n\nExample:\n```shell\n$ curl -H 'Authorization: Bearer YOUR_SECRET_TOKEN' \\\n    'https://api.slide.tech/v1/device?offset=0\u0026limit=10'\n{\n    \"pagination\": {\n        \"next_offset\": 10\n    },\n    \"data\": [\n        ...\n    ]\n}\n```\n\n## Rate Limiting\nWe limit the number of requests you can make to the API within a certain time frame.\nEach API token has a pool of `50` requests. We refill this pool at a rate of `10` requests per second.\nIf you exceed the rate limit, you'll receive a response with a `429 Too Many Requests` HTTP code and a `err_rate_limit_exceeded` error code.\nPlease wait before retrying the request. We recommend you implement an exponential backoff strategy to handle rate limits.\n\n## Errors\nSlide uses conventional HTTP response codes to indicate the success or failure of an API request.\nIn general, codes in the 2xx range indicate success, codes in the 4xx range indicate an error that failed given the information provided (e.g., a required parameter was omitted), and codes in the 5xx range indicate an error with Slide's servers.\n\nWe also include [error codes and details](#model/error) in the response, which may provide more context about the error.\n\nExample:\n```shell\n$ curl 'https://api.slide.tech/v1/device'\n{\n    \"codes\": [\n        \"err_missing_authentication\"\n    ],\n    \"details\": [\n        ...\n    ],\n    \"message\": \"unauthorized\"\n}\n```\n\nSome common error codes are:\n\n| Code                         | Description                                                                                                                                             |\n|------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `err_endpoint_not_found`     | Requested endpoint does not exist.                                                                                                                      |\n| `err_entity_not_found`       | Requested entity does not exist.                                                                                                                        |\n| `err_validation_error`       | Bad request due to validation error. The error `details` will contain any fields that were not valid.                                                   |\n| `err_missing_authentication` | Unauthorized due to missing API token. See [authentication](#description/authentication) for more details.                                              |\n| `err_unauthorized`           | Unauthorized due to invalid API token. You've provided an invalid API token or the API token does not have permission to access the requested resource. |\n| `err_internal_server_error`  | Something went wrong. If you retry the request and it does not succeed, you may contact us at `hey@slide.tech`.                                         |\n| `err_rate_limit_exceeded`    | Rate limit exceeded. Please wait before retrying the request. See [rate limiting](#description/rate-limiting) for more details.                         |\n\n\u003cdetails\u003e\n  \u003csummary\u003eShow more error codes.\u003c/summary\u003e\n\n| Code                                | Description                                                                                                           |\n|-------------------------------------|-----------------------------------------------------------------------------------------------------------------------|\n| `err_agent_not_connected_to_device` | Agent is not connected to the device. Ensure the agent is powered on and has network connectivity.                    |\n| `err_device_not_connected_to_cloud` | Device is not connected to the cloud. Ensure the device is powered on and has network connectivity.                   |\n| `err_backup_already_running`        | A backup is already running for this agent. Please wait for the current backup to complete before starting a new one. |\n| `err_client_not_found`              | Client not found. Ensure the client ID is valid and the client exists.                                                |\n\n\u003c/details\u003e\n\n## Eventual Consistency\n\nSlide operates an eventual consistency model, where data may not be immediately available after an operation.\nThis is due to the distributed nature of our system and the need for replication and synchronization across multiple\nsystems. Users should expect that operations may take a short period of time to propagate and become visible to all\ncomponents of the system.\n\n## Deprecations and Breaking Changes\n\n### Active Deprecations\n\n`Device.ip_addresses` and `Agent.ip_addresses` will be removed. They have been replaced by `Device.addresses` and `Agent.addresses` respectively.\n","title":"Slide API","version":"1.36.0"},"openapi":"3.0.0","paths":{"/v1/account":{"get":{"operationId":"Accounts","parameters":[{"$ref":"#/components/parameters/QueryOffset"},{"$ref":"#/components/parameters/QueryLimit"},{"description":"Sort by a specific field","in":"query","name":"sort_by","schema":{"default":"name","enum":["name"],"type":"string"}},{"$ref":"#/components/parameters/QuerySortAsc"},{"$ref":"#/components/parameters/QueryCreatedAfter"},{"$ref":"#/components/parameters/QueryCreatedBefore"}],"responses":{"200":{"content":{"application/json":{"schema":{"description":"Paginated response","properties":{"data":{"description":"List of accounts","items":{"$ref":"#/components/schemas/Account"},"title":"Accounts","type":"array"},"pagination":{"$ref":"#/components/schemas/Pagination"}},"required":["pagination","data"],"title":"Paginated response","type":"object"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"500":{"$ref":"#/components/responses/500"}},"summary":"List accounts","tags":["Accounts"]}},"/v1/account/{account_id}":{"get":{"operationId":"AccountByID","parameters":[{"$ref":"#/components/parameters/PathAccountID"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Account"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Get account","tags":["Accounts"]},"patch":{"operationId":"AccountUpdate","parameters":[{"$ref":"#/components/parameters/PathAccountID"}],"requestBody":{"content":{"application/json":{"example":"{\n  \"alert_emails\": \"\u003cchange me or remove the field to keep unchanged\u003e\"\n}","schema":{"properties":{"alert_emails":{"$ref":"#/components/schemas/AlertEmails"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Account"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Update account","tags":["Accounts"]}},"/v1/agent":{"get":{"operationId":"Agents","parameters":[{"$ref":"#/components/parameters/QueryDeviceID"},{"$ref":"#/components/parameters/QueryOffset"},{"$ref":"#/components/parameters/QueryLimit"},{"description":"Sort by a specific field","in":"query","name":"sort_by","schema":{"default":"hostname","enum":["id","hostname","name"],"type":"string"}},{"$ref":"#/components/parameters/QuerySortAsc"},{"$ref":"#/components/parameters/QueryClientID"},{"description":"Filter agents to before a specific pairing timestamp (RFC3339 format)","in":"query","name":"paired_before","schema":{"format":"date-time","type":"string"}},{"description":"Filter agents to after a specific pairing timestamp (RFC3339 format)","in":"query","name":"paired_after","schema":{"format":"date-time","type":"string"}},{"description":"Filter agents by type","in":"query","name":"agent_type","schema":{"enum":["windows","linux","nas"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"description":"Paginated response","properties":{"data":{"description":"List of agents","items":{"$ref":"#/components/schemas/Agent"},"title":"Agents","type":"array"},"pagination":{"$ref":"#/components/schemas/Pagination"}},"required":["pagination","data"],"title":"Paginated response","type":"object"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"500":{"$ref":"#/components/responses/500"}},"summary":"List agents","tags":["Agents"]},"post":{"operationId":"AgentPrePair","requestBody":{"content":{"application/json":{"example":"{\n  \"display_name\": \"My Agent\",\n  \"device_id\": \"d_0123456789ab\"\n}","schema":{"properties":{"device_id":{"$ref":"#/components/schemas/DeviceID"},"display_name":{"$ref":"#/components/schemas/DisplayName"}},"required":["display_name","device_id"]}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentPairCode"}}},"description":"Created"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Create an agent for an auto-pair installation","tags":["Agents"]}},"/v1/agent/pair":{"post":{"operationId":"AgentPair","requestBody":{"content":{"application/json":{"example":"{\n  \"pair_code\": \"ABC123\",\n  \"device_id\": \"d_0123456789ab\"\n}","schema":{"properties":{"device_id":{"$ref":"#/components/schemas/DeviceID"},"pair_code":{"$ref":"#/components/schemas/PairCode"}},"required":["pair_code","device_id"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Agent"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Pair agent","tags":["Agents"]}},"/v1/agent/{agent_id}":{"get":{"operationId":"AgentByID","parameters":[{"$ref":"#/components/parameters/PathAgentID"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Agent"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Get agent","tags":["Agents"]},"patch":{"operationId":"AgentUpdate","parameters":[{"$ref":"#/components/parameters/PathAgentID"}],"requestBody":{"content":{"application/json":{"example":"{\n  \"display_name\": \"\u003cchange me or remove the field to keep unchanged\u003e\",\n  \"vss_writer_configs\": [{\"writer_id\":\"{76fe1ac4-15f7-4bcd-987e-8e1acb462fb7}\", \"excluded\":true}, {\"writer_id\":\"{A6AD56C2-B509-4E6C-BB19-49D8F43532F0}\", \"excluded\":false}],\n  \"sealed\": false,\n  \"passphrase\": \"Super Secret Passphrase\",\n  \"file-index\": false,\n  \"backup_paused_until\": \"2025-10-31T23:59:59Z\",\n  \"backup_paused_indefinite\": true,\n  \"backup_resume\": true,\n  \"comments\": \"Agent for production server\",\n  \"backup_schedule\": {\n    \"interval_in_minutes\": 60,\n    \"start_hour\": 9,\n    \"end_hour\": 18,\n    \"days\": [0, 1, 2, 3, 4, 5, 6]\n  },\n  \"timezone\": \"America/New_York\",\n  \"local_retention_policy\": {\n    \"retention_policy_name\": \"balanced\",\n    \"retention_policy_max_age_months\": 84\n  },\n  \"volumes\": [\n    {\n      \"volume_id\": \"v_0123456789ab\",\n      \"include\": true\n    }\n  ],\n  \"volumes_include_default\": true,\n  \"alert_configs\": [\n    {\n      \"alert_type\": \"device_not_checking_in\",\n      \"pause_for_minutes\": 1440\n    },\n    {\n      \"alert_type\": \"device_out_of_date\",\n      \"pause_for_minutes\": 1440\n    },\n    {\n      \"alert_type\": \"device_storage_not_healthy\",\n      \"pause_for_minutes\": 1440\n    },\n    {\n      \"alert_type\": \"device_storage_space_low\",\n      \"pause_for_minutes\": 1440\n    },\n    {\n      \"alert_type\": \"device_storage_space_critical\",\n      \"pause_for_minutes\": 1440\n    },\n    {\n      \"alert_type\": \"agent_not_checking_in\",\n      \"pause_for_minutes\": 1440\n    },\n    {\n      \"alert_type\": \"agent_not_backing_up\",\n      \"pause_for_minutes\": 1440\n    },\n    {\n      \"alert_type\": \"agent_backup_failed\",\n      \"pause_for_minutes\": 1440\n    }\n  ],\n  \"default_restore_settings\": {\n    \"cpu_count\": 4,\n    \"memory_mb\": 8192,\n    \"network_model\": \"virtio\",\n    \"disk_bus\": \"virtio\"\n  }\n}","schema":{"properties":{"alert_configs":{"description":"Array of alert configurations","items":{"$ref":"#/components/schemas/AlertConfig"},"type":"array"},"backup_paused_indefinite":{"description":"Set to true to pause backups indefinitely. This takes precedence over backup_paused_until. Backups will remain paused until you explicitly set backup_resume to true. Set to false to clear the indefinite pause (backups will resume, or remain paused until backup_paused_until if that is still in the future).","example":true,"type":"boolean"},"backup_paused_until":{"description":"Pause backups until this timestamp (RFC3339 format). Backups will automatically resume after this time. To pause indefinitely instead, use backup_paused_indefinite. If both backup_paused_until and backup_paused_indefinite are set, backup_paused_indefinite takes precedence and backups remain paused until explicitly resumed via backup_resume.","example":"2025-10-31T23:59:59Z","format":"date-time","type":"string"},"backup_resume":{"description":"Set to true to immediately resume backups. This clears both backup_paused_until and backup_paused_indefinite, and takes precedence over both if provided in the same request.","example":true,"type":"boolean"},"backup_schedule":{"$ref":"#/components/schemas/BackupSchedule"},"comments":{"description":"Optional comments for this agent.","example":"Agent for production server","maxLength":4000,"type":"string"},"default_restore_settings":{"$ref":"#/components/schemas/DefaultRestoreSettings"},"display_name":{"$ref":"#/components/schemas/DisplayName"},"file_index":{"deprecated":true,"description":"This field exists only for backward compatibility. It is a deprecated field. Use file_index_enabled instead.","type":"boolean"},"file_index_enabled":{"description":"Set to false to leave file indexing off on an agent, true to enable file indexing and searching","type":"boolean"},"local_retention_policy":{"$ref":"#/components/schemas/LocalRetentionPolicy"},"nas_smb_password":{"description":"SMB password for the NAS share. Only applicable to NAS agents. Omit to keep the current password. Write-only.","example":"secretpassword","type":"string","writeOnly":true},"nas_smb_username":{"description":"SMB username for the NAS share. Only applicable to NAS agents.","example":"backupuser","type":"string"},"nas_unc_path":{"description":"UNC path to the NAS SMB share. Only applicable to NAS agents.","example":"\\\\nas01\\backups","type":"string"},"passphrase":{"$ref":"#/components/schemas/Passphrase"},"sealed":{"description":"Set to false to unseal an agent with a user-managed passphrase. This will allow backups to occur.","type":"boolean"},"timezone":{"description":"IANA timezone string (e.g., \"America/New_York\", \"Europe/London\")","example":"America/New_York","type":"string"},"volumes":{"description":"Array of volume settings (volume_id and include flag)","items":{"$ref":"#/components/schemas/VolumeSetting"},"type":"array"},"volumes_include_default":{"description":"Whether new volumes should be included by default","example":true,"type":"boolean"},"vss_writer_configs":{"items":{"$ref":"#/components/schemas/AgentVSSWriterConfig"},"type":"array"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Agent"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Update agent","tags":["Agents"]}},"/v1/agent/{agent_id}/file-search":{"get":{"operationId":"FileSearch","parameters":[{"$ref":"#/components/parameters/PathAgentID"},{"$ref":"#/components/parameters/QueryOffset"},{"$ref":"#/components/parameters/QueryLimit"},{"description":"Sort by a specific field","in":"query","name":"sort_by","schema":{"default":"path","enum":["path","last_modified","file_size"],"type":"string"}},{"$ref":"#/components/parameters/QuerySortAsc"},{"description":"The search for files. Must be URL encoded.","in":"query","name":"search_term","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"data":{"description":"List of file paths that match search criteria","items":{"$ref":"#/components/schemas/FileIndexSearch"},"title":"Paths","type":"array"},"pagination":{"$ref":"#/components/schemas/Pagination"}},"required":["pagination","data"]}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Get the file paths on a system","tags":["Agents"]}},"/v1/agent/{agent_id}/file-search/version":{"get":{"operationId":"PathVersion","parameters":[{"$ref":"#/components/parameters/PathAgentID"},{"$ref":"#/components/parameters/QueryOffset"},{"$ref":"#/components/parameters/QueryLimit"},{"description":"Sort by a specific field:\n * `created_time` - the snapshot's creation time\n * `last_modified` - when the file was last modified\n * `file_size` - the file size\n","in":"query","name":"sort_by","schema":{"default":"created_time","enum":["created_time","last_modified","file_size"],"type":"string"}},{"$ref":"#/components/parameters/QuerySortAsc"},{"description":"The path of the file to get versions for. Must be URL encoded.","in":"query","name":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"data":{"description":"List of versions of the path","items":{"$ref":"#/components/schemas/PathVersion"},"title":"PathVersions","type":"array"},"pagination":{"$ref":"#/components/schemas/Pagination"}},"required":["pagination","data"]}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Get the versions of a path","tags":["Agents"]}},"/v1/agent/{agent_id}/passphrase":{"post":{"operationId":"AgentPassphraseAdd","parameters":[{"$ref":"#/components/parameters/PathAgentID"}],"requestBody":{"content":{"application/json":{"example":"{\n  \"name\": \"ABC123\",\n  \"passphrase\": \"Super Secret Passphrase\"\n}","schema":{"properties":{"name":{"type":"string"},"passphrase":{"minLength":10,"type":"string"}},"required":["name","passphrase"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentPassphrase"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Add agent passphrase","tags":["Agents"]}},"/v1/agent/{agent_id}/passphrase/{agent_passphrase_id}":{"delete":{"operationId":"AgentPassphraseDelete","parameters":[{"$ref":"#/components/parameters/PathAgentID"},{"$ref":"#/components/parameters/PathAgentPassphraseID"}],"requestBody":{"content":{"application/json":{"example":"{\n  \"passphrase\": \"Super Secret Passphrase\",\n}","schema":{"properties":{"passphrase":{"description":"The current passphrase for the agent.","type":"string"}},"required":["passphrase"]}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Delete agent passphrase","tags":["Agents"]}},"/v1/agent/{agent_id}/service":{"get":{"operationId":"AgentServices","parameters":[{"$ref":"#/components/parameters/PathAgentID"}],"responses":{"200":{"content":{"application/json":{"schema":{"description":"Agent services response","properties":{"data":{"description":"List of services for the agent","items":{"$ref":"#/components/schemas/AgentService"},"title":"Agent services","type":"array"}},"required":["data"],"title":"Agent services response","type":"object"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Get agent services","tags":["Agents"]},"patch":{"operationId":"AgentServiceUpdate","parameters":[{"$ref":"#/components/parameters/PathAgentID"}],"requestBody":{"content":{"application/json":{"example":"{\n  \"services\": [\n    {\n      \"service_id\": \"svc_abc123\",\n      \"verify_on_boot\": true\n    }\n  ]\n}","schema":{"properties":{"services":{"description":"List of service configuration updates.","items":{"$ref":"#/components/schemas/AgentServiceUpdateItem"},"type":"array"}},"required":["services"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"List of services that were updated","properties":{"data":{"items":{"$ref":"#/components/schemas/AgentServiceUpdateItem"},"type":"array"}},"required":["data"],"title":"Agent service update response","type":"object"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Update agent services","tags":["Agents"]}},"/v1/agent/{agent_id}/service/reset":{"post":{"operationId":"AgentServiceReset","parameters":[{"$ref":"#/components/parameters/PathAgentID"}],"responses":{"200":{"description":"OK"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Reset all of an agent's service verification settings to system defaults","tags":["Agents"]}},"/v1/alert":{"get":{"operationId":"Alerts","parameters":[{"$ref":"#/components/parameters/QueryDeviceID"},{"$ref":"#/components/parameters/QueryAgentID"},{"$ref":"#/components/parameters/QueryResolved"},{"$ref":"#/components/parameters/QueryOffset"},{"$ref":"#/components/parameters/QueryLimit"},{"description":"Sort by a specific field","in":"query","name":"sort_by","schema":{"default":"created","enum":["created"],"type":"string"}},{"$ref":"#/components/parameters/QuerySortAsc"},{"$ref":"#/components/parameters/QueryCreatedAfter"},{"$ref":"#/components/parameters/QueryCreatedBefore"}],"responses":{"200":{"content":{"application/json":{"schema":{"description":"Paginated response","properties":{"data":{"description":"List of alerts","items":{"$ref":"#/components/schemas/Alert"},"title":"Alerts","type":"array"},"pagination":{"$ref":"#/components/schemas/Pagination"}},"required":["pagination","data"],"title":"Paginated response","type":"object"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"500":{"$ref":"#/components/responses/500"}},"summary":"List alerts","tags":["Alerts"]}},"/v1/alert/{alert_id}":{"get":{"operationId":"AlertByID","parameters":[{"$ref":"#/components/parameters/PathAlertID"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Alert"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Get alert","tags":["Alerts"]},"patch":{"operationId":"AlertUpdate","parameters":[{"$ref":"#/components/parameters/PathAlertID"}],"requestBody":{"content":{"application/json":{"example":"{\n    \"resolved\": true\n}","schema":{"properties":{"resolved":{"$ref":"#/components/schemas/Resolved"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Alert"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Update alert","tags":["Alerts"]}},"/v1/audit":{"get":{"operationId":"Audits","parameters":[{"$ref":"#/components/parameters/QueryOffset"},{"$ref":"#/components/parameters/QueryLimit"},{"$ref":"#/components/parameters/QueryAuditActionName"},{"$ref":"#/components/parameters/QueryAuditResourceTypeName"},{"description":"Sort by a specific field","in":"query","name":"sort_by","schema":{"default":"audit_time","enum":["audit_time"],"type":"string"}},{"$ref":"#/components/parameters/QuerySortAsc"},{"description":"Filter audit logs to before a specific audit timestamp (RFC3339 format)","in":"query","name":"audit_time_before","schema":{"format":"date-time","type":"string"}},{"description":"Filter audit logs to after a specific audit timestamp (RFC3339 format)","in":"query","name":"audit_time_after","schema":{"format":"date-time","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"description":"Paginated response","properties":{"data":{"description":"List of audit logs","items":{"$ref":"#/components/schemas/Audit"},"title":"Audits","type":"array"},"pagination":{"$ref":"#/components/schemas/Pagination"}},"required":["pagination","data"],"title":"Paginated response","type":"object"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"500":{"$ref":"#/components/responses/500"}},"summary":"List audit logs","tags":["Audits"]}},"/v1/audit/action":{"get":{"operationId":"AuditActions","parameters":[{"$ref":"#/components/parameters/QueryOffset"},{"$ref":"#/components/parameters/QueryLimit"},{"description":"Sort by a specific field","in":"query","name":"sort_by","schema":{"default":"name","enum":["name"],"type":"string"}},{"$ref":"#/components/parameters/QuerySortAsc"}],"responses":{"200":{"content":{"application/json":{"schema":{"description":"Paginated response","properties":{"data":{"description":"List of audit actions","items":{"$ref":"#/components/schemas/AuditAction"},"title":"Audit Actions","type":"array"},"pagination":{"$ref":"#/components/schemas/Pagination"}},"required":["pagination","data"],"title":"Paginated response","type":"object"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"500":{"$ref":"#/components/responses/500"}},"summary":"List audit actions","tags":["Audits"]}},"/v1/audit/resource":{"get":{"operationId":"AuditResources","parameters":[{"$ref":"#/components/parameters/QueryOffset"},{"$ref":"#/components/parameters/QueryLimit"},{"description":"Sort by a specific field","in":"query","name":"sort_by","schema":{"default":"name","enum":["name"],"type":"string"}},{"$ref":"#/components/parameters/QuerySortAsc"}],"responses":{"200":{"content":{"application/json":{"schema":{"description":"Paginated response","properties":{"data":{"description":"List of audit resource types","items":{"$ref":"#/components/schemas/AuditResourceType"},"title":"Audit Resource Types","type":"array"},"pagination":{"$ref":"#/components/schemas/Pagination"}},"required":["pagination","data"],"title":"Paginated response","type":"object"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"500":{"$ref":"#/components/responses/500"}},"summary":"List audit resource types","tags":["Audits"]}},"/v1/audit/{audit_id}":{"get":{"operationId":"AuditByID","parameters":[{"$ref":"#/components/parameters/PathAuditID"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Audit"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Get audit log","tags":["Audits"]}},"/v1/backup":{"get":{"description":"Returns a paginated list of backups.\n\nBackup record history details:\n- The last 10 backups will always be available.\n- Successful backups are removed when the related snapshot is removed.\n- Unsuccessful backups older than 30 days are removed.","operationId":"Backups","parameters":[{"$ref":"#/components/parameters/QueryAgentID"},{"$ref":"#/components/parameters/QuerySnapshotID"},{"$ref":"#/components/parameters/QueryDeviceID"},{"$ref":"#/components/parameters/QueryOffset"},{"$ref":"#/components/parameters/QueryLimit"},{"$ref":"#/components/parameters/QueryBackupStartedAfter"},{"$ref":"#/components/parameters/QueryBackupStartedBefore"},{"$ref":"#/components/parameters/QueryBackupEndedAfter"},{"$ref":"#/components/parameters/QueryBackupEndedBefore"},{"description":"Sort by a specific field","in":"query","name":"sort_by","schema":{"default":"start_time","enum":["id","start_time"],"type":"string"}},{"$ref":"#/components/parameters/QuerySortAsc"}],"responses":{"200":{"content":{"application/json":{"schema":{"description":"Paginated response","properties":{"data":{"description":"List of backups","items":{"$ref":"#/components/schemas/Backup"},"title":"Backups","type":"array"},"pagination":{"$ref":"#/components/schemas/Pagination"}},"required":["pagination","data"],"title":"Paginated response","type":"object"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"500":{"$ref":"#/components/responses/500"}},"summary":"List backups","tags":["Backups"]},"post":{"operationId":"BackupStart","requestBody":{"content":{"application/json":{"example":"{\n  \"agent_id\": \"a_0123456789ab\"\n}","schema":{"properties":{"agent_id":{"$ref":"#/components/schemas/AgentID"}},"required":["agent_id"]}}},"required":true},"responses":{"202":{"content":{"application/json":{"schema":{"properties":{"backup_id":{"$ref":"#/components/schemas/BackupID"}},"required":["backup_id"]}}},"description":"Accepted"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"500":{"$ref":"#/components/responses/500"}},"summary":"Start backup","tags":["Backups"]}},"/v1/backup/{backup_id}":{"get":{"operationId":"BackupByID","parameters":[{"$ref":"#/components/parameters/PathBackupID"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Backup"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Get backup","tags":["Backups"]}},"/v1/billing/credit-memo":{"get":{"description":"Returns credit memos and their complete line items for the authenticated account, newest first. All monetary amounts are in the currency's smallest unit.","operationId":"BillingCreditMemos","parameters":[{"$ref":"#/components/parameters/QueryOffset"},{"$ref":"#/components/parameters/QueryLimit"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"data":{"items":{"$ref":"#/components/schemas/BillingCreditMemo"},"type":"array"},"pagination":{"$ref":"#/components/schemas/Pagination"}},"required":["pagination","data"],"title":"Paginated billing credit memos","type":"object"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"500":{"$ref":"#/components/responses/500"}},"summary":"List billing credit memos","tags":["Billing"]}},"/v1/billing/credit-memo/{credit_memo_id}/pdf":{"get":{"description":"Returns the credit memo PDF. The document is fetched from the billing provider at request time.","operationId":"BillingCreditMemoPDF","parameters":[{"in":"path","name":"credit_memo_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/pdf":{"schema":{"format":"binary","type":"string"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Download a credit memo PDF","tags":["Billing"]}},"/v1/billing/invoice":{"get":{"description":"Returns finalized invoices and their complete line items for the authenticated account, newest first. All monetary amounts are in the currency's smallest unit.","operationId":"BillingInvoices","parameters":[{"$ref":"#/components/parameters/QueryOffset"},{"$ref":"#/components/parameters/QueryLimit"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"data":{"items":{"$ref":"#/components/schemas/BillingInvoice"},"type":"array"},"pagination":{"$ref":"#/components/schemas/Pagination"}},"required":["pagination","data"],"title":"Paginated billing invoices","type":"object"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"500":{"$ref":"#/components/responses/500"}},"summary":"List billing invoices","tags":["Billing"]}},"/v1/billing/invoice/{invoice_id}/pdf":{"get":{"description":"Returns the invoice PDF. The document is fetched from the billing provider at request time.","operationId":"BillingInvoicePDF","parameters":[{"in":"path","name":"invoice_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/pdf":{"schema":{"format":"binary","type":"string"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Download an invoice PDF","tags":["Billing"]}},"/v1/billing/subscription":{"get":{"description":"Returns licensed service instances for the authenticated account, newest first. Each item has quantity one and can be grouped by SKU to calculate license counts.","operationId":"BillingSubscriptions","parameters":[{"$ref":"#/components/parameters/QueryOffset"},{"$ref":"#/components/parameters/QueryLimit"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"data":{"items":{"$ref":"#/components/schemas/BillingSubscription"},"type":"array"},"pagination":{"$ref":"#/components/schemas/Pagination"}},"required":["pagination","data"],"title":"Paginated billing subscriptions","type":"object"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"500":{"$ref":"#/components/responses/500"}},"summary":"List subscriptions and licenses","tags":["Billing"]}},"/v1/client":{"get":{"operationId":"Clients","parameters":[{"$ref":"#/components/parameters/QueryOffset"},{"$ref":"#/components/parameters/QueryLimit"},{"description":"Sort by a specific field","in":"query","name":"sort_by","schema":{"default":"id","enum":["id"],"type":"string"}},{"$ref":"#/components/parameters/QuerySortAsc"},{"$ref":"#/components/parameters/QueryCreatedAfter"},{"$ref":"#/components/parameters/QueryCreatedBefore"}],"responses":{"200":{"content":{"application/json":{"schema":{"description":"Paginated response","properties":{"data":{"description":"List of clients","items":{"$ref":"#/components/schemas/Client"},"title":"Clients","type":"array"},"pagination":{"$ref":"#/components/schemas/Pagination"}},"required":["pagination","data"],"title":"Paginated response","type":"object"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"500":{"$ref":"#/components/responses/500"}},"summary":"List clients","tags":["Clients"]},"post":{"operationId":"ClientCreate","requestBody":{"content":{"application/json":{"example":"{\n    \"name\": \"My Client\"\n}","schema":{"properties":{"comments":{"$ref":"#/components/schemas/ClientComments"},"name":{"$ref":"#/components/schemas/ClientName"}},"required":["name"]}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Client"}}},"description":"Created"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"500":{"$ref":"#/components/responses/500"}},"summary":"Create client","tags":["Clients"]}},"/v1/client/{client_id}":{"delete":{"operationId":"ClientDelete","parameters":[{"$ref":"#/components/parameters/PathClientID"}],"responses":{"204":{"description":"No Content"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Delete client","tags":["Clients"]},"get":{"operationId":"ClientByID","parameters":[{"$ref":"#/components/parameters/PathClientID"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Client"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Get client","tags":["Clients"]},"patch":{"operationId":"ClientUpdate","parameters":[{"$ref":"#/components/parameters/PathClientID"}],"requestBody":{"content":{"application/json":{"example":"{\n    \"name\": \"\u003cchange me or remove the field to keep unchanged\u003e\",\n    \"comments\": \"\u003cchange me or remove the field to keep unchanged\u003e\"\n}","schema":{"properties":{"comments":{"$ref":"#/components/schemas/ClientComments"},"name":{"$ref":"#/components/schemas/ClientName"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Client"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Update client","tags":["Clients"]}},"/v1/device":{"get":{"operationId":"Devices","parameters":[{"$ref":"#/components/parameters/QueryOffset"},{"$ref":"#/components/parameters/QueryLimit"},{"description":"Sort by a specific field","in":"query","name":"sort_by","schema":{"default":"hostname","enum":["hostname"],"type":"string"}},{"$ref":"#/components/parameters/QuerySortAsc"},{"$ref":"#/components/parameters/QueryClientID"},{"$ref":"#/components/parameters/QueryCreatedAfter"},{"$ref":"#/components/parameters/QueryCreatedBefore"}],"responses":{"200":{"content":{"application/json":{"schema":{"description":"Paginated response","properties":{"data":{"description":"List of devices","items":{"$ref":"#/components/schemas/Device"},"title":"Devices","type":"array"},"pagination":{"$ref":"#/components/schemas/Pagination"}},"required":["pagination","data"],"title":"Paginated response","type":"object"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"500":{"$ref":"#/components/responses/500"}},"summary":"List devices","tags":["Devices"]}},"/v1/device/{device_id}":{"get":{"operationId":"DeviceByID","parameters":[{"$ref":"#/components/parameters/PathDeviceID"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Device"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Get device","tags":["Devices"]},"patch":{"operationId":"DeviceUpdate","parameters":[{"$ref":"#/components/parameters/PathDeviceID"}],"requestBody":{"content":{"application/json":{"example":"{\n  \"display_name\": \"\u003cchange me or remove the field to keep unchanged\u003e\",\n  \"hostname\": \"\u003cchange me or remove the field to keep unchanged\u003e\",\n  \"client_id\": \"\u003cchange me or remove the field to keep unchanged\u003e\"\n}","schema":{"properties":{"client_id":{"$ref":"#/components/schemas/ClientIDOrEmpty"},"display_name":{"$ref":"#/components/schemas/DisplayName"},"hostname":{"$ref":"#/components/schemas/Hostname"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Device"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Update device","tags":["Devices"]}},"/v1/device/{device_id}/network":{"get":{"description":"Get the current network configuration for a device.\n","operationId":"DeviceNetworkGet","parameters":[{"$ref":"#/components/parameters/PathDeviceID"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceNetwork"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Get device network configuration","tags":["Devices"]},"patch":{"description":"Update the network configuration for a device. The configuration is tested after it is applied, and rolled back if invalid.\n","operationId":"DeviceNetworkUpdate","parameters":[{"$ref":"#/components/parameters/PathDeviceID"}],"requestBody":{"content":{"application/json":{"example":"{\n  \"network_mode\": \"static\",\n  \"network_address\": \"192.168.1.100/24\",\n  \"network_gateway\": \"192.168.1.1\",\n  \"dns_server_primary\": \"1.1.1.1\",\n  \"dns_server_secondary\": \"8.8.8.8\"\n}","schema":{"$ref":"#/components/schemas/DeviceNetworkUpdate"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceNetwork"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Update device network configuration","tags":["Devices"]}},"/v1/device/{device_id}/shutdown/poweroff":{"post":{"description":"Requests a device to power off.\n","operationId":"DevicePowerOff","parameters":[{"description":"The ID of the device to power off.","in":"path","name":"device_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":null},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Device"}}},"description":"Accepted"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Power off a device","tags":["Devices"]}},"/v1/device/{device_id}/shutdown/reboot":{"post":{"description":"Requests a device to reboot.\n","operationId":"DeviceReboot","parameters":[{"description":"The ID of the device to reboot.","in":"path","name":"device_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":null},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Device"}}},"description":"Accepted"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Reboot a device","tags":["Devices"]}},"/v1/device/{device_id}/vlan":{"get":{"description":"List all virtual interfaces (VLANs) for a device.\n","operationId":"DeviceVLANList","parameters":[{"$ref":"#/components/parameters/PathDeviceID"}],"responses":{"200":{"content":{"application/json":{"schema":{"description":"List of device VLANs","properties":{"data":{"items":{"$ref":"#/components/schemas/DeviceVLAN"},"type":"array"}},"required":["data"],"title":"DeviceVLANs","type":"object"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"List device VLANs","tags":["Devices"]},"post":{"description":"Create a new virtual interface (VLAN) for a device.\n","operationId":"DeviceVLANCreate","parameters":[{"$ref":"#/components/parameters/PathDeviceID"}],"requestBody":{"content":{"application/json":{"example":"{\n  \"vlan_tag\": 100,\n  \"name\": \"vlan100\",\n  \"network_mode\": \"static\",\n  \"ip_address\": \"192.168.100.1/24\",\n  \"gateway\": \"192.168.100.1\"\n}","schema":{"$ref":"#/components/schemas/DeviceVLANCreate"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceVLAN"}}},"description":"Created"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Create device VLAN","tags":["Devices"]}},"/v1/device/{device_id}/vlan/{vlan_id}":{"delete":{"description":"Delete a virtual interface (VLAN) for a device.\n","operationId":"DeviceVLANDelete","parameters":[{"$ref":"#/components/parameters/PathDeviceID"},{"$ref":"#/components/parameters/PathVLANID"}],"responses":{"204":{"description":"No Content"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"500":{"$ref":"#/components/responses/500"}},"summary":"Delete device VLAN","tags":["Devices"]},"get":{"description":"Get a specific virtual interface (VLAN) for a device.\n","operationId":"DeviceVLANGet","parameters":[{"$ref":"#/components/parameters/PathDeviceID"},{"$ref":"#/components/parameters/PathVLANID"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceVLAN"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Get device VLAN","tags":["Devices"]},"patch":{"description":"Update a virtual interface (VLAN) for a device.\n","operationId":"DeviceVLANUpdate","parameters":[{"$ref":"#/components/parameters/PathDeviceID"},{"$ref":"#/components/parameters/PathVLANID"}],"requestBody":{"content":{"application/json":{"example":"{\n  \"vlan_tag\": 100,\n  \"name\": \"vlan100-updated\",\n  \"network_mode\": \"static\",\n  \"ip_address\": \"192.168.100.2/24\",\n  \"gateway\": \"192.168.100.1\"\n}","schema":{"$ref":"#/components/schemas/DeviceVLANUpdate"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceVLAN"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Update device VLAN","tags":["Devices"]}},"/v1/nas-agent":{"post":{"description":"Creates a NAS agent that backs up files from an SMB share. Tests SMB credentials against the specified device before creating the agent.","operationId":"NASAgentCreate","requestBody":{"content":{"application/json":{"example":{"device_id":"d_abc123def456","display_name":"NAS Backup - Finance Share","nas_smb_password":"secretpassword","nas_smb_username":"backupuser","nas_unc_path":"\\\\nas01\\finance","timezone":"America/New_York"},"schema":{"properties":{"device_id":{"$ref":"#/components/schemas/DeviceID"},"display_name":{"$ref":"#/components/schemas/DisplayName"},"nas_smb_password":{"description":"SMB password for the NAS share. Omit (along with nas_smb_username) to access an anonymous share. Write-only.","example":"secretpassword","type":"string","writeOnly":true},"nas_smb_username":{"description":"SMB username for the NAS share. Omit (along with nas_smb_password) to access an anonymous share.","example":"backupuser","type":"string"},"nas_unc_path":{"description":"UNC path to the NAS SMB share.","example":"\\\\nas01\\backups","type":"string"},"timezone":{"$ref":"#/components/schemas/Timezone"}},"required":["device_id","display_name","nas_unc_path","timezone"]}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Agent"}}},"description":"Created"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Create a NAS agent","tags":["Agents"]}},"/v1/network":{"get":{"operationId":"Networks","parameters":[{"$ref":"#/components/parameters/QueryClientID"},{"$ref":"#/components/parameters/QueryOffset"},{"$ref":"#/components/parameters/QueryLimit"},{"description":"Sort by a specific field","in":"query","name":"sort_by","schema":{"default":"id","enum":["id"],"type":"string"}},{"$ref":"#/components/parameters/QuerySortAsc"},{"$ref":"#/components/parameters/QueryCreatedAfter"},{"$ref":"#/components/parameters/QueryCreatedBefore"}],"responses":{"200":{"content":{"application/json":{"schema":{"description":"Paginated response","properties":{"data":{"description":"List of networks","items":{"$ref":"#/components/schemas/Network"},"title":"Networks","type":"array"},"pagination":{"$ref":"#/components/schemas/Pagination"}},"required":["pagination","data"],"title":"Paginated response","type":"object"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"500":{"$ref":"#/components/responses/500"}},"summary":"List networks","tags":["Networks"]},"post":{"operationId":"NetworkCreate","requestBody":{"content":{"application/json":{"examples":{"bridgedNetworking":{"summary":"Bridged networking configuration","value":{"bridge_device_id":"d_0123456789ab","client_id":"c_0123456789ab","name":"My Bridge to LAN Network","type":"bridge-lan","vlan_tag":100}},"standardNetworking":{"summary":"Standard networking configuration","value":{"client_id":"c_0123456789ab","dhcp":true,"dhcp_range_end":"10.0.0.200","dhcp_range_start":"10.0.0.100","name":"My Disaster Recovery Network","nameservers":["1.1.1.1","1.0.0.1"],"router_prefix":"10.0.0.1/24","type":"standard","wg":true}}},"schema":{"properties":{"bridge_device_id":{"$ref":"#/components/schemas/DeviceID"},"client_id":{"$ref":"#/components/schemas/ClientIDOrEmpty"},"comments":{"$ref":"#/components/schemas/NetworkComments"},"dhcp":{"description":"Whether the disaster network should have DHCP","example":true,"type":"boolean"},"dhcp_range_end":{"description":"DHCP range end for the network","example":"10.0.0.200","type":"string"},"dhcp_range_start":{"description":"DHCP range start for the network","example":"10.0.0.100","type":"string"},"internet":{"description":"Whether the network should have Internet access","example":true,"type":"boolean"},"name":{"$ref":"#/components/schemas/DisasterNetworkName"},"nameservers":{"description":"List of DNS servers","example":["1.1.1.1","1.0.0.1"],"items":{"type":"string"},"type":"array"},"router_prefix":{"description":"Router IP and netmask for the network","example":"10.0.0.1/24","type":"string"},"type":{"$ref":"#/components/schemas/DisasterNetworkType"},"vlan_tag":{"description":"VLAN tag for bridge-LAN networks (0 = no tagging, 1-4094 = tagged)","example":100,"type":"integer"},"wg":{"description":"Whether the network should have WireGuard enabled","example":true,"type":"boolean"},"wg_prefix":{"description":"WireGuard IP address and netmask for the WireGuard network","example":"192.168.178.1/24","type":"string"}},"required":["name","type"]}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Network"}}},"description":"Created"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"500":{"$ref":"#/components/responses/500"}},"summary":"Create network","tags":["Networks"]}},"/v1/network/{network_id}":{"delete":{"operationId":"NetworkDelete","parameters":[{"$ref":"#/components/parameters/PathNetworkID"}],"responses":{"204":{"description":"No Content"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Delete network","tags":["Networks"]},"get":{"operationId":"NetworkByID","parameters":[{"$ref":"#/components/parameters/PathNetworkID"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Network"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Get network","tags":["Networks"]},"patch":{"operationId":"NetworkUpdate","parameters":[{"$ref":"#/components/parameters/PathNetworkID"}],"requestBody":{"content":{"application/json":{"example":"{\n  \"name\": \"My Bridge to LAN Network\",\n  \"comments\": \"This is a replacement network\"\n}","schema":{"properties":{"client_id":{"$ref":"#/components/schemas/ClientIDOrEmpty"},"comments":{"$ref":"#/components/schemas/NetworkComments"},"dhcp":{"description":"Whether the disaster network should have DHCP","example":true,"type":"boolean"},"dhcp_range_end":{"description":"DHCP range end for the network","example":"10.0.0.200","type":"string"},"dhcp_range_start":{"description":"DHCP range start for the network","example":"10.0.0.100","type":"string"},"internet":{"description":"Whether the network should have Internet access","example":true,"type":"boolean"},"name":{"$ref":"#/components/schemas/DisasterNetworkName"},"nameservers":{"description":"List of DNS servers","example":["1.1.1.1","1.0.0.1"],"items":{"type":"string"},"type":"array"},"router_prefix":{"description":"Router IP and netmask for the network","example":"10.0.0.1/24","type":"string"},"vlan_tag":{"description":"VLAN tag for bridge-LAN networks (0 = no tagging, 1-4094 = tagged)","example":100,"type":"integer"},"wg":{"description":"Whether the network should have WireGuard enabled","example":true,"type":"boolean"},"wg_prefix":{"description":"WireGuard IP address and netmask for the WireGuard network","example":"192.168.178.1/24","type":"string"}}}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Network"}}},"description":"Updated"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Update network","tags":["Networks"]}},"/v1/network/{network_id}/ipsec":{"post":{"operationId":"NetworkIPSecConnCreate","parameters":[{"$ref":"#/components/parameters/PathNetworkID"}],"requestBody":{"content":{"application/json":{"example":"{\n  \"name\": \"InfoSec IT, 192.168.200.0/24 subnet\",\n  \"remote_addrs\": [\"1.2.3.4\"],\n  \"remote_networks\": [\"10.0.0.0/24\", \"10.10.0.0/24\"]\n}","schema":{"properties":{"name":{"description":"Name of the IPsec connection","example":"InfoSec IT Site-to-Site","type":"string"},"remote_addrs":{"description":"Public IP addresses of the partner-side of the router/firewall","items":{"description":"Public IP address used to connect to the Slide Cloud network's IPsec connection","example":"1.2.3.4","title":"Public IP Address","type":"string"},"type":"array"},"remote_networks":{"description":"List of partner-side networks that are accessible through the IPsec connection","items":{"example":"10.0.0.0/24","title":"Network in CIDR format","type":"string"},"type":"array"}},"required":["name","remote_addrs","remote_networks"]}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkIPSecConn"}}},"description":"Created"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"500":{"$ref":"#/components/responses/500"}},"summary":"Create IPsec connection","tags":["Networks"]}},"/v1/network/{network_id}/ipsec/{ipsec_id}":{"delete":{"operationId":"NetworkIPSecConnDelete","parameters":[{"$ref":"#/components/parameters/PathNetworkID"},{"$ref":"#/components/parameters/PathIPSecID"}],"responses":{"204":{"description":"No Content"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Delete IPsec connection","tags":["Networks"]},"patch":{"operationId":"NetworkIPSecConnUpdate","parameters":[{"$ref":"#/components/parameters/PathNetworkID"},{"$ref":"#/components/parameters/PathIPSecID"}],"requestBody":{"content":{"application/json":{"examples":{"updateName":{"summary":"Update name of the IPsec connection","value":{"name":"InfoSec IT Site-to-Site"}},"updateRemoteAddrs":{"summary":"Update remote IP addresses of the IPsec connection","value":{"remote_addrs":["10.0.0.0/24","10.20.0.0/24"]}}},"schema":{"properties":{"name":{"description":"Name of the IPsec connection","example":"tcp","type":"string"},"remote_addrs":{"description":"Public IP addresses of the partner-side of the router/firewall","items":{"description":"Public IP address used to connect to the Slide Cloud network's IPsec connection","example":"1.2.3.4","title":"Public IP Address","type":"string"},"type":"array"},"remote_networks":{"description":"List of partner-side networks that are accessible through the IPsec connection","items":{"example":"10.0.0.0/24","title":"Network in CIDR format","type":"string"},"type":"array"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkIPSecConn"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"500":{"$ref":"#/components/responses/500"}},"summary":"Update IPsec connection","tags":["Networks"]}},"/v1/network/{network_id}/port-forward":{"post":{"operationId":"NetworkPortForwardCreate","parameters":[{"$ref":"#/components/parameters/PathNetworkID"}],"requestBody":{"content":{"application/json":{"example":"{\n  \"proto\": \"tcp\",\n  \"dest\": \"10.0.0.100:25881\"\n}","schema":{"properties":{"dest":{"description":"Destination IP address and port pair","example":"10.0.0.100:80","type":"string"},"proto":{"description":"Protocol, tcp or udp","example":"tcp","type":"string"}},"required":["proto","dest"]}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkPortForward"}}},"description":"Created"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Create port forward","tags":["Networks"]}},"/v1/network/{network_id}/port-forward/{port_forward_id}":{"delete":{"operationId":"NetworkPortForwardDelete","parameters":[{"$ref":"#/components/parameters/PathNetworkID"},{"$ref":"#/components/parameters/PathPortForwardID"}],"responses":{"204":{"description":"No Content"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Delete port forward","tags":["Networks"]},"patch":{"operationId":"NetworkPortForwardUpdate","parameters":[{"$ref":"#/components/parameters/PathNetworkID"},{"$ref":"#/components/parameters/PathPortForwardID"}],"requestBody":{"content":{"application/json":{"example":"{\n  \"proto\": \"tcp\",\n  \"dest\": \"10.0.0.100:25881\"\n}","schema":{"properties":{"dest":{"description":"Destination IP address and port pair","example":"10.0.0.100:80","type":"string"},"proto":{"description":"Protocol, tcp or udp","example":"tcp","type":"string"}}}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkPortForward"}}},"description":"Updated"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Update port forward","tags":["Networks"]}},"/v1/network/{network_id}/wg-peer":{"post":{"operationId":"NetworkWGPeerCreate","parameters":[{"$ref":"#/components/parameters/PathNetworkID"}],"requestBody":{"content":{"application/json":{"example":"{\n  \"peer_name\": \"My Bridge to LAN Network\",\n  \"remote_networks\": [\"10.80.0.0/24\", \"10.80.1.0/24\"]\n}","schema":{"properties":{"peer_name":{"description":"Name of the WireGuard client","example":"My PC","type":"string"},"remote_networks":{"$ref":"#/components/schemas/RemoteNetworks"}},"required":["peer_name"]}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkWGPeer"}}},"description":"Created"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Create WireGuard peer","tags":["Networks"]}},"/v1/network/{network_id}/wg-peer/{wg_peer_id}":{"delete":{"operationId":"NetworkWGPeerDelete","parameters":[{"$ref":"#/components/parameters/PathNetworkID"},{"$ref":"#/components/parameters/PathWGPeerID"}],"responses":{"204":{"description":"No Content"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Delete WireGuard peer","tags":["Networks"]},"patch":{"operationId":"NetworkWGPeerUpdate","parameters":[{"$ref":"#/components/parameters/PathNetworkID"},{"$ref":"#/components/parameters/PathWGPeerID"}],"requestBody":{"content":{"application/json":{"example":"{\n  \"peer_name\": \"My Bridge to LAN Network\",\n  \"remote_networks\": [\"10.80.0.0/24\", \"10.80.1.0/24\"]\n}","schema":{"properties":{"peer_name":{"description":"Name of the WireGuard client","example":"My PC","type":"string"},"remote_networks":{"$ref":"#/components/schemas/RemoteNetworks"}}}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkWGPeer"}}},"description":"Updated"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Update WireGuard peer","tags":["Networks"]}},"/v1/restore/file":{"get":{"operationId":"FileRestores","parameters":[{"$ref":"#/components/parameters/QueryOffset"},{"$ref":"#/components/parameters/QueryLimit"},{"description":"Sort by a specific field","in":"query","name":"sort_by","schema":{"default":"id","enum":["id"],"type":"string"}},{"$ref":"#/components/parameters/QuerySortAsc"},{"$ref":"#/components/parameters/QueryCreatedAfter"},{"$ref":"#/components/parameters/QueryCreatedBefore"}],"responses":{"200":{"content":{"application/json":{"schema":{"description":"Paginated response","properties":{"data":{"description":"List of file restores","items":{"$ref":"#/components/schemas/FileRestore"},"title":"FileRestores","type":"array"},"pagination":{"$ref":"#/components/schemas/Pagination"}},"required":["pagination","data"],"title":"Paginated response","type":"object"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"500":{"$ref":"#/components/responses/500"}},"summary":"List file restores","tags":["Restores (File)"]},"post":{"operationId":"FileRestoreCreate","requestBody":{"content":{"application/json":{"examples":{"basic":{"summary":"Basic file restore","value":{"device_id":"d_0123456789ab","snapshot_id":"s_0123456789ab"}},"basic_with_passphrase":{"summary":"Basic file restore with passphrase","value":{"device_id":"d_0123456789ab","passphrase":"Super Secret Passphrase","snapshot_id":"s_0123456789ab"}}},"schema":{"properties":{"device_id":{"$ref":"#/components/schemas/DeviceID"},"passphrase":{"$ref":"#/components/schemas/Passphrase"},"snapshot_id":{"$ref":"#/components/schemas/SnapshotID"}},"required":["snapshot_id","device_id"]}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileRestore"}}},"description":"Created"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Create file restore","tags":["Restores (File)"]}},"/v1/restore/file/{file_restore_id}":{"delete":{"operationId":"FileRestoreDelete","parameters":[{"$ref":"#/components/parameters/PathFileRestoreID"}],"responses":{"204":{"description":"No Content"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Delete file restore","tags":["Restores (File)"]},"get":{"operationId":"FileRestoreByID","parameters":[{"$ref":"#/components/parameters/PathFileRestoreID"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileRestore"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Get file restore","tags":["Restores (File)"]}},"/v1/restore/file/{file_restore_id}/browse":{"get":{"operationId":"FileRestoreBrowse","parameters":[{"$ref":"#/components/parameters/QueryOffset"},{"$ref":"#/components/parameters/QueryLimit"},{"$ref":"#/components/parameters/PathFileRestoreID"},{"description":"Path to browse","in":"query","name":"path","schema":{"example":"C","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"description":"Paginated response","properties":{"data":{"description":"List of files","items":{"$ref":"#/components/schemas/FileRestoreEntry"},"title":"FileRestores","type":"array"},"pagination":{"$ref":"#/components/schemas/Pagination"}},"required":["pagination","data"],"title":"Paginated response","type":"object"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Browse file restore","tags":["Restores (File)"]}},"/v1/restore/file/{file_restore_id}/push":{"get":{"operationId":"FileRestorePushes","parameters":[{"$ref":"#/components/parameters/QueryOffset"},{"$ref":"#/components/parameters/QueryLimit"},{"$ref":"#/components/parameters/PathFileRestoreID"},{"description":"Sort by a specific field","in":"query","name":"sort_by","schema":{"default":"start_time","enum":["start_time"],"type":"string"}},{"$ref":"#/components/parameters/QuerySortAsc"},{"description":"Filter file restore pushes to before a specific start timestamp (RFC3339 format)","in":"query","name":"start_time_before","schema":{"format":"date-time","type":"string"}},{"description":"Filter file restore pushes to after a specific start timestamp (RFC3339 format)","in":"query","name":"start_time_after","schema":{"format":"date-time","type":"string"}},{"description":"Filter file restore pushes to before a specific end timestamp (RFC3339 format)","in":"query","name":"end_time_before","schema":{"format":"date-time","type":"string"}},{"description":"Filter file restore pushes to after a specific end timestamp (RFC3339 format)","in":"query","name":"end_time_after","schema":{"format":"date-time","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"description":"Paginated response","properties":{"data":{"description":"List of file restore pushes","items":{"$ref":"#/components/schemas/FileRestorePush"},"title":"FileRestorePushes","type":"array"},"pagination":{"$ref":"#/components/schemas/Pagination"}},"required":["pagination","data"],"title":"Paginated response","type":"object"}}},"description":"OK"},"401":{"$ref":"#/components/responses/401"},"500":{"$ref":"#/components/responses/500"}},"summary":"List push operations","tags":["Restores (Push)"]},"post":{"operationId":"FileRestorePushCreate","parameters":[{"$ref":"#/components/parameters/PathFileRestoreID"}],"requestBody":{"content":{"application/json":{"examples":{"linux":{"summary":"Push a file to a Linux agent","value":{"destination_folder":"/SlideRestore","source_file_path":"root/home/admin/important.txt"}},"windows":{"summary":"Push a file to a Windows agent","value":{"destination_folder":"C:\\SlideRestore","source_file_path":"C/Users/Administrator/Documents/ImportantFile.docx"}}},"schema":{"properties":{"destination_folder":{"$ref":"#/components/schemas/PushDestinationFolder"},"source_file_path":{"$ref":"#/components/schemas/PushSourceFilePath"}},"required":["source_file_path","destination_folder"]}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileRestorePush"}}},"description":"Created"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Push a file to the protected system","tags":["Restores (Push)"]}},"/v1/restore/file/{file_restore_id}/push/{file_restore_push_id}":{"get":{"operationId":"FileRestorePushStatus","parameters":[{"$ref":"#/components/parameters/PathFileRestoreID"},{"$ref":"#/components/parameters/PathFileRestorePushID"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileRestorePush"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Get Status of push operation","tags":["Restores (Push)"]},"patch":{"operationId":"FileRestorePushUpdate","parameters":[{"$ref":"#/components/parameters/PathFileRestoreID"},{"$ref":"#/components/parameters/PathFileRestorePushID"}],"requestBody":{"content":{"application/json":{"example":"{\n  \"state\": \"canceled\"\n}","schema":{"properties":{"state":{"description":"Current state of the push operation. Can be updated from in_progress to canceled.","enum":["canceled"],"example":"canceled","type":"string"}},"required":["state"]}}},"required":true},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileRestorePush"}}},"description":"Accepted"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Update a push operation","tags":["Restores (Push)"]}},"/v1/restore/image":{"get":{"operationId":"Images","parameters":[{"$ref":"#/components/parameters/QueryOffset"},{"$ref":"#/components/parameters/QueryLimit"},{"description":"Sort by a specific field","in":"query","name":"sort_by","schema":{"default":"id","enum":["id"],"type":"string"}},{"$ref":"#/components/parameters/QuerySortAsc"},{"$ref":"#/components/parameters/QueryCreatedAfter"},{"$ref":"#/components/parameters/QueryCreatedBefore"}],"responses":{"200":{"content":{"application/json":{"schema":{"description":"Paginated response","properties":{"data":{"description":"List of image exports","items":{"$ref":"#/components/schemas/ImageExport"},"title":"ImageExports","type":"array"},"pagination":{"$ref":"#/components/schemas/Pagination"}},"required":["pagination","data"],"title":"Paginated response","type":"object"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"500":{"$ref":"#/components/responses/500"}},"summary":"List image exports","tags":["Restores (Image)"]},"post":{"operationId":"ImageCreate","requestBody":{"content":{"application/json":{"examples":{"basic":{"summary":"Basic image export","value":{"device_id":"d_0123456789ab","image_type":"vhdx","snapshot_id":"s_0123456789ab"}},"basic_with_passphrase":{"summary":"Basic image export with passphrase","value":{"device_id":"d_0123456789ab","image_type":"vhdx","passphrase":"Super Secret Passphrase","snapshot_id":"s_0123456789ab"}}},"schema":{"properties":{"boot_mods":{"$ref":"#/components/schemas/BootMods"},"device_id":{"$ref":"#/components/schemas/DeviceID"},"image_type":{"$ref":"#/components/schemas/ImageType"},"iscsi":{"$ref":"#/components/schemas/ISCSI"},"nfs":{"$ref":"#/components/schemas/NFS"},"nfs_clients":{"$ref":"#/components/schemas/NFSClients"},"passphrase":{"$ref":"#/components/schemas/Passphrase"},"snapshot_id":{"$ref":"#/components/schemas/SnapshotID"}},"required":["snapshot_id","device_id","image_type"]}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImageExport"}}},"description":"Created"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Create image export","tags":["Restores (Image)"]}},"/v1/restore/image/{image_export_id}":{"delete":{"operationId":"ImageDelete","parameters":[{"$ref":"#/components/parameters/PathImageExportID"}],"responses":{"204":{"description":"No Content"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Delete image export","tags":["Restores (Image)"]},"get":{"operationId":"ImageByID","parameters":[{"$ref":"#/components/parameters/PathImageExportID"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImageExport"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Get image export","tags":["Restores (Image)"]},"patch":{"operationId":"ImageUpdate","parameters":[{"$ref":"#/components/parameters/PathImageExportID"}],"requestBody":{"content":{"application/json":{"example":"{\n  \"nfs\": true,\n  \"nfs_clients\": [\"192.168.1.113\",\"10.80.0.0/16\"]\n}","schema":{"properties":{"iscsi":{"$ref":"#/components/schemas/ISCSI"},"nfs":{"$ref":"#/components/schemas/NFS"},"nfs_clients":{"$ref":"#/components/schemas/NFSClients"}}}}},"required":true},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImageExport"}}},"description":"Accepted"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Update image export","tags":["Restores (Image)"]}},"/v1/restore/image/{image_export_id}/browse":{"get":{"operationId":"ImageBrowse","parameters":[{"$ref":"#/components/parameters/QueryOffset"},{"$ref":"#/components/parameters/QueryLimit"},{"$ref":"#/components/parameters/PathImageExportID"}],"responses":{"200":{"content":{"application/json":{"schema":{"description":"Paginated response","properties":{"data":{"description":"List of image export entries","items":{"$ref":"#/components/schemas/ImageExportEntry"},"title":"ImageExports","type":"array"},"pagination":{"$ref":"#/components/schemas/Pagination"}},"required":["pagination","data"],"title":"Paginated response","type":"object"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Browse image export","tags":["Restores (Image)"]}},"/v1/restore/virt":{"get":{"operationId":"Virts","parameters":[{"$ref":"#/components/parameters/QueryOffset"},{"$ref":"#/components/parameters/QueryLimit"},{"description":"Sort by a specific field","in":"query","name":"sort_by","schema":{"default":"created","enum":["created"],"type":"string"}},{"$ref":"#/components/parameters/QuerySortAsc"},{"$ref":"#/components/parameters/QueryCreatedAfter"},{"$ref":"#/components/parameters/QueryCreatedBefore"}],"responses":{"200":{"content":{"application/json":{"schema":{"description":"Paginated response","properties":{"data":{"description":"List of virtual machines","items":{"$ref":"#/components/schemas/VirtualMachine"},"title":"VirtualMachines","type":"array"},"pagination":{"$ref":"#/components/schemas/Pagination"}},"required":["pagination","data"],"title":"Paginated response","type":"object"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"500":{"$ref":"#/components/responses/500"}},"summary":"List virtual machines","tags":["Restores (Virtual Machine)"]},"post":{"operationId":"VirtCreate","requestBody":{"content":{"application/json":{"examples":{"basic":{"summary":"Basic virtual machine","value":{"device_id":"d_0123456789ab","network_type":"network-nat-isolated","snapshot_id":"s_0123456789ab"}},"basic_disaster":{"summary":"Basic disaster virtual machine","value":{"device_id":"d_0123456789ab","network_type":"network-nat-isolated","purpose":"disaster","snapshot_id":"s_0123456789ab"}},"basic_with_passphrase":{"summary":"Basic virtual machine with passphrase","value":{"device_id":"d_0123456789ab","network_type":"network-nat-isolated","passphrase":"Super Secret Passphrase","snapshot_id":"s_0123456789ab"}},"bind_to_network":{"summary":"Virtual machine with network binding","value":{"device_id":"d_0123456789ab","network_source":"net_012345","network_type":"network-id","snapshot_id":"s_0123456789ab"}}},"schema":{"properties":{"boot_mods":{"$ref":"#/components/schemas/VirtBootMods"},"cpu_count":{"$ref":"#/components/schemas/CPUCount"},"device_id":{"$ref":"#/components/schemas/DeviceID"},"disk_bus":{"$ref":"#/components/schemas/DiskBus"},"force_boot_menu":{"$ref":"#/components/schemas/ForceBootMenu"},"memory_in_mb":{"$ref":"#/components/schemas/MemoryInMB"},"network_model":{"$ref":"#/components/schemas/NetworkModel"},"network_source":{"allOf":[{"$ref":"#/components/schemas/NetworkID"}],"description":"If network_type is `network-id`, this is the network to bind the VM to."},"network_type":{"$ref":"#/components/schemas/NetworkType"},"passphrase":{"$ref":"#/components/schemas/Passphrase"},"purpose":{"$ref":"#/components/schemas/Purpose"},"snapshot_id":{"$ref":"#/components/schemas/SnapshotID"},"vnc_enabled":{"$ref":"#/components/schemas/VNCEnabled"}},"required":["snapshot_id","device_id"]}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VirtualMachine"}}},"description":"Created"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Create virtual machine","tags":["Restores (Virtual Machine)"]}},"/v1/restore/virt/{virt_id}":{"delete":{"operationId":"VirtDelete","parameters":[{"$ref":"#/components/parameters/PathVirtID"}],"responses":{"204":{"description":"No Content"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Delete virtual machine","tags":["Restores (Virtual Machine)"]},"get":{"operationId":"VirtByID","parameters":[{"$ref":"#/components/parameters/PathVirtID"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VirtualMachine"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Get virtual machine","tags":["Restores (Virtual Machine)"]},"patch":{"operationId":"VirtUpdate","parameters":[{"$ref":"#/components/parameters/PathVirtID"}],"requestBody":{"content":{"application/json":{"example":"{\n  \"state\": \"running\",\n  \"expires_at\": \"2024-08-23T01:25:08Z\",\n  \"memory_in_mb\": 4096,\n  \"cpu_count\": 2\n}","schema":{"properties":{"cpu_count":{"$ref":"#/components/schemas/CPUCount"},"expires_at":{"$ref":"#/components/schemas/ExpiresAt"},"force_boot_menu":{"$ref":"#/components/schemas/ForceBootMenu"},"memory_in_mb":{"$ref":"#/components/schemas/MemoryInMB"},"network_model":{"$ref":"#/components/schemas/NetworkModel"},"network_source":{"allOf":[{"$ref":"#/components/schemas/NetworkID"}],"description":"If network_type is `network-id`, this is the network to bind the VM to."},"network_type":{"$ref":"#/components/schemas/NetworkType"},"purpose":{"$ref":"#/components/schemas/Purpose"},"state":{"$ref":"#/components/schemas/VirtualMachineState"},"vnc_enabled":{"$ref":"#/components/schemas/VNCEnabled"}}}}},"required":true},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VirtualMachine"}}},"description":"Accepted"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Update virtual machine","tags":["Restores (Virtual Machine)"]}},"/v1/snapshot":{"get":{"operationId":"Snapshots","parameters":[{"$ref":"#/components/parameters/QueryAgentID"},{"$ref":"#/components/parameters/QueryOffset"},{"$ref":"#/components/parameters/QueryLimit"},{"$ref":"#/components/parameters/QuerySnapshotLocation"},{"$ref":"#/components/parameters/QueryBackupStartedAfter"},{"$ref":"#/components/parameters/QueryBackupStartedBefore"},{"$ref":"#/components/parameters/QueryBackupEndedAfter"},{"$ref":"#/components/parameters/QueryBackupEndedBefore"},{"description":"Sort by a specific field","in":"query","name":"sort_by","schema":{"default":"created","enum":["backup_start_time","backup_end_time","created"],"type":"string"}},{"$ref":"#/components/parameters/QuerySortAsc"}],"responses":{"200":{"content":{"application/json":{"schema":{"description":"Paginated response","properties":{"data":{"description":"List of snapshots","items":{"$ref":"#/components/schemas/Snapshot"},"title":"Snapshots","type":"array"},"pagination":{"$ref":"#/components/schemas/Pagination"}},"required":["pagination","data"],"title":"Paginated response","type":"object"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"500":{"$ref":"#/components/responses/500"}},"summary":"List snapshots","tags":["Snapshots"]}},"/v1/snapshot/{snapshot_id}":{"get":{"operationId":"SnapshotByID","parameters":[{"$ref":"#/components/parameters/PathSnapshotID"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Snapshot"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Get snapshot","tags":["Snapshots"]}},"/v1/snapshot/{snapshot_id}/service-verification":{"get":{"operationId":"SnapshotServiceVerification","parameters":[{"$ref":"#/components/parameters/PathSnapshotID"}],"responses":{"200":{"content":{"application/json":{"schema":{"description":"Service verification results for a snapshot","properties":{"services":{"description":"Per-service verification results.","items":{"$ref":"#/components/schemas/ServiceVerificationResult"},"type":"array"},"status":{"description":"Overall service verification status.","example":"success","type":"string"}},"required":["status","services"],"title":"Snapshot service verification response","type":"object"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Get service verification results for a snapshot","tags":["Snapshots"]}},"/v1/user":{"get":{"operationId":"Users","parameters":[{"$ref":"#/components/parameters/QueryOffset"},{"$ref":"#/components/parameters/QueryLimit"},{"description":"Sort by a specific field","in":"query","name":"sort_by","schema":{"default":"id","enum":["id"],"type":"string"}},{"$ref":"#/components/parameters/QuerySortAsc"},{"$ref":"#/components/parameters/QueryCreatedAfter"},{"$ref":"#/components/parameters/QueryCreatedBefore"}],"responses":{"200":{"content":{"application/json":{"schema":{"description":"Paginated response","properties":{"data":{"description":"List of users","items":{"$ref":"#/components/schemas/User"},"title":"Users","type":"array"},"pagination":{"$ref":"#/components/schemas/Pagination"}},"required":["pagination","data"],"title":"Paginated response","type":"object"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"500":{"$ref":"#/components/responses/500"}},"summary":"List users","tags":["Users"]}},"/v1/user/{user_id}":{"get":{"operationId":"UserByID","parameters":[{"$ref":"#/components/parameters/PathUserID"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Get user","tags":["Users"]}},"/v1/user/{user_id}/avatar":{"get":{"operationId":"UserAvatarByID","parameters":[{"$ref":"#/components/parameters/PathUserID"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Avatar"}}},"description":"OK"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"summary":"Get user avatar","tags":["Users"]}}},"security":[{"BearerAuth":[]}],"servers":[{"url":"https://api.slide.tech"}],"tags":[{"description":"Everything about [devices](#model/device)","name":"Devices"},{"description":"Everything about [agents](#model/agent)","name":"Agents"},{"description":"Everything about [backups](#model/backup)","name":"Backups"},{"description":"Everything about [snapshots](#model/snapshot)","name":"Snapshots"},{"description":"Everything about [file restores](#model/filerestore)","name":"Restores (File)"},{"description":"Everything about [push file restores](#model/filerestorepush)","name":"Restores (Push)"},{"description":"Everything about [virtual machines](#model/virtualmachine)","name":"Restores (Virtual Machine)"},{"description":"Everything about [image exports](#model/imageexport)","name":"Restores (Image)"},{"description":"Everything about [networks](#model/network)","name":"Networks"},{"description":"Everything about [users](#model/user)","name":"Users"},{"description":"Everything about [alerts](#model/alert)","name":"Alerts"},{"description":"Everything about [accounts](#model/account)","name":"Accounts"},{"description":"Read-only, account-scoped invoices, credit memos, and subscriptions","name":"Billing"},{"description":"Everything about [clients](#model/client)","name":"Clients"}]}