custos-grpc-data-models/proto/SharingService.proto (127 lines of code) (raw):
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*/
syntax = "proto3";
option java_multiple_files = true;
package org.apache.custos.sharing.service;
import "SharingModel.proto";
option go_package = "./pb";
message EntityRequest {
string client_id = 1;
int64 tenant_id = 2;
org.apache.custos.sharing.core.Entity entity = 3;
string client_sec = 4;
}
message EntityTypeRequest {
string client_id = 1;
int64 tenant_id = 2;
org.apache.custos.sharing.core.EntityType entity_type = 3;
string client_sec = 4;
}
message PermissionTypeRequest {
string client_id = 1;
int64 tenant_id = 2;
org.apache.custos.sharing.core.PermissionType permission_type = 3;
string client_sec = 4;
}
message SearchRequest {
string client_id = 1;
int64 tenant_id = 2;
string owner_id = 3;
int32 offset = 4;
int32 limit = 5;
repeated org.apache.custos.sharing.core.SearchCriteria search_criteria = 6;
string client_sec = 7;
repeated string associating_ids = 8;
bool search_perm_bottom_up=9;
}
message PermissionRequest {
string client_id = 1;
int64 tenant_id = 2;
org.apache.custos.sharing.core.Entity entity = 3;
org.apache.custos.sharing.core.PermissionType permission_type = 4;
string client_sec = 5;
}
message SharingRequest {
string client_id = 1;
int64 tenant_id = 2;
org.apache.custos.sharing.core.Entity entity = 3;
org.apache.custos.sharing.core.PermissionType permission_type = 4;
repeated string owner_id = 5;
bool cascade = 6;
string client_sec = 7;
string shared_by = 8;
}
message SharesFilteringRequest {
string client_id = 1;
int64 tenant_id = 2;
repeated string owner_id = 5;
bool cascade = 6;
string client_sec = 7;
}
message Status {
bool status = 1;
}
message EntityTypes {
repeated org.apache.custos.sharing.core.EntityType types = 1;
}
message PermissionTypes {
repeated org.apache.custos.sharing.core.PermissionType types = 1;
}
message Entities {
repeated org.apache.custos.sharing.core.Entity entity_array = 1;
}
message SharedOwners {
repeated string owner_ids = 1;
}
message GetAllDirectSharingsResponse {
repeated org.apache.custos.sharing.core.SharingMetadata shared_data = 1;
}
message GetAllSharingsResponse {
repeated org.apache.custos.sharing.core.SharingMetadata shared_data = 1;
}
service SharingService {
rpc createEntityType (EntityTypeRequest) returns (Status);
rpc updateEntityType (EntityTypeRequest) returns (Status);
rpc deleteEntityType (EntityTypeRequest) returns (Status);
rpc getEntityType (EntityTypeRequest) returns (org.apache.custos.sharing.core.EntityType);
rpc getEntityTypes (SearchRequest) returns (EntityTypes);
rpc createPermissionType (PermissionTypeRequest) returns (Status);
rpc updatePermissionType (PermissionTypeRequest) returns (Status);
rpc deletePermissionType (PermissionTypeRequest) returns (Status);
rpc getPermissionType (PermissionTypeRequest) returns (org.apache.custos.sharing.core.PermissionType);
rpc getPermissionTypes (SearchRequest) returns (PermissionTypes);
rpc createEntity (EntityRequest) returns (Status);
rpc updateEntity (EntityRequest) returns (Status);
rpc isEntityExists (EntityRequest) returns (Status);
rpc getEntity (EntityRequest) returns (org.apache.custos.sharing.core.Entity);
rpc deleteEntity (EntityRequest) returns (Status);
rpc searchEntities (SearchRequest) returns (Entities);
rpc getListOfSharedUsers (SharingRequest) returns (SharedOwners);
rpc getListOfDirectlySharedUsers (SharingRequest) returns (SharedOwners);
rpc getListOfSharedGroups (SharingRequest) returns (SharedOwners);
rpc getListOfDirectlySharedGroups (SharingRequest) returns (SharedOwners);
rpc getAllDirectSharings (SharingRequest) returns (GetAllDirectSharingsResponse);
rpc getAllSharings (SharingRequest) returns (GetAllSharingsResponse);
rpc shareEntityWithUsers (SharingRequest) returns (Status);
rpc shareEntityWithGroups (SharingRequest) returns (Status);
rpc revokeEntitySharingFromUsers (SharingRequest) returns (Status);
rpc revokeEntitySharingFromGroups (SharingRequest) returns (Status);
rpc userHasAccess (SharingRequest) returns (Status);
}