# Compute API

## List API Versions

> Lists information about all known API versions in the deployment.\
> This endpoint does not require authentication.<br>

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}},"schemas":{"Version":{"type":"object","properties":{"id":{"description":"A common name for the version","type":"string"},"status":{"description":"The status of this API version","enum":["CURRENT","DEPRECATED"],"type":"string"},"version":{"description":"The maximum microversion supported (empty for legacy v2.0)","type":"string"},"min_version":{"description":"The minimum microversion supported (empty for legacy v2.0)","type":"string"},"updated":{"format":"date-time","description":"The date and time when the version was updated","type":"string"},"links":{"type":"array","items":{"$ref":"#/components/schemas/Link"}}}},"Link":{"type":"object","properties":{"href":{"format":"uri","type":"string"},"rel":{"enum":["self","bookmark","next","prev"],"type":"string"},"type":{"type":"string"}}}}},"paths":{"/":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"versions":{"type":"array","items":{"$ref":"#/components/schemas/Version"}}}}}},"description":"Successful response"}},"operationId":"listVersions","summary":"List API Versions","description":"Lists information about all known API versions in the deployment.\nThis endpoint does not require authentication.\n"}}}}
```

## List Servers

> Lists IDs, names, and links for servers. By default, servers are filtered\
> using the project ID associated with the authenticated request.<br>

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}},"parameters":{"OpenStackAPIVersion":{"name":"OpenStack-API-Version","description":"Specifies the API microversion. Format: \"compute X.Y\" where X.Y is the microversion.\nIf not specified, the minimum supported version (2.1) is used.\n","schema":{"pattern":"^compute \\d+\\.\\d+","type":"string"},"in":"header"}},"schemas":{"ServerSummary":{"type":"object","properties":{"id":{"format":"uuid","description":"The UUID of the server","type":"string"},"name":{"description":"The server name","type":"string"},"links":{"type":"array","items":{"$ref":"#/components/schemas/Link"}}}},"Link":{"type":"object","properties":{"href":{"format":"uri","type":"string"},"rel":{"enum":["self","bookmark","next","prev"],"type":"string"},"type":{"type":"string"}}},"ErrorResponse":{"type":"object","properties":{"computeFault":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"details":{"type":"string"}}}}}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"Forbidden":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"}}},"paths":{"/servers":{"get":{"parameters":[{"$ref":"#/components/parameters/OpenStackAPIVersion"},{"name":"changes-since","description":"Filters the response by a date and time stamp when the server last changed status.\nFormat: CCYY-MM-DDThh:mm:ss±hh:mm\n","schema":{"format":"date-time","type":"string"},"in":"query"},{"name":"flavor","description":"Filters the response by a flavor UUID","schema":{"format":"uuid","type":"string"},"in":"query"},{"name":"image","description":"Filters the response by an image UUID","schema":{"format":"uuid","type":"string"},"in":"query"},{"name":"ip","description":"An IPv4 address to filter results by","schema":{"format":"ipv4","type":"string"},"in":"query"},{"name":"ip6","description":"An IPv6 address to filter results by","schema":{"format":"ipv6","type":"string"},"in":"query"},{"name":"name","description":"Filters the response by a server name","schema":{"type":"string"},"in":"query"},{"name":"reservation_id","description":"A reservation id as returned by a servers multiple create call","schema":{"type":"string"},"in":"query"},{"name":"status","description":"Filters the response by a server status","schema":{"enum":["ACTIVE","BUILD","DELETED","ERROR","HARD_REBOOT","MIGRATING","PASSWORD","PAUSED","REBOOT","REBUILD","RESCUE","RESIZE","REVERT_RESIZE","SHELVED","SHELVED_OFFLOADED","SHUTOFF","SOFT_DELETED","SUSPENDED","UNKNOWN","VERIFY_RESIZE"],"type":"string"},"in":"query"},{"name":"tags","description":"A list of tags to filter the server list by. Servers that match all tags\nin this list will be returned. Tags must be separated by comma.\n","schema":{"type":"string"},"in":"query"},{"name":"tags-any","description":"A list of tags to filter the server list by. Servers that match any tag\nin this list will be returned. Tags must be separated by comma.\n","schema":{"type":"string"},"in":"query"},{"name":"not-tags","description":"A list of tags to filter the server list by. Servers that don't match\nall tags in this list will be returned. Tags must be separated by comma.\n","schema":{"type":"string"},"in":"query"},{"name":"not-tags-any","description":"A list of tags to filter the server list by. Servers that don't match\nany tags in this list will be returned. Tags must be separated by comma.\n","schema":{"type":"string"},"in":"query"},{"name":"limit","description":"Requests a page size of items","schema":{"minimum":1,"type":"integer"},"in":"query"},{"name":"marker","description":"The ID of the last-seen item for pagination","schema":{"format":"uuid","type":"string"},"in":"query"},{"name":"sort_key","description":"Sorts by a server attribute","schema":{"default":"created_at","enum":["access_ip_v4","access_ip_v6","auto_disk_config","availability_zone","config_drive","created_at","display_description","display_name","host","hostname","image_ref","instance_type_id","kernel_id","key_name","launch_index","launched_at","locked_by","node","power_state","progress","project_id","ramdisk_id","root_device_name","task_state","terminated_at","updated_at","user_id","uuid","vm_state"],"type":"string"},"in":"query"},{"name":"sort_dir","description":"Sort direction","schema":{"default":"desc","enum":["asc","desc"],"type":"string"},"in":"query"},{"name":"changes-before","description":"Filters the response by a date and time stamp when the server last changed.\nFormat: CCYY-MM-DDThh:mm:ss±hh:mm\n","schema":{"format":"date-time","type":"string"},"in":"query"},{"name":"locked","description":"Specify the locked status to filter servers","schema":{"type":"boolean"},"in":"query"},{"name":"availability_zone","description":"Filter the server list result by server availability zone","schema":{"type":"string"},"in":"query"},{"name":"config_drive","description":"Filter the server list result by the config drive setting","schema":{"type":"string"},"in":"query"},{"name":"key_name","description":"Filter the server list result by keypair name","schema":{"type":"string"},"in":"query"},{"name":"created_at","description":"Filter the server list result by a date and time stamp when server was created.\nFormat: CCYY-MM-DDThh:mm:ss±hh:mm\n","schema":{"format":"date-time","type":"string"},"in":"query"},{"name":"launched_at","description":"Filter the server list result by a date and time stamp when the instance was launched.\nFormat: CCYY-MM-DDThh:mm:ss±hh:mm\n","schema":{"format":"date-time","type":"string"},"in":"query"},{"name":"terminated_at","description":"Filter the server list result by a date and time stamp when instance was terminated.\nFormat: CCYY-MM-DDThh:mm:ss±hh:mm\n","schema":{"format":"date-time","type":"string"},"in":"query"},{"name":"user_id","description":"Filter the list of servers by the given user ID","schema":{"type":"string"},"in":"query"},{"name":"power_state","description":"Filter the server list result by server power state","schema":{"enum":[0,1,3,4,6,7],"type":"integer"},"in":"query"},{"name":"task_state","description":"Filter the server list result by task state","schema":{"type":"string"},"in":"query"},{"name":"vm_state","description":"Filter the server list result by vm state","schema":{"enum":["active","building","paused","suspended","stopped","rescued","resized","soft-delete","deleted","error","shelved","shelved_offloaded"],"type":"string"},"in":"query"},{"name":"progress","description":"Filter the server list result by the progress of the server (0-100)","schema":{"maximum":100,"minimum":0,"type":"integer"},"in":"query"},{"name":"hostname","description":"Filter the server list result by the host name of server","schema":{"type":"string"},"in":"query"}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"servers":{"type":"array","items":{"$ref":"#/components/schemas/ServerSummary"}},"servers_links":{"type":"array","items":{"$ref":"#/components/schemas/Link"}}}}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"}},"operationId":"listServers","summary":"List Servers","description":"Lists IDs, names, and links for servers. By default, servers are filtered\nusing the project ID associated with the authenticated request.\n"}}}}
```

## Create Server

> Creates a server. The progress of this operation depends on various factors\
> including image location, network I/O, host load, and selected flavor.<br>

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}},"schemas":{"CreateServerRequest":{"required":["name","flavorRef"],"type":"object","properties":{"name":{"description":"The server name","type":"string"},"imageRef":{"format":"uuid","description":"The UUID of the image (not required for boot from volume)","type":"string"},"flavorRef":{"description":"The flavor reference (UUID or full URL)","type":"string"},"adminPass":{"description":"The administrative password of the server","type":"string"},"networks":{"oneOf":[{"description":"Special network allocation values","enum":["auto","none"],"type":"string"},{"description":"A list of networks","type":"array","items":{"$ref":"#/components/schemas/ServerNetwork"}}]},"block_device_mapping_v2":{"description":"Block device mapping for boot from volume","type":"array","items":{"$ref":"#/components/schemas/BlockDeviceMappingV2"}},"availability_zone":{"description":"The availability zone from which to launch the server","type":"string"},"user_data":{"format":"byte","description":"Configuration information or scripts (Base64 encoded)","type":"string"},"metadata":{"description":"Metadata key and value pairs","type":"object","additionalProperties":{"type":"string"}},"personality":{"description":"File path and contents to inject (deprecated in 2.57)","type":"array","items":{"$ref":"#/components/schemas/PersonalityFile"}},"security_groups":{"description":"One or more security groups","type":"array","items":{"type":"object","properties":{"name":{"type":"string"}}}},"key_name":{"description":"Key pair name","type":"string"},"config_drive":{"description":"Indicates whether a config drive enables metadata injection","type":"boolean"},"OS-DCF:diskConfig":{"description":"Controls how the API partitions the disk","enum":["AUTO","MANUAL"],"type":"string"},"accessIPv4":{"format":"ipv4","description":"IPv4 address that should be used to access this server","type":"string"},"accessIPv6":{"format":"ipv6","description":"IPv6 address that should be used to access this server","type":"string"},"description":{"description":"A free form description of the server","type":"string"},"hostname":{"description":"The hostname to configure for the instance","type":"string"},"tags":{"description":"A list of tags","maxItems":50,"type":"array","items":{"type":"string"}},"trusted_image_certificates":{"description":"A list of trusted certificate IDs","maxItems":50,"type":"array","items":{"format":"uuid","type":"string"}},"host":{"description":"The name of the compute service host (admin only)","type":"string"},"hypervisor_hostname":{"description":"The hostname of the hypervisor (admin only)","type":"string"}}},"ServerNetwork":{"type":"object","properties":{"uuid":{"format":"uuid","description":"The UUID of the network","type":"string"},"port":{"format":"uuid","description":"The UUID of an existing port","type":"string"},"fixed_ip":{"format":"ipv4","description":"A fixed IPv4 address for the NIC","type":"string"},"tag":{"description":"A device role tag for the network interface","type":"string"}}},"BlockDeviceMappingV2":{"required":["boot_index"],"type":"object","properties":{"boot_index":{"description":"The boot order of the device","minimum":0,"type":"integer"},"uuid":{"format":"uuid","description":"The UUID of the source resource","type":"string"},"source_type":{"description":"The source type of the block device","enum":["volume","image","snapshot","blank"],"type":"string"},"destination_type":{"description":"Where the block device mapping will reside","enum":["volume","local"],"type":"string"},"delete_on_termination":{"description":"Whether to delete the volume when the server is destroyed","default":false,"type":"boolean"},"device_name":{"description":"A path to the device for the volume","type":"string"},"device_type":{"description":"The device type","enum":["disk","cdrom","floppy","lun"],"type":"string"},"disk_bus":{"description":"Disk bus type","enum":["ide","usb","virtio","scsi","sata","uml","xen","lxc"],"type":"string"},"guest_format":{"description":"Guest server disk file system format","type":"string"},"no_device":{"description":"Whether this is a no device mapping","type":"boolean"},"volume_size":{"description":"The size of the volume in GiB","maximum":2147483647,"minimum":1,"type":"integer"},"tag":{"description":"A device role tag for the block device","type":"string"},"volume_type":{"description":"The volume type","type":"string"}}},"PersonalityFile":{"required":["path","contents"],"type":"object","properties":{"path":{"description":"The file path","maxLength":255,"type":"string"},"contents":{"format":"byte","description":"The file contents (Base64 encoded)","type":"string"}}},"SchedulerHints":{"description":"The dictionary of data to send to the scheduler","type":"object","properties":{"build_near_host_ip":{"format":"ipv4","description":"Schedule the server on a host in the network","type":"string"},"cidr":{"description":"Schedule the server on a host in the network specified with an IP address","type":"string"},"different_cell":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"Schedule the server in a cell that is not specified"},"different_host":{"oneOf":[{"format":"uuid","type":"string"},{"type":"array","items":{"format":"uuid","type":"string"}}],"description":"Schedule the server on a different host from a set of servers"},"group":{"format":"uuid","description":"The server group UUID","type":"string"},"query":{"description":"Schedule the server by using a custom filter in JSON format","type":"string"},"same_host":{"oneOf":[{"format":"uuid","type":"string"},{"type":"array","items":{"format":"uuid","type":"string"}}],"description":"Schedule the server on the same host as another server"},"target_cell":{"description":"A target cell name","type":"string"}}},"ServerResponse":{"type":"object","properties":{"id":{"format":"uuid","description":"The UUID of the server","type":"string"},"links":{"type":"array","items":{"$ref":"#/components/schemas/Link"}},"OS-DCF:diskConfig":{"description":"Disk configuration","enum":["AUTO","MANUAL"],"type":"string"},"adminPass":{"description":"The administrative password for the server","type":"string"},"security_groups":{"type":"array","items":{"$ref":"#/components/schemas/SecurityGroup"}}}},"Link":{"type":"object","properties":{"href":{"format":"uri","type":"string"},"rel":{"enum":["self","bookmark","next","prev"],"type":"string"},"type":{"type":"string"}}},"SecurityGroup":{"type":"object","properties":{"name":{"description":"The security group name","type":"string"}}},"ErrorResponse":{"type":"object","properties":{"computeFault":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"details":{"type":"string"}}}}}},"parameters":{"OpenStackAPIVersion":{"name":"OpenStack-API-Version","description":"Specifies the API microversion. Format: \"compute X.Y\" where X.Y is the microversion.\nIf not specified, the minimum supported version (2.1) is used.\n","schema":{"pattern":"^compute \\d+\\.\\d+","type":"string"},"in":"header"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"Forbidden":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"Conflict":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Conflict"}}},"paths":{"/servers":{"post":{"requestBody":{"content":{"application/json":{"schema":{"required":["server"],"type":"object","properties":{"server":{"$ref":"#/components/schemas/CreateServerRequest"},"OS-SCH-HNT:scheduler_hints":{"$ref":"#/components/schemas/SchedulerHints"}}}}},"required":true},"parameters":[{"$ref":"#/components/parameters/OpenStackAPIVersion"}],"responses":{"202":{"headers":{"Location":{"schema":{"format":"uri","type":"string"},"description":"The location URL of the server"}},"content":{"application/json":{"schema":{"type":"object","properties":{"server":{"$ref":"#/components/schemas/ServerResponse"}}}}},"description":"Server creation accepted"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict"}},"operationId":"createServer","summary":"Create Server","description":"Creates a server. The progress of this operation depends on various factors\nincluding image location, network I/O, host load, and selected flavor.\n"}}}}
```

## List Servers (Detailed)

> For each server, shows server details including config drive, extended status,\
> and server usage information.<br>

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}},"parameters":{"OpenStackAPIVersion":{"name":"OpenStack-API-Version","description":"Specifies the API microversion. Format: \"compute X.Y\" where X.Y is the microversion.\nIf not specified, the minimum supported version (2.1) is used.\n","schema":{"pattern":"^compute \\d+\\.\\d+","type":"string"},"in":"header"}},"schemas":{"ServerDetailed":{"allOf":[{"$ref":"#/components/schemas/ServerSummary"},{"type":"object","properties":{"accessIPv4":{"format":"ipv4","description":"IPv4 address that should be used to access this server","type":"string"},"accessIPv6":{"format":"ipv6","description":"IPv6 address that should be used to access this server","type":"string"},"addresses":{"description":"The addresses for the server","type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/NetworkAddress"}}},"config_drive":{"description":"Indicates whether a config drive was used","type":"string"},"created":{"format":"date-time","description":"The date and time when the resource was created","type":"string"},"flavor":{"oneOf":[{"$ref":"#/components/schemas/FlavorReference"},{"$ref":"#/components/schemas/FlavorDetailed"}]},"hostId":{"description":"An ID string representing the host (hashed)","type":"string"},"image":{"$ref":"#/components/schemas/ImageReference"},"key_name":{"nullable":true,"description":"The name of associated key pair","type":"string"},"metadata":{"description":"Server metadata key-value pairs","type":"object","additionalProperties":{"type":"string"}},"status":{"description":"The server status","enum":["ACTIVE","BUILD","DELETED","ERROR","HARD_REBOOT","MIGRATING","PASSWORD","PAUSED","REBOOT","REBUILD","RESCUE","RESIZE","REVERT_RESIZE","SHELVED","SHELVED_OFFLOADED","SHUTOFF","SOFT_DELETED","SUSPENDED","UNKNOWN","VERIFY_RESIZE"],"type":"string"},"tenant_id":{"format":"uuid","description":"The UUID of the tenant","type":"string"},"user_id":{"format":"uuid","description":"The user ID of the user who owns the server","type":"string"},"updated":{"format":"date-time","description":"The date and time when the resource was updated","type":"string"},"OS-DCF:diskConfig":{"description":"Disk configuration","enum":["AUTO","MANUAL"],"type":"string"},"OS-EXT-AZ:availability_zone":{"description":"The availability zone name","type":"string"},"OS-EXT-SRV-ATTR:host":{"nullable":true,"description":"The name of the compute host (admin only)","type":"string"},"OS-EXT-SRV-ATTR:hostname":{"nullable":true,"description":"The hostname of the instance","type":"string"},"OS-EXT-SRV-ATTR:hypervisor_hostname":{"nullable":true,"description":"The hypervisor host name (admin only)","type":"string"},"OS-EXT-SRV-ATTR:instance_name":{"nullable":true,"description":"The instance name (admin only)","type":"string"},"OS-EXT-SRV-ATTR:kernel_id":{"nullable":true,"description":"The UUID of the kernel image when using an AMI","type":"string"},"OS-EXT-SRV-ATTR:launch_index":{"nullable":true,"description":"The sequence in which the servers were launched","type":"integer"},"OS-EXT-SRV-ATTR:ramdisk_id":{"nullable":true,"description":"The UUID of the ramdisk image when using an AMI","type":"string"},"OS-EXT-SRV-ATTR:reservation_id":{"nullable":true,"description":"The reservation id for the server","type":"string"},"OS-EXT-SRV-ATTR:root_device_name":{"nullable":true,"description":"The root device name for the instance","type":"string"},"OS-EXT-SRV-ATTR:user_data":{"nullable":true,"description":"The user_data the instance was created with","type":"string"},"OS-EXT-STS:power_state":{"description":"The power state of the instance:\n0: NOSTATE, 1: RUNNING, 3: PAUSED, 4: SHUTDOWN, 6: CRASHED, 7: SUSPENDED\n","enum":[0,1,3,4,6,7],"type":"integer"},"OS-EXT-STS:task_state":{"nullable":true,"description":"The task state of the instance","type":"string"},"OS-EXT-STS:vm_state":{"description":"The VM state","type":"string"},"os-extended-volumes:volumes_attached":{"description":"The attached volumes","type":"array","items":{"$ref":"#/components/schemas/AttachedVolume"}},"OS-SRV-USG:launched_at":{"nullable":true,"format":"date-time","description":"The date and time when the server was launched","type":"string"},"OS-SRV-USG:terminated_at":{"nullable":true,"format":"date-time","description":"The date and time when the server was deleted","type":"string"},"fault":{"$ref":"#/components/schemas/ServerFault"},"locked":{"description":"True if the instance is locked","type":"boolean"},"locked_reason":{"nullable":true,"description":"The reason behind locking a server","type":"string"},"host_status":{"nullable":true,"description":"The host status (admin only)","enum":["UP","DOWN","MAINTENANCE","UNKNOWN",""],"type":"string"},"description":{"nullable":true,"description":"The description of the server","type":"string"},"tags":{"description":"A list of tags","maxItems":50,"type":"array","items":{"type":"string"}},"trusted_image_certificates":{"nullable":true,"description":"A list of trusted certificate IDs","maxItems":50,"type":"array","items":{"format":"uuid","type":"string"}},"progress":{"nullable":true,"description":"A percentage value of the operation progress","maximum":100,"minimum":0,"type":"integer"},"security_groups":{"description":"One or more security groups","type":"array","items":{"$ref":"#/components/schemas/SecurityGroup"}},"pinned_availability_zone":{"nullable":true,"description":"The availability zone requested during server creation","type":"string"},"scheduler_hints":{"nullable":true,"description":"The dictionary of hints sent to the scheduler during server creation time","type":"object"}}}]},"ServerSummary":{"type":"object","properties":{"id":{"format":"uuid","description":"The UUID of the server","type":"string"},"name":{"description":"The server name","type":"string"},"links":{"type":"array","items":{"$ref":"#/components/schemas/Link"}}}},"Link":{"type":"object","properties":{"href":{"format":"uri","type":"string"},"rel":{"enum":["self","bookmark","next","prev"],"type":"string"},"type":{"type":"string"}}},"NetworkAddress":{"type":"object","properties":{"addr":{"description":"The IP address","type":"string"},"version":{"description":"The IP version","enum":[4,6],"type":"integer"},"OS-EXT-IPS:type":{"description":"The type of address","enum":["fixed","floating"],"type":"string"},"OS-EXT-IPS-MAC:mac_addr":{"description":"The MAC address","type":"string"}}},"FlavorReference":{"type":"object","properties":{"id":{"description":"The ID of the flavor","type":"string"},"links":{"type":"array","items":{"$ref":"#/components/schemas/Link"}}}},"FlavorDetailed":{"allOf":[{"$ref":"#/components/schemas/FlavorSummary"},{"type":"object","properties":{"disk":{"description":"The size of the root disk in GiB","type":"integer"},"ephemeral":{"description":"The size of the ephemeral disk in GiB","type":"integer"},"ram":{"description":"The amount of RAM in MiB","type":"integer"},"swap":{"description":"The size of a dedicated swap disk in MiB","type":"integer"},"vcpus":{"description":"The number of virtual CPUs","type":"integer"},"original_name":{"description":"The display name of a flavor","type":"string"},"extra_specs":{"description":"A dictionary of the flavor's extra-specs key-and-value pairs","type":"object","additionalProperties":{"type":"string"}},"OS-FLV-DISABLED:disabled":{"description":"Whether the flavor is disabled","type":"boolean"},"OS-FLV-EXT-DATA:ephemeral":{"description":"The size of the ephemeral disk","type":"integer"},"os-flavor-access:is_public":{"description":"Whether the flavor is public","type":"boolean"},"rxtx_factor":{"description":"The receive/transmit factor","type":"number"}}}]},"FlavorSummary":{"type":"object","properties":{"id":{"description":"The ID of the flavor","type":"string"},"name":{"description":"The flavor name","type":"string"},"links":{"type":"array","items":{"$ref":"#/components/schemas/Link"}}}},"ImageReference":{"type":"object","properties":{"id":{"format":"uuid","description":"The UUID of the image","type":"string"},"links":{"type":"array","items":{"$ref":"#/components/schemas/Link"}},"properties":{"description":"Image properties","type":"object"}}},"AttachedVolume":{"type":"object","properties":{"id":{"format":"uuid","description":"The attached volume ID","type":"string"},"delete_on_termination":{"description":"Whether the volume will be deleted when the server is deleted","type":"boolean"}}},"ServerFault":{"type":"object","properties":{"code":{"description":"The error response code","type":"integer"},"message":{"description":"The error message","type":"string"},"details":{"description":"The stack trace","type":"string"},"created":{"format":"date-time","description":"The date and time when the exception was raised","type":"string"}}},"SecurityGroup":{"type":"object","properties":{"name":{"description":"The security group name","type":"string"}}},"ErrorResponse":{"type":"object","properties":{"computeFault":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"details":{"type":"string"}}}}}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"Forbidden":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"}}},"paths":{"/servers/detail":{"get":{"parameters":[{"$ref":"#/components/parameters/OpenStackAPIVersion"},{"name":"changes-since","schema":{"format":"date-time","type":"string"},"in":"query"},{"name":"flavor","schema":{"format":"uuid","type":"string"},"in":"query"},{"name":"image","schema":{"format":"uuid","type":"string"},"in":"query"},{"name":"ip","schema":{"format":"ipv4","type":"string"},"in":"query"},{"name":"ip6","schema":{"format":"ipv6","type":"string"},"in":"query"},{"name":"name","schema":{"type":"string"},"in":"query"},{"name":"status","schema":{"enum":["ACTIVE","BUILD","DELETED","ERROR","HARD_REBOOT","MIGRATING","PASSWORD","PAUSED","REBOOT","REBUILD","RESCUE","RESIZE","REVERT_RESIZE","SHELVED","SHELVED_OFFLOADED","SHUTOFF","SOFT_DELETED","SUSPENDED","UNKNOWN","VERIFY_RESIZE"],"type":"string"},"in":"query"},{"name":"limit","schema":{"minimum":1,"type":"integer"},"in":"query"},{"name":"marker","schema":{"format":"uuid","type":"string"},"in":"query"}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"servers":{"type":"array","items":{"$ref":"#/components/schemas/ServerDetailed"}},"servers_links":{"type":"array","items":{"$ref":"#/components/schemas/Link"}}}}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"}},"operationId":"listServersDetailed","summary":"List Servers (Detailed)","description":"For each server, shows server details including config drive, extended status,\nand server usage information.\n"}}}}
```

## Show Server Details

> Shows details for a server, including configuration drive, extended status,\
> and server usage information.<br>

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}},"schemas":{"ServerDetailed":{"allOf":[{"$ref":"#/components/schemas/ServerSummary"},{"type":"object","properties":{"accessIPv4":{"format":"ipv4","description":"IPv4 address that should be used to access this server","type":"string"},"accessIPv6":{"format":"ipv6","description":"IPv6 address that should be used to access this server","type":"string"},"addresses":{"description":"The addresses for the server","type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/NetworkAddress"}}},"config_drive":{"description":"Indicates whether a config drive was used","type":"string"},"created":{"format":"date-time","description":"The date and time when the resource was created","type":"string"},"flavor":{"oneOf":[{"$ref":"#/components/schemas/FlavorReference"},{"$ref":"#/components/schemas/FlavorDetailed"}]},"hostId":{"description":"An ID string representing the host (hashed)","type":"string"},"image":{"$ref":"#/components/schemas/ImageReference"},"key_name":{"nullable":true,"description":"The name of associated key pair","type":"string"},"metadata":{"description":"Server metadata key-value pairs","type":"object","additionalProperties":{"type":"string"}},"status":{"description":"The server status","enum":["ACTIVE","BUILD","DELETED","ERROR","HARD_REBOOT","MIGRATING","PASSWORD","PAUSED","REBOOT","REBUILD","RESCUE","RESIZE","REVERT_RESIZE","SHELVED","SHELVED_OFFLOADED","SHUTOFF","SOFT_DELETED","SUSPENDED","UNKNOWN","VERIFY_RESIZE"],"type":"string"},"tenant_id":{"format":"uuid","description":"The UUID of the tenant","type":"string"},"user_id":{"format":"uuid","description":"The user ID of the user who owns the server","type":"string"},"updated":{"format":"date-time","description":"The date and time when the resource was updated","type":"string"},"OS-DCF:diskConfig":{"description":"Disk configuration","enum":["AUTO","MANUAL"],"type":"string"},"OS-EXT-AZ:availability_zone":{"description":"The availability zone name","type":"string"},"OS-EXT-SRV-ATTR:host":{"nullable":true,"description":"The name of the compute host (admin only)","type":"string"},"OS-EXT-SRV-ATTR:hostname":{"nullable":true,"description":"The hostname of the instance","type":"string"},"OS-EXT-SRV-ATTR:hypervisor_hostname":{"nullable":true,"description":"The hypervisor host name (admin only)","type":"string"},"OS-EXT-SRV-ATTR:instance_name":{"nullable":true,"description":"The instance name (admin only)","type":"string"},"OS-EXT-SRV-ATTR:kernel_id":{"nullable":true,"description":"The UUID of the kernel image when using an AMI","type":"string"},"OS-EXT-SRV-ATTR:launch_index":{"nullable":true,"description":"The sequence in which the servers were launched","type":"integer"},"OS-EXT-SRV-ATTR:ramdisk_id":{"nullable":true,"description":"The UUID of the ramdisk image when using an AMI","type":"string"},"OS-EXT-SRV-ATTR:reservation_id":{"nullable":true,"description":"The reservation id for the server","type":"string"},"OS-EXT-SRV-ATTR:root_device_name":{"nullable":true,"description":"The root device name for the instance","type":"string"},"OS-EXT-SRV-ATTR:user_data":{"nullable":true,"description":"The user_data the instance was created with","type":"string"},"OS-EXT-STS:power_state":{"description":"The power state of the instance:\n0: NOSTATE, 1: RUNNING, 3: PAUSED, 4: SHUTDOWN, 6: CRASHED, 7: SUSPENDED\n","enum":[0,1,3,4,6,7],"type":"integer"},"OS-EXT-STS:task_state":{"nullable":true,"description":"The task state of the instance","type":"string"},"OS-EXT-STS:vm_state":{"description":"The VM state","type":"string"},"os-extended-volumes:volumes_attached":{"description":"The attached volumes","type":"array","items":{"$ref":"#/components/schemas/AttachedVolume"}},"OS-SRV-USG:launched_at":{"nullable":true,"format":"date-time","description":"The date and time when the server was launched","type":"string"},"OS-SRV-USG:terminated_at":{"nullable":true,"format":"date-time","description":"The date and time when the server was deleted","type":"string"},"fault":{"$ref":"#/components/schemas/ServerFault"},"locked":{"description":"True if the instance is locked","type":"boolean"},"locked_reason":{"nullable":true,"description":"The reason behind locking a server","type":"string"},"host_status":{"nullable":true,"description":"The host status (admin only)","enum":["UP","DOWN","MAINTENANCE","UNKNOWN",""],"type":"string"},"description":{"nullable":true,"description":"The description of the server","type":"string"},"tags":{"description":"A list of tags","maxItems":50,"type":"array","items":{"type":"string"}},"trusted_image_certificates":{"nullable":true,"description":"A list of trusted certificate IDs","maxItems":50,"type":"array","items":{"format":"uuid","type":"string"}},"progress":{"nullable":true,"description":"A percentage value of the operation progress","maximum":100,"minimum":0,"type":"integer"},"security_groups":{"description":"One or more security groups","type":"array","items":{"$ref":"#/components/schemas/SecurityGroup"}},"pinned_availability_zone":{"nullable":true,"description":"The availability zone requested during server creation","type":"string"},"scheduler_hints":{"nullable":true,"description":"The dictionary of hints sent to the scheduler during server creation time","type":"object"}}}]},"ServerSummary":{"type":"object","properties":{"id":{"format":"uuid","description":"The UUID of the server","type":"string"},"name":{"description":"The server name","type":"string"},"links":{"type":"array","items":{"$ref":"#/components/schemas/Link"}}}},"Link":{"type":"object","properties":{"href":{"format":"uri","type":"string"},"rel":{"enum":["self","bookmark","next","prev"],"type":"string"},"type":{"type":"string"}}},"NetworkAddress":{"type":"object","properties":{"addr":{"description":"The IP address","type":"string"},"version":{"description":"The IP version","enum":[4,6],"type":"integer"},"OS-EXT-IPS:type":{"description":"The type of address","enum":["fixed","floating"],"type":"string"},"OS-EXT-IPS-MAC:mac_addr":{"description":"The MAC address","type":"string"}}},"FlavorReference":{"type":"object","properties":{"id":{"description":"The ID of the flavor","type":"string"},"links":{"type":"array","items":{"$ref":"#/components/schemas/Link"}}}},"FlavorDetailed":{"allOf":[{"$ref":"#/components/schemas/FlavorSummary"},{"type":"object","properties":{"disk":{"description":"The size of the root disk in GiB","type":"integer"},"ephemeral":{"description":"The size of the ephemeral disk in GiB","type":"integer"},"ram":{"description":"The amount of RAM in MiB","type":"integer"},"swap":{"description":"The size of a dedicated swap disk in MiB","type":"integer"},"vcpus":{"description":"The number of virtual CPUs","type":"integer"},"original_name":{"description":"The display name of a flavor","type":"string"},"extra_specs":{"description":"A dictionary of the flavor's extra-specs key-and-value pairs","type":"object","additionalProperties":{"type":"string"}},"OS-FLV-DISABLED:disabled":{"description":"Whether the flavor is disabled","type":"boolean"},"OS-FLV-EXT-DATA:ephemeral":{"description":"The size of the ephemeral disk","type":"integer"},"os-flavor-access:is_public":{"description":"Whether the flavor is public","type":"boolean"},"rxtx_factor":{"description":"The receive/transmit factor","type":"number"}}}]},"FlavorSummary":{"type":"object","properties":{"id":{"description":"The ID of the flavor","type":"string"},"name":{"description":"The flavor name","type":"string"},"links":{"type":"array","items":{"$ref":"#/components/schemas/Link"}}}},"ImageReference":{"type":"object","properties":{"id":{"format":"uuid","description":"The UUID of the image","type":"string"},"links":{"type":"array","items":{"$ref":"#/components/schemas/Link"}},"properties":{"description":"Image properties","type":"object"}}},"AttachedVolume":{"type":"object","properties":{"id":{"format":"uuid","description":"The attached volume ID","type":"string"},"delete_on_termination":{"description":"Whether the volume will be deleted when the server is deleted","type":"boolean"}}},"ServerFault":{"type":"object","properties":{"code":{"description":"The error response code","type":"integer"},"message":{"description":"The error message","type":"string"},"details":{"description":"The stack trace","type":"string"},"created":{"format":"date-time","description":"The date and time when the exception was raised","type":"string"}}},"SecurityGroup":{"type":"object","properties":{"name":{"description":"The security group name","type":"string"}}},"ErrorResponse":{"type":"object","properties":{"computeFault":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"details":{"type":"string"}}}}}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"Forbidden":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"}}},"paths":{"/servers/{server_id}":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"server":{"$ref":"#/components/schemas/ServerDetailed"}}}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}},"operationId":"getServer","summary":"Show Server Details","description":"Shows details for a server, including configuration drive, extended status,\nand server usage information.\n"}}}}
```

## Update Server

> Updates the editable attributes of a server

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}},"schemas":{"UpdateServerRequest":{"type":"object","properties":{"name":{"description":"The server name","type":"string"},"description":{"description":"A free form description of the server","type":"string"},"hostname":{"description":"The hostname to configure for the instance","type":"string"},"accessIPv4":{"format":"ipv4","description":"IPv4 address that should be used to access this server","type":"string"},"accessIPv6":{"format":"ipv6","description":"IPv6 address that should be used to access this server","type":"string"}}},"ServerDetailed":{"allOf":[{"$ref":"#/components/schemas/ServerSummary"},{"type":"object","properties":{"accessIPv4":{"format":"ipv4","description":"IPv4 address that should be used to access this server","type":"string"},"accessIPv6":{"format":"ipv6","description":"IPv6 address that should be used to access this server","type":"string"},"addresses":{"description":"The addresses for the server","type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/NetworkAddress"}}},"config_drive":{"description":"Indicates whether a config drive was used","type":"string"},"created":{"format":"date-time","description":"The date and time when the resource was created","type":"string"},"flavor":{"oneOf":[{"$ref":"#/components/schemas/FlavorReference"},{"$ref":"#/components/schemas/FlavorDetailed"}]},"hostId":{"description":"An ID string representing the host (hashed)","type":"string"},"image":{"$ref":"#/components/schemas/ImageReference"},"key_name":{"nullable":true,"description":"The name of associated key pair","type":"string"},"metadata":{"description":"Server metadata key-value pairs","type":"object","additionalProperties":{"type":"string"}},"status":{"description":"The server status","enum":["ACTIVE","BUILD","DELETED","ERROR","HARD_REBOOT","MIGRATING","PASSWORD","PAUSED","REBOOT","REBUILD","RESCUE","RESIZE","REVERT_RESIZE","SHELVED","SHELVED_OFFLOADED","SHUTOFF","SOFT_DELETED","SUSPENDED","UNKNOWN","VERIFY_RESIZE"],"type":"string"},"tenant_id":{"format":"uuid","description":"The UUID of the tenant","type":"string"},"user_id":{"format":"uuid","description":"The user ID of the user who owns the server","type":"string"},"updated":{"format":"date-time","description":"The date and time when the resource was updated","type":"string"},"OS-DCF:diskConfig":{"description":"Disk configuration","enum":["AUTO","MANUAL"],"type":"string"},"OS-EXT-AZ:availability_zone":{"description":"The availability zone name","type":"string"},"OS-EXT-SRV-ATTR:host":{"nullable":true,"description":"The name of the compute host (admin only)","type":"string"},"OS-EXT-SRV-ATTR:hostname":{"nullable":true,"description":"The hostname of the instance","type":"string"},"OS-EXT-SRV-ATTR:hypervisor_hostname":{"nullable":true,"description":"The hypervisor host name (admin only)","type":"string"},"OS-EXT-SRV-ATTR:instance_name":{"nullable":true,"description":"The instance name (admin only)","type":"string"},"OS-EXT-SRV-ATTR:kernel_id":{"nullable":true,"description":"The UUID of the kernel image when using an AMI","type":"string"},"OS-EXT-SRV-ATTR:launch_index":{"nullable":true,"description":"The sequence in which the servers were launched","type":"integer"},"OS-EXT-SRV-ATTR:ramdisk_id":{"nullable":true,"description":"The UUID of the ramdisk image when using an AMI","type":"string"},"OS-EXT-SRV-ATTR:reservation_id":{"nullable":true,"description":"The reservation id for the server","type":"string"},"OS-EXT-SRV-ATTR:root_device_name":{"nullable":true,"description":"The root device name for the instance","type":"string"},"OS-EXT-SRV-ATTR:user_data":{"nullable":true,"description":"The user_data the instance was created with","type":"string"},"OS-EXT-STS:power_state":{"description":"The power state of the instance:\n0: NOSTATE, 1: RUNNING, 3: PAUSED, 4: SHUTDOWN, 6: CRASHED, 7: SUSPENDED\n","enum":[0,1,3,4,6,7],"type":"integer"},"OS-EXT-STS:task_state":{"nullable":true,"description":"The task state of the instance","type":"string"},"OS-EXT-STS:vm_state":{"description":"The VM state","type":"string"},"os-extended-volumes:volumes_attached":{"description":"The attached volumes","type":"array","items":{"$ref":"#/components/schemas/AttachedVolume"}},"OS-SRV-USG:launched_at":{"nullable":true,"format":"date-time","description":"The date and time when the server was launched","type":"string"},"OS-SRV-USG:terminated_at":{"nullable":true,"format":"date-time","description":"The date and time when the server was deleted","type":"string"},"fault":{"$ref":"#/components/schemas/ServerFault"},"locked":{"description":"True if the instance is locked","type":"boolean"},"locked_reason":{"nullable":true,"description":"The reason behind locking a server","type":"string"},"host_status":{"nullable":true,"description":"The host status (admin only)","enum":["UP","DOWN","MAINTENANCE","UNKNOWN",""],"type":"string"},"description":{"nullable":true,"description":"The description of the server","type":"string"},"tags":{"description":"A list of tags","maxItems":50,"type":"array","items":{"type":"string"}},"trusted_image_certificates":{"nullable":true,"description":"A list of trusted certificate IDs","maxItems":50,"type":"array","items":{"format":"uuid","type":"string"}},"progress":{"nullable":true,"description":"A percentage value of the operation progress","maximum":100,"minimum":0,"type":"integer"},"security_groups":{"description":"One or more security groups","type":"array","items":{"$ref":"#/components/schemas/SecurityGroup"}},"pinned_availability_zone":{"nullable":true,"description":"The availability zone requested during server creation","type":"string"},"scheduler_hints":{"nullable":true,"description":"The dictionary of hints sent to the scheduler during server creation time","type":"object"}}}]},"ServerSummary":{"type":"object","properties":{"id":{"format":"uuid","description":"The UUID of the server","type":"string"},"name":{"description":"The server name","type":"string"},"links":{"type":"array","items":{"$ref":"#/components/schemas/Link"}}}},"Link":{"type":"object","properties":{"href":{"format":"uri","type":"string"},"rel":{"enum":["self","bookmark","next","prev"],"type":"string"},"type":{"type":"string"}}},"NetworkAddress":{"type":"object","properties":{"addr":{"description":"The IP address","type":"string"},"version":{"description":"The IP version","enum":[4,6],"type":"integer"},"OS-EXT-IPS:type":{"description":"The type of address","enum":["fixed","floating"],"type":"string"},"OS-EXT-IPS-MAC:mac_addr":{"description":"The MAC address","type":"string"}}},"FlavorReference":{"type":"object","properties":{"id":{"description":"The ID of the flavor","type":"string"},"links":{"type":"array","items":{"$ref":"#/components/schemas/Link"}}}},"FlavorDetailed":{"allOf":[{"$ref":"#/components/schemas/FlavorSummary"},{"type":"object","properties":{"disk":{"description":"The size of the root disk in GiB","type":"integer"},"ephemeral":{"description":"The size of the ephemeral disk in GiB","type":"integer"},"ram":{"description":"The amount of RAM in MiB","type":"integer"},"swap":{"description":"The size of a dedicated swap disk in MiB","type":"integer"},"vcpus":{"description":"The number of virtual CPUs","type":"integer"},"original_name":{"description":"The display name of a flavor","type":"string"},"extra_specs":{"description":"A dictionary of the flavor's extra-specs key-and-value pairs","type":"object","additionalProperties":{"type":"string"}},"OS-FLV-DISABLED:disabled":{"description":"Whether the flavor is disabled","type":"boolean"},"OS-FLV-EXT-DATA:ephemeral":{"description":"The size of the ephemeral disk","type":"integer"},"os-flavor-access:is_public":{"description":"Whether the flavor is public","type":"boolean"},"rxtx_factor":{"description":"The receive/transmit factor","type":"number"}}}]},"FlavorSummary":{"type":"object","properties":{"id":{"description":"The ID of the flavor","type":"string"},"name":{"description":"The flavor name","type":"string"},"links":{"type":"array","items":{"$ref":"#/components/schemas/Link"}}}},"ImageReference":{"type":"object","properties":{"id":{"format":"uuid","description":"The UUID of the image","type":"string"},"links":{"type":"array","items":{"$ref":"#/components/schemas/Link"}},"properties":{"description":"Image properties","type":"object"}}},"AttachedVolume":{"type":"object","properties":{"id":{"format":"uuid","description":"The attached volume ID","type":"string"},"delete_on_termination":{"description":"Whether the volume will be deleted when the server is deleted","type":"boolean"}}},"ServerFault":{"type":"object","properties":{"code":{"description":"The error response code","type":"integer"},"message":{"description":"The error message","type":"string"},"details":{"description":"The stack trace","type":"string"},"created":{"format":"date-time","description":"The date and time when the exception was raised","type":"string"}}},"SecurityGroup":{"type":"object","properties":{"name":{"description":"The security group name","type":"string"}}},"ErrorResponse":{"type":"object","properties":{"computeFault":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"details":{"type":"string"}}}}}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"Forbidden":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"}}},"paths":{"/servers/{server_id}":{"put":{"requestBody":{"content":{"application/json":{"schema":{"required":["server"],"type":"object","properties":{"server":{"$ref":"#/components/schemas/UpdateServerRequest"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"server":{"$ref":"#/components/schemas/ServerDetailed"}}}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}},"operationId":"updateServer","summary":"Update Server","description":"Updates the editable attributes of a server"}}}}
```

## Delete Server

> Deletes a server

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"Forbidden":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"Conflict":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Conflict"}},"schemas":{"ErrorResponse":{"type":"object","properties":{"computeFault":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"details":{"type":"string"}}}}}}},"paths":{"/servers/{server_id}":{"delete":{"responses":{"204":{"description":"Server deleted successfully"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict"}},"operationId":"deleteServer","summary":"Delete Server","description":"Deletes a server"}}}}
```

## Perform Server Action

> Performs various actions on a server such as reboot, rebuild, resize, etc.<br>

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}},"schemas":{"RebootAction":{"required":["reboot"],"type":"object","properties":{"reboot":{"required":["type"],"type":"object","properties":{"type":{"description":"The type of reboot","enum":["HARD","SOFT"],"type":"string"}}}}},"RebuildAction":{"required":["rebuild"],"type":"object","properties":{"rebuild":{"required":["imageRef"],"type":"object","properties":{"imageRef":{"format":"uuid","description":"The UUID of the image to rebuild from","type":"string"},"name":{"description":"The server name","type":"string"},"adminPass":{"description":"The administrative password","type":"string"},"metadata":{"description":"Metadata key and value pairs","type":"object","additionalProperties":{"type":"string"}},"personality":{"description":"File path and contents to inject (deprecated in 2.57)","type":"array","items":{"$ref":"#/components/schemas/PersonalityFile"}},"user_data":{"format":"byte","description":"Configuration information or scripts (Base64 encoded)","type":"string"},"key_name":{"description":"Key pair name","type":"string"},"description":{"description":"A free form description of the server","type":"string"},"trusted_image_certificates":{"description":"A list of trusted certificate IDs","maxItems":50,"type":"array","items":{"format":"uuid","type":"string"}}}}}},"PersonalityFile":{"required":["path","contents"],"type":"object","properties":{"path":{"description":"The file path","maxLength":255,"type":"string"},"contents":{"format":"byte","description":"The file contents (Base64 encoded)","type":"string"}}},"ResizeAction":{"required":["resize"],"type":"object","properties":{"resize":{"required":["flavorRef"],"type":"object","properties":{"flavorRef":{"description":"The flavor reference (UUID or full URL)","type":"string"},"OS-DCF:diskConfig":{"description":"Controls how the API partitions the disk","enum":["AUTO","MANUAL"],"type":"string"}}}}},"ConfirmResizeAction":{"required":["confirmResize"],"type":"object","properties":{"confirmResize":{"nullable":true,"description":"Confirm resize action","type":"object"}}},"RevertResizeAction":{"required":["revertResize"],"type":"object","properties":{"revertResize":{"nullable":true,"description":"Revert resize action","type":"object"}}},"CreateImageAction":{"required":["createImage"],"type":"object","properties":{"createImage":{"required":["name"],"type":"object","properties":{"name":{"description":"The name of the image to create","type":"string"},"metadata":{"description":"Metadata for the image","type":"object","additionalProperties":{"type":"string"}}}}}},"ChangePasswordAction":{"required":["changePassword"],"type":"object","properties":{"changePassword":{"required":["adminPass"],"type":"object","properties":{"adminPass":{"description":"The new administrative password","type":"string"}}}}},"StartAction":{"required":["os-start"],"type":"object","properties":{"os-start":{"nullable":true,"description":"Start server action","type":"object"}}},"StopAction":{"required":["os-stop"],"type":"object","properties":{"os-stop":{"nullable":true,"description":"Stop server action","type":"object"}}},"ShelveAction":{"required":["shelve"],"type":"object","properties":{"shelve":{"nullable":true,"description":"Shelve server action","type":"object"}}},"UnshelveAction":{"required":["unshelve"],"type":"object","properties":{"unshelve":{"nullable":true,"description":"Unshelve server action","type":"object"}}},"SuspendAction":{"required":["suspend"],"type":"object","properties":{"suspend":{"nullable":true,"description":"Suspend server action","type":"object"}}},"ResumeAction":{"required":["resume"],"type":"object","properties":{"resume":{"nullable":true,"description":"Resume server action","type":"object"}}},"PauseAction":{"required":["pause"],"type":"object","properties":{"pause":{"nullable":true,"description":"Pause server action","type":"object"}}},"UnpauseAction":{"required":["unpause"],"type":"object","properties":{"unpause":{"nullable":true,"description":"Unpause server action","type":"object"}}},"LockAction":{"required":["lock"],"type":"object","properties":{"lock":{"type":"object","properties":{"locked_reason":{"description":"The reason for locking the server","type":"string"}}}}},"UnlockAction":{"required":["unlock"],"type":"object","properties":{"unlock":{"nullable":true,"description":"Unlock server action","type":"object"}}},"RescueAction":{"required":["rescue"],"type":"object","properties":{"rescue":{"type":"object","properties":{"adminPass":{"description":"The password for the rescue instance","type":"string"},"rescue_image_ref":{"format":"uuid","description":"The UUID of the image to use for rescue","type":"string"}}}}},"UnrescueAction":{"required":["unrescue"],"type":"object","properties":{"unrescue":{"nullable":true,"description":"Unrescue server action","type":"object"}}},"EvacuateAction":{"required":["evacuate"],"type":"object","properties":{"evacuate":{"type":"object","properties":{"host":{"description":"The name or ID of the host to evacuate to","type":"string"},"adminPass":{"description":"The administrative password for the evacuated instance","type":"string"},"onSharedStorage":{"description":"Whether the instance is on shared storage","type":"boolean"},"force":{"description":"Force the evacuation","default":false,"type":"boolean"}}}}},"MigrateAction":{"required":["migrate"],"type":"object","properties":{"migrate":{"type":"object","properties":{"host":{"description":"The destination host for the migration","type":"string"}}}}},"LiveMigrateAction":{"required":["os-migrateLive"],"type":"object","properties":{"os-migrateLive":{"required":["host"],"type":"object","properties":{"host":{"nullable":true,"description":"The destination host for the live migration","type":"string"},"block_migration":{"oneOf":[{"type":"boolean"},{"enum":["auto"],"type":"string"}],"description":"Whether to use block migration"},"disk_over_commit":{"description":"Whether to allow disk over commit","type":"boolean"},"force":{"description":"Force the live migration","default":false,"type":"boolean"}}}}},"CreateBackupAction":{"required":["createBackup"],"type":"object","properties":{"createBackup":{"required":["name","backup_type","rotation"],"type":"object","properties":{"name":{"description":"The name of the backup image","type":"string"},"backup_type":{"description":"The backup type (e.g., daily)","type":"string"},"rotation":{"description":"The number of backups to keep","minimum":0,"type":"integer"},"metadata":{"description":"Metadata for the backup image","type":"object","additionalProperties":{"type":"string"}}}}}},"TriggerCrashDumpAction":{"required":["trigger_crash_dump"],"type":"object","properties":{"trigger_crash_dump":{"nullable":true,"description":"Trigger crash dump action","type":"object"}}},"ErrorResponse":{"type":"object","properties":{"computeFault":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"details":{"type":"string"}}}}}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"Forbidden":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"Conflict":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Conflict"}}},"paths":{"/servers/{server_id}/action":{"post":{"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/RebootAction"},{"$ref":"#/components/schemas/RebuildAction"},{"$ref":"#/components/schemas/ResizeAction"},{"$ref":"#/components/schemas/ConfirmResizeAction"},{"$ref":"#/components/schemas/RevertResizeAction"},{"$ref":"#/components/schemas/CreateImageAction"},{"$ref":"#/components/schemas/ChangePasswordAction"},{"$ref":"#/components/schemas/StartAction"},{"$ref":"#/components/schemas/StopAction"},{"$ref":"#/components/schemas/ShelveAction"},{"$ref":"#/components/schemas/UnshelveAction"},{"$ref":"#/components/schemas/SuspendAction"},{"$ref":"#/components/schemas/ResumeAction"},{"$ref":"#/components/schemas/PauseAction"},{"$ref":"#/components/schemas/UnpauseAction"},{"$ref":"#/components/schemas/LockAction"},{"$ref":"#/components/schemas/UnlockAction"},{"$ref":"#/components/schemas/RescueAction"},{"$ref":"#/components/schemas/UnrescueAction"},{"$ref":"#/components/schemas/EvacuateAction"},{"$ref":"#/components/schemas/MigrateAction"},{"$ref":"#/components/schemas/LiveMigrateAction"},{"$ref":"#/components/schemas/CreateBackupAction"},{"$ref":"#/components/schemas/TriggerCrashDumpAction"}]}}},"required":true},"responses":{"200":{"description":"Action performed successfully (may contain response data)"},"202":{"description":"Action accepted"},"204":{"description":"Action performed successfully (no content)"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict"}},"operationId":"performServerAction","summary":"Perform Server Action","description":"Performs various actions on a server such as reboot, rebuild, resize, etc.\n"}}}}
```

## List Server Metadata

> Lists all metadata for a server

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}}},"paths":{"/servers/{server_id}/metadata":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"metadata":{"type":"object","additionalProperties":{"type":"string"}}}}}},"description":"Successful response"}},"operationId":"listServerMetadata","summary":"List Server Metadata","description":"Lists all metadata for a server"}}}}
```

## Update Server Metadata

> Updates metadata for a server, merging with existing metadata

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}}},"paths":{"/servers/{server_id}/metadata":{"post":{"requestBody":{"content":{"application/json":{"schema":{"required":["metadata"],"type":"object","properties":{"metadata":{"type":"object","additionalProperties":{"type":"string"}}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"metadata":{"type":"object","additionalProperties":{"type":"string"}}}}}},"description":"Successful response"}},"operationId":"updateServerMetadata","summary":"Update Server Metadata","description":"Updates metadata for a server, merging with existing metadata"}}}}
```

## Set Server Metadata

> Sets metadata for a server, replacing all existing metadata

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}}},"paths":{"/servers/{server_id}/metadata":{"put":{"requestBody":{"content":{"application/json":{"schema":{"required":["metadata"],"type":"object","properties":{"metadata":{"type":"object","additionalProperties":{"type":"string"}}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"metadata":{"type":"object","additionalProperties":{"type":"string"}}}}}},"description":"Successful response"}},"operationId":"setServerMetadata","summary":"Set Server Metadata","description":"Sets metadata for a server, replacing all existing metadata"}}}}
```

## Get Server Metadata Item

> Gets a specific metadata item for a server

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}}},"paths":{"/servers/{server_id}/metadata/{key}":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","additionalProperties":{"type":"string"}}}}}},"description":"Successful response"}},"operationId":"getServerMetadataItem","summary":"Get Server Metadata Item","description":"Gets a specific metadata item for a server"}}}}
```

## Set Server Metadata Item

> Sets a specific metadata item for a server

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}}},"paths":{"/servers/{server_id}/metadata/{key}":{"put":{"requestBody":{"content":{"application/json":{"schema":{"required":["meta"],"type":"object","properties":{"meta":{"type":"object","additionalProperties":{"type":"string"}}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","additionalProperties":{"type":"string"}}}}}},"description":"Successful response"}},"operationId":"setServerMetadataItem","summary":"Set Server Metadata Item","description":"Sets a specific metadata item for a server"}}}}
```

## Delete Server Metadata Item

> Deletes a specific metadata item from a server

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}}},"paths":{"/servers/{server_id}/metadata/{key}":{"delete":{"responses":{"204":{"description":"Metadata item deleted successfully"}},"operationId":"deleteServerMetadataItem","summary":"Delete Server Metadata Item","description":"Deletes a specific metadata item from a server"}}}}
```

## List Server Tags

> Lists all tags for a server

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}}},"paths":{"/servers/{server_id}/tags":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"tags":{"type":"array","items":{"type":"string"}}}}}},"description":"Successful response"}},"operationId":"listServerTags","summary":"List Server Tags","description":"Lists all tags for a server"}}}}
```

## Replace Server Tags

> Replaces all tags for a server

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}}},"paths":{"/servers/{server_id}/tags":{"put":{"requestBody":{"content":{"application/json":{"schema":{"required":["tags"],"type":"object","properties":{"tags":{"maxItems":50,"type":"array","items":{"type":"string"}}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"tags":{"type":"array","items":{"type":"string"}}}}}},"description":"Successful response"}},"operationId":"replaceServerTags","summary":"Replace Server Tags","description":"Replaces all tags for a server"}}}}
```

## Delete All Server Tags

> Deletes all tags from a server

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}}},"paths":{"/servers/{server_id}/tags":{"delete":{"responses":{"204":{"description":"All tags deleted successfully"}},"operationId":"deleteAllServerTags","summary":"Delete All Server Tags","description":"Deletes all tags from a server"}}}}
```

## Check Server Tag Exists

> Checks if a tag exists on a server

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}},"responses":{"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"}},"schemas":{"ErrorResponse":{"type":"object","properties":{"computeFault":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"details":{"type":"string"}}}}}}},"paths":{"/servers/{server_id}/tags/{tag}":{"get":{"responses":{"204":{"description":"Tag exists"},"404":{"$ref":"#/components/responses/NotFound"}},"operationId":"checkServerTag","summary":"Check Server Tag Exists","description":"Checks if a tag exists on a server"}}}}
```

## Add Server Tag

> Adds a single tag to a server

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}}},"paths":{"/servers/{server_id}/tags/{tag}":{"put":{"responses":{"201":{"description":"Tag added successfully"},"204":{"description":"Tag already exists"}},"operationId":"addServerTag","summary":"Add Server Tag","description":"Adds a single tag to a server"}}}}
```

## Delete Server Tag

> Deletes a single tag from a server

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}}},"paths":{"/servers/{server_id}/tags/{tag}":{"delete":{"responses":{"204":{"description":"Tag deleted successfully"}},"operationId":"deleteServerTag","summary":"Delete Server Tag","description":"Deletes a single tag from a server"}}}}
```

## List Flavors

> Lists flavors with details

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}},"parameters":{"OpenStackAPIVersion":{"name":"OpenStack-API-Version","description":"Specifies the API microversion. Format: \"compute X.Y\" where X.Y is the microversion.\nIf not specified, the minimum supported version (2.1) is used.\n","schema":{"pattern":"^compute \\d+\\.\\d+","type":"string"},"in":"header"}},"schemas":{"FlavorSummary":{"type":"object","properties":{"id":{"description":"The ID of the flavor","type":"string"},"name":{"description":"The flavor name","type":"string"},"links":{"type":"array","items":{"$ref":"#/components/schemas/Link"}}}},"Link":{"type":"object","properties":{"href":{"format":"uri","type":"string"},"rel":{"enum":["self","bookmark","next","prev"],"type":"string"},"type":{"type":"string"}}}}},"paths":{"/flavors":{"get":{"parameters":[{"$ref":"#/components/parameters/OpenStackAPIVersion"},{"name":"limit","description":"Requests a page size of items","schema":{"minimum":1,"type":"integer"},"in":"query"},{"name":"marker","description":"The ID of the last-seen item for pagination","schema":{"type":"string"},"in":"query"},{"name":"sort_key","description":"Sorts by a flavor attribute","schema":{"default":"created_at","enum":["created_at","flavorid","name","updated_at"],"type":"string"},"in":"query"},{"name":"sort_dir","description":"Sort direction","schema":{"default":"asc","enum":["asc","desc"],"type":"string"},"in":"query"},{"name":"min_disk","description":"Filters the response by a minimum disk space in GiB","schema":{"type":"integer"},"in":"query"},{"name":"min_ram","description":"Filters the response by a minimum RAM in MiB","schema":{"type":"integer"},"in":"query"},{"name":"is_public","description":"Filters the response by whether the flavor is public or private","schema":{"type":"boolean"},"in":"query"}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"flavors":{"type":"array","items":{"$ref":"#/components/schemas/FlavorSummary"}}}}}},"description":"Successful response"}},"operationId":"listFlavors","summary":"List Flavors","description":"Lists flavors with details"}}}}
```

## List Flavors (Detailed)

> Lists flavors with full details

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}},"parameters":{"OpenStackAPIVersion":{"name":"OpenStack-API-Version","description":"Specifies the API microversion. Format: \"compute X.Y\" where X.Y is the microversion.\nIf not specified, the minimum supported version (2.1) is used.\n","schema":{"pattern":"^compute \\d+\\.\\d+","type":"string"},"in":"header"}},"schemas":{"FlavorDetailed":{"allOf":[{"$ref":"#/components/schemas/FlavorSummary"},{"type":"object","properties":{"disk":{"description":"The size of the root disk in GiB","type":"integer"},"ephemeral":{"description":"The size of the ephemeral disk in GiB","type":"integer"},"ram":{"description":"The amount of RAM in MiB","type":"integer"},"swap":{"description":"The size of a dedicated swap disk in MiB","type":"integer"},"vcpus":{"description":"The number of virtual CPUs","type":"integer"},"original_name":{"description":"The display name of a flavor","type":"string"},"extra_specs":{"description":"A dictionary of the flavor's extra-specs key-and-value pairs","type":"object","additionalProperties":{"type":"string"}},"OS-FLV-DISABLED:disabled":{"description":"Whether the flavor is disabled","type":"boolean"},"OS-FLV-EXT-DATA:ephemeral":{"description":"The size of the ephemeral disk","type":"integer"},"os-flavor-access:is_public":{"description":"Whether the flavor is public","type":"boolean"},"rxtx_factor":{"description":"The receive/transmit factor","type":"number"}}}]},"FlavorSummary":{"type":"object","properties":{"id":{"description":"The ID of the flavor","type":"string"},"name":{"description":"The flavor name","type":"string"},"links":{"type":"array","items":{"$ref":"#/components/schemas/Link"}}}},"Link":{"type":"object","properties":{"href":{"format":"uri","type":"string"},"rel":{"enum":["self","bookmark","next","prev"],"type":"string"},"type":{"type":"string"}}}}},"paths":{"/flavors/detail":{"get":{"parameters":[{"$ref":"#/components/parameters/OpenStackAPIVersion"},{"name":"limit","schema":{"minimum":1,"type":"integer"},"in":"query"},{"name":"marker","schema":{"type":"string"},"in":"query"},{"name":"sort_key","schema":{"default":"created_at","enum":["created_at","flavorid","name","updated_at"],"type":"string"},"in":"query"},{"name":"sort_dir","schema":{"default":"asc","enum":["asc","desc"],"type":"string"},"in":"query"}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"flavors":{"type":"array","items":{"$ref":"#/components/schemas/FlavorDetailed"}}}}}},"description":"Successful response"}},"operationId":"listFlavorsDetailed","summary":"List Flavors (Detailed)","description":"Lists flavors with full details"}}}}
```

## Show Flavor Details

> Shows details for a flavor

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}},"schemas":{"FlavorDetailed":{"allOf":[{"$ref":"#/components/schemas/FlavorSummary"},{"type":"object","properties":{"disk":{"description":"The size of the root disk in GiB","type":"integer"},"ephemeral":{"description":"The size of the ephemeral disk in GiB","type":"integer"},"ram":{"description":"The amount of RAM in MiB","type":"integer"},"swap":{"description":"The size of a dedicated swap disk in MiB","type":"integer"},"vcpus":{"description":"The number of virtual CPUs","type":"integer"},"original_name":{"description":"The display name of a flavor","type":"string"},"extra_specs":{"description":"A dictionary of the flavor's extra-specs key-and-value pairs","type":"object","additionalProperties":{"type":"string"}},"OS-FLV-DISABLED:disabled":{"description":"Whether the flavor is disabled","type":"boolean"},"OS-FLV-EXT-DATA:ephemeral":{"description":"The size of the ephemeral disk","type":"integer"},"os-flavor-access:is_public":{"description":"Whether the flavor is public","type":"boolean"},"rxtx_factor":{"description":"The receive/transmit factor","type":"number"}}}]},"FlavorSummary":{"type":"object","properties":{"id":{"description":"The ID of the flavor","type":"string"},"name":{"description":"The flavor name","type":"string"},"links":{"type":"array","items":{"$ref":"#/components/schemas/Link"}}}},"Link":{"type":"object","properties":{"href":{"format":"uri","type":"string"},"rel":{"enum":["self","bookmark","next","prev"],"type":"string"},"type":{"type":"string"}}},"ErrorResponse":{"type":"object","properties":{"computeFault":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"details":{"type":"string"}}}}}},"responses":{"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"}}},"paths":{"/flavors/{flavor_id}":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"flavor":{"$ref":"#/components/schemas/FlavorDetailed"}}}}},"description":"Successful response"},"404":{"$ref":"#/components/responses/NotFound"}},"operationId":"getFlavor","summary":"Show Flavor Details","description":"Shows details for a flavor"}}}}
```

## List Keypairs

> Lists keypairs that are associated with the project

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}},"parameters":{"OpenStackAPIVersion":{"name":"OpenStack-API-Version","description":"Specifies the API microversion. Format: \"compute X.Y\" where X.Y is the microversion.\nIf not specified, the minimum supported version (2.1) is used.\n","schema":{"pattern":"^compute \\d+\\.\\d+","type":"string"},"in":"header"}},"schemas":{"KeypairSummary":{"type":"object","properties":{"keypair":{"type":"object","properties":{"name":{"description":"The keypair name","type":"string"},"type":{"description":"The type of the keypair","enum":["ssh","x509"],"type":"string"},"public_key":{"description":"The public key","type":"string"},"fingerprint":{"description":"The keypair fingerprint","type":"string"}}}}}}},"paths":{"/os-keypairs":{"get":{"parameters":[{"$ref":"#/components/parameters/OpenStackAPIVersion"},{"name":"limit","schema":{"minimum":1,"type":"integer"},"in":"query"},{"name":"marker","schema":{"type":"string"},"in":"query"},{"name":"user_id","description":"Filter the list by user ID (admin only)","schema":{"type":"string"},"in":"query"}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"keypairs":{"type":"array","items":{"$ref":"#/components/schemas/KeypairSummary"}}}}}},"description":"Successful response"}},"operationId":"listKeypairs","summary":"List Keypairs","description":"Lists keypairs that are associated with the project"}}}}
```

## Create/Import Keypair

> Creates or imports a keypair

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}},"schemas":{"CreateKeypairRequest":{"required":["name"],"type":"object","properties":{"name":{"description":"The name of the keypair","type":"string"},"type":{"description":"The type of the keypair","default":"ssh","enum":["ssh","x509"],"type":"string"},"public_key":{"description":"The public key to import","type":"string"},"user_id":{"format":"uuid","description":"The user ID (admin only)","type":"string"}}},"KeypairDetailed":{"allOf":[{"$ref":"#/components/schemas/KeypairSummary"},{"type":"object","properties":{"keypair":{"type":"object","properties":{"user_id":{"format":"uuid","description":"The user ID","type":"string"},"created_at":{"format":"date-time","description":"The date and time when the resource was created","type":"string"},"deleted":{"description":"Whether the keypair is deleted","type":"boolean"},"deleted_at":{"nullable":true,"format":"date-time","description":"The date and time when the keypair was deleted","type":"string"},"id":{"description":"The keypair ID","type":"integer"},"is_deleted":{"description":"Whether the keypair is deleted","type":"boolean"},"updated_at":{"nullable":true,"format":"date-time","description":"The date and time when the resource was updated","type":"string"}}}}}]},"KeypairSummary":{"type":"object","properties":{"keypair":{"type":"object","properties":{"name":{"description":"The keypair name","type":"string"},"type":{"description":"The type of the keypair","enum":["ssh","x509"],"type":"string"},"public_key":{"description":"The public key","type":"string"},"fingerprint":{"description":"The keypair fingerprint","type":"string"}}}}}},"parameters":{"OpenStackAPIVersion":{"name":"OpenStack-API-Version","description":"Specifies the API microversion. Format: \"compute X.Y\" where X.Y is the microversion.\nIf not specified, the minimum supported version (2.1) is used.\n","schema":{"pattern":"^compute \\d+\\.\\d+","type":"string"},"in":"header"}}},"paths":{"/os-keypairs":{"post":{"requestBody":{"content":{"application/json":{"schema":{"required":["keypair"],"type":"object","properties":{"keypair":{"$ref":"#/components/schemas/CreateKeypairRequest"}}}}},"required":true},"parameters":[{"$ref":"#/components/parameters/OpenStackAPIVersion"}],"responses":{"201":{"content":{"application/json":{"schema":{"type":"object","properties":{"keypair":{"$ref":"#/components/schemas/KeypairDetailed"}}}}},"description":"Keypair created successfully"}},"operationId":"createKeypair","summary":"Create/Import Keypair","description":"Creates or imports a keypair"}}}}
```

## Show Keypair Details

> Shows details for a keypair

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}},"schemas":{"KeypairDetailed":{"allOf":[{"$ref":"#/components/schemas/KeypairSummary"},{"type":"object","properties":{"keypair":{"type":"object","properties":{"user_id":{"format":"uuid","description":"The user ID","type":"string"},"created_at":{"format":"date-time","description":"The date and time when the resource was created","type":"string"},"deleted":{"description":"Whether the keypair is deleted","type":"boolean"},"deleted_at":{"nullable":true,"format":"date-time","description":"The date and time when the keypair was deleted","type":"string"},"id":{"description":"The keypair ID","type":"integer"},"is_deleted":{"description":"Whether the keypair is deleted","type":"boolean"},"updated_at":{"nullable":true,"format":"date-time","description":"The date and time when the resource was updated","type":"string"}}}}}]},"KeypairSummary":{"type":"object","properties":{"keypair":{"type":"object","properties":{"name":{"description":"The keypair name","type":"string"},"type":{"description":"The type of the keypair","enum":["ssh","x509"],"type":"string"},"public_key":{"description":"The public key","type":"string"},"fingerprint":{"description":"The keypair fingerprint","type":"string"}}}}}}},"paths":{"/os-keypairs/{keypair_name}":{"get":{"parameters":[{"name":"user_id","description":"User ID for the keypair (admin only)","schema":{"type":"string"},"in":"query"}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"keypair":{"$ref":"#/components/schemas/KeypairDetailed"}}}}},"description":"Successful response"}},"operationId":"getKeypair","summary":"Show Keypair Details","description":"Shows details for a keypair"}}}}
```

## Delete Keypair

> Deletes a keypair

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}}},"paths":{"/os-keypairs/{keypair_name}":{"delete":{"parameters":[{"name":"user_id","description":"User ID for the keypair (admin only)","schema":{"type":"string"},"in":"query"}],"responses":{"202":{"description":"Keypair deletion accepted (for backward compatibility)"},"204":{"description":"Keypair deleted successfully"}},"operationId":"deleteKeypair","summary":"Delete Keypair","description":"Deletes a keypair"}}}}
```

## Show Rate and Absolute Limits

> Shows rate and absolute limits for the project

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}},"parameters":{"OpenStackAPIVersion":{"name":"OpenStack-API-Version","description":"Specifies the API microversion. Format: \"compute X.Y\" where X.Y is the microversion.\nIf not specified, the minimum supported version (2.1) is used.\n","schema":{"pattern":"^compute \\d+\\.\\d+","type":"string"},"in":"header"}},"schemas":{"Limits":{"type":"object","properties":{"rate":{"description":"Rate limits","type":"array","items":{"$ref":"#/components/schemas/RateLimit"}},"absolute":{"$ref":"#/components/schemas/AbsoluteLimits"}}},"RateLimit":{"type":"object","properties":{"uri":{"description":"The URI pattern","type":"string"},"regex":{"description":"The URI regex pattern","type":"string"},"limit":{"type":"array","items":{"$ref":"#/components/schemas/RateLimitValue"}}}},"RateLimitValue":{"type":"object","properties":{"value":{"description":"The maximum number of requests","type":"integer"},"verb":{"description":"The HTTP method","type":"string"},"remaining":{"description":"The remaining number of requests","type":"integer"},"unit":{"description":"The time unit","type":"string"},"next-available":{"format":"date-time","description":"When the limit resets","type":"string"}}},"AbsoluteLimits":{"type":"object","properties":{"maxServerMeta":{"description":"Maximum number of metadata key-value pairs per server","type":"integer"},"maxTotalInstances":{"description":"Maximum number of instances","type":"integer"},"maxTotalCores":{"description":"Maximum number of CPU cores","type":"integer"},"maxTotalRAMSize":{"description":"Maximum amount of RAM in MiB","type":"integer"},"maxTotalKeypairs":{"description":"Maximum number of keypairs","type":"integer"},"maxServerGroups":{"description":"Maximum number of server groups","type":"integer"},"maxServerGroupMembers":{"description":"Maximum number of members per server group","type":"integer"},"totalInstancesUsed":{"description":"Number of instances currently used","type":"integer"},"totalCoresUsed":{"description":"Number of cores currently used","type":"integer"},"totalRAMUsed":{"description":"Amount of RAM currently used in MiB","type":"integer"},"totalServerGroupsUsed":{"description":"Number of server groups currently used","type":"integer"}}}}},"paths":{"/limits":{"get":{"parameters":[{"$ref":"#/components/parameters/OpenStackAPIVersion"},{"name":"tenant_id","description":"Project ID to get limits for (admin only)","schema":{"type":"string"},"in":"query"}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"limits":{"$ref":"#/components/schemas/Limits"}}}}},"description":"Successful response"}},"operationId":"getLimits","summary":"Show Rate and Absolute Limits","description":"Shows rate and absolute limits for the project"}}}}
```

## List Availability Zones

> Lists availability zones

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}},"parameters":{"OpenStackAPIVersion":{"name":"OpenStack-API-Version","description":"Specifies the API microversion. Format: \"compute X.Y\" where X.Y is the microversion.\nIf not specified, the minimum supported version (2.1) is used.\n","schema":{"pattern":"^compute \\d+\\.\\d+","type":"string"},"in":"header"}},"schemas":{"AvailabilityZone":{"type":"object","properties":{"zoneName":{"description":"The availability zone name","type":"string"},"zoneState":{"type":"object","properties":{"available":{"description":"Whether the zone is available","type":"boolean"}}}}}}},"paths":{"/os-availability-zone":{"get":{"parameters":[{"$ref":"#/components/parameters/OpenStackAPIVersion"}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"availabilityZoneInfo":{"type":"array","items":{"$ref":"#/components/schemas/AvailabilityZone"}}}}}},"description":"Successful response"}},"operationId":"listAvailabilityZones","summary":"List Availability Zones","description":"Lists availability zones"}}}}
```

## List Availability Zones (Detailed)

> Lists availability zones with detailed information (admin only)

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}},"parameters":{"OpenStackAPIVersion":{"name":"OpenStack-API-Version","description":"Specifies the API microversion. Format: \"compute X.Y\" where X.Y is the microversion.\nIf not specified, the minimum supported version (2.1) is used.\n","schema":{"pattern":"^compute \\d+\\.\\d+","type":"string"},"in":"header"}},"schemas":{"AvailabilityZoneDetailed":{"allOf":[{"$ref":"#/components/schemas/AvailabilityZone"},{"type":"object","properties":{"hosts":{"description":"The hosts in the availability zone","type":"object","additionalProperties":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ServiceState"}}}}}]},"AvailabilityZone":{"type":"object","properties":{"zoneName":{"description":"The availability zone name","type":"string"},"zoneState":{"type":"object","properties":{"available":{"description":"Whether the zone is available","type":"boolean"}}}}},"ServiceState":{"type":"object","properties":{"available":{"description":"Whether the service is available","type":"boolean"},"active":{"description":"Whether the service is active","type":"boolean"},"updated_at":{"format":"date-time","description":"When the service was last updated","type":"string"}}}}},"paths":{"/os-availability-zone/detail":{"get":{"parameters":[{"$ref":"#/components/parameters/OpenStackAPIVersion"}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"availabilityZoneInfo":{"type":"array","items":{"$ref":"#/components/schemas/AvailabilityZoneDetailed"}}}}}},"description":"Successful response"}},"operationId":"listAvailabilityZonesDetailed","summary":"List Availability Zones (Detailed)","description":"Lists availability zones with detailed information (admin only)"}}}}
```

## List Hypervisors

> Lists hypervisors (admin only)

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}},"parameters":{"OpenStackAPIVersion":{"name":"OpenStack-API-Version","description":"Specifies the API microversion. Format: \"compute X.Y\" where X.Y is the microversion.\nIf not specified, the minimum supported version (2.1) is used.\n","schema":{"pattern":"^compute \\d+\\.\\d+","type":"string"},"in":"header"}},"schemas":{"HypervisorSummary":{"type":"object","properties":{"id":{"description":"The hypervisor ID","type":"string"},"hypervisor_hostname":{"description":"The hypervisor hostname","type":"string"},"links":{"type":"array","items":{"$ref":"#/components/schemas/Link"}}}},"Link":{"type":"object","properties":{"href":{"format":"uri","type":"string"},"rel":{"enum":["self","bookmark","next","prev"],"type":"string"},"type":{"type":"string"}}}}},"paths":{"/os-hypervisors":{"get":{"parameters":[{"$ref":"#/components/parameters/OpenStackAPIVersion"},{"name":"limit","schema":{"minimum":1,"type":"integer"},"in":"query"},{"name":"marker","schema":{"type":"string"},"in":"query"},{"name":"hypervisor_hostname_pattern","description":"Filter hypervisors by hostname pattern","schema":{"type":"string"},"in":"query"},{"name":"with_servers","description":"Include servers running on each hypervisor","schema":{"type":"boolean"},"in":"query"}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hypervisors":{"type":"array","items":{"$ref":"#/components/schemas/HypervisorSummary"}}}}}},"description":"Successful response"}},"operationId":"listHypervisors","summary":"List Hypervisors","description":"Lists hypervisors (admin only)"}}}}
```

## List Hypervisors (Detailed)

> Lists hypervisors with detailed information (admin only)

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}},"parameters":{"OpenStackAPIVersion":{"name":"OpenStack-API-Version","description":"Specifies the API microversion. Format: \"compute X.Y\" where X.Y is the microversion.\nIf not specified, the minimum supported version (2.1) is used.\n","schema":{"pattern":"^compute \\d+\\.\\d+","type":"string"},"in":"header"}},"schemas":{"HypervisorDetailed":{"allOf":[{"$ref":"#/components/schemas/HypervisorSummary"},{"type":"object","properties":{"status":{"description":"The hypervisor status","enum":["enabled","disabled"],"type":"string"},"state":{"description":"The hypervisor state","enum":["up","down"],"type":"string"},"host_ip":{"format":"ipv4","description":"The IP address of the hypervisor","type":"string"},"free_disk_gb":{"description":"Free disk space in GiB","type":"integer"},"free_ram_mb":{"description":"Free RAM in MiB","type":"integer"},"hypervisor_type":{"description":"The hypervisor type","type":"string"},"hypervisor_version":{"description":"The hypervisor version","type":"integer"},"local_gb":{"description":"Total disk space in GiB","type":"integer"},"local_gb_used":{"description":"Used disk space in GiB","type":"integer"},"memory_mb":{"description":"Total RAM in MiB","type":"integer"},"memory_mb_used":{"description":"Used RAM in MiB","type":"integer"},"running_vms":{"description":"Number of running VMs","type":"integer"},"vcpus":{"description":"Total virtual CPUs","type":"integer"},"vcpus_used":{"description":"Used virtual CPUs","type":"integer"},"cpu_info":{"description":"CPU information (JSON object)","type":"object"},"disk_available_least":{"description":"Least available disk space in GiB","type":"integer"},"service":{"$ref":"#/components/schemas/Service"},"servers":{"description":"Servers running on the hypervisor","type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"uuid":{"format":"uuid","type":"string"}}}}}}]},"HypervisorSummary":{"type":"object","properties":{"id":{"description":"The hypervisor ID","type":"string"},"hypervisor_hostname":{"description":"The hypervisor hostname","type":"string"},"links":{"type":"array","items":{"$ref":"#/components/schemas/Link"}}}},"Link":{"type":"object","properties":{"href":{"format":"uri","type":"string"},"rel":{"enum":["self","bookmark","next","prev"],"type":"string"},"type":{"type":"string"}}},"Service":{"type":"object","properties":{"id":{"format":"uuid","description":"The service UUID","type":"string"},"binary":{"description":"The service binary name","type":"string"},"host":{"description":"The host name","type":"string"},"zone":{"description":"The availability zone","type":"string"},"status":{"description":"The service status","enum":["enabled","disabled"],"type":"string"},"state":{"description":"The service state","enum":["up","down"],"type":"string"},"updated_at":{"format":"date-time","description":"When the service was last updated","type":"string"},"disabled_reason":{"nullable":true,"description":"The reason the service was disabled","type":"string"},"forced_down":{"description":"Whether the service was forced down","type":"boolean"}}}}},"paths":{"/os-hypervisors/detail":{"get":{"parameters":[{"$ref":"#/components/parameters/OpenStackAPIVersion"},{"name":"limit","schema":{"minimum":1,"type":"integer"},"in":"query"},{"name":"marker","schema":{"type":"string"},"in":"query"},{"name":"hypervisor_hostname_pattern","schema":{"type":"string"},"in":"query"},{"name":"with_servers","schema":{"type":"boolean"},"in":"query"}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hypervisors":{"type":"array","items":{"$ref":"#/components/schemas/HypervisorDetailed"}}}}}},"description":"Successful response"}},"operationId":"listHypervisorsDetailed","summary":"List Hypervisors (Detailed)","description":"Lists hypervisors with detailed information (admin only)"}}}}
```

## Show Hypervisor Details

> Shows details for a hypervisor (admin only)

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}},"schemas":{"HypervisorDetailed":{"allOf":[{"$ref":"#/components/schemas/HypervisorSummary"},{"type":"object","properties":{"status":{"description":"The hypervisor status","enum":["enabled","disabled"],"type":"string"},"state":{"description":"The hypervisor state","enum":["up","down"],"type":"string"},"host_ip":{"format":"ipv4","description":"The IP address of the hypervisor","type":"string"},"free_disk_gb":{"description":"Free disk space in GiB","type":"integer"},"free_ram_mb":{"description":"Free RAM in MiB","type":"integer"},"hypervisor_type":{"description":"The hypervisor type","type":"string"},"hypervisor_version":{"description":"The hypervisor version","type":"integer"},"local_gb":{"description":"Total disk space in GiB","type":"integer"},"local_gb_used":{"description":"Used disk space in GiB","type":"integer"},"memory_mb":{"description":"Total RAM in MiB","type":"integer"},"memory_mb_used":{"description":"Used RAM in MiB","type":"integer"},"running_vms":{"description":"Number of running VMs","type":"integer"},"vcpus":{"description":"Total virtual CPUs","type":"integer"},"vcpus_used":{"description":"Used virtual CPUs","type":"integer"},"cpu_info":{"description":"CPU information (JSON object)","type":"object"},"disk_available_least":{"description":"Least available disk space in GiB","type":"integer"},"service":{"$ref":"#/components/schemas/Service"},"servers":{"description":"Servers running on the hypervisor","type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"uuid":{"format":"uuid","type":"string"}}}}}}]},"HypervisorSummary":{"type":"object","properties":{"id":{"description":"The hypervisor ID","type":"string"},"hypervisor_hostname":{"description":"The hypervisor hostname","type":"string"},"links":{"type":"array","items":{"$ref":"#/components/schemas/Link"}}}},"Link":{"type":"object","properties":{"href":{"format":"uri","type":"string"},"rel":{"enum":["self","bookmark","next","prev"],"type":"string"},"type":{"type":"string"}}},"Service":{"type":"object","properties":{"id":{"format":"uuid","description":"The service UUID","type":"string"},"binary":{"description":"The service binary name","type":"string"},"host":{"description":"The host name","type":"string"},"zone":{"description":"The availability zone","type":"string"},"status":{"description":"The service status","enum":["enabled","disabled"],"type":"string"},"state":{"description":"The service state","enum":["up","down"],"type":"string"},"updated_at":{"format":"date-time","description":"When the service was last updated","type":"string"},"disabled_reason":{"nullable":true,"description":"The reason the service was disabled","type":"string"},"forced_down":{"description":"Whether the service was forced down","type":"boolean"}}}}},"paths":{"/os-hypervisors/{hypervisor_id}":{"get":{"parameters":[{"name":"with_servers","description":"Include servers running on the hypervisor","schema":{"type":"boolean"},"in":"query"}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hypervisor":{"$ref":"#/components/schemas/HypervisorDetailed"}}}}},"description":"Successful response"}},"operationId":"getHypervisor","summary":"Show Hypervisor Details","description":"Shows details for a hypervisor (admin only)"}}}}
```

## Show Hypervisor Uptime

> Shows uptime for a hypervisor (admin only)

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}},"schemas":{"HypervisorUptime":{"type":"object","properties":{"id":{"description":"The hypervisor ID","type":"string"},"hypervisor_hostname":{"description":"The hypervisor hostname","type":"string"},"uptime":{"description":"The uptime information","type":"string"}}}}},"paths":{"/os-hypervisors/{hypervisor_id}/uptime":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hypervisor":{"$ref":"#/components/schemas/HypervisorUptime"}}}}},"description":"Successful response"}},"operationId":"getHypervisorUptime","summary":"Show Hypervisor Uptime","description":"Shows uptime for a hypervisor (admin only)"}}}}
```

## List Services

> Lists services (admin only)

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}},"parameters":{"OpenStackAPIVersion":{"name":"OpenStack-API-Version","description":"Specifies the API microversion. Format: \"compute X.Y\" where X.Y is the microversion.\nIf not specified, the minimum supported version (2.1) is used.\n","schema":{"pattern":"^compute \\d+\\.\\d+","type":"string"},"in":"header"}},"schemas":{"Service":{"type":"object","properties":{"id":{"format":"uuid","description":"The service UUID","type":"string"},"binary":{"description":"The service binary name","type":"string"},"host":{"description":"The host name","type":"string"},"zone":{"description":"The availability zone","type":"string"},"status":{"description":"The service status","enum":["enabled","disabled"],"type":"string"},"state":{"description":"The service state","enum":["up","down"],"type":"string"},"updated_at":{"format":"date-time","description":"When the service was last updated","type":"string"},"disabled_reason":{"nullable":true,"description":"The reason the service was disabled","type":"string"},"forced_down":{"description":"Whether the service was forced down","type":"boolean"}}}}},"paths":{"/os-services":{"get":{"parameters":[{"$ref":"#/components/parameters/OpenStackAPIVersion"},{"name":"host","description":"Filter services by host name","schema":{"type":"string"},"in":"query"},{"name":"binary","description":"Filter services by binary name","schema":{"type":"string"},"in":"query"}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"services":{"type":"array","items":{"$ref":"#/components/schemas/Service"}}}}}},"description":"Successful response"}},"operationId":"listServices","summary":"List Services","description":"Lists services (admin only)"}}}}
```

## Update Service

> Updates a service (admin only)

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}},"schemas":{"EnableServiceRequest":{"type":"object","properties":{"status":{"enum":["enabled"],"type":"string"},"disabled_reason":{"nullable":true,"type":"string"}}},"DisableServiceRequest":{"type":"object","properties":{"status":{"enum":["disabled"],"type":"string"},"disabled_reason":{"type":"string"}}},"ForceDownServiceRequest":{"type":"object","properties":{"forced_down":{"type":"boolean"}}},"Service":{"type":"object","properties":{"id":{"format":"uuid","description":"The service UUID","type":"string"},"binary":{"description":"The service binary name","type":"string"},"host":{"description":"The host name","type":"string"},"zone":{"description":"The availability zone","type":"string"},"status":{"description":"The service status","enum":["enabled","disabled"],"type":"string"},"state":{"description":"The service state","enum":["up","down"],"type":"string"},"updated_at":{"format":"date-time","description":"When the service was last updated","type":"string"},"disabled_reason":{"nullable":true,"description":"The reason the service was disabled","type":"string"},"forced_down":{"description":"Whether the service was forced down","type":"boolean"}}}}},"paths":{"/os-services/{service_id}":{"put":{"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/EnableServiceRequest"},{"$ref":"#/components/schemas/DisableServiceRequest"},{"$ref":"#/components/schemas/ForceDownServiceRequest"}]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"service":{"$ref":"#/components/schemas/Service"}}}}},"description":"Service updated successfully"}},"operationId":"updateService","summary":"Update Service","description":"Updates a service (admin only)"}}}}
```

## Delete Service

> Deletes a service (admin only)

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}}},"paths":{"/os-services/{service_id}":{"delete":{"responses":{"204":{"description":"Service deleted successfully"}},"operationId":"deleteService","summary":"Delete Service","description":"Deletes a service (admin only)"}}}}
```

## List Host Aggregates

> Lists host aggregates (admin only)

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}},"parameters":{"OpenStackAPIVersion":{"name":"OpenStack-API-Version","description":"Specifies the API microversion. Format: \"compute X.Y\" where X.Y is the microversion.\nIf not specified, the minimum supported version (2.1) is used.\n","schema":{"pattern":"^compute \\d+\\.\\d+","type":"string"},"in":"header"}},"schemas":{"Aggregate":{"type":"object","properties":{"id":{"description":"The aggregate ID","type":"string"},"uuid":{"format":"uuid","description":"The aggregate UUID","type":"string"},"name":{"description":"The aggregate name","type":"string"},"availability_zone":{"nullable":true,"description":"The availability zone","type":"string"},"hosts":{"description":"The list of hosts","type":"array","items":{"type":"string"}},"metadata":{"description":"The aggregate metadata","type":"object","additionalProperties":{"type":"string"}},"created_at":{"format":"date-time","description":"When the aggregate was created","type":"string"},"updated_at":{"format":"date-time","description":"When the aggregate was updated","type":"string"},"deleted_at":{"nullable":true,"format":"date-time","description":"When the aggregate was deleted","type":"string"},"deleted":{"description":"Whether the aggregate is deleted","type":"boolean"}}}}},"paths":{"/os-aggregates":{"get":{"parameters":[{"$ref":"#/components/parameters/OpenStackAPIVersion"}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"aggregates":{"type":"array","items":{"$ref":"#/components/schemas/Aggregate"}}}}}},"description":"Successful response"}},"operationId":"listAggregates","summary":"List Host Aggregates","description":"Lists host aggregates (admin only)"}}}}
```

## Create Host Aggregate

> Creates a host aggregate (admin only)

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}},"schemas":{"CreateAggregateRequest":{"required":["name"],"type":"object","properties":{"name":{"description":"The aggregate name","type":"string"},"availability_zone":{"description":"The availability zone","type":"string"}}},"Aggregate":{"type":"object","properties":{"id":{"description":"The aggregate ID","type":"string"},"uuid":{"format":"uuid","description":"The aggregate UUID","type":"string"},"name":{"description":"The aggregate name","type":"string"},"availability_zone":{"nullable":true,"description":"The availability zone","type":"string"},"hosts":{"description":"The list of hosts","type":"array","items":{"type":"string"}},"metadata":{"description":"The aggregate metadata","type":"object","additionalProperties":{"type":"string"}},"created_at":{"format":"date-time","description":"When the aggregate was created","type":"string"},"updated_at":{"format":"date-time","description":"When the aggregate was updated","type":"string"},"deleted_at":{"nullable":true,"format":"date-time","description":"When the aggregate was deleted","type":"string"},"deleted":{"description":"Whether the aggregate is deleted","type":"boolean"}}}},"parameters":{"OpenStackAPIVersion":{"name":"OpenStack-API-Version","description":"Specifies the API microversion. Format: \"compute X.Y\" where X.Y is the microversion.\nIf not specified, the minimum supported version (2.1) is used.\n","schema":{"pattern":"^compute \\d+\\.\\d+","type":"string"},"in":"header"}}},"paths":{"/os-aggregates":{"post":{"requestBody":{"content":{"application/json":{"schema":{"required":["aggregate"],"type":"object","properties":{"aggregate":{"$ref":"#/components/schemas/CreateAggregateRequest"}}}}},"required":true},"parameters":[{"$ref":"#/components/parameters/OpenStackAPIVersion"}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"aggregate":{"$ref":"#/components/schemas/Aggregate"}}}}},"description":"Aggregate created successfully"}},"operationId":"createAggregate","summary":"Create Host Aggregate","description":"Creates a host aggregate (admin only)"}}}}
```

## Show Host Aggregate Details

> Shows details for a host aggregate (admin only)

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}},"schemas":{"Aggregate":{"type":"object","properties":{"id":{"description":"The aggregate ID","type":"string"},"uuid":{"format":"uuid","description":"The aggregate UUID","type":"string"},"name":{"description":"The aggregate name","type":"string"},"availability_zone":{"nullable":true,"description":"The availability zone","type":"string"},"hosts":{"description":"The list of hosts","type":"array","items":{"type":"string"}},"metadata":{"description":"The aggregate metadata","type":"object","additionalProperties":{"type":"string"}},"created_at":{"format":"date-time","description":"When the aggregate was created","type":"string"},"updated_at":{"format":"date-time","description":"When the aggregate was updated","type":"string"},"deleted_at":{"nullable":true,"format":"date-time","description":"When the aggregate was deleted","type":"string"},"deleted":{"description":"Whether the aggregate is deleted","type":"boolean"}}}}},"paths":{"/os-aggregates/{aggregate_id}":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"aggregate":{"$ref":"#/components/schemas/Aggregate"}}}}},"description":"Successful response"}},"operationId":"getAggregate","summary":"Show Host Aggregate Details","description":"Shows details for a host aggregate (admin only)"}}}}
```

## Update Host Aggregate

> Updates a host aggregate (admin only)

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}},"schemas":{"UpdateAggregateRequest":{"type":"object","properties":{"name":{"description":"The aggregate name","type":"string"},"availability_zone":{"description":"The availability zone","type":"string"}}},"Aggregate":{"type":"object","properties":{"id":{"description":"The aggregate ID","type":"string"},"uuid":{"format":"uuid","description":"The aggregate UUID","type":"string"},"name":{"description":"The aggregate name","type":"string"},"availability_zone":{"nullable":true,"description":"The availability zone","type":"string"},"hosts":{"description":"The list of hosts","type":"array","items":{"type":"string"}},"metadata":{"description":"The aggregate metadata","type":"object","additionalProperties":{"type":"string"}},"created_at":{"format":"date-time","description":"When the aggregate was created","type":"string"},"updated_at":{"format":"date-time","description":"When the aggregate was updated","type":"string"},"deleted_at":{"nullable":true,"format":"date-time","description":"When the aggregate was deleted","type":"string"},"deleted":{"description":"Whether the aggregate is deleted","type":"boolean"}}}}},"paths":{"/os-aggregates/{aggregate_id}":{"put":{"requestBody":{"content":{"application/json":{"schema":{"required":["aggregate"],"type":"object","properties":{"aggregate":{"$ref":"#/components/schemas/UpdateAggregateRequest"}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"aggregate":{"$ref":"#/components/schemas/Aggregate"}}}}},"description":"Aggregate updated successfully"}},"operationId":"updateAggregate","summary":"Update Host Aggregate","description":"Updates a host aggregate (admin only)"}}}}
```

## Delete Host Aggregate

> Deletes a host aggregate (admin only)

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}}},"paths":{"/os-aggregates/{aggregate_id}":{"delete":{"responses":{"200":{"description":"Aggregate deleted successfully (for backward compatibility)"}},"operationId":"deleteAggregate","summary":"Delete Host Aggregate","description":"Deletes a host aggregate (admin only)"}}}}
```

## Perform Host Aggregate Action

> Performs actions on a host aggregate (admin only)

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}},"schemas":{"AddHostAction":{"required":["add_host"],"type":"object","properties":{"add_host":{"required":["host"],"type":"object","properties":{"host":{"description":"The host name","type":"string"}}}}},"RemoveHostAction":{"required":["remove_host"],"type":"object","properties":{"remove_host":{"required":["host"],"type":"object","properties":{"host":{"description":"The host name","type":"string"}}}}},"SetMetadataAction":{"required":["set_metadata"],"type":"object","properties":{"set_metadata":{"required":["metadata"],"type":"object","properties":{"metadata":{"description":"The metadata to set","type":"object","additionalProperties":{"type":"string"}}}}}},"Aggregate":{"type":"object","properties":{"id":{"description":"The aggregate ID","type":"string"},"uuid":{"format":"uuid","description":"The aggregate UUID","type":"string"},"name":{"description":"The aggregate name","type":"string"},"availability_zone":{"nullable":true,"description":"The availability zone","type":"string"},"hosts":{"description":"The list of hosts","type":"array","items":{"type":"string"}},"metadata":{"description":"The aggregate metadata","type":"object","additionalProperties":{"type":"string"}},"created_at":{"format":"date-time","description":"When the aggregate was created","type":"string"},"updated_at":{"format":"date-time","description":"When the aggregate was updated","type":"string"},"deleted_at":{"nullable":true,"format":"date-time","description":"When the aggregate was deleted","type":"string"},"deleted":{"description":"Whether the aggregate is deleted","type":"boolean"}}}}},"paths":{"/os-aggregates/{aggregate_id}/action":{"post":{"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/AddHostAction"},{"$ref":"#/components/schemas/RemoveHostAction"},{"$ref":"#/components/schemas/SetMetadataAction"}]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"aggregate":{"$ref":"#/components/schemas/Aggregate"}}}}},"description":"Action performed successfully"}},"operationId":"performAggregateAction","summary":"Perform Host Aggregate Action","description":"Performs actions on a host aggregate (admin only)"}}}}
```

## List Server Groups

> Lists server groups

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}},"parameters":{"OpenStackAPIVersion":{"name":"OpenStack-API-Version","description":"Specifies the API microversion. Format: \"compute X.Y\" where X.Y is the microversion.\nIf not specified, the minimum supported version (2.1) is used.\n","schema":{"pattern":"^compute \\d+\\.\\d+","type":"string"},"in":"header"}},"schemas":{"ServerGroup":{"type":"object","properties":{"id":{"format":"uuid","description":"The server group UUID","type":"string"},"name":{"description":"The server group name","type":"string"},"policies":{"description":"The list of policies","type":"array","items":{"enum":["anti-affinity","affinity","soft-anti-affinity","soft-affinity"],"type":"string"}},"policy":{"description":"The policy (deprecated, use policies)","enum":["anti-affinity","affinity","soft-anti-affinity","soft-affinity"],"type":"string"},"rules":{"description":"The policy rules","type":"object","additionalProperties":{"type":"string"}},"members":{"description":"The list of server UUIDs in the group","type":"array","items":{"format":"uuid","type":"string"}},"project_id":{"format":"uuid","description":"The project UUID","type":"string"},"user_id":{"format":"uuid","description":"The user UUID","type":"string"}}}}},"paths":{"/os-server-groups":{"get":{"parameters":[{"$ref":"#/components/parameters/OpenStackAPIVersion"},{"name":"all_projects","description":"Shows server groups for all projects (admin only)","schema":{"type":"boolean"},"in":"query"},{"name":"limit","schema":{"minimum":1,"type":"integer"},"in":"query"},{"name":"offset","schema":{"minimum":0,"type":"integer"},"in":"query"}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"server_groups":{"type":"array","items":{"$ref":"#/components/schemas/ServerGroup"}}}}}},"description":"Successful response"}},"operationId":"listServerGroups","summary":"List Server Groups","description":"Lists server groups"}}}}
```

## Create Server Group

> Creates a server group

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}},"schemas":{"CreateServerGroupRequest":{"required":["name","policies"],"type":"object","properties":{"name":{"description":"The server group name","type":"string"},"policies":{"description":"The list of policies","maxItems":1,"minItems":1,"type":"array","items":{"enum":["anti-affinity","affinity","soft-anti-affinity","soft-affinity"],"type":"string"}},"policy":{"description":"The policy (deprecated, use policies)","enum":["anti-affinity","affinity","soft-anti-affinity","soft-affinity"],"type":"string"},"rules":{"description":"The policy rules","type":"object","additionalProperties":{"type":"string"}}}},"ServerGroup":{"type":"object","properties":{"id":{"format":"uuid","description":"The server group UUID","type":"string"},"name":{"description":"The server group name","type":"string"},"policies":{"description":"The list of policies","type":"array","items":{"enum":["anti-affinity","affinity","soft-anti-affinity","soft-affinity"],"type":"string"}},"policy":{"description":"The policy (deprecated, use policies)","enum":["anti-affinity","affinity","soft-anti-affinity","soft-affinity"],"type":"string"},"rules":{"description":"The policy rules","type":"object","additionalProperties":{"type":"string"}},"members":{"description":"The list of server UUIDs in the group","type":"array","items":{"format":"uuid","type":"string"}},"project_id":{"format":"uuid","description":"The project UUID","type":"string"},"user_id":{"format":"uuid","description":"The user UUID","type":"string"}}}},"parameters":{"OpenStackAPIVersion":{"name":"OpenStack-API-Version","description":"Specifies the API microversion. Format: \"compute X.Y\" where X.Y is the microversion.\nIf not specified, the minimum supported version (2.1) is used.\n","schema":{"pattern":"^compute \\d+\\.\\d+","type":"string"},"in":"header"}}},"paths":{"/os-server-groups":{"post":{"requestBody":{"content":{"application/json":{"schema":{"required":["server_group"],"type":"object","properties":{"server_group":{"$ref":"#/components/schemas/CreateServerGroupRequest"}}}}},"required":true},"parameters":[{"$ref":"#/components/parameters/OpenStackAPIVersion"}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"server_group":{"$ref":"#/components/schemas/ServerGroup"}}}}},"description":"Server group created successfully"}},"operationId":"createServerGroup","summary":"Create Server Group","description":"Creates a server group"}}}}
```

## Show Server Group Details

> Shows details for a server group

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}},"schemas":{"ServerGroup":{"type":"object","properties":{"id":{"format":"uuid","description":"The server group UUID","type":"string"},"name":{"description":"The server group name","type":"string"},"policies":{"description":"The list of policies","type":"array","items":{"enum":["anti-affinity","affinity","soft-anti-affinity","soft-affinity"],"type":"string"}},"policy":{"description":"The policy (deprecated, use policies)","enum":["anti-affinity","affinity","soft-anti-affinity","soft-affinity"],"type":"string"},"rules":{"description":"The policy rules","type":"object","additionalProperties":{"type":"string"}},"members":{"description":"The list of server UUIDs in the group","type":"array","items":{"format":"uuid","type":"string"}},"project_id":{"format":"uuid","description":"The project UUID","type":"string"},"user_id":{"format":"uuid","description":"The user UUID","type":"string"}}}}},"paths":{"/os-server-groups/{server_group_id}":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"server_group":{"$ref":"#/components/schemas/ServerGroup"}}}}},"description":"Successful response"}},"operationId":"getServerGroup","summary":"Show Server Group Details","description":"Shows details for a server group"}}}}
```

## Delete Server Group

> Deletes a server group

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}}},"paths":{"/os-server-groups/{server_group_id}":{"delete":{"responses":{"204":{"description":"Server group deleted successfully"}},"operationId":"deleteServerGroup","summary":"Delete Server Group","description":"Deletes a server group"}}}}
```

## Show Quotas

> Shows quotas for a project

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}},"schemas":{"QuotaSet":{"type":"object","properties":{"id":{"format":"uuid","description":"The project UUID","type":"string"},"cores":{"description":"The number of allowed server cores","type":"integer"},"instances":{"description":"The number of allowed servers","type":"integer"},"key_pairs":{"description":"The number of allowed key pairs","type":"integer"},"metadata_items":{"description":"The number of allowed metadata items per server","type":"integer"},"ram":{"description":"The amount of allowed server RAM in MiB","type":"integer"},"server_groups":{"description":"The number of allowed server groups","type":"integer"},"server_group_members":{"description":"The number of allowed members per server group","type":"integer"}}}}},"paths":{"/os-quota-sets/{project_id}":{"get":{"parameters":[{"name":"user_id","description":"User ID to get quotas for (admin only)","schema":{"type":"string"},"in":"query"}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"quota_set":{"$ref":"#/components/schemas/QuotaSet"}}}}},"description":"Successful response"}},"operationId":"getQuotas","summary":"Show Quotas","description":"Shows quotas for a project"}}}}
```

## Update Quotas

> Updates quotas for a project (admin only)

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}},"schemas":{"UpdateQuotaSetRequest":{"type":"object","properties":{"cores":{"description":"The number of allowed server cores (-1 for unlimited)","minimum":-1,"type":"integer"},"instances":{"description":"The number of allowed servers (-1 for unlimited)","minimum":-1,"type":"integer"},"key_pairs":{"description":"The number of allowed key pairs (-1 for unlimited)","minimum":-1,"type":"integer"},"metadata_items":{"description":"The number of allowed metadata items per server (-1 for unlimited)","minimum":-1,"type":"integer"},"ram":{"description":"The amount of allowed server RAM in MiB (-1 for unlimited)","minimum":-1,"type":"integer"},"server_groups":{"description":"The number of allowed server groups (-1 for unlimited)","minimum":-1,"type":"integer"},"server_group_members":{"description":"The number of allowed members per server group (-1 for unlimited)","minimum":-1,"type":"integer"},"force":{"description":"Whether to force the quota update","default":false,"type":"boolean"}}},"QuotaSet":{"type":"object","properties":{"id":{"format":"uuid","description":"The project UUID","type":"string"},"cores":{"description":"The number of allowed server cores","type":"integer"},"instances":{"description":"The number of allowed servers","type":"integer"},"key_pairs":{"description":"The number of allowed key pairs","type":"integer"},"metadata_items":{"description":"The number of allowed metadata items per server","type":"integer"},"ram":{"description":"The amount of allowed server RAM in MiB","type":"integer"},"server_groups":{"description":"The number of allowed server groups","type":"integer"},"server_group_members":{"description":"The number of allowed members per server group","type":"integer"}}}}},"paths":{"/os-quota-sets/{project_id}":{"put":{"requestBody":{"content":{"application/json":{"schema":{"required":["quota_set"],"type":"object","properties":{"quota_set":{"$ref":"#/components/schemas/UpdateQuotaSetRequest"}}}}},"required":true},"parameters":[{"name":"user_id","description":"User ID to update quotas for","schema":{"type":"string"},"in":"query"}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"quota_set":{"$ref":"#/components/schemas/QuotaSet"}}}}},"description":"Quotas updated successfully"}},"operationId":"updateQuotas","summary":"Update Quotas","description":"Updates quotas for a project (admin only)"}}}}
```

## Revert Quotas to Defaults

> Reverts quotas for a project to default values (admin only)

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}}},"paths":{"/os-quota-sets/{project_id}":{"delete":{"parameters":[{"name":"user_id","description":"User ID to revert quotas for","schema":{"type":"string"},"in":"query"}],"responses":{"202":{"description":"Quotas reverted successfully"}},"operationId":"revertQuotas","summary":"Revert Quotas to Defaults","description":"Reverts quotas for a project to default values (admin only)"}}}}
```

## Show Default Quotas

> Shows default quotas for a project

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}},"schemas":{"QuotaSet":{"type":"object","properties":{"id":{"format":"uuid","description":"The project UUID","type":"string"},"cores":{"description":"The number of allowed server cores","type":"integer"},"instances":{"description":"The number of allowed servers","type":"integer"},"key_pairs":{"description":"The number of allowed key pairs","type":"integer"},"metadata_items":{"description":"The number of allowed metadata items per server","type":"integer"},"ram":{"description":"The amount of allowed server RAM in MiB","type":"integer"},"server_groups":{"description":"The number of allowed server groups","type":"integer"},"server_group_members":{"description":"The number of allowed members per server group","type":"integer"}}}}},"paths":{"/os-quota-sets/{project_id}/defaults":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"quota_set":{"$ref":"#/components/schemas/QuotaSet"}}}}},"description":"Successful response"}},"operationId":"getDefaultQuotas","summary":"Show Default Quotas","description":"Shows default quotas for a project"}}}}
```

## Show Quotas with Usage

> Shows quotas for a project with usage information

```json
{"openapi":"3.0.3","info":{"title":"Compute API","version":"2.96"},"servers":[{"url":"https://{host}/nova/v2.1","description":"Nova Compute API v2.1","variables":{"host":{"default":"pcd.example.com","description":"The PCD controlplane hostname"}}}],"security":[{"keystoneAuth":[]}],"components":{"securitySchemes":{"keystoneAuth":{"scheme":"bearer","type":"http","description":"OpenStack Keystone token authentication"}},"schemas":{"QuotaSetDetailed":{"type":"object","properties":{"id":{"format":"uuid","description":"The project UUID","type":"string"},"cores":{"$ref":"#/components/schemas/QuotaDetail"},"instances":{"$ref":"#/components/schemas/QuotaDetail"},"key_pairs":{"$ref":"#/components/schemas/QuotaDetail"},"metadata_items":{"$ref":"#/components/schemas/QuotaDetail"},"ram":{"$ref":"#/components/schemas/QuotaDetail"},"server_groups":{"$ref":"#/components/schemas/QuotaDetail"},"server_group_members":{"$ref":"#/components/schemas/QuotaDetail"}}},"QuotaDetail":{"type":"object","properties":{"limit":{"description":"The quota limit","type":"integer"},"in_use":{"description":"The current usage","type":"integer"},"reserved":{"description":"The reserved amount","type":"integer"}}}}},"paths":{"/os-quota-sets/{project_id}/detail":{"get":{"parameters":[{"name":"user_id","description":"User ID to get quotas for (admin only)","schema":{"type":"string"},"in":"query"}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"quota_set":{"$ref":"#/components/schemas/QuotaSetDetailed"}}}}},"description":"Successful response"}},"operationId":"getQuotasDetail","summary":"Show Quotas with Usage","description":"Shows quotas for a project with usage information"}}}}
```


---

# 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.platform9.com/api-docs/compute-service/compute-api.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.
