Top
Volume represented by Linux kernel block device or a file on a Linux filesystem
Field
Type
Label
Description
name
string
name is an opaque object handle that is not user settable. name will be returned with created object user can only set {resource}_id on the Create request object
block_size
int64
The size of each block in the AioVolume.
blocks_count
int64
The total number of blocks in the AioVolume.
uuid
string
The UUID (Universally Unique Identifier) of the AioVolume.
filename
string
The filename associated with the AioVolume.
Represents a request to create an Aio Volume.
Field
Type
Label
Description
aio_volume
AioVolume
The Aio Volume to be created.
aio_volume_id
string
An optional ID to assign to the Aio Volume. If this is not provided the system will auto-generate it.
Represents a request to delete an Aio Volume.
Field
Type
Label
Description
name
string
Object's unique identifier to delete
allow_missing
bool
If set to true, and the resource is not found, the request will succeed but no action will be taken on the server
Represents a request to get an Aio Volume.
Field
Type
Label
Description
name
string
Object's unique identifier to retrieve
Represents a request to list all Aio Volumes.
Field
Type
Label
Description
page_size
int32
page size of list request
page_token
string
page token of list request
Represents a response to list all Aio Volumes.
Field
Type
Label
Description
aio_volumes
AioVolume
repeated
List of Aio volumes
next_page_token
string
Next page token of list response
Represents a request to get an Aio Volume statistics.
Field
Type
Label
Description
name
string
Object's unique identifier to retrieve statistics
Represents a response to get an Aio Volume statistics.
Field
Type
Label
Description
stats
VolumeStats
Volume statistics
Represents a request to update an Aio Volume.
Field
Type
Label
Description
aio_volume
AioVolume
The object's name
field is used to identify the object to be updated.
update_mask
google.protobuf.FieldMask
The list of fields to update.
allow_missing
bool
If set to true, and the object is not found, a new object will be created. In this situation, update_mask
is ignored.
Back End (network-facing) APIs. This service is for AIO generic kernel block device.
Top
Top
CreateMallocVolumeRequest
Represents a request to create a Malloc Volume.
Field
Type
Label
Description
malloc_volume
MallocVolume
The Malloc Volume to be created.
malloc_volume_id
string
An optional ID to assign to the Malloc Volume. If this is not provided the system will auto-generate it.
DeleteMallocVolumeRequest
Represents a request to delete a Malloc Volume.
Field
Type
Label
Description
name
string
Object's unique identifier to delete
allow_missing
bool
If set to true, and the resource is not found, the request will succeed but no action will be taken on the server
Represents a request to get a Malloc Volume.
Field
Type
Label
Description
name
string
Object's unique identifier to retrieve
Represents a request to list all Malloc Volumes.
Field
Type
Label
Description
page_size
int32
page size of list request
page_token
string
page token of list request
ListMallocVolumesResponse
Represents a response to list all Malloc Volumes.
Field
Type
Label
Description
malloc_volumes
MallocVolume
repeated
List of Malloc volumes
next_page_token
string
Next page token of list response
Malloc volume, volatile volume
Field
Type
Label
Description
name
string
name is an opaque object handle that is not user settable. name will be returned with created object user can only set {resource}_id on the Create request object
block_size
int64
The block size of the MallocVolume.
blocks_count
int64
The number of blocks in the MallocVolume.
metadata_size
int64
The metadata size of the MallocVolume.
uuid
string
The UUID of the MallocVolume.
Represents a request to get a Malloc Volume statistics.
Field
Type
Label
Description
name
string
Object's unique identifier to retrieve statistics
StatsMallocVolumeResponse
Represents a response to get a Malloc Volume statistics.
Field
Type
Label
Description
stats
VolumeStats
Volume statistics
UpdateMallocVolumeRequest
Represents a request to update a Malloc Volume.
Field
Type
Label
Description
malloc_volume
MallocVolume
The object's name
field is used to identify the object to be updated.
update_mask
google.protobuf.FieldMask
The list of fields to update.
allow_missing
bool
If set to true, and the object is not found, a new object will be created. In this situation, update_mask
is ignored.
Back End Malloc Volume APIs. This is debug interface for malloc block devices.
Top
Represents a request to create an Null Volume.
Field
Type
Label
Description
null_volume
NullVolume
The Null Volume to be created.
null_volume_id
string
An optional ID to assign to the Null Volume. If this is not provided the system will auto-generate it.
Represents a request to delete an Null Volume.
Field
Type
Label
Description
name
string
Object's unique identifier to delete
allow_missing
bool
If set to true, and the resource is not found, the request will succeed but no action will be taken on the server
Represents a request to get an Null Volume.
Field
Type
Label
Description
name
string
Object's unique identifier to retrieve
Represents a request to list all Null Volumes.
Field
Type
Label
Description
page_size
int32
page size of list request
page_token
string
page token of list request
Represents a response to list all Null Volumes.
Field
Type
Label
Description
null_volumes
NullVolume
repeated
List of Null volumes
next_page_token
string
Next page token of list response
Null volume which discards writes and returns random reads
Field
Type
Label
Description
name
string
name is an opaque object handle that is not user settable. name will be returned with created object user can only set {resource}_id on the Create request object
block_size
int64
The block size of the NullVolume. This field is required.
blocks_count
int64
The number of blocks in the NullVolume. This field is required.
uuid
string
The UUID of the NullVolume. This field is optional.
Represents a request to get an Null Volume statistics.
Field
Type
Label
Description
name
string
Object's unique identifier to retrieve statistics
Represents a response to get an Null Volume statistics.
Field
Type
Label
Description
stats
VolumeStats
Volume statistics
Represents a request to update an Null Volume.
Field
Type
Label
Description
null_volume
NullVolume
The object's name
field is used to identify the object to be updated.
update_mask
google.protobuf.FieldMask
The list of fields to update.
allow_missing
bool
If set to true, and the object is not found, a new object will be created. In this situation, update_mask
is ignored.
Back End (network-facing) APIs. This is debug interface for null block devices.
Top
Represents a request to create an Nvme Path.
Field
Type
Label
Description
parent
string
Parent's remote controller unique identifier
nvme_path
NvmePath
The Nvme Path to be created.
nvme_path_id
string
An optional ID to assign to the Nvme Path. If this is not provided the system will auto-generate it.
CreateNvmeRemoteControllerRequest
Represents a request to create an Nvme Remote Controller.
Field
Type
Label
Description
nvme_remote_controller
NvmeRemoteController
The Nvme Remote Controller to be created.
nvme_remote_controller_id
string
An optional ID to assign to the Nvme Remote Controller. If this is not provided the system will auto-generate it.
Represents a request to delete an Nvme Path.
Field
Type
Label
Description
name
string
object's unique identifier
allow_missing
bool
If set to true, and the resource is not found, the request will succeed but no action will be taken on the server
DeleteNvmeRemoteControllerRequest
(-- api-linter: core::0135::force-field=disabled
aip.dev/not-precedent: disabled since cascade deleting is a dangerous
operation and we want to force a user to delete
all child resources(paths) on
its own --)
Represents a request to delete an Nvme Remote Controller.
Field
Type
Label
Description
name
string
Object's unique identifier to delete
allow_missing
bool
If set to true, and the resource is not found, the request will succeed but no action will be taken on the server
Represents Fabrics transport path parameters
Field
Type
Label
Description
trsvcid
int64
Destination service id (e.g. Port)
subnqn
string
Subsystem NQN
adrfam
NvmeAddressFamily
Address family
source_traddr
string
Source address (e.g. IP of local NIC)
source_trsvcid
int64
Source port (e.g. Port of local NIC)
hostnqn
string
Host NQN
Represents a request to get an Nvme Path.
Field
Type
Label
Description
name
string
Object's unique identifier to retrieve
GetNvmeRemoteControllerRequest
Represents a request to get an Nvme Remote Controller.
Field
Type
Label
Description
name
string
Object's unique identifier to retrieve
GetNvmeRemoteNamespaceRequest
Represents a request to get an Nvme Remote Namespace.
Field
Type
Label
Description
name
string
Object's unique identifier to retrieve
Represents a request to list all Nvme Paths.
Field
Type
Label
Description
parent
string
Parent's object unique identifier
page_size
int32
page size of list request
page_token
string
page token of list request
Represents a response to list all Nvme Paths.
Field
Type
Label
Description
nvme_paths
NvmePath
repeated
List of Nvme Paths
next_page_token
string
Next page token of list response
ListNvmeRemoteControllersRequest
Represents a request to list all Nvme Remote Controllers.
Field
Type
Label
Description
page_size
int32
page size of list request
page_token
string
page token of list request
ListNvmeRemoteControllersResponse
Represents a response to list all Nvme Remote Controllers.
Field
Type
Label
Description
nvme_remote_controllers
NvmeRemoteController
repeated
List of Nvme Remote Controllers
next_page_token
string
Next page token of list response
ListNvmeRemoteNamespacesRequest
Represents a request to list all Nvme Remote Namespaces.
Field
Type
Label
Description
parent
string
The controller's unique object identifier. This lists namespaces for a particular controller.
page_size
int32
page size of list request
page_token
string
page token of list request
ListNvmeRemoteNamespacesResponse
Represents a response to list all Nvme Remote Namespaces.
Field
Type
Label
Description
nvme_remote_namespaces
NvmeRemoteNamespace
repeated
List of Remote Namespaces
next_page_token
string
Next page token of list response
Represents a specific path to target controller
Field
Type
Label
Description
name
string
name is an opaque object handle that is not user settable. name will be returned with created object user can only set {resource}_id on the Create request object
trtype
NvmeTransportType
Transport type
traddr
string
Destination address (e.g. IP address, BDF for local PCIe)
fabrics
FabricsPath
Not applicable for local PCIe. Required for Nvme over fabrics transport types
Represents a target controller
Field
Type
Label
Description
name
string
name is an opaque object handle that is not user settable. name will be returned with created object user can only set {resource}_id on the Create request object
multipath
NvmeMultipath
Multipath mode
io_queues_count
int64
IO queues count
queue_size
int64
Queue size
tcp
TcpController
Nvme over TCP specific fields
Represent Nvme namespace created on bridge after connection to a target
Field
Type
Label
Description
name
string
name is an opaque object handle that is not user settable. name will be returned with created object user can only set {resource}_id on the Create request object
nsid
int32
NSID
nguid
string
Globally unique identifier for the namespace
eui64
int64
64bit Extended unique identifier for the namespace mandatory if guid is not specified
uuid
string
Globally unique identifier for the namespace
ResetNvmeRemoteControllerRequest
Represents a request to reset an Nvme Remote Controller.
Field
Type
Label
Description
name
string
Object's unique identifier to reset
Represents a request to get an Nvme Path statistics.
Field
Type
Label
Description
name
string
Object's unique identifier to retrieve statistics
Represents a response to get an Nvme Path statistics.
Field
Type
Label
Description
stats
VolumeStats
Path statistics
StatsNvmeRemoteControllerRequest
Represents a request to get an Nvme Remote Controller statistics.
Field
Type
Label
Description
name
string
Object's unique identifier to retrieve statistics
StatsNvmeRemoteControllerResponse
Represents a response to get an Nvme Remote Controller statistics.
Field
Type
Label
Description
stats
VolumeStats
Controller statistics
Represents parameters specific for TCP target controller
Field
Type
Label
Description
hdgst
bool
Header digest
ddgst
bool
Data digest
psk
bytes
Nvme/TCP published secure channel specification (TP 8011) based on TLS 1.3 and PSK. Use PSK interchange format with base64 encoding as input. Also use information about hash function in interchange format for retained PSK generation. If no hash is selected, use configured PSK as retained PSK. Check the size of interchange PSK to determine cipher suite. Calculate CRC-32 bytes to ensure validity of PSK. Example: "NVMeTLSkey-1:01:VRLbtnN9AQb2WXW3c9+wEf/DRLz0QuLdbYvEhwtdWwNf9LrZ:" if PSK field is empty, then unsecure connection Nvme/TCP without TLS will be made
Represents a request to update an Nvme Path.
Field
Type
Label
Description
nvme_path
NvmePath
The object's name
field is used to identify the object to be updated.
update_mask
google.protobuf.FieldMask
The list of fields to update.
allow_missing
bool
If set to true, and the object is not found, a new object will be created. In this situation, update_mask
is ignored.
UpdateNvmeRemoteControllerRequest
Represents a request to update an Nvme Remote Controller.
Field
Type
Label
Description
nvme_remote_controller
NvmeRemoteController
The object's name
field is used to identify the object to be updated.
update_mask
google.protobuf.FieldMask
The list of fields to update.
allow_missing
bool
If set to true, and the object is not found, a new object will be created. In this situation, update_mask
is ignored.
Multipath mode value options
Name
Number
Description
NVME_MULTIPATH_UNSPECIFIED
0
Multipath mode is not specified
NVME_MULTIPATH_DISABLE
1
Multipathing is disabled
NVME_MULTIPATH_FAILOVER
2
Failover mode where only one active connection is maintained and path is changed only at switch-over
NVME_MULTIPATH_MULTIPATH
3
Multipath mode where active connections are maintained for every path
NvmeRemoteControllerService
Back End APIs. Responsible for connection to external Nvme devices
e.g. connection to Nvme/TCP Nvme/RDMA and local Nvme/Pcie ssds
Top
CreateNvmeControllerRequest
Represents a request to create an Nvme Controller.
Field
Type
Label
Description
parent
string
Parent's subsystem unique identifier
nvme_controller
NvmeController
The Nvme Controller to be created
nvme_controller_id
string
An optional ID to assign to the Nvme Controller. If this is not provided the system will auto-generate it.
CreateNvmeNamespaceRequest
Represents a request to create an Nvme Namespace.
Field
Type
Label
Description
parent
string
Parent's subsystem unique identifier
nvme_namespace
NvmeNamespace
The Nvme Namespace to be created
nvme_namespace_id
string
An optional ID to assign to the Nvme Namespace. If this is not provided the system will auto-generate it.
CreateNvmeSubsystemRequest
Represents a request to create an Nvme Subsystem.
Field
Type
Label
Description
nvme_subsystem
NvmeSubsystem
The Nvme Subsystem to be created.
nvme_subsystem_id
string
An optional ID to assign to the Nvme Subsystem. If this is not provided the system will auto-generate it.
DeleteNvmeControllerRequest
Represents a request to delete an Nvme Controller.
Field
Type
Label
Description
name
string
Object's unique identifier to delete
allow_missing
bool
If set to true, and the resource is not found, the request will succeed but no action will be taken on the server
DeleteNvmeNamespaceRequest
Represents a request to delete an Nvme Namespace.
Field
Type
Label
Description
name
string
Object's unique identifier to delete
allow_missing
bool
If set to true, and the resource is not found, the request will succeed but no action will be taken on the server
DeleteNvmeSubsystemRequest
(-- api-linter: core::0135::force-field=disabled
aip.dev/not-precedent: disabled since cascade deleting is a dangerous
operation and we want to force a user to delete
all child resources(controllers and namespaces) on
its own --)
Represents a request to delete an Nvme Subsystem.
Field
Type
Label
Description
name
string
Object's unique identifier to delete
allow_missing
bool
If set to true, and the resource is not found, the request will succeed but no action will be taken on the server
Represents a request to get an Nvme Controller.
Field
Type
Label
Description
name
string
Object's unique identifier to retrieve
Represents a request to get an Nvme Namespace.
Field
Type
Label
Description
name
string
Object's unique identifier to retrieve
Represents a request to get an Nvme Subsystem.
Field
Type
Label
Description
name
string
Object's unique identifier to retrieve
ListNvmeControllersRequest
Represents a request to list all Nvme Controllers.
Field
Type
Label
Description
parent
string
Parent's subsystem unique identifier
page_size
int32
page size of list request
page_token
string
page token of list request
ListNvmeControllersResponse
Represents a response to list all Nvme Controllers.
Field
Type
Label
Description
nvme_controllers
NvmeController
repeated
List of Nvme controllers
next_page_token
string
Next page token of list response
ListNvmeNamespacesRequest
Represents a request to list all Nvme Namespaces.
Field
Type
Label
Description
parent
string
Parent's subsystem unique identifier
page_size
int32
page size of list request
page_token
string
page token of list request
ListNvmeNamespacesResponse
Represents a response to list all Nvme Namespaces.
Field
Type
Label
Description
nvme_namespaces
NvmeNamespace
repeated
List of Nvme Namespaces
next_page_token
string
Next page token of list response
ListNvmeSubsystemsRequest
Represents a request to list all Nvme Subsystems.
Field
Type
Label
Description
page_size
int32
page size of list request
page_token
string
page token of list request
ListNvmeSubsystemsResponse
Represents a response to list all Nvme Subsystems.
Field
Type
Label
Description
nvme_subsystems
NvmeSubsystem
repeated
List of Nvme Subsystems
next_page_token
string
Next page token of list response
Represents Nvme Controller
Field
Type
Label
Description
name
string
name is an opaque object handle that is not user settable. name will be returned with created object user can only set {resource}_id on the Create request object
spec
NvmeControllerSpec
spec holds configurable values
status
NvmeControllerStatus
status holds server generated values
Represents Nvme Controller configuration
Field
Type
Label
Description
nvme_controller_id
int32
optional
subsystem controller id range: 0 to 65535. must not be reused under the same subsystem
trtype
NvmeTransportType
transport type
pcie_id
PciEndpoint
Required for pcie transport type to expose emulated Pcie Nvme controllers to Host
fabrics_id
FabricsEndpoint
Required for Nvme over fabrics transport types to create Nvme over Fabrics controllers to expose for example local SSDs over a network
max_nsq
int32
maximum number of host submission queues allowed. If not set, the xPU will provide a default.
max_ncq
int32
maximum number of host completion queues allowed. If not set, the xPU will provide a default.
sqes
int32
maximum number of submission queue entries per submission queue, as a power of 2. default value as per spec is 6
cqes
int32
maximum number of completion queue entries per completion queue, as a power of 2. default value as per spec is 4
max_namespaces
int32
maximum Number of namespaces that will be provisioned under the controller.
min_limit
QosLimit
min QoS limits for the controller
max_limit
QosLimit
max QoS limits for the controller
Represents Nvme Controller status
Field
Type
Label
Description
active
bool
Device is in use by host nvme driver
Represents Nvme Namespace
Field
Type
Label
Description
name
string
name is an opaque object handle that is not user settable. name will be returned with created object user can only set {resource}_id on the Create request object
spec
NvmeNamespaceSpec
spec holds configurable values
status
NvmeNamespaceStatus
status holds server generated values
Represents Nvme Namespace configuration
Field
Type
Label
Description
host_nsid
int32
NSID presented by the Nvme controller. If not provided, then the controller will assign an unused NSID within the max namespace range - auto assigned nsid may not work for live migration
nguid
string
Globally unique identifier for the namespace
eui64
int64
64bit Extended unique identifier for the namespace mandatory if guid is not specified
uuid
string
Globally unique identifier for the namespace
volume_name_ref
string
The back/middle-end volume to back this namespace.
Represents Nvme Namespace status
Represents Nvme Subsystem
Field
Type
Label
Description
name
string
name is an opaque object handle that is not user settable. name will be returned with created object user can only set {resource}_id on the Create request object
spec
NvmeSubsystemSpec
spec holds configurable values
status
NvmeSubsystemStatus
status holds server generated values
Represents Nvme Subsystem configuration
Field
Type
Label
Description
nqn
string
Nvme subsystem NQN to which the controller belongs Refer to the NQN format in the Nvme base specifications, must not exceed 'NSV_NVME_SUBSYSTEM_NQN_LEN' bytes
serial_number
string
serial number must not exceed 'NSV_CTRLR_SERIAL_NO_LEN' bytes
model_number
string
model number, must not exceed 'NSV_CTRLR_MODEL_NO_LEN' bytes
max_namespaces
int64
maximum namespaces within a subsystem
hostnqn
string
host NQN
psk
bytes
psk key for TCP transport
Represents Nvme Subsystem status
Field
Type
Label
Description
firmware_revision
string
firmware revision, must not exceed 'NSV_CTRLR_FW_REV_LEN'
fru_guid
bytes
FRU identfier, 16bytes opaque identity for the type of unit
StatsNvmeControllerRequest
Represents a request to get an Nvme Controller statistics.
Field
Type
Label
Description
name
string
Object's unique identifier to retrieve statistics
StatsNvmeControllerResponse
Represents a response to get an Nvme Controller statistics.
Field
Type
Label
Description
stats
VolumeStats
Controller statistics
StatsNvmeNamespaceRequest
Represents a request to get an Nvme Namespace statistics.
Field
Type
Label
Description
name
string
Object's unique identifier to retrieve statistics
StatsNvmeNamespaceResponse
Represents a response to get an Nvme Namespace statistics.
Field
Type
Label
Description
stats
VolumeStats
Namespace statistics
StatsNvmeSubsystemRequest
Represents a request to get an Nvme Subsystems statistics.
Field
Type
Label
Description
name
string
Object's unique identifier to retrieve statistics
StatsNvmeSubsystemResponse
Represents a response to get an Nvme Subsystems statistics.
Field
Type
Label
Description
stats
VolumeStats
Subsystem statistics
UpdateNvmeControllerRequest
Represents a request to update an Nvme Controller.
Field
Type
Label
Description
nvme_controller
NvmeController
The object's name
field is used to identify the object to be updated.
update_mask
google.protobuf.FieldMask
The list of fields to update.
allow_missing
bool
If set to true, and the object is not found, a new object will be created. In this situation, update_mask
is ignored.
UpdateNvmeNamespaceRequest
Represents a request to update an Nvme Namespace.
Field
Type
Label
Description
nvme_namespace
NvmeNamespace
The object's name
field is used to identify the object to be updated.
update_mask
google.protobuf.FieldMask
The list of fields to update.
allow_missing
bool
If set to true, and the object is not found, a new object will be created. In this situation, update_mask
is ignored.
UpdateNvmeSubsystemRequest
Represents a request to update an Nvme Subsystem.
Field
Type
Label
Description
nvme_subsystem
NvmeSubsystem
The object's name
field is used to identify the object to be updated.
update_mask
google.protobuf.FieldMask
The list of fields to update.
allow_missing
bool
If set to true, and the object is not found, a new object will be created. In this situation, update_mask
is ignored.
NvmeNamespaceStatus.OperState
Namespace operational states
Name
Number
Description
OPER_STATE_UNSPECIFIED
0
unspecified
OPER_STATE_ONLINE
1
namespace is online and operational
OPER_STATE_OFFLINE
2
namespace is offline
NvmeNamespaceStatus.State
Namespace Administrative States
Name
Number
Description
STATE_UNSPECIFIED
0
unspecified
STATE_DISABLED
1
namespace disabled state
STATE_ENABLED
2
namespace enabled state
STATE_DELETING
3
namespace being deleted
Front End APIs. Used for creation of xPU managed Nvme devices
e.g. emulated host-facing Nvme/Pcie controllers as well as
Nvme-oF controllers
Top
frontend_virtio_blk.proto
Represents a request to create an Virtio Blk.
Field
Type
Label
Description
virtio_blk
VirtioBlk
The Virtio Blk to be created.
virtio_blk_id
string
An optional ID to assign to the Virtio Blk. If this is not provided the system will auto-generate it.
Represents a request to delete an Virtio Blk.
Field
Type
Label
Description
name
string
Object's unique identifier to delete
allow_missing
bool
If set to true, and the resource is not found, the request will succeed but no action will be taken on the server
Represents a request to get an Virtio Blk.
Field
Type
Label
Description
name
string
Object's unique identifier to retrieve
Represents a request to list all Virtio Blks.
Field
Type
Label
Description
page_size
int32
page size of list request
page_token
string
page token of list request
Represents a response to list all Virtio Blks.
Field
Type
Label
Description
virtio_blks
VirtioBlk
repeated
List of Virtio-Blk devices
next_page_token
string
Next page token of list response
Represents a request to get an Virtio Blk statistics.
Field
Type
Label
Description
name
string
Object's unique identifier to retrieve statistics
Represents a response to get an Virtio Blk statistics.
Field
Type
Label
Description
stats
VolumeStats
Device statistics
Represents a request to update an Virtio Blk.
Field
Type
Label
Description
virtio_blk
VirtioBlk
The object's name
field is used to identify the object to be updated.
update_mask
google.protobuf.FieldMask
The list of fields to update.
allow_missing
bool
If set to true, and the object is not found, a new object will be created. In this situation, update_mask
is ignored.
Represnts emulated Virtio-blk device
Field
Type
Label
Description
name
string
name is an opaque object handle that is not user settable. name will be returned with created object user can only set {resource}_id on the Create request object
pcie_id
PciEndpoint
The PCI endpoint where this device should appear
volume_name_ref
string
The back/middle-end volume to back this controller
max_io_qps
int64
Max IO queue pairs
min_limit
QosLimit
min QoS limits for the virtio-blk device
max_limit
QosLimit
max QoS limits for the virtio-blk device
Front End (host-facing) APIs. Mostly used for Virtio-blk emulation emulation and host presentation as alternative to Nvme.
Top
Top
frontend_virtio_scsi.proto
CreateVirtioScsiControllerRequest
Represents a request to create an Virtio Scsi Controller.
Field
Type
Label
Description
virtio_scsi_controller
VirtioScsiController
The Virtio Scsi Controller to be created.
virtio_scsi_controller_id
string
An optional ID to assign to the Virtio Scsi Controller. If this is not provided the system will auto-generate it.
CreateVirtioScsiLunRequest
Represents a request to create an Virtio Scsi Lun.
Field
Type
Label
Description
virtio_scsi_lun
VirtioScsiLun
The Virtio Scsi Lun to be created.
virtio_scsi_lun_id
string
An optional ID to assign to the Virtio Scsi Lun. If this is not provided the system will auto-generate it.
CreateVirtioScsiTargetRequest
Represents a request to create an Virtio Scsi Target.
Field
Type
Label
Description
virtio_scsi_target
VirtioScsiTarget
The Virtio Scsi Target to be created.
virtio_scsi_target_id
string
An optional ID to assign to the Virtio Scsi Target. If this is not provided the system will auto-generate it.
DeleteVirtioScsiControllerRequest
Represents a request to delete an Virtio Scsi Controller.
Field
Type
Label
Description
name
string
Object's unique identifier to delete
allow_missing
bool
If set to true, and the resource is not found, the request will succeed but no action will be taken on the server
DeleteVirtioScsiLunRequest
Represents a request to delete an Virtio Scsi Lun.
Field
Type
Label
Description
name
string
Object's unique identifier to delete
allow_missing
bool
If set to true, and the resource is not found, the request will succeed but no action will be taken on the server
DeleteVirtioScsiTargetRequest
Represents a request to delete an Virtio Scsi Target.
Field
Type
Label
Description
name
string
Object's unique identifier to delete
allow_missing
bool
If set to true, and the resource is not found, the request will succeed but no action will be taken on the server
GetVirtioScsiControllerRequest
Represents a request to get an Virtio Scsi Controller.
Field
Type
Label
Description
name
string
Object's unique identifier to retrieve
Represents a request to get an Virtio Scsi Lun.
Field
Type
Label
Description
name
string
Object's unique identifier to retrieve
GetVirtioScsiTargetRequest
Represents a request to get an Virtio Scsi Target.
Field
Type
Label
Description
name
string
Object's unique identifier to retrieve
ListVirtioScsiControllersRequest
Represents a request to list all Virtio Scsi Controllers.
Field
Type
Label
Description
parent
string
Parent's object unique identifier
page_size
int32
page size of list request
page_token
string
page token of list request
ListVirtioScsiControllersResponse
Represents a response to list all Virtio Scsi Controllers.
Field
Type
Label
Description
virtio_scsi_controllers
VirtioScsiController
repeated
List of Scsi Controllers
next_page_token
string
Next page token of list response
ListVirtioScsiLunsRequest
Represents a request to list all Virtio Scsi Luns.
Field
Type
Label
Description
parent
string
Parent's object unique identifier
page_size
int32
page size of list request
page_token
string
page token of list request
ListVirtioScsiLunsResponse
Represents a response to list all Virtio Scsi Luns.
Field
Type
Label
Description
virtio_scsi_luns
VirtioScsiLun
repeated
List of Scsi Luns
next_page_token
string
Next page token of list response
ListVirtioScsiTargetsRequest
Represents a request to list all Virtio Scsi Targets.
Field
Type
Label
Description
parent
string
Parent's object unique identifier
page_size
int32
page size of list request
page_token
string
page token of list request
ListVirtioScsiTargetsResponse
Represents a response to list all Virtio Scsi Targets.
Field
Type
Label
Description
virtio_scsi_targets
VirtioScsiTarget
repeated
List of Scsi Targets
next_page_token
string
Next page token of list response
StatsVirtioScsiControllerRequest
Represents a request to get an Virtio Scsi Controller statistics.
Field
Type
Label
Description
name
string
Object's unique identifier to retrieve statistics
StatsVirtioScsiControllerResponse
Represents a response to get an Virtio Scsi Controller statistics.
Field
Type
Label
Description
stats
VolumeStats
Scsi Controller statistics
StatsVirtioScsiLunRequest
Represents a request to get an Virtio Scsi Lun statistics.
Field
Type
Label
Description
name
string
Object's unique identifier to retrieve statistics
controller_name_ref
string
Controller's uniqie identifier
StatsVirtioScsiLunResponse
Represents a response to get an Virtio Scsi Lun statistics.
Field
Type
Label
Description
stats
VolumeStats
Scsi Lun statistics
StatsVirtioScsiTargetRequest
Represents a request to get an Virtio Scsi Target statistics.
Field
Type
Label
Description
name
string
Object's unique identifier to retrieve statistics
StatsVirtioScsiTargetResponse
Represents a response to get an Virtio Scsi Target statistics.
Field
Type
Label
Description
stats
VolumeStats
Scsi Target statistics
UpdateVirtioScsiControllerRequest
Represents a request to update an Virtio Scsi Controller.
Field
Type
Label
Description
virtio_scsi_controller
VirtioScsiController
The object's name
field is used to identify the object to be updated.
update_mask
google.protobuf.FieldMask
The list of fields to update.
allow_missing
bool
If set to true, and the object is not found, a new object will be created. In this situation, update_mask
is ignored.
UpdateVirtioScsiLunRequest
Represents a request to update an Virtio Scsi Lun.
Field
Type
Label
Description
virtio_scsi_lun
VirtioScsiLun
The object's name
field is used to identify the object to be updated.
update_mask
google.protobuf.FieldMask
The list of fields to update.
allow_missing
bool
If set to true, and the object is not found, a new object will be created. In this situation, update_mask
is ignored.
UpdateVirtioScsiTargetRequest
Represents a request to update an Virtio Scsi Target.
Field
Type
Label
Description
virtio_scsi_target
VirtioScsiTarget
The object's name
field is used to identify the object to be updated.
update_mask
google.protobuf.FieldMask
The list of fields to update.
allow_missing
bool
If set to true, and the object is not found, a new object will be created. In this situation, update_mask
is ignored.
Represents Scsi Controller
Field
Type
Label
Description
name
string
name is an opaque object handle that is not user settable. name will be returned with created object user can only set {resource}_id on the Create request object
pcie_id
PciEndpoint
xPU's PCI ID for the controller
min_limit
QosLimit
min QoS limits for the controller
max_limit
QosLimit
max QoS limits for the controller
Represents Scsi Lun
Field
Type
Label
Description
name
string
name is an opaque object handle that is not user settable. name will be returned with created object user can only set {resource}_id on the Create request object
target_name_ref
string
The target that this LUN is in
volume_name_ref
string
The middle/back-end volume for this LLUN
Represents Scsi Target
Field
Type
Label
Description
name
string
name is an opaque object handle that is not user settable. name will be returned with created object user can only set {resource}_id on the Create request object
max_luns
int32
maximum LUNs within a target
FrontendVirtioScsiService
Front End (host-facing) APIs. Mostly used for Virtio-scsi emulation and host presentation as alternative to Virtio-blk.
Top
middleend_encryption.proto
CreateEncryptedVolumeRequest
Represents a request to create an Encrypted Volume.
Field
Type
Label
Description
encrypted_volume
EncryptedVolume
The Encrypted Volume to be created.
encrypted_volume_id
string
An optional ID to assign to the Encrypted Volume. If this is not provided the system will auto-generate it.
DeleteEncryptedVolumeRequest
Represents a request to delete an Encrypted Volume.
Field
Type
Label
Description
name
string
Object's unique identifier to delete
allow_missing
bool
If set to true, and the resource is not found, the request will succeed but no action will be taken on the server
Represents volume encrypting IOs
Field
Type
Label
Description
name
string
name is an opaque object handle that is not user settable. name will be returned with created object user can only set {resource}_id on the Create request object
volume_name_ref
string
The back/middle-end volume to back this volume
key
bytes
Key to be used for encryption
cipher
EncryptionType
Cipher to use
GetEncryptedVolumeRequest
Represents a request to get an Encrypted Volume.
Field
Type
Label
Description
name
string
Object's unique identifier to retrieve
ListEncryptedVolumesRequest
Represents a request to list all Encrypted Volumes.
Field
Type
Label
Description
parent
string
Parent's object unique identifier
page_size
int32
page size of list request
page_token
string
page token of list request
ListEncryptedVolumesResponse
Represents a response to list all Encrypted Volumes.
Field
Type
Label
Description
encrypted_volumes
EncryptedVolume
repeated
List of Encrypted Volumes
next_page_token
string
Next page token of list response
StatsEncryptedVolumeRequest
Represents a request to get an Encrypted Volume statistics.
Field
Type
Label
Description
name
string
Object's unique identifier to retrieve statistics
StatsEncryptedVolumeResponse
Represents a response to get an Encrypted Volume statistics.
Field
Type
Label
Description
stats
VolumeStats
Volume statistics
UpdateEncryptedVolumeRequest
Represents a request to update an Encrypted Volume.
Field
Type
Label
Description
encrypted_volume
EncryptedVolume
The object's name
field is used to identify the object to be updated.
update_mask
google.protobuf.FieldMask
The list of fields to update.
allow_missing
bool
If set to true, and the object is not found, a new object will be created. In this situation, update_mask
is ignored.
MiddleendEncryptionService
Middle End (Storage Services) APIs. For example, encryption, compression, raid, QoS, multipath, ...
Top
middleend_qos_volume.proto
Represents a request to create an QoS Volume.
Field
Type
Label
Description
qos_volume
QosVolume
The QoS Volume to be created.
qos_volume_id
string
An optional ID to assign to the QoS Volume. If this is not provided the system will auto-generate it.
Represents a request to delete an QoS Volume.
Field
Type
Label
Description
name
string
Object's unique identifier to delete
allow_missing
bool
If set to true, and the resource is not found, the request will succeed but no action will be taken on the server
Represents a request to get an QoS Volume.
Field
Type
Label
Description
name
string
Object's unique identifier to retrieve
Represents limits for Qos Volume
Field
Type
Label
Description
min
QosLimit
Min QoS limits for the volume
max
QosLimit
Max QoS limits for the volume
Represents a request to list all QoS Volumes.
Field
Type
Label
Description
parent
string
Parent's object unique identifier
page_size
int32
page size of list request
page_token
string
page token of list request
Represents a response to list all QoS Volumes.
Field
Type
Label
Description
qos_volumes
QosVolume
repeated
List of Qos Volumes
next_page_token
string
Next page token of list response
Represents volume providing quality of service capabilities
Field
Type
Label
Description
name
string
name is an opaque object handle that is not user settable. name will be returned with created object user can only set {resource}_id on the Create request object
volume_name_ref
string
Middleend/backend volume to apply QoS on
limits
Limits
At least one limit value should be set, oitherwise volume does not make sense. AIP-203 says that a field should be described as REQUIRED if it is a field on a resource that a user provides somewhere as input. In this case, the resource is only valid if a "truthy" value is stored. "truthy" is defined as: * For primitives, values other than 0, 0.0, empty string/bytes, and false * For repeated fields maps, values with at least one entry * For messages, any message with at least one "truthy" field. We cannot mark both min and max QosLimit as REQUIRED directly here, since it forces one limit field is set on both. Limits message is added to overcome it. REQUIRED on limits forces at least one limit field in either min/max sub message is set.
Represents a request to get an QoS Volume statistics.
Field
Type
Label
Description
name
string
Object's unique identifier to retrieve statistics
Represents a response to get an QoS Volume statistics.
Field
Type
Label
Description
stats
VolumeStats
Volume statistics
Represents a request to update an QoS Volume.
Field
Type
Label
Description
qos_volume
QosVolume
The object's name
field is used to identify the object to be updated.
update_mask
google.protobuf.FieldMask
The list of fields to update.
allow_missing
bool
If set to true, and the object is not found, a new object will be created. In this situation, update_mask
is ignored.
MiddleendQosVolumeService
Middle End (Storage Services) APIs. For example, encryption, compression, raid, QoS, multipath, ...
Top
Represents Fabrics Endpoint
Field
Type
Label
Description
traddr
string
ip address for TCP and RDMA
trsvcid
string
port for TCP and RDMA
adrfam
NvmeAddressFamily
address family
Many front-ends expose PCI devices to the host. This represents that endpoint.
This device will ultimately be surfaced by the operating system at some
Bus:Device:Function, but note that the values set here are not necessarily
the same values that the operating system will choose. Instead, these are
xPU-internal values.
While the term "device" is often used for the entity attached to a PCI slot,
we'll use the term "port" which also commonly used with PCI switches and avoids
confusion with storage "devices".
Field
Type
Label
Description
port_id
google.protobuf.Int32Value
The "port" or "device". In other words, the connector/cable that's plugged into a particular host. This number may end up matching the host-assigned "device" value in the bus:device:function identifier, but it does not strictly have to and that should not be relied upon.
physical_function
google.protobuf.Int32Value
Physical function index. This may end up matching the host-assigned "function" value in the bus:device:function identifier, but it does not strictly have to and that should not be relied upon.
virtual_function
google.protobuf.Int32Value
Virtual function index. 1-based index. The value 0 is reserved to represent the PCI physical "device". This may end up matching the host-assigned "function" value in the bus:device:function identifier, but it does not strictly have to and that should not be relied upon.
QoS limits applied to volumes/devices
Field
Type
Label
Description
rd_iops_kiops
int64
Read kIOPS
wr_iops_kiops
int64
Write kIOPS
rw_iops_kiops
int64
Read/write kIOPS
rd_bandwidth_mbs
int64
Read bandwidth (MB/s)
wr_bandwidth_mbs
int64
Write bandwidth (MB/s)
rw_bandwidth_mbs
int64
Read/write bandwidth (MB/s)
Represents Volume statistics
Field
Type
Label
Description
read_bytes_count
int32
Count of read bytes
read_ops_count
int32
Count of read operations
write_bytes_count
int32
Count of written bytes
write_ops_count
int32
Count of write opeations
unmap_bytes_count
int32
Count of unmapped bytes
unmap_ops_count
int32
Count of unmap operations
read_latency_ticks
int32
Read latency ticks
write_latency_ticks
int32
Write latency ticks
unmap_latency_ticks
int32
Unmap latency ticks
AES encryption types
Name
Number
Description
ENCRYPTION_TYPE_UNSPECIFIED
0
Encryption type is not specified
ENCRYPTION_TYPE_AES_CBC_128
1
AES CBC 128 encryption type
ENCRYPTION_TYPE_AES_CBC_192
2
AES CBC 192 encryption type
ENCRYPTION_TYPE_AES_CBC_256
3
AES CBC 256 encryption type
ENCRYPTION_TYPE_AES_XTS_128
4
AES XTS 128 encryption type
ENCRYPTION_TYPE_AES_XTS_192
5
AES XTS 192 encryption type
ENCRYPTION_TYPE_AES_XTS_256
6
AES XTS 256 encryption type
Address family value options
Name
Number
Description
NVME_ADDRESS_FAMILY_UNSPECIFIED
0
Address family is not specified
NVME_ADDRESS_FAMILY_IPV4
1
IPv4 address family
NVME_ADDRESS_FAMILY_IPV6
2
IPv6 address family
NVME_ADDRESS_FAMILY_IB
3
InfiniBand address family
NVME_ADDRESS_FAMILY_FC
4
Fibre channel address family
NVME_ADDRESS_FAMILY_INTRA_HOST
5
Intra host address family
Transport type value options
Name
Number
Description
NVME_TRANSPORT_TYPE_UNSPECIFIED
0
Transport type is not specified
NVME_TRANSPORT_TYPE_FC
1
Fibre channel transport type
NVME_TRANSPORT_TYPE_PCIE
2
Pcie transport type
NVME_TRANSPORT_TYPE_RDMA
3
RDMA transport type
NVME_TRANSPORT_TYPE_TCP
4
TCP transport type
NVME_TRANSPORT_TYPE_CUSTOM
5
Custom transport type
.proto Type
Notes
C++
Java
Python
Go
C#
PHP
Ruby
double
double
double
float
float64
double
float
Float
float
float
float
float
float32
float
float
Float
int32
Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead.
int32
int
int
int32
int
integer
Bignum or Fixnum (as required)
int64
Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead.
int64
long
int/long
int64
long
integer/string
Bignum
uint32
Uses variable-length encoding.
uint32
int
int/long
uint32
uint
integer
Bignum or Fixnum (as required)
uint64
Uses variable-length encoding.
uint64
long
int/long
uint64
ulong
integer/string
Bignum or Fixnum (as required)
sint32
Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s.
int32
int
int
int32
int
integer
Bignum or Fixnum (as required)
sint64
Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s.
int64
long
int/long
int64
long
integer/string
Bignum
fixed32
Always four bytes. More efficient than uint32 if values are often greater than 2^28.
uint32
int
int
uint32
uint
integer
Bignum or Fixnum (as required)
fixed64
Always eight bytes. More efficient than uint64 if values are often greater than 2^56.
uint64
long
int/long
uint64
ulong
integer/string
Bignum
sfixed32
Always four bytes.
int32
int
int
int32
int
integer
Bignum or Fixnum (as required)
sfixed64
Always eight bytes.
int64
long
int/long
int64
long
integer/string
Bignum
bool
bool
boolean
boolean
bool
bool
boolean
TrueClass/FalseClass
string
A string must always contain UTF-8 encoded or 7-bit ASCII text.
string
String
str/unicode
string
string
string
String (UTF-8)
bytes
May contain any arbitrary sequence of bytes.
string
ByteString
str
[]byte
ByteString
string
String (ASCII-8BIT)