# Server Commands

Commands you can perform on servers

## Allocate a server to a client

> Allocates a server to a client, according to the given location and instance type.

```json
{"openapi":"3.0.3","info":{"title":"Inventory Service - OpenAPI 3.0","version":"0.1.0"},"tags":[{"name":"Server Commands","description":"Commands you can perform on servers"}],"security":[{"ApiKeyAuth":["read:server","write:server"]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","name":"X-Api-Key","in":"header"}},"schemas":{"ServerAllocation":{"type":"object","description":"Allocation request object","required":["locationId","instanceTypeId","clientId"],"properties":{"locationId":{"type":"integer","minimum":1},"instanceTypeId":{"type":"integer","minimum":1},"clientId":{"type":"integer","minimum":0},"contractId":{"type":"string","pattern":"^[A-Z0-9_\\-.]{0,240}$","description":"Can be empty or null for on-demand client quota"},"overflow":{"type":"boolean","default":false,"description":"If true, the allocation will be allowed to overflow the client's quota and use on-demand quota"}}},"ServerAllocationResponse":{"type":"object","properties":{"server":{"$ref":"#/components/schemas/ServerModel"},"quota":{"$ref":"#/components/schemas/ServerQuotaItem"}}},"ServerModel":{"type":"object","required":["ipAddresses","macAddresses","disks"],"properties":{"serverId":{"type":"integer","format":"int","minimum":0},"machineUuid":{"type":"string"},"serial":{"type":"string"},"name":{"type":"string"},"hostname":{"type":"string"},"locationId":{"type":"integer","format":"int","minimum":0},"locationName":{"type":"string"},"instanceTypeId":{"type":"integer","format":"int","minimum":0},"instanceTypeName":{"type":"string"},"clientId":{"type":"integer","format":"int","minimum":0,"description":"The K number of the client this server is allocated to. Or 0 if unallocated."},"contractId":{"type":"string","pattern":"^[A-Z0-9_\\-.]{0,240}$","description":"Can be empty or null for on-demand client quota"},"state":{"type":"string","enum":["new","isolated","backToBaseline","available","allocated","decommissioned"]},"subState":{"type":"string"},"vendor":{"type":"string"},"chassis":{"type":"string"},"firmwareVersion":{"type":"number","format":"double"},"ipmiVersion":{"type":"number","format":"double"},"ipAddresses":{"type":"array","items":{"$ref":"#/components/schemas/IpAddressSum"}},"macAddresses":{"type":"array","items":{"$ref":"#/components/schemas/MacAddressSum"}},"disks":{"type":"array","items":{"$ref":"#/components/schemas/DiskSum"}},"isolationReason":{"$ref":"#/components/schemas/IsolationReason"}}},"IpAddressSum":{"type":"object","properties":{"ipAddress":{"type":"string"},"ipType":{"type":"string"},"ipVersion":{"type":"string"}}},"MacAddressSum":{"type":"object","properties":{"macAddress":{"type":"string"},"macType":{"type":"string"}}},"DiskSum":{"type":"object","properties":{"name":{"type":"string"},"interface":{"type":"string"},"type":{"type":"string"}}},"IsolationReason":{"type":"object","properties":{"operationUuid":{"type":"string","format":"uuid"},"reason":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}}},"ServerQuotaItem":{"type":"object","description":"ServerQuotaItem object","required":["clientId","instanceTypeId","locationId","quota"],"properties":{"id":{"type":"integer","format":"int","minimum":0,"readOnly":true},"clientId":{"type":"integer","format":"int","minimum":0,"description":"Pass 0 for default quota"},"contractId":{"type":"string","pattern":"^[A-Z0-9_\\-.]{0,240}$","description":"Can be empty or null for default and basic client quota"},"locationId":{"type":"integer","format":"int16","minimum":0,"maximum":32767,"description":"Pass 0 combined with instanceTypeId 0 to define max quota for an entire client"},"instanceTypeId":{"type":"integer","format":"int","minimum":0,"description":"Pass 0 to define with locationId > 0 to define max quota for an entire location"},"quota":{"type":"integer","format":"int16","minimum":0,"maximum":32767}}},"ErrorResponse":{"type":"object","description":"Error response object","properties":{"error":{"type":"string"}}}}},"paths":{"/api/server/allocate":{"post":{"tags":["Server Commands"],"summary":"Allocate a server to a client","description":"Allocates a server to a client, according to the given location and instance type.","operationId":"allocateServer","requestBody":{"description":"Provide allocation parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerAllocation"}}}},"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerAllocationResponse"}}}},"400":{"description":"Invalid json body supplied"},"401":{"description":"Invalid authentication"},"404":{"description":"No available server could be found for allocation"},"422":{"description":"Invalid body parameter(s) supplied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## De-allocate a server from a client

> De-allocates a server from a client. Afterwards the Back to Baseline process will start, wiping and health checking the server.

```json
{"openapi":"3.0.3","info":{"title":"Inventory Service - OpenAPI 3.0","version":"0.1.0"},"tags":[{"name":"Server Commands","description":"Commands you can perform on servers"}],"security":[{"ApiKeyAuth":["read:server","write:server"]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","name":"X-Api-Key","in":"header"}},"schemas":{"Server":{"type":"object","properties":{"server":{"$ref":"#/components/schemas/ServerModel"}}},"ServerModel":{"type":"object","required":["ipAddresses","macAddresses","disks"],"properties":{"serverId":{"type":"integer","format":"int","minimum":0},"machineUuid":{"type":"string"},"serial":{"type":"string"},"name":{"type":"string"},"hostname":{"type":"string"},"locationId":{"type":"integer","format":"int","minimum":0},"locationName":{"type":"string"},"instanceTypeId":{"type":"integer","format":"int","minimum":0},"instanceTypeName":{"type":"string"},"clientId":{"type":"integer","format":"int","minimum":0,"description":"The K number of the client this server is allocated to. Or 0 if unallocated."},"contractId":{"type":"string","pattern":"^[A-Z0-9_\\-.]{0,240}$","description":"Can be empty or null for on-demand client quota"},"state":{"type":"string","enum":["new","isolated","backToBaseline","available","allocated","decommissioned"]},"subState":{"type":"string"},"vendor":{"type":"string"},"chassis":{"type":"string"},"firmwareVersion":{"type":"number","format":"double"},"ipmiVersion":{"type":"number","format":"double"},"ipAddresses":{"type":"array","items":{"$ref":"#/components/schemas/IpAddressSum"}},"macAddresses":{"type":"array","items":{"$ref":"#/components/schemas/MacAddressSum"}},"disks":{"type":"array","items":{"$ref":"#/components/schemas/DiskSum"}},"isolationReason":{"$ref":"#/components/schemas/IsolationReason"}}},"IpAddressSum":{"type":"object","properties":{"ipAddress":{"type":"string"},"ipType":{"type":"string"},"ipVersion":{"type":"string"}}},"MacAddressSum":{"type":"object","properties":{"macAddress":{"type":"string"},"macType":{"type":"string"}}},"DiskSum":{"type":"object","properties":{"name":{"type":"string"},"interface":{"type":"string"},"type":{"type":"string"}}},"IsolationReason":{"type":"object","properties":{"operationUuid":{"type":"string","format":"uuid"},"reason":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}}}}},"paths":{"/api/client/{clientId}/server/{serverId}/allocate":{"delete":{"tags":["Server Commands"],"summary":"De-allocate a server from a client","description":"De-allocates a server from a client. Afterwards the Back to Baseline process will start, wiping and health checking the server.","operationId":"deallocateServer","parameters":[{"name":"clientId","in":"path","description":"ID of the client to de-allocate for","required":true,"schema":{"type":"integer","format":"int"}},{"name":"serverId","in":"path","description":"ID of the server to de-allocate","required":true,"schema":{"type":"integer","format":"int"}}],"responses":{"200":{"description":"Successful operation. Returned in case of success, but also when the server was already de-allocated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Server"}}}},"400":{"description":"Invalid ID supplied"},"401":{"description":"Invalid authentication"},"404":{"description":"Server not found"}}}}}}
```

## Compensates allocation for a server

> Compensates Allocation of the server which failed to deliver. Afterwards the Back to Baseline process will start, wiping and health checking the server.

```json
{"openapi":"3.0.3","info":{"title":"Inventory Service - OpenAPI 3.0","version":"0.1.0"},"tags":[{"name":"Server Commands","description":"Commands you can perform on servers"}],"security":[{"ApiKeyAuth":["read:server","write:server"]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","name":"X-Api-Key","in":"header"}},"schemas":{"Server":{"type":"object","properties":{"server":{"$ref":"#/components/schemas/ServerModel"}}},"ServerModel":{"type":"object","required":["ipAddresses","macAddresses","disks"],"properties":{"serverId":{"type":"integer","format":"int","minimum":0},"machineUuid":{"type":"string"},"serial":{"type":"string"},"name":{"type":"string"},"hostname":{"type":"string"},"locationId":{"type":"integer","format":"int","minimum":0},"locationName":{"type":"string"},"instanceTypeId":{"type":"integer","format":"int","minimum":0},"instanceTypeName":{"type":"string"},"clientId":{"type":"integer","format":"int","minimum":0,"description":"The K number of the client this server is allocated to. Or 0 if unallocated."},"contractId":{"type":"string","pattern":"^[A-Z0-9_\\-.]{0,240}$","description":"Can be empty or null for on-demand client quota"},"state":{"type":"string","enum":["new","isolated","backToBaseline","available","allocated","decommissioned"]},"subState":{"type":"string"},"vendor":{"type":"string"},"chassis":{"type":"string"},"firmwareVersion":{"type":"number","format":"double"},"ipmiVersion":{"type":"number","format":"double"},"ipAddresses":{"type":"array","items":{"$ref":"#/components/schemas/IpAddressSum"}},"macAddresses":{"type":"array","items":{"$ref":"#/components/schemas/MacAddressSum"}},"disks":{"type":"array","items":{"$ref":"#/components/schemas/DiskSum"}},"isolationReason":{"$ref":"#/components/schemas/IsolationReason"}}},"IpAddressSum":{"type":"object","properties":{"ipAddress":{"type":"string"},"ipType":{"type":"string"},"ipVersion":{"type":"string"}}},"MacAddressSum":{"type":"object","properties":{"macAddress":{"type":"string"},"macType":{"type":"string"}}},"DiskSum":{"type":"object","properties":{"name":{"type":"string"},"interface":{"type":"string"},"type":{"type":"string"}}},"IsolationReason":{"type":"object","properties":{"operationUuid":{"type":"string","format":"uuid"},"reason":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}}}}},"paths":{"/api/client/{clientId}/server/{serverId}/allocate/compensate":{"delete":{"tags":["Server Commands"],"summary":"Compensates allocation for a server","description":"Compensates Allocation of the server which failed to deliver. Afterwards the Back to Baseline process will start, wiping and health checking the server.","operationId":"compensateAllocation","parameters":[{"name":"serverId","in":"path","description":"ID of the server to de-allocate","required":true,"schema":{"type":"integer","format":"int"}},{"name":"clientId","in":"path","description":"ID of the client to de-allocate for","required":true,"schema":{"type":"integer","format":"int"}}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Server"}}}},"400":{"description":"Invalid ID supplied"},"401":{"description":"Invalid authentication"},"404":{"description":"Server not found"}}}}}}
```

## Isolate a server with a specific reason (subState)

> Isolate a server with a specific reason (subState). See request object for valid values.

```json
{"openapi":"3.0.3","info":{"title":"Inventory Service - OpenAPI 3.0","version":"0.1.0"},"tags":[{"name":"Server Commands","description":"Commands you can perform on servers"}],"security":[{"ApiKeyAuth":["read:server","write:server"]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","name":"X-Api-Key","in":"header"}},"schemas":{"ServerIsolation":{"type":"object","description":"Isolation request object","required":["subState"],"properties":{"subState":{"type":"string","enum":["backToBaseline","excluded","reserved","brokenHardware","incompleteData","failedOsInstall","unknownError","rentedLegacy","quarantined"]},"operationUuid":{"type":"string","format":"uuid","description":"The operationUuid reference from MetalWorks"},"reason":{"type":"string"}}},"Server":{"type":"object","properties":{"server":{"$ref":"#/components/schemas/ServerModel"}}},"ServerModel":{"type":"object","required":["ipAddresses","macAddresses","disks"],"properties":{"serverId":{"type":"integer","format":"int","minimum":0},"machineUuid":{"type":"string"},"serial":{"type":"string"},"name":{"type":"string"},"hostname":{"type":"string"},"locationId":{"type":"integer","format":"int","minimum":0},"locationName":{"type":"string"},"instanceTypeId":{"type":"integer","format":"int","minimum":0},"instanceTypeName":{"type":"string"},"clientId":{"type":"integer","format":"int","minimum":0,"description":"The K number of the client this server is allocated to. Or 0 if unallocated."},"contractId":{"type":"string","pattern":"^[A-Z0-9_\\-.]{0,240}$","description":"Can be empty or null for on-demand client quota"},"state":{"type":"string","enum":["new","isolated","backToBaseline","available","allocated","decommissioned"]},"subState":{"type":"string"},"vendor":{"type":"string"},"chassis":{"type":"string"},"firmwareVersion":{"type":"number","format":"double"},"ipmiVersion":{"type":"number","format":"double"},"ipAddresses":{"type":"array","items":{"$ref":"#/components/schemas/IpAddressSum"}},"macAddresses":{"type":"array","items":{"$ref":"#/components/schemas/MacAddressSum"}},"disks":{"type":"array","items":{"$ref":"#/components/schemas/DiskSum"}},"isolationReason":{"$ref":"#/components/schemas/IsolationReason"}}},"IpAddressSum":{"type":"object","properties":{"ipAddress":{"type":"string"},"ipType":{"type":"string"},"ipVersion":{"type":"string"}}},"MacAddressSum":{"type":"object","properties":{"macAddress":{"type":"string"},"macType":{"type":"string"}}},"DiskSum":{"type":"object","properties":{"name":{"type":"string"},"interface":{"type":"string"},"type":{"type":"string"}}},"IsolationReason":{"type":"object","properties":{"operationUuid":{"type":"string","format":"uuid"},"reason":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}}}}},"paths":{"/api/server/{serverId}/isolate":{"post":{"tags":["Server Commands"],"summary":"Isolate a server with a specific reason (subState)","description":"Isolate a server with a specific reason (subState). See request object for valid values.","operationId":"isolateServer","parameters":[{"name":"serverId","in":"path","description":"ID of the server to isolate","required":true,"schema":{"type":"integer","format":"int"}}],"requestBody":{"description":"Provide isolation parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerIsolation"}},"application/xml":{"schema":{"$ref":"#/components/schemas/ServerIsolation"}}}},"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Server"}}}},"400":{"description":"Invalid ID supplied"},"401":{"description":"Invalid authentication"},"404":{"description":"Server not found"}}}}}}
```

## Move a server out of isolation to start the baseline process

> Move a server out of isolation to start the baseline process after which it will become Available again or, if a problem was encountered during the baseline process, the server goes back to Isolation.

```json
{"openapi":"3.0.3","info":{"title":"Inventory Service - OpenAPI 3.0","version":"0.1.0"},"tags":[{"name":"Server Commands","description":"Commands you can perform on servers"}],"security":[{"ApiKeyAuth":["read:server","write:server"]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","name":"X-Api-Key","in":"header"}},"schemas":{"Server":{"type":"object","properties":{"server":{"$ref":"#/components/schemas/ServerModel"}}},"ServerModel":{"type":"object","required":["ipAddresses","macAddresses","disks"],"properties":{"serverId":{"type":"integer","format":"int","minimum":0},"machineUuid":{"type":"string"},"serial":{"type":"string"},"name":{"type":"string"},"hostname":{"type":"string"},"locationId":{"type":"integer","format":"int","minimum":0},"locationName":{"type":"string"},"instanceTypeId":{"type":"integer","format":"int","minimum":0},"instanceTypeName":{"type":"string"},"clientId":{"type":"integer","format":"int","minimum":0,"description":"The K number of the client this server is allocated to. Or 0 if unallocated."},"contractId":{"type":"string","pattern":"^[A-Z0-9_\\-.]{0,240}$","description":"Can be empty or null for on-demand client quota"},"state":{"type":"string","enum":["new","isolated","backToBaseline","available","allocated","decommissioned"]},"subState":{"type":"string"},"vendor":{"type":"string"},"chassis":{"type":"string"},"firmwareVersion":{"type":"number","format":"double"},"ipmiVersion":{"type":"number","format":"double"},"ipAddresses":{"type":"array","items":{"$ref":"#/components/schemas/IpAddressSum"}},"macAddresses":{"type":"array","items":{"$ref":"#/components/schemas/MacAddressSum"}},"disks":{"type":"array","items":{"$ref":"#/components/schemas/DiskSum"}},"isolationReason":{"$ref":"#/components/schemas/IsolationReason"}}},"IpAddressSum":{"type":"object","properties":{"ipAddress":{"type":"string"},"ipType":{"type":"string"},"ipVersion":{"type":"string"}}},"MacAddressSum":{"type":"object","properties":{"macAddress":{"type":"string"},"macType":{"type":"string"}}},"DiskSum":{"type":"object","properties":{"name":{"type":"string"},"interface":{"type":"string"},"type":{"type":"string"}}},"IsolationReason":{"type":"object","properties":{"operationUuid":{"type":"string","format":"uuid"},"reason":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}}}}},"paths":{"/api/server/{serverId}/isolate":{"delete":{"tags":["Server Commands"],"summary":"Move a server out of isolation to start the baseline process","description":"Move a server out of isolation to start the baseline process after which it will become Available again or, if a problem was encountered during the baseline process, the server goes back to Isolation.","operationId":"deisolateServer","parameters":[{"name":"serverId","in":"path","description":"ID of the server to move out of isolation","required":true,"schema":{"type":"integer","format":"int"}}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Server"}}}},"400":{"description":"Invalid ID supplied"},"401":{"description":"Invalid authentication"},"404":{"description":"Server not found"}}}}}}
```

## Set server status to Available

> Set server status to Available. Should only be called by MetalWorks after a successful Back to Baseline workflow.

```json
{"openapi":"3.0.3","info":{"title":"Inventory Service - OpenAPI 3.0","version":"0.1.0"},"tags":[{"name":"Server Commands","description":"Commands you can perform on servers"}],"security":[{"ApiKeyAuth":["read:server","write:server"]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","name":"X-Api-Key","in":"header"}},"schemas":{"Server":{"type":"object","properties":{"server":{"$ref":"#/components/schemas/ServerModel"}}},"ServerModel":{"type":"object","required":["ipAddresses","macAddresses","disks"],"properties":{"serverId":{"type":"integer","format":"int","minimum":0},"machineUuid":{"type":"string"},"serial":{"type":"string"},"name":{"type":"string"},"hostname":{"type":"string"},"locationId":{"type":"integer","format":"int","minimum":0},"locationName":{"type":"string"},"instanceTypeId":{"type":"integer","format":"int","minimum":0},"instanceTypeName":{"type":"string"},"clientId":{"type":"integer","format":"int","minimum":0,"description":"The K number of the client this server is allocated to. Or 0 if unallocated."},"contractId":{"type":"string","pattern":"^[A-Z0-9_\\-.]{0,240}$","description":"Can be empty or null for on-demand client quota"},"state":{"type":"string","enum":["new","isolated","backToBaseline","available","allocated","decommissioned"]},"subState":{"type":"string"},"vendor":{"type":"string"},"chassis":{"type":"string"},"firmwareVersion":{"type":"number","format":"double"},"ipmiVersion":{"type":"number","format":"double"},"ipAddresses":{"type":"array","items":{"$ref":"#/components/schemas/IpAddressSum"}},"macAddresses":{"type":"array","items":{"$ref":"#/components/schemas/MacAddressSum"}},"disks":{"type":"array","items":{"$ref":"#/components/schemas/DiskSum"}},"isolationReason":{"$ref":"#/components/schemas/IsolationReason"}}},"IpAddressSum":{"type":"object","properties":{"ipAddress":{"type":"string"},"ipType":{"type":"string"},"ipVersion":{"type":"string"}}},"MacAddressSum":{"type":"object","properties":{"macAddress":{"type":"string"},"macType":{"type":"string"}}},"DiskSum":{"type":"object","properties":{"name":{"type":"string"},"interface":{"type":"string"},"type":{"type":"string"}}},"IsolationReason":{"type":"object","properties":{"operationUuid":{"type":"string","format":"uuid"},"reason":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}}}}},"paths":{"/api/server/{serverId}/available":{"post":{"tags":["Server Commands"],"summary":"Set server status to Available","description":"Set server status to Available. Should only be called by MetalWorks after a successful Back to Baseline workflow.","operationId":"availableServer","parameters":[{"name":"serverId","in":"path","description":"ID of the server to set to Available","required":true,"schema":{"type":"integer","format":"int"}}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Server"}}}},"400":{"description":"Invalid ID supplied"},"401":{"description":"Invalid authentication"},"404":{"description":"Server not found"}}}}}}
```

## Quarantine a server

> Quarantines a server, preserving its current state, e.g. for law enforcement purposes or any "offline" investigation into a server's state.

```json
{"openapi":"3.0.3","info":{"title":"Inventory Service - OpenAPI 3.0","version":"0.1.0"},"tags":[{"name":"Server Commands","description":"Commands you can perform on servers"}],"security":[{"ApiKeyAuth":["read:server","write:server"]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","name":"X-Api-Key","in":"header"}},"schemas":{"Server":{"type":"object","properties":{"server":{"$ref":"#/components/schemas/ServerModel"}}},"ServerModel":{"type":"object","required":["ipAddresses","macAddresses","disks"],"properties":{"serverId":{"type":"integer","format":"int","minimum":0},"machineUuid":{"type":"string"},"serial":{"type":"string"},"name":{"type":"string"},"hostname":{"type":"string"},"locationId":{"type":"integer","format":"int","minimum":0},"locationName":{"type":"string"},"instanceTypeId":{"type":"integer","format":"int","minimum":0},"instanceTypeName":{"type":"string"},"clientId":{"type":"integer","format":"int","minimum":0,"description":"The K number of the client this server is allocated to. Or 0 if unallocated."},"contractId":{"type":"string","pattern":"^[A-Z0-9_\\-.]{0,240}$","description":"Can be empty or null for on-demand client quota"},"state":{"type":"string","enum":["new","isolated","backToBaseline","available","allocated","decommissioned"]},"subState":{"type":"string"},"vendor":{"type":"string"},"chassis":{"type":"string"},"firmwareVersion":{"type":"number","format":"double"},"ipmiVersion":{"type":"number","format":"double"},"ipAddresses":{"type":"array","items":{"$ref":"#/components/schemas/IpAddressSum"}},"macAddresses":{"type":"array","items":{"$ref":"#/components/schemas/MacAddressSum"}},"disks":{"type":"array","items":{"$ref":"#/components/schemas/DiskSum"}},"isolationReason":{"$ref":"#/components/schemas/IsolationReason"}}},"IpAddressSum":{"type":"object","properties":{"ipAddress":{"type":"string"},"ipType":{"type":"string"},"ipVersion":{"type":"string"}}},"MacAddressSum":{"type":"object","properties":{"macAddress":{"type":"string"},"macType":{"type":"string"}}},"DiskSum":{"type":"object","properties":{"name":{"type":"string"},"interface":{"type":"string"},"type":{"type":"string"}}},"IsolationReason":{"type":"object","properties":{"operationUuid":{"type":"string","format":"uuid"},"reason":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}}}}},"paths":{"/api/server/{serverId}/quarantine":{"post":{"tags":["Server Commands"],"summary":"Quarantine a server","description":"Quarantines a server, preserving its current state, e.g. for law enforcement purposes or any \"offline\" investigation into a server's state.","operationId":"quarantineServer","parameters":[{"name":"serverId","in":"path","description":"ID of the server to quarantine","required":true,"schema":{"type":"integer","format":"int"}}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Server"}}}},"400":{"description":"Invalid ID supplied"},"401":{"description":"Invalid authentication"},"404":{"description":"Server not found"}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.i3d.net/api-references/inventory/server-commands.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
