Get desktop application:
View/edit binary Protocol Buffers messages
OCM API The OCM API is a share API meant for local users to offer local resources to remote recipients via the Open Cloud Mesh (OCM) protocol, and to manipulate shares received from remote users. Implementations are expected to call remote `/ocm` endpoints in response to the payloads received via this API. The APIs match the OCM v1.2+ 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.
Defines how a remote OCM recipient accesses a local resource when serving a share. This is a subset of the OCM protocol specifications.
Used in: , ,
REQUIRED. One of the access method MUST be specified.
Options for the WebDAV access method.
Options for the Webapp access method.
Options for a generic access method. Used to implement future access methods.
The available access types for an OCM resource.
Used in: ,
The resource is to be accessed remotely or interactively.
The resource is to be transferred to the recipient.
Used as request type in: gateway.v1beta1.GatewayAPI.CreateOCMShare, OcmAPI.CreateOCMShare
OPTIONAL. Opaque information.
REQUIRED. The unique identifier for the shared storage resource.
REQUIRED. The grantee for the share.
REQUIRED. The details of the recipient user's mesh provider.
REQUIRED. The protocols used to access the resource from remote.
OPTIONAL. The expiration time for the ocm share.
Used as response type in: gateway.v1beta1.GatewayAPI.CreateOCMShare, OcmAPI.CreateOCMShare
REQUIRED. The response status.
OPTIONAL. Opaque information.
REQUIRED. The created share.
OPTIONAL. Display name of the recipient of the share.
Defines the options for the Embedded protocol.
Used in:
REQUIRED. The embedded payload.
Used as request type in: gateway.v1beta1.GatewayAPI.GetOCMShareByToken, OcmAPI.GetOCMShareByToken
REQUIRED. The unlisted token to identify the public share.
Used as response type in: gateway.v1beta1.GatewayAPI.GetOCMShareByToken, OcmAPI.GetOCMShareByToken
REQUIRED. The response status.
REQUIRED. The share.
Used as request type in: gateway.v1beta1.GatewayAPI.GetOCMShare, OcmAPI.GetOCMShare
OPTIONAL. Opaque information.
REQUIRED. The reference to which the action should be performed.
Used as response type in: gateway.v1beta1.GatewayAPI.GetOCMShare, OcmAPI.GetOCMShare
REQUIRED. The response status.
OPTIONAL. Opaque information.
REQUIRED. The share.
Used as request type in: gateway.v1beta1.GatewayAPI.GetReceivedOCMShare, OcmAPI.GetReceivedOCMShare
OPTIONAL. Opaque information.
REQUIRED. The reference of the received share.
Used as response type in: gateway.v1beta1.GatewayAPI.GetReceivedOCMShare, OcmAPI.GetReceivedOCMShare
REQUIRED. The response status.
OPTIONAL. Opaque information.
REQUIRED. The share.
Used as request type in: gateway.v1beta1.GatewayAPI.ListExistingOCMShares, gateway.v1beta1.GatewayAPI.ListOCMShares, OcmAPI.ListOCMShares
OPTIONAL. Opaque information.
OPTIONAL. The list of filters to apply if any.
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. represents a filter to apply to the request.
Used in:
REQUIRED.
REQUIRED. The filter to apply.
Used in:
Used as response type in: gateway.v1beta1.GatewayAPI.ListOCMShares, OcmAPI.ListOCMShares
REQUIRED. The response status.
OPTIONAL. Opaque information.
REQUIRED. The list of shares.
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.ListReceivedOCMShares, OcmAPI.ListReceivedOCMShares
OPTIONAL. Opaque information.
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.
OPTIONAL. The list of filters to apply if any.
Used in:
REQUIRED.
REQUIRED. The filter to apply.
Used in:
Used as response type in: gateway.v1beta1.GatewayAPI.ListReceivedOCMShares, OcmAPI.ListReceivedOCMShares
REQUIRED. The response status.
OPTIONAL. Opaque information.
REQUIRED. The list of received shares.
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 protocol which is used to get access to a remote OCM resource.
Used in: , , , ,
REQUIRED. One of the protocols MUST be specified.
Options for WebDAV protocol.
Options for Webapp protocol.
Options for a generic protocol. Used to implement future protocols in the OCM specs.
Options for embedded protocol.
A received share represents a share offered by a remote user to a local grantee.
Used in: , ,
REQUIRED. Opaque unique identifier of the share.
REQUIRED. Name of the shared resource.
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.
REQUIRED. The receiver of the share, like a user, group ...
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.
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.
REQUIRED. Creation time of the share.
REQUIRED. Last modification time of the share.
OPTIONAL. The expiration time for the ocm share.
REQUIRED. Recipient share type. Deprecated: use recipient_type instead.
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.
REQUIRED. The state of the share.
OPTIONAL.
REQUIRED. Resource type. Deprecated: a resource might not always be a storage resource, use shared_resource_type instead.
OPTIONAL. A nonce to be exchanged for a (potentially short-lived) bearer token. Deprecated in OCM 1.3.
REQUIRED. Recipient type, e.g. user or group.
REQUIRED. Shared resource type.
OPTIONAL. Destination path of the share, in case the shared resource type is EMBEDDED or the access type is DATATX.
OPTIONAL. Flag to hide the share, defaults to false.
Defines the types of recipient for an OCM share.
Used in: , , ,
Share of type user.
Share of type group.
Used as request type in: gateway.v1beta1.GatewayAPI.RemoveOCMShare, OcmAPI.RemoveOCMShare
OPTIONAL. Opaque information.
REQUIRED. The reference to which the action should be performed.
Used as response type in: gateway.v1beta1.GatewayAPI.RemoveOCMShare, OcmAPI.RemoveOCMShare
REQUIRED. The response status.
OPTIONAL. Opaque information.
OCM Shares are shares created by a local owner (usually the authenticated user), who grants permissions to a remote recipient (grantee) on a specified (local) resource (resource_id). UserShares represents both user and groups.
Used in: , , , ,
REQUIRED. Opaque unique identifier of the share.
REQUIRED. Unique identifier of the shared resource.
REQUIRED. Name of the shared resource.
REQUIRED. The unlisted token to give access to the ocm share.
REQUIRED. The receiver of the share, like a user, group ...
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.
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.
REQUIRED. Creation time of the share.
REQUIRED. Last modification time of the share.
OPTIONAL. The expiration time for the OCM share.
REQUIRED. Recipient share type. Deprecated: use recipient_type instead.
REQUIRED. Access methods represent how remote users would access the local resource.
OPTIONAL. A nonce to be exchanged for a (potentially short-lived) bearer token. Deprecated in OCM 1.3.
OPTIONAL.
REQUIRED. Recipient type, e.g. user or group.
A share id identifies uniquely a share in the share provider namespace. A ShareId MUST be unique inside the share provider.
Used in: , , , , ,
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")
Used in:
REQUIRED.
REQUIRED.
REQUIRED.
The permissions for an OCM share. Deprecated: reshare is redundant with grant permissions.
Used in:
The mechanism to identify a share in the share provider namespace.
Used in: , , ,
REQUIRED. One of the specifications MUST be specified.
The id of the share.
The combination of fields that make the share unique.
The token of the share.
The state of the share.
Used in:
The share is no longer valid, for example, the share expired.
New shares MUST be created in the SHARE_STATE_PENDING state. This state means the share is pending to be accepted, processed or rejected by the recipient of the share.
The recipient of the share has accepted the share or processed the share.
The recipient of the share has rejected the share. Does not mean the share is removed, the recipient MAY change the state to accepted or pending.
The recipient of the share is transferring a copy of the resource: this MAY apply to shares with DATATX access type or to embedded shares
Defines the type of share based on its recipient. Deprecated: use RecipientType instead.
Used in: , , , , ,
Share of type user.
Share of type group.
The available types of shared resources.
Used in: , ,
The file type represents a type that holds arbitrary data.
The container type represents a type that can contain other resources.
The embedded type represents resources that are embedded inside the received share payload, for which there's no remote access to be performed. See also the `embedded` protocol.
Used as request type in: gateway.v1beta1.GatewayAPI.UpdateOCMShare, OcmAPI.UpdateOCMShare
OPTIONAL. Opaque information.
REQUIRED.
REQUIRED.
Used in:
One of the update fields MUST be specified.
Update the expiration.
Update access methods.
Used as response type in: gateway.v1beta1.GatewayAPI.UpdateOCMShare, OcmAPI.UpdateOCMShare
REQUIRED. The response status.
OPTIONAL. Opaque information.
TODO(labkode): clean up display_name ? we'll use storage links for that.
Used as request type in: gateway.v1beta1.GatewayAPI.UpdateReceivedOCMShare, OcmAPI.UpdateReceivedOCMShare
OPTIONAL. Opaque information.
REQUIRED. The received share to update.
The update 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.UpdateReceivedOCMShare, OcmAPI.UpdateReceivedOCMShare
REQUIRED. The response status.
OPTIONAL. Opaque information.
Defines the options for the WebDAV access method, representing how a remote user accesses a local resource via the `webdav` OCM protocol.
Used in:
REQUIRED. The permissions for the share.
OPTIONAL. The requirements for the share.
OPTIONAL. Access types for the share, e.g. remote or data transfer. Defaults to remote.
Defines the options for the WebDAV protocol, mapping to the `webdav` protocol in the OCM specifications.
Used in:
REQUIRED. Secret used to access the resource.
Permissions of the shared resource. Deprecated: use share_permissions instead.
REQUIRED. URI used to access the resource.
OPTIONAL. The requirements for the share.
OPTIONAL. Access types for the share, e.g. remote or data transfer. Defaults to remote.
REQUIRED. Permissions of the shared resource.
Defines the options for the Webapp access method, representing how a remote user accesses a local app via the `webapp` OCM protocol.
Used in:
REQUIRED. The permissions for the share.
REQUIRED. The requirements for the share.
OPTIONAL. A descriptive name of the app in the remote user interface.
Defines the options for the Webapp protocol, mapping to the `webapp` protocol in the OCM specifications.
Used in:
REQUIRED. Secret used to access the resource.
REQUIRED. Permissions of the shared resource.
REQUIRED. URI to open the resource with the remote app.
REQUIRED. The requirements for the share.
REQUIRED. The targets that can be used to display the remote app.
OPTIONAL. A descriptive name of the remote app in the user interface.
OPTIONAL. A hint in the form of a media (MIME) type of the icon representing the remote app in the user interface.
OPTIONAL. An array of media (MIME) types that the remote application can handle.