You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by br...@apache.org on 2015/08/13 22:01:55 UTC
[01/11] allura git commit: [#6797] initial RAML, written by Heith
Repository: allura
Updated Branches:
refs/heads/db/6797 [created] f864c018d
http://git-wip-us.apache.org/repos/asf/allura/blob/247ee2a9/Allura/docs/api-rest/schemas/tickets.json
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/schemas/tickets.json b/Allura/docs/api-rest/schemas/tickets.json
new file mode 100755
index 0000000..6a68c2c
--- /dev/null
+++ b/Allura/docs/api-rest/schemas/tickets.json
@@ -0,0 +1,163 @@
+ {
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "id": "/",
+ "type": "object",
+ "properties": {
+ "tickets": {
+ "id": "tickets",
+ "type": "array",
+ "items": {
+ "id": "99",
+ "type": "object",
+ "properties": {
+ "summary": {
+ "id": "summary",
+ "type": "string"
+ },
+ "ticket_num": {
+ "id": "ticket_num",
+ "type": "integer"
+ }
+ }
+ }
+ },
+ "count": {
+ "id": "count",
+ "type": "integer"
+ },
+ "milestones": {
+ "id": "milestones",
+ "type": "array",
+ "items": {
+ "id": "7",
+ "type": "object",
+ "properties": {
+ "due_date": {
+ "id": "due_date",
+ "type": "string"
+ },
+ "complete": {
+ "id": "complete",
+ "type": "boolean"
+ },
+ "closed": {
+ "id": "closed",
+ "type": "integer"
+ },
+ "default": {
+ "id": "default",
+ "type": ""
+ },
+ "description": {
+ "id": "description",
+ "type": "string"
+ },
+ "total": {
+ "id": "total",
+ "type": "integer"
+ },
+ "name": {
+ "id": "name",
+ "type": "string"
+ }
+ }
+ }
+ },
+ "tracker_config": {
+ "id": "tracker_config",
+ "type": "object",
+ "properties": {
+ "_id": {
+ "id": "_id",
+ "type": "string"
+ },
+ "options": {
+ "id": "options",
+ "type": "object",
+ "properties": {
+ "ordinal": {
+ "id": "ordinal",
+ "type": "integer"
+ },
+ "TicketHelpNew": {
+ "id": "TicketHelpNew",
+ "type": "string"
+ },
+ "mount_point": {
+ "id": "mount_point",
+ "type": "string"
+ },
+ "TicketMonitoringType": {
+ "id": "TicketMonitoringType",
+ "type": "string"
+ },
+ "EnableVoting": {
+ "id": "EnableVoting",
+ "type": "boolean"
+ },
+ "TicketHelpSearch": {
+ "id": "TicketHelpSearch",
+ "type": "string"
+ },
+ "TicketMonitoringEmail": {
+ "id": "TicketMonitoringEmail",
+ "type": "string"
+ },
+ "import_id": {
+ "id": "import_id",
+ "type": "object",
+ "properties": {
+ "source": {
+ "id": "source",
+ "type": "string"
+ },
+ "app_config_id": {
+ "id": "app_config_id",
+ "type": "string"
+ }
+ }
+ },
+ "mount_label": {
+ "id": "mount_label",
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ "limit": {
+ "id": "limit",
+ "type": "integer"
+ },
+ "saved_bins": {
+ "id": "saved_bins",
+ "type": "array",
+ "items": {
+ "id": "4",
+ "type": "object",
+ "properties": {
+ "sort": {
+ "id": "sort",
+ "type": "string"
+ },
+ "_id": {
+ "id": "_id",
+ "type": "string"
+ },
+ "terms": {
+ "id": "terms",
+ "type": "string"
+ },
+ "summary": {
+ "id": "summary",
+ "type": "string"
+ }
+ }
+ }
+ },
+ "page": {
+ "id": "page",
+ "type": "integer"
+ }
+ }
+ }
http://git-wip-us.apache.org/repos/asf/allura/blob/247ee2a9/Allura/docs/api-rest/schemas/user.json
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/schemas/user.json b/Allura/docs/api-rest/schemas/user.json
new file mode 100755
index 0000000..77d0591
--- /dev/null
+++ b/Allura/docs/api-rest/schemas/user.json
@@ -0,0 +1,196 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "id": "/",
+ "title": "User.",
+ "description": "A user's first and last name.",
+ "type": "object",
+ "properties": {
+ "status": {
+ "id": "status",
+ "type": "string"
+ },
+ "preferred_support_tool": {
+ "id": "preferred_support_tool",
+ "type": "string"
+ },
+ "profile_api_url": {
+ "id": "profile_api_url",
+ "type": "string"
+ },
+ "preferred_support_url": {
+ "id": "preferred_support_url",
+ "type": "string"
+ },
+ "labels": {
+ "id": "labels",
+ "type": "array",
+ "items": {}
+ },
+ "private": {
+ "id": "private",
+ "type": "boolean"
+ },
+ "creation_date": {
+ "id": "creation_date",
+ "type": "string"
+ },
+ "socialnetworks": {
+ "id": "socialnetworks",
+ "type": "array",
+ "items": {
+ "id": "1",
+ "type": "object",
+ "properties": {
+ "accounturl": {
+ "id": "accounturl",
+ "type": "string"
+ },
+ "socialnetwork": {
+ "id": "socialnetwork",
+ "type": "string"
+ }
+ }
+ }
+ },
+ "tools": {
+ "id": "tools",
+ "type": "array",
+ "items": {
+ "id": "5",
+ "type": "object",
+ "properties": {
+ "mount_point": {
+ "id": "mount_point",
+ "type": "string"
+ },
+ "name": {
+ "id": "name",
+ "type": "string"
+ },
+ "label": {
+ "id": "label",
+ "type": "string"
+ }
+ }
+ }
+ },
+ "categories": {
+ "id": "categories",
+ "type": "object",
+ "properties": {
+ "developmentstatus": {
+ "id": "developmentstatus",
+ "type": "array",
+ "items": {}
+ },
+ "environment": {
+ "id": "environment",
+ "type": "array",
+ "items": {}
+ },
+ "language": {
+ "id": "language",
+ "type": "array",
+ "items": {}
+ },
+ "license": {
+ "id": "license",
+ "type": "array",
+ "items": {}
+ },
+ "database": {
+ "id": "database",
+ "type": "array",
+ "items": {}
+ },
+ "topic": {
+ "id": "topic",
+ "type": "array",
+ "items": {}
+ },
+ "audience": {
+ "id": "audience",
+ "type": "array",
+ "items": {}
+ },
+ "translation": {
+ "id": "translation",
+ "type": "array",
+ "items": {}
+ },
+ "os": {
+ "id": "os",
+ "type": "array",
+ "items": {}
+ }
+ }
+ },
+ "_id": {
+ "id": "_id",
+ "type": "string"
+ },
+ "name": {
+ "id": "name",
+ "type": "string"
+ },
+ "url": {
+ "id": "url",
+ "type": "string"
+ },
+ "icon_url": {
+ "id": "icon_url",
+ "type": "null"
+ },
+ "video_url": {
+ "id": "video_url",
+ "type": "string"
+ },
+ "screenshots": {
+ "id": "screenshots",
+ "type": "array",
+ "items": {}
+ },
+ "summary": {
+ "id": "summary",
+ "type": "string"
+ },
+ "short_description": {
+ "id": "short_description",
+ "type": "null"
+ },
+ "moved_to_url": {
+ "id": "moved_to_url",
+ "type": "string"
+ },
+ "shortname": {
+ "id": "shortname",
+ "type": "string"
+ },
+ "developers": {
+ "id": "developers",
+ "type": "array",
+ "items": {
+ "id": "0",
+ "type": "object",
+ "properties": {
+ "url": {
+ "id": "url",
+ "type": "string"
+ },
+ "username": {
+ "id": "username",
+ "type": "string"
+ },
+ "name": {
+ "id": "name",
+ "type": "string"
+ }
+ }
+ }
+ },
+ "external_homepage": {
+ "id": "external_homepage",
+ "type": "string"
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/allura/blob/247ee2a9/Allura/docs/api-rest/schemas/userProfile.json
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/schemas/userProfile.json b/Allura/docs/api-rest/schemas/userProfile.json
new file mode 100755
index 0000000..a2fde7b
--- /dev/null
+++ b/Allura/docs/api-rest/schemas/userProfile.json
@@ -0,0 +1,266 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "id": "/",
+ "type": "object",
+ "title": "User Profile.",
+ "name": "/",
+ "properties": {
+ "username": {
+ "id": "username",
+ "type": "string",
+ "name": "username"
+ },
+ "name": {
+ "id": "name",
+ "type": "string",
+ "title": "Full Name.",
+ "description": "A user's first and last name.",
+ "name": "name"
+ },
+ "localization": {
+ "id": "localization",
+ "type": "object",
+ "description": "General Location.",
+ "name": "localization",
+ "properties": {
+ "city": {
+ "id": "city",
+ "type": "string",
+ "name": "city"
+ },
+ "country": {
+ "id": "country",
+ "type": "string",
+ "name": "country"
+ }
+ }
+ },
+ "skills": {
+ "id": "skills",
+ "type": "array",
+ "title": "Skills.",
+ "description": "A list of skills and associated skill levels.",
+ "name": "skills",
+ "items": {
+ "id": "0",
+ "type": "object",
+ "title": "0 schema.",
+ "name": "0",
+ "properties": {
+ "comment": {
+ "id": "comment",
+ "type": "string",
+ "title": "Comment.",
+ "description": "Additional comments about a given skill.",
+ "name": "comment"
+ },
+ "skill": {
+ "id": "skill",
+ "type": "object",
+ "title": "Skill schema.",
+ "name": "skill",
+ "properties": {
+ "fullpath": {
+ "id": "fullpath",
+ "type": "string",
+ "title": "Full Path.",
+ "description": "Category hierarchy.",
+ "name": "fullpath"
+ },
+ "fullname": {
+ "id": "fullname",
+ "type": "string",
+ "title": "Fullname schema.",
+ "description": "Name of category.",
+ "name": "fullname"
+ },
+ "shortname": {
+ "id": "shortname",
+ "type": "string",
+ "title": "Shortname.",
+ "description": "Short form of category.",
+ "name": "shortname"
+ },
+ "id": {
+ "id": "id",
+ "type": "integer",
+ "title": "Id.",
+ "description": "Unique identifier",
+ "name": "id"
+ }
+ }
+ },
+ "level": {
+ "id": "level",
+ "type": "string",
+ "enum": ["low", "medium", "high"],
+ "title": "Skill Level.",
+ "description": "low, medium or high",
+ "name": "level"
+ }
+ }
+ }
+ },
+ "webpages": {
+ "id": "webpages",
+ "type": "array",
+ "title": "Webpages schema.",
+ "description": "A list of URL strings associated with a user.",
+ "name": "webpages",
+ "items": {}
+ },
+ "joined": {
+ "id": "joined",
+ "type": "string",
+ "title": "Joined schema.",
+ "description": "The date a user signed up.",
+ "name": "joined"
+ },
+ "socialnetworks": {
+ "id": "socialnetworks",
+ "type": "array",
+ "title": "Social Networks.",
+ "description": "A list of social networks URLs.",
+ "name": "socialnetworks",
+ "items": {
+ "type": "object",
+ "properties": {
+ "accounturl": {
+ "id": "accounturl",
+ "type": "string",
+ "title": "Account Url.",
+ "description": "URL to the associated user account on the social network site.",
+ "name": "accounturl"
+ },
+ "socialnetwork": {
+ "id": "socialnetwork",
+ "type": "string",
+ "title": "Socialnetwork schema.",
+ "description": "Name of the social networking site.",
+ "name": "socialnetwork"
+ }
+ }
+ }
+ },
+ "telnumbers": {
+ "id": "telnumbers",
+ "type": "array",
+ "title": "Telnumbers schema.",
+ "description": "A list of phone numbers as strings.",
+ "name": "telnumbers",
+ "items": {}
+ },
+ "sex": {
+ "id": "sex",
+ "type": "string",
+ "name": "sex"
+ },
+ "availability": {
+ "id": "availability",
+ "type": "array",
+ "title": "Availability.",
+ "description": "Indicates the availability of a user.",
+ "name": "availability",
+ "items": {
+ "type": "object",
+ "description": "An explanation about the puropose of this instance described by this schema.",
+ "properties": {
+ "start_time": {
+ "id": "start_time",
+ "type": "object",
+ "title": "Start Time.",
+ "description": "The start of a user's availability.",
+ "name": "start_time",
+ "properties": {
+ "h": {
+ "id": "h",
+ "type": "integer",
+ "title": "Hour.",
+ "name": "h"
+ },
+ "m": {
+ "id": "m",
+ "type": "integer",
+ "title": "Minute.",
+ "name": "m"
+ }
+ }
+ },
+ "week_day": {
+ "id": "week_day",
+ "type": "string",
+ "title": "Week Day.",
+ "description": "Day of week.",
+ "name": "week_day"
+ },
+ "end_time": {
+ "id": "end_time",
+ "type": "object",
+ "title": "End Time.",
+ "description": "The end of a user's availability.",
+ "name": "end_time",
+ "properties": {
+ "h": {
+ "id": "h",
+ "type": "integer",
+ "title": "Hour.",
+ "name": "h"
+ },
+ "m": {
+ "id": "m",
+ "type": "integer",
+ "title": "Minute.",
+ "name": "m"
+ }
+ }
+ }
+ }
+ }
+ },
+ "projects": {
+ "id": "projects",
+ "type": "array",
+ "title": "Projects.",
+ "description": "A list of projects accociated with a user.",
+ "name": "projects",
+ "items": {
+ "type": "object",
+ "description": "Apache Allura project.",
+ "properties": {
+ "url": {
+ "id": "url",
+ "type": "string",
+ "title": "Project Url.",
+ "name": "url"
+ },
+ "last_updated": {
+ "id": "last_updated",
+ "type": "string",
+ "title": "Last Updated.",
+ "description": "string formatted timestamp.",
+ "name": "last_updated"
+ },
+ "name": {
+ "id": "name",
+ "type": "string",
+ "title": "Name.",
+ "name": "name"
+ },
+ "summary": {
+ "id": "summary",
+ "type": "string",
+ "title": "Project Summary.",
+ "name": "summary"
+ }
+ }
+ }
+ },
+ "skypeaccount": {
+ "id": "skypeaccount",
+ "type": ["null", "string"],
+ "title": "Skype Account.",
+ "description": "Skype account username.",
+ "name": "skypeaccount"
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/allura/blob/247ee2a9/Allura/docs/api-rest/schemas/webhook.json
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/schemas/webhook.json b/Allura/docs/api-rest/schemas/webhook.json
new file mode 100755
index 0000000..a855903
--- /dev/null
+++ b/Allura/docs/api-rest/schemas/webhook.json
@@ -0,0 +1,34 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "id": "http://jsonschema.net",
+ "type": "object",
+ "properties": {
+ "hook_url": {
+ "id": "http://jsonschema.net/hook_url",
+ "type": "string"
+ },
+ "mod_date": {
+ "id": "http://jsonschema.net/mod_date",
+ "type": "string"
+ },
+ "url": {
+ "id": "http://jsonschema.net/url",
+ "type": "string"
+ },
+ "_id": {
+ "id": "http://jsonschema.net/_id",
+ "type": "string"
+ },
+ "type": {
+ "id": "http://jsonschema.net/type",
+ "type": "string"
+ }
+ },
+ "required": [
+ "hook_url",
+ "mod_date",
+ "url",
+ "_id",
+ "type"
+ ]
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/allura/blob/247ee2a9/Allura/docs/api-rest/schemas/webhooks.json
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/schemas/webhooks.json b/Allura/docs/api-rest/schemas/webhooks.json
new file mode 100755
index 0000000..4c10e81
--- /dev/null
+++ b/Allura/docs/api-rest/schemas/webhooks.json
@@ -0,0 +1,57 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "id": "/",
+ "type": "object",
+ "properties": {
+ "webhooks": {
+ "id": "webhooks",
+ "type": "array",
+ "items": {
+ "id": "1",
+ "type": "object",
+ "properties": {
+ "url": {
+ "id": "url",
+ "type": "string"
+ },
+ "mod_date": {
+ "id": "mod_date",
+ "type": "string"
+ },
+ "_id": {
+ "id": "_id",
+ "type": "string"
+ },
+ "type": {
+ "id": "type",
+ "type": "string"
+ },
+ "hook_url": {
+ "id": "hook_url",
+ "type": "string"
+ }
+ }
+ }
+ },
+ "limits": {
+ "id": "limits",
+ "type": "object",
+ "properties": {
+ "repo-push": {
+ "id": "repo-push",
+ "type": "object",
+ "properties": {
+ "max": {
+ "id": "max",
+ "type": "integer"
+ },
+ "used": {
+ "id": "used",
+ "type": "integer"
+ }
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/allura/blob/247ee2a9/Allura/docs/api-rest/schemas/wiki.json
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/schemas/wiki.json b/Allura/docs/api-rest/schemas/wiki.json
new file mode 100755
index 0000000..7859527
--- /dev/null
+++ b/Allura/docs/api-rest/schemas/wiki.json
@@ -0,0 +1,16 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema",
+ "type": "object",
+ "id": "#",
+ "properties": {
+ "pages": {
+ "items": {
+ "type": "string",
+ "id": "0"
+ },
+ "type": "array",
+ "id": "pages"
+ }
+ }
+}
+
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/allura/blob/247ee2a9/Allura/docs/api-rest/securitySchemes.yaml
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/securitySchemes.yaml b/Allura/docs/api-rest/securitySchemes.yaml
new file mode 100755
index 0000000..a7927cc
--- /dev/null
+++ b/Allura/docs/api-rest/securitySchemes.yaml
@@ -0,0 +1,8 @@
+- oauth_1_0:
+ description: |
+ Apache Allura supports OAuth 1.0 for authenticating API requests.
+ type: OAuth 1.0
+ settings:
+ requestTokenUri: https://forge-allura.apache.org/rest/oauth/request_token
+ authorizationUri: https://forge-allura.apache.org/rest/oauth/authorize
+ tokenCredentialsUri: https://forge-allura.apache.org/rest/oauth/access_token
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/allura/blob/247ee2a9/Allura/docs/api-rest/traits.yaml
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/traits.yaml b/Allura/docs/api-rest/traits.yaml
new file mode 100755
index 0000000..d483810
--- /dev/null
+++ b/Allura/docs/api-rest/traits.yaml
@@ -0,0 +1,80 @@
+- searchable:
+ queryParameters:
+ query:
+ description: |
+ JSON array [{"field1","value1","operator1"},{"field2","value2","operator2"},...,{"fieldN","valueN","operatorN"}] <<description>>
+ example: |
+ <<example>>
+- orderable:
+ queryParameters:
+ orderBy:
+ description: |
+ Order by field: <<fieldsList>>
+ type: string
+ required: false
+ order:
+ description: Order
+ enum: [desc, asc]
+ default: desc
+ required: false
+- pageable:
+ queryParameters:
+ page:
+ description: Skip over a number of elements by specifying an offset value for the query
+ type: integer
+ required: false
+ example: 2
+ default: 0
+ limit:
+ description: Limit the number of elements on the response
+ type: integer
+ required: false
+ example: 5
+ default: 10
+- paged:
+ queryParameters:
+ numPages:
+ description: The number of pages to return
+- secured:
+ displayName: secured
+ headers:
+ Authorization:
+ description: The auth token for this request
+ responses:
+ 401:
+ description: Unauthorized
+- rateLimited:
+ queryParameters:
+ numPages:
+ description: The number of pages to return, not to exceed <<maxPages>>
+- permissionTestable:
+ description: |
+ **Endpoints**
+ Permissions can be checked at three levels:
+ 1. **Neighborhood:** `/rest/p/has_access`
+ 2. **Project:** `/rest/p/project_name/has_access`
+ 3. **Tool:** `/rest/p/project_name/mount_point/has_access`
+
+ ---
+
+ It is only available to users that have 'admin' permission for corresponding neighborhood/project/tool. It requires user and perm parameters and will return JSON dict with result key, which contains boolean value, indicating if given user has perm permission to the neighborhood/project/tool.
+
+ E.g.:
+ **GET** `/rest/p/test/wiki/has_access?user=admin1&perm=create`
+ *returns* { result: true }
+ **GET** `/rest/p/test/wiki/has_access?user=user01&perm=create`
+ *returns* { result: false }
+
+ queryParameters:
+ user:
+ type: string
+ example: heiths
+ required: true
+ description: The username to check
+ perm:
+ displayName: Permission
+ required: true
+ type: string
+ example: create
+ default: read
+ enum: ["read", "admin", "create", "update"]
\ No newline at end of file
[07/11] allura git commit: [#6797] reorder tools;
link shouldn't got first
Posted by br...@apache.org.
[#6797] reorder tools; link shouldn't got first
Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/ecd0e4a4
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/ecd0e4a4
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/ecd0e4a4
Branch: refs/heads/db/6797
Commit: ecd0e4a4b07e2a86076c779e10002b26afc6248e
Parents: 2866eba
Author: Dave Brondsema <da...@brondsema.net>
Authored: Thu Aug 13 14:04:22 2015 -0400
Committer: Dave Brondsema <da...@brondsema.net>
Committed: Thu Aug 13 14:04:22 2015 -0400
----------------------------------------------------------------------
Allura/docs/api-rest/api.raml | 394 ++++++++++++++++++-------------------
1 file changed, 197 insertions(+), 197 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/allura/blob/ecd0e4a4/Allura/docs/api-rest/api.raml
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/api.raml b/Allura/docs/api-rest/api.raml
index 78402a2..dfedf35 100755
--- a/Allura/docs/api-rest/api.raml
+++ b/Allura/docs/api-rest/api.raml
@@ -69,203 +69,6 @@ baseUriParameters:
default: read
enum: [read, admin, create, update]
- /{link}:
- description: |
- Represents the External Link tool.
- type: {
- tool: {
- example: !include examples/link.json,
- schema: !include schemas/link.json
- }
- }
-
- get:
- description: |
- Returns the existing url.
-
- post:
- description: |
- Updates the url. *authentication required*.
- body:
- application/x-www-form-urlencoded:
- formParameters:
- url:
- description: |
- The url you would like to update to.
- type: string
- example: http://google.com
-
- /{blog}:
- type: {
- tool: {
- example: !include examples/blog.json,
- schema: !include schemas/blog.json
- }
- }
- description: |
- Represents the **Blog tool**
-
- displayName: Blog
- uriParameters:
- blog:
- displayName: Blog Name
- type: string
- example: blog
-
- get:
- description: |
- Returns a list of posts, including title and API url.
- post:
- description: |
- Creates a new blog post.
- body:
- application/x-www-form-urlencoded:
- formParameters:
- title:
- description: |
- The title of the post.
- type: string
- example: New API docs released!
- text:
- description: |
- The text of the post.
- type: string
- example: Lots of text here describing apis!\nThat is all.
- labels:
- description: |
- Labels of the post -- comma seperated strings
- type: string
- example: api,development
- state:
- description: |
- Draft or published.
- enum: [draft, published]
- type: string
- example: published
-
- /{year}/{month}/{title}:
- description: Represents a blog post entry.
- type: {
- tool: {
- example: !include examples/blogPost.json,
- schema: !include schemas/blogPost.json
- }
- }
- displayName: Blog Post
- uriParameters:
- year:
- displayName: Year
- type: number
- example: 2015
- month:
- displayName: Month
- type: number
- example: 04
- title:
- displayName: Title
- type: string
- example: project-insights
-
- post:
- description: |
- Updates an existing blog post.
- body:
- application/x-www-form-urlencoded:
- formParameters:
- title:
- description: |
- The title of the post.
- type: string
- text:
- description: |
- The text of the post.
- type: string
- labels:
- description: |
- Labels of the post -- comma seperated strings
- type: string
- state:
- description: |
- Draft or published.
- enum: [draft, published]
- type: string
-
- /has_access:
- type: permission
- get:
- queryParameters:
- perm:
- displayName: Permission
- required: true
- type: string
- example: post
- default: read
- enum: [admin, configure, moderate, post, unmoderated_post, read, write]
-
- /{discussion}:
- description: |
- Represents the **Discussion Tool**.
- type: {
- tool: {
- schema: !include schemas/discussion.json,
- example: !include examples/discussion.json
- }
- }
-
- displayName: Discussion
- uriParameters:
- discussion:
- displayName: Discussion Tool Name
- type: string
- example: "discussion"
- get:
- description: |
- Returns a list of forums, including name, description, num_topics, and last_post details
- is: [pageable]
-
- /{forum}:
- description: |
- Represents a forum within a Discussion tool.
- type: {
- tool: {
- # FIXME
- example: !include examples/page.json,
- schema: !include schemas/page.json
- }
- }
- displayName: forum
- uriParameters:
- forum:
- displayName: Forum Name
- type: string
- example: general
-
- get:
- is: [pageable]
- description: |
- returns a limited list of topics in the forum, with fields for subject, num_replies, API URL, and last_post
- To view more than 100 threads, or 100 posts in a thread, use the pagination support of the API by adding ?page=1 etc. to the URL.
-
- /thread/{thread}:
- description: |
- Represents a thread of posts.
- get:
- is: [pageable]
- description: |
- returns a list of posts in the thread, with fields for author, text, and timestamp. Nested posts (i.e. a reply to a post) can be determined by the slug structure. For example, "slug": "0a0b/9f00" is a reply to the post with "slug": "0a0b"
-
- /has_access:
- type: permission
- get:
- queryParameters:
- perm:
- displayName: Permission
- required: true
- type: string
- example: post
- default: read
- enum: [admin, configure, moderate, post, unmoderated_post, read]
-
/{wiki}:
description: |
Represents the **Wiki Tool**.
@@ -511,6 +314,203 @@ baseUriParameters:
enum: [admin, configure, moderate, post, unmoderated_post, read, create, delete, update, save_searches]
+ /{discussion}:
+ description: |
+ Represents the **Discussion Tool**.
+ type: {
+ tool: {
+ schema: !include schemas/discussion.json,
+ example: !include examples/discussion.json
+ }
+ }
+
+ displayName: Discussion
+ uriParameters:
+ discussion:
+ displayName: Discussion Tool Name
+ type: string
+ example: "discussion"
+ get:
+ description: |
+ Returns a list of forums, including name, description, num_topics, and last_post details
+ is: [pageable]
+
+ /{forum}:
+ description: |
+ Represents a forum within a Discussion tool.
+ type: {
+ tool: {
+ # FIXME
+ example: !include examples/page.json,
+ schema: !include schemas/page.json
+ }
+ }
+ displayName: forum
+ uriParameters:
+ forum:
+ displayName: Forum Name
+ type: string
+ example: general
+
+ get:
+ is: [pageable]
+ description: |
+ returns a limited list of topics in the forum, with fields for subject, num_replies, API URL, and last_post
+ To view more than 100 threads, or 100 posts in a thread, use the pagination support of the API by adding ?page=1 etc. to the URL.
+
+ /thread/{thread}:
+ description: |
+ Represents a thread of posts.
+ get:
+ is: [pageable]
+ description: |
+ returns a list of posts in the thread, with fields for author, text, and timestamp. Nested posts (i.e. a reply to a post) can be determined by the slug structure. For example, "slug": "0a0b/9f00" is a reply to the post with "slug": "0a0b"
+
+ /has_access:
+ type: permission
+ get:
+ queryParameters:
+ perm:
+ displayName: Permission
+ required: true
+ type: string
+ example: post
+ default: read
+ enum: [admin, configure, moderate, post, unmoderated_post, read]
+
+ /{blog}:
+ type: {
+ tool: {
+ example: !include examples/blog.json,
+ schema: !include schemas/blog.json
+ }
+ }
+ description: |
+ Represents the **Blog tool**
+
+ displayName: Blog
+ uriParameters:
+ blog:
+ displayName: Blog Name
+ type: string
+ example: blog
+
+ get:
+ description: |
+ Returns a list of posts, including title and API url.
+ post:
+ description: |
+ Creates a new blog post.
+ body:
+ application/x-www-form-urlencoded:
+ formParameters:
+ title:
+ description: |
+ The title of the post.
+ type: string
+ example: New API docs released!
+ text:
+ description: |
+ The text of the post.
+ type: string
+ example: Lots of text here describing apis!\nThat is all.
+ labels:
+ description: |
+ Labels of the post -- comma seperated strings
+ type: string
+ example: api,development
+ state:
+ description: |
+ Draft or published.
+ enum: [draft, published]
+ type: string
+ example: published
+
+ /{year}/{month}/{title}:
+ description: Represents a blog post entry.
+ type: {
+ tool: {
+ example: !include examples/blogPost.json,
+ schema: !include schemas/blogPost.json
+ }
+ }
+ displayName: Blog Post
+ uriParameters:
+ year:
+ displayName: Year
+ type: number
+ example: 2015
+ month:
+ displayName: Month
+ type: number
+ example: 04
+ title:
+ displayName: Title
+ type: string
+ example: project-insights
+
+ post:
+ description: |
+ Updates an existing blog post.
+ body:
+ application/x-www-form-urlencoded:
+ formParameters:
+ title:
+ description: |
+ The title of the post.
+ type: string
+ text:
+ description: |
+ The text of the post.
+ type: string
+ labels:
+ description: |
+ Labels of the post -- comma seperated strings
+ type: string
+ state:
+ description: |
+ Draft or published.
+ enum: [draft, published]
+ type: string
+
+ /has_access:
+ type: permission
+ get:
+ queryParameters:
+ perm:
+ displayName: Permission
+ required: true
+ type: string
+ example: post
+ default: read
+ enum: [admin, configure, moderate, post, unmoderated_post, read, write]
+
+ /{link}:
+ description: |
+ Represents the External Link tool.
+ type: {
+ tool: {
+ example: !include examples/link.json,
+ schema: !include schemas/link.json
+ }
+ }
+
+ get:
+ description: |
+ Returns the existing url.
+
+ post:
+ description: |
+ Updates the url. *authentication required*.
+ body:
+ application/x-www-form-urlencoded:
+ formParameters:
+ url:
+ description: |
+ The url you would like to update to.
+ type: string
+ example: http://google.com
+
/admin:
description: |
Endpoints for **project exporting** and managing **webhooks**
[02/11] allura git commit: [#6797] initial RAML, written by Heith
Posted by br...@apache.org.
[#6797] initial RAML, written by Heith
Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/247ee2a9
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/247ee2a9
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/247ee2a9
Branch: refs/heads/db/6797
Commit: 247ee2a90d12131abc651cf3f4d4aface6c3552f
Parents: 032c2ed
Author: Dave Brondsema <da...@brondsema.net>
Authored: Fri Aug 7 16:05:56 2015 -0400
Committer: Dave Brondsema <da...@brondsema.net>
Committed: Tue Aug 11 12:03:50 2015 -0400
----------------------------------------------------------------------
Allura/docs/api-rest/api.raml | 617 +++++++++++++++++++
Allura/docs/api-rest/examples/blog.json | 19 +
Allura/docs/api-rest/examples/blogPost.json | 20 +
Allura/docs/api-rest/examples/discussion.json | 58 ++
Allura/docs/api-rest/examples/link.json | 1 +
Allura/docs/api-rest/examples/page.json | 18 +
Allura/docs/api-rest/examples/project.json | 144 +++++
.../docs/api-rest/examples/searchedTickets.json | 126 ++++
Allura/docs/api-rest/examples/ticket.json | 65 ++
Allura/docs/api-rest/examples/tickets.json | 150 +++++
Allura/docs/api-rest/examples/user.json | 75 +++
Allura/docs/api-rest/examples/userProfile.json | 56 ++
Allura/docs/api-rest/examples/webhook.json | 7 +
Allura/docs/api-rest/examples/webhooks.json | 24 +
Allura/docs/api-rest/examples/wiki.json | 28 +
Allura/docs/api-rest/resourceTypes.yaml | 150 +++++
Allura/docs/api-rest/schemas/blog.json | 37 ++
Allura/docs/api-rest/schemas/blogPost.json | 75 +++
Allura/docs/api-rest/schemas/discussion.json | 103 ++++
Allura/docs/api-rest/schemas/hasPermission.json | 12 +
Allura/docs/api-rest/schemas/link.json | 12 +
Allura/docs/api-rest/schemas/page.json | 63 ++
Allura/docs/api-rest/schemas/project.json | 179 ++++++
.../docs/api-rest/schemas/searchedTickets.json | 210 +++++++
Allura/docs/api-rest/schemas/ticket.json | 180 ++++++
Allura/docs/api-rest/schemas/tickets.json | 163 +++++
Allura/docs/api-rest/schemas/user.json | 196 ++++++
Allura/docs/api-rest/schemas/userProfile.json | 266 ++++++++
Allura/docs/api-rest/schemas/webhook.json | 34 +
Allura/docs/api-rest/schemas/webhooks.json | 57 ++
Allura/docs/api-rest/schemas/wiki.json | 16 +
Allura/docs/api-rest/securitySchemes.yaml | 8 +
Allura/docs/api-rest/traits.yaml | 80 +++
33 files changed, 3249 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/allura/blob/247ee2a9/Allura/docs/api-rest/api.raml
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/api.raml b/Allura/docs/api-rest/api.raml
new file mode 100755
index 0000000..b22c117
--- /dev/null
+++ b/Allura/docs/api-rest/api.raml
@@ -0,0 +1,617 @@
+#%RAML 0.8
+---
+title: Apache Allura
+version: 1
+baseUri: https://{domain}/rest
+
+resourceTypes: !include resourceTypes.yaml
+traits: !include traits.yaml
+securitySchemes: !include securitySchemes.yaml
+
+baseUriParameters:
+ domain:
+ description: "The website domain"
+ example: "forge-allura.apache.org"
+ default: "forge-allura.apache.org"
+
+
+/{neighborhood}:
+ description: |
+ Neighborhoods are groups of logically related projects, which have the same default options.
+
+ uriParameters:
+ neighborhood:
+ example: p
+ description: |
+ Allura has two default neighborhoods: **“Projects”** `/p` and **“Users”** `/u`.
+ More information can be found [here](https://forge-allura.apache.org/docs/getting_started/using.html?highlight=neighborhood#what-are-neighborhoods)
+
+ /has_access:
+ type: permission
+
+ /{project}:
+ description: |
+ Get or modify existing projects.
+ uriParameters:
+ project:
+ description: "The Apache Allura Project."
+ example: "allura"
+ pattern: ([a-zA-Z]+)
+
+ type: {
+ project: {
+ schema: !include schemas/project.json,
+ example: !include examples/project.json
+ }
+ }
+
+ /has_access:
+ type: permission
+
+ /{link}:
+ description: |
+ Represents the External Link tool.
+ type: {
+ tool: {
+ example: !include examples/link.json,
+ schema: !include schemas/link.json
+ }
+ }
+
+ get:
+ description: |
+ Returns the existing url.
+
+ post:
+ description: |
+ Updates the url. *authentication required*.
+ body:
+ application/x-www-form-urlencoded:
+ formParameters:
+ url:
+ description: |
+ The url you would like to update to.
+ type: string
+ example: http://google.com
+
+ /{blog}:
+ type: {
+ tool: {
+ example: !include examples/blog.json,
+ schema: !include schemas/blog.json
+ }
+ }
+ description: |
+ Represents the **Blog tool**
+
+ displayName: Blog
+ uriParameters:
+ blog:
+ displayName: Blog Name
+ type: string
+ example: blog
+
+ get:
+ description: |
+ Returns a list of posts, including title and API url.
+ responses:
+ 200:
+ body:
+ application/json:
+ schema: !include schemas/blog.json
+ example: !include examples/blog.json
+ post:
+ description: |
+ Creates a new blog post.
+ body:
+ application/x-www-form-urlencoded:
+ formParameters:
+ title:
+ description: |
+ The title of the post.
+ type: string
+ example: New API docs released!
+ text:
+ description: |
+ The text of the post.
+ type: string
+ example: Lots of text here describing apis!\nThat is all.
+ labels:
+ description: |
+ Labels of the post -- comma seperated strings
+ type: string
+ example: api,development
+ state:
+ description: |
+ Draft or published.
+ enum: [draft, published]
+ type: string
+ example: published
+
+ /{year}/{month}/{title}:
+ type: {
+ tool: {
+ example: !include examples/blogPost.json,
+ schema: !include schemas/blogPost.json
+ }
+ }
+ displayName: Blog Post
+ uriParameters:
+ year:
+ displayName: Year
+ type: number
+ example: 2015
+ month:
+ displayName: Month
+ type: number
+ example: 04
+ title:
+ displayName: Title
+ type: string
+ example: project-insights
+
+ post:
+ description: |
+ Updates an existing blog post.
+ body:
+ application/x-www-form-urlencoded:
+ formParameters:
+ title:
+ description: |
+ The title of the post.
+ type: string
+ text:
+ description: |
+ The text of the post.
+ type: string
+ labels:
+ description: |
+ Labels of the post -- comma seperated strings
+ type: string
+ state:
+ description: |
+ Draft or published.
+ enum: [draft, published]
+ type: string
+
+ /has_access:
+ type: permission
+
+ /{forum}:
+ description: |
+ A list of forums
+ type: {
+ tool: {
+ example: !include examples/page.json,
+ schema: !include schemas/page.json
+ }
+ }
+
+ displayName: forum
+ uriParameters:
+ forum:
+ displayName: Forum Name
+ type: string
+ example: general
+ description: |
+ Returns a list of forums, including name, description, num_posts, API URL, and last_post details
+
+ To view more than 100 threads, or 100 posts in a thread, use the pagination support of the API by adding ?page=1 etc. to the URL.
+
+ /forum:
+ description: |
+ returns a limited list of topics in the forum, with fields for subject, num_replies, API URL, and last_post
+ /{slug}:
+ description: |
+ returns a limited list of posts in the thread, with fields for author, text, and timestamp. Nested posts (i.e. a reply to a post) can be determined by the slug structure. For example, "slug": "0a0b/9f00" is a reply to the post with "slug": "0a0b"
+
+ /has_access:
+ type: permission
+
+ /{discussion}:
+ description: |
+ Represents the **Discussion Tool**.
+ type: {
+ tool: {
+ schema: !include schemas/discussion.json,
+ example: !include examples/discussion.json
+
+ }
+ }
+
+ displayName: Discussion
+ uriParameters:
+ discussion:
+ displayName: Discussion Name
+ type: string
+ example: "discussion"
+
+ /{forum}:
+ type: {
+ tool: {
+ example: !include examples/page.json,
+ schema: !include schemas/page.json
+ }
+ }
+
+ displayName: forum
+ uriParameters:
+ forum:
+ displayName: Forum Name
+ type: string
+ example: general
+
+ /has_access:
+ type: permission
+
+ /{wiki}:
+ description: |
+ Represents the **Wiki Tool**.
+ type: {
+ tool: {
+ example: !include examples/wiki.json,
+ schema: !include schemas/wiki.json
+ }
+ }
+
+ displayName: Wiki
+ uriParameters:
+ wiki:
+ displayName: Wiki Name
+ type: string
+ example: wiki
+
+
+ /{title}:
+ type: {
+ tool: {
+ example: !include examples/page.json,
+ schema: !include schemas/page.json
+ }
+ }
+
+ displayName: Title
+ uriParameters:
+ title:
+ displayName: Wiki Title
+ type: string
+ example: Extensions
+ get:
+ description: |
+ returns a JSON representation of a page
+ post:
+ description: |
+ Creates or updates the titled page.
+ body:
+ application/x-www-form-urlencoded:
+ formParameters:
+ text:
+ description: |
+ Page text.
+ type: string
+ labels:
+ description: |
+ Comma-separated list of page labels.
+ type: string
+
+
+ /has_access:
+ type: permission
+
+ /{tracker}:
+ description: |
+ Represents the **Ticket Tracker Tool**.
+ type: {
+ tool: {
+ example: !include examples/tickets.json,
+ schema: !include schemas/ticket.json
+ }
+ }
+ is: [pageable]
+
+ displayName: Tracker Url
+ uriParameters:
+ tracker:
+ displayName: Tracker Name
+ type: string
+ example: tickets
+
+ get:
+ is: [pageable]
+ description: |
+ Get a list of tickets
+
+ /_discuss:
+ description: |
+ returns summary information about the tool discussion, including the threads in the discussion (there is one thread per ticket)
+ get:
+
+ /thread/{threadId}:
+ uriParameters:
+ threadId:
+ displayName: Thread ID
+ type: string
+ example: f78b98a0
+
+ get:
+ description: |
+ returns summary information about a thread, including the posts in a thread
+ /{slug}:
+ uriParameters:
+ slug:
+ displayName: Slug
+ type: string
+ example: 9133
+ get:
+ description: |
+ returns detailed information about a post
+ /reply:
+ description: |
+ create a threaded reply to the given post
+ post:
+ body:
+ application/x-www-form-urlencoded:
+ formParameters:
+ text:
+ description: the text of the reply
+ example: |
+ I *agree* with you.
+ required: true
+ type: string
+ /new:
+ description: |
+ create a post in the given thread
+ post:
+ body:
+ application/x-www-form-urlencoded:
+ formParameters:
+ text:
+ description: The text of the new post
+ example: |
+ This is a new post!
+ required: true
+ type: string
+
+ /search:
+ type: {
+ searchableCollection: {
+ queryParamName: q,
+ schema: !include schemas/searchedTickets.json,
+ example: !include examples/searchedTickets.json
+ }
+ }
+ is: [ pageable]
+
+ /new:
+ description: |
+ Creates a new ticket.
+ post:
+ body:
+ application/x-www-form-urlencoded:
+ formParameters:
+ access_token:
+ description: "The access token provided by the authentication application"
+ required: true
+ type: string
+ ticket_form.summary:
+ description: Ticket title
+ type: string
+ required: false
+ ticket_form.description:
+ description: ticket description
+ type: string
+ required: false
+ ticket_form.assigned_to::
+ type: string
+ required: false
+ description: username of ticket assignee
+ ticket_form.labels:
+ type: string
+ required: false
+ description: comma-separated list of ticket labels
+ ticket_form.attachment:
+ type: file
+ description: (optional) attachment
+ required: false
+ ticket_form.custom field name:
+ description: custom field value
+ type: string
+ required: false
+
+ /{ticketNumber}:
+ type: {
+ tool: {
+ example: !include examples/ticket.json,
+ schema: !include schemas/ticket.json
+
+ }
+ }
+ displayName: Ticket Number
+ uriParameters:
+ ticketNumber:
+ example: 1
+ description: |
+ Get a details of a ticket.
+
+ /save:
+ description: |
+ updates an existing ticket
+ parameters are the same as /rest/p/project_name/mount_point/new
+
+ post:
+ body:
+ application/x-www-form-urlencoded:
+ formParameters:
+ access_token:
+ description: "The access token provided by the authentication application"
+ required: true
+ type: string
+ ticket_form.summary:
+ description: Ticket title
+ type: string
+ required: false
+ ticket_form.description:
+ description: ticket description
+ type: string
+ required: false
+ ticket_form.assigned_to::
+ type: string
+ required: false
+ description: username of ticket assignee
+ ticket_form.labels:
+ type: string
+ required: false
+ description: comma-separated list of ticket labels
+ ticket_form.attachment:
+ type: file
+ description: (optional) attachment
+ required: false
+ ticket_form.custom field name:
+ description: custom field value
+ type: string
+ required: false
+
+ /has_access:
+ type: permission
+
+
+ /admin:
+ description: |
+ Endpoints for **project exporting** and managing **webhooks**
+
+ /export:
+ description: |
+ Generates a full bulk export of your tool(s) in the same format as the API for individual access. Authentication required. Here is an [example shell](https://forge-allura.apache.org/p/allura/git/ci/master/tree/scripts/project_export) script using these APIs, suitable to run as a cron job.
+ post:
+ description: |
+ Submits an export job
+
+ **400 Bad Request:** tools parameter not provided or is invalid
+ **503 Service Unavailable:** an export job is already running
+ **200 OK:** job submitted. Body will be: *{"status": "in progress", "filename": FILENAME}*
+ /export_status:
+ description: |
+ Check status of a bulk export job
+ get:
+ description: |
+ Returns status: busy or ready
+
+ /{project}/webhooks:
+ type: {
+ typedCollection: {
+ example: !include examples/webhooks.json,
+ schema: !include schemas/webhook.json
+ }
+ }
+ is: [secured]
+ description: |
+ This is to manage webhooks programatically. See the [Webhook docs](https://forge-allura.apache.org/p/allura/wiki/Webhooks/) for more information.
+
+ The webhook payloads and signature verification method are documented at https://forge-allura.apache.org/p/allura/wiki/Webhooks/
+
+
+ /{type}:
+ uriParameters:
+ type:
+ example: repo-push
+ enum: [repo-push]
+ description: |
+ Allura supports one type of webhook for the moment - repo-push, triggered when a repository receives new commits. It is supported for Git, Mercurial and SVN repositories.
+ post:
+ description: |
+ Create a new webhook.
+ body:
+ application/x-www-form-urlencoded:
+ formParameters:
+ url:
+ description: |
+ The url to call when the the webhook is triggered.
+ required: true
+ type: string
+ /{id}:
+ uriParameters:
+ id:
+ type: string
+ description: |
+ Unique identifier for a webhook.
+
+ get:
+ description: |
+ View a webhook
+ post:
+ description: |
+ Update an existing webhook
+ body:
+ application/x-www-form-urlencoded:
+ formParameters:
+ url:
+ description: |
+ The url to call when the the webhook is triggered.
+ required: true
+ type: string
+ secret:
+ description: |
+ Optionally supply your own secret.
+
+ Note: DO NOT ever expose your secret!
+ required: false
+ type: string
+ delete:
+ description: |
+ Delete an existing webhook
+ /install_tool:
+ description: |
+ Adds a new tool to the project. *Authentication Required*.
+
+ returns dict with two fields:
+ success: False if error is occurred, otherwise True
+ info: success or error message
+ post:
+ body:
+ application/x-www-form-urlencoded:
+ formParameters:
+ tool:
+ description: Tool name that you want to install.
+ example: tickets
+ enum: [tickets, link, git, svn, mercurial, blog, discussion, subproject, wiki]
+ required: true
+ type: string
+ mount_point:
+ description: |
+ The section of the url relitive to your project. For example: /p/your_project/{mount_point}
+ example: git
+ type: string
+ required: true
+ mount_label:
+ description: |
+ How your tool will be displayed in your project (like a "nice name" for the tool).
+ example: Git
+ type: string
+ required: true
+ order:
+ type: string
+ enum: [first, last, alpha_tool]
+ required: false
+ description: |
+ "first", "last", or "alpha_tool" for position with respect to existing tools (or existing tools of the same type for "alpha_tool")
+
+ /{username}:
+ description: |
+ Represents a user (returns a project-like response).
+
+ Most often you'll use the /profile suffix to return user data.
+ type: {
+ tool:{
+ example: !include examples/user.json,
+ schema: !include schemas/user.json
+ }
+ }
+ /profile:
+ description: |
+ A user profile
+ type: {
+ tool:{
+ example: !include examples/userProfile.json,
+ schema: !include schemas/userProfile.json
+ }
+ }
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/allura/blob/247ee2a9/Allura/docs/api-rest/examples/blog.json
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/examples/blog.json b/Allura/docs/api-rest/examples/blog.json
new file mode 100755
index 0000000..5eb25dd
--- /dev/null
+++ b/Allura/docs/api-rest/examples/blog.json
@@ -0,0 +1,19 @@
+{
+ "count": 3,
+ "limit": 10,
+ "page": 0,
+ "posts": [
+ {
+ "title": "Project Insights",
+ "url": "http://localhost:8080/rest/p/finna/blog/2015/07/project-insights/"
+ },
+ {
+ "title": "New blog",
+ "url": "http://localhost:8080/rest/p/finna/blog/2015/07/new-blog/"
+ },
+ {
+ "title": "Old News",
+ "url": "http://localhost:8080/rest/p/finna/blog/2015/07/old-news/"
+ }
+ ]
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/allura/blob/247ee2a9/Allura/docs/api-rest/examples/blogPost.json
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/examples/blogPost.json b/Allura/docs/api-rest/examples/blogPost.json
new file mode 100755
index 0000000..d3a41da
--- /dev/null
+++ b/Allura/docs/api-rest/examples/blogPost.json
@@ -0,0 +1,20 @@
+{
+ "_id": "55ad27204d21224d82656b45",
+ "author": "root",
+ "discussion_thread": {
+ "_id": "afb74fce",
+ "discussion_id": "55ad26e94d21224d82656b31",
+ "posts": [],
+ "subject": "New blog discussion"
+ },
+ "discussion_thread_url": "http://localhost:8080/rest/p/finna/blog/_discuss/thread/afb74fce/",
+ "labels": [
+ "general"
+ ],
+ "mod_date": "2015-07-20 16:51:44.589000",
+ "related_artifacts": [],
+ "state": "published",
+ "text": "Just made a new blog here",
+ "title": "New blog",
+ "url": "http://localhost:8080/rest/p/finna/blog/2015/07/new-blog/"
+}
http://git-wip-us.apache.org/repos/asf/allura/blob/247ee2a9/Allura/docs/api-rest/examples/discussion.json
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/examples/discussion.json b/Allura/docs/api-rest/examples/discussion.json
new file mode 100755
index 0000000..128269b
--- /dev/null
+++ b/Allura/docs/api-rest/examples/discussion.json
@@ -0,0 +1,58 @@
+{
+ "count": 3,
+ "forums": [
+ {
+ "num_topics": 1,
+ "name": "Dev Only",
+ "url": "http://localhost:8080/rest/p/finna/discussion/devs/",
+ "shortname": "devs",
+ "_id": "55ad23c34d21224d82656add",
+ "last_post": {
+ "flagged_by": [],
+ "status": "ok",
+ "last_edited": "2015-07-20 16:39:53.290000",
+ "author": "root",
+ "timestamp": "2015-07-20 16:39:46.083000",
+ "thread_id": "2adb0c35",
+ "text": "checking into it.",
+ "author_id": "55687b5f4d2122410c76eb92",
+ "_id": "83aa16ca9db9f811d68ba47285c3d4c65b4f60d7.discussion@finna.p.localhost",
+ "slug": "c5af",
+ "subject": "Potential issue"
+ },
+ "description": "not open to public!"
+ },
+ {
+ "num_topics": 2,
+ "name": "General Discussion",
+ "url": "http://localhost:8080/rest/p/finna/discussion/general/",
+ "shortname": "general",
+ "_id": "5568f6684d212236d1eaed07",
+ "last_post": {
+ "flagged_by": [],
+ "status": "ok",
+ "last_edited": null,
+ "author": "root",
+ "timestamp": "2015-07-20 16:36:18.019000",
+ "thread_id": "a7528751",
+ "text": "How to fix anything!",
+ "author_id": "55687b5f4d2122410c76eb92",
+ "_id": "b248780c7fa265106dc91e6004107dd4a601afe8.discussion@finna.p.localhost",
+ "slug": "c920",
+ "subject": "Tech Support"
+ },
+ "description": "Forum about anything you want to talk about."
+ },
+ {
+ "num_topics": 0,
+ "name": "Off Topic",
+ "url": "http://localhost:8080/rest/p/finna/discussion/off-topic/",
+ "shortname": "off-topic",
+ "_id": "55ad23a44d21224d82656ada",
+ "last_post": null,
+ "description": "anything else...."
+ }
+ ],
+ "limit": 25,
+ "page": 0
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/allura/blob/247ee2a9/Allura/docs/api-rest/examples/link.json
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/examples/link.json b/Allura/docs/api-rest/examples/link.json
new file mode 100755
index 0000000..f0f351c
--- /dev/null
+++ b/Allura/docs/api-rest/examples/link.json
@@ -0,0 +1 @@
+{"url": "https://google.com"}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/allura/blob/247ee2a9/Allura/docs/api-rest/examples/page.json
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/examples/page.json b/Allura/docs/api-rest/examples/page.json
new file mode 100755
index 0000000..e40e9d8
--- /dev/null
+++ b/Allura/docs/api-rest/examples/page.json
@@ -0,0 +1,18 @@
+{
+ "related_artifacts": [
+ "/p/allura/wiki/Home/"
+ ],
+ "attachments": [],
+ "title": "Extensions",
+ "text": "The following extensions for Allura are available as separate packages:\r\n\r\nType | Title | License | Notes\r\n----- | ------------- | ----- | Notes\r\nTool | [ForgeHg](http://pypi.python.org/pypi/ForgeHg) | GPLv2 | Maintained by the Allura developers.\u003Cbr> Separate package due to Hg GPL license.\r\nTool | [Pastebin](https://sourceforge.net/p/forgepastebin/) | Apache 2 | Maintained by the Allura developers.\u003Cbr> Example of writing a simple tool.\r\nTool | [Donay Incentify](http://docs.donay.com/display/Dosense/Installing+Incentify+in+Allura) | Apache 2\r\nTool | [Bitergia metrics](https://github.com/Bitergia/AlluraBitergiaMetrics) | Apache 2\r\nTool | [Perforce SCM](https://sourceforge.net/p/p4allura/allura-fork/ci/master/tree/ForgeP4/)\r\nTool | [Django Allura](https://github.com/rick446/DjangoAllura)\r\nImporter | [Google Code Wiki Importer](http://pypi.python.org/pypi/googlecodewikiimporter/) | GPLv3 | Maintained by the Allura developers.\u003C
br> Separate package due to `html2text` GPL.\r\nImporter | [Trac Wiki Importer](http://pypi.python.org/pypi/tracwikiimporter/) | GPLv3 | Maintained by the Allura developers.\u003Cbr> Separate package due to `html2text` GPL.\r\nImporter | [Mediawiki data importer](http://pypi.python.org/pypi/mediawikiimporter/) | GPLv3 | Maintained by the Allura developers.\u003Cbr> Separate package due to `html2text` GPL.\r\nExternal Integration | [TeamCity](https://github.com/Vampire/teamcity-sourceforge) | Apache 2 | Targeted at SourceForge.net but APIs are the same, so base domain could be changed to any Allura host.\r\n",
+ "labels": [],
+ "discussion_thread": {
+ "_id": "9d181a1d",
+ "posts": [],
+ "discussion_id": "523331da6d19cd54e56931db",
+ "subject": ""
+ },
+ "mod_date": "2015-07-07 17:30:01.607000",
+ "_id": "523332d96d19cd54e569322b",
+ "discussion_thread_url": "https://forge-allura.apache.org/rest/p/allura/wiki/_discuss/thread/9d181a1d/"
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/allura/blob/247ee2a9/Allura/docs/api-rest/examples/project.json
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/examples/project.json b/Allura/docs/api-rest/examples/project.json
new file mode 100755
index 0000000..6744d30
--- /dev/null
+++ b/Allura/docs/api-rest/examples/project.json
@@ -0,0 +1,144 @@
+{
+ "status": "active",
+ "preferred_support_tool": "",
+ "preferred_support_url": "",
+ "labels": [],
+ "private": false,
+ "creation_date": "2013-02-12",
+ "socialnetworks": [
+ {
+ "accounturl": "",
+ "socialnetwork": "Twitter"
+ },
+ {
+ "accounturl": null,
+ "socialnetwork": "Facebook"
+ }
+ ],
+ "tools": [
+ {
+ "mount_point": "activity",
+ "name": "activity",
+ "label": "Activity"
+ },
+ {
+ "mount_point": "git",
+ "name": "git",
+ "label": "Git"
+ },
+ {
+ "mount_point": "allura-dev",
+ "name": "link",
+ "label": "Mailing List (dev)"
+ },
+ {
+ "mount_point": "wiki",
+ "name": "wiki",
+ "label": "Wiki"
+ },
+ {
+ "mount_point": "docs",
+ "name": "link",
+ "label": "Docs"
+ },
+ {
+ "mount_point": "license",
+ "name": "link",
+ "label": "License"
+ },
+ {
+ "mount_point": "apache",
+ "name": "link",
+ "label": "Apache.org"
+ },
+ {
+ "mount_point": "security",
+ "name": "link",
+ "label": "Security"
+ },
+ {
+ "mount_point": "thanks",
+ "name": "link",
+ "label": "Thanks"
+ },
+ {
+ "mount_point": "sponsorship",
+ "name": "link",
+ "label": "Sponsorship"
+ },
+ {
+ "mount_point": "tickets",
+ "name": "tickets",
+ "label": "Tickets"
+ },
+ {
+ "mount_point": "AlluraSite",
+ "name": "git",
+ "label": "Allura Site Repo"
+ },
+ {
+ "mount_point": "pastebin",
+ "name": "pastebin",
+ "label": "Pastebin"
+ }
+ ],
+ "categories": {
+ "developmentstatus": [],
+ "environment": [],
+ "language": [],
+ "license": [],
+ "database": [],
+ "topic": [],
+ "audience": [],
+ "translation": [],
+ "os": []
+ },
+ "_id": "511aa1d46d19cd14f9060c67",
+ "name": "Apache Allura™",
+ "url": "https://forge-allura.apache.org/p/allura/",
+ "icon_url": "https://forge-allura.apache.org/p/allura/icon",
+ "video_url": "www.youtube.com/embed/va9WPbKAI9U?rel=0",
+ "screenshots": [],
+ "summary": "Forge software for hosting software projects",
+ "short_description": "Apache Allura is an open source implementation of a software \"forge\", a web site that manages source code repositories, bug reports, discussions, wiki pages, blogs and more for any number of individual projects.",
+ "moved_to_url": "",
+ "shortname": "allura",
+ "developers": [
+ {
+ "url": "https://forge-allura.apache.org/u/masterbunnyfu/",
+ "username": "masterbunnyfu",
+ "name": "Cory Johns"
+ },
+ {
+ "url": "https://forge-allura.apache.org/u/jetmind/",
+ "username": "jetmind",
+ "name": "Igor Bondarenko"
+ },
+ {
+ "url": "https://forge-allura.apache.org/u/wwitzel3/",
+ "username": "wwitzel3",
+ "name": "Wayne Witzel III"
+ },
+ {
+ "url": "https://forge-allura.apache.org/u/alexluberg/",
+ "username": "alexluberg",
+ "name": "Alexander Luberg"
+ },
+ {
+ "url": "https://forge-allura.apache.org/u/vansteenburgh/",
+ "username": "vansteenburgh",
+ "name": "Tim Van Steenburgh"
+ },
+ {
+ "url": "https://forge-allura.apache.org/u/heiths/",
+ "username": "heiths",
+ "name": "Heith Seewald"
+ },
+ {
+ "url": "https://forge-allura.apache.org/u/brondsem/",
+ "username": "brondsem",
+ "name": "Dave Brondsema"
+ }
+ ],
+ "external_homepage": "http://allura.apache.org/"
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/allura/blob/247ee2a9/Allura/docs/api-rest/examples/searchedTickets.json
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/examples/searchedTickets.json b/Allura/docs/api-rest/examples/searchedTickets.json
new file mode 100755
index 0000000..a5502c5
--- /dev/null
+++ b/Allura/docs/api-rest/examples/searchedTickets.json
@@ -0,0 +1,126 @@
+{
+ "sort": null,
+ "count": 2,
+ "filter_choices": {
+ "status": [
+ [
+ "closed",
+ 4
+ ],
+ [
+ "in-progress",
+ 5
+ ],
+ [
+ "open",
+ 2
+ ],
+ [
+ "review",
+ 3
+ ]
+ ],
+ "reported_by": [
+ [
+ "brondsem",
+ 5
+ ],
+ [
+ "ctsai",
+ 1
+ ],
+ [
+ "heiths",
+ 7
+ ],
+ [
+ "jetmind",
+ 1
+ ]
+ ],
+ "_milestone": [
+ [
+ "unreleased",
+ 14
+ ]
+ ],
+ "assigned_to": [
+ [
+ "brondsem",
+ 1
+ ],
+ [
+ "heiths",
+ 4
+ ],
+ [
+ "jetmind",
+ 7
+ ]
+ ]
+ },
+ "filter": {},
+ "q": "labels:\"sf-current\"",
+ "solr_error": null,
+ "limit": 100,
+ "tickets": [
+ {
+ "status": "review",
+ "reported_by_id": "548b2d136d19cd59705380a3",
+ "related_artifacts": [],
+ "attachments": [],
+ "reported_by": "heiths",
+ "assigned_to": "heiths",
+ "labels": [
+ "sf-current",
+ "sf-2"
+ ],
+ "discussion_disabled": false,
+ "assigned_to_id": "548b2d136d19cd59705380a3",
+ "private": false,
+ "summary": "Fix pagination issue in the commit browser",
+ "mod_date": "2015-07-17 14:53:43.480000",
+ "votes_down": 0,
+ "votes_up": 0,
+ "_id": "55a6c6c86d19cd7d2dc5d89d",
+ "discussion_thread_url": "https://forge-allura.apache.org/rest/p/allura/tickets/_discuss/thread/3e30246e/",
+ "ticket_num": 7932,
+ "custom_fields": {
+ "_component": "General",
+ "_milestone": "unreleased",
+ "_reviewer": ""
+ },
+ "created_date": "2015-07-15 20:47:04.434000"
+ },
+ {
+ "status": "closed",
+ "reported_by_id": "511aa8756d19cd161e8c1b04",
+ "related_artifacts": [],
+ "attachments": [],
+ "reported_by": "brondsem",
+ "assigned_to": "brondsem",
+ "labels": [
+ "sf-current",
+ "sf-1",
+ "ux"
+ ],
+ "discussion_disabled": false,
+ "assigned_to_id": "511aa8756d19cd161e8c1b04",
+ "private": false,
+ "summary": "Site admin search tables can overflow the page width",
+ "mod_date": "2015-07-14 08:40:35.931000",
+ "votes_down": 0,
+ "votes_up": 0,
+ "_id": "55a3effc6d19cd320d814749",
+ "discussion_thread_url": "https://forge-allura.apache.org/rest/p/allura/tickets/_discuss/thread/1f1023b2/",
+ "ticket_num": 7928,
+ "custom_fields": {
+ "_component": "General",
+ "_milestone": "unreleased",
+ "_reviewer": "jetmind"
+ },
+ "created_date": "2015-07-13 17:06:04.135000"
+ }
+ ],
+ "page": 0
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/allura/blob/247ee2a9/Allura/docs/api-rest/examples/ticket.json
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/examples/ticket.json b/Allura/docs/api-rest/examples/ticket.json
new file mode 100755
index 0000000..f4ba990
--- /dev/null
+++ b/Allura/docs/api-rest/examples/ticket.json
@@ -0,0 +1,65 @@
+{
+ "ticket": {
+ "status": "review",
+ "reported_by_id": "548b2d136d19cd59705380a3",
+ "related_artifacts": [],
+ "attachments": [],
+ "reported_by": "heiths",
+ "assigned_to": "heiths",
+ "labels": [
+ "sf-2",
+ "sf-current"
+ ],
+ "discussion_disabled": false,
+ "assigned_to_id": "548b2d136d19cd59705380a3",
+ "private": false,
+ "summary": " Speed up diff processing with binary files",
+ "description": "In a git repo with a large amount of binary files, our diff processing can be very inefficient. We should test if a file is binary and exclude it from the diff processing section.",
+ "discussion_thread": {
+ "_id": "8fe1847f",
+ "posts": [
+ {
+ "text": "- **labels**: --> sf-2, sf-current\n",
+ "attachments": [],
+ "author": "brondsem",
+ "timestamp": "2015-07-13 15:53:20.175000",
+ "last_edited": null,
+ "slug": "498b",
+ "subject": "#7925 Speed up diff processing with binary files"
+ },
+ {
+ "text": "- **status**: in-progress --> review\n",
+ "attachments": [],
+ "author": "heiths",
+ "timestamp": "2015-07-16 19:10:50.153000",
+ "last_edited": null,
+ "slug": "bd3e",
+ "subject": "#7925 Speed up diff processing with binary files"
+ },
+ {
+ "text": "QA: **hs/7925**\r\n\r\nBinary files should no longer make XHR requests for diff processing.",
+ "attachments": [],
+ "author": "heiths",
+ "timestamp": "2015-07-16 19:10:50.511000",
+ "last_edited": null,
+ "slug": "b8a7",
+ "subject": "#7925 Speed up diff processing with binary files"
+ }
+ ],
+ "discussion_id": "545186e86d19cd63b88d1604",
+ "subject": ""
+ },
+ "mod_date": "2015-07-16 19:10:50.625000",
+ "votes_down": 0,
+ "votes_up": 0,
+ "_id": "55a3d3736d19cd2cf292db10",
+ "discussion_thread_url": "https://forge-allura.apache.org/rest/p/allura/tickets/_discuss/thread/8fe1847f/",
+ "ticket_num": 7925,
+ "custom_fields": {
+ "_component": "General",
+ "_milestone": "unreleased",
+ "_reviewer": ""
+ },
+ "created_date": "2015-07-13 15:04:19.926000"
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/allura/blob/247ee2a9/Allura/docs/api-rest/examples/tickets.json
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/examples/tickets.json b/Allura/docs/api-rest/examples/tickets.json
new file mode 100755
index 0000000..fc0acc9
--- /dev/null
+++ b/Allura/docs/api-rest/examples/tickets.json
@@ -0,0 +1,150 @@
+{
+ "tickets": [
+ {
+ "summary": "Diff view on the Commit Browser should have a file size limit",
+ "ticket_num": 7933
+ },
+ {
+ "summary": "Fix pagination issue in the commit browser",
+ "ticket_num": 7932
+ },
+ {
+ "summary": "Tool install dialog needs to escape html/js",
+ "ticket_num": 7931
+ },
+ {
+ "summary": "Bug: viewing a thread updates project mod_date",
+ "ticket_num": 7930
+ },
+ {
+ "summary": "Enable voting on tickets by default",
+ "ticket_num": 7929
+ }
+ ],
+ "count": 3662,
+ "milestones": [
+ {
+ "due_date": "",
+ "complete": false,
+ "closed": 2316,
+ "default": false,
+ "description": "",
+ "total": 2316,
+ "name": "asf_release_1.0.0"
+ },
+ {
+ "due_date": "",
+ "complete": false,
+ "closed": 0,
+ "default": false,
+ "description": "",
+ "total": 0,
+ "name": "asf_release_1.0.0-RC1"
+ },
+ {
+ "due_date": "",
+ "complete": false,
+ "closed": 66,
+ "default": false,
+ "description": "",
+ "total": 66,
+ "name": "asf_release_1.0.1"
+ },
+ {
+ "due_date": "",
+ "complete": false,
+ "closed": 145,
+ "default": false,
+ "description": "",
+ "total": 145,
+ "name": "asf_release_1.1.0"
+ },
+ {
+ "due_date": "",
+ "complete": false,
+ "closed": 337,
+ "default": "on",
+ "description": "",
+ "total": 891,
+ "name": "unreleased"
+ },
+ {
+ "due_date": "",
+ "complete": false,
+ "closed": 182,
+ "default": false,
+ "description": "",
+ "total": 182,
+ "name": "asf_release_1.2.0"
+ },
+ {
+ "due_date": "",
+ "complete": false,
+ "closed": 13,
+ "default": false,
+ "description": "",
+ "total": 13,
+ "name": "asf_release_1.2.1"
+ },
+ {
+ "due_date": "",
+ "complete": false,
+ "closed": 49,
+ "default": false,
+ "description": "",
+ "total": 49,
+ "name": "asf_release_1.3.0"
+ }
+ ],
+ "tracker_config": {
+ "_id": "545186e86d19cd63b88d1603",
+ "options": {
+ "ordinal": 3,
+ "TicketHelpNew": "",
+ "mount_point": "tickets",
+ "TicketMonitoringType": "AllPublicTicketChanges",
+ "EnableVoting": true,
+ "TicketHelpSearch": "",
+ "TicketMonitoringEmail": "dev@allura.apache.org",
+ "import_id": {
+ "source": "Allura",
+ "app_config_id": "4c3493551be1ce11d8000032"
+ },
+ "mount_label": "Tickets"
+ }
+ },
+ "limit": 5,
+ "saved_bins": [
+ {
+ "sort": "",
+ "_id": "54526f3f6d19cd509a769848",
+ "terms": "labels:bitesize AND (status:open OR status:review OR status:in-progress)",
+ "summary": "Bitesize Tickets"
+ },
+ {
+ "sort": "",
+ "_id": "54526fd16d19cd5093545c7b",
+ "terms": "(assigned_to_s:$USER AND status:(blocked in-progress open)) OR (_reviewer_s:$USER AND status:review)",
+ "summary": "My Assigned Tickets"
+ },
+ {
+ "sort": "",
+ "_id": "545270036d19cd509a76984c",
+ "terms": "reported_by:$USER AND NOT status:closed",
+ "summary": "My Submitted Tickets"
+ },
+ {
+ "sort": "",
+ "_id": "54526ef86d19cd42f87fbb80",
+ "terms": "status:review",
+ "summary": "Needs Review"
+ },
+ {
+ "sort": "",
+ "_id": "5452703a6d19cd509a769850",
+ "terms": "labels:\"sf-current\"",
+ "summary": "SourceForge current sprint"
+ }
+ ],
+ "page": 0
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/allura/blob/247ee2a9/Allura/docs/api-rest/examples/user.json
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/examples/user.json b/Allura/docs/api-rest/examples/user.json
new file mode 100755
index 0000000..1c9632f
--- /dev/null
+++ b/Allura/docs/api-rest/examples/user.json
@@ -0,0 +1,75 @@
+{
+ "status": "active",
+ "preferred_support_tool": "",
+ "profile_api_url": "https://forge-allura.apache.org/rest/u/heiths/profile/",
+ "preferred_support_url": "",
+ "labels": [],
+ "private": false,
+ "creation_date": "2014-12-12",
+ "socialnetworks": [
+ {
+ "accounturl": "",
+ "socialnetwork": "Twitter"
+ },
+ {
+ "accounturl": "",
+ "socialnetwork": "Facebook"
+ }
+ ],
+ "tools": [
+ {
+ "mount_point": "admin",
+ "name": "admin",
+ "label": "Admin"
+ },
+ {
+ "mount_point": "wiki",
+ "name": "wiki",
+ "label": "Wiki"
+ },
+ {
+ "mount_point": "profile",
+ "name": "profile",
+ "label": "Profile"
+ },
+ {
+ "mount_point": "search",
+ "name": "search",
+ "label": "Search"
+ },
+ {
+ "mount_point": "activity",
+ "name": "activity",
+ "label": "Activity"
+ }
+ ],
+ "categories": {
+ "developmentstatus": [],
+ "environment": [],
+ "language": [],
+ "license": [],
+ "database": [],
+ "topic": [],
+ "audience": [],
+ "translation": [],
+ "os": []
+ },
+ "_id": "548b2d136d19cd59705380a6",
+ "name": "u/heiths",
+ "url": "https://forge-allura.apache.org/u/heiths/",
+ "icon_url": null,
+ "video_url": "",
+ "screenshots": [],
+ "summary": "",
+ "short_description": null,
+ "moved_to_url": "",
+ "shortname": "u/heiths",
+ "developers": [
+ {
+ "url": "https://forge-allura.apache.org/u/heiths/",
+ "username": "heiths",
+ "name": "Heith Seewald"
+ }
+ ],
+ "external_homepage": ""
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/allura/blob/247ee2a9/Allura/docs/api-rest/examples/userProfile.json
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/examples/userProfile.json b/Allura/docs/api-rest/examples/userProfile.json
new file mode 100755
index 0000000..ef04a94
--- /dev/null
+++ b/Allura/docs/api-rest/examples/userProfile.json
@@ -0,0 +1,56 @@
+{
+ "username": "heiths",
+ "name": "Heith Seewald",
+ "localization": {
+ "city": "Grand Rapids Area",
+ "country": "United States"
+ },
+ "skills": [
+ {
+ "comment": "asdf",
+ "skill": {
+ "fullpath": "Programming Language",
+ "fullname": "Programming Language",
+ "shortname": "language",
+ "id": 160
+ },
+ "level": "high"
+ }
+ ],
+ "webpages": [],
+ "joined": "2014-12-12 17:59:47+00:00",
+ "socialnetworks": [
+ {
+ "accounturl": "www.linkedin.com/in/heiths/",
+ "socialnetwork": "Linkedin"
+ },
+ {
+ "accounturl": "heiths",
+ "socialnetwork": "Google+"
+ }
+ ],
+ "telnumbers": [],
+ "sex": "Male",
+ "availability": [
+ {
+ "start_time": {
+ "h": 3,
+ "m": 30
+ },
+ "week_day": "Thursday",
+ "end_time": {
+ "h": 4,
+ "m": 45
+ }
+ }
+ ],
+ "projects": [
+ {
+ "url": "/p/allura/",
+ "last_updated": "2015-07-28 16:40:57.701000",
+ "name": "Apache Allura™",
+ "summary": "Forge software for hosting software projects"
+ }
+ ],
+ "skypeaccount": null
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/allura/blob/247ee2a9/Allura/docs/api-rest/examples/webhook.json
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/examples/webhook.json b/Allura/docs/api-rest/examples/webhook.json
new file mode 100755
index 0000000..68f4d9c
--- /dev/null
+++ b/Allura/docs/api-rest/examples/webhook.json
@@ -0,0 +1,7 @@
+{
+ "hook_url": "http://hs.dev:9999/push-it/",
+ "mod_date": "2015-07-24 16:44:03.871000",
+ "url": "http://localhost:8080/rest/p/finna/admin/finna/webhooks/repo-push/55ae876e4d21222df298086e",
+ "_id": "55ae876e4d21222df298086e",
+ "type": "repo-push"
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/allura/blob/247ee2a9/Allura/docs/api-rest/examples/webhooks.json
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/examples/webhooks.json b/Allura/docs/api-rest/examples/webhooks.json
new file mode 100755
index 0000000..7b30059
--- /dev/null
+++ b/Allura/docs/api-rest/examples/webhooks.json
@@ -0,0 +1,24 @@
+{
+ "webhooks": [
+ {
+ "url": "http://localhost:8080/rest/p/finna/admin/finna/webhooks/repo-push/55ae874a4d21222df2980868",
+ "mod_date": "2015-07-21 17:54:18.066000",
+ "_id": "55ae874a4d21222df2980868",
+ "type": "repo-push",
+ "hook_url": "http://hs.dev:9999/webhooks/"
+ },
+ {
+ "url": "http://localhost:8080/rest/p/finna/admin/finna/webhooks/repo-push/55ae876e4d21222df298086e",
+ "mod_date": "2015-07-21 17:54:54.836000",
+ "_id": "55ae876e4d21222df298086e",
+ "type": "repo-push",
+ "hook_url": "http://hs.dev:9999/push-it/"
+ }
+ ],
+ "limits": {
+ "repo-push": {
+ "max": 3,
+ "used": 2
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/allura/blob/247ee2a9/Allura/docs/api-rest/examples/wiki.json
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/examples/wiki.json b/Allura/docs/api-rest/examples/wiki.json
new file mode 100755
index 0000000..f5c81c4
--- /dev/null
+++ b/Allura/docs/api-rest/examples/wiki.json
@@ -0,0 +1,28 @@
+{
+ "pages": [
+ "ASF Release Guidelines",
+ "Allura Deployments",
+ "Allura Wiki",
+ "Apache Allura (incubating) Wiki",
+ "Apache Allura™ (incubating) Wiki",
+ "Asking Questions",
+ "Contributing Code",
+ "Contributing to the Discussion",
+ "Extensions",
+ "FAQ",
+ "Feature Comparison",
+ "Features",
+ "Goals",
+ "Google Summer of Code",
+ "HTTP(S) Repositories",
+ "Home",
+ "Install and Run Allura - Vagrant",
+ "Notes",
+ "Our Development Model",
+ "PyCon 2014 Sprint",
+ "Themes in Allura",
+ "Videos",
+ "Webhooks",
+ "Working with Contributors"
+ ]
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/allura/blob/247ee2a9/Allura/docs/api-rest/resourceTypes.yaml
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/resourceTypes.yaml b/Allura/docs/api-rest/resourceTypes.yaml
new file mode 100755
index 0000000..10dcb53
--- /dev/null
+++ b/Allura/docs/api-rest/resourceTypes.yaml
@@ -0,0 +1,150 @@
+- base:
+ get?:
+ responses: &standardResponses
+ 200:
+ description: OK
+ put?:
+ responses: *standardResponses
+ patch?:
+ responses: *standardResponses
+ post?:
+ responses:
+ 201:
+ description: Created
+ delete?:
+ responses: *standardResponses
+- baseTool:
+ get?:
+ responses:
+ 200:
+ description: OK
+ post?:
+ responses:
+ 201:
+ description: Created
+ delete?:
+ responses: *standardResponses
+- collection:
+ type: base
+ get:
+ is: [ pageable ]
+ post:
+- member:
+ type: base
+ get?:
+ post?:
+ put?:
+ patch?:
+ delete?:
+- tool:
+ type: member
+ get:
+ responses:
+ 200:
+ body:
+ application/json:
+ schema: <<schema>>
+ example: <<example>>
+ post?:
+ put?:
+ body:
+ application/json:
+ schema: <<schema>>
+ responses:
+ 200:
+ body:
+ application/json:
+ schema: <<schema>>
+ patch?:
+ body:
+ application/json:
+ schema: <<schema>>
+ responses:
+ 200:
+ body:
+ application/json:
+ schema: <<schema>>
+ delete?:
+- permissionCheck:
+ description: |
+ This is API to run permission checks.
+ It is available on a neighborhood, project and tool level.
+
+ This is only available to users that have 'admin' permission for corresponding neighborhood/project/tool.
+ It requires user and perm parameters and will return JSON dict with result key, which contains boolean value,
+ indicating if given user has perm permission to the neighborhood/project/tool.
+ get:
+ queryParameters:
+ user:
+ type: string
+ example: heiths
+ required: true
+ description: The username to check
+ perm:
+ displayName: Permission
+ required: true
+ type: string
+ example: create
+ default: read
+ enum: ["read", "admin", "create", "update"]
+ description: |
+ Get permissions for <<resourcePathName>>.
+ responses:
+ 200:
+ body:
+ application/json:
+ schema: <<schemaItem>>
+- searchableCollection:
+ get:
+ queryParameters:
+ <<queryParamName>>:
+ description: Return <<resourcePathName>> that have their <<queryParamName>> matching the given value
+ responses:
+ 200:
+ body:
+ application/json:
+ schema: <<schema>>
+ example: <<example>>
+- typedCollection:
+ type: collection
+ get:
+ responses:
+ 200:
+ body:
+ application/json:
+ schema: <<schema>>
+ example: <<example>>
+ post:
+ body:
+ application/json:
+ responses:
+ 201:
+ body:
+ application/json:
+ schema: <<schema>>
+- permission:
+ securedBy: [null, oauth_1_0]
+ description: |
+ Checks if a given user has permissions.
+ get:
+ is: [permissionTestable]
+- project:
+ type: member
+ get:
+ responses:
+ 200:
+ body:
+ application/json:
+ schema: <<schema>>
+ example: <<example>>
+ put:
+ body:
+ application/json:
+ schema: <<schema>>
+ responses:
+ 200:
+ body:
+ application/json:
+ schema: <<schema>>
+
+
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/allura/blob/247ee2a9/Allura/docs/api-rest/schemas/blog.json
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/schemas/blog.json b/Allura/docs/api-rest/schemas/blog.json
new file mode 100755
index 0000000..bab80f6
--- /dev/null
+++ b/Allura/docs/api-rest/schemas/blog.json
@@ -0,0 +1,37 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema",
+ "type": "object",
+ "id": "#",
+ "properties": {
+ "count": {
+ "type": "number",
+ "id": "count"
+ },
+ "posts": {
+ "items": {
+ "type": "object",
+ "id": "0",
+ "properties": {
+ "url": {
+ "type": "string",
+ "id": "url"
+ },
+ "title": {
+ "type": "string",
+ "id": "title"
+ }
+ }
+ },
+ "type": "array",
+ "id": "posts"
+ },
+ "limit": {
+ "type": "number",
+ "id": "limit"
+ },
+ "page": {
+ "type": "number",
+ "id": "page"
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/allura/blob/247ee2a9/Allura/docs/api-rest/schemas/blogPost.json
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/schemas/blogPost.json b/Allura/docs/api-rest/schemas/blogPost.json
new file mode 100755
index 0000000..f504392
--- /dev/null
+++ b/Allura/docs/api-rest/schemas/blogPost.json
@@ -0,0 +1,75 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "id": "/",
+ "type": "object",
+ "properties": {
+ "related_artifacts": {
+ "id": "related_artifacts",
+ "type": "array",
+ "items": {}
+ },
+ "discussion_thread": {
+ "id": "discussion_thread",
+ "type": "object",
+ "properties": {
+ "_id": {
+ "id": "_id",
+ "type": "string"
+ },
+ "posts": {
+ "id": "posts",
+ "type": "array",
+ "items": {}
+ },
+ "discussion_id": {
+ "id": "discussion_id",
+ "type": "string"
+ },
+ "subject": {
+ "id": "subject",
+ "type": "string"
+ }
+ }
+ },
+ "author": {
+ "id": "author",
+ "type": "string"
+ },
+ "url": {
+ "id": "url",
+ "type": "string"
+ },
+ "text": {
+ "id": "text",
+ "type": "string"
+ },
+ "labels": {
+ "id": "labels",
+ "type": "array",
+ "items": {
+ "id": "0",
+ "type": "string"
+ }
+ },
+ "state": {
+ "id": "state",
+ "type": "string"
+ },
+ "mod_date": {
+ "id": "mod_date",
+ "type": "string"
+ },
+ "title": {
+ "id": "title",
+ "type": "string"
+ },
+ "_id": {
+ "id": "_id",
+ "type": "string"
+ },
+ "discussion_thread_url": {
+ "id": "discussion_thread_url",
+ "type": "string"
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/allura/blob/247ee2a9/Allura/docs/api-rest/schemas/discussion.json
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/schemas/discussion.json b/Allura/docs/api-rest/schemas/discussion.json
new file mode 100755
index 0000000..8f62a2f
--- /dev/null
+++ b/Allura/docs/api-rest/schemas/discussion.json
@@ -0,0 +1,103 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema",
+ "type": "object",
+ "id": "#",
+ "properties": {
+ "count": {
+ "type": "number",
+ "id": "count"
+ },
+ "forums": {
+ "items": {
+ "type": "object",
+ "id": "0",
+ "properties": {
+ "num_topics": {
+ "type": "number",
+ "id": "num_topics"
+ },
+ "url": {
+ "type": "string",
+ "id": "url"
+ },
+ "name": {
+ "type": "string",
+ "id": "name"
+ },
+ "shortname": {
+ "type": "string",
+ "id": "shortname"
+ },
+ "_id": {
+ "type": "string",
+ "id": "_id"
+ },
+ "last_post": {
+ "type": "object",
+ "id": "last_post",
+ "properties": {
+ "flagged_by": {
+ "type": "array",
+ "id": "flagged_by"
+ },
+ "status": {
+ "type": "string",
+ "id": "status"
+ },
+ "last_edited": {
+ "type": "null",
+ "id": "last_edited"
+ },
+ "author": {
+ "type": "string",
+ "id": "author"
+ },
+ "timestamp": {
+ "type": "string",
+ "id": "timestamp"
+ },
+ "thread_id": {
+ "type": "string",
+ "id": "thread_id"
+ },
+ "text": {
+ "type": "string",
+ "id": "text"
+ },
+ "author_id": {
+ "type": "string",
+ "id": "author_id"
+ },
+ "_id": {
+ "type": "string",
+ "id": "_id"
+ },
+ "slug": {
+ "type": "string",
+ "id": "slug"
+ },
+ "subject": {
+ "type": "string",
+ "id": "subject"
+ }
+ }
+ },
+ "description": {
+ "type": "string",
+ "id": "description"
+ }
+ }
+ },
+ "type": "array",
+ "id": "forums"
+ },
+ "limit": {
+ "type": "number",
+ "id": "limit"
+ },
+ "page": {
+ "type": "number",
+ "id": "page"
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/allura/blob/247ee2a9/Allura/docs/api-rest/schemas/hasPermission.json
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/schemas/hasPermission.json b/Allura/docs/api-rest/schemas/hasPermission.json
new file mode 100755
index 0000000..c42a5be
--- /dev/null
+++ b/Allura/docs/api-rest/schemas/hasPermission.json
@@ -0,0 +1,12 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "type": "object",
+ "name": "/",
+ "properties": {
+ "result": {
+ "type": "boolean",
+ "description": "True if a user has the permission a given permission.",
+ "name": "result"
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/allura/blob/247ee2a9/Allura/docs/api-rest/schemas/link.json
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/schemas/link.json b/Allura/docs/api-rest/schemas/link.json
new file mode 100755
index 0000000..3089559
--- /dev/null
+++ b/Allura/docs/api-rest/schemas/link.json
@@ -0,0 +1,12 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "type": "object",
+ "properties": {
+ "url": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "url"
+ ]
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/allura/blob/247ee2a9/Allura/docs/api-rest/schemas/page.json
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/schemas/page.json b/Allura/docs/api-rest/schemas/page.json
new file mode 100755
index 0000000..d961145
--- /dev/null
+++ b/Allura/docs/api-rest/schemas/page.json
@@ -0,0 +1,63 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema",
+ "type": "object",
+ "properties": {
+ "related_artifacts": {
+ "items": {
+ "type": ["null", "string"],
+ },
+ "type": ["null", "array"],
+ "id": "related_artifacts"
+ },
+ "attachments": {
+ "type": ["null", "array"],
+ "id": "attachments"
+ },
+ "title": {
+ "type": "string",
+ "id": "title"
+ },
+ "text": {
+ "type": ["null", "string"],
+ "id": "text"
+ },
+ "labels": {
+ "type": ["null", "array"],
+ "id": "labels"
+ },
+ "discussion_thread": {
+ "type": "object",
+ "id": "discussion_thread",
+ "properties": {
+ "_id": {
+ "type": "string",
+ "id": "_id"
+ },
+ "posts": {
+ "type": "array",
+ "id": "posts"
+ },
+ "discussion_id": {
+ "type": "string",
+ "id": "discussion_id"
+ },
+ "subject": {
+ "type": "string",
+ "id": "subject"
+ }
+ }
+ },
+ "mod_date": {
+ "type": "string",
+ "id": "mod_date"
+ },
+ "_id": {
+ "type": "string",
+ "id": "_id"
+ },
+ "discussion_thread_url": {
+ "type": "string",
+ "id": "discussion_thread_url"
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/allura/blob/247ee2a9/Allura/docs/api-rest/schemas/project.json
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/schemas/project.json b/Allura/docs/api-rest/schemas/project.json
new file mode 100755
index 0000000..8635bba
--- /dev/null
+++ b/Allura/docs/api-rest/schemas/project.json
@@ -0,0 +1,179 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema",
+ "type": "object",
+ "id": "#",
+ "properties": {
+ "status": {
+ "type": "string",
+ "id": "status"
+ },
+ "_id": {
+ "type": "string",
+ "id": "_id"
+ },
+ "name": {
+ "type": "string",
+ "id": "name"
+ },
+ "preferred_support_tool": {
+ "type": ["string", "null"],
+ "id": "preferred_support_tool"
+ },
+ "preferred_support_url": {
+ "type": ["string", "null"],
+ "id": "preferred_support_url"
+ },
+ "icon_url": {
+ "type": ["string", "null"],
+ "id": "icon_url"
+ },
+ "labels": {
+ "type": "array",
+ "id": "labels"
+ },
+ "private": {
+ "type": "boolean",
+ "id": "private"
+ },
+ "creation_date": {
+ "type": "string",
+ "id": "creation_date"
+ },
+ "url": {
+ "type": "string",
+ "id": "url"
+ },
+ "short_description": {
+ "type": ["string", "null"],
+ "id": "short_description"
+ },
+ "summary": {
+ "type": ["string", "null"],
+ "id": "summary"
+ },
+ "tools": {
+ "items": {
+ "type": "object",
+ "id": "0",
+ "properties": {
+ "mount_point": {
+ "type": "string",
+ "id": "mount_point"
+ },
+ "name": {
+ "type": "string",
+ "id": "name"
+ },
+ "label": {
+ "type": "string",
+ "id": "label"
+ }
+ }
+ },
+ "type": "array",
+ "id": "tools"
+ },
+ "video_url": {
+ "type": ["string", "null"],
+ "id": "video_url"
+ },
+ "socialnetworks": {
+ "items": {
+ "type": "object",
+ "id": "0",
+ "properties": {
+ "accounturl": {
+ "type": ["string", "null"],
+ "id": "accounturl"
+ },
+ "socialnetwork": {
+ "type": ["string", "null"],
+ "id": "socialnetwork"
+ }
+ }
+ },
+ "type": "array",
+ "id": "socialnetworks"
+ },
+ "moved_to_url": {
+ "type": ["string", "null"],
+ "id": "moved_to_url"
+ },
+ "shortname": {
+ "type": "string",
+ "id": "shortname"
+ },
+ "developers": {
+ "items": {
+ "type": "object",
+ "id": "0",
+ "properties": {
+ "url": {
+ "type": "string",
+ "id": "url"
+ },
+ "username": {
+ "type": "string",
+ "id": "username"
+ },
+ "name": {
+ "type": "string",
+ "id": "name"
+ }
+ }
+ },
+ "type": "array",
+ "id": "developers"
+ },
+ "screenshots": {
+ "type": "array",
+ "id": "screenshots"
+ },
+ "external_homepage": {
+ "type": ["string", "null"],
+ "id": "external_homepage"
+ },
+ "categories": {
+ "type": "object",
+ "id": "categories",
+ "properties": {
+ "developmentstatus": {
+ "type": "array",
+ "id": "developmentstatus"
+ },
+ "environment": {
+ "type": "array",
+ "id": "environment"
+ },
+ "language": {
+ "type": "array",
+ "id": "language"
+ },
+ "license": {
+ "type": "array",
+ "id": "license"
+ },
+ "database": {
+ "type": "array",
+ "id": "database"
+ },
+ "topic": {
+ "type": "array",
+ "id": "topic"
+ },
+ "audience": {
+ "type": "array",
+ "id": "audience"
+ },
+ "translation": {
+ "type": "array",
+ "id": "translation"
+ },
+ "os": {
+ "type": "array",
+ "id": "os"
+ }
+ }
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/allura/blob/247ee2a9/Allura/docs/api-rest/schemas/searchedTickets.json
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/schemas/searchedTickets.json b/Allura/docs/api-rest/schemas/searchedTickets.json
new file mode 100755
index 0000000..cf66f55
--- /dev/null
+++ b/Allura/docs/api-rest/schemas/searchedTickets.json
@@ -0,0 +1,210 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema",
+ "required": [
+ "sort",
+ "count",
+ "filter_choices",
+ "page",
+ "q",
+ "solr_error",
+ "limit",
+ "tickets",
+ "filter"
+ ],
+ "type": "object",
+ "properties": {
+ "sort": {
+ "type": "null"
+ },
+ "count": {
+ "type": "number"
+ },
+ "filter_choices": {
+ "required": [
+ "status",
+ "reported_by",
+ "_milestone",
+ "assigned_to"
+ ],
+ "type": "object",
+ "properties": {
+ "status": {
+ "items": {
+ "items": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ }
+ ],
+ "type": "array"
+ },
+ "type": "array"
+ },
+ "reported_by": {
+ "items": {
+ "items": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ }
+ ],
+ "type": "array"
+ },
+ "type": "array"
+ },
+ "_milestone": {
+ "items": {
+ "items": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ }
+ ],
+ "type": "array"
+ },
+ "type": "array"
+ },
+ "assigned_to": {
+ "items": {
+ "items": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ }
+ ],
+ "type": "array"
+ },
+ "type": "array"
+ }
+ }
+ },
+ "filter": {
+ "type": "object"
+ },
+ "q": {
+ "type": "string"
+ },
+ "solr_error": {
+ "type": "null"
+ },
+ "limit": {
+ "type": "number"
+ },
+ "tickets": {
+ "items": {
+ "required": [
+ "status",
+ "labels",
+ "related_artifacts",
+ "attachments",
+ "reported_by",
+ "reported_by_id",
+ "discussion_disabled",
+ "private",
+ "summary",
+ "assigned_to_id",
+ "assigned_to",
+ "votes_down",
+ "votes_up",
+ "mod_date",
+ "_id",
+ "discussion_thread_url",
+ "ticket_num",
+ "custom_fields",
+ "created_date"
+ ],
+ "type": "object",
+ "properties": {
+ "status": {
+ "type": "string"
+ },
+ "labels": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "related_artifacts": {
+ "type": "array"
+ },
+ "attachments": {
+ "type": "array"
+ },
+ "reported_by": {
+ "type": "string"
+ },
+ "reported_by_id": {
+ "type": "string"
+ },
+ "discussion_disabled": {
+ "type": "boolean"
+ },
+ "private": {
+ "type": "boolean"
+ },
+ "summary": {
+ "type": "string"
+ },
+ "assigned_to_id": {
+ "type": ["string", "null"]
+ },
+ "assigned_to": {
+ "type": ["string", "null"]
+ },
+ "votes_down": {
+ "type": "number"
+ },
+ "votes_up": {
+ "type": "number"
+ },
+ "mod_date": {
+ "type": "string"
+ },
+ "_id": {
+ "type": "string"
+ },
+ "discussion_thread_url": {
+ "type": "string"
+ },
+ "ticket_num": {
+ "type": "number"
+ },
+ "custom_fields": {
+ "required": [
+ "_component",
+ "_milestone",
+ "_reviewer"
+ ],
+ "type": "object",
+ "properties": {
+ "_component": {
+ "type": "string"
+ },
+ "_milestone": {
+ "type": "string"
+ },
+ "_reviewer": {
+ "type": "string"
+ }
+ }
+ },
+ "created_date": {
+ "type": "string"
+ }
+ }
+ },
+ "type": "array"
+ },
+ "page": {
+ "type": "number"
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/allura/blob/247ee2a9/Allura/docs/api-rest/schemas/ticket.json
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/schemas/ticket.json b/Allura/docs/api-rest/schemas/ticket.json
new file mode 100755
index 0000000..48aec8d
--- /dev/null
+++ b/Allura/docs/api-rest/schemas/ticket.json
@@ -0,0 +1,180 @@
+{
+ "$schema": "http://json-schema.org/draft04/schema#",
+ "id": "/",
+ "type": "object",
+ "properties": {
+ "ticket": {
+ "id": "ticket",
+ "type": "object",
+ "properties": {
+ "status": {
+ "id": "status",
+ "type": "string"
+ },
+ "reported_by_id": {
+ "id": "reported_by_id",
+ "type": "string"
+ },
+ "related_artifacts": {
+ "id": "related_artifacts",
+ "type": "array",
+ "items": {},
+ "additionalItems": false
+ },
+ "attachments": {
+ "id": "attachments",
+ "type": "array",
+ "items": {},
+ "additionalItems": false
+ },
+ "reported_by": {
+ "id": "reported_by",
+ "type": "string"
+ },
+ "assigned_to": {
+ "id": "assigned_to",
+ "type": "string"
+ },
+ "labels": {
+ "id": "labels",
+ "type": "array",
+ "items": {
+ "id": "1",
+ "type": "string"
+ },
+ "additionalItems": false
+ },
+ "discussion_disabled": {
+ "id": "discussion_disabled",
+ "type": "boolean"
+ },
+ "assigned_to_id": {
+ "id": "assigned_to_id",
+ "type": "string"
+ },
+ "private": {
+ "id": "private",
+ "type": "boolean"
+ },
+ "summary": {
+ "id": "summary",
+ "type": "string"
+ },
+ "description": {
+ "id": "description",
+ "type": "string"
+ },
+ "discussion_thread": {
+ "id": "discussion_thread",
+ "type": "object",
+ "properties": {
+ "_id": {
+ "id": "_id",
+ "type": "string"
+ },
+ "posts": {
+ "id": "posts",
+ "type": "array",
+ "items": {
+ "id": "2",
+ "type": "object",
+ "properties": {
+ "text": {
+ "id": "text",
+ "type": "string"
+ },
+ "attachments": {
+ "id": "attachments",
+ "type": "array",
+ "items": {},
+ "additionalItems": false
+ },
+ "author": {
+ "id": "author",
+ "type": "string"
+ },
+ "timestamp": {
+ "id": "timestamp",
+ "type": "string"
+ },
+ "last_edited": {
+ "id": "last_edited",
+ "type": "null"
+ },
+ "slug": {
+ "id": "slug",
+ "type": "string"
+ },
+ "subject": {
+ "id": "subject",
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "additionalItems": false
+ },
+ "discussion_id": {
+ "id": "discussion_id",
+ "type": "string"
+ },
+ "subject": {
+ "id": "subject",
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "mod_date": {
+ "id": "mod_date",
+ "type": "string"
+ },
+ "votes_down": {
+ "id": "votes_down",
+ "type": "integer"
+ },
+ "votes_up": {
+ "id": "votes_up",
+ "type": "integer"
+ },
+ "_id": {
+ "id": "_id",
+ "type": "string"
+ },
+ "discussion_thread_url": {
+ "id": "discussion_thread_url",
+ "type": "string"
+ },
+ "ticket_num": {
+ "id": "ticket_num",
+ "type": "integer"
+ },
+ "custom_fields": {
+ "id": "custom_fields",
+ "type": "object",
+ "properties": {
+ "_component": {
+ "id": "_component",
+ "type": "string"
+ },
+ "_milestone": {
+ "id": "_milestone",
+ "type": "string"
+ },
+ "_reviewer": {
+ "id": "_reviewer",
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "created_date": {
+ "id": "created_date",
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false
+}
\ No newline at end of file
[05/11] allura git commit: [#6797] fix indentation,
so not all nested under has_access
Posted by br...@apache.org.
[#6797] fix indentation, so not all nested under has_access
Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/929a3f2e
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/929a3f2e
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/929a3f2e
Branch: refs/heads/db/6797
Commit: 929a3f2e2f3deeadaefb62471f37825e61aff666
Parents: 5660140
Author: Dave Brondsema <da...@brondsema.net>
Authored: Mon Aug 10 17:42:05 2015 -0400
Committer: Dave Brondsema <da...@brondsema.net>
Committed: Tue Aug 11 12:03:52 2015 -0400
----------------------------------------------------------------------
Allura/docs/api-rest/api.raml | 906 ++++++++++++++++++-------------------
1 file changed, 453 insertions(+), 453 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/allura/blob/929a3f2e/Allura/docs/api-rest/api.raml
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/api.raml b/Allura/docs/api-rest/api.raml
index 6f040e7..b123871 100755
--- a/Allura/docs/api-rest/api.raml
+++ b/Allura/docs/api-rest/api.raml
@@ -69,152 +69,210 @@ baseUriParameters:
default: read
enum: [read, admin, create, update]
- /{link}:
+ /{link}:
+ description: |
+ Represents the External Link tool.
+ type: {
+ tool: {
+ example: !include examples/link.json,
+ schema: !include schemas/link.json
+ }
+ }
+
+ get:
description: |
- Represents the External Link tool.
- type: {
- tool: {
- example: !include examples/link.json,
- schema: !include schemas/link.json
- }
+ Returns the existing url.
+
+ post:
+ description: |
+ Updates the url. *authentication required*.
+ body:
+ application/x-www-form-urlencoded:
+ formParameters:
+ url:
+ description: |
+ The url you would like to update to.
+ type: string
+ example: http://google.com
+
+ /{blog}:
+ type: {
+ tool: {
+ example: !include examples/blog.json,
+ schema: !include schemas/blog.json
}
+ }
+ description: |
+ Represents the **Blog tool**
- get:
- description: |
- Returns the existing url.
+ displayName: Blog
+ uriParameters:
+ blog:
+ displayName: Blog Name
+ type: string
+ example: blog
- post:
- description: |
- Updates the url. *authentication required*.
- body:
- application/x-www-form-urlencoded:
- formParameters:
- url:
- description: |
- The url you would like to update to.
- type: string
- example: http://google.com
+ get:
+ description: |
+ Returns a list of posts, including title and API url.
+ responses:
+ 200:
+ body:
+ application/json:
+ schema: !include schemas/blog.json
+ example: !include examples/blog.json
+ post:
+ description: |
+ Creates a new blog post.
+ body:
+ application/x-www-form-urlencoded:
+ formParameters:
+ title:
+ description: |
+ The title of the post.
+ type: string
+ example: New API docs released!
+ text:
+ description: |
+ The text of the post.
+ type: string
+ example: Lots of text here describing apis!\nThat is all.
+ labels:
+ description: |
+ Labels of the post -- comma seperated strings
+ type: string
+ example: api,development
+ state:
+ description: |
+ Draft or published.
+ enum: [draft, published]
+ type: string
+ example: published
- /{blog}:
- type: {
+ /{year}/{month}/{title}:
+ description: Represents a blog post entry.
+ type: {
tool: {
- example: !include examples/blog.json,
- schema: !include schemas/blog.json
+ example: !include examples/blogPost.json,
+ schema: !include schemas/blogPost.json
}
}
- description: |
- Represents the **Blog tool**
+ displayName: Blog Post
+ uriParameters:
+ year:
+ displayName: Year
+ type: number
+ example: 2015
+ month:
+ displayName: Month
+ type: number
+ example: 04
+ title:
+ displayName: Title
+ type: string
+ example: project-insights
- displayName: Blog
- uriParameters:
- blog:
- displayName: Blog Name
- type: string
- example: blog
+ post:
+ description: |
+ Updates an existing blog post.
+ body:
+ application/x-www-form-urlencoded:
+ formParameters:
+ title:
+ description: |
+ The title of the post.
+ type: string
+ text:
+ description: |
+ The text of the post.
+ type: string
+ labels:
+ description: |
+ Labels of the post -- comma seperated strings
+ type: string
+ state:
+ description: |
+ Draft or published.
+ enum: [draft, published]
+ type: string
+ /has_access:
+ type: permission
get:
- description: |
- Returns a list of posts, including title and API url.
- responses:
- 200:
- body:
- application/json:
- schema: !include schemas/blog.json
- example: !include examples/blog.json
- post:
- description: |
- Creates a new blog post.
- body:
- application/x-www-form-urlencoded:
- formParameters:
- title:
- description: |
- The title of the post.
- type: string
- example: New API docs released!
- text:
- description: |
- The text of the post.
- type: string
- example: Lots of text here describing apis!\nThat is all.
- labels:
- description: |
- Labels of the post -- comma seperated strings
- type: string
- example: api,development
- state:
- description: |
- Draft or published.
- enum: [draft, published]
- type: string
- example: published
-
- /{year}/{month}/{title}:
- description: Represents a blog post entry.
- type: {
- tool: {
- example: !include examples/blogPost.json,
- schema: !include schemas/blogPost.json
- }
- }
- displayName: Blog Post
- uriParameters:
- year:
- displayName: Year
- type: number
- example: 2015
- month:
- displayName: Month
- type: number
- example: 04
- title:
- displayName: Title
- type: string
- example: project-insights
+ queryParameters:
+ perm:
+ displayName: Permission
+ required: true
+ type: string
+ example: post
+ default: read
+ enum: [admin, configure, moderate, post, unmoderated_post, read, write]
+
+ /{forum}:
+ description: |
+ A list of forums
+ type: {
+ tool: {
+ example: !include examples/page.json,
+ schema: !include schemas/page.json
+ }
+ }
- post:
- description: |
- Updates an existing blog post.
- body:
- application/x-www-form-urlencoded:
- formParameters:
- title:
- description: |
- The title of the post.
- type: string
- text:
- description: |
- The text of the post.
- type: string
- labels:
- description: |
- Labels of the post -- comma seperated strings
- type: string
- state:
- description: |
- Draft or published.
- enum: [draft, published]
- type: string
+ displayName: forum
+ uriParameters:
+ forum:
+ displayName: Forum Name
+ type: string
+ example: general
+ description: |
+ Returns a list of forums, including name, description, num_posts, API URL, and last_post details
+
+ To view more than 100 threads, or 100 posts in a thread, use the pagination support of the API by adding ?page=1 etc. to the URL.
- /has_access:
- type: permission
+ /forum:
+ description: |
+ returns a limited list of topics in the forum, with fields for subject, num_replies, API URL, and last_post
+ get:
+ /{slug}:
+ description: |
+ returns a limited list of posts in the thread, with fields for author, text, and timestamp. Nested posts (i.e. a reply to a post) can be determined by the slug structure. For example, "slug": "0a0b/9f00" is a reply to the post with "slug": "0a0b"
get:
- queryParameters:
- perm:
- displayName: Permission
- required: true
- type: string
- example: post
- default: read
- enum: [admin, configure, moderate, post, unmoderated_post, read, write]
+
+ /has_access:
+ type: permission
+ get:
+ queryParameters:
+ perm:
+ displayName: Permission
+ required: true
+ type: string
+ example: post
+ default: read
+ enum: [admin, configure, moderate, post, unmoderated_post, read]
+
+ /{discussion}:
+ description: |
+ Represents the **Discussion Tool**.
+ type: {
+ tool: {
+ schema: !include schemas/discussion.json,
+ example: !include examples/discussion.json
+
+ }
+ }
+
+ displayName: Discussion
+ uriParameters:
+ discussion:
+ displayName: Discussion Name
+ type: string
+ example: "discussion"
/{forum}:
- description: |
- A list of forums
type: {
tool: {
- example: !include examples/page.json,
- schema: !include schemas/page.json
+ example: !include examples/page.json,
+ schema: !include schemas/page.json
}
}
@@ -224,216 +282,212 @@ baseUriParameters:
displayName: Forum Name
type: string
example: general
- description: |
- Returns a list of forums, including name, description, num_posts, API URL, and last_post details
-
- To view more than 100 threads, or 100 posts in a thread, use the pagination support of the API by adding ?page=1 etc. to the URL.
-
- /forum:
- description: |
- returns a limited list of topics in the forum, with fields for subject, num_replies, API URL, and last_post
- get:
- /{slug}:
- description: |
- returns a limited list of posts in the thread, with fields for author, text, and timestamp. Nested posts (i.e. a reply to a post) can be determined by the slug structure. For example, "slug": "0a0b/9f00" is a reply to the post with "slug": "0a0b"
- get:
-
- /has_access:
- type: permission
- get:
- queryParameters:
- perm:
- displayName: Permission
- required: true
- type: string
- example: post
- default: read
- enum: [admin, configure, moderate, post, unmoderated_post, read]
- /{discussion}:
- description: |
- Represents the **Discussion Tool**.
- type: {
- tool: {
- schema: !include schemas/discussion.json,
- example: !include examples/discussion.json
+ /has_access:
+ type: permission
- }
+ /{wiki}:
+ description: |
+ Represents the **Wiki Tool**.
+ type: {
+ tool: {
+ example: !include examples/wiki.json,
+ schema: !include schemas/wiki.json
}
+ }
- displayName: Discussion
- uriParameters:
- discussion:
- displayName: Discussion Name
- type: string
- example: "discussion"
-
- /{forum}:
- type: {
- tool: {
- example: !include examples/page.json,
- schema: !include schemas/page.json
- }
- }
-
- displayName: forum
- uriParameters:
- forum:
- displayName: Forum Name
- type: string
- example: general
+ displayName: Wiki
+ uriParameters:
+ wiki:
+ displayName: Wiki Name
+ type: string
+ example: wiki
- /has_access:
- type: permission
- /{wiki}:
- description: |
- Represents the **Wiki Tool**.
+ /{title}:
type: {
tool: {
- example: !include examples/wiki.json,
- schema: !include schemas/wiki.json
+ example: !include examples/page.json,
+ schema: !include schemas/page.json
}
}
- displayName: Wiki
+ displayName: Title
uriParameters:
- wiki:
- displayName: Wiki Name
+ title:
+ displayName: Wiki Title
type: string
- example: wiki
-
+ example: Extensions
+ get:
+ description: |
+ returns a JSON representation of a page
+ post:
+ description: |
+ Creates or updates the titled page.
+ body:
+ application/x-www-form-urlencoded:
+ formParameters:
+ text:
+ description: |
+ Page text.
+ type: string
+ labels:
+ description: |
+ Comma-separated list of page labels.
+ type: string
- /{title}:
- type: {
- tool: {
- example: !include examples/page.json,
- schema: !include schemas/page.json
- }
- }
- displayName: Title
- uriParameters:
- title:
- displayName: Wiki Title
- type: string
- example: Extensions
- get:
- description: |
- returns a JSON representation of a page
- post:
- description: |
- Creates or updates the titled page.
- body:
- application/x-www-form-urlencoded:
- formParameters:
- text:
- description: |
- Page text.
- type: string
- labels:
- description: |
- Comma-separated list of page labels.
- type: string
+ /has_access:
+ type: permission
+ get:
+ queryParameters:
+ perm:
+ displayName: Permission
+ required: true
+ type: string
+ example: post
+ default: read
+ enum: [admin, configure, moderate, post, unmoderated_post, read, create, delete, edit]
+
+ /{tracker}:
+ description: |
+ Represents the **Ticket Tracker Tool**.
+ type: {
+ tool: {
+ example: !include examples/tickets.json,
+ schema: !include schemas/ticket.json
+ }
+ }
+ is: [pageable]
+ displayName: Tracker Url
+ uriParameters:
+ tracker:
+ displayName: Tracker Name
+ type: string
+ example: tickets
- /has_access:
- type: permission
- get:
- queryParameters:
- perm:
- displayName: Permission
- required: true
- type: string
- example: post
- default: read
- enum: [admin, configure, moderate, post, unmoderated_post, read, create, delete, edit]
-
- /{tracker}:
- description: |
- Represents the **Ticket Tracker Tool**.
- type: {
- tool: {
- example: !include examples/tickets.json,
- schema: !include schemas/ticket.json
- }
- }
+ get:
is: [pageable]
+ description: |
+ Get a list of tickets
- displayName: Tracker Url
+ /_discuss/thread/{threadId}:
uriParameters:
- tracker:
- displayName: Tracker Name
+ threadId:
+ displayName: Thread ID
type: string
- example: tickets
+ example: f78b98a0
get:
- is: [pageable]
description: |
- Get a list of tickets
-
- /_discuss/thread/{threadId}:
+ returns summary information about a thread, including the posts in a thread
+ /{slug}:
uriParameters:
- threadId:
- displayName: Thread ID
+ slug:
+ displayName: Slug
type: string
- example: f78b98a0
-
+ example: 9133
get:
description: |
- returns summary information about a thread, including the posts in a thread
- /{slug}:
- uriParameters:
- slug:
- displayName: Slug
- type: string
- example: 9133
- get:
- description: |
- returns detailed information about a post
- /reply:
- description: |
- create a threaded reply to the given post
- post:
- body:
- application/x-www-form-urlencoded:
- formParameters:
- text:
- description: the text of the reply
- example: |
- I *agree* with you.
- required: true
- type: string
- /new:
+ returns detailed information about a post
+ /reply:
description: |
- create a post in the given thread
+ create a threaded reply to the given post
post:
body:
application/x-www-form-urlencoded:
formParameters:
text:
- description: The text of the new post
+ description: the text of the reply
example: |
- This is a new post!
+ I *agree* with you.
required: true
type: string
+ /new:
+ description: |
+ create a post in the given thread
+ post:
+ body:
+ application/x-www-form-urlencoded:
+ formParameters:
+ text:
+ description: The text of the new post
+ example: |
+ This is a new post!
+ required: true
+ type: string
- /search:
- type: {
- searchableCollection: {
- queryParamName: q,
- schema: !include schemas/searchedTickets.json,
- example: !include examples/searchedTickets.json
- }
+ /search:
+ type: {
+ searchableCollection: {
+ queryParamName: q,
+ schema: !include schemas/searchedTickets.json,
+ example: !include examples/searchedTickets.json
}
- is: [ pageable]
+ }
+ is: [ pageable]
- /new:
+ /new:
+ description: |
+ Creates a new ticket.
+ post:
+ body:
+ # FIXME?
+ application/x-www-form-urlencoded:
+ formParameters:
+ access_token:
+ description: "The access token provided by the authentication application"
+ required: true
+ type: string
+ ticket_form.summary:
+ description: Ticket title
+ type: string
+ required: false
+ ticket_form.description:
+ description: ticket description
+ type: string
+ required: false
+ ticket_form.assigned_to::
+ type: string
+ required: false
+ description: username of ticket assignee
+ ticket_form.labels:
+ type: string
+ required: false
+ description: comma-separated list of ticket labels
+ ticket_form.attachment:
+ type: file
+ description: (optional) attachment
+ required: false
+ ticket_form.custom field name:
+ description: custom field value
+ type: string
+ required: false
+
+ /{ticketNumber}:
+ type: {
+ tool: {
+ example: !include examples/ticket.json,
+ schema: !include schemas/ticket.json
+
+ }
+ }
+ displayName: Ticket Number
+ uriParameters:
+ ticketNumber:
+ example: 1
+ description: |
+ Get a details of a ticket.
+
+ /save:
description: |
- Creates a new ticket.
+ updates an existing ticket
+ parameters are the same as /rest/p/project_name/mount_point/new
+
post:
body:
- # FIXME?
+ # form?
application/x-www-form-urlencoded:
formParameters:
access_token:
@@ -465,117 +519,84 @@ baseUriParameters:
type: string
required: false
- /{ticketNumber}:
- type: {
- tool: {
- example: !include examples/ticket.json,
- schema: !include schemas/ticket.json
-
- }
- }
- displayName: Ticket Number
- uriParameters:
- ticketNumber:
- example: 1
- description: |
- Get a details of a ticket.
-
- /save:
- description: |
- updates an existing ticket
- parameters are the same as /rest/p/project_name/mount_point/new
-
- post:
- body:
- # form?
- application/x-www-form-urlencoded:
- formParameters:
- access_token:
- description: "The access token provided by the authentication application"
- required: true
- type: string
- ticket_form.summary:
- description: Ticket title
- type: string
- required: false
- ticket_form.description:
- description: ticket description
- type: string
- required: false
- ticket_form.assigned_to::
- type: string
- required: false
- description: username of ticket assignee
- ticket_form.labels:
- type: string
- required: false
- description: comma-separated list of ticket labels
- ticket_form.attachment:
- type: file
- description: (optional) attachment
- required: false
- ticket_form.custom field name:
- description: custom field value
- type: string
- required: false
+ /has_access:
+ type: permission
+ get:
+ queryParameters:
+ perm:
+ displayName: Permission
+ required: true
+ type: string
+ example: post
+ default: read
+ enum: [admin, configure, moderate, post, unmoderated_post, read, create, delete, update, save_searches]
- /has_access:
- type: permission
- get:
- queryParameters:
- perm:
- displayName: Permission
- required: true
- type: string
- example: post
- default: read
- enum: [admin, configure, moderate, post, unmoderated_post, read, create, delete, update, save_searches]
+ /admin:
+ description: |
+ Endpoints for **project exporting** and managing **webhooks**
- /admin:
+ /export:
description: |
- Endpoints for **project exporting** and managing **webhooks**
-
- /export:
+ Generates a full bulk export of your tool(s) in the same format as the API for individual access. Authentication required. Here is an [example shell](https://forge-allura.apache.org/p/allura/git/ci/master/tree/scripts/project_export) script using these APIs, suitable to run as a cron job.
+ post:
description: |
- Generates a full bulk export of your tool(s) in the same format as the API for individual access. Authentication required. Here is an [example shell](https://forge-allura.apache.org/p/allura/git/ci/master/tree/scripts/project_export) script using these APIs, suitable to run as a cron job.
- post:
- description: |
- Submits an export job
+ Submits an export job
- **400 Bad Request:** tools parameter not provided or is invalid
- **503 Service Unavailable:** an export job is already running
- **200 OK:** job submitted. Body will be: *{"status": "in progress", "filename": FILENAME}*
- /export_status:
+ **400 Bad Request:** tools parameter not provided or is invalid
+ **503 Service Unavailable:** an export job is already running
+ **200 OK:** job submitted. Body will be: *{"status": "in progress", "filename": FILENAME}*
+ /export_status:
+ description: |
+ Check status of a bulk export job
+ get:
description: |
- Check status of a bulk export job
- get:
- description: |
- Returns status: busy or ready
-
- /{project}/webhooks:
- type: {
- typedCollection: {
- example: !include examples/webhooks.json,
- schema: !include schemas/webhook.json
- }
+ Returns status: busy or ready
+
+ /{project}/webhooks:
+ type: {
+ typedCollection: {
+ example: !include examples/webhooks.json,
+ schema: !include schemas/webhook.json
}
- description: |
- This is to manage webhooks programatically. See the [Webhook docs](https://forge-allura.apache.org/p/allura/wiki/Webhooks/) for more information.
+ }
+ description: |
+ This is to manage webhooks programatically. See the [Webhook docs](https://forge-allura.apache.org/p/allura/wiki/Webhooks/) for more information.
- The webhook payloads and signature verification method are documented at https://forge-allura.apache.org/p/allura/wiki/Webhooks/
+ The webhook payloads and signature verification method are documented at https://forge-allura.apache.org/p/allura/wiki/Webhooks/
- /{type}:
+ /{type}:
+ uriParameters:
+ type:
+ example: repo-push
+ enum: [repo-push]
+ description: |
+ Allura supports one type of webhook for the moment - repo-push, triggered when a repository receives new commits. It is supported for Git, Mercurial and SVN repositories.
+ post:
+ description: |
+ Create a new webhook.
+ body:
+ application/x-www-form-urlencoded:
+ formParameters:
+ url:
+ description: |
+ The url to call when the the webhook is triggered.
+ required: true
+ type: string
+ /{id}:
uriParameters:
- type:
- example: repo-push
- enum: [repo-push]
+ id:
+ type: string
description: |
- Allura supports one type of webhook for the moment - repo-push, triggered when a repository receives new commits. It is supported for Git, Mercurial and SVN repositories.
+ Unique identifier for a webhook.
+
+ get:
+ description: |
+ View a webhook
post:
description: |
- Create a new webhook.
+ Update an existing webhook
body:
application/x-www-form-urlencoded:
formParameters:
@@ -584,72 +605,51 @@ baseUriParameters:
The url to call when the the webhook is triggered.
required: true
type: string
- /{id}:
- uriParameters:
- id:
- type: string
- description: |
- Unique identifier for a webhook.
+ secret:
+ description: |
+ Optionally supply your own secret.
- get:
+ Note: DO NOT ever expose your secret!
+ required: false
+ type: string
+ delete:
+ description: |
+ Delete an existing webhook
+ /install_tool:
+ description: |
+ Adds a new tool to the project. *Authentication Required*.
+
+ returns dict with two fields:
+ success: False if error is occurred, otherwise True
+ info: success or error message
+ post:
+ body:
+ application/x-www-form-urlencoded:
+ formParameters:
+ tool:
+ description: Tool name that you want to install.
+ example: tickets
+ enum: [tickets, link, git, svn, mercurial, blog, discussion, subproject, wiki]
+ required: true
+ type: string
+ mount_point:
description: |
- View a webhook
- post:
+ The section of the url relitive to your project. For example: /p/your_project/{mount_point}
+ example: git
+ type: string
+ required: true
+ mount_label:
description: |
- Update an existing webhook
- body:
- application/x-www-form-urlencoded:
- formParameters:
- url:
- description: |
- The url to call when the the webhook is triggered.
- required: true
- type: string
- secret:
- description: |
- Optionally supply your own secret.
-
- Note: DO NOT ever expose your secret!
- required: false
- type: string
- delete:
+ How your tool will be displayed in your project (like a "nice name" for the tool).
+ example: Git
+ type: string
+ required: true
+ order:
+ type: string
+ enum: [first, last, alpha_tool]
+ required: false
description: |
- Delete an existing webhook
- /install_tool:
- description: |
- Adds a new tool to the project. *Authentication Required*.
-
- returns dict with two fields:
- success: False if error is occurred, otherwise True
- info: success or error message
- post:
- body:
- application/x-www-form-urlencoded:
- formParameters:
- tool:
- description: Tool name that you want to install.
- example: tickets
- enum: [tickets, link, git, svn, mercurial, blog, discussion, subproject, wiki]
- required: true
- type: string
- mount_point:
- description: |
- The section of the url relitive to your project. For example: /p/your_project/{mount_point}
- example: git
- type: string
- required: true
- mount_label:
- description: |
- How your tool will be displayed in your project (like a "nice name" for the tool).
- example: Git
- type: string
- required: true
- order:
- type: string
- enum: [first, last, alpha_tool]
- required: false
- description: |
- "first", "last", or "alpha_tool" for position with respect to existing tools (or existing tools of the same type for "alpha_tool")
+ "first", "last", or "alpha_tool" for position with respect to existing tools (or existing tools of the same type for "alpha_tool")
/u/{username}:
description: |
[06/11] allura git commit: [#6797] fix incorrect includes. Combine
forum & discussion endpoints into one and fix up
Posted by br...@apache.org.
[#6797] fix incorrect includes. Combine forum & discussion endpoints into one and fix up
Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/2866eba4
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/2866eba4
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/2866eba4
Branch: refs/heads/db/6797
Commit: 2866eba4a0c0b7063cb2ed09c452ea17a1fa18ca
Parents: 929a3f2
Author: Dave Brondsema <da...@brondsema.net>
Authored: Mon Aug 10 18:30:01 2015 -0400
Committer: Dave Brondsema <da...@brondsema.net>
Committed: Tue Aug 11 12:03:58 2015 -0400
----------------------------------------------------------------------
Allura/docs/api-rest/api.raml | 105 ++++++++++++++++---------------------
1 file changed, 45 insertions(+), 60 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/allura/blob/2866eba4/Allura/docs/api-rest/api.raml
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/api.raml b/Allura/docs/api-rest/api.raml
index b123871..78402a2 100755
--- a/Allura/docs/api-rest/api.raml
+++ b/Allura/docs/api-rest/api.raml
@@ -115,12 +115,6 @@ baseUriParameters:
get:
description: |
Returns a list of posts, including title and API url.
- responses:
- 200:
- body:
- application/json:
- schema: !include schemas/blog.json
- example: !include examples/blog.json
post:
description: |
Creates a new blog post.
@@ -208,74 +202,37 @@ baseUriParameters:
default: read
enum: [admin, configure, moderate, post, unmoderated_post, read, write]
- /{forum}:
- description: |
- A list of forums
- type: {
- tool: {
- example: !include examples/page.json,
- schema: !include schemas/page.json
- }
- }
-
- displayName: forum
- uriParameters:
- forum:
- displayName: Forum Name
- type: string
- example: general
- description: |
- Returns a list of forums, including name, description, num_posts, API URL, and last_post details
-
- To view more than 100 threads, or 100 posts in a thread, use the pagination support of the API by adding ?page=1 etc. to the URL.
-
- /forum:
- description: |
- returns a limited list of topics in the forum, with fields for subject, num_replies, API URL, and last_post
- get:
- /{slug}:
- description: |
- returns a limited list of posts in the thread, with fields for author, text, and timestamp. Nested posts (i.e. a reply to a post) can be determined by the slug structure. For example, "slug": "0a0b/9f00" is a reply to the post with "slug": "0a0b"
- get:
-
- /has_access:
- type: permission
- get:
- queryParameters:
- perm:
- displayName: Permission
- required: true
- type: string
- example: post
- default: read
- enum: [admin, configure, moderate, post, unmoderated_post, read]
-
/{discussion}:
description: |
Represents the **Discussion Tool**.
type: {
- tool: {
+ tool: {
schema: !include schemas/discussion.json,
example: !include examples/discussion.json
-
}
}
displayName: Discussion
uriParameters:
discussion:
- displayName: Discussion Name
+ displayName: Discussion Tool Name
type: string
example: "discussion"
+ get:
+ description: |
+ Returns a list of forums, including name, description, num_topics, and last_post details
+ is: [pageable]
/{forum}:
+ description: |
+ Represents a forum within a Discussion tool.
type: {
- tool: {
- example: !include examples/page.json,
- schema: !include schemas/page.json
- }
+ tool: {
+ # FIXME
+ example: !include examples/page.json,
+ schema: !include schemas/page.json
}
-
+ }
displayName: forum
uriParameters:
forum:
@@ -283,8 +240,31 @@ baseUriParameters:
type: string
example: general
+ get:
+ is: [pageable]
+ description: |
+ returns a limited list of topics in the forum, with fields for subject, num_replies, API URL, and last_post
+ To view more than 100 threads, or 100 posts in a thread, use the pagination support of the API by adding ?page=1 etc. to the URL.
+
+ /thread/{thread}:
+ description: |
+ Represents a thread of posts.
+ get:
+ is: [pageable]
+ description: |
+ returns a list of posts in the thread, with fields for author, text, and timestamp. Nested posts (i.e. a reply to a post) can be determined by the slug structure. For example, "slug": "0a0b/9f00" is a reply to the post with "slug": "0a0b"
+
/has_access:
type: permission
+ get:
+ queryParameters:
+ perm:
+ displayName: Permission
+ required: true
+ type: string
+ example: post
+ default: read
+ enum: [admin, configure, moderate, post, unmoderated_post, read]
/{wiki}:
description: |
@@ -355,7 +335,7 @@ baseUriParameters:
type: {
tool: {
example: !include examples/tickets.json,
- schema: !include schemas/ticket.json
+ schema: !include schemas/tickets.json
}
}
is: [pageable]
@@ -470,7 +450,6 @@ baseUriParameters:
tool: {
example: !include examples/ticket.json,
schema: !include schemas/ticket.json
-
}
}
displayName: Ticket Number
@@ -557,7 +536,7 @@ baseUriParameters:
type: {
typedCollection: {
example: !include examples/webhooks.json,
- schema: !include schemas/webhook.json
+ schema: !include schemas/webhooks.json
}
}
description: |
@@ -585,6 +564,12 @@ baseUriParameters:
required: true
type: string
/{id}:
+ type: {
+ tool: {
+ example: !include examples/webhook.json,
+ schema: !include schemas/webhook.json
+ }
+ }
uriParameters:
id:
type: string
@@ -634,7 +619,7 @@ baseUriParameters:
type: string
mount_point:
description: |
- The section of the url relitive to your project. For example: /p/your_project/{mount_point}
+ The section of the url relative to your project. For example: /p/your_project/{mount_point}
example: git
type: string
required: true
[11/11] allura git commit: [#6797] replace custom security (which
actually breaks Mulesoft api "try it") with bearer token headers
Posted by br...@apache.org.
[#6797] replace custom security (which actually breaks Mulesoft api "try it") with bearer token headers
Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/f864c018
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/f864c018
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/f864c018
Branch: refs/heads/db/6797
Commit: f864c018dbcf66c07f91cf0159ef01a2fc500bf0
Parents: 56d8d38
Author: Dave Brondsema <da...@brondsema.net>
Authored: Thu Aug 13 16:01:20 2015 -0400
Committer: Dave Brondsema <da...@brondsema.net>
Committed: Thu Aug 13 16:01:20 2015 -0400
----------------------------------------------------------------------
Allura/docs/api-rest/api.raml | 25 ++++++++++++-----
Allura/docs/api-rest/resourceTypes.yaml | 12 ++++----
Allura/docs/api-rest/securitySchemes.yaml | 39 +++++++++++---------------
Allura/docs/api-rest/traits.yaml | 13 ++++++++-
4 files changed, 53 insertions(+), 36 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/allura/blob/f864c018/Allura/docs/api-rest/api.raml
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/api.raml b/Allura/docs/api-rest/api.raml
index 2d9b211..f501679 100755
--- a/Allura/docs/api-rest/api.raml
+++ b/Allura/docs/api-rest/api.raml
@@ -3,7 +3,7 @@
title: Apache Allura
version: 1
baseUri: https://{domain}/rest
-securedBy: [null, oauth_1_0, oauth_bearer_token]
+securedBy: [null, oauth_1_0]
resourceTypes: !include resourceTypes.yaml
traits: !include traits.yaml
@@ -15,8 +15,6 @@ baseUriParameters:
example: "forge-allura.apache.org"
default: "forge-allura.apache.org"
-
-
/{neighborhood}:
description: |
Neighborhoods are groups of logically related projects, which have the same default options.
@@ -107,6 +105,7 @@ baseUriParameters:
post:
description: |
Creates or updates the titled page.
+ is: [ bearerAuth ]
body:
application/x-www-form-urlencoded:
formParameters:
@@ -141,8 +140,6 @@ baseUriParameters:
schema: !include schemas/tickets.json
}
}
- is: [pageable]
-
displayName: Tracker Url
uriParameters:
tracker:
@@ -165,6 +162,7 @@ baseUriParameters:
get:
description: |
returns summary information about a thread, including the posts in a thread
+ is: [ bearerAuth ]
/{slug}:
uriParameters:
slug:
@@ -174,10 +172,12 @@ baseUriParameters:
get:
description: |
returns detailed information about a post
+ is: [ bearerAuth ]
/reply:
description: |
create a threaded reply to the given post
post:
+ is: [ bearerAuth ]
body:
application/x-www-form-urlencoded:
formParameters:
@@ -191,6 +191,7 @@ baseUriParameters:
description: |
create a post in the given thread
post:
+ is: [ bearerAuth ]
body:
application/x-www-form-urlencoded:
formParameters:
@@ -215,6 +216,7 @@ baseUriParameters:
description: |
Creates a new ticket.
post:
+ is: [ bearerAuth ]
body:
application/x-www-form-urlencoded:
formParameters:
@@ -267,6 +269,7 @@ baseUriParameters:
parameters are the same as /rest/p/project_name/mount_point/new
post:
+ is: [ bearerAuth ]
body:
application/x-www-form-urlencoded:
formParameters:
@@ -360,7 +363,7 @@ baseUriParameters:
description: |
Represents a thread of posts.
get:
- is: [pageable]
+ is: [pageable, bearerAuth]
description: |
returns a list of posts in the thread, with fields for author, text, and timestamp. Nested posts (i.e. a reply to a post) can be determined by the slug structure. For example, "slug": "0a0b/9f00" is a reply to the post with "slug": "0a0b"
@@ -399,6 +402,7 @@ baseUriParameters:
post:
description: |
Creates a new blog post.
+ is: [ bearerAuth ]
body:
application/x-www-form-urlencoded:
formParameters:
@@ -450,6 +454,7 @@ baseUriParameters:
post:
description: |
Updates an existing blog post.
+ is: [ bearerAuth ]
body:
application/x-www-form-urlencoded:
formParameters:
@@ -500,6 +505,7 @@ baseUriParameters:
post:
description: |
Updates the url. *authentication required*.
+ is: [ bearerAuth ]
body:
application/x-www-form-urlencoded:
formParameters:
@@ -523,13 +529,14 @@ baseUriParameters:
**400 Bad Request:** tools parameter not provided or is invalid
**503 Service Unavailable:** an export job is already running
**200 OK:** job submitted. Body will be: *{"status": "in progress", "filename": FILENAME}*
+ is: [ bearerAuth ]
/export_status:
description: |
Check status of a bulk export job
get:
description: |
Returns status: busy or ready
-
+ is: [ bearerAuth ]
/{project}/webhooks:
type: {
typedCollection: {
@@ -555,6 +562,7 @@ baseUriParameters:
post:
description: |
Create a new webhook.
+ is: [ bearerAuth ]
body:
application/x-www-form-urlencoded:
formParameters:
@@ -582,6 +590,7 @@ baseUriParameters:
post:
description: |
Update an existing webhook
+ is: [ bearerAuth ]
body:
application/x-www-form-urlencoded:
formParameters:
@@ -598,6 +607,7 @@ baseUriParameters:
required: false
type: string
delete:
+ is: [ bearerAuth ]
description: |
Delete an existing webhook
/install_tool:
@@ -608,6 +618,7 @@ baseUriParameters:
success: False if error is occurred, otherwise True
info: success or error message
post:
+ is: [ bearerAuth ]
body:
application/x-www-form-urlencoded:
formParameters:
http://git-wip-us.apache.org/repos/asf/allura/blob/f864c018/Allura/docs/api-rest/resourceTypes.yaml
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/resourceTypes.yaml b/Allura/docs/api-rest/resourceTypes.yaml
index 7d38d3f..9a69e5a 100755
--- a/Allura/docs/api-rest/resourceTypes.yaml
+++ b/Allura/docs/api-rest/resourceTypes.yaml
@@ -8,15 +8,15 @@
patch?:
responses: *standardResponses
post?:
- responses:
- 201:
- description: Created
+ responses:
+ 201:
+ description: Created
delete?:
responses: *standardResponses
- collection:
type: base
get:
- is: [ pageable ]
+ is: [ pageable, bearerAuth ]
- member:
type: base
get?:
@@ -27,6 +27,7 @@
- tool:
type: member
get:
+ is: [ bearerAuth ]
responses:
200:
body:
@@ -55,6 +56,7 @@
delete?:
- searchableCollection:
get:
+ is: [ bearerAuth ]
queryParameters:
<<queryParamName>>:
description: Return <<resourcePathName>> that have their <<queryParamName>> matching the given value
@@ -77,7 +79,7 @@
description: |
Checks if a given user has permissions.
get:
- is: [permissionTestable]
+ is: [permissionTestable, bearerAuth]
- project:
type: member
get:
http://git-wip-us.apache.org/repos/asf/allura/blob/f864c018/Allura/docs/api-rest/securitySchemes.yaml
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/securitySchemes.yaml b/Allura/docs/api-rest/securitySchemes.yaml
index c4bdd06..7516290 100755
--- a/Allura/docs/api-rest/securitySchemes.yaml
+++ b/Allura/docs/api-rest/securitySchemes.yaml
@@ -1,29 +1,22 @@
- oauth_1_0:
description: |
- Apache Allura supports OAuth 1.0 for authenticating API requests.
+ OAuth 1.0 may be used to authenticate API requests.
+
+ Another option which is simpler in some ways is "bearer tokens":
+
+ A bearer token (aka access token) may be generated at https://forge-allura.apache.org/auth/oauth/ and used
+ in an HTTP header like:
+
+ `Authorization: Bearer MY_BEARER_TOKEN`
+
+ or in a URL like
+
+ `?access_token=MY_BEARER_TOKEN`
+
+ To use bearer tokens, choose "Anonymous" security and then use the Authorization header to enter your Bearer token.
type: OAuth 1.0
settings:
requestTokenUri: https://forge-allura.apache.org/rest/oauth/request_token
- authorizationUri: /rest/oauth/authorize
- tokenCredentialsUri: /rest/oauth/access_token
+ authorizationUri: https://forge-allura.apache.org/rest/oauth/authorize
+ tokenCredentialsUri: https://forge-allura.apache.org/rest/oauth/access_token
-- oauth_bearer_token:
- description: |
- A bearer token (aka access token) may be generated at https://forge-allura.apache.org/auth/oauth/ for simple
- authorization via URL parameter or HTTP header.
- type: x-OAuth-Bearer-Token
- describedBy:
- headers:
- Authorization:
- description: |
- Used to send a bearer token. Use either this or
- the "access_token" query string parameter.
- type: string
- queryParameters:
- access_token:
- description: |
- Used to send a bearer token. Use either this or
- the "Authorization" header
- type: string
- settings:
- authorizationUri: https://forge-allura.apache.org//auth/oauth/
http://git-wip-us.apache.org/repos/asf/allura/blob/f864c018/Allura/docs/api-rest/traits.yaml
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/traits.yaml b/Allura/docs/api-rest/traits.yaml
index 2b45b71..31ee122 100755
--- a/Allura/docs/api-rest/traits.yaml
+++ b/Allura/docs/api-rest/traits.yaml
@@ -54,4 +54,15 @@
type: string
example: heiths
required: true
- description: The username to check
\ No newline at end of file
+ description: The username to check
+- bearerAuth:
+ # This can also be done with ?access_token=
+ # But it's simpler in the docs / Try It interface to just show one option
+ # and using the header method keeps it separate from query params that the individual API endpoints use
+ headers:
+ Authorization:
+ description: |
+ Optional. Authenticate yourselve with a token from https://forge-allura.apache.org/auth/oauth/
+ Use it here like: `Bearer 5d79e800a36bf602314d`
+ type: string
+ pattern: "^Bearer [0-9a-f]+$"
[04/11] allura git commit: [#6797] first round of some more changes
Posted by br...@apache.org.
[#6797] first round of some more changes
* specify which types are valid for each has_access endpoint
* add/update a few descriptions
* add a few missing get: sections
* remove _discuss endpoing which will be removed from code soon
* make user-profile stuff anchored to /u/ neighborhood
* remove old unused permission type
Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/0e133c5d
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/0e133c5d
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/0e133c5d
Branch: refs/heads/db/6797
Commit: 0e133c5dd65b8a1bbf88d08d8a60f22d490b443c
Parents: 247ee2a
Author: Dave Brondsema <da...@brondsema.net>
Authored: Mon Aug 10 16:16:22 2015 -0400
Committer: Dave Brondsema <da...@brondsema.net>
Committed: Tue Aug 11 12:03:51 2015 -0400
----------------------------------------------------------------------
Allura/docs/api-rest/api.raml | 289 ++++++++++++++++-----------
Allura/docs/api-rest/resourceTypes.yaml | 32 +--
Allura/docs/api-rest/traits.yaml | 19 +-
3 files changed, 179 insertions(+), 161 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/allura/blob/0e133c5d/Allura/docs/api-rest/api.raml
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/api.raml b/Allura/docs/api-rest/api.raml
index b22c117..749e321 100755
--- a/Allura/docs/api-rest/api.raml
+++ b/Allura/docs/api-rest/api.raml
@@ -17,51 +17,70 @@ baseUriParameters:
/{neighborhood}:
description: |
- Neighborhoods are groups of logically related projects, which have the same default options.
-
+ Neighborhoods are groups of logically related projects, which have the same default options.
+
uriParameters:
neighborhood:
example: p
description: |
- Allura has two default neighborhoods: **“Projects”** `/p` and **“Users”** `/u`.
+ Allura has two default neighborhoods: **“Projects”** `/p` and **“Users”** `/u`.
More information can be found [here](https://forge-allura.apache.org/docs/getting_started/using.html?highlight=neighborhood#what-are-neighborhoods)
-
+
/has_access:
type: permission
+ get:
+ queryParameters:
+ perm:
+ displayName: Permission
+ required: true
+ type: string
+ example: create
+ default: read
+ enum: [read, admin, create, update, register]
+
/{project}:
description: |
Get or modify existing projects.
uriParameters:
project:
- description: "The Apache Allura Project."
+ description: The Project short name.
example: "allura"
pattern: ([a-zA-Z]+)
-
- type: {
- project: {
+
+ type: {
+ project: {
schema: !include schemas/project.json,
example: !include examples/project.json
}
}
-
+
/has_access:
type: permission
-
+ get:
+ queryParameters:
+ perm:
+ displayName: Permission
+ required: true
+ type: string
+ example: create
+ default: read
+ enum: [read, admin, create, update]
+
/{link}:
description: |
Represents the External Link tool.
- type: {
+ type: {
tool: {
example: !include examples/link.json,
schema: !include schemas/link.json
}
}
-
+
get:
description: |
Returns the existing url.
-
+
post:
description: |
Updates the url. *authentication required*.
@@ -73,9 +92,9 @@ baseUriParameters:
The url you would like to update to.
type: string
example: http://google.com
-
+
/{blog}:
- type: {
+ type: {
tool: {
example: !include examples/blog.json,
schema: !include schemas/blog.json
@@ -83,14 +102,14 @@ baseUriParameters:
}
description: |
Represents the **Blog tool**
-
+
displayName: Blog
uriParameters:
blog:
displayName: Blog Name
type: string
example: blog
-
+
get:
description: |
Returns a list of posts, including title and API url.
@@ -127,8 +146,9 @@ baseUriParameters:
enum: [draft, published]
type: string
example: published
-
+
/{year}/{month}/{title}:
+ description: Represents a blog post entry.
type: {
tool: {
example: !include examples/blogPost.json,
@@ -149,7 +169,7 @@ baseUriParameters:
displayName: Title
type: string
example: project-insights
-
+
post:
description: |
Updates an existing blog post.
@@ -173,10 +193,19 @@ baseUriParameters:
Draft or published.
enum: [draft, published]
type: string
-
+
/has_access:
type: permission
-
+ get:
+ queryParameters:
+ perm:
+ displayName: Permission
+ required: true
+ type: string
+ example: post
+ default: read
+ enum: [admin, configure, moderate, post, unmoderated_post, read, write]
+
/{forum}:
description: |
A list of forums
@@ -186,7 +215,7 @@ baseUriParameters:
schema: !include schemas/page.json
}
}
-
+
displayName: forum
uriParameters:
forum:
@@ -195,19 +224,30 @@ baseUriParameters:
example: general
description: |
Returns a list of forums, including name, description, num_posts, API URL, and last_post details
-
+
To view more than 100 threads, or 100 posts in a thread, use the pagination support of the API by adding ?page=1 etc. to the URL.
-
+
/forum:
description: |
returns a limited list of topics in the forum, with fields for subject, num_replies, API URL, and last_post
+ get:
/{slug}:
description: |
returns a limited list of posts in the thread, with fields for author, text, and timestamp. Nested posts (i.e. a reply to a post) can be determined by the slug structure. For example, "slug": "0a0b/9f00" is a reply to the post with "slug": "0a0b"
-
+ get:
+
/has_access:
type: permission
-
+ get:
+ queryParameters:
+ perm:
+ displayName: Permission
+ required: true
+ type: string
+ example: post
+ default: read
+ enum: [admin, configure, moderate, post, unmoderated_post, read]
+
/{discussion}:
description: |
Represents the **Discussion Tool**.
@@ -215,17 +255,17 @@ baseUriParameters:
tool: {
schema: !include schemas/discussion.json,
example: !include examples/discussion.json
-
+
}
}
-
+
displayName: Discussion
uriParameters:
discussion:
displayName: Discussion Name
type: string
example: "discussion"
-
+
/{forum}:
type: {
tool: {
@@ -233,17 +273,17 @@ baseUriParameters:
schema: !include schemas/page.json
}
}
-
+
displayName: forum
uriParameters:
forum:
displayName: Forum Name
type: string
example: general
-
+
/has_access:
type: permission
-
+
/{wiki}:
description: |
Represents the **Wiki Tool**.
@@ -253,15 +293,15 @@ baseUriParameters:
schema: !include schemas/wiki.json
}
}
-
+
displayName: Wiki
uriParameters:
wiki:
displayName: Wiki Name
type: string
example: wiki
-
-
+
+
/{title}:
type: {
tool: {
@@ -269,7 +309,7 @@ baseUriParameters:
schema: !include schemas/page.json
}
}
-
+
displayName: Title
uriParameters:
title:
@@ -293,11 +333,20 @@ baseUriParameters:
description: |
Comma-separated list of page labels.
type: string
-
-
+
+
/has_access:
type: permission
-
+ get:
+ queryParameters:
+ perm:
+ displayName: Permission
+ required: true
+ type: string
+ example: post
+ default: read
+ enum: [admin, configure, moderate, post, unmoderated_post, read, create, delete, edit]
+
/{tracker}:
description: |
Represents the **Ticket Tracker Tool**.
@@ -308,70 +357,65 @@ baseUriParameters:
}
}
is: [pageable]
-
+
displayName: Tracker Url
uriParameters:
tracker:
displayName: Tracker Name
type: string
example: tickets
-
+
get:
is: [pageable]
description: |
Get a list of tickets
-
- /_discuss:
- description: |
- returns summary information about the tool discussion, including the threads in the discussion (there is one thread per ticket)
+
+ /_discuss/thread/{threadId}:
+ uriParameters:
+ threadId:
+ displayName: Thread ID
+ type: string
+ example: f78b98a0
+
get:
-
- /thread/{threadId}:
+ description: |
+ returns summary information about a thread, including the posts in a thread
+ /{slug}:
uriParameters:
- threadId:
- displayName: Thread ID
+ slug:
+ displayName: Slug
type: string
- example: f78b98a0
-
+ example: 9133
get:
description: |
- returns summary information about a thread, including the posts in a thread
- /{slug}:
- uriParameters:
- slug:
- displayName: Slug
- type: string
- example: 9133
- get:
- description: |
- returns detailed information about a post
- /reply:
- description: |
- create a threaded reply to the given post
- post:
- body:
- application/x-www-form-urlencoded:
- formParameters:
- text:
- description: the text of the reply
- example: |
- I *agree* with you.
- required: true
- type: string
- /new:
+ returns detailed information about a post
+ /reply:
description: |
- create a post in the given thread
+ create a threaded reply to the given post
post:
body:
application/x-www-form-urlencoded:
formParameters:
text:
- description: The text of the new post
+ description: the text of the reply
example: |
- This is a new post!
+ I *agree* with you.
required: true
type: string
-
+ /new:
+ description: |
+ create a post in the given thread
+ post:
+ body:
+ application/x-www-form-urlencoded:
+ formParameters:
+ text:
+ description: The text of the new post
+ example: |
+ This is a new post!
+ required: true
+ type: string
+
/search:
type: {
searchableCollection: {
@@ -381,12 +425,13 @@ baseUriParameters:
}
}
is: [ pageable]
-
+
/new:
description: |
Creates a new ticket.
post:
body:
+ # FIXME?
application/x-www-form-urlencoded:
formParameters:
access_token:
@@ -417,13 +462,13 @@ baseUriParameters:
description: custom field value
type: string
required: false
-
+
/{ticketNumber}:
type: {
tool: {
example: !include examples/ticket.json,
schema: !include schemas/ticket.json
-
+
}
}
displayName: Ticket Number
@@ -432,14 +477,15 @@ baseUriParameters:
example: 1
description: |
Get a details of a ticket.
-
+
/save:
description: |
updates an existing ticket
parameters are the same as /rest/p/project_name/mount_point/new
-
+
post:
body:
+ # form?
application/x-www-form-urlencoded:
formParameters:
access_token:
@@ -470,22 +516,31 @@ baseUriParameters:
description: custom field value
type: string
required: false
-
+
/has_access:
type: permission
-
-
+ get:
+ queryParameters:
+ perm:
+ displayName: Permission
+ required: true
+ type: string
+ example: post
+ default: read
+ enum: [admin, configure, moderate, post, unmoderated_post, read, create, delete, update, save_searches]
+
+
/admin:
description: |
Endpoints for **project exporting** and managing **webhooks**
-
+
/export:
description: |
Generates a full bulk export of your tool(s) in the same format as the API for individual access. Authentication required. Here is an [example shell](https://forge-allura.apache.org/p/allura/git/ci/master/tree/scripts/project_export) script using these APIs, suitable to run as a cron job.
post:
description: |
Submits an export job
-
+
**400 Bad Request:** tools parameter not provided or is invalid
**503 Service Unavailable:** an export job is already running
**200 OK:** job submitted. Body will be: *{"status": "in progress", "filename": FILENAME}*
@@ -495,7 +550,7 @@ baseUriParameters:
get:
description: |
Returns status: busy or ready
-
+
/{project}/webhooks:
type: {
typedCollection: {
@@ -506,10 +561,10 @@ baseUriParameters:
is: [secured]
description: |
This is to manage webhooks programatically. See the [Webhook docs](https://forge-allura.apache.org/p/allura/wiki/Webhooks/) for more information.
-
+
The webhook payloads and signature verification method are documented at https://forge-allura.apache.org/p/allura/wiki/Webhooks/
-
-
+
+
/{type}:
uriParameters:
type:
@@ -534,7 +589,7 @@ baseUriParameters:
type: string
description: |
Unique identifier for a webhook.
-
+
get:
description: |
View a webhook
@@ -552,7 +607,7 @@ baseUriParameters:
secret:
description: |
Optionally supply your own secret.
-
+
Note: DO NOT ever expose your secret!
required: false
type: string
@@ -562,7 +617,7 @@ baseUriParameters:
/install_tool:
description: |
Adds a new tool to the project. *Authentication Required*.
-
+
returns dict with two fields:
success: False if error is occurred, otherwise True
info: success or error message
@@ -594,24 +649,24 @@ baseUriParameters:
required: false
description: |
"first", "last", or "alpha_tool" for position with respect to existing tools (or existing tools of the same type for "alpha_tool")
-
- /{username}:
- description: |
- Represents a user (returns a project-like response).
-
- Most often you'll use the /profile suffix to return user data.
- type: {
- tool:{
- example: !include examples/user.json,
- schema: !include schemas/user.json
- }
- }
- /profile:
- description: |
- A user profile
- type: {
- tool:{
- example: !include examples/userProfile.json,
- schema: !include schemas/userProfile.json
- }
- }
\ No newline at end of file
+
+/u/{username}:
+ description: |
+ Represents a user (returns a project-like response).
+
+ Most often you'll use the /profile suffix to return user data.
+ type: {
+ tool:{
+ example: !include examples/user.json,
+ schema: !include schemas/user.json
+ }
+ }
+ /profile:
+ description: |
+ A user profile
+ type: {
+ tool:{
+ example: !include examples/userProfile.json,
+ schema: !include schemas/userProfile.json
+ }
+ }
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/allura/blob/0e133c5d/Allura/docs/api-rest/resourceTypes.yaml
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/resourceTypes.yaml b/Allura/docs/api-rest/resourceTypes.yaml
index 10dcb53..1f7b9f8 100755
--- a/Allura/docs/api-rest/resourceTypes.yaml
+++ b/Allura/docs/api-rest/resourceTypes.yaml
@@ -64,36 +64,7 @@
body:
application/json:
schema: <<schema>>
- delete?:
-- permissionCheck:
- description: |
- This is API to run permission checks.
- It is available on a neighborhood, project and tool level.
-
- This is only available to users that have 'admin' permission for corresponding neighborhood/project/tool.
- It requires user and perm parameters and will return JSON dict with result key, which contains boolean value,
- indicating if given user has perm permission to the neighborhood/project/tool.
- get:
- queryParameters:
- user:
- type: string
- example: heiths
- required: true
- description: The username to check
- perm:
- displayName: Permission
- required: true
- type: string
- example: create
- default: read
- enum: ["read", "admin", "create", "update"]
- description: |
- Get permissions for <<resourcePathName>>.
- responses:
- 200:
- body:
- application/json:
- schema: <<schemaItem>>
+ delete?:
- searchableCollection:
get:
queryParameters:
@@ -147,4 +118,3 @@
application/json:
schema: <<schema>>
-
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/allura/blob/0e133c5d/Allura/docs/api-rest/traits.yaml
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/traits.yaml b/Allura/docs/api-rest/traits.yaml
index d483810..c1f47c5 100755
--- a/Allura/docs/api-rest/traits.yaml
+++ b/Allura/docs/api-rest/traits.yaml
@@ -50,15 +50,15 @@
- permissionTestable:
description: |
**Endpoints**
- Permissions can be checked at three levels:
+ Permissions can be checked at three levels:
1. **Neighborhood:** `/rest/p/has_access`
2. **Project:** `/rest/p/project_name/has_access`
3. **Tool:** `/rest/p/project_name/mount_point/has_access`
-
- ---
-
+
+ ---
+
It is only available to users that have 'admin' permission for corresponding neighborhood/project/tool. It requires user and perm parameters and will return JSON dict with result key, which contains boolean value, indicating if given user has perm permission to the neighborhood/project/tool.
-
+
E.g.:
**GET** `/rest/p/test/wiki/has_access?user=admin1&perm=create`
*returns* { result: true }
@@ -70,11 +70,4 @@
type: string
example: heiths
required: true
- description: The username to check
- perm:
- displayName: Permission
- required: true
- type: string
- example: create
- default: read
- enum: ["read", "admin", "create", "update"]
\ No newline at end of file
+ description: The username to check
\ No newline at end of file
[09/11] allura git commit: [#6797] remove unused traits. Change
examples in 'pageable' since it was starting on page 2 isn't very helpful :)
Posted by br...@apache.org.
[#6797] remove unused traits. Change examples in 'pageable' since it was starting on page 2 isn't very helpful :)
Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/7b4eb92b
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/7b4eb92b
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/7b4eb92b
Branch: refs/heads/db/6797
Commit: 7b4eb92b19fe22257b2bd301df9c3c5bbe4766f4
Parents: 8eac69c
Author: Dave Brondsema <da...@brondsema.net>
Authored: Thu Aug 13 14:40:13 2015 -0400
Committer: Dave Brondsema <da...@brondsema.net>
Committed: Thu Aug 13 14:40:13 2015 -0400
----------------------------------------------------------------------
Allura/docs/api-rest/traits.yaml | 16 ++++------------
1 file changed, 4 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/allura/blob/7b4eb92b/Allura/docs/api-rest/traits.yaml
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/traits.yaml b/Allura/docs/api-rest/traits.yaml
index 40b39e3..2b45b71 100755
--- a/Allura/docs/api-rest/traits.yaml
+++ b/Allura/docs/api-rest/traits.yaml
@@ -20,25 +20,17 @@
- pageable:
queryParameters:
page:
- description: Skip over a number of elements by specifying an offset value for the query
+ description: Skip over a number of elements by specifying a starting page
type: integer
required: false
- example: 2
+ example: 0
default: 0
limit:
- description: Limit the number of elements on the response
+ description: Limit the number of elements on the response "page"
type: integer
required: false
- example: 5
+ example: 10
default: 10
-- paged:
- queryParameters:
- numPages:
- description: The number of pages to return
-- rateLimited:
- queryParameters:
- numPages:
- description: The number of pages to return, not to exceed <<maxPages>>
- permissionTestable:
description: |
**Endpoints**
[08/11] allura git commit: [#6797] remove unused baseTool type.
Webhooks collection (only one) doesn't let you POST at the collection level
Posted by br...@apache.org.
[#6797] remove unused baseTool type. Webhooks collection (only one) doesn't let you POST at the collection level
Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/8eac69c1
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/8eac69c1
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/8eac69c1
Branch: refs/heads/db/6797
Commit: 8eac69c1bd5684cc64ffe8ef0f06fc24d6cfcd28
Parents: ecd0e4a
Author: Dave Brondsema <da...@brondsema.net>
Authored: Thu Aug 13 14:29:54 2015 -0400
Committer: Dave Brondsema <da...@brondsema.net>
Committed: Thu Aug 13 14:29:54 2015 -0400
----------------------------------------------------------------------
Allura/docs/api-rest/api.raml | 6 +++---
Allura/docs/api-rest/resourceTypes.yaml | 22 +---------------------
2 files changed, 4 insertions(+), 24 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/allura/blob/8eac69c1/Allura/docs/api-rest/api.raml
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/api.raml b/Allura/docs/api-rest/api.raml
index dfedf35..2d9b211 100755
--- a/Allura/docs/api-rest/api.raml
+++ b/Allura/docs/api-rest/api.raml
@@ -216,7 +216,6 @@ baseUriParameters:
Creates a new ticket.
post:
body:
- # FIXME?
application/x-www-form-urlencoded:
formParameters:
access_token:
@@ -269,7 +268,6 @@ baseUriParameters:
post:
body:
- # form?
application/x-www-form-urlencoded:
formParameters:
access_token:
@@ -543,7 +541,9 @@ baseUriParameters:
This is to manage webhooks programatically. See the [Webhook docs](https://forge-allura.apache.org/p/allura/wiki/Webhooks/) for more information.
The webhook payloads and signature verification method are documented at https://forge-allura.apache.org/p/allura/wiki/Webhooks/
-
+ get:
+ description: |
+ Returns the list of webhooks
/{type}:
uriParameters:
http://git-wip-us.apache.org/repos/asf/allura/blob/8eac69c1/Allura/docs/api-rest/resourceTypes.yaml
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/resourceTypes.yaml b/Allura/docs/api-rest/resourceTypes.yaml
index 4bb176f..4218464 100755
--- a/Allura/docs/api-rest/resourceTypes.yaml
+++ b/Allura/docs/api-rest/resourceTypes.yaml
@@ -1,6 +1,6 @@
- base:
get?:
- responses: &standardResponses
+ responses: &standardResponses # yaml syntax to alias properties
200:
description: OK
put?:
@@ -13,22 +13,10 @@
description: Created
delete?:
responses: *standardResponses
-- baseTool:
- get?:
- responses:
- 200:
- description: OK
- post?:
- responses:
- 201:
- description: Created
- delete?:
- responses: *standardResponses
- collection:
type: base
get:
is: [ pageable ]
- post:
- member:
type: base
get?:
@@ -85,14 +73,6 @@
application/json:
schema: <<schema>>
example: <<example>>
- post:
- body:
- application/json:
- responses:
- 201:
- body:
- application/json:
- schema: <<schema>>
- permission:
description: |
Checks if a given user has permissions.
[03/11] allura git commit: [#6797] apply security globally;
put bearer token option in even though it doesn't do much;
remove trait (although it might be a good option to bring back)
Posted by br...@apache.org.
[#6797] apply security globally; put bearer token option in even though it doesn't do much; remove trait (although it might be a good option to bring back)
Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/56601401
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/56601401
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/56601401
Branch: refs/heads/db/6797
Commit: 56601401638a181d13ad78376254695d29f94f97
Parents: 0e133c5
Author: Dave Brondsema <da...@brondsema.net>
Authored: Mon Aug 10 17:40:06 2015 -0400
Committer: Dave Brondsema <da...@brondsema.net>
Committed: Tue Aug 11 12:03:51 2015 -0400
----------------------------------------------------------------------
Allura/docs/api-rest/api.raml | 3 ++-
Allura/docs/api-rest/resourceTypes.yaml | 1 -
Allura/docs/api-rest/securitySchemes.yaml | 25 +++++++++++++++++++++++--
Allura/docs/api-rest/traits.yaml | 8 --------
4 files changed, 25 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/allura/blob/56601401/Allura/docs/api-rest/api.raml
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/api.raml b/Allura/docs/api-rest/api.raml
index 749e321..6f040e7 100755
--- a/Allura/docs/api-rest/api.raml
+++ b/Allura/docs/api-rest/api.raml
@@ -3,6 +3,7 @@
title: Apache Allura
version: 1
baseUri: https://{domain}/rest
+securedBy: [null, oauth_1_0, oauth_bearer_token]
resourceTypes: !include resourceTypes.yaml
traits: !include traits.yaml
@@ -15,6 +16,7 @@ baseUriParameters:
default: "forge-allura.apache.org"
+
/{neighborhood}:
description: |
Neighborhoods are groups of logically related projects, which have the same default options.
@@ -558,7 +560,6 @@ baseUriParameters:
schema: !include schemas/webhook.json
}
}
- is: [secured]
description: |
This is to manage webhooks programatically. See the [Webhook docs](https://forge-allura.apache.org/p/allura/wiki/Webhooks/) for more information.
http://git-wip-us.apache.org/repos/asf/allura/blob/56601401/Allura/docs/api-rest/resourceTypes.yaml
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/resourceTypes.yaml b/Allura/docs/api-rest/resourceTypes.yaml
index 1f7b9f8..4bb176f 100755
--- a/Allura/docs/api-rest/resourceTypes.yaml
+++ b/Allura/docs/api-rest/resourceTypes.yaml
@@ -94,7 +94,6 @@
application/json:
schema: <<schema>>
- permission:
- securedBy: [null, oauth_1_0]
description: |
Checks if a given user has permissions.
get:
http://git-wip-us.apache.org/repos/asf/allura/blob/56601401/Allura/docs/api-rest/securitySchemes.yaml
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/securitySchemes.yaml b/Allura/docs/api-rest/securitySchemes.yaml
index a7927cc..c4bdd06 100755
--- a/Allura/docs/api-rest/securitySchemes.yaml
+++ b/Allura/docs/api-rest/securitySchemes.yaml
@@ -4,5 +4,26 @@
type: OAuth 1.0
settings:
requestTokenUri: https://forge-allura.apache.org/rest/oauth/request_token
- authorizationUri: https://forge-allura.apache.org/rest/oauth/authorize
- tokenCredentialsUri: https://forge-allura.apache.org/rest/oauth/access_token
\ No newline at end of file
+ authorizationUri: /rest/oauth/authorize
+ tokenCredentialsUri: /rest/oauth/access_token
+
+- oauth_bearer_token:
+ description: |
+ A bearer token (aka access token) may be generated at https://forge-allura.apache.org/auth/oauth/ for simple
+ authorization via URL parameter or HTTP header.
+ type: x-OAuth-Bearer-Token
+ describedBy:
+ headers:
+ Authorization:
+ description: |
+ Used to send a bearer token. Use either this or
+ the "access_token" query string parameter.
+ type: string
+ queryParameters:
+ access_token:
+ description: |
+ Used to send a bearer token. Use either this or
+ the "Authorization" header
+ type: string
+ settings:
+ authorizationUri: https://forge-allura.apache.org//auth/oauth/
http://git-wip-us.apache.org/repos/asf/allura/blob/56601401/Allura/docs/api-rest/traits.yaml
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/traits.yaml b/Allura/docs/api-rest/traits.yaml
index c1f47c5..40b39e3 100755
--- a/Allura/docs/api-rest/traits.yaml
+++ b/Allura/docs/api-rest/traits.yaml
@@ -35,14 +35,6 @@
queryParameters:
numPages:
description: The number of pages to return
-- secured:
- displayName: secured
- headers:
- Authorization:
- description: The auth token for this request
- responses:
- 401:
- description: Unauthorized
- rateLimited:
queryParameters:
numPages:
[10/11] allura git commit: [#6797] no PUT to project
Posted by br...@apache.org.
[#6797] no PUT to project
Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/56d8d389
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/56d8d389
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/56d8d389
Branch: refs/heads/db/6797
Commit: 56d8d3892d4b1a021b2c24cd81c2f30fa35832e1
Parents: 7b4eb92
Author: Dave Brondsema <da...@brondsema.net>
Authored: Thu Aug 13 16:00:14 2015 -0400
Committer: Dave Brondsema <da...@brondsema.net>
Committed: Thu Aug 13 16:00:14 2015 -0400
----------------------------------------------------------------------
Allura/docs/api-rest/resourceTypes.yaml | 10 +---------
1 file changed, 1 insertion(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/allura/blob/56d8d389/Allura/docs/api-rest/resourceTypes.yaml
----------------------------------------------------------------------
diff --git a/Allura/docs/api-rest/resourceTypes.yaml b/Allura/docs/api-rest/resourceTypes.yaml
index 4218464..7d38d3f 100755
--- a/Allura/docs/api-rest/resourceTypes.yaml
+++ b/Allura/docs/api-rest/resourceTypes.yaml
@@ -87,13 +87,5 @@
application/json:
schema: <<schema>>
example: <<example>>
- put:
- body:
- application/json:
- schema: <<schema>>
- responses:
- 200:
- body:
- application/json:
- schema: <<schema>>
+