http://git-wip-us.apache.org/repos/asf/airavata/blob/87564d2b/modules/sharing-registry/thrift_models/sharing_cpi.thrift ---------------------------------------------------------------------- diff --git a/modules/sharing-registry/thrift_models/sharing_cpi.thrift b/modules/sharing-registry/thrift_models/sharing_cpi.thrift index 3cef3e6..51d494f 100644 --- a/modules/sharing-registry/thrift_models/sharing_cpi.thrift +++ b/modules/sharing-registry/thrift_models/sharing_cpi.thrift @@ -25,73 +25,187 @@ include "./sharing_models.thrift" service SharingRegistryService { /** - * Domain Operations - **/ - string createDomain(1: required sharing_models.Domain domain) throws (1: sharing_models.SharingRegistryException gre) - bool updateDomain(1: required sharing_models.Domain domain) throws (1: sharing_models.SharingRegistryException gre) - bool deleteDomain(1: required string domainId) throws (1: sharing_models.SharingRegistryException gre) - sharing_models.Domain getDomain(1: required string domainId) throws (1: sharing_models.SharingRegistryException gre) - list<sharing_models.Domain> getDomains(1: required i32 offset, 2: required i32 limit) throws (1: sharing_models.SharingRegistryException gre); + <p>API method to create a new domainId.</p> + */ + string createDomain(1: required sharing_models.Domain domainId) throws (1: sharing_models.SharingRegistryException sre) + /** + <p>API method to update a domainId.</p> + */ + bool updateDomain(1: required sharing_models.Domain domainId) throws (1: sharing_models.SharingRegistryException sre) + /** + <p>API method to delete domainId.</p> + */ + bool deleteDomain(1: required string domainId) throws (1: sharing_models.SharingRegistryException sre) + /** + <p>API method to retrieve a domainId.</p> + */ + sharing_models.Domain getDomain(1: required string domainId) throws (1: sharing_models.SharingRegistryException sre) + /** + <p>API method to get all domainIds.</p> + */ + list<sharing_models.Domain> getDomains(1: required i32 offset, 2: required i32 limit) throws (1: sharing_models.SharingRegistryException sre); + + /** + <p>API method to register a user in the system</p> + */ + string registerUser(1: required sharing_models.User user) throws (1: sharing_models.SharingRegistryException sre) + /** + <p>API method to update existing user</p> + */ + bool updatedUser(1: required sharing_models.User user) throws (1: sharing_models.SharingRegistryException sre) + /** + <p>API method to delete user</p> + */ + bool deleteUser(1: required string userId) throws (1: sharing_models.SharingRegistryException sre) + /** + <p>API method to get a user</p> + */ + sharing_models.User getUser(1: required string userId) throws (1: sharing_models.SharingRegistryException sre) + /** + <p>API method to get a list of users in a specific domainId. Users will be reverse sorted based on the created time.</p> + <li>domainId : Domain id</li> + <li>offset : Starting result number</li> + <li>limit : Number of max results to be sent</li> + */ + list<sharing_models.User> getUsers(1: required string domainId, 2: required i32 offset, 3: required i32 limit) throws (1: sharing_models.SharingRegistryException sre); /** - * User Operations - **/ - string createUser(1: required sharing_models.User user) throws (1: sharing_models.SharingRegistryException gre) - bool updatedUser(1: required sharing_models.User user) throws (1: sharing_models.SharingRegistryException gre) - bool deleteUser(1: required string userId) throws (1: sharing_models.SharingRegistryException gre) - sharing_models.User getUser(1: required string userId) throws (1: sharing_models.SharingRegistryException gre) - list<sharing_models.User> getUsers(1: required string domain, 2: required i32 offset, 3: required i32 limit) throws (1: sharing_models.SharingRegistryException gre); + <p>API method to create a new group</p> + */ + string createGroup(1: required sharing_models.UserGroup group) throws (1: sharing_models.SharingRegistryException sre) + /** + <p>API method to update a group</p> + */ + bool updateGroup(1: required sharing_models.UserGroup group) throws (1: sharing_models.SharingRegistryException sre) + /** + <p>API method to delete a group</p> + */ + bool deleteGroup(1: required string groupId) throws (1: sharing_models.SharingRegistryException sre) + /** + <p>API method to get a group</p> + */ + sharing_models.UserGroup getGroup(1: required string groupId) throws (1: sharing_models.SharingRegistryException sre) + /** + <p>API method to get groups in a domainId. Results are reverse sorted based on created time.</p> + */ + list<sharing_models.UserGroup> getGroups(1: required string domainId, 2: required i32 offset, 3: required i32 limit) + + /** + <p>API method to add list of users to a group</p> + */ + bool addUsersToGroup(1: required list<string> userIds, 2: required string groupId) throws (1: sharing_models.SharingRegistryException sre); + /** + <p>API method to remove users from a group</p> + */ + bool removeUsersFromGroup(1: required list<string> userIds, 2: required string groupId) throws (1: sharing_models.SharingRegistryException sre); + /** + <p>API method to get list of child users in a group. Only the direct members will be returned. Results are reverse time sorted based on creation time</p> + */ + list<sharing_models.User> getGroupMembersOfTypeUser(1: required string groupId, 2: required i32 offset, 3: required i32 limit) throws (1: sharing_models.SharingRegistryException sre); + /** + <p>API method to get list of child groups in a group. Only the direct members will be returned. Results are reverse time sorted based on creation time</p> + */ + list<sharing_models.UserGroup> getGroupMembersOfTypeGroup(1: required string groupId, 2: required i32 offset, 3: required i32 limit) throws (1: sharing_models.SharingRegistryException sre); + /** + <p>API method to add a child group to a parent group.</p> + */ + bool addChildGroupsToParentGroup(1: required list<string> childIds, 2: required string groupId) throws (1: sharing_models.SharingRegistryException sre); + /** + <p>API method to remove a child group from parent group.</p> + */ + bool removeChildGroupFromParentGroup(1: required string childId, 2: required string groupId) throws (1: sharing_models.SharingRegistryException sre); /** - * Group Operations - **/ - string createGroup(1: required sharing_models.UserGroup group) throws (1: sharing_models.SharingRegistryException gre) - bool updateGroup(1: required sharing_models.UserGroup group) throws (1: sharing_models.SharingRegistryException gre) - bool deleteGroup(1: required string groupId) throws (1: sharing_models.SharingRegistryException gre) - sharing_models.UserGroup getGroup(1: required string groupId) throws (1: sharing_models.SharingRegistryException gre) - list<sharing_models.UserGroup> getGroups(1: required string domain, 2: required i32 offset, 3: required i32 limit) + <p>API method to create a new entity type</p> + */ + string createEntityType(1: required sharing_models.EntityType entityType) throws (1: sharing_models.SharingRegistryException sre) + /** + <p>API method to update entity type</p> + */ + bool updateEntityType(1: required sharing_models.EntityType entityType) throws (1: sharing_models.SharingRegistryException sre) + /** + <p>API method to delete entity type</p> + */ + bool deleteEntityType(1: required string entityTypeId) throws (1: sharing_models.SharingRegistryException sre) + /** + <p>API method to get an entity type</p> + */ + sharing_models.EntityType getEntityType(1: required string entityTypeId) throws (1: sharing_models.SharingRegistryException sre) + /** + <p>API method to get entity types in a domainId. Results are reverse time sorted based on creation time</p> + */ + list<sharing_models.EntityType> getEntityTypes(1: required string domainId, 2: required i32 offset, 3: required i32 limit) throws (1: sharing_models.SharingRegistryException sre); - bool addUsersToGroup(1: required list<string> userIds, 2: required string groupId) throws (1: sharing_models.SharingRegistryException gre); - bool removeUsersFromGroup(1: required list<string> userIds, 2: required string groupId) throws (1: sharing_models.SharingRegistryException gre); - map<string, sharing_models.GroupChildType> getGroupMembers(1: required string groupId, 2: required i32 offset, 3: required i32 limit) throws (1: sharing_models.SharingRegistryException gre); - bool addChildGroupToParentGroup(1: required string childId, 2: required string groupId) throws (1: sharing_models.SharingRegistryException gre); - bool removeChildGroupFromParentGroup(1: required string childId, 2: required string groupId) throws (1: sharing_models.SharingRegistryException gre); /** - * EntityType Operations - **/ - string createEntityType(1: required sharing_models.EntityType entityType) throws (1: sharing_models.SharingRegistryException gre) - bool updateEntityType(1: required sharing_models.EntityType entityType) throws (1: sharing_models.SharingRegistryException gre) - bool deleteEntityType(1: required string entityTypeId) throws (1: sharing_models.SharingRegistryException gre) - sharing_models.EntityType getEntityType(1: required string entityTypeId) throws (1: sharing_models.SharingRegistryException gre) - list<sharing_models.EntityType> getEntityTypes(1: required string domain, 2: required i32 offset, 3: required i32 limit) throws (1: sharing_models.SharingRegistryException gre); + <p>API method to register new entity</p> + */ + string registerEntity(1: required sharing_models.Entity entity) throws (1: sharing_models.SharingRegistryException sre) + /** + <p>API method to update entity</p> + */ + bool updateEntity(1: required sharing_models.Entity entity) throws (1: sharing_models.SharingRegistryException sre) + /** + <p>API method to delete entity</p> + */ + bool deleteEntity(1: required string entityId) throws (1: sharing_models.SharingRegistryException sre) + /** + <p>API method to get entity</p> + */ + sharing_models.Entity getEntity(1: required string entityId) throws (1: sharing_models.SharingRegistryException sre) + /** + <p>API method to search entities</p> + */ + list<sharing_models.Entity> searchEntities(1: required string userId, 2: required string entityTypeId, 3: required list<sharing_models.SearchCriteria> filters, 4: required i32 offset, 5: required i32 limit) throws (1: sharing_models.SharingRegistryException sre) + /** + <p>API method to get a list of shared users given the entity id</p> + */ + list<sharing_models.User> getListOfSharedUsers(1: required string entityId, 2: required string permissionTypeId) throws (1: sharing_models.SharingRegistryException sre) + /** + <p>API method to get a list of shared groups given the entity id</p> + */ + list<sharing_models.UserGroup> getListOfSharedGroups(1: required string entityId, 2: required string permissionTypeId) throws (1: sharing_models.SharingRegistryException sre) /** - * Entity Operations - **/ - string createEntity(1: required sharing_models.Entity entity) throws (1: sharing_models.SharingRegistryException gre) - bool updateEntity(1: required sharing_models.Entity entity) throws (1: sharing_models.SharingRegistryException gre) - bool deleteEntity(1: required string entityId) throws (1: sharing_models.SharingRegistryException gre) - sharing_models.Entity getEntity(1: required string entityId) throws (1: sharing_models.SharingRegistryException gre) - list<sharing_models.Entity> searchEntities(1: required string userId, 2: required string entityTypeId, 3: required list<sharing_models.SearchCriteria> filters, 4: required i32 offset, 5: required i32 limit) throws (1: sharing_models.SharingRegistryException gre) - list<sharing_models.User> getListOfSharedUsers(1: required string entityId, 2: required string permissionTypeId) throws (1: sharing_models.SharingRegistryException gre) - list<sharing_models.UserGroup> getListOfSharedGroups(1: required string entityId, 2: required string permissionTypeId) throws (1: sharing_models.SharingRegistryException gre) + <p>API method to create permission type</p> + */ + string createPermissionType(1: required sharing_models.PermissionType permissionType) throws (1: sharing_models.SharingRegistryException sre) + /** + <p>API method to update permission type</p> + */ + bool updatePermissionType(1: required sharing_models.PermissionType permissionType) throws (1: sharing_models.SharingRegistryException sre) + /** + <p>API method to delete permission type</p> + */ + bool deletePermissionType(1: required string entityTypeId) throws (1: sharing_models.SharingRegistryException sre) + /** + <p>API method to get permission type</p> + */ + sharing_models.PermissionType getPermissionType(1: required string permissionTypeId) throws (1: sharing_models.SharingRegistryException sre) + /** + <p>API method to get list of permission types in a given domainId. Results are reverse time sorted based on creation time</p> + */ + list<sharing_models.PermissionType> getPermissionTypes(1: required string domainId, 2: required i32 offset, 3: required i32 limit) throws (1: sharing_models.SharingRegistryException sre) /** - * Permission Operations - **/ - string createPermissionType(1: required sharing_models.PermissionType permissionType) throws (1: sharing_models.SharingRegistryException gre) - bool updatePermissionType(1: required sharing_models.PermissionType permissionType) throws (1: sharing_models.SharingRegistryException gre) - bool deletePermissionType(1: required string entityTypeId) throws (1: sharing_models.SharingRegistryException gre) - sharing_models.PermissionType getPermissionType(1: required string permissionTypeId) throws (1: sharing_models.SharingRegistryException gre) - list<sharing_models.PermissionType> getPermissionTypes(1: required string domain, 2: required i32 offset, 3: required i32 limit) throws (1: sharing_models.SharingRegistryException gre) + <p>API method to share an entity with users</p> + */ + bool shareEntityWithUsers(1: required string domainId, 2: required string entityId, 3: required list<string> userList, 4: required string perssionTypeId, 5: required bool cascadePermission) throws (1: sharing_models.SharingRegistryException sre) + /** + <p>API method to revoke sharing from a list of users</p> + */ + bool revokeEntitySharingFromUsers(1: required string domainId, 2: required string entityId, 3: required list<string> userList, 4: required string perssionTypeId ) throws (1: sharing_models.SharingRegistryException sre) + /** + <p>API method to share an entity with list of groups</p> + */ + bool shareEntityWithGroups(1: required string domainId, 2: required string entityId, 3: required list<string> groupList, 4: required string perssionTypeId, 5: required bool cascadePermission) throws (1: sharing_models.SharingRegistryException sre) + /** + <p>API method to revoke sharing from list of users</p> + */ + bool revokeEntitySharingFromGroups(1: required string domainId, 2: required string entityId, 3: required list<string> groupList, 4: required string perssionTypeId) throws (1: sharing_models.SharingRegistryException sre) /** - * Sharing Entity with Users and Groups - **/ - bool shareEntityWithUsers(1: required string domainId, 2: required string entityId, 3: required list<string> userList, 4: required string perssionTypeId, 5: required bool cascadePermission) throws (1: sharing_models.SharingRegistryException gre) - bool revokeEntitySharingFromUsers(1: required string domainId, 2: required string entityId, 3: required list<string> userList, 4: required string perssionTypeId ) throws (1: sharing_models.SharingRegistryException gre) - bool shareEntityWithGroups(1: required string domainId, 2: required string entityId, 3: required list<string> groupList, 4: required string perssionTypeId, 5: required bool cascadePermission) throws (1: sharing_models.SharingRegistryException gre) - bool revokeEntitySharingFromGroups(1: required string domainId, 2: required string entityId, 3: required list<string> groupList, 4: required string perssionTypeId) throws (1: sharing_models.SharingRegistryException gre) - bool userHasAccess(1: required string domainId, 2: required string userId, 3: required string entityId, 4: required string permissionTypeId) throws (1: sharing_models.SharingRegistryException gre) + <p>API method to check whether a user has access to a specific entity</p> + */ + bool userHasAccess(1: required string domainId, 2: required string userId, 3: required string entityId, 4: required string permissionTypeId) throws (1: sharing_models.SharingRegistryException sre) } \ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata/blob/87564d2b/modules/sharing-registry/thrift_models/sharing_models.thrift ---------------------------------------------------------------------- diff --git a/modules/sharing-registry/thrift_models/sharing_models.thrift b/modules/sharing-registry/thrift_models/sharing_models.thrift index 69409fc..f8c6f31 100644 --- a/modules/sharing-registry/thrift_models/sharing_models.thrift +++ b/modules/sharing-registry/thrift_models/sharing_models.thrift @@ -22,6 +22,16 @@ const string DO_NOT_SET_AT_CLIENTS_ID = "DO_NOT_SET_AT_CLIENTS_ID" +/** +* <p>Domain is the entity that enables multi-tenency in this componenet. Every tenant will be +* operating separately it's own silo which is identified by the domain id. In the current implementation domain id +* will be same as the domain name</p> +* <li>domainId : Will be generated by the server based on the domain name</li> +* <li><b>name</b> : A single word name that identifies the domain e.g seagrid, ultrascan</li> +* <li>description : A short description for the domain</li> +* <li>createdTime : Will be set by the system</li> +* <li>updatedTime : Will be set by the system</li> +**/ struct Domain { 1: optional string domainId = DO_NOT_SET_AT_CLIENTS_ID, 2: optional string name, @@ -30,48 +40,101 @@ struct Domain { 5: optional i64 updatedTime } - struct User { - 1: optional string userId = DO_NOT_SET_AT_CLIENTS_ID, - 2: optional string domainId, - 3: optional string userName, - 4: optional string firstName, - 5: optional string lastName, - 6: optional binary icon, - 7: optional i64 createdTime, - 8: optional i64 updatedTime - } +/** +* <p>User is the model used to register a user in the system. Minimal user information will be required to provide +* regarding the user.</p> +* <li><b>userId</b> : Client provided user id. (The id is not system generated and it is a must to provide this id)</li> +* <li><b>domainId</b> : Domain id for that user</li> +* <li><b>userName</b> : User name for the user</li> +* <li><b>firstName</b> : First name of the user</li> +* <li><b>lastName</b> : Last name of the user</li> +* <li><b>email</b> : Email address of the user</li> +* <li>icon : A binary field for storing the user icon</li> +* <li>createdTime : If client provides this value then the system will use it if not the current time will be set</li> +* <li>updatedTime : If client provides this value then the system will use it if not the current time will be set</li> +**/ +struct User { + 1: optional string userId, + 2: optional string domainId, + 3: optional string userName, + 4: optional string firstName, + 5: optional string lastName, + 6: optional string email, + 7: optional binary icon, + 8: optional i64 createdTime, + 9: optional i64 updatedTime +} -enum GroupType { +/** +* <p>This is an system internal enum used to define single user groups and multi users groups. Every user is also +* considered as a group in it's own right for implementation ease</p> +**/ +enum GroupCardinality { SINGLE_USER, MULTI_USER } - struct UserGroup { - 1: optional string groupId = DO_NOT_SET_AT_CLIENTS_ID, - 2: optional string domainId, - 3: optional string name, - 6: optional string description, - 7: optional string ownerId, - 8: optional i64 createdTime, - 9: optional i64 updatedTime, - 10: optional GroupType groupType - } +/** +* <p>Group types can be either user level or domain level groups.</p> +**/ +enum GroupType { + DOMAIN_LEVEL_GROUP, + USER_LEVEL_GROUP +} + +/** +*<p>User group is a collection of users.</p> +* <li>groupId : System generated grouo id. In the current implementation this is of the form domainId:name</li> +* <li><b>domainId</b> : Domain id for this user group</li> +* <li><b>name</b> : Name for the user group. should be one word</li> +* <li>description : Short description for the group.</li> +* <li><b>ownerId</b> : Owner id of this group.</li> +* <li><b>groupType</b> : Group type (DOMAIN_LEVEL_GROUP, USER_LEVEL_GROUP)</li> +* <li><b>groupCardinality</b> : Group cardinality (SINGLE_USER, MULTI_USER)</li> +* <li>createdTime : Will be set by the system</li> +* <li>updatedTime : Will be set by the system</li> +**/ +struct UserGroup { + 1: optional string groupId = DO_NOT_SET_AT_CLIENTS_ID, + 2: optional string domainId, + 3: optional string name, + 4: optional string description, + 5: optional string ownerId, + 6: optional GroupType groupType, + 7: optional GroupCardinality groupCardinality, + 8: optional i64 createdTime, + 9: optional i64 updatedTime +} - enum GroupChildType { +/** +* <p>System internal data type to match group child types</p> +**/ +enum GroupChildType { USER, GROUP - } - - struct GroupMembership { - 1: optional string parentId, - 2: optional string childId, - 3: optional GroupChildType childType - 4: optional i64 createdTime, - 5: optional i64 updatedTime - } +} +/** +* <p>System internal data type to map group memberships</p> +**/ +struct GroupMembership { +1: optional string parentId, +2: optional string childId, +3: optional GroupChildType childType +4: optional i64 createdTime, +5: optional i64 updatedTime +} +/** +* <p>client defined entity types</p> +* <li>entityTypeId : System generated entity type id. In the current implementation it will of the form domainId:name</li> +* <li><b>domainId</b> : Domain id of the domain.</li> +* <li><b>name</b> : Name for the entity type. Should be a single word.</li> +* <li>description : Short description for the entity type.</li> +* <li>createdTime : Will be set by the system</li> +* <li>updatedTime : Will be set by the system</li> +**/ struct EntityType { 1: optional string entityTypeId = DO_NOT_SET_AT_CLIENTS_ID, 2: optional string domainId, @@ -81,6 +144,15 @@ struct EntityType { 6: optional i64 updatedTime } +/** +* <p>This list of fields that can be used to search entities</p> +* <li>NAME : Name of the entity</li> +* <li>DESCRIPTION : Description of the entity</li> +* <li>FULL_TEXT : Full text field of the entity</li> +* <li>PARENT_ENTITY_ID : Parent entity id of the entity</li> +* <li>CREATED_TIME : Created time of the entity</li> +* <li>UPDATED_TIME : Updated time of the entity</li> +**/ enum EntitySearchField { NAME, DESCRIPTION, @@ -90,21 +162,50 @@ enum EntitySearchField { UPDATED_TIME } +/** +* <p>Different search operators that can be used with the entity search fields</p> +* <li>EQUAL : Simply matches for equality. Applicable for name, and parent entity id</li> +* <li>LIKE : Check for the condition %$FIELD% condition. Applicable for name, and description</li> +* <li>FULL_TEXT : Does a full text search. Only applicable for the FULL_TEXT field.</li> +* <li>GTE : Greater than or equal. Only applicable for created time and updated time.</li> +* <li>LTE : Less than or equal. Only applicable for created time and updated time.</li> +**/ enum SearchCondition { EQUAL, LIKE, + FULL_TEXT, GTE, LTE } +/** +* <p>Container object for search criteria</p> +* <li><b>searchField</b> : Entity search field</li> +* <li><b>value</b> : Search value</li> +* <li><b>searchCondition</b> : EQUAL, LIKE etc..</li> +**/ struct SearchCriteria { 1: optional EntitySearchField searchField, 2: optional string value, 3: optional SearchCondition searchCondition } +/** +* <p>Entity object which is used to register an entity in the system.</p> +* <li><b>entityId</b> : Client id provided by the client</li> +* <li><b>domainId</b> : Domain id</li> +* <li><b>entityTypeId</b> : Entity type id</li> +* <li><b>ownerId</b> : Owner id</li> +* <li>parentEntityId : Parent entity id</li> +* <li><b>name</b> : Name</li> +* <li>description : Short description for the entity</li> +* <li>metadata : Map of optional metadata</li> +* <li>fullText : A string which will be considered for full text search</li> +* <li>createdTime : If client provides this value then the system will use it if not the current time will be set</li> +* <li>updatedTime : If client provides this value then the system will use it if not the current time will be set</li> +**/ struct Entity { - 1: optional string entityId = DO_NOT_SET_AT_CLIENTS_ID, + 1: optional string entityId, 2: optional string domainId, 3: optional string entityTypeId, 4: optional string ownerId, @@ -117,6 +218,15 @@ struct Entity { 11: optional i64 updatedTime } +/** +* <p>Object for creating client defined permission type</p> +* <li>permissionTypeId : System generated permission type id. In the current implementation it will of the form domainId:name</li> +* <li><b>domainId</b> : Domain id</li> +* <li><b>name</b> : Single word name for the permission</li> +* <li>description : Short description for the permission type</li> +* <li>createdTime : Will be set by the system</li> +* <li>updatedTime : Will be set by the system</li> +**/ struct PermissionType { 1: optional string permissionTypeId = DO_NOT_SET_AT_CLIENTS_ID, 2: optional string domainId, @@ -126,12 +236,18 @@ struct PermissionType { 6: optional i64 updatedTime } +/** +* <p>This is an internal enum type for managing sharings</p> +**/ enum SharingType { DIRECT_NON_CASCADING, DIRECT_CASCADING, INDIRECT_CASCADING } +/** +* <p>This is an internal enum type for managing sharings</p> +**/ struct Sharing { 1: optional string permissionTypeId, 2: optional string entityId, @@ -142,6 +258,9 @@ struct Sharing { 7: optional i64 updatedTime } +/** +* <p>Exception model used in the sharing registry service</p> +**/ exception SharingRegistryException { 1: required string message } http://git-wip-us.apache.org/repos/asf/airavata/blob/87564d2b/modules/sharing-registry/thrift_models/thrift-gen.sh ---------------------------------------------------------------------- diff --git a/modules/sharing-registry/thrift_models/thrift-gen.sh b/modules/sharing-registry/thrift_models/thrift-gen.sh index 0119a98..89d2efd 100755 --- a/modules/sharing-registry/thrift_models/thrift-gen.sh +++ b/modules/sharing-registry/thrift_models/thrift-gen.sh @@ -20,4 +20,3 @@ thrift --gen html sharing_cpi.thrift rm -r ../api-docs mv gen-html ../api-docs -rm -r gen-html