diff --git a/cs3/app/provider/v1beta1/provider_api.proto b/cs3/app/provider/v1beta1/provider_api.proto index 84b0f525..c9d9cbc6 100644 --- a/cs3/app/provider/v1beta1/provider_api.proto +++ b/cs3/app/provider/v1beta1/provider_api.proto @@ -84,8 +84,8 @@ message OpenInAppRequest { // the storage provider to read and write. // Service implementors MUST make sure that the access token only grants // access to the requested resource. - // Service implementors should use a ResourceId rather than a filepath to grant access, as - // ResourceIds MUST NOT change when a resource is renamed. + // Service implementors should use a Reference with a root_id and an empty path to grant access, as + // root_ids MUST NOT change when a resource is renamed. // The access token MUST be short-lived. // TODO(labkode): investigate token derivation techniques. string access_token = 4; @@ -134,8 +134,8 @@ message OpenFileInAppProviderRequest { // the storage provider to read and write. // Service implementors MUST make sure that the access token only grants // access to the requested resource. - // Service implementors should use a ResourceId rather than a filename to grant access, as - // ResourceIds MUST NOT change when a resource is renamed. + // Service implementors should use a Reference with a root_id and an empty path to grant access, as + // root_ids MUST NOT change when a resource is renamed. // The access token MUST be short-lived. // TODO(labkode): investigate token derivation techniques. string access_token = 4; diff --git a/cs3/gateway/v1beta1/gateway_api.proto b/cs3/gateway/v1beta1/gateway_api.proto index 4338ee57..b90b2ee0 100644 --- a/cs3/gateway/v1beta1/gateway_api.proto +++ b/cs3/gateway/v1beta1/gateway_api.proto @@ -103,7 +103,7 @@ service GatewayAPI { // MUST return CODE_NOT_FOUND if the reference does not exist. rpc Delete(cs3.storage.provider.v1beta1.DeleteRequest) returns (cs3.storage.provider.v1beta1.DeleteResponse); // Returns the path reference for - // the provided resource id reference. + // the provided resource reference. // MUST return CODE_NOT_FOUND if the reference does not exist rpc GetPath(cs3.storage.provider.v1beta1.GetPathRequest) returns (cs3.storage.provider.v1beta1.GetPathResponse); // Returns the quota available under the provided diff --git a/cs3/sharing/collaboration/v1beta1/collaboration_api.proto b/cs3/sharing/collaboration/v1beta1/collaboration_api.proto index 94145903..f0173658 100644 --- a/cs3/sharing/collaboration/v1beta1/collaboration_api.proto +++ b/cs3/sharing/collaboration/v1beta1/collaboration_api.proto @@ -150,14 +150,14 @@ message ListSharesRequest { enum Type { TYPE_INVALID = 0; TYPE_NO = 1; - TYPE_RESOURCE_ID = 2; + TYPE_REFERENCE = 2; TYPE_OWNER = 3; TYPE_CREATOR = 4; } // REQUIRED. Type type = 2; oneof term { - storage.provider.v1beta1.ResourceId resource_id = 3; + storage.provider.v1beta1.Reference ref = 3; cs3.identity.user.v1beta1.UserId owner = 4; cs3.identity.user.v1beta1.UserId creator = 5; } diff --git a/cs3/sharing/collaboration/v1beta1/resources.proto b/cs3/sharing/collaboration/v1beta1/resources.proto index 2d1370f3..31566e9f 100644 --- a/cs3/sharing/collaboration/v1beta1/resources.proto +++ b/cs3/sharing/collaboration/v1beta1/resources.proto @@ -34,14 +34,14 @@ import "cs3/types/v1beta1/types.proto"; // 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. +// on a specified resource (reference). UserShares represents both user and groups. message Share { // REQUIRED. // Opaque unique identifier of the share. ShareId id = 1; // REQUIRED. - // Unique identifier of the shared resource. - storage.provider.v1beta1.ResourceId resource_id = 2; + // Unique identifier of the shared resource (path must be empty). + storage.provider.v1beta1.Reference ref = 2; // REQUIRED. // Permissions for the grantee to use // the resource. @@ -122,7 +122,8 @@ message ShareKey { // REQUIRED. cs3.identity.user.v1beta1.UserId owner = 2; // REQUIRED. - storage.provider.v1beta1.ResourceId resource_id = 3; + // Unique identifier of the shared resource (path must be empty). + storage.provider.v1beta1.Reference ref = 3; // REQUIRED. storage.provider.v1beta1.Grantee grantee = 4; } diff --git a/cs3/sharing/link/v1beta1/link_api.proto b/cs3/sharing/link/v1beta1/link_api.proto index 8fbbb9ec..dd3354cb 100644 --- a/cs3/sharing/link/v1beta1/link_api.proto +++ b/cs3/sharing/link/v1beta1/link_api.proto @@ -159,13 +159,14 @@ message ListPublicSharesRequest { // REQUIRED. enum Type { TYPE_INVALID = 0; - TYPE_RESOURCE_ID = 1; + TYPE_REFERENCE = 1; TYPE_OWNER = 2; TYPE_CREATOR = 3; } Type type = 2; oneof term { - storage.provider.v1beta1.ResourceId resource_id = 3; + // Unique identifier of the shared resource (path must be empty). + storage.provider.v1beta1.Reference ref = 3; cs3.identity.user.v1beta1.UserId owner = 4; cs3.identity.user.v1beta1.UserId creator = 5; } diff --git a/cs3/sharing/link/v1beta1/resources.proto b/cs3/sharing/link/v1beta1/resources.proto index 37db210b..4717fec0 100644 --- a/cs3/sharing/link/v1beta1/resources.proto +++ b/cs3/sharing/link/v1beta1/resources.proto @@ -48,7 +48,7 @@ import "cs3/types/v1beta1/types.proto"; // Public share 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. +// on a specified resource (reference). UserShares represents both user and groups. // TODO(labkode): do we need to have resource_type stored on the share? // This is not needed if when getting the shares a stat operation is launched against the // the storage provider. @@ -61,8 +61,8 @@ message PublicShare { // to the public share. string token = 2; // REQUIRED. - // Unique identifier of the shared resource. - storage.provider.v1beta1.ResourceId resource_id = 3; + // Unique identifier of the shared resource (path must be empty). + storage.provider.v1beta1.Reference ref = 3; // REQUIRED. // Permissions for the grantee to use // the resource. diff --git a/cs3/sharing/ocm/v1beta1/ocm_api.proto b/cs3/sharing/ocm/v1beta1/ocm_api.proto index af17547b..a93e18a5 100644 --- a/cs3/sharing/ocm/v1beta1/ocm_api.proto +++ b/cs3/sharing/ocm/v1beta1/ocm_api.proto @@ -87,8 +87,8 @@ message CreateOCMShareRequest { // Opaque information. cs3.types.v1beta1.Opaque opaque = 1; // REQUIRED. - // The unique identifier for the shared storage resource. - storage.provider.v1beta1.ResourceId resource_id = 2; + // Unique identifier of the shared resource (path must be empty). + storage.provider.v1beta1.Reference ref = 2; // REQUIRED. // The share grant for the share. ShareGrant grant = 3; @@ -151,7 +151,7 @@ message ListOCMSharesRequest { enum Type { TYPE_INVALID = 0; TYPE_NO = 1; - TYPE_RESOURCE_ID = 2; + TYPE_REFERENCE = 2; TYPE_OWNER = 3; TYPE_CREATOR = 4; TYPE_OWNER_PROVIDER = 5; @@ -160,7 +160,8 @@ message ListOCMSharesRequest { // REQUIRED. Type type = 2; oneof term { - storage.provider.v1beta1.ResourceId resource_id = 3; + // Unique identifier of the shared resource (path must be empty). + storage.provider.v1beta1.Reference ref = 3; cs3.identity.user.v1beta1.UserId owner = 4; cs3.identity.user.v1beta1.UserId creator = 5; } diff --git a/cs3/sharing/ocm/v1beta1/resources.proto b/cs3/sharing/ocm/v1beta1/resources.proto index efc0c405..24b75761 100644 --- a/cs3/sharing/ocm/v1beta1/resources.proto +++ b/cs3/sharing/ocm/v1beta1/resources.proto @@ -34,14 +34,14 @@ import "cs3/types/v1beta1/types.proto"; // 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. +// on a specified resource (reference). UserShares represents both user and groups. message Share { // REQUIRED. // Opaque unique identifier of the share. ShareId id = 1; // REQUIRED. - // Unique identifier of the shared resource. - storage.provider.v1beta1.ResourceId resource_id = 2; + // Unique identifier of the shared resource (path must be empty). + storage.provider.v1beta1.Reference ref = 2; // REQUIRED. // Name of the shared resource. string name = 3; @@ -134,7 +134,8 @@ message ShareKey { // REQUIRED. cs3.identity.user.v1beta1.UserId owner = 2; // REQUIRED. - storage.provider.v1beta1.ResourceId resource_id = 3; + // Unique identifier of the shared resource (path must be empty). + storage.provider.v1beta1.Reference ref = 3; // REQUIRED. storage.provider.v1beta1.Grantee grantee = 4; } diff --git a/cs3/storage/provider/v1beta1/provider_api.proto b/cs3/storage/provider/v1beta1/provider_api.proto index ce94cddc..e8a1abec 100644 --- a/cs3/storage/provider/v1beta1/provider_api.proto +++ b/cs3/storage/provider/v1beta1/provider_api.proto @@ -64,7 +64,7 @@ service ProviderAPI { // MUST return CODE_NOT_FOUND if the reference does not exist. rpc Delete(DeleteRequest) returns (DeleteResponse); // Returns the path reference for - // the provided resource id reference. + // the provided resource reference. // MUST return CODE_NOT_FOUND if the reference does not exist rpc GetPath(GetPathRequest) returns (GetPathResponse); // Returns the quota available under the provided @@ -169,9 +169,8 @@ message GetHomeResponse { // Opaque information. cs3.types.v1beta1.Opaque opaque = 2; // 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/. - string path = 3; + // The reference to the home in a storage provider. + Reference ref = 3; } message AddGrantRequest { @@ -236,8 +235,8 @@ message GetPathRequest { // Opaque information. cs3.types.v1beta1.Opaque opaque = 1; // REQUIRED. - // The resource id of the resource. - ResourceId resource_id = 2; + // Unique identifier of the shared resource (path must be empty). + Reference ref = 2; } message GetPathResponse { @@ -249,7 +248,7 @@ message GetPathResponse { cs3.types.v1beta1.Opaque opaque = 2; // REQUIRED. // The path of the resource. - string path = 3; + Reference ref = 3; } message GetQuotaRequest { @@ -540,7 +539,7 @@ message RestoreRecycleItemRequest { // the original. // If empty, service implementors MUST restore // to original location if possible. - string restore_path = 4; + Reference restore_ref = 4; } message RestoreRecycleItemResponse { @@ -625,7 +624,7 @@ message CreateSymlinkRequest { cs3.types.v1beta1.Opaque opaque = 1; // REQUIRED. // The location where to store the symlink. - string path = 2; + Reference ref = 2; // REQUIRED. // The link target can hold arbitrary text; if later resolved, // a relative link is interpreted in relation to its parent directory @@ -647,7 +646,7 @@ message CreateReferenceRequest { cs3.types.v1beta1.Opaque opaque = 1; // REQUIRED. // The location where to store the reference. - string path = 2; + Reference ref = 2; // REQUIRED. // The reference resource by RFC3986. string target_uri = 3; diff --git a/cs3/storage/provider/v1beta1/resources.proto b/cs3/storage/provider/v1beta1/resources.proto index fee65dc6..056d62b3 100644 --- a/cs3/storage/provider/v1beta1/resources.proto +++ b/cs3/storage/provider/v1beta1/resources.proto @@ -44,7 +44,7 @@ message ResourceInfo { ResourceType type = 2; // REQUIRED. // Opaque unique identifier of the resource. - ResourceId id = 3; + Reference id = 3; // REQUIRED. // The data checksum for the file resource. // For all other resources, the checksum is unset. @@ -64,9 +64,8 @@ message ResourceInfo { // For reference types this is NOT the mtime of the target. cs3.types.v1beta1.Timestamp mtime = 7; // REQUIRED. - // The path for the resource. - // It MUST start with the slash character (/). - string path = 8; + // The reference for the resource. + Reference path = 8; // REQUIRED. // The set of permissions for the resource effective for the authenticated user. ResourcePermissions permission_set = 9; @@ -189,33 +188,24 @@ message ResourceChecksumPriority { uint32 priority = 2; } -// The mechanism to identify a resource -// in the storage provider namespace. Note that the path OR the resourceId must be specifed, not both. +// 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: +// !: message Reference { - // REQUIRED. - // One of the specifications MUST be specified. - oneof spec { - // The path to the resource. - // MUST start with the slash character (/). - string path = 1; - // The id for the resource. - // MUST NOT start with the slash character (/). - ResourceId id = 2; - } -} - -// A resource id identifies uniquely a -// resource in the storage provider namespace. -// A ResourceId MUST be unique in the storage provider. -message ResourceId { - // REQUIRED. - // The storage id of the storage provider. + // OPTIONAL. + // The logical id of a storage. Used by the storage registry to determine the responsible storage provider. string storage_id = 1; - // REQUIRED. - // The internal id used by service implementor to - // uniquely identity the resource in the internal - // implementation of the service. - string opaque_id = 2; + // OPTIONAL. + // The logical node id used by a storage provider to uniquely identify a resource in a storage. + string node_id = 2; + // OPTIONAL. + // When starting with `/` the reference represents an absolute path. In this case the storage_id and the node_id must be empty. + // When not starting with `/` represents a path relative to the node_id. + // When node_id is empty the path is considered relative to the root of the storage. + string path = 3; } // The representation of permissions attached to a resource. @@ -313,9 +303,8 @@ message RecycleItem { // The key to identify the deleted resource. string key = 3; // REQUIRED. - // The original path of the deleted resource. - // MUST start with the slash character (/). - string path = 4; + // The original reference of the deleted resource. + Reference ref = 4; // OPTIONAL. // The size of the deleted resource. uint64 size = 5; @@ -379,7 +368,7 @@ message StorageSpace { cs3.identity.user.v1beta1.User owner = 3; // OPTIONAL. // The root resource of the storage space. - ResourceId root = 4; + Reference root = 4; // OPTIONAL. string name = 5; // OPTIONAL. diff --git a/docs/index.html b/docs/index.html index 6da9113b..b742d410 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1794,10 +1794,6 @@

Table of Contents

MResourceChecksumPriority -
  • - MResourceId -
  • -
  • MResourceInfo
  • @@ -2624,7 +2620,7 @@

    GatewayAPI

    .cs3.storage.provider.v1beta1.GetPathRequest .cs3.storage.provider.v1beta1.GetPathResponse

    Returns the path reference for -the provided resource id reference. +the provided resource reference. MUST return CODE_NOT_FOUND if the reference does not exist

    @@ -5047,8 +5043,8 @@

    OpenFileInAppProv the storage provider to read and write. Service implementors MUST make sure that the access token only grants access to the requested resource. -Service implementors should use a ResourceId rather than a filename to grant access, as -ResourceIds MUST NOT change when a resource is renamed. +Service implementors should use a Reference with a root_id and an empty path to grant access, as +root_ids MUST NOT change when a resource is renamed. The access token MUST be short-lived. TODO(labkode): investigate token derivation techniques.

    @@ -5144,8 +5140,8 @@

    OpenInAppRequest

    the storage provider to read and write. Service implementors MUST make sure that the access token only grants access to the requested resource. -Service implementors should use a ResourceId rather than a filepath to grant access, as -ResourceIds MUST NOT change when a resource is renamed. +Service implementors should use a Reference with a root_id and an empty path to grant access, as +root_ids MUST NOT change when a resource is renamed. The access token MUST be short-lived. TODO(labkode): investigate token derivation techniques.

    @@ -9371,8 +9367,8 @@

    ListSharesRe - resource_id - cs3.storage.provider.v1beta1.ResourceId + ref + cs3.storage.provider.v1beta1.Reference

    @@ -9752,7 +9748,7 @@

    ListSha - TYPE_RESOURCE_ID + TYPE_REFERENCE 2

    @@ -9896,7 +9892,7 @@

    ReceivedShare

    Share

    -

    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.

    +

    Shares are relationships between a resource owner

    (usually the authenticated user) who grants permissions to a recipient (grantee)

    on a specified resource (reference). UserShares represents both user and groups.

    @@ -9914,11 +9910,11 @@

    Share

    - - + + +Unique identifier of the shared resource (path must be empty).

    @@ -10061,10 +10057,11 @@

    ShareKey

    - - + + - + @@ -10532,10 +10529,10 @@

    ListPublicShare

    - - + + - + @@ -10809,7 +10806,7 @@

    ListPublic

    - + @@ -10988,7 +10985,7 @@

    Grant

    PublicShare

    -

    Public share 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.

    TODO(labkode): do we need to have resource_type stored on the share?

    This is not needed if when getting the shares a stat operation is launched against the

    the storage provider.

    +

    Public share are relationships between a resource owner

    (usually the authenticated user) who grants permissions to a recipient (grantee)

    on a specified resource (reference). UserShares represents both user and groups.

    TODO(labkode): do we need to have resource_type stored on the share?

    This is not needed if when getting the shares a stat operation is launched against the

    the storage provider.

    resource_idcs3.storage.provider.v1beta1.ResourceIdrefcs3.storage.provider.v1beta1.Reference

    REQUIRED. -Unique identifier of the shared resource.

    resource_idcs3.storage.provider.v1beta1.ResourceIdrefcs3.storage.provider.v1beta1.Reference

    REQUIRED.

    REQUIRED. +Unique identifier of the shared resource (path must be empty).

    resource_idcs3.storage.provider.v1beta1.ResourceIdrefcs3.storage.provider.v1beta1.Reference

    Unique identifier of the shared resource (path must be empty).

    TYPE_RESOURCE_IDTYPE_REFERENCE 1

    @@ -11015,11 +11012,11 @@

    PublicShare

    - - + + +Unique identifier of the shared resource (path must be empty).

    @@ -11293,11 +11290,11 @@

    CreateOCMShareRequest

    - - + + +Unique identifier of the shared resource (path must be empty).

    @@ -11563,10 +11560,10 @@

    ListOCMSharesReques

    - - + + - + @@ -11994,7 +11991,7 @@

    ListOCMSharesR

    - + @@ -12150,7 +12147,7 @@

    ReceivedShare

    Share

    -

    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.

    +

    Shares are relationships between a resource owner

    (usually the authenticated user) who grants permissions to a recipient (grantee)

    on a specified resource (reference). UserShares represents both user and groups.

    resource_idcs3.storage.provider.v1beta1.ResourceIdrefcs3.storage.provider.v1beta1.Reference

    REQUIRED. -Unique identifier of the shared resource.

    resource_idcs3.storage.provider.v1beta1.ResourceIdrefcs3.storage.provider.v1beta1.Reference

    REQUIRED. -The unique identifier for the shared storage resource.

    resource_idcs3.storage.provider.v1beta1.ResourceIdrefcs3.storage.provider.v1beta1.Reference

    Unique identifier of the shared resource (path must be empty).

    TYPE_RESOURCE_IDTYPE_REFERENCE 2

    @@ -12168,11 +12165,11 @@

    Share

    - - + + +Unique identifier of the shared resource (path must be empty).

    @@ -12330,10 +12327,11 @@

    ShareKey

    - - + + - + @@ -12712,8 +12710,8 @@

    CreateReferenceRequ

    - - + + @@ -12881,8 +12879,8 @@

    CreateSymlinkRequest<

    - - + + @@ -13120,12 +13118,11 @@

    GetHomeResponse

    - - + + +The reference to the home in a storage provider.

    @@ -13154,11 +13151,11 @@

    GetPathRequest

    - - + + +Unique identifier of the shared resource (path must be empty).

    @@ -13195,8 +13192,8 @@

    GetPathResponse

    - - + + @@ -14358,8 +14355,8 @@

    RestoreRecycleIt

    - - + + @@ -15518,12 +15515,11 @@

    RecycleItem

    - - + + +The original reference of the deleted resource.

    @@ -15551,7 +15547,7 @@

    RecycleItem

    Reference

    -

    The mechanism to identify a resource

    in the storage provider namespace. Note that the path OR the resourceId must be specifed, not both.

    +

    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:

    !:

    resource_idcs3.storage.provider.v1beta1.ResourceIdrefcs3.storage.provider.v1beta1.Reference

    REQUIRED. -Unique identifier of the shared resource.

    resource_idcs3.storage.provider.v1beta1.ResourceIdrefcs3.storage.provider.v1beta1.Reference

    REQUIRED.

    REQUIRED. +Unique identifier of the shared resource (path must be empty).

    pathstringrefReference

    REQUIRED. The location where to store the reference.

    pathstringrefReference

    REQUIRED. The location where to store the symlink.

    pathstringrefReference

    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/.

    resource_idResourceIdrefReference

    REQUIRED. -The resource id of the resource.

    pathstringrefReference

    REQUIRED. The path of the resource.

    restore_pathstringrestore_refReference

    OPTIONAL. An optional restore path for the deleted resource. @@ -14875,7 +14872,7 @@

    ProviderAPI

    GetPathRequest GetPathResponse

    Returns the path reference for -the provided resource id reference. +the provided resource reference. MUST return CODE_NOT_FOUND if the reference does not exist

    pathstringrefReference

    REQUIRED. -The original path of the deleted resource. -MUST start with the slash character (/).

    @@ -15561,19 +15557,29 @@

    Reference

    - + - + - - + + - + + + + + + + + @@ -15653,41 +15659,6 @@

    ResourceChecksumP -

    ResourceId

    -

    A resource id identifies uniquely a

    resource in the storage provider namespace.

    A ResourceId MUST be unique in the storage provider.

    - - -
    pathstorage_id string

    The path to the resource. -MUST start with the slash character (/).

    OPTIONAL. +The logical id of a storage. Used by the storage registry to determine the responsible storage provider.

    idResourceIdnode_idstring

    The id for the resource. -MUST NOT start with the slash character (/).

    OPTIONAL. +The logical node id used by a storage provider to uniquely identify a resource in a storage.

    pathstring

    OPTIONAL. +When starting with `/` the reference represents an absolute path. In this case the storage_id and the node_id must be empty. +When not starting with `/` represents a path relative to the node_id. +When node_id is empty the path is considered relative to the root of the storage.

    - - - - - - - - - - - - - - - - - - - - -
    FieldTypeLabelDescription
    storage_idstring

    REQUIRED. -The storage id of the storage provider.

    opaque_idstring

    REQUIRED. -The internal id used by service implementor to -uniquely identity the resource in the internal -implementation of the service.

    - - - - -

    ResourceInfo

    Represents the information (metadata) about

    a storage resource organized in a hierarchical namespace (file, directory/container, reference, symlink, ...).

    @@ -15717,7 +15688,7 @@

    ResourceInfo

    id - ResourceId + Reference

    REQUIRED. Opaque unique identifier of the resource.

    @@ -15763,11 +15734,10 @@

    ResourceInfo

    path - string + Reference

    REQUIRED. -The path for the resource. -It MUST start with the slash character (/).

    +The reference for the resource.

    @@ -16006,7 +15976,7 @@

    StorageSpace

    root - ResourceId + Reference

    OPTIONAL. The root resource of the storage space.

    diff --git a/proto.lock b/proto.lock index 87da1c3f..84a4af14 100644 --- a/proto.lock +++ b/proto.lock @@ -1,9 +1,378 @@ { "definitions": [ + { + "protopath": "cs3:/:admin:/:group:/:v1beta1:/:group_api.proto", + "def": { + "messages": [ + { + "name": "CreateGroupRequest", + "fields": [ + { + "id": 1, + "name": "opaque", + "type": "cs3.types.v1beta1.Opaque" + }, + { + "id": 2, + "name": "group", + "type": "cs3.identity.group.v1beta1.Group" + } + ] + }, + { + "name": "CreateGroupResponse", + "fields": [ + { + "id": 1, + "name": "status", + "type": "cs3.rpc.v1beta1.Status" + }, + { + "id": 2, + "name": "opaque", + "type": "cs3.types.v1beta1.Opaque" + }, + { + "id": 3, + "name": "group", + "type": "cs3.identity.group.v1beta1.Group" + } + ] + }, + { + "name": "DeleteGroupRequest", + "fields": [ + { + "id": 1, + "name": "opaque", + "type": "cs3.types.v1beta1.Opaque" + }, + { + "id": 2, + "name": "group_id", + "type": "cs3.identity.group.v1beta1.GroupId" + } + ] + }, + { + "name": "DeleteGroupResponse", + "fields": [ + { + "id": 1, + "name": "status", + "type": "cs3.rpc.v1beta1.Status" + }, + { + "id": 2, + "name": "opaque", + "type": "cs3.types.v1beta1.Opaque" + } + ] + }, + { + "name": "AddUserToGroupRequest", + "fields": [ + { + "id": 1, + "name": "user_id", + "type": "cs3.identity.user.v1beta1.UserId" + }, + { + "id": 2, + "name": "group_id", + "type": "cs3.identity.group.v1beta1.GroupId" + }, + { + "id": 3, + "name": "opaque", + "type": "cs3.types.v1beta1.Opaque" + } + ] + }, + { + "name": "AddUserToGroupResponse", + "fields": [ + { + "id": 1, + "name": "status", + "type": "cs3.rpc.v1beta1.Status" + }, + { + "id": 2, + "name": "opaque", + "type": "cs3.types.v1beta1.Opaque" + } + ] + }, + { + "name": "RemoveUserFromGroupRequest", + "fields": [ + { + "id": 1, + "name": "user_id", + "type": "cs3.identity.user.v1beta1.UserId" + }, + { + "id": 2, + "name": "group_id", + "type": "cs3.identity.group.v1beta1.GroupId" + }, + { + "id": 3, + "name": "opaque", + "type": "cs3.types.v1beta1.Opaque" + } + ] + }, + { + "name": "RemoveUserFromGroupResponse", + "fields": [ + { + "id": 1, + "name": "status", + "type": "cs3.rpc.v1beta1.Status" + }, + { + "id": 2, + "name": "opaque", + "type": "cs3.types.v1beta1.Opaque" + } + ] + } + ], + "services": [ + { + "name": "GroupAPI", + "rpcs": [ + { + "name": "CreateGroup", + "in_type": "CreateGroupRequest", + "out_type": "CreateGroupResponse" + }, + { + "name": "DeleteGroup", + "in_type": "DeleteGroupRequest", + "out_type": "DeleteGroupResponse" + }, + { + "name": "AddUserToGroup", + "in_type": "AddUserToGroupRequest", + "out_type": "AddUserToGroupResponse" + }, + { + "name": "RemoveUserFromGroup", + "in_type": "RemoveUserFromGroupRequest", + "out_type": "RemoveUserFromGroupResponse" + } + ] + } + ], + "imports": [ + { + "path": "cs3/identity/group/v1beta1/resources.proto" + }, + { + "path": "cs3/identity/user/v1beta1/resources.proto" + }, + { + "path": "cs3/rpc/v1beta1/status.proto" + }, + { + "path": "cs3/types/v1beta1/types.proto" + } + ], + "package": { + "name": "cs3.admin.group.v1beta1" + }, + "options": [ + { + "name": "csharp_namespace", + "value": "Cs3.Admin.Group.V1Beta1" + }, + { + "name": "go_package", + "value": "groupv1beta1" + }, + { + "name": "java_multiple_files", + "value": "true" + }, + { + "name": "java_outer_classname", + "value": "GroupApiProto" + }, + { + "name": "java_package", + "value": "com.cs3.admin.group.v1beta1" + }, + { + "name": "objc_class_prefix", + "value": "CAG" + }, + { + "name": "php_namespace", + "value": "Cs3\\\\Admin\\\\Group\\\\V1Beta1" + } + ] + } + }, + { + "protopath": "cs3:/:admin:/:user:/:v1beta1:/:user_api.proto", + "def": { + "messages": [ + { + "name": "CreateUserRequest", + "fields": [ + { + "id": 1, + "name": "opaque", + "type": "cs3.types.v1beta1.Opaque" + }, + { + "id": 2, + "name": "user", + "type": "cs3.identity.user.v1beta1.User" + } + ] + }, + { + "name": "CreateUserResponse", + "fields": [ + { + "id": 1, + "name": "status", + "type": "cs3.rpc.v1beta1.Status" + }, + { + "id": 2, + "name": "opaque", + "type": "cs3.types.v1beta1.Opaque" + }, + { + "id": 3, + "name": "user", + "type": "cs3.identity.user.v1beta1.User" + } + ] + }, + { + "name": "DeleteUserRequest", + "fields": [ + { + "id": 1, + "name": "opaque", + "type": "cs3.types.v1beta1.Opaque" + }, + { + "id": 2, + "name": "user_id", + "type": "cs3.identity.user.v1beta1.UserId" + } + ] + }, + { + "name": "DeleteUserResponse", + "fields": [ + { + "id": 1, + "name": "status", + "type": "cs3.rpc.v1beta1.Status" + }, + { + "id": 2, + "name": "opaque", + "type": "cs3.types.v1beta1.Opaque" + } + ] + } + ], + "services": [ + { + "name": "UserAPI", + "rpcs": [ + { + "name": "CreateUser", + "in_type": "CreateUserRequest", + "out_type": "CreateUserResponse" + }, + { + "name": "DeleteUser", + "in_type": "DeleteUserRequest", + "out_type": "DeleteUserResponse" + } + ] + } + ], + "imports": [ + { + "path": "cs3/identity/user/v1beta1/resources.proto" + }, + { + "path": "cs3/rpc/v1beta1/status.proto" + }, + { + "path": "cs3/types/v1beta1/types.proto" + } + ], + "package": { + "name": "cs3.admin.user.v1beta1" + }, + "options": [ + { + "name": "csharp_namespace", + "value": "Cs3.Admin.User.V1Beta1" + }, + { + "name": "go_package", + "value": "userv1beta1" + }, + { + "name": "java_multiple_files", + "value": "true" + }, + { + "name": "java_outer_classname", + "value": "UserApiProto" + }, + { + "name": "java_package", + "value": "com.cs3.admin.user.v1beta1" + }, + { + "name": "objc_class_prefix", + "value": "CAU" + }, + { + "name": "php_namespace", + "value": "Cs3\\\\Admin\\\\User\\\\V1Beta1" + } + ] + } + }, { "protopath": "cs3:/:app:/:provider:/:v1beta1:/:provider_api.proto", "def": { "enums": [ + { + "name": "OpenInAppRequest.ViewMode", + "enum_fields": [ + { + "name": "VIEW_MODE_INVALID" + }, + { + "name": "VIEW_MODE_VIEW_ONLY", + "integer": 1 + }, + { + "name": "VIEW_MODE_READ_ONLY", + "integer": 2 + }, + { + "name": "VIEW_MODE_READ_WRITE", + "integer": 3 + } + ] + }, { "name": "OpenFileInAppProviderRequest.ViewMode", "enum_fields": [ @@ -11,21 +380,71 @@ "name": "VIEW_MODE_INVALID" }, { - "name": "VIEW_MODE_VIEW_ONLY", - "integer": 1 + "name": "VIEW_MODE_VIEW_ONLY", + "integer": 1 + }, + { + "name": "VIEW_MODE_READ_ONLY", + "integer": 2 + }, + { + "name": "VIEW_MODE_READ_WRITE", + "integer": 3 + } + ] + } + ], + "messages": [ + { + "name": "OpenInAppRequest", + "fields": [ + { + "id": 1, + "name": "opaque", + "type": "cs3.types.v1beta1.Opaque" + }, + { + "id": 2, + "name": "resource_info", + "type": "storage.provider.v1beta1.ResourceInfo" + }, + { + "id": 3, + "name": "view_mode", + "type": "ViewMode" + }, + { + "id": 4, + "name": "access_token", + "type": "string" + }, + { + "id": 5, + "name": "app", + "type": "string" + } + ] + }, + { + "name": "OpenInAppResponse", + "fields": [ + { + "id": 1, + "name": "status", + "type": "cs3.rpc.v1beta1.Status" }, { - "name": "VIEW_MODE_READ_ONLY", - "integer": 2 + "id": 2, + "name": "opaque", + "type": "cs3.types.v1beta1.Opaque" }, { - "name": "VIEW_MODE_READ_WRITE", - "integer": 3 + "id": 3, + "name": "app_url", + "type": "string" } ] - } - ], - "messages": [ + }, { "name": "OpenFileInAppProviderRequest", "fields": [ @@ -80,6 +499,11 @@ "name": "OpenFileInAppProvider", "in_type": "OpenFileInAppProviderRequest", "out_type": "OpenFileInAppProviderResponse" + }, + { + "name": "OpenInApp", + "in_type": "OpenInAppRequest", + "out_type": "OpenInAppResponse" } ] } @@ -133,6 +557,20 @@ { "protopath": "cs3:/:app:/:registry:/:v1beta1:/:registry_api.proto", "def": { + "enums": [ + { + "name": "Filter.Type", + "enum_fields": [ + { + "name": "TYPE_INVALID" + }, + { + "name": "TYPE_MIME_TYPE", + "integer": 1 + } + ] + } + ], "messages": [ { "name": "GetAppProvidersRequest", @@ -177,6 +615,29 @@ "id": 1, "name": "opaque", "type": "cs3.types.v1beta1.Opaque" + }, + { + "id": 2, + "name": "filters", + "type": "Filter", + "is_repeated": true + } + ], + "messages": [ + { + "name": "Filter", + "fields": [ + { + "id": 2, + "name": "type", + "type": "Type" + }, + { + "id": 3, + "name": "mime_type", + "type": "string" + } + ] } ] }, @@ -376,6 +837,16 @@ "name": "user", "type": "cs3.identity.user.v1beta1.User" } + ], + "maps": [ + { + "key_type": "string", + "field": { + "id": 3, + "name": "token_scope", + "type": "Scope" + } + } ] } ], @@ -392,6 +863,9 @@ } ], "imports": [ + { + "path": "cs3/auth/provider/v1beta1/resources.proto" + }, { "path": "cs3/identity/user/v1beta1/resources.proto" }, @@ -437,6 +911,104 @@ ] } }, + { + "protopath": "cs3:/:auth:/:provider:/:v1beta1:/:resources.proto", + "def": { + "enums": [ + { + "name": "Role", + "enum_fields": [ + { + "name": "ROLE_INVALID" + }, + { + "name": "ROLE_OWNER", + "integer": 1 + }, + { + "name": "ROLE_LEGACY", + "integer": 2 + }, + { + "name": "ROLE_VIEWER", + "integer": 3 + }, + { + "name": "ROLE_EDITOR", + "integer": 4 + }, + { + "name": "ROLE_FILE_EDITOR", + "integer": 5 + }, + { + "name": "ROLE_COOWNER", + "integer": 6 + }, + { + "name": "ROLE_UPLOADER", + "integer": 7 + } + ] + } + ], + "messages": [ + { + "name": "Scope", + "fields": [ + { + "id": 1, + "name": "resource", + "type": "cs3.types.v1beta1.OpaqueEntry" + }, + { + "id": 2, + "name": "role", + "type": "Role" + } + ] + } + ], + "imports": [ + { + "path": "cs3/types/v1beta1/types.proto" + } + ], + "package": { + "name": "cs3.auth.provider.v1beta1" + }, + "options": [ + { + "name": "csharp_namespace", + "value": "Cs3.Auth.Provider.V1Beta1" + }, + { + "name": "go_package", + "value": "providerv1beta1" + }, + { + "name": "java_multiple_files", + "value": "true" + }, + { + "name": "java_outer_classname", + "value": "ResourcesProto" + }, + { + "name": "java_package", + "value": "com.cs3.auth.provider.v1beta1" + }, + { + "name": "objc_class_prefix", + "value": "CAP" + }, + { + "name": "php_namespace", + "value": "Cs3\\\\Auth\\\\Provider\\\\V1Beta1" + } + ] + } + }, { "protopath": "cs3:/:auth:/:registry:/:v1beta1:/:registry_api.proto", "def": { @@ -1888,6 +2460,44 @@ { "protopath": "cs3:/:identity:/:user:/:v1beta1:/:resources.proto", "def": { + "enums": [ + { + "name": "UserType", + "enum_fields": [ + { + "name": "USER_TYPE_INVALID" + }, + { + "name": "USER_TYPE_PRIMARY", + "integer": 1 + }, + { + "name": "USER_TYPE_SECONDARY", + "integer": 2 + }, + { + "name": "USER_TYPE_SERVICE", + "integer": 3 + }, + { + "name": "USER_TYPE_APPLICATION", + "integer": 4 + }, + { + "name": "USER_TYPE_GUEST", + "integer": 5 + }, + { + "name": "USER_TYPE_FEDERATED", + "integer": 6 + }, + { + "name": "USER_TYPE_LIGHTWEIGHT", + "integer": 7 + } + ] + } + ], "messages": [ { "name": "UserId", @@ -1901,6 +2511,11 @@ "id": 2, "name": "opaque_id", "type": "string" + }, + { + "id": 3, + "name": "type", + "type": "UserType" } ] }, @@ -3407,7 +4022,7 @@ "integer": 1 }, { - "name": "TYPE_RESOURCE_ID", + "name": "TYPE_REFERENCE", "integer": 2 }, { @@ -3511,6 +4126,11 @@ "id": 2, "name": "opaque", "type": "cs3.types.v1beta1.Opaque" + }, + { + "id": 3, + "name": "share", + "type": "Share" } ] }, @@ -3540,8 +4160,8 @@ }, { "id": 3, - "name": "resource_id", - "type": "storage.provider.v1beta1.ResourceId" + "name": "ref", + "type": "storage.provider.v1beta1.Reference" }, { "id": 4, @@ -3723,6 +4343,11 @@ "id": 2, "name": "opaque", "type": "cs3.types.v1beta1.Opaque" + }, + { + "id": 3, + "name": "share", + "type": "ReceivedShare" } ] }, @@ -3897,8 +4522,8 @@ }, { "id": 2, - "name": "resource_id", - "type": "storage.provider.v1beta1.ResourceId" + "name": "ref", + "type": "storage.provider.v1beta1.Reference" }, { "id": 3, @@ -3967,8 +4592,8 @@ }, { "id": 3, - "name": "resource_id", - "type": "storage.provider.v1beta1.ResourceId" + "name": "ref", + "type": "storage.provider.v1beta1.Reference" }, { "id": 4, @@ -4099,7 +4724,7 @@ "name": "TYPE_INVALID" }, { - "name": "TYPE_RESOURCE_ID", + "name": "TYPE_REFERENCE", "integer": 1 }, { @@ -4247,8 +4872,8 @@ }, { "id": 3, - "name": "resource_id", - "type": "storage.provider.v1beta1.ResourceId" + "name": "ref", + "type": "storage.provider.v1beta1.Reference" }, { "id": 4, @@ -4520,8 +5145,8 @@ }, { "id": 3, - "name": "resource_id", - "type": "storage.provider.v1beta1.ResourceId" + "name": "ref", + "type": "storage.provider.v1beta1.Reference" }, { "id": 4, @@ -4717,7 +5342,7 @@ "integer": 1 }, { - "name": "TYPE_RESOURCE_ID", + "name": "TYPE_REFERENCE", "integer": 2 }, { @@ -4750,8 +5375,8 @@ }, { "id": 2, - "name": "resource_id", - "type": "storage.provider.v1beta1.ResourceId" + "name": "ref", + "type": "storage.provider.v1beta1.Reference" }, { "id": 3, @@ -4863,8 +5488,8 @@ }, { "id": 3, - "name": "resource_id", - "type": "storage.provider.v1beta1.ResourceId" + "name": "ref", + "type": "storage.provider.v1beta1.Reference" }, { "id": 4, @@ -5239,8 +5864,8 @@ }, { "id": 2, - "name": "resource_id", - "type": "storage.provider.v1beta1.ResourceId" + "name": "ref", + "type": "storage.provider.v1beta1.Reference" }, { "id": 3, @@ -5324,8 +5949,8 @@ }, { "id": 3, - "name": "resource_id", - "type": "storage.provider.v1beta1.ResourceId" + "name": "ref", + "type": "storage.provider.v1beta1.Reference" }, { "id": 4, @@ -5476,8 +6101,8 @@ }, { "id": 3, - "name": "path", - "type": "string" + "name": "ref", + "type": "Reference" } ] }, @@ -5586,8 +6211,8 @@ }, { "id": 2, - "name": "resource_id", - "type": "ResourceId" + "name": "ref", + "type": "Reference" } ] }, @@ -5606,8 +6231,8 @@ }, { "id": 3, - "name": "path", - "type": "string" + "name": "ref", + "type": "Reference" } ] }, @@ -6074,8 +6699,8 @@ }, { "id": 4, - "name": "restore_path", - "type": "string" + "name": "restore_ref", + "type": "Reference" } ] }, @@ -6215,8 +6840,8 @@ }, { "id": 2, - "name": "path", - "type": "string" + "name": "ref", + "type": "Reference" }, { "id": 3, @@ -6250,8 +6875,8 @@ }, { "id": 2, - "name": "path", - "type": "string" + "name": "ref", + "type": "Reference" }, { "id": 3, @@ -6849,7 +7474,7 @@ { "id": 3, "name": "id", - "type": "ResourceId" + "type": "Reference" }, { "id": 4, @@ -6874,7 +7499,7 @@ { "id": 8, "name": "path", - "type": "string" + "type": "Reference" }, { "id": 9, @@ -6966,27 +7591,17 @@ "fields": [ { "id": 1, - "name": "path", + "name": "storage_id", "type": "string" }, { "id": 2, - "name": "id", - "type": "ResourceId" - } - ] - }, - { - "name": "ResourceId", - "fields": [ - { - "id": 1, - "name": "storage_id", + "name": "node_id", "type": "string" }, { - "id": 2, - "name": "opaque_id", + "id": 3, + "name": "path", "type": "string" } ] @@ -7176,8 +7791,8 @@ }, { "id": 4, - "name": "path", - "type": "string" + "name": "ref", + "type": "Reference" }, { "id": 5, @@ -7268,7 +7883,7 @@ { "id": 4, "name": "root", - "type": "ResourceId" + "type": "Reference" }, { "id": 5,