# Types

Volume type management

## List volume types

> Lists volume types

```json
{"openapi":"3.0.3","info":{"title":"OpenStack Block Storage API (Cinder)","version":"3.71"},"tags":[{"name":"types","description":"Volume type management"}],"servers":[{"url":"https://{host}/cinder","description":"PCD Block Storage API v3","variables":{"host":{"default":"example.platform9.com","description":"The PCD controlplane hostname"}}}],"security":[{"pcdAuth":[]}],"components":{"securitySchemes":{"pcdAuth":{"name":"X-Auth-Token","type":"apiKey","in":"header","description":"PCD Identity Service token authentication"}},"parameters":{"IsPublicQuery":{"name":"is_public","description":"Filter the volume type by public visibility","schema":{"type":"boolean"},"in":"query"},"SortQuery":{"name":"sort","description":"Comma-separated list of sort keys and optional sort directions","schema":{"type":"string"},"in":"query"},"SortKeyQuery":{"name":"sort_key","description":"Sorts by an attribute","schema":{"type":"string"},"in":"query"},"SortDirQuery":{"name":"sort_dir","description":"Sorts by direction (asc or desc)","schema":{"enum":["asc","desc"],"type":"string"},"in":"query"},"LimitQuery":{"name":"limit","description":"Requests a page size of items","schema":{"minimum":1,"type":"integer"},"in":"query"},"OffsetQuery":{"name":"offset","description":"Used in conjunction with limit to return items starting from the offset position","schema":{"minimum":0,"type":"integer"},"in":"query"},"MarkerQuery":{"name":"marker","description":"The ID of the last-seen item","schema":{"type":"string"},"in":"query"}},"schemas":{"VolumeTypes":{"type":"object","properties":{"volume_types":{"type":"array","items":{"$ref":"#/components/schemas/VolumeType"}}}},"VolumeType":{"type":"object","properties":{"id":{"format":"uuid","description":"The UUID of the volume type","type":"string"},"name":{"description":"The name of the volume type","type":"string"},"description":{"description":"The volume type description","type":"string"},"is_public":{"description":"Whether the volume type is publicly visible","type":"boolean"},"os-volume-type-access:is_public":{"description":"Whether the volume type is publicly visible","type":"boolean"},"extra_specs":{"description":"Additional specifications for the volume type","type":"object","additionalProperties":{"type":"string"}},"qos_specs_id":{"nullable":true,"format":"uuid","description":"The QoS specifications ID","type":"string"}}}}},"paths":{"/v3/types":{"get":{"tags":["types"],"parameters":[{"$ref":"#/components/parameters/IsPublicQuery"},{"$ref":"#/components/parameters/SortQuery"},{"$ref":"#/components/parameters/SortKeyQuery"},{"$ref":"#/components/parameters/SortDirQuery"},{"$ref":"#/components/parameters/LimitQuery"},{"$ref":"#/components/parameters/OffsetQuery"},{"$ref":"#/components/parameters/MarkerQuery"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VolumeTypes"}}},"description":"OK"}},"summary":"List volume types","description":"Lists volume types"}}}}
```

## Create volume type

> Creates a volume type

```json
{"openapi":"3.0.3","info":{"title":"OpenStack Block Storage API (Cinder)","version":"3.71"},"tags":[{"name":"types","description":"Volume type management"}],"servers":[{"url":"https://{host}/cinder","description":"PCD Block Storage API v3","variables":{"host":{"default":"example.platform9.com","description":"The PCD controlplane hostname"}}}],"security":[{"pcdAuth":[]}],"components":{"securitySchemes":{"pcdAuth":{"name":"X-Auth-Token","type":"apiKey","in":"header","description":"PCD Identity Service token authentication"}},"schemas":{"VolumeTypeCreateRequest":{"type":"object","properties":{"volume_type":{"required":["name"],"type":"object","properties":{"name":{"description":"The name of the volume type","type":"string"},"description":{"description":"The volume type description","type":"string"},"os-volume-type-access:is_public":{"description":"Whether the volume type is publicly visible","type":"boolean"},"extra_specs":{"description":"Additional specifications for the volume type","type":"object","additionalProperties":{"type":"string"}}}}}},"VolumeTypeResponse":{"type":"object","properties":{"volume_type":{"$ref":"#/components/schemas/VolumeType"}}},"VolumeType":{"type":"object","properties":{"id":{"format":"uuid","description":"The UUID of the volume type","type":"string"},"name":{"description":"The name of the volume type","type":"string"},"description":{"description":"The volume type description","type":"string"},"is_public":{"description":"Whether the volume type is publicly visible","type":"boolean"},"os-volume-type-access:is_public":{"description":"Whether the volume type is publicly visible","type":"boolean"},"extra_specs":{"description":"Additional specifications for the volume type","type":"object","additionalProperties":{"type":"string"}},"qos_specs_id":{"nullable":true,"format":"uuid","description":"The QoS specifications ID","type":"string"}}}}},"paths":{"/v3/types":{"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VolumeTypeCreateRequest"}}},"required":true},"tags":["types"],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VolumeTypeResponse"}}},"description":"OK"}},"summary":"Create volume type","description":"Creates a volume type"}}}}
```

## Show default volume type

> Shows details for the default volume type

```json
{"openapi":"3.0.3","info":{"title":"OpenStack Block Storage API (Cinder)","version":"3.71"},"tags":[{"name":"types","description":"Volume type management"}],"servers":[{"url":"https://{host}/cinder","description":"PCD Block Storage API v3","variables":{"host":{"default":"example.platform9.com","description":"The PCD controlplane hostname"}}}],"security":[{"pcdAuth":[]}],"components":{"securitySchemes":{"pcdAuth":{"name":"X-Auth-Token","type":"apiKey","in":"header","description":"PCD Identity Service token authentication"}},"schemas":{"VolumeTypeResponse":{"type":"object","properties":{"volume_type":{"$ref":"#/components/schemas/VolumeType"}}},"VolumeType":{"type":"object","properties":{"id":{"format":"uuid","description":"The UUID of the volume type","type":"string"},"name":{"description":"The name of the volume type","type":"string"},"description":{"description":"The volume type description","type":"string"},"is_public":{"description":"Whether the volume type is publicly visible","type":"boolean"},"os-volume-type-access:is_public":{"description":"Whether the volume type is publicly visible","type":"boolean"},"extra_specs":{"description":"Additional specifications for the volume type","type":"object","additionalProperties":{"type":"string"}},"qos_specs_id":{"nullable":true,"format":"uuid","description":"The QoS specifications ID","type":"string"}}}},"responses":{"NotFound":{"description":"The requested resource could not be found"},"InternalServerError":{"description":"Something went wrong with the service which prevents it from fulfilling the request"}}},"paths":{"/v3/types/default":{"get":{"tags":["types"],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VolumeTypeResponse"}}},"description":"OK"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalServerError"}},"summary":"Show default volume type","description":"Shows details for the default volume type"}}}}
```

## Show volume type details

> Shows details for a volume type

```json
{"openapi":"3.0.3","info":{"title":"OpenStack Block Storage API (Cinder)","version":"3.71"},"tags":[{"name":"types","description":"Volume type management"}],"servers":[{"url":"https://{host}/cinder","description":"PCD Block Storage API v3","variables":{"host":{"default":"example.platform9.com","description":"The PCD controlplane hostname"}}}],"security":[{"pcdAuth":[]}],"components":{"securitySchemes":{"pcdAuth":{"name":"X-Auth-Token","type":"apiKey","in":"header","description":"PCD Identity Service token authentication"}},"schemas":{"VolumeTypeResponse":{"type":"object","properties":{"volume_type":{"$ref":"#/components/schemas/VolumeType"}}},"VolumeType":{"type":"object","properties":{"id":{"format":"uuid","description":"The UUID of the volume type","type":"string"},"name":{"description":"The name of the volume type","type":"string"},"description":{"description":"The volume type description","type":"string"},"is_public":{"description":"Whether the volume type is publicly visible","type":"boolean"},"os-volume-type-access:is_public":{"description":"Whether the volume type is publicly visible","type":"boolean"},"extra_specs":{"description":"Additional specifications for the volume type","type":"object","additionalProperties":{"type":"string"}},"qos_specs_id":{"nullable":true,"format":"uuid","description":"The QoS specifications ID","type":"string"}}}}},"paths":{"/v3/types/{volume_type_id}":{"get":{"tags":["types"],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VolumeTypeResponse"}}},"description":"OK"}},"summary":"Show volume type details","description":"Shows details for a volume type"}}}}
```

## Update volume type

> Updates a volume type

```json
{"openapi":"3.0.3","info":{"title":"OpenStack Block Storage API (Cinder)","version":"3.71"},"tags":[{"name":"types","description":"Volume type management"}],"servers":[{"url":"https://{host}/cinder","description":"PCD Block Storage API v3","variables":{"host":{"default":"example.platform9.com","description":"The PCD controlplane hostname"}}}],"security":[{"pcdAuth":[]}],"components":{"securitySchemes":{"pcdAuth":{"name":"X-Auth-Token","type":"apiKey","in":"header","description":"PCD Identity Service token authentication"}},"schemas":{"VolumeTypeUpdateRequest":{"type":"object","properties":{"volume_type":{"type":"object","properties":{"name":{"description":"The name of the volume type","type":"string"},"description":{"description":"The volume type description","type":"string"},"is_public":{"description":"Whether the volume type is publicly visible","type":"boolean"}}}}},"VolumeTypeResponse":{"type":"object","properties":{"volume_type":{"$ref":"#/components/schemas/VolumeType"}}},"VolumeType":{"type":"object","properties":{"id":{"format":"uuid","description":"The UUID of the volume type","type":"string"},"name":{"description":"The name of the volume type","type":"string"},"description":{"description":"The volume type description","type":"string"},"is_public":{"description":"Whether the volume type is publicly visible","type":"boolean"},"os-volume-type-access:is_public":{"description":"Whether the volume type is publicly visible","type":"boolean"},"extra_specs":{"description":"Additional specifications for the volume type","type":"object","additionalProperties":{"type":"string"}},"qos_specs_id":{"nullable":true,"format":"uuid","description":"The QoS specifications ID","type":"string"}}}}},"paths":{"/v3/types/{volume_type_id}":{"put":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VolumeTypeUpdateRequest"}}},"required":true},"tags":["types"],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VolumeTypeResponse"}}},"description":"OK"}},"summary":"Update volume type","description":"Updates a volume type"}}}}
```

## Delete volume type

> Deletes a volume type

```json
{"openapi":"3.0.3","info":{"title":"OpenStack Block Storage API (Cinder)","version":"3.71"},"tags":[{"name":"types","description":"Volume type management"}],"servers":[{"url":"https://{host}/cinder","description":"PCD Block Storage API v3","variables":{"host":{"default":"example.platform9.com","description":"The PCD controlplane hostname"}}}],"security":[{"pcdAuth":[]}],"components":{"securitySchemes":{"pcdAuth":{"name":"X-Auth-Token","type":"apiKey","in":"header","description":"PCD Identity Service token authentication"}},"responses":{"Accepted":{"description":"Request is accepted, but processing may take some time"}}},"paths":{"/v3/types/{volume_type_id}":{"delete":{"tags":["types"],"responses":{"202":{"$ref":"#/components/responses/Accepted"}},"summary":"Delete volume type","description":"Deletes a volume type"}}}}
```

## Show volume type extra specs

> Shows all extra specifications assigned to a volume type

```json
{"openapi":"3.0.3","info":{"title":"OpenStack Block Storage API (Cinder)","version":"3.71"},"tags":[{"name":"types","description":"Volume type management"}],"servers":[{"url":"https://{host}/cinder","description":"PCD Block Storage API v3","variables":{"host":{"default":"example.platform9.com","description":"The PCD controlplane hostname"}}}],"security":[{"pcdAuth":[]}],"components":{"securitySchemes":{"pcdAuth":{"name":"X-Auth-Token","type":"apiKey","in":"header","description":"PCD Identity Service token authentication"}},"schemas":{"ExtraSpecs":{"type":"object","properties":{"extra_specs":{"type":"object","additionalProperties":{"type":"string"}}}}}},"paths":{"/v3/types/{volume_type_id}/extra_specs":{"get":{"tags":["types"],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExtraSpecs"}}},"description":"OK"}},"summary":"Show volume type extra specs","description":"Shows all extra specifications assigned to a volume type"}}}}
```

## Create or update volume type extra specs

> Adds new extra specifications to a volume type, or updates existing ones

```json
{"openapi":"3.0.3","info":{"title":"OpenStack Block Storage API (Cinder)","version":"3.71"},"tags":[{"name":"types","description":"Volume type management"}],"servers":[{"url":"https://{host}/cinder","description":"PCD Block Storage API v3","variables":{"host":{"default":"example.platform9.com","description":"The PCD controlplane hostname"}}}],"security":[{"pcdAuth":[]}],"components":{"securitySchemes":{"pcdAuth":{"name":"X-Auth-Token","type":"apiKey","in":"header","description":"PCD Identity Service token authentication"}},"schemas":{"ExtraSpecs":{"type":"object","properties":{"extra_specs":{"type":"object","additionalProperties":{"type":"string"}}}}}},"paths":{"/v3/types/{volume_type_id}/extra_specs":{"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExtraSpecs"}}},"required":true},"tags":["types"],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExtraSpecs"}}},"description":"OK"}},"summary":"Create or update volume type extra specs","description":"Adds new extra specifications to a volume type, or updates existing ones"}}}}
```

## Show volume type extra spec

> Shows the specific extra specification assigned to a volume type

```json
{"openapi":"3.0.3","info":{"title":"OpenStack Block Storage API (Cinder)","version":"3.71"},"tags":[{"name":"types","description":"Volume type management"}],"servers":[{"url":"https://{host}/cinder","description":"PCD Block Storage API v3","variables":{"host":{"default":"example.platform9.com","description":"The PCD controlplane hostname"}}}],"security":[{"pcdAuth":[]}],"components":{"securitySchemes":{"pcdAuth":{"name":"X-Auth-Token","type":"apiKey","in":"header","description":"PCD Identity Service token authentication"}}},"paths":{"/v3/types/{volume_type_id}/extra_specs/{key}":{"get":{"tags":["types"],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"OK"}},"summary":"Show volume type extra spec","description":"Shows the specific extra specification assigned to a volume type"}}}}
```

## Update volume type extra spec

> Update the specific extra specification assigned to a volume type

```json
{"openapi":"3.0.3","info":{"title":"OpenStack Block Storage API (Cinder)","version":"3.71"},"tags":[{"name":"types","description":"Volume type management"}],"servers":[{"url":"https://{host}/cinder","description":"PCD Block Storage API v3","variables":{"host":{"default":"example.platform9.com","description":"The PCD controlplane hostname"}}}],"security":[{"pcdAuth":[]}],"components":{"securitySchemes":{"pcdAuth":{"name":"X-Auth-Token","type":"apiKey","in":"header","description":"PCD Identity Service token authentication"}}},"paths":{"/v3/types/{volume_type_id}/extra_specs/{key}":{"put":{"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"tags":["types"],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"OK"}},"summary":"Update volume type extra spec","description":"Update the specific extra specification assigned to a volume type"}}}}
```

## Delete volume type extra spec

> Deletes the specific extra specification assigned to a volume type

```json
{"openapi":"3.0.3","info":{"title":"OpenStack Block Storage API (Cinder)","version":"3.71"},"tags":[{"name":"types","description":"Volume type management"}],"servers":[{"url":"https://{host}/cinder","description":"PCD Block Storage API v3","variables":{"host":{"default":"example.platform9.com","description":"The PCD controlplane hostname"}}}],"security":[{"pcdAuth":[]}],"components":{"securitySchemes":{"pcdAuth":{"name":"X-Auth-Token","type":"apiKey","in":"header","description":"PCD Identity Service token authentication"}},"responses":{"Accepted":{"description":"Request is accepted, but processing may take some time"}}},"paths":{"/v3/types/{volume_type_id}/extra_specs/{key}":{"delete":{"tags":["types"],"responses":{"202":{"$ref":"#/components/responses/Accepted"}},"summary":"Delete volume type extra spec","description":"Deletes the specific extra specification assigned to a volume type"}}}}
```

## Add or remove volume type access

> Adds or removes private volume type access to/from a project

```json
{"openapi":"3.0.3","info":{"title":"OpenStack Block Storage API (Cinder)","version":"3.71"},"tags":[{"name":"types","description":"Volume type management"}],"servers":[{"url":"https://{host}/cinder","description":"PCD Block Storage API v3","variables":{"host":{"default":"example.platform9.com","description":"The PCD controlplane hostname"}}}],"security":[{"pcdAuth":[]}],"components":{"securitySchemes":{"pcdAuth":{"name":"X-Auth-Token","type":"apiKey","in":"header","description":"PCD Identity Service token authentication"}},"schemas":{"AddProjectAccessRequest":{"type":"object","properties":{"addProjectAccess":{"required":["project"],"type":"object","properties":{"project":{"description":"The ID of the project","type":"string"}}}}},"RemoveProjectAccessRequest":{"type":"object","properties":{"removeProjectAccess":{"required":["project"],"type":"object","properties":{"project":{"description":"The ID of the project","type":"string"}}}}}},"responses":{"Accepted":{"description":"Request is accepted, but processing may take some time"}}},"paths":{"/v3/types/{volume_type}/action":{"post":{"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/AddProjectAccessRequest"},{"$ref":"#/components/schemas/RemoveProjectAccessRequest"}]}}},"required":true},"tags":["types"],"responses":{"202":{"$ref":"#/components/responses/Accepted"}},"summary":"Add or remove volume type access","description":"Adds or removes private volume type access to/from a project"}}}}
```

## List volume type access

> Lists project IDs that have access to private volume type

```json
{"openapi":"3.0.3","info":{"title":"OpenStack Block Storage API (Cinder)","version":"3.71"},"tags":[{"name":"types","description":"Volume type management"}],"servers":[{"url":"https://{host}/cinder","description":"PCD Block Storage API v3","variables":{"host":{"default":"example.platform9.com","description":"The PCD controlplane hostname"}}}],"security":[{"pcdAuth":[]}],"components":{"securitySchemes":{"pcdAuth":{"name":"X-Auth-Token","type":"apiKey","in":"header","description":"PCD Identity Service token authentication"}},"schemas":{"VolumeTypeAccess":{"type":"object","properties":{"volume_type_access":{"type":"array","items":{"type":"object","properties":{"project_id":{"format":"uuid","description":"The UUID of the project","type":"string"},"volume_type_id":{"format":"uuid","description":"The UUID of the volume type","type":"string"}}}}}}}},"paths":{"/v3/types/{volume_type}/os-volume-type-access":{"get":{"tags":["types"],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VolumeTypeAccess"}}},"description":"OK"}},"summary":"List volume type access","description":"Lists project IDs that have access to private volume type"}}}}
```
