# 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"}}}}
```
