Get desktop application:
View/edit binary Protocol Buffers messages
Storage Provider API The Storage Provider API is meant to manipulate storage resources in the underlying storage system behind the service. The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119. The following are global requirements that apply to all methods: Any method MUST return CODE_OK on a succesful operation. Any method MAY return NOT_IMPLEMENTED. Any method MAY return INTERNAL. Any method MAY return UNKNOWN. Any method MAY return UNAUTHENTICATED.
Adds a new grant for the provided reference. MUST return CODE_NOT_FOUND if the reference does not exist
OPTIONAL. Opaque information.
REQUIRED. The reference to which the action should be performed.
REQUIRED. The grant to be added.
OPTIONAL. A lock_id: should the reference be locked, the stored lock_id SHOULD be equal to the given value. However, storage implementations MAY allow for setting grants even if the lock does not match.
REQUIRED. The response status.
OPTIONAL. Opaque information.
Creates a new resource of type container. MUST return CODE_FAILED_PRECONDITION if the container cannot be created at the specified reference.
Creates the home directory for a user.
Creates a reference to another resource in the same cluster or another domain (OCM shares). The references resource can be accessed by the protocol specificied in the request message.
OPTIONAL. Opaque information.
REQUIRED. The location where to store the reference.
REQUIRED. The reference resource by RFC3986.
REQUIRED. The response status.
OPTIONAL. Opaque information.
Creates a symlink to another resource.
Deletes a resource. If a resource specifies the non-empty container (directory, ...), then the entire directory is deleted recursively. If a resource specifies a reference or symlink type, only the reference is removed (not the target). MUST return CODE_NOT_FOUND if the reference does not exist.
Denies access to the provided reference. MUST return CODE_NOT_FOUND if the reference does not exist
OPTIONAL. Opaque information.
REQUIRED. The reference to which the action should be performed.
REQUIRED. The grantee to remove permission.
OPTIONAL. A lock_id: should the reference be locked, the stored lock_id SHOULD be equal to the given value. However, storage implementations MAY allow for setting grants even if the lock does not match.
REQUIRED. The response status.
OPTIONAL. Opaque information.
Gets the home path for the user.
Gets the lock metadata of a storage resource. MUST return CODE_NOT_FOUND if the reference does not exist or is not locked. The caller MUST have read permissions on the resource.
Returns the path reference for the provided resource id reference. MUST return CODE_NOT_FOUND if the reference does not exist
Returns the quota available under the provided reference. MUST return CODE_NOT_FOUND if the reference does not exist MUST return CODE_RESOURCE_EXHAUSTED on exceeded quota limits.
OPTIONAL. Opaque information.
OPTIONAL. Limit the quota Response to the given reference
Initiates the download of a file using an out-of-band data transfer mechanism.
REQUIRED. The response status.
OPTIONAL. Opaque information.
REQUIRED. The protocols through which data can be downloaded.
Initiates the upload of a file using an out-of-band data transfer mechanism. SHOULD return CODE_FAILED_PRECONDITION if the reference is already locked with a mismatched lock. Additionally, the lock check MUST be enforced by the data transfer protocol returned in response.
REQUIRED. The response status.
OPTIONAL. Opaque information.
REQUIRED. The protocols through which data can be uploaded.
Returns a list of resource information for the provided reference. MUST return CODE_NOT_FOUND if the reference does not exists.
Returns a stream of resource informations for the provided reference. MUST return CODE_NOT_FOUND if the reference does not exists.
Returns a list of the versions for a resource of type file at the provided reference. MUST return CODE_NOT_FOUND if the reference does not exist. MUST return CODE_OK and MUST return an empty list if no versions are available. TODO: What code if resource not of type file?
Returns the list of grants for the provided reference. MUST return CODE_NOT_FOUND if the reference does not exists.
OPTIONAL. Opaque information.
REQUIRED. The reference to which the action should be performed.
OPTIONAL. Clients use this field to specify the maximum number of results to be returned by the server. The server may further constrain the maximum number of results returned in a single page. If the page_size is 0, the server will decide the number of results to be returned. see https://cloud.google.com/apis/design/design_patterns#list_pagination
OPTIONAL. The client uses this field to request a specific page of the list results.
REQUIRED. The response status.
OPTIONAL. Opaque information.
REQUIRED. The grants.
OPTIONAL. This field represents the pagination token to retrieve the next page of results. If the value is "", it means no further results for the request. see https://cloud.google.com/apis/design/design_patterns#list_pagination
Returns a list of recycle items for this storage provider. MUST return CODE_OK and MUST return an empty list if no recycle items are available.
Returns a stream of recycle items for this storage provider.
Moves a resource from one reference to another. MUST return CODE_NOT_FOUND if any of the references do not exist. MUST return CODE_FAILED_PRECONDITION if the source reference cannot be moved to the destination reference.
Permanently removes a recycle item from the recycle. This operation is irrevocable. MUST return CODE_NOT_FOUND if the recycle item id does not exist.
Refreshes the lock metadata of a storage resource. MUST return CODE_NOT_FOUND if the reference does not exist. MUST return CODE_PRECONDITION_FALIED if the reference is not locked or if the caller does not hold the lock. The caller MUST have write permissions on the resource.
Removes a grant for the provided reference. This is recursive and atomic for directories. Does not follow references. MUST return CODE_NOT_FOUND if the reference does not exist. MUST return CODE_NOT_FOUND if grant does not exist.
OPTIONAL. Opaque information.
REQUIRED. The reference to which the action should be performed.
REQUIRED. The grant to remove.
OPTIONAL. A lock_id: should the reference be locked, the stored lock_id SHOULD be equal to the given value. However, storage implementations MAY allow for unsetting grants even if the lock does not match.
REQUIRED. The response status.
OPTIONAL. Opaque information.
Restores a file version for the provided reference. MUST return CODE_NOT_FOUND if the reference does not exist. MUST return CODE_NOT_FOUND if the version does not exist.
Restores a recycle item from the recycle. MUST return CODE_NOT_FOUND if the recycle item id does not exist. MUST return CODE_FAILED_PRECONDITION if the restore_path is non-empty and the recycle item cannot be restored to the restore_path.
Sets arbitrary metadata into a storage resource. Arbitrary metadata is returned in a cs3.storageprovider.v1beta1.ResourceInfo.
Sets the immutable (frozen) attribute on a resource. MUST return CODE_NOT_FOUND if the reference does not exist. The caller MUST have management permissions on the resource (space owner, space manager, or administrator).
Locks a storage resource. Note that if the resource is a container, MAY return CODE_NOT_IMPLEMENTED as the behavior is yet to be defined at this stage. MUST return CODE_NOT_FOUND if the reference does not exist. MUST return CODE_FAILED_PRECONDITION if the reference is already locked. In addition, the implementation MUST ensure atomicity when multiple users concurrently attempt to set a lock. The caller MUST have write permissions on the resource.
Returns the resource information at the provided reference. MUST return CODE_NOT_FOUND if the reference does not exist.
Creates a new resource of type file. MUST return CODE_FAILED_PRECONDITION if the file cannot be created at the specified reference.
Unlocks a storage resource. MUST return CODE_NOT_FOUND if the reference does not exist. MUST return CODE_FAILED_PRECONDITION if the reference is not locked or if the caller does not hold the lock. The caller MUST have write permissions on the resource.
Unsets arbitrary metdata into a storage resource. Arbitrary metadata is returned in a cs3.storageprovider.v1beta1.ResourceInfo.
Removes the immutable (frozen) attribute from a resource. MUST return CODE_NOT_FOUND if the reference does not exist. MUST return CODE_FAILED_PRECONDITION if the resource is not immutable. The caller MUST have management permissions on the resource.
Updates an ACL for the provided reference. MUST return CODE_NOT_FOUND if the reference does not exist. MUST return CODE_FAILED_PRECONDITION if the acl does not exist.
OPTIONAL. Opaque information.
REQUIRED. The reference to which the action should be performed.
REQUIRED. The grant to be updated.
OPTIONAL. A lock_id: should the reference be locked, the stored lock_id SHOULD be equal to the given value. However, storage implementations MAY allow for updating grants even if the lock does not match.
REQUIRED. The response status.
OPTIONAL. Opaque information.
Spaces API The Spaces API is meant to manipulate spaces in the service. The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119. The following are global requirements that apply to all methods: Any method MUST return CODE_OK on a succesful operation. Any method MAY return NOT_IMPLEMENTED. Any method MAY return INTERNAL. Any method MAY return UNKNOWN. Any method MAY return UNAUTHENTICATED.
Creates a storage space.
Deletes a storage space.
Lists storage spaces.
Updates a storage space.
Arbitrary metadata than can be set to the resource.
Used in: ,
CanonicalMetadata contains extra metadata attached to a resource. This message and the Opaque message differ in that Opaque allows service implementors to include any extra metadata in any format and most clients will ignore it. However, the CanonicalMetadata message contains well defined fileds that clients MUST understand if they are specified.
Used in:
REQUIRED if resource type is RESOURCE_TYPE_REFERENCE. The target reference the resource points to.
TODO(moscicki): what fields can fit here? executable bit? bool executable = 2; TODO(labkode): at some points maybe we could add here acls and other well-known metadata.
Used as request type in: gateway.v1beta1.GatewayAPI.CreateContainer, ProviderAPI.CreateContainer
OPTIONAL. Opaque information.
REQUIRED. The reference to which the action should be performed.
Used as response type in: gateway.v1beta1.GatewayAPI.CreateContainer, ProviderAPI.CreateContainer
REQUIRED. The response status.
OPTIONAL. Opaque information.
Used as request type in: gateway.v1beta1.GatewayAPI.CreateHome, ProviderAPI.CreateHome
OPTIONAL. Opaque information.
OPTIONAL.
Used as response type in: gateway.v1beta1.GatewayAPI.CreateHome, ProviderAPI.CreateHome
REQUIRED. The response status.
OPTIONAL. Opaque information.
Used as request type in: gateway.v1beta1.GatewayAPI.CreateStorageSpace, SpacesAPI.CreateStorageSpace
OPTIONAL.
REQUIRED.
OPTIONAL. Could be 'home', 'share', 'project', 'space'...
OPTIONAL. User readable name of the storage space.
OPTIONAL.
Used as response type in: gateway.v1beta1.GatewayAPI.CreateStorageSpace, SpacesAPI.CreateStorageSpace
OPTIONAL. Opaque information.
REQUIRED. The response status.
REQUIRED. The created storage space.
Used as request type in: gateway.v1beta1.GatewayAPI.CreateSymlink, ProviderAPI.CreateSymlink
OPTIONAL. Opaque information.
REQUIRED. The location where to store the symlink.
REQUIRED. The link target can hold arbitrary text; if later resolved, a relative link is interpreted in relation to its parent directory
Used as response type in: gateway.v1beta1.GatewayAPI.CreateSymlink, ProviderAPI.CreateSymlink
REQUIRED. The response status.
OPTIONAL. Opaque information.
Used as request type in: gateway.v1beta1.GatewayAPI.Delete, ProviderAPI.Delete
OPTIONAL. Opaque information.
REQUIRED. The reference to which the action should be performed.
OPTIONAL. A lock_id: should the reference be locked, the stored lock_id MUST be equal to the given value.
Used as response type in: gateway.v1beta1.GatewayAPI.Delete, ProviderAPI.Delete
REQUIRED. The response status.
OPTIONAL. Opaque information.
Used as request type in: gateway.v1beta1.GatewayAPI.DeleteStorageSpace, SpacesAPI.DeleteStorageSpace
OPTIONAL. Opaque information.
REQUIRED.
Used as response type in: gateway.v1beta1.GatewayAPI.DeleteStorageSpace, SpacesAPI.DeleteStorageSpace
OPTIONAL. Opaque information.
REQUIRED. The response status.
A file download protocol object stores information about downloading resources using a specific protocol.
Used in:
OPTIONAL. Opaque information.
REQUIRED. The protocol to be followed.
REQUIRED. The endpoint where to download the data. The value MUST be a Uniform Resource Identifier (URI) as specified in RFC 3986.
REQUIRED. Tells to the gateway if the client should be exposed directly to the download_endpoint.
A file upload protocol object stores information about uploading resources using a specific protocol.
Used in:
OPTIONAL. Opaque information.
REQUIRED. The protocol to be followed.
REQUIRED. The endpoint where to upload the data. The value MUST be a Uniform Resource Identifier (URI) as specified in RFC 3986.
REQUIRED. List of available checksums the client can use when sending the file.
REQUIRED. Tells to the gateway if the client should be exposed directly to the upload_endpoint.
OPTIONAL. The time at which the upload will expire.
The information for a file version. TODO(labkode): make size and mtime OPTIONAL?
Used in:
OPTIONAL. Opaque information.
MUST the specified. The key to identify the version.
REQUIRED. The size in bytes of the file version.
REQUIRED. The Unix Epoch timestamp in seconds.
REQUIRED. As decribed in https://tools.ietf.org/html/rfc7232#section-2.3 For a file version, the etag does not change because a version is immutable.
Used as request type in: gateway.v1beta1.GatewayAPI.GetHome, ProviderAPI.GetHome
OPTIONAL. Opaque information.
Used as response type in: gateway.v1beta1.GatewayAPI.GetHome, ProviderAPI.GetHome
REQUIRED. The response status.
OPTIONAL. Opaque information.
REQUIRED. The path to the home in a storage provider. For example /eos/user/h/hugo in the storage provider with root path /eos/user/.
Used as request type in: gateway.v1beta1.GatewayAPI.GetLock, ProviderAPI.GetLock
OPTIONAL. Opaque information.
REQUIRED. The reference the lock is associated to.
Used as response type in: gateway.v1beta1.GatewayAPI.GetLock, ProviderAPI.GetLock
REQUIRED. The response status.
OPTIONAL. Opaque information.
REQUIRED. The lock metadata
Used as request type in: gateway.v1beta1.GatewayAPI.GetPath, ProviderAPI.GetPath
OPTIONAL. Opaque information.
REQUIRED. The resource id of the resource.
Used as response type in: gateway.v1beta1.GatewayAPI.GetPath, ProviderAPI.GetPath
REQUIRED. The response status.
OPTIONAL. Opaque information.
REQUIRED. The path of the resource.
Used as response type in: gateway.v1beta1.GatewayAPI.GetQuota, ProviderAPI.GetQuota
REQUIRED. The response status.
OPTIONAL. Opaque information.
REQUIRED. The total available bytes.
REQUIRED. The number of used bytes.
A grant grants permissions to a resource to a grantee.
Used in: , , ,
REQUIRED. The grantee of the grant.
REQUIRED. The permissions for the grant.
OPTIONAL The Creator of the grant
OPTIONAL Expiration of the grant.
A grantee is the receiver of a grant.
Used in: , , , , , , , , , ,
REQUIRED. The type of the grantee.
REQUIRED. The unique id for the grantee. One of the ids MUST be specified.
The user id.
The group id.
OPTIONAL. Opaque information such as UID or GID.
The type of the grantee.
Used in: ,
This type represents an individual.
This type represents a group of individuals.
Used as request type in: gateway.v1beta1.GatewayAPI.InitiateFileDownload, ProviderAPI.InitiateFileDownload
OPTIONAL. Opaque information.
REQUIRED. The reference to which the action should be performed.
OPTIONAL. A lock_id: should the reference be locked and the lock type be LOCK_TYPE_EXCL, the stored lock_id MUST be equal to the given value.
Used as request type in: gateway.v1beta1.GatewayAPI.InitiateFileUpload, ProviderAPI.InitiateFileUpload
OPTIONAL. Opaque information.
REQUIRED. The reference to which the action should be performed.
OPTIONAL. Whether the file is to be uploaded in exclusive mode. Defaults to false. If true, the request SHALL be processed such that only one of multiple concurrent uploads to the same target reference MAY succeed, whereas all others MUST fail with CODE_FAILED_PRECONDITION. The semantic is similar to the O_CREAT|O_EXCL POSIX flags. The request MUST return CODE_NOT_IMPLEMENTED if the provider does not support this mode.
OPTIONAL. Whether the file is to be uploaded if the given etag matches. Default to always upload. If the storage provider has a more recent etag for the target file, the request MUST return CODE_FAILED_PRECONDITION.
OPTIONAL. Whether the file is to be uploaded when it has been modified on the server. Defauls to always upload. If the resource has been modified on the storage provider after the given timestamp the request MUST return CODE_FAILED_PRECONDITION.
OPTIONAL. A lock_id: should the reference exist and be locked, the stored lock_id SHOULD be equal to the given value. Additionally, the check MUST be enforced by the out-of-band transfer protocol.
Used as request type in: gateway.v1beta1.GatewayAPI.ListContainer, ProviderAPI.ListContainer
OPTIONAL. Opaque information.
REQUIRED. The reference to which the action should be performed.
OPTIONAL. Arbitrary metadata to be included with the resource. A key with the name '*' means to return all available arbitrary metadata.
OPTIONAL. The field mask applies to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
OPTIONAL. Clients use this field to specify the maximum number of results to be returned by the server. The server may further constrain the maximum number of results returned in a single page. If the page_size is 0, the server will decide the number of results to be returned. see https://cloud.google.com/apis/design/design_patterns#list_pagination
OPTIONAL. The client uses this field to request a specific page of the list results.
Used as response type in: gateway.v1beta1.GatewayAPI.ListContainer, ProviderAPI.ListContainer
REQUIRED. The response status.
OPTIONAL. Opaque information.
REQUIRED. The list of resource informations.
OPTIONAL. This field represents the pagination token to retrieve the next page of results. If the value is "", it means no further results for the request. see https://cloud.google.com/apis/design/design_patterns#list_pagination
Used as request type in: gateway.v1beta1.GatewayAPI.ListContainerStream, ProviderAPI.ListContainerStream
OPTIONAL. Opaque information.
REQUIRED. The reference to which the action should be performed.
OPTIONAL. Arbitrary metadata to be included with the resource. A key with the name '*' means to return all available arbitrary metadata.
OPTIONAL. The field mask applies to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
OPTIONAL. Clients use this field to specify the maximum number of results to be returned by the server. The server may further constrain the maximum number of results returned in a single page. If the page_size is 0, the server will decide the number of results to be returned. see https://cloud.google.com/apis/design/design_patterns#list_pagination
OPTIONAL. The client uses this field to request a specific page of the list results.
Used as response type in: gateway.v1beta1.GatewayAPI.ListContainerStream, ProviderAPI.ListContainerStream
REQUIRED. The response status.
OPTIONAL. Opaque information.
REQUIRED. The resource information.
OPTIONAL. This field represents the pagination token to retrieve the next page of results. If the value is "", it means no further results for the request. see https://cloud.google.com/apis/design/design_patterns#list_pagination
Used as request type in: gateway.v1beta1.GatewayAPI.ListFileVersions, ProviderAPI.ListFileVersions
OPTIONAL. Opaque information.
REQUIRED. The reference to which the action should be performed.
OPTIONAL. Clients use this field to specify the maximum number of results to be returned by the server. The server may further constrain the maximum number of results returned in a single page. If the page_size is 0, the server will decide the number of results to be returned. see https://cloud.google.com/apis/design/design_patterns#list_pagination
OPTIONAL. The client uses this field to request a specific page of the list results.
Used as response type in: gateway.v1beta1.GatewayAPI.ListFileVersions, ProviderAPI.ListFileVersions
REQUIRED. The response status.
OPTIONAL. Opaque information.
REQUIRED. The list of file versions.
OPTIONAL. This field represents the pagination token to retrieve the next page of results. If the value is "", it means no further results for the request. see https://cloud.google.com/apis/design/design_patterns#list_pagination
Used as request type in: gateway.v1beta1.GatewayAPI.ListRecycle, ProviderAPI.ListRecycle
OPTIONAL. Opaque information.
OPTIONAL. SHOULD be specified. The start time range to query for recycle items. The value is the Unix Epoch timestamp in seconds.
OPTIONAL. SHOULD be specified. The end time range to query for recycle items. The value is Unix Epoch timestamp in seconds.
OPTIONAL. The reference to which the action should be performed.
OPTIONAL. The key for a recycle item to be listed. If provided, the item corresponding to the key will be listed.
OPTIONAL. Clients use this field to specify the maximum number of results to be returned by the server. The server may further constrain the maximum number of results returned in a single page. If the page_size is 0, the server will decide the number of results to be returned. see https://cloud.google.com/apis/design/design_patterns#list_pagination
OPTIONAL. The client uses this field to request a specific page of the list results.
Used as response type in: gateway.v1beta1.GatewayAPI.ListRecycle, ProviderAPI.ListRecycle
REQUIRED. The response status.
OPTIONAL. Opaque information.
REQUIRED. The list of recycle items.
OPTIONAL. This field represents the pagination token to retrieve the next page of results. If the value is "", it means no further results for the request. see https://cloud.google.com/apis/design/design_patterns#list_pagination
Used as request type in: gateway.v1beta1.GatewayAPI.ListRecycleStream, ProviderAPI.ListRecycleStream
OPTIONAL. Opaque information.
OPTIONAL. SHOULD be specified. The start time range to query for recycle items. The value is the Unix Epoch timestamp in seconds.
OPTIONAL. SHOULD be specified. The end time range to query for recycle items. The value is Unix Epoch timestamp in seconds.
OPTIONAL. The reference to which the action should be performed.
OPTIONAL. The key for a recycle item to be listed. If provided, the item corresponding to the key will be listed.
OPTIONAL. Clients use this field to specify the maximum number of results to be returned by the server. The server may further constrain the maximum number of results returned in a single page. If the page_size is 0, the server will decide the number of results to be returned. see https://cloud.google.com/apis/design/design_patterns#list_pagination
OPTIONAL. The client uses this field to request a specific page of the list results.
Used as response type in: gateway.v1beta1.GatewayAPI.ListRecycleStream, ProviderAPI.ListRecycleStream
REQUIRED. The response status.
OPTIONAL. Opaque information.
REQUIRED. The recycle items.
OPTIONAL. This field represents the pagination token to retrieve the next page of results. If the value is "", it means no further results for the request. see https://cloud.google.com/apis/design/design_patterns#list_pagination
Used as request type in: gateway.v1beta1.GatewayAPI.ListStorageSpaces, SpacesAPI.ListStorageSpaces
OPTIONAL. Opaque information.
OPTIONAL. The list of filters to apply if any.
OPTIONAL. The field mask applies to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
OPTIONAL. Clients use this field to specify the maximum number of results to be returned by the server. The server may further constrain the maximum number of results returned in a single page. If the page_size is 0, the server will decide the number of results to be returned. see https://cloud.google.com/apis/design/design_patterns#list_pagination
OPTIONAL. The client uses this field to request a specific page of the list results.
Represents a filter to apply to the request.
Used in:
REQUIRED.
The filter to apply.
Used in:
Used as response type in: gateway.v1beta1.GatewayAPI.ListStorageSpaces, SpacesAPI.ListStorageSpaces
OPTIONAL. Opaque information.
REQUIRED. The response status.
REQUIRED.
OPTIONAL. This field represents the pagination token to retrieve the next page of results. If the value is "", it means no further results for the request. see https://cloud.google.com/apis/design/design_patterns#list_pagination
The metadata associated with a lock on a resource. Provided that storage drivers are free to implement the storage of this metadata according to their constraints, a reference implementation is given here. The lock SHOULD be stored as an extended attribute on the referenced filesystem entry. Such extended attribute MUST NOT be exposed via the `Stat` and `SetArbitraryMetadata` APIs. Instead, the `ResourceInfo.Lock` attribute MUST be populated if a lock exists for the given reference.
Used in: , , , ,
OPTIONAL. Opaque information.
REQUIRED. The id of the lock, eg. the X-WOPI-Lock id or the WebDAV opaquelocktoken.
REQUIRED. The type of lock.
OPTIONAL. The userid of a user, which represents either the lock holder, or the user that last created/modified the lock. When non empty, `RefreshLock` and `Unlock` operations MUST check their request's content against it.
OPTIONAL. An application name if the lock is held by an app. When non empty, `RefreshLock` and `Unlock` operations MUST check their request's content against it.
OPTIONAL. The time when the lock will expire.
The available type of locks for a resource.
Used in:
Shared (advisory) lock: the resource can be read, written/overwritten or unlocked by everyone who has access.
Write lock: the resource can be read by everyone who has access, but write, refreshlock and unlock operations are restricted to the lock holder.
Exclusive lock: only the lock holder can operate on the resource, anyone else is denied to access it.
Used as request type in: gateway.v1beta1.GatewayAPI.Move, ProviderAPI.Move
OPTIONAL. Opaque information.
REQUIRED. The source reference the resource is moved from.
REQUIRED. The destination reference the resource is moved to.
OPTIONAL. A lock_id: should the source reference be locked, the stored lock_id MUST be equal to the given value.
Used as response type in: gateway.v1beta1.GatewayAPI.Move, ProviderAPI.Move
REQUIRED. The response status.
OPTIONAL. Opaque information.
Used as request type in: gateway.v1beta1.GatewayAPI.PurgeRecycle, ProviderAPI.PurgeRecycle
OPTIONAL. Opaque information.
REQUIRED. The reference to which the action should be performed.
REQUIRED. The key corresponding to the item to be purged..
Used as response type in: gateway.v1beta1.GatewayAPI.PurgeRecycle, ProviderAPI.PurgeRecycle
REQUIRED. The response status.
OPTIONAL. Opaque information.
Represents a quota for a storage space.
Used in: , , ,
OPTIONAL. Opaque information.
OPTIONAL. The bytes quota for the space.
OPTIONAL. The files quota for the space.
OPTIONAL. The remaining bytes for the space.
OPTIONAL. The remaining files for the space.
A recycle item represents the information of a deleted resource.
Used in: ,
OPTIONAL. Opaque information.
REQUIRED. The type of the resource.
REQUIRED. The key to identify the deleted resource.
REQUIRED. The original reference of the deleted resource.
OPTIONAL. The size of the deleted resource.
REQUIRED. The deletion time of the resource in Unix Epoch timestamp in seconds.
The mechanism to identify a resource in the CS3 namespace. It can represent path based, id based and combined references: The storage registry uses the storage_id to determine the responsible storage provider. When the storage_id is not available it will use the path. In a URL the different components can be represented in a string using the following layout: <storage_id>!<node_id>:<path>
Used in: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
OPTIONAL
OPTIONAL. When starting with `/` represents an absolute path. In this case the resource_id MUST be empty. When starting with `.` represents a path relative to the resource_id. The resource_id MUST be given. When path is empty the resource_id must be set. Used to look up the path for a resource_id.
Used as request type in: gateway.v1beta1.GatewayAPI.RefreshLock, ProviderAPI.RefreshLock
OPTIONAL. Opaque information.
REQUIRED. The reference on which the lock should be refreshed.
REQUIRED. The lock metadata.
OPTIONAL. The existing lock id. This can be used to refresh the existing lock with a new lock while checking if the lock holder sends the correct existing lock_id
Used as response type in: gateway.v1beta1.GatewayAPI.RefreshLock, ProviderAPI.RefreshLock
REQUIRED. The response status.
OPTIONAL. Opaque information.
The checksum to verify the integrity of a resource.
Used in:
REQUIRED. The type of checksum to use. If no checksum is provided, type MUST be RESOURCE_CHECKSUM_TYPE_UNSET.
MUST be specified if type is not RESOURCE_CHECKSUM_TYPE_UNSET or type is not RESOURCE_CHECKSUM_TYPE_INVALID. MUST be the hexadecimal representation of the cheksum. The value is case-insensitive, so "1E603A8", "1e603a8" or "1e603A8" are the same.
When negotiating the user of checksum types between client and server, this structure defines the priority of the checksum. Priority 0 means highest priority.
Used in: ,
The type of checksum to use.
Used in: ,
unset means no checksum is set.
Use Adler32 checksum.
Use MD5 checksum.
Use SHA-1 checksum.
A resource id uniquely identifies a resource in the storage provider namespace. A ResourceId MUST be unique in the storage provider.
Used in: , , , , , , , , , , , ,
REQUIRED. The logical id of a storage. Used by the storage registry to determine the responsible storage provider.
REQUIRED. The internal id used by service implementor to uniquely identity the resource in the internal implementation of the service.
OPTIONAL. The internal id used by service implementor to uniquely identify the storage space. Used by the storageprovider to locate the correct storage space.
Represents the information (metadata) about a storage resource organized in a hierarchical namespace (file, directory/container, reference, symlink, ...).
Used in: , , , , , , , , , , ,
OPTIONAL. Opaque information.
REQUIRED. The type of the resource (container, file, ...) See the enum ResourceType for all possible types.
REQUIRED. Opaque unique identifier of the resource.
REQUIRED. The data checksum for the file resource. For all other resources, the checksum is unset.
REQUIRED. As decribed in https://tools.ietf.org/html/rfc7232#section-2.3 For file resources, the etag must change if data or metadata changes. For container types, the etag must change if etag of any of the (indirectly) contained resources change. For reference types, the etag must change if etag of the target changes and the target is on the same storage provider. In all other cases the etag does not change.
REQUIRED. As described in [RFC 2015](https://tools.ietf.org/html/rfc2045#page-7)
REQUIRED. Last modification time (mtime) of file or directory contents. For reference types this is NOT the mtime of the target.
REQUIRED. The path for the resource: MUST start with `/` when the reference had no resource_id, indicating an absolute path. MUST start with `.` when the reference had a resource_id, indicating a relative path.
REQUIRED. The set of permissions for the resource effective for the authenticated user.
REQUIRED. The size of the resource in bytes (file size) TODO(moscicki): This is undefined for container type. Is the accounting recursive?, could it be set to 0 for directories if recursive not supported? use another field? TODO(moscicki): This needs to be defined also for other types (such as a symlink to a directory or file)
REQUIRED. Identifier of the owner of the resource.
OPTIONAL. if ResourceType is either RESOURCE_TYPE_SYMLINK or RESOURCE_TYPE_REFERENCE it MUST be specified.
OPTIONAL. Additional metadata attached to the resource. If ResourceType is RESOURCE_TYPE_REFERENCE it MUST be specified.
OPTIONAL. Arbitrary metadata attached to a resource.
OPTIONAL. Exclusive or write lock on this resource that will limit modification of the resource to holders of the lock. Can be used by WOPI or other apps requiring write or exclusive locks.
OPTIONAL. Advisory locks on this resource. Can be used for shared locks or other forms of collaborative locks.
OPTIONAL. Reference to the container of this resource. If path is relative it MUST be specified, regardless the access restrictions to the resource: a subsequent Stat() on it MAY return access denied if appropriate.
OPTIONAL The name of the resource.
OPTIONAL. StorageSpace where this resource is located.
OPTIONAL. Indicates whether the resource is immutable. Its effect depends on the resource type: On a file (freeze): the file is final. It cannot be modified (content is fixed), deleted, moved or renamed. Once set on a file, the immutable attribute MUST NOT be removed. On a container (protect): no entries can be added, removed or modified. The container itself cannot be deleted, moved or renamed. This does NOT propagate to the entries: a protected container can contain unprotected children in which entries can still be added, removed or modified. The immutable attribute on a container can be removed by space managers or administrators. An object is considered immutable if its own attribute is set (self) OR its parent container's attribute is set (parent). Deletion, modification or renaming of an object is governed by the parent; adding or removing entries inside a container by the container itself. This is a persistent attribute (stored as xattr), not a transient status. Use SetImmutable/UnsetImmutable RPCs to change it.
The representation of permissions attached to a resource.
Used in: , , , , , , , , ,
delete applies to files. For containers, see delete_container. When delete_container is not explicitly set, implementations SHOULD fall back to the value of delete for backward compatibility.
move applies to files. For containers, see move_container. When move_container is not explicitly set, implementations SHOULD fall back to the value of move for backward compatibility.
OPTIONAL. When set, controls whether containers (directories) can be deleted, independent of the delete permission which then only applies to files. This allows protecting directory structures while still permitting file deletion. Typical use case: file plan (Aktenplan) protection.
OPTIONAL. When set, controls whether containers (directories) can be moved or renamed, independent of the move permission which then only applies to files. This allows protecting directory structures while still permitting file operations.
OPTIONAL. Controls whether the user may freeze files (set immutable on files). Freezing a file is irreversible — once set, the file cannot be modified, deleted, moved or renamed, and the attribute cannot be removed. This permission should be granted carefully.
OPTIONAL. Controls whether the user may protect or unprotect containers (set/unset immutable on containers). Protecting a container prevents adding, removing or modifying its direct entries. Unlike files, container protection is reversible.
The available types of resources.
Used in: , , , ,
The file type represents a type that holds arbitrary data. Service implementors usually map this type to files (local filesystem) or objects (Amazon S3).
The container type represents a type that can contain another types. Service implementors usually map this type to folders (local filesystem) or buckets (Amazon S3).
This represents a reference type which points to another resource where client MAY be redirected. Client SHOULD use the ResourceInfo.target reference for a subsequent call.
This represents a symbolic link type if the underlying storage system supports it. Symlink target SHOULD NOT be interpreted by the clients.
Internal resource type for some specific resources inside a storage implementation. For example, this type could be used to represent a device file on a Linux filesystem. Another example could be to represent an ongoing upload, where an hypothetically user interface could show a loading icon on this type of resources until the upload operation is completed. Internal resources SHOULD NOT be moved to a different storage provider.
Used as request type in: gateway.v1beta1.GatewayAPI.RestoreFileVersion, ProviderAPI.RestoreFileVersion
OPTIONAL. Opaque information.
REQUIRED. The reference to which the action should be performed.
REQUIRED. The key to restore a specific file version.
OPTIONAL. A lock_id: should the reference be locked, the stored lock_id MUST be equal to the given value.
Used as response type in: gateway.v1beta1.GatewayAPI.RestoreFileVersion, ProviderAPI.RestoreFileVersion
REQUIRED. The response status.
OPTIONAL. Opaque information.
TODO: restore to original location if not specified as OPTIONAL?
Used as request type in: gateway.v1beta1.GatewayAPI.RestoreRecycleItem, ProviderAPI.RestoreRecycleItem
OPTIONAL. Opaque information.
REQUIRED. The reference to the user's home directory.
REQUIRED. The key for the recycle item to be restored.
OPTIONAL. An optional restore path for the deleted resource. It can be useful to restore to another location rather than the original. If empty, service implementors MUST restore to original location if possible.
OPTIONAL. A lock_id: should a lock exist for the reference where the file is to be restored, the stored lock_id MUST be equal to the given value.
Used as response type in: gateway.v1beta1.GatewayAPI.RestoreRecycleItem, ProviderAPI.RestoreRecycleItem
REQUIRED. The response status.
OPTIONAL. Opaque information.
Used as request type in: gateway.v1beta1.GatewayAPI.SetArbitraryMetadata, ProviderAPI.SetArbitraryMetadata
OPTIONAL. Opaque information.
REQUIRED. The reference to which the action should be performed.
REQUIRED. The arbitrary metadata to add to the resource.
OPTIONAL. A lock_id: should the reference be locked, the stored lock_id SHOULD be equal to the given value. However, storage implementations MAY allow for setting attributes even if the lock does not match.
Used as response type in: gateway.v1beta1.GatewayAPI.SetArbitraryMetadata, ProviderAPI.SetArbitraryMetadata
REQUIRED. The response status.
OPTIONAL. Opaque information.
Used as request type in: gateway.v1beta1.GatewayAPI.SetImmutable, ProviderAPI.SetImmutable
OPTIONAL. Opaque information.
REQUIRED. The reference to the resource to freeze.
Used as response type in: gateway.v1beta1.GatewayAPI.SetImmutable, ProviderAPI.SetImmutable
REQUIRED. The response status.
OPTIONAL. Opaque information.
Used as request type in: gateway.v1beta1.GatewayAPI.SetLock, ProviderAPI.SetLock
OPTIONAL. Opaque information.
REQUIRED. The reference on which the lock should be set, if no lock is present.
REQUIRED. The lock metadata.
Used as response type in: gateway.v1beta1.GatewayAPI.SetLock, ProviderAPI.SetLock
REQUIRED. The response status.
OPTIONAL. Opaque information.
Used in:
ID of the entry, usually the inode of the file that contains the actual metadata.
Type of metadata entry
Used in:
Used as request type in: gateway.v1beta1.GatewayAPI.Stat, ProviderAPI.Stat
OPTIONAL. Opaque information.
REQUIRED. The reference to which the action should be performed.
OPTIONAL. Arbitrary metadata be included with the resource. A key with the name '*' means to return all available arbitrary metadata.
OPTIONAL. The field mask applies to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
Used as response type in: gateway.v1beta1.GatewayAPI.Stat, ProviderAPI.Stat
REQUIRED. The response status.
OPTIONAL. Opaque information.
REQUIRED. The resource information.
Represents a storage space which could be a 'home', 'share' etc...
Used in: , , , ,
OPTIONAL. Opaque information.
REQUIRED.
OPTIONAL.
OPTIONAL. The root resource id of the storage space.
OPTIONAL.
OPTIONAL.
OPTIONAL. Could be 'home', 'share', 'project', 'space'...
OPTIONAL. Last modification time (mtime) of the root resource of this storage space.
OPTIONAL. Resource info for the storage space root.
OPTIONAL. HasTrashedItems indicates if the storage space has trashed items.
OPTIONAL. Description of the space.
OPTIONAL. An opaque ID of an optional thumbnail file of the space (usually the inode)
OPTIONAL. An opaque ID of an optional readme file of the space (usually the inode)
OPTIONAL. The set of permissions for the storage space effective for the authenticated user.
The id of a storage space.
Used in: , ,
REQUIRED. The internal storage space id.
Used as request type in: gateway.v1beta1.GatewayAPI.TouchFile, ProviderAPI.TouchFile
OPTIONAL. Opaque information.
REQUIRED. The reference to which the action should be performed.
OPTIONAL. A lock_id: should the reference be locked, the stored lock_id MUST be equal to the given value. However, implementations MAY allow touching an existing file even with a mismatching lock.
Used as response type in: gateway.v1beta1.GatewayAPI.TouchFile, ProviderAPI.TouchFile
REQUIRED. The response status.
OPTIONAL. Opaque information.
Used as request type in: gateway.v1beta1.GatewayAPI.Unlock, ProviderAPI.Unlock
OPTIONAL. Opaque information.
REQUIRED. The reference the lock is associated to.
REQUIRED. The lock metadata.
Used as response type in: gateway.v1beta1.GatewayAPI.Unlock, ProviderAPI.Unlock
REQUIRED. The response status.
OPTIONAL. Opaque information.
Used as request type in: gateway.v1beta1.GatewayAPI.UnsetArbitraryMetadata, ProviderAPI.UnsetArbitraryMetadata
OPTIONAL. Opaque information.
REQUIRED. The reference to which the action should be performed.
REQUIRED. The arbitrary metadata to delete.
OPTIONAL. A lock_id: should the reference be locked, the stored lock_id SHOULD be equal to the given value. However, storage implementations MAY allow for unsetting attributes even if the lock does not match.
Used as response type in: gateway.v1beta1.GatewayAPI.UnsetArbitraryMetadata, ProviderAPI.UnsetArbitraryMetadata
REQUIRED. The response status.
OPTIONAL. Opaque information.
Used as request type in: gateway.v1beta1.GatewayAPI.UnsetImmutable, ProviderAPI.UnsetImmutable
OPTIONAL. Opaque information.
REQUIRED. The reference to the resource to unfreeze.
Used as response type in: gateway.v1beta1.GatewayAPI.UnsetImmutable, ProviderAPI.UnsetImmutable
REQUIRED. The response status.
OPTIONAL. Opaque information.
Used as request type in: gateway.v1beta1.GatewayAPI.UpdateStorageSpace, SpacesAPI.UpdateStorageSpace
OPTIONAL. Opaque information.
REQUIRED.
REQUIRED.
REQUIRED.
Used in:
One of the update fields MUST be specified.
Update the space description.
Update the space alias.
Update IDs of "special" files, such as readme or thumbnail, directly stored in the space.
Update the space quota.
Update the space name.
Used as response type in: gateway.v1beta1.GatewayAPI.UpdateStorageSpace, SpacesAPI.UpdateStorageSpace
OPTIONAL. Opaque information.
REQUIRED. The response status.
REQUIRED. The updated storage space.