| Field | Type | Label | Description |
| status | cs3.rpc.v1beta1.Status | REQUIRED. The response status. |
|
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
TODO(labkode): clean up display_name ? we'll use storage links for that.
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| share | ReceivedShare | REQUIRED. The received share to update. |
|
| update_mask | google.protobuf.FieldMask | The update mask applies to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask |
| Field | Type | Label | Description |
| status | cs3.rpc.v1beta1.Status | REQUIRED. The response status. |
|
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
REQUIRED.
The filter to apply.
| Name | Number | Description |
| TYPE_INVALID | 0 | |
| TYPE_NO | 1 | |
| TYPE_RESOURCE_ID | 2 | |
| TYPE_OWNER | 3 | |
| TYPE_CREATOR | 4 | |
| TYPE_OWNER_PROVIDER | 5 | |
| TYPE_CREATOR_PROVIDER | 6 |
OCM Share Provider API
The OCM Share Provider API is meant to manipulate share
resources from the perspective of the creator or the share and
from the perspective of the receiver of the share.
The following APIs match the OCM v1.1 spec including multi-protocol shares.
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.
| Method Name | Request Type | Response Type | Description |
| CreateOCMShare | CreateOCMShareRequest | CreateOCMShareResponse | Creates a new ocm share. MUST return CODE_NOT_FOUND if the resource reference does not exist. MUST return CODE_ALREADY_EXISTS if the share already exists for the 4-tuple consisting of (owner, shared_resource, grantee). New shares MUST be created in the state SHARE_STATE_PENDING, and MUST be sent to the remote system using the OCM API at: https://cs3org.github.io/OCM-API/docs.html?branch=v1.1.0&repo=OCM-API&user=cs3org#/paths/~1shares/post |
| RemoveOCMShare | RemoveOCMShareRequest | RemoveOCMShareResponse | Removes a share. MUST return CODE_NOT_FOUND if the share reference does not exist. This action SHALL be notified to the remote system using the OCM API at: https://cs3org.github.io/OCM-API/docs.html?branch=v1.1.0&repo=OCM-API&user=cs3org#/paths/~1notifications/post |
| GetOCMShare | GetOCMShareRequest | GetOCMShareResponse | Gets share information for a single share. MUST return CODE_NOT_FOUND if the share reference does not exist. |
| GetOCMShareByToken | GetOCMShareByTokenRequest | GetOCMShareByTokenResponse | Gets share information for a single share by its unlisted token. MUST return CODE_NOT_FOUND if the share does not exist. |
| ListOCMShares | ListOCMSharesRequest | ListOCMSharesResponse | List the shares the authenticated principal has created, both as owner and creator. If a filter is specified, only shares satisfying the filter MUST be returned. |
| UpdateOCMShare | UpdateOCMShareRequest | UpdateOCMShareResponse | Updates a share. MUST return CODE_NOT_FOUND if the share reference does not exist. This action SHALL be notified to the remote system using the OCM API at: https://cs3org.github.io/OCM-API/docs.html?branch=v1.1.0&repo=OCM-API&user=cs3org#/paths/~1notifications/post |
| ListReceivedOCMShares | ListReceivedOCMSharesRequest | ListReceivedOCMSharesResponse | List all shares the authenticated principal has received. |
| UpdateReceivedOCMShare | UpdateReceivedOCMShareRequest | UpdateReceivedOCMShareResponse | Update the received share to change the share state or the display name. MUST return CODE_NOT_FOUND if the share reference does not exist. |
| GetReceivedOCMShare | GetReceivedOCMShareRequest | GetReceivedOCMShareResponse | Get the information for the given received share reference. MUST return CODE_NOT_FOUND if the received share reference does not exist. |
Defines how the recipient accesses an incoming remote OCM share.
| Field | Type | Label | Description |
| webdav_options | WebDAVAccessMethod | Options for the WebDAV access method. |
|
| webapp_options | WebappAccessMethod | Options for the Webapp access method. |
|
| transfer_options | TransferAccessMethod | Options for the Transfer access method. |
|
| generic_options | cs3.types.v1beta1.Opaque | Options for a generic transfer method. Used to implement future access methods. |
The protocol which is used to give access to a remote OCM user.
| Field | Type | Label | Description |
| webdav_options | WebDAVProtocol | Options for WebDAV protocol. |
|
| webapp_options | WebappProtocol | Options for Webapp protocol. |
|
| transfer_options | TransferProtocol | Options for transfer protocol. |
|
| generic_options | cs3.types.v1beta1.Opaque | Options for a generic protocol. Used to implement future protocols in the OCM specs. |
A received share is the share that a grantee will receive.
| Field | Type | Label | Description |
| id | ShareId | REQUIRED. Opaque unique identifier of the share. |
|
| name | string | REQUIRED. Name of the shared resource. |
|
| remote_share_id | string | REQUIRED. Identifier to identify the shared resource at the provider side. This is unique per provider such that if the same resource is shared twice, this will not be repeated. This correspond to the `providerId` in the OCM API specs. |
|
| grantee | cs3.storage.provider.v1beta1.Grantee | REQUIRED. The receiver of the share, like a user, group ... |
|
| owner | cs3.identity.user.v1beta1.UserId | REQUIRED. Uniquely identifies the owner of the share (the resource owner at the time of creating the share). In case the ownership of the underlying resource changes the share owner field MAY change to reflect the change of ownsership. |
|
| creator | cs3.identity.user.v1beta1.UserId | REQUIRED. Uniquely identifies a principal who initiates the share creation. A creator can create shares on behalf of the owner (because of re-sharing, because belonging to special groups, ...). Creator and owner often result in being the same principal. |
|
| ctime | cs3.types.v1beta1.Timestamp | REQUIRED. Creation time of the share. |
|
| mtime | cs3.types.v1beta1.Timestamp | REQUIRED. Last modification time of the share. |
|
| expiration | cs3.types.v1beta1.Timestamp | OPTIONAL. The expiration time for the ocm share. |
|
| share_type | ShareType | REQUIRED. Recipient share type. |
|
| protocols | Protocol | repeated | REQUIRED. List of protocols offered for this share. In the OCM specifications, this corresponds to the `protocol` property, to maintain backwards compatibility with OCM v1 where only a single protocol was implemented. Furthermore, `protocol.name` MAY be set to `multi` and `protocol.options` MAY be left empty in the OCM share payload, in order to use the `protocol.webdav` and similar properties. |
| state | ShareState | REQUIRED. The state of the share. |
|
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. |
|
| resource_type | cs3.storage.provider.v1beta1.ResourceType | REQUIRED. Resource type. |
Shares are relationships between a resource owner
(usually the authenticated user) who grants permissions to a recipient
(grantee) on a specified resource (resource_id). UserShares represents both
user and groups.
| Field | Type | Label | Description |
| id | ShareId | REQUIRED. Opaque unique identifier of the share. |
|
| resource_id | cs3.storage.provider.v1beta1.ResourceId | REQUIRED. Unique identifier of the shared resource. |
|
| name | string | REQUIRED. Name of the shared resource. |
|
| token | string | REQUIRED. The unlisted token to give access to the ocm share. |
|
| grantee | cs3.storage.provider.v1beta1.Grantee | REQUIRED. The receiver of the share, like a user, group ... |
|
| owner | cs3.identity.user.v1beta1.UserId | REQUIRED. Uniquely identifies the owner of the share (the resource owner at the time of creating the share). In case the ownership of the underlying resource changes the share owner field MAY change to reflect the change of ownsership. |
|
| creator | cs3.identity.user.v1beta1.UserId | REQUIRED. Uniquely identifies a principal who initiates the share creation. A creator can create shares on behalf of the owner (because of re-sharing, because belonging to special groups, ...). Creator and owner often result in being the same principal. |
|
| ctime | cs3.types.v1beta1.Timestamp | REQUIRED. Creation time of the share. |
|
| mtime | cs3.types.v1beta1.Timestamp | REQUIRED. Last modification time of the share. |
|
| expiration | cs3.types.v1beta1.Timestamp | OPTIONAL. The expiration time for the OCM share. |
|
| share_type | ShareType | REQUIRED. Recipient share type. |
|
| access_methods | AccessMethod | repeated | REQUIRED. |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. |
A share grant specifies the share permissions
for a grantee.
| Field | Type | Label | Description |
| grantee | cs3.storage.provider.v1beta1.Grantee | REQUIRED. The grantee of the grant. |
|
| permissions | SharePermissions | REQUIRED. The share permissions for the grant. |
A share id identifies uniquely a share in the share provider namespace.
A ShareId MUST be unique inside the share provider.
| Field | Type | Label | Description |
| opaque_id | string | REQUIRED. The internal id used by service implementor to uniquely identify the share in the internal implementation of the service. In the OCM specifications, this corresponds to the `providerId`. |
Uniquely identifies a share in the share provider.
A share MUST be uniquely identify by four (4) elements:
1) The share provider id
2) The owner of the share
3) The resource id
4) The grantee for the share
This 4-tuple MUST be unique.
For example, owner Alice shares the resource /home/docs with id
home:1234 to an user named Bob. The 4-tuple will consist of
1) The share provider id = "user"
2) The owner of the share = "Alice"
3) The resource id = "home:1234"
4) The grantee for the share = Grantee("type" = "user", "" => "Bob")
| Field | Type | Label | Description |
| owner | cs3.identity.user.v1beta1.UserId | REQUIRED. |
|
| resource_id | cs3.storage.provider.v1beta1.ResourceId | REQUIRED. |
|
| grantee | cs3.storage.provider.v1beta1.Grantee | REQUIRED. |
The permissions for a share.
| Field | Type | Label | Description |
| permissions | cs3.storage.provider.v1beta1.ResourcePermissions |
|
|
| reshare | bool |
|
The mechanism to identify a share
in the share provider namespace.
| Field | Type | Label | Description |
| id | ShareId | The id of the share. |
|
| key | ShareKey | The combination of fields that make the share unique. |
|
| token | string | The token of the share. |
Defines the options for the Transfer access method.
| Field | Type | Label | Description |
| destination | cs3.storage.provider.v1beta1.Reference | REQUIRED. The destination path of the data transfer. |
Defines the options for the Transfer protocol.
| Field | Type | Label | Description |
| shared_secret | string | REQUIRED. Secret used to access the source of the data transfer. |
|
| source_uri | string | REQUIRED. Source URI for the data transfer. |
|
| size | uint64 | REQUIRED. Size in bytes of the source. |
Defines the options for the WebDAV access method.
| Field | Type | Label | Description |
| permissions | cs3.storage.provider.v1beta1.ResourcePermissions | REQUIRED. The permissions for the share. |
Defines the options for the WebDAV protocol.
| Field | Type | Label | Description |
| shared_secret | string | REQUIRED. Secret used to access the resource. |
|
| permissions | SharePermissions | REQUIRED. Permissions of the shared resource. |
|
| uri | string | REQUIRED. WebDAV URI used to access the resource. |
Defines the options for the Webapp access method.
| Field | Type | Label | Description |
| view_mode | cs3.app.provider.v1beta1.ViewMode | REQUIRED. The view mode for the share. |
Defines the options for the Webapp protocol.
| Field | Type | Label | Description |
| uri_template | string | REQUIRED. Template URI to open the resource with a remote app. |
|
| view_mode | cs3.app.provider.v1beta1.ViewMode | REQUIRED. View mode for the remote app. |
The state of the share.
| Name | Number | Description |
| SHARE_STATE_INVALID | 0 | The share is no longer valid, for example, the share expired. |
| SHARE_STATE_PENDING | 1 | New shares MUST be created in the SHARE_STATE_PENDING state. This state means the share is pending to be accepted or rejected by the recipient of the share. |
| SHARE_STATE_ACCEPTED | 2 | The recipient of the share has accepted the share. |
| SHARE_STATE_REJECTED | 3 | The recipient of the share has rejected the share. Do not means the share is removed, the recipient MAY change the state to accepted or pending. |
Defines the type of share based on its recipient.
| Name | Number | Description |
| SHARE_TYPE_INVALID | 0 | |
| SHARE_TYPE_USER | 1 | Share of type user. |
| SHARE_TYPE_GROUP | 2 | Share of type group. |
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| ref | Reference | REQUIRED. The reference to which the action should be performed. |
|
| grant | Grant | REQUIRED. The grant to be added. |
|
| lock_id | string | OPTIONAL. A lock_id: should the reference be locked, the stored lock_id MUST be equal to the given value. |
| Field | Type | Label | Description |
| status | cs3.rpc.v1beta1.Status | REQUIRED. The response status. |
|
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| ref | Reference | REQUIRED. The reference to which the action should be performed. |
| Field | Type | Label | Description |
| status | cs3.rpc.v1beta1.Status | REQUIRED. The response status. |
|
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| quota | Quota | OPTIONAL. |
| Field | Type | Label | Description |
| status | cs3.rpc.v1beta1.Status | REQUIRED. The response status. |
|
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| ref | Reference | REQUIRED. The location where to store the reference. |
|
| target_uri | string | REQUIRED. The reference resource by RFC3986. |
| Field | Type | Label | Description |
| status | cs3.rpc.v1beta1.Status | REQUIRED. The response status. |
|
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. |
|
| owner | cs3.identity.user.v1beta1.User | REQUIRED. |
|
| type | string | OPTIONAL. Could be 'home', 'share', 'project', 'space'... |
|
| name | string | OPTIONAL. User readable name of the storage space. |
|
| quota | Quota | OPTIONAL. |
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| status | cs3.rpc.v1beta1.Status | REQUIRED. The response status. |
|
| storage_space | StorageSpace | REQUIRED. The created storage space. |
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| ref | Reference | REQUIRED. The location where to store the symlink. |
|
| target | string | REQUIRED. The link target can hold arbitrary text; if later resolved, a relative link is interpreted in relation to its parent directory |
| Field | Type | Label | Description |
| status | cs3.rpc.v1beta1.Status | REQUIRED. The response status. |
|
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| ref | Reference | REQUIRED. The reference to which the action should be performed. |
|
| lock_id | string | OPTIONAL. A lock_id: should the reference be locked, the stored lock_id MUST be equal to the given value. |
| Field | Type | Label | Description |
| status | cs3.rpc.v1beta1.Status | REQUIRED. The response status. |
|
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| id | StorageSpaceId | REQUIRED. |
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| status | cs3.rpc.v1beta1.Status | REQUIRED. The response status. |
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| ref | Reference | REQUIRED. The reference to which the action should be performed. |
|
| grantee | Grantee | REQUIRED. The grantee to remove permission. |
|
| lock_id | string | OPTIONAL. A lock_id: should the reference be locked, the stored lock_id MUST be equal to the given value. |
| Field | Type | Label | Description |
| status | cs3.rpc.v1beta1.Status | REQUIRED. The response status. |
|
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
| Field | Type | Label | Description |
| status | cs3.rpc.v1beta1.Status | REQUIRED. The response status. |
|
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| path | string | 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/. |
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| ref | Reference | REQUIRED. The reference the lock is associated to. |
| Field | Type | Label | Description |
| status | cs3.rpc.v1beta1.Status | REQUIRED. The response status. |
|
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| lock | Lock | REQUIRED. The lock metadata |
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| resource_id | ResourceId | REQUIRED. The resource id of the resource. |
| Field | Type | Label | Description |
| status | cs3.rpc.v1beta1.Status | REQUIRED. The response status. |
|
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| path | string | REQUIRED. The path of the resource. |
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| ref | Reference | OPTIONAL. Limit the quota Response to the given reference |
| Field | Type | Label | Description |
| status | cs3.rpc.v1beta1.Status | REQUIRED. The response status. |
|
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| total_bytes | uint64 | REQUIRED. The total available bytes. |
|
| used_bytes | uint64 | REQUIRED. The number of used bytes. |
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| ref | Reference | REQUIRED. The reference to which the action should be performed. |
|
| lock_id | string | 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. |
| Field | Type | Label | Description |
| status | cs3.rpc.v1beta1.Status | REQUIRED. The response status. |
|
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| protocols | FileDownloadProtocol | repeated | REQUIRED. The protocols through which data can be downloaded. |
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| ref | Reference | REQUIRED. The reference to which the action should be performed. |
|
| if_not_exist | bool | 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. |
|
| if_match | string | 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. |
|
| if_unmodified_since | cs3.types.v1beta1.Timestamp | 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. |
|
| lock_id | string | OPTIONAL. A lock_id: should the reference exist and be locked, the stored lock_id MUST be equal to the given value. |
| Field | Type | Label | Description |
| status | cs3.rpc.v1beta1.Status | REQUIRED. The response status. |
|
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| protocols | FileUploadProtocol | repeated | REQUIRED. The protocols through which data can be uploaded. |
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| ref | Reference | REQUIRED. The reference to which the action should be performed. |
|
| arbitrary_metadata_keys | string | repeated | OPTIONAL. Arbitrary metadata to be included with the resource. A key with the name '*' means to return all available arbitrary metadata. |
| field_mask | google.protobuf.FieldMask | OPTIONAL. The field mask applies to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask |
|
| page_size | int32 | 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 |
|
| page_token | string | OPTIONAL. The client uses this field to request a specific page of the list results. |
| Field | Type | Label | Description |
| status | cs3.rpc.v1beta1.Status | REQUIRED. The response status. |
|
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| infos | ResourceInfo | repeated | REQUIRED. The list of resource informations. |
| next_page_token | string | 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 |
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| ref | Reference | REQUIRED. The reference to which the action should be performed. |
|
| arbitrary_metadata_keys | string | repeated | OPTIONAL. Arbitrary metadata to be included with the resource. A key with the name '*' means to return all available arbitrary metadata. |
| field_mask | google.protobuf.FieldMask | OPTIONAL. The field mask applies to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask |
|
| page_size | int32 | 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 |
|
| page_token | string | OPTIONAL. The client uses this field to request a specific page of the list results. |
| Field | Type | Label | Description |
| status | cs3.rpc.v1beta1.Status | REQUIRED. The response status. |
|
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| info | ResourceInfo | REQUIRED. The resource information. |
|
| next_page_token | string | 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 |
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| ref | Reference | REQUIRED. The reference to which the action should be performed. |
|
| page_size | int32 | 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 |
|
| page_token | string | OPTIONAL. The client uses this field to request a specific page of the list results. |
| Field | Type | Label | Description |
| status | cs3.rpc.v1beta1.Status | REQUIRED. The response status. |
|
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| versions | FileVersion | repeated | REQUIRED. The list of file versions. |
| next_page_token | string | 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 |
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| ref | Reference | REQUIRED. The reference to which the action should be performed. |
|
| page_size | int32 | 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 |
|
| page_token | string | OPTIONAL. The client uses this field to request a specific page of the list results. |
| Field | Type | Label | Description |
| status | cs3.rpc.v1beta1.Status | REQUIRED. The response status. |
|
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| grants | Grant | repeated | REQUIRED. The grants. |
| next_page_token | string | 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 |
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| from_ts | cs3.types.v1beta1.Timestamp | OPTIONAL. SHOULD be specified. The start time range to query for recycle items. The value is the Unix Epoch timestamp in seconds. |
|
| to_ts | cs3.types.v1beta1.Timestamp | OPTIONAL. SHOULD be specified. The end time range to query for recycle items. The value is Unix Epoch timestamp in seconds. |
|
| ref | Reference | OPTIONAL. The reference to which the action should be performed. |
|
| key | string | OPTIONAL. The key for a recycle item to be listed. If provided, the item corresponding to the key will be listed. |
|
| page_size | int32 | 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 |
|
| page_token | string | OPTIONAL. The client uses this field to request a specific page of the list results. |
| Field | Type | Label | Description |
| status | cs3.rpc.v1beta1.Status | REQUIRED. The response status. |
|
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| recycle_items | RecycleItem | repeated | REQUIRED. The list of recycle items. |
| next_page_token | string | 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 |
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| from_ts | cs3.types.v1beta1.Timestamp | OPTIONAL. SHOULD be specified. The start time range to query for recycle items. The value is the Unix Epoch timestamp in seconds. |
|
| to_ts | cs3.types.v1beta1.Timestamp | OPTIONAL. SHOULD be specified. The end time range to query for recycle items. The value is Unix Epoch timestamp in seconds. |
|
| ref | Reference | OPTIONAL. The reference to which the action should be performed. |
|
| key | string | OPTIONAL. The key for a recycle item to be listed. If provided, the item corresponding to the key will be listed. |
|
| page_size | int32 | 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 |
|
| page_token | string | OPTIONAL. The client uses this field to request a specific page of the list results. |
| Field | Type | Label | Description |
| status | cs3.rpc.v1beta1.Status | REQUIRED. The response status. |
|
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| recycle_item | RecycleItem | REQUIRED. The recycle items. |
|
| next_page_token | string | 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 |
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| filters | ListStorageSpacesRequest.Filter | repeated | OPTIONAL. The list of filters to apply if any. |
| field_mask | google.protobuf.FieldMask | OPTIONAL. The field mask applies to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask |
|
| page_size | int32 | 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 |
|
| page_token | string | OPTIONAL. The client uses this field to request a specific page of the list results. |
Represents a filter to apply to the request.
| Field | Type | Label | Description |
| type | ListStorageSpacesRequest.Filter.Type | REQUIRED. |
|
| id | StorageSpaceId |
|
|
| owner | cs3.identity.user.v1beta1.UserId |
|
|
| space_type | string |
|
|
| path | string |
|
|
| user | cs3.identity.user.v1beta1.UserId |
|
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| status | cs3.rpc.v1beta1.Status | REQUIRED. The response status. |
|
| storage_spaces | StorageSpace | repeated | REQUIRED. |
| next_page_token | string | 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 |
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| source | Reference | REQUIRED. The source reference the resource is moved from. |
|
| destination | Reference | REQUIRED. The destination reference the resource is moved to. |
|
| lock_id | string | OPTIONAL. A lock_id: should the source reference be locked, the stored lock_id MUST be equal to the given value. |
| Field | Type | Label | Description |
| status | cs3.rpc.v1beta1.Status | REQUIRED. The response status. |
|
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| ref | Reference | REQUIRED. The reference to which the action should be performed. |
|
| key | string | REQUIRED. The key corresponding to the item to be purged.. |
| Field | Type | Label | Description |
| status | cs3.rpc.v1beta1.Status | REQUIRED. The response status. |
|
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| ref | Reference | REQUIRED. The reference on which the lock should be refreshed. |
|
| lock | Lock | REQUIRED. The lock metadata. |
|
| existing_lock_id | string | 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 |
| Field | Type | Label | Description |
| status | cs3.rpc.v1beta1.Status | REQUIRED. The response status. |
|
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| ref | Reference | REQUIRED. The reference to which the action should be performed. |
|
| grant | Grant | REQUIRED. The grant to remove. |
|
| lock_id | string | OPTIONAL. A lock_id: should the reference be locked, the stored lock_id MUST be equal to the given value. |
| Field | Type | Label | Description |
| status | cs3.rpc.v1beta1.Status | REQUIRED. The response status. |
|
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| ref | Reference | REQUIRED. The reference to which the action should be performed. |
|
| key | string | REQUIRED. The key to restore a specific file version. |
|
| lock_id | string | OPTIONAL. A lock_id: should the reference be locked, the stored lock_id MUST be equal to the given value. |
| Field | Type | Label | Description |
| status | cs3.rpc.v1beta1.Status | REQUIRED. The response status. |
|
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
TODO: restore to original location if not specified as OPTIONAL?
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| ref | Reference | REQUIRED. The reference to the user's home directory. |
|
| key | string | REQUIRED. The key for the recycle item to be restored. |
|
| restore_ref | Reference | 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. |
|
| lock_id | string | 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. |
| Field | Type | Label | Description |
| status | cs3.rpc.v1beta1.Status | REQUIRED. The response status. |
|
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| ref | Reference | REQUIRED. The reference to which the action should be performed. |
|
| arbitrary_metadata | ArbitraryMetadata | REQUIRED. The arbitrary metadata to add to the resource. |
|
| lock_id | string | OPTIONAL. A lock_id: should the reference be locked, the stored lock_id MUST be equal to the given value. |
| Field | Type | Label | Description |
| status | cs3.rpc.v1beta1.Status | REQUIRED. The response status. |
|
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| ref | Reference | REQUIRED. The reference on which the lock should be set, if no lock is present. |
|
| lock | Lock | REQUIRED. The lock metadata. |
| Field | Type | Label | Description |
| status | cs3.rpc.v1beta1.Status | REQUIRED. The response status. |
|
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| ref | Reference | REQUIRED. The reference to which the action should be performed. |
|
| arbitrary_metadata_keys | string | repeated | OPTIONAL. Arbitrary metadata be included with the resource. A key with the name '*' means to return all available arbitrary metadata. |
| field_mask | google.protobuf.FieldMask | OPTIONAL. The field mask applies to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask |
| Field | Type | Label | Description |
| status | cs3.rpc.v1beta1.Status | REQUIRED. The response status. |
|
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| info | ResourceInfo | REQUIRED. The resource information. |
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| ref | Reference | REQUIRED. The reference to which the action should be performed. |
| Field | Type | Label | Description |
| status | cs3.rpc.v1beta1.Status | REQUIRED. The response status. |
|
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| ref | Reference | REQUIRED. The reference the lock is associated to. |
|
| lock | Lock | REQUIRED. The lock metadata. |
| Field | Type | Label | Description |
| status | cs3.rpc.v1beta1.Status | REQUIRED. The response status. |
|
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| ref | Reference | REQUIRED. The reference to which the action should be performed. |
|
| arbitrary_metadata_keys | string | repeated | REQUIRED. The arbitrary metadata to delete. |
| lock_id | string | OPTIONAL. A lock_id: should the reference be locked, the stored lock_id MUST be equal to the given value. |
| Field | Type | Label | Description |
| status | cs3.rpc.v1beta1.Status | REQUIRED. The response status. |
|
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| ref | Reference | REQUIRED. The reference to which the action should be performed. |
|
| grant | Grant | REQUIRED. The grant to be updated. |
|
| lock_id | string | OPTIONAL. A lock_id: should the reference be locked, the stored lock_id MUST be equal to the given value. |
| Field | Type | Label | Description |
| status | cs3.rpc.v1beta1.Status | REQUIRED. The response status. |
|
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| storage_space | StorageSpace | REQUIRED. |
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| status | cs3.rpc.v1beta1.Status | REQUIRED. The response status. |
|
| storage_space | StorageSpace | REQUIRED. The updated storage space. |
The filter to apply.
| Name | Number | Description |
| TYPE_INVALID | 0 | |
| TYPE_NO | 1 | |
| TYPE_ID | 2 | |
| TYPE_OWNER | 3 | |
| TYPE_SPACE_TYPE | 4 | |
| TYPE_PATH | 5 | |
| TYPE_USER | 6 |
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.
| Method Name | Request Type | Response Type | Description |
| AddGrant | AddGrantRequest | AddGrantResponse | Adds a new grant for the provided reference. MUST return CODE_NOT_FOUND if the reference does not exist |
| CreateContainer | CreateContainerRequest | CreateContainerResponse | Creates a new resource of type container. MUST return CODE_FAILED_PRECONDITION if the container cannot be created at the specified reference. |
| TouchFile | TouchFileRequest | TouchFileResponse | Creates a new resource of type file. MUST return CODE_FAILED_PRECONDITION if the file cannot be created at the specified reference. |
| Delete | DeleteRequest | DeleteResponse | 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. |
| DenyGrant | DenyGrantRequest | DenyGrantResponse | Denies access to the provided reference. MUST return CODE_NOT_FOUND if the reference does not exist |
| GetPath | GetPathRequest | GetPathResponse | Returns the path reference for the provided resource id reference. MUST return CODE_NOT_FOUND if the reference does not exist |
| GetQuota | GetQuotaRequest | GetQuotaResponse | 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. |
| InitiateFileDownload | InitiateFileDownloadRequest | InitiateFileDownloadResponse | Initiates the download of a file using an out-of-band data transfer mechanism. |
| InitiateFileUpload | InitiateFileUploadRequest | InitiateFileUploadResponse | Initiates the upload of a file using an out-of-band data transfer mechanism. |
| ListGrants | ListGrantsRequest | ListGrantsResponse | Returns the list of grants for the provided reference. MUST return CODE_NOT_FOUND if the reference does not exists. |
| ListContainerStream | ListContainerStreamRequest | ListContainerStreamResponse stream | Returns a stream of resource informations for the provided reference. MUST return CODE_NOT_FOUND if the reference does not exists. |
| ListContainer | ListContainerRequest | ListContainerResponse | Returns a list of resource information for the provided reference. MUST return CODE_NOT_FOUND if the reference does not exists. |
| ListFileVersions | ListFileVersionsRequest | ListFileVersionsResponse | 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? |
| ListRecycleStream | ListRecycleStreamRequest | ListRecycleStreamResponse stream | Returns a stream of recycle items for this storage provider. |
| ListRecycle | ListRecycleRequest | ListRecycleResponse | 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. |
| Move | MoveRequest | MoveResponse | 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. |
| RemoveGrant | RemoveGrantRequest | RemoveGrantResponse | 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. |
| PurgeRecycle | PurgeRecycleRequest | PurgeRecycleResponse | 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. |
| RestoreFileVersion | RestoreFileVersionRequest | RestoreFileVersionResponse | 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. |
| RestoreRecycleItem | RestoreRecycleItemRequest | RestoreRecycleItemResponse | 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. |
| Stat | StatRequest | StatResponse | Returns the resource information at the provided reference. MUST return CODE_NOT_FOUND if the reference does not exist. |
| UpdateGrant | UpdateGrantRequest | UpdateGrantResponse | 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. |
| CreateSymlink | CreateSymlinkRequest | CreateSymlinkResponse | Creates a symlink to another resource. |
| CreateReference | CreateReferenceRequest | CreateReferenceResponse | 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. |
| SetArbitraryMetadata | SetArbitraryMetadataRequest | SetArbitraryMetadataResponse | Sets arbitrary metadata into a storage resource. Arbitrary metadata is returned in a cs3.storageprovider.v1beta1.ResourceInfo. |
| UnsetArbitraryMetadata | UnsetArbitraryMetadataRequest | UnsetArbitraryMetadataResponse | Unsets arbitrary metdata into a storage resource. Arbitrary metadata is returned in a cs3.storageprovider.v1beta1.ResourceInfo. |
| SetLock | SetLockRequest | SetLockResponse | 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. |
| GetLock | GetLockRequest | GetLockResponse | 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. |
| RefreshLock | RefreshLockRequest | RefreshLockResponse | 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. |
| Unlock | UnlockRequest | UnlockResponse | 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. |
| CreateHome | CreateHomeRequest | CreateHomeResponse | Creates the home directory for a user. |
| GetHome | GetHomeRequest | GetHomeResponse | Gets the home path for the user. |
| CreateStorageSpace | CreateStorageSpaceRequest | CreateStorageSpaceResponse | Creates a storage space. |
| ListStorageSpaces | ListStorageSpacesRequest | ListStorageSpacesResponse | Lists storage spaces. |
| UpdateStorageSpace | UpdateStorageSpaceRequest | UpdateStorageSpaceResponse | Updates a storage space. |
| DeleteStorageSpace | DeleteStorageSpaceRequest | DeleteStorageSpaceResponse | Deletes a storage space. |
Arbitrary metadata than can be set to the resource.
| Field | Type | Label | Description |
| metadata | ArbitraryMetadata.MetadataEntry | repeated |
|
| Field | Type | Label | Description |
| key | string |
|
|
| value | string |
|
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.
| Field | Type | Label | Description |
| target | Reference | 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. |
A file download protocol object stores information about
downloading resources using a specific protocol.
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| protocol | string | REQUIRED. The protocol to be followed. |
|
| download_endpoint | string | REQUIRED. The endpoint where to download the data. The value MUST be a Uniform Resource Identifier (URI) as specified in RFC 3986. |
|
| expose | bool | 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.
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| protocol | string | REQUIRED. The protocol to be followed. |
|
| upload_endpoint | string | REQUIRED. The endpoint where to upload the data. The value MUST be a Uniform Resource Identifier (URI) as specified in RFC 3986. |
|
| available_checksums | ResourceChecksumPriority | repeated | REQUIRED. List of available checksums the client can use when sending the file. |
| expose | bool | REQUIRED. Tells to the gateway if the client should be exposed directly to the upload_endpoint. |
|
| expiration | cs3.types.v1beta1.Timestamp | OPTIONAL. The time at which the upload will expire. |
The information for a file version.
TODO(labkode): make size and mtime OPTIONAL?
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| key | string | MUST the specified. The key to identify the version. |
|
| size | uint64 | REQUIRED. The size in bytes of the file version. |
|
| mtime | uint64 | REQUIRED. The Unix Epoch timestamp in seconds. |
|
| etag | string | 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. |
A grant grants permissions
to a resource to a grantee.
| Field | Type | Label | Description |
| grantee | Grantee | REQUIRED. The grantee of the grant. |
|
| permissions | ResourcePermissions | REQUIRED. The permissions for the grant. |
|
| creator | cs3.identity.user.v1beta1.UserId | OPTIONAL The Creator of the grant |
|
| expiration | cs3.types.v1beta1.Timestamp | OPTIONAL Expiration of the grant. |
A grantee is the receiver of a grant.
| Field | Type | Label | Description |
| type | GranteeType | REQUIRED. The type of the grantee. |
|
| user_id | cs3.identity.user.v1beta1.UserId | The user id. |
|
| group_id | cs3.identity.group.v1beta1.GroupId | The group id. |
|
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information such as UID or GID. |
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.
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| lock_id | string | REQUIRED. The id of the lock, eg. the X-WOPI-Lock id or the WebDAV opaquelocktoken. |
|
| type | LockType | REQUIRED. The type of lock. |
|
| user | cs3.identity.user.v1beta1.UserId | 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. |
|
| app_name | string | 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. |
|
| expiration | cs3.types.v1beta1.Timestamp | OPTIONAL. The time when the lock will expire. |
Represents a quota for a storage space.
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| quota_max_bytes | uint64 | OPTIONAL. The bytes quota for the user. |
|
| quota_max_files | uint64 | OPTIONAL. The files quota for the user. |
A recycle item represents the information
of a deleted resource.
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| type | ResourceType | REQUIRED. The type of the resource. |
|
| key | string | REQUIRED. The key to identify the deleted resource. |
|
| ref | Reference | REQUIRED. The original reference of the deleted resource. |
|
| size | uint64 | OPTIONAL. The size of the deleted resource. |
|
| deletion_time | cs3.types.v1beta1.Timestamp | 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:
| Field | Type | Label | Description |
| resource_id | ResourceId | OPTIONAL |
|
| path | string | 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. |
The checksum to verify
the integrity of a resource.
| Field | Type | Label | Description |
| type | ResourceChecksumType | REQUIRED. The type of checksum to use. If no checksum is provided, type MUST be RESOURCE_CHECKSUM_TYPE_UNSET. |
|
| sum | string | 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.
| Field | Type | Label | Description |
| type | ResourceChecksumType |
|
|
| priority | uint32 |
|
A resource id uniquely identifies a
resource in the storage provider namespace.
A ResourceId MUST be unique in the storage provider.
| Field | Type | Label | Description |
| storage_id | string | REQUIRED. The logical id of a storage. Used by the storage registry to determine the responsible storage provider. |
|
| opaque_id | string | REQUIRED. The internal id used by service implementor to uniquely identity the resource in the internal implementation of the service. |
|
| space_id | string | 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, ...).
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| type | ResourceType | REQUIRED. The type of the resource (container, file, ...) See the enum ResourceType for all possible types. |
|
| id | ResourceId | REQUIRED. Opaque unique identifier of the resource. |
|
| checksum | ResourceChecksum | REQUIRED. The data checksum for the file resource. For all other resources, the checksum is unset. |
|
| etag | string | 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. |
|
| mime_type | string | REQUIRED. As described in [RFC 2015](https://tools.ietf.org/html/rfc2045#page-7) |
|
| mtime | cs3.types.v1beta1.Timestamp | REQUIRED. Last modification time (mtime) of file or directory contents. For reference types this is NOT the mtime of the target. |
|
| path | string | 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. |
|
| permission_set | ResourcePermissions | REQUIRED. The set of permissions for the resource effective for the authenticated user. |
|
| size | uint64 | 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) |
|
| owner | cs3.identity.user.v1beta1.UserId | REQUIRED. Identifier of the owner of the resource. |
|
| target | string | OPTIONAL. if ResourceType is either RESOURCE_TYPE_SYMLINK or RESOURCE_TYPE_REFERENCE it MUST be specified. |
|
| canonical_metadata | CanonicalMetadata | OPTIONAL. Additional metadata attached to the resource. If ResourceType is RESOURCE_TYPE_REFERENCE it MUST be specified. |
|
| arbitrary_metadata | ArbitraryMetadata | OPTIONAL. Arbitrary metadata attached to a resource. |
|
| lock | Lock | 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. |
|
| advisory_locks | Lock | repeated | OPTIONAL. Advisory locks on this resource. Can be used for shared locks or other forms of collaborative locks. |
| parent_id | ResourceId | 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. |
|
| name | string | OPTIONAL The name of the resource. |
|
| space | StorageSpace | OPTIONAL. StorageSpace where this resource is located. |
The representation of permissions attached to a resource.
| Field | Type | Label | Description |
| add_grant | bool |
|
|
| create_container | bool |
|
|
| delete | bool |
|
|
| get_path | bool |
|
|
| get_quota | bool |
|
|
| initiate_file_download | bool |
|
|
| initiate_file_upload | bool |
|
|
| list_grants | bool |
|
|
| list_container | bool |
|
|
| list_file_versions | bool |
|
|
| list_recycle | bool |
|
|
| move | bool |
|
|
| remove_grant | bool |
|
|
| purge_recycle | bool |
|
|
| restore_file_version | bool |
|
|
| restore_recycle_item | bool |
|
|
| stat | bool |
|
|
| update_grant | bool |
|
|
| deny_grant | bool |
|
Represents a storage space which could be a 'home', 'share' etc...
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| id | StorageSpaceId | REQUIRED. |
|
| owner | cs3.identity.user.v1beta1.User | OPTIONAL. |
|
| root | ResourceId | OPTIONAL. The root resource id of the storage space. |
|
| name | string | OPTIONAL. |
|
| quota | Quota | OPTIONAL. |
|
| space_type | string | OPTIONAL. Could be 'home', 'share', 'project', 'space'... |
|
| mtime | cs3.types.v1beta1.Timestamp | OPTIONAL. Last modification time (mtime) of the root resource of this storage space. |
|
| root_info | ResourceInfo | OPTIONAL. Resource info for the storage space root. |
The id of a storage space.
| Field | Type | Label | Description |
| opaque_id | string | REQUIRED. The internal storage space id. |
The type of the grantee.
| Name | Number | Description |
| GRANTEE_TYPE_INVALID | 0 | |
| GRANTEE_TYPE_USER | 1 | This type represents an individual. |
| GRANTEE_TYPE_GROUP | 2 | This type represents a group of individuals. |
The available type of locks for a resource.
| Name | Number | Description |
| LOCK_TYPE_INVALID | 0 | |
| LOCK_TYPE_SHARED | 1 | Shared (advisory) lock: the resource can be read, written/overwritten or unlocked by everyone who has access. |
| LOCK_TYPE_WRITE | 2 | Write lock: the resource can be read by everyone who has access, but write, refreshlock and unlock operations are restricted to the lock holder. |
| LOCK_TYPE_EXCL | 3 | Exclusive lock: only the lock holder can operate on the resource, anyone else is denied to access it. |
The type of checksum to use.
| Name | Number | Description |
| RESOURCE_CHECKSUM_TYPE_INVALID | 0 | |
| RESOURCE_CHECKSUM_TYPE_UNSET | 1 | unset means no checksum is set. |
| RESOURCE_CHECKSUM_TYPE_ADLER32 | 2 | Use Adler32 checksum. |
| RESOURCE_CHECKSUM_TYPE_MD5 | 3 | Use MD5 checksum. |
| RESOURCE_CHECKSUM_TYPE_SHA1 | 4 | Use SHA-1 checksum. |
The available types of resources.
| Name | Number | Description |
| RESOURCE_TYPE_INVALID | 0 | |
| RESOURCE_TYPE_FILE | 1 | The file type represents a type that holds arbitrary data. Service implementors usually map this type to files (local filesystem) or objects (Amazon S3). |
| RESOURCE_TYPE_CONTAINER | 2 | 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). |
| RESOURCE_TYPE_REFERENCE | 3 | 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. |
| RESOURCE_TYPE_SYMLINK | 4 | This represents a symbolic link type if the underlying storage system supports it. Symlink target SHOULD NOT be interpreted by the clients. |
| RESOURCE_TYPE_INTERNAL | 5 | 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. |
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
| Field | Type | Label | Description |
| status | cs3.rpc.v1beta1.Status | REQUIRED. The response status. |
|
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| provider | ProviderInfo | REQUIRED. The storage provider for the user home. |
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| ref | cs3.storage.provider.v1beta1.Reference | REQUIRED. The reference for the resource. |
| Field | Type | Label | Description |
| status | cs3.rpc.v1beta1.Status | REQUIRED. The response status. |
|
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| providers | ProviderInfo | repeated | REQUIRED. The storage providers handling the requested storage resource. |
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. TODO(labkode): maybe add some filter? |
| Field | Type | Label | Description |
| status | cs3.rpc.v1beta1.Status | REQUIRED. The response status. |
|
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information. |
|
| providers | ProviderInfo | repeated | REQUIRED. The list of storage providers this registry knows about. |
Storage Registry API
The Storage Registry API is meant to as registry to obtain
information of available storage providers.
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.
| Method Name | Request Type | Response Type | Description |
| GetStorageProviders | GetStorageProvidersRequest | GetStorageProvidersResponse | Returns the storage provider that is reponsible for the given resource reference. MUST return CODE_NOT_FOUND if the reference does not exist. |
| ListStorageProviders | ListStorageProvidersRequest | ListStorageProvidersResponse | Returns a list of the available storage providers known by this registry. |
| GetHome | GetHomeRequest | GetHomeResponse | Gets the user home storage provider. TODO(labkode): missing methods for adding and removing a storage provider with different visibility levels (system-wide, user-wide, group-wide)... |
The information for the storage provider.
| Field | Type | Label | Description |
| opaque | cs3.types.v1beta1.Opaque | OPTIONAL. Opaque information (containing storage-specific information). For example, additional metadata attached to the resource. |
|
| provider_id | string | REQUIRED. The storage provider id that will become part of the resource id. For example, if the provider_id is "home", resources obtained from this storage provider will have a resource id like "home:1234". |
|
| provider_path | string | REQUIRED. The public path prefix this storage provider handles. In Unix literature, the mount path. For example, if the provider_path is "/home", resources obtained from this storage provier will have a resource path lik "/home/docs". |
|
| address | string | REQUIRED. The address where the storage provider can be reached. For example, tcp://localhost:1099. |
|
| description | string | OPTIONAL. Information to describe the functionalities offered by the storage provider. Meant to be read by humans. |
|
| features | ProviderInfo.Features | REQUIRED. List of available methods. |
REQUIRED.
Represents the list of features available
on this storage provider. If the feature is not supported,
the related service methods MUST return CODE_UNIMPLEMENTED.
| Field | Type | Label | Description |
| recycle | bool |
|
|
| file_versions | bool |
|
| .proto Type | Notes | C++ Type | Java Type | Python Type |
| double | double | double | float | |
| float | 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 |
| 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 |
| uint32 | Uses variable-length encoding. | uint32 | int | int/long |
| uint64 | Uses variable-length encoding. | uint64 | long | int/long |
| sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int |
| sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long |
| fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int |
| fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long |
| sfixed32 | Always four bytes. | int32 | int | int |
| sfixed64 | Always eight bytes. | int64 | long | int/long |
| bool | bool | boolean | boolean | |
| string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode |
| bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str |


Music Notation day two
created after Lynda.com through definition lesson
- ♭ flat
- ♮ natural
- ♯ sharp
- 𝄪 double sharp
- 𝄫 double flat
- 𝄞 G clef
- 𝄡 C clef
- 𝄢 F clef
- ♩ quarter note
- ♪ eighth note
- ♫ beamed eighth notes
- ♬ beamed sixteenth notes
Above is how the unordered list element looks
- ♭ flat
- ♮ natural
- ♯ sharp
- 𝄪 double sharp
- 𝄫 double flat
- 𝄞 G clef
- 𝄡 C clef
- 𝄢 F clef
- ♩ quarter note
- ♪ eighth note
- ♫ beamed eighth notes
- ♬ beamed sixteenth notes
The ordered list element is used in this list. Note the numbers.


Allen works as our software developer at Japotech solutions. She makes sure all our clients needs are met. Additionally she is a STEM (Science, Technology, Engineering and Math) Educator.
Jayne works as our senior software developer at Japotech solutions. She makes sure all our clients needs are met. Additionally she is a systems analyst
Hanifa works as our field manager at Japotech solutions. She makes sure all our clients needs are met. Additionally she is a lawyer


In most cases, the query criteria input is similar as the master dataset input, so we can clone the master dataset as the query criteria dataset. The criteria dataset and master dataset share the same field data type, validation rule(like field 'Name') and lookup data(like field "Department").
You can change the criteria dataset configurations freely. In this demo, the "Birthday" field is changed to "From ... To ..." style.


{{define "Navbar"}}
Note: Inner Hearth Yoga is neither affiliated with nor endorsed by any of the above entities.


This analysis is a placeholder with a sample set. If you want to contribute new analyses for the site, contact Disaster Area on Discord.
- Slash
- Surf
- Rest
- Body Slam
This analysis is a placeholder with a sample set. If you want to contribute new analyses for the site, contact Disaster Area on Discord.
- Swords Dance
- Surf
- Hyper Beam
- Slash / Body Slam
This analysis is a placeholder with a sample set. If you want to contribute new analyses for the site, contact Disaster Area on Discord.
Ice Beam
This analysis is a placeholder with a sample set. If you want to contribute new analyses for the site, contact Disaster Area on Discord.
Author: Disaster Area
Publish Date: 9th June 2020


the and with were for virus cells was IAV al., The (). using that membrane ASMase viral infection bSMase influenza during lipid {background are assessed activity then infection. untreated bSMase-treated margin plasma treated effect not {border-style MOI assay (Figure al. depletion entry envelope host plaque px;} rafts #ffffff;} cells. from incubated shown antibody attachment desipramine human infected its treatment washed cell infectivity into which P-value RNA results < Influenza inoculated yield Virus confocal exogenous reduction replication viruses U/ml against before ceramide concentrations efficient hpi increasing internalization reduced role ./JVI.- Assay Statistical Therefore, This University VIM Virol.–. also cellular due have independent infection, inhibition min observed required sphingomyelin sphingomyelinase upon used vehicle MDCK MTT PBS Sphingomyelin after allow assay. budding compared demonstrated determined fibroblasts followed fusion left mouse px; relative significantly two vehicle-treated {font-family (HBSS) (IAV) .). Cells FIGURE However, RT-PCR anti-influenza assembly binding cholesterol containing culture experiments. font-size impaired performed previously significance sphingolipids t-test their these this total virus, Alexa American Depletion SM, These acid adsorption anti-mouse between double; endosomal essential examined found has inhibitory life microdomains microscopy plotted pretreated shown. specifically stock supernatant target virions whether °C. (Figures (HN) All Cell Faculty Fluor For Means Medicine, NPA Research SM-depleted U/ml) Viral absence affect been border-color border-width both cells, conjugated control described diluted endocytosis entry. finding following hpi. hydrolysis images indicated intact internalization. labeled measured metabolism might min. obtained our outer prior require requirement showed solid; stained study, supplemented therapeutic titers twice type {font-style {font-weight (A) (green) -well Acad. Alternatively, Briefly, Cytotoxicity Exogenous Host Lipid Natl. Res.–. Results Sci. U.S.A.–. Verma Virol.:e-. ZEN activation amantadine anti-NP article assess associated bold bovine cold content courier; cycle data decrease determine did different does drug each early either em; glycoproteins important increase inhibitor inoculation intensities internalized levels major may microscopy. objective oil pharmacological presence primary properties protein pt;} quantified regulating removed, replication. representative ribonucleoprotein sphingolipid suggesting suppressed suppresses through tissue titer viability well within without °C,


Your message
No message found - it never existed, is expired, was received or was burned!
Start new Secure Transfer


{% extends "frame.html" %} {% load sleep_tags %} {% block content %}
zScore allows you to track and share your sleep. To see how it works, create an account or check out the leaderboard. It's still very much in alpha and written by hosed college students, so expect things to randomly break. If you notice a bug or want a feature, submit feedback or email the devs.
{% endblock %}


ATEEZ Amazes Fans with Their Natural Look on Naver's NOW
by stigmataOn November 20, ATEEZ appeared as hosts on Naver's live studio 'NOW's 'School Road' segment. The live broadcast which started at 8 A.M. (KST). In addition to sincere conversations, members sang songs of their choice.
Meanwhile members' photos that were taken during the live streaming broadcast drew a lot of attention. The biggest reason was because they were all makeup free and still had stunning visuals! The group has proved that their visuals are above the standards.
https://twitter.com/kr_now/status/1197083664519028736
https://twitter.com/kr_now/status/1197083343830913024


LoveSpell Spell the words that use all the letters. CLICK any 3 or more letters. Click the heart to confirm. Click a selected letter to remove it from the word. If you cannot use all the letters, click Restart. Clear the board to advance to the next grade. To cheat to a higher grade, click the grade number and then click Restart. Ethan Kennerly, February 14, 2015


RateLimitError
public final class RateLimitError: ContentfulError
For requests that do hit the Contentful Delivery API enforces rate limits of 78 requests per second and 280800 requests per hour by default. Higher rate limits may apply depending on your current plan.
-
An integer specifying the time before one of the two limits resets and another request to the API will be accepted. If the client is rate limited per second, the header will return 1, which means the next second. If the client is rate limited per hour, the next reset will be determined like this: Every request which was made in the last hour gets counted in one of four 15 minute buckets. Every time a request comes in, the API calculates how many seconds remain until the sum of all bucket counts will be below the hourly limit. See the API Rate Limit docs for more information.
Declaration
Swift
public internal(set) var timeBeforeLimitReset: Int?


White to play 46
pips White=167 Black=162
(CorrectAnswer= 0/0, ErrorScore= 0)
1. 8/2 6/2 eq: -0.055 48.18% (G:14.78% B:0.71%) 51.82% (G:14.63% B:0.68%) 2. 24/14 eq: -0.063 (-0.008) 48.82% (G:11.31% B:0.47%) 51.18% (G:13.98% B:0.48%) 3. 24/18 13/9 eq: -0.080 (-0.024) 48.30% (G:12.54% B:0.58%) 51.70% (G:15.15% B:0.65%) 4. 13/9 13/7 eq: -0.123 (-0.067) 46.94% (G:13.36% B:0.67%) 53.06% (G:15.70% B:1.05%) 5. 24/20 13/7 eq: -0.130 (-0.075) 46.79% (G:12.10% B:0.53%) 53.21% (G:14.50% B:0.66%)