[import "classpath:/aranea.dsl"] [project Origo prefix=O_] { [namespace Blog] { // blog add message [message Add extends=Aranea.Default.Session] { project: integer greaterZero "Id of the project" title: string notEmpty "Title of the Blog entry" url: string notEmpty "URL of the blog-entry" diff: string notEmpty "Blog diff" revision: integer greaterZero "Revision" old_revision: integer greaterEqualZero "Revision before change" is_private: boolean "Is the page private?" } [message AddReply] { workitem_id: integer greaterEqualZero "ID of the newly added workitem." } } [namespace Comment] { // comment add message [message Add extends=Aranea.Default.Session] { project: integer greaterZero "ID of the project" title: string notEmpty "Title of the comment" text: string notEmpty "Comment text" reference_url: string notEmpty "URL to the comment" is_new: boolean "Is this a new comment or an edited comment" comment_type: string notEmpty "Is this a forum topic, a forum post, a wiki comment, a picture comment, ..." is_private: boolean "Is the page private?" } [message AddReply] { workitem_id: integer greaterEqualZero "ID of the newly added workitem." } } [namespace Commit] { // commit add message [message Add] { user: string notEmpty "Name of the user" project: string notEmpty "Name of the project" revision: string notEmpty "Revision of the commit" commit_log: string notVoid "Log of the commit" diff: string notVoid "Diff of the commit" webRef: string "Optional reference to a webpage for this commit" } [message AddReply] { workitem_id: integer greaterEqualZero "ID of the newly added workitem." } } [namespace Community] { // community create message [message Create extends=Aranea.Default.Session] { name: string notEmpty "Community name" description: string notEmpty "Description" } // community change description message [message ChangeDescription extends=Aranea.Default.Session] { community_name: string notEmpty "Community name" description: string notEmpty "New description" } // community change group message [message ChangeGroup extends=Aranea.Default.Session] { community: string notEmpty "Community name" user: string notEmpty "User name" group: integer greaterEqualZero "Access group id" } // community delete wiki page message [message DeleteWikiPage extends=Aranea.Default.Session] { community_name: string notEmpty "Community name" wiki_title: string notEmpty "Wiki title" } // community list members message [message ListMembers extends=Aranea.Default.Session] { community: string notEmpty "Community name" group: integer greaterEqualZero "Access group id" } // community edit wiki page message [message EditWikiPage extends=Aranea.Default.Session] { community_name: string notEmpty "Community name" title: string notEmpty "Wiki title" text: string notVoid "Wiki text" private: boolean "Private wiki page" } // community add wiki page message [message AddWikiPage extends=Aranea.Default.Session] { community_name: string notEmpty "Community name" title: string notEmpty "Wiki title" text: string notVoid "Wiki text" private: boolean "Private wiki page" } // community list message [message List extends=Aranea.Default.Session] {} // community list projects message [message ListProjects extends=Aranea.Default.Session] { community: string notEmpty "Community name" } // community add project message [message AddProject extends=Aranea.Default.Session] { community: string notEmpty "Community name" project: string notEmpty "Project name" } // community retrieve reply message [message RetrieveReply] { community_id: integer greaterZero "Community ID" name: string notEmpty "Name" description: string notVoid "Description" logo: string notEmpty "Logo" } // community retrieve message [message Retrieve extends=Aranea.Default.Session] { community_name: string notEmpty "Community name" } // community list wiki pages reply message [message ListWikiPagesReply] { wiki_list: sequence notVoid "Wiki pages list" } // community list reply message [message ListReply] { community_list: sequence "Community list" } // community delete message [message Delete extends=Aranea.Default.Session] { community_name: string notEmpty "Community name" } // community list wiki pages message [message ListWikiPages extends=Aranea.Default.Session] { community_name: string notEmpty "Community name" } // community remove project message [message RemoveProject extends=Aranea.Default.Session] { community: string notEmpty "Community name" project: string notEmpty "Project name" } // community retrieve wiki page message [message RetrieveWikiPage extends=Aranea.Default.Session] { community_name: string notEmpty "Community name" wiki_title: string notEmpty "Wiki title" } // community retrieve wiki page reply message [message RetrieveWikiPageReply] { title: string notEmpty "Wiki title" text: string notVoid "Wiki text" private: boolean "Is wiki page private?" } // community rename wiki page message [message RenameWikiPage extends=Aranea.Default.Session] { community_name: string notEmpty "Community name" old_title: string notEmpty "Old wiki title" new_title: string notEmpty "New wiki title" } } [namespace System] { // system status message [message Status extends=Aranea.Default.Session] {} // system mail all message [message MailAll extends=Aranea.Default.Session] { subject: string notEmpty "Subject of the mail" text: string notEmpty "Text of the mail" } [message RetrieveAllEmail] {} [message RetrieveAllEmailReply] { addresses: sequence notVoid "All email addresses in the system." } [message RetrieveActiveProjects] { threshold: integer greaterEqualZero "Cutoff in seconds." retrieve_older: boolean "Denotes whether to retrieve projects older then the threshold, or newer ones." } [message RetrieveActiveProjectsReply] { project_names: sequence notVoid "List of project names." } } [namespace User] { [message AddBookmark extends=Aranea.Default.Session] { project: integer greaterZero "Project ID" } [message AuthorizedForCommunity extends=Aranea.Default.Session] { instruction: string notEmpty "Instruction we want to check." community_name: string notVoid "Community name for the instruction." } [message AuthorizedForProject extends=Aranea.Default.Session] { instruction: string notEmpty "Instruction we want to check." project: integer greaterEqualZero "Project ID" } [message ChangeAccountEnabled] { name: string notEmpty "Name of the user" enabled: boolean "Shall the account be enabled?" } [message ChangeEmail extends=Aranea.Default.Session] { email_address: string notEmpty "New email address" } [message ChangePassword] { name: string notEmpty "Name of the user" password: string notEmpty "Password to be changed" } [message ChangeProfileVisible extends=Aranea.Default.Session] { value: integer greaterEqualZero "Profile visibility encoded into an INTEGER" } [message Create] { name: string notEmpty "Name of the user" password: string notEmpty "Password of the user" email: string notEmpty "Email of the user" } [message DisableAccount extends=Aranea.Default.Session] { user_name: string notEmpty } [message KeyGenerate extends=Aranea.Default.Session] { } [message Key extends=Aranea.Default.Session] { } [message KeyReply] { key: string notEmpty "Key of the user" } [message ListBookmark extends=Aranea.Default.Session] { username: string notEmpty "username to list bookmarks for" } [message ListBookmarkReply] { project_list: map notVoid "Project list" } [message ListCommunities extends=Aranea.Default.Session] { username: string notEmpty "username to list communities for" } [message ListFriends extends=Aranea.Default.Session] { username: string notEmpty "username to list friends for" } [message ListFriendsReply] { friend_list: map< record(friend, [ name: string notEmpty; icon: string notVoid; real_name: string notEmpty ]) > notVoid "Friend list" } [message List] { user_list: map notVoid "User list" } [message ListReportedIssues extends=Aranea.Default.Session] { // Paging information start: integer greaterEqualZero "The start index of the issue list" limit: integer greaterZero "The maximum number of issue to be returned" sort_column: string notVoid "The sort column, must match a database column" sort_order: string notVoid "Sorting orther, either `asc' or `desc'" } // issue list reply messasge [message ListReportedIssuesReply] { issue_list: sequence notVoid "Issue list" } [message ListWorkitemSubscription extends=Aranea.Default.Session] { project: integer greaterEqualZero "ID of the project" } [message LoginAuthenticated] { name: string notEmpty "Name of the user" } [message LoginKey] { user_key: string notEmpty "Name of the user" app_key: string notEmpty "Application key of the user" } [message Login] { name: string notEmpty "Name of the user" password: string notEmpty "Password of the user" } [message MyEmail extends=Aranea.Default.Session] { } [message MyName extends=Aranea.Default.Session] { } [message MyPassword extends=Aranea.Default.Session] { } [message ProcessFriendshipRequest extends=Aranea.Default.Session] { requester: string notEmpty "Initial friendship requester" accept: boolean "Status whether to accept request or reject request" } [message ProcessFriendshipRequestReply] { requester_mail_address: string notEmpty "Mail address of requester" requestee_username: string notEmpty "Username of requestee" requestee_name: string notVoid "Name of requestee" } [message ProfileVisible] { name: string notEmpty "Name of the user" } [message RemoveBookmark extends=Aranea.Default.Session] { project: integer greaterZero "Project ID" } [message RemoveFriendship extends=Aranea.Default.Session] { friend: string notEmpty "Friend" } [message ReportedIssuesCount extends=Aranea.Default.Session] {} [message ReportedIssuesCountReply] { issue_count: integer greaterEqualZero "The number the user's reported issues." } [message RequestFriendship extends=Aranea.Default.Session] { requestee: string notEmpty "requestee" } [message RequestFriendshipReply] { requestee_mail_address: string notEmpty "Mail address of requestee" requester_username: string notEmpty "Username of requester" requester_name: string notVoid "Name of requester" } [message ResetIcon extends=Aranea.Default.Session] { } [message ResetPassword] { name: string notEmpty "Name of the user" } [message ResetPasswordReply] { password: string notEmpty "Password of the user" email: string notEmpty "Email of the user" } [message RetrieveEmail] { name: string notEmpty "Name of the user" } [message RetrieveFtpConfiguration] {} [message RetrieveInformation extends=Aranea.Default.Session] { user_name: string notEmpty "User name" } [message RetrieveInformationReply] { integer_settings: map notVoid "Settings of type integer" double_settings: map notVoid "Settings of type double" string_settings: map notVoid "Settings of type string" } [message RetrieveValidSettingNames] {} [message RetrieveValidSettingNamesReply] { names: map notVoid "The list of valid setting names" } [message RetrieveSubversionConfiguration] {} [message RetrieveGitConfiguration] {} [message RetrieveGitConfigurationReply] { projects: map; rw: sequence ])> notVoid "Issue list" } [message RetrievePassword] { name: string notEmpty "Name of the user" } [message RetrieveUserFromEmail] { email: string notEmpty "Email of the user" } [message SendMessage extends=Aranea.Default.Session] { username: string notEmpty "Username to send message to" subject: string notEmpty "Subject of the message" message: string notEmpty "Body of the message" } [message SendMessageReply] { recipient_email_address: string notEmpty "Mail address of recipient" recipient_name: string notEmpty "Name of recipient" sender_name: string notEmpty "Name of sender" sender_username: string notEmpty "Username of sender" } // for now: use A_SESSION_MESSAGE instead [message Session extends=Aranea.Default.Session] { } [message SetIcon extends=Aranea.Default.Session] { icon: string notEmpty "Filename of new user icon" } [message SetInformation extends=Aranea.Default.Session] { informations: sequence notVoid "List of informations with [information_type, information_value]" } [message SetWorkitemSubscription extends=Aranea.Default.Session] { project: integer greaterZero "ID of the project" settings: sequence notEmpty "List of settings with [workitem_type, subscription_type, is_enabled]" } [message WorkitemSubscriptions] { subscriptions: sequence notVoid "List of settings with [workitem_type, subscription_type]" } } [namespace Wiki] { // wiki add message [message Add extends=Aranea.Default.Session] { project: integer greaterZero "Project id" title: string notEmpty "Wiki title" url: string notEmpty "URL of the blog-entry" diff: string notEmpty "Diff" revision: integer greaterZero "Revision" old_revision: integer greaterEqualZero "Previous revision" is_private: boolean "Is the page private?" } [message AddReply] { workitem_id: integer greaterEqualZero "ID of the newly added workitem." } // wiki render html message [message RenderHtml extends=Aranea.Default.Session] { wiki_text: string notVoid "Text of the wiki" project_id: integer greaterZero "Project id" } } [namespace Workitem] { [message Count extends=Aranea.Default.Session] { project_id_list: sequence notVoid "List of project IDs for which to retrieve workitems" unread_only: boolean "Only unread workitems" filter_type: integer greaterEqualZero "Only return work-items of `type' (use 0 for listing all types)" } [message CountReply] { workitem_count: integer greaterEqualZero "The number of workitems of the user." } // list message [message List extends=Aranea.Default.Session] { project_id_list: sequence notVoid "List of project IDs for which to retrieve workitems" unread_only: boolean "Only unread workitems" filter_type: integer greaterEqualZero "Only return work-items of `type' (use 0 for listing all types)" // Paging information start: integer greaterEqualZero "The start index of the work item list" limit: integer greaterZero "The maximum number of work items to be returned" sort_column: string notVoid "The sort column, must match a database column" sort_order: string notVoid "Sorting orther, either `asc' or `desc'" } // list reply [message ListReply] { workitem_list: sequence notVoid "The list of retrieved workitems" } // Retrieves a list of projects where there are new workitems for the user [message NewActivity extends=Aranea.Default.Session] {} // Reply to "NewActivity" [message NewActivityReply] { project_id_list: sequence notVoid "list of projects where there are new workitems for the user sending the request." } // retrieve message [message Retrieve extends=Aranea.Default.Session] { workitem_id_list: sequence notVoid "List of Workitem IDs for which to retrieve details." } // workitem retrieve reply message [message RetrieveReply] { workitem_list: sequence "List of issue tags"; project_issue_id: integer greaterEqualZero; deadline: integer greaterEqualZero "Deadline timestamp"; work_amount: integer greaterEqualZero "Measured in number of days"; description: string; attachments: sequence "List of issue attachments"; // release release_id: integer greaterEqualZero; release_version: string; release_description: string; release_files: sequence "List of files with [name, platform]"; is_private: boolean ])> notVoid "The list of retrieved workitems" } // set read status project message [message SetReadStatusProject extends=Aranea.Default.Session] { project_id: integer greaterZero "Project id" read_status: boolean "Read status" } // set read status message [message SetReadStatus extends=Aranea.Default.Session] { workitem_id: integer greaterZero "Workitem id" read_status: boolean "Read status" } // workitem mail message [message Mail] { workitem_id: integer greaterZero "Workitem id" } // workitem mail reply message // TODO switch to sequence [message MailReply] { subject: string notVoid "Mail subject" body: string notVoid "Mail body" sender: string notVoid "Mail sender name" addresses: sequence notVoid "Mail addresses" } } [namespace Issue] { [message Add extends=Aranea.Default.Session] { project: integer greaterZero "Project id" title: string notEmpty "Issue title" description: string notVoid "Issue description" tags: string notVoid "Tags of the issue" is_private: boolean "Is the issue private?" is_internal: boolean "Is this an internal message?" deadline: integer greaterEqualZero "The deadline of the issue" work_amount: integer greaterEqualZero "The estimated amount of work to fix the issue" } [message AddReply] { project_issue_id: integer greaterEqualZero } [message AddStorageReply] { workitem_id: integer greaterEqualZero user: string notEmpty project_id: integer greaterEqualZero project_name: string notEmpty project_issue_id: integer greaterEqualZero } // issue add attachment message // TODO messages should be immutable, which would allow this to be a normal message // TODO: for now, this is generated... --B.Herlig, 2009-06-30 [message AddAttachment extends=Aranea.Default.Session] { project_id: integer greaterZero "Project id" project_issue_id: integer greaterZero "Issue id" file_name: string notEmpty "File name" description: string notEmpty "Description of the file" is_internal: boolean "Is this an internal message?" } [message AddAttachmentStorageReply] { issue_attachment_id: integer "ID of the newly added attachment." } // issue add subscription message [message AddSubscription extends=Aranea.Default.Session] { project_id: integer greaterZero "The project id" project_issue_id: integer greaterZero "The issue id" } // issue comment message [message Comment extends=Aranea.Default.Session] { project: integer greaterEqualZero "id of the project" project_issue_id: integer greaterEqualZero "id of the issue in this project" description: string notVoid "Issue description" is_internal: boolean "is this an internal message?" is_extended: boolean "`true' = The message contains new tags which are to be set in the new issue revision'; `false' = Do not change the tags which means that the tags of the previous revision are used" deadline: integer greaterEqualZero "The deadline of the issue" work_amount: integer greaterEqualZero "Estimated amount of work to fix the issue" tags: string notVoid "Tags" } // The storage node's reply message upon adding a comment. // As the comment may have changed tags, this reply is somewhat verbose, as the // frontend needs to be updated. [message CommentReply] { workitem_id: integer greaterEqualZero "The newly added workitem's ID." user: string notEmpty "Username related to the issue's comment." project_id: integer greaterEqualZero "ID of the project." project_name: string notEmpty "Projectname" project_issue_id: integer greaterEqualZero "ID of the issue in this project" title: string notVoid tags: string notVoid "Tags" } // delete an issue [message Delete extends=Aranea.Default.Session] { project_id: integer greaterZero "Project ID" project_issue_id: integer greaterEqualZero "Issue ID" is_internal: boolean "Is this an internal message, i.e. does the frontend need to be updated?" } // Delete issue: the storage node acknowledges the process, and returns the projectname for updating the frontend. [message DeleteStorageReply extends=Aranea.General.Status] { project_name: string "Project name to which the deleted issue belonged to" } // issue list messasge [message List extends=Aranea.Default.Session] { project: integer greaterZero "Project id" } // issue list reply messasge [message ListReply] { issue_list: map notVoid "Issue list" } // issue list changed message [message ListChanged extends=Aranea.Default.Session] { project: integer greaterZero "Project id" date: integer greaterEqualZero "Unix timestamp, all issues changed after this time will be returned" } // issue list tags messasge [message ListTags extends=Aranea.Default.Session] { project: integer greaterZero "Project id" } // issue list tags reply messasge [message ListTagsReply] { tag_list: sequence notVoid "Tags list" } // Remove all attachments of an issue [message RemoveAllAttachments extends=Aranea.Default.Session] { project_id: integer greaterZero "Project id" project_issue_id: integer greaterZero "Issue id" is_internal: boolean "Is this an internal message?" } // Remove all attachments of an issue [message RemoveAllAttachmentsStorageReply extends=Aranea.General.Status] { project_name: string "Project name to which the removed attachments belonged to" files: sequence "File names of the removed attachments" } // issue remove attachement message [message RemoveAttachment extends=Aranea.Default.Session] { project_id: integer greaterZero "Project id" project_issue_id: integer greaterZero "Issue id" file_name: string notEmpty "File name" is_internal: boolean "Is this an internal message?" } // issue retrieve messasge [message Retrieve extends=Aranea.Default.Session] { issue_id: integer greaterZero "Issue id" project: integer greaterZero "Project id" } // issue retrieve reply message [message RetrieveReply] { creation_time: integer greaterZero "Creation time" last_modified: integer greaterEqualZero "Last modification time" user: string notEmpty "User who created the issue" title: string notEmpty "Issue title" tags: string notVoid "Tags of the issue" is_private: boolean "Is the issue private?" deadline: integer greaterEqualZero "the deadline of the issue" work_amount: integer greaterEqualZero "the estimated amount of work to fix the issue" revisions: sequence "List of revisions with [creation_time, text, tags]" } // issue retrieve attachments message [message RetrieveAttachments extends=Aranea.Default.Session] { project_id: integer greaterZero "Project id" project_issue_id: integer greaterZero "Issue id" } // issue retrieve attachments reply messasge [message RetrieveAttachmentsReply] { issue_attachment_list: sequence notVoid "Issue attachments list" } // issue remove subscription message [message RemoveSubscription extends=Aranea.Default.Session] { project_id: integer greaterZero "The project id" project_issue_id: integer greaterZero "The issue id" } // issue retrieve planning data message [message RetrievePlanningData extends=Aranea.Default.Session] { project_id: integer greaterZero "The project id" project_issue_id: integer greaterZero "The issue id" } // issue retrieve planning data reply message [message RetrievePlanningDataReply] { deadline: integer greaterEqualZero "The deadline of the issue" work_amount: integer greaterEqualZero "The estimated amount of work to fix the issue" } // issue search message [message Search extends=Aranea.Default.Session] { project: integer greaterZero "Project id" search_criteria: map notVoid "The search query (maps issue field names to the desired values)" } // issue update message [message Update extends=Aranea.Default.Session] { project: integer greaterZero "Project id" project_issue_id: integer greaterZero "Issue id" title: string notEmpty "Issue title" description: string notVoid "Issue description" tags: string notVoid "Tags of the issue" is_private: boolean "Is the issue private?" is_internal: boolean "Is this an internal message?" deadline: integer greaterEqualZero "the deadline of the issue" work_amount: integer greaterEqualZero "the estimated amount of work to fix the issue" } [message UpdateReply] { project_issue_id: integer greaterZero "Issue id" } // The storage node's reply upon Updating an issue. [message UpdateStorageReply] { workitem_id: integer greaterEqualZero "The updated workitem's ID." user: string notEmpty "Username related to the issue." project_id: integer greaterEqualZero "ID of the project." project_name: string notEmpty "Projectname" project_issue_id: integer greaterEqualZero "ID of the issue in this project" } // issue id message, implemented using the standard available messagse // [message Id none] // {} } [namespace Project] { [message ChangeDescription extends=Aranea.Default.Session] { project_id: integer greaterZero "Project ID" description: string notEmpty "New description" } [message ChangeGroup extends=Aranea.Default.Session] { project: integer greaterZero "Project ID" user: string notEmpty "User name" group: integer greaterEqualZero "Access group ID" } [message ChangeInformation extends=Aranea.Default.Session] { project_id: integer greaterZero "Project ID" informations: sequence notVoid "List of informations with [information_type, information_value]" } [message ChangeLogo extends=Aranea.Default.Session] { project_id: integer greaterZero "Project ID" logo: string notEmpty "New logo" } [message ChangeSettings extends=Aranea.Default.Session] { project_id: integer greaterZero "Project ID" settings: sequence notVoid "List of informations with [setting_type, setting_value]" } [message ChangeType extends=Aranea.Default.Session] { project_id: integer "The affected project's ID." project_type: integer greaterEqualZero "Project type, e.g. 'Open Source'." rcs_type: integer greaterEqualZero "The type of the project's revision control system" visibility: integer greaterEqualZero "Project visibility, e.g. hidden." } [message ChangeTypeStorageReply] { project_name: string notEmpty "Project name" old_project_type: integer greaterEqualZero "Project type *before* the change request, e.g. 'Open Source'." old_rcs_type: integer greaterEqualZero "The type of the project's revision control system *before* the change request" old_visibility: integer greaterEqualZero "Project visibility *before* the change request, e.g. hidden." } [message Create extends=Aranea.Default.Session] { name: string notEmpty "Project name" description: string notEmpty "Project description" owner_name: string "Name of the user who should own the project" project_type: integer greaterEqualZero "The project's type" rcs_type: integer greaterEqualZero "The type of the project's revision control system" project_visibility: integer greaterEqualZero "Is the project visible?" } [message CreateReply] { project_id: integer greaterEqualZero "ID of the newly created project" } [message Internal] { project_id: integer greaterZero "Project ID" } [message ListAllInternal] { show_hidden: boolean "Show all projects including hidden projects?" } [message ListAll extends=Aranea.Default.Session] { show_hidden: boolean "Show all projects including hidden projects?" } [message ListBookmarkers extends=Aranea.Default.Session] { project_id: integer greaterZero "Project ID" } [message ListCommunities extends=Aranea.Default.Session] { project_id: integer greaterZero "Project ID" } [message List] { project_list: map notVoid "Project list" } [message ListOfUser extends=Aranea.Default.Session] { user: string notEmpty "Name of user we want a project list" } [message ListOfUserReply] { project_list: map notVoid "Project list" } [message ListRepositories extends=Aranea.Default.Session] { project_id: integer greaterZero "Project ID" } [message ListRepositoriesReply] { repositories: sequence "The list of the project's repositories" repository_limit: integer greaterEqualZero "The maximum number of repositories for this project" } [message AddRepository extends=Aranea.Default.Session] { project_id: integer greaterZero "Project ID" repository_name: string notEmpty "Name of the repository to add" } [message AddRepositoryReply] { project_name: string "The name of the project the repository was added to" is_open_source: boolean "Denotes whether the project is open source or not" } [message RemoveRepository extends=Aranea.Default.Session] { project_id: integer greaterZero "Project ID" repository_name: string notEmpty "Name of the repository to remove" } [message RemoveRepositoryReply] { project_name: string "The name of the project the repository was removed from" } [message Members extends=Aranea.Default.Session] { project: integer greaterZero "Project ID" group: integer greaterEqualZero "Access group ID" } [message ID extends=Aranea.Default.Session] { project_id: integer greaterZero "Project ID" } [message Remove extends=Aranea.Default.Session] { project_id: integer greaterZero "Project ID" } [message Reply] { project_id: integer greaterZero "Project ID" name: string notEmpty "Name" logo: string notVoid "Logo" project_type: integer greaterEqualZero "The project's type" rcs_type: integer greaterZero "The projects revision control system type" } [message RequestAdd extends=Aranea.Default.Session] { name: string notEmpty "Name" description: string notEmpty "Project description" project_type: integer greaterEqualZero "The project's type" rcs_type: integer greaterEqualZero "The type of the project's revision control system" project_visibility: integer greaterEqualZero "Is the project visible?" message: string notVoid "Project request message" } [message RequestRetrieve extends=Aranea.Default.Session] { request_project_name: string notEmpty "Request project name" } [message RequestRetrieveReply] { request_id: integer greaterZero "Request ID" user_name: string notEmpty "User name" user_email: string notEmpty "User Email" name: string notEmpty "Project name" description: string notVoid "Description" project_type: integer greaterEqualZero "The project's type" rcs_type: integer greaterEqualZero "The type of the project's revision control system" project_visibility: integer greaterEqualZero "Is the project visible?" message: string notVoid "Project request message" } [message RetrieveID extends=Aranea.Default.Session] { project_name: string notEmpty "Project name" } [message RetrieveIdReply] { project_id: integer greaterZero "Project ID" } [message RetrieveInformation extends=Aranea.Default.Session] { project_id: integer greaterZero "Project ID" } [message RetrieveInformationReply] { project_id: integer greaterZero "Project ID" short_description: string description: string programming_language: string operating_system: string license: string category: string } [message RetrieveSettings extends=Aranea.Default.Session] { project_id: integer greaterZero "Project ID" } [message RetrieveSettingsReply] { project_id: integer greaterZero "Project ID" name: string logo: string project_type: integer greaterZero rcs_type: integer greaterEqualZero "The type of the project's revision control system" project_visibility: integer greaterEqualZero "Is the project visible?" svn_path_doc: string project_pretty_name: string creation_time: integer } [message RetrieveStatisticsInternal] {} [message RetrieveStatistics extends=Aranea.Default.Session] {} [message RetrieveStatisticsReply] { project_count: integer greaterEqualZero "The number of projects (excluding hidden projects, used for the project list)" open_source_count: integer greaterEqualZero "The number of open-source projects (excluding hidden projects )" project_count_hidden: integer greaterEqualZero "The number of hidden projects" open_source_count_hidden: integer greaterEqualZero "The number of hidden open-source projects" user_count: integer greaterEqualZero "The number of active origo users" recent_projects: string notVoid "The 5 recently created projects (names) separated by comma" } } [namespace Release] { // release add message [message Add extends=Aranea.Default.Session] { project_id: integer greaterZero "Project id" name: string notEmpty "Release name" description: string notVoid "Release description" version: string notEmpty "Release version" files: sequence notEmpty "List of files with [name, platform]" } [message AddStorageReply] { workitem_id: integer greaterEqualZero project_name: string notEmpty user_name: string notEmpty release_id: integer greaterEqualZero } // release delete message [message Delete extends=Aranea.Default.Session] { project_id: integer greaterZero "Project id" release_id: integer greaterZero "Release id" } // release file move config request message [message FileMoveConfigRequest extends=Aranea.Default.Session] { project: integer greaterZero "Project id" } // release list internal message [message ListInternal] { project: integer greaterZero "Project id" } // release list message [message List extends=Aranea.Default.Session] { project: integer greaterZero "Project id" } // release list reply message [message ListReply] { release_list: map ])> notVoid "Release list" } // release retrieve internal message [message RetrieveInternal] { release_id: integer greaterZero "Release id" } // release retrieve message [message Retrieve extends=Aranea.Default.Session] { release_id: integer greaterZero "Release id" } // release retrieve reply message [message RetrieveReply] { project: integer greaterZero "Project id" creation_time: integer greaterZero "Creation time" name: string notVoid "Release name" description: string notVoid "Release description" version: string notVoid "Release version" files: sequence notEmpty "List of files with [name, platform]" } } [namespace RRD] { // message to create a rrd [message Create] { filename: string notEmpty "File name" start_time: integer greaterEqualZero "Start time, 0 for default (now - 10s)" step: integer greaterEqualZero "Step, 0 for default (300)" datasource_definition: sequence notEmpty "Datasource definition as specified by rrdtool" round_robin_archives: sequence notEmpty "RRA definitions as specified by rrdtool" } // message to update a rrd [message Update] { filename: string notEmpty "File name" template: string "Datasource template or Void if not needed" update: sequence notEmpty "Update time/values as specified by rrdtool" } // message to update a rrd [message BatchUpdate] { update_list: sequence notEmpty "Update time/values as specified by rrdtool" ])> notVoid "List of RRD Updates" } } [namespace Statistics] { // message to create rrd files for a project [message Create] { project_name: string notEmpty "Project name" } // message to update statistics [message Update] {} // message to query workitem stats [message RetrieveWorkitem] {} // message reply for workitem stats [message RetrieveWorkitemReply] { stats: map notVoid "Statistics per project." } // message to query issue stats [message RetrieveIssue] {} // message reply for issue stats [message RetrieveIssueReply] { stats: map notVoid "Statistics per project." } } }