| Method Name | Request / Response Type | Description |
|---|---|---|
| Get | GetRequest
GetResponse |
Get reads and streams the contents of a file from the target. |
| TransferToRemote | TransferToRemoteRequest
TransferToRemoteResponse |
TransferToRemote transfers the contents of a file from the target to a |
| Put | PutRequest
stream PutResponse stream |
Put streams data into a file on the target. The file is sent in |
| Stat | StatRequest
StatResponse |
Stat returns metadata about a file on the target. An error is returned |
| Remove | RemoveRequest
RemoveResponse |
Remove removes the specified file from the target. An error is |
A GetRequest specifies the remote_file to be streamed back
to the caller. The remote_file must be an absolute path to an
existing file.
| Field | Type | Description |
|---|---|---|
| remote_file | string |
|
A GetResponse either contains the next set of bytes read from the
file or, as the last message, the hash of the data.
| Field | Type | Description |
|---|---|---|
| response (one of) | ||
| contents | bytes |
|
| hash | gnoi.types.HashType | hash of the file. |
A PutRequest is used to send data to be written on a file on the target.
The initial message contains an Open message. The Open message contains
information name of the file and the file's permisssions.
The remote_file must be an absolute path. If remote_file already exists on
the target, it is overwritten, otherwise it is created. If the path to
remote_file doesn't exist it will be created.
The contents to be written are streamed through multiple messages using the
contents field. Each message may contain up to 64KB of data.
The final message of the RPC contains the hash of the file contents.
| Field | Type | Description |
|---|---|---|
| request (one of) | ||
| open | PutRequest.Details |
|
| contents | bytes |
|
| hash | gnoi.types.HashType | hash of the file. |
| Field | Type | Description |
|---|---|---|
| remote_file | string |
|
| permissions | uint32 |
Permissions are represented as the octal format of standard UNIX |
A RemoveRequest specifies a file to be removed from the target.
| Field | Type | Description |
|---|---|---|
| remote_file | string |
|
StatInfo provides a file system information about a particular path.
| Field | Type | Description |
|---|---|---|
| path | string |
|
| last_modified | uint64 | Nanoseconds since epoch. |
| permissions | uint32 |
Permissions are represented as the octal format of standard UNIX |
| size | uint64 |
|
| umask | uint32 |
Default file creation mask. Represented as the octal format of |
StatRequest will list files at the provided path.
| Field | Type | Description |
|---|---|---|
| path | string |
|
StatResponse contains list of stat info of the provided path.
| Field | Type | Description |
|---|---|---|
| stats (repeated) | StatInfo |
|
A TransferToRemoteRequest specifies the local path to transfer to and the
details on where to transfer the data from. The local_path must be an
absolute path to the file.
| Field | Type | Description |
|---|---|---|
| local_path | string |
|
| remote_download | gnoi.common.RemoteDownload | Details to download the remote_file being requested to a remote location. |
A TransferToRemoteResponse contains the hash of the data transferred.
| Field | Type | Description |
|---|---|---|
| hash | gnoi.types.HashType | hash of the file. |
RemoteDownload defines the details for a device to initiate a file transfer
from or to a remote location.
| Field | Type | Description |
|---|---|---|
| path | string |
The path information containing where to download the data from or to. |
| protocol | RemoteDownload.Protocol |
|
| credentials | gnoi.types.Credentials |
|
| source_address | string |
Optional source address used to initiate connections from the device. |
Credentials defines credentials needed to perform authentication on a device.
HashType defines the valid hash methods for data verification. UNSPECIFIED
should be treated an error.
| Field | Type | Description |
|---|---|---|
| method | HashType.HashMethod |
|
| hash | bytes |
|
Path encodes a data tree path as a series of repeated strings, with
each element of the path representing a data tree node name and the
associated attributes.
Reference: gNMI Specification Section 2.2.2.
| Field | Type | Description |
|---|---|---|
| origin | string | Label to disambiguate path. |
| elem (repeated) | PathElem | Elements of the path. |
PathElem encodes an element of a gNMI path, along with any attributes (keys)
that may be associated with it.
Reference: gNMI Specification Section 2.2.2.
| Field | Type | Description |
|---|---|---|
| name | string | The name of the element in the path. |
| key (repeated) | PathElem.KeyEntry | Map of key (attribute) name to value. |
| Name | Number | Description |
|---|---|---|
| UNSPECIFIED | 0 | |
| SHA256 | 1 | |
| SHA512 | 2 | |
| MD5 | 3 |
Generic Layer 3 Protocol enumeration.
| Name | Number | Description |
|---|---|---|
| UNSPECIFIED | 0 | |
| IPV4 | 1 | |
| IPV6 | 2 |
The gNOI service semantic version.
| Extension | Type | Base | Number | Description |
|---|---|---|---|---|
| gnoi_version | string | .google.protobuf.FileOptions | 1002 | The gNOI service semantic version. |
| 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) |
Created by Siva Sivakumar / Roman Dodin / srl-labs