root / docs / project-api-guide.rst @ a1d0bacb
History | View | Annotate | Download (12 kB)
1 | 2556cf45 | Giorgos Korfiatis | Projects |
---|---|---|---|
2 | 2556cf45 | Giorgos Korfiatis | -------- |
3 | 2556cf45 | Giorgos Korfiatis | |
4 | 2556cf45 | Giorgos Korfiatis | Astakos allows users to create *projects*. Through a project, one can ask for |
5 | 2556cf45 | Giorgos Korfiatis | additional resources on the virtual infrastructure for a certain amount of |
6 | 2556cf45 | Giorgos Korfiatis | time. All users admitted to the project gain access to these resources. |
7 | 2556cf45 | Giorgos Korfiatis | |
8 | 2556cf45 | Giorgos Korfiatis | |
9 | 2556cf45 | Giorgos Korfiatis | Retrieve List of Projects |
10 | 2556cf45 | Giorgos Korfiatis | ......................... |
11 | 2556cf45 | Giorgos Korfiatis | |
12 | 2556cf45 | Giorgos Korfiatis | **GET** /account/v1.0/projects |
13 | 2556cf45 | Giorgos Korfiatis | |
14 | 2556cf45 | Giorgos Korfiatis | Returns all accessible projects. See below. |
15 | 2556cf45 | Giorgos Korfiatis | |
16 | 2556cf45 | Giorgos Korfiatis | ==================== ========================= |
17 | 2556cf45 | Giorgos Korfiatis | Request Header Name Value |
18 | 2556cf45 | Giorgos Korfiatis | ==================== ========================= |
19 | 2556cf45 | Giorgos Korfiatis | X-Auth-Token User authentication token |
20 | 2556cf45 | Giorgos Korfiatis | ==================== ========================= |
21 | 2556cf45 | Giorgos Korfiatis | |
22 | 2556cf45 | Giorgos Korfiatis | Request can specify a filter. |
23 | 2556cf45 | Giorgos Korfiatis | |
24 | 2556cf45 | Giorgos Korfiatis | **Example Request**: |
25 | 2556cf45 | Giorgos Korfiatis | |
26 | 2556cf45 | Giorgos Korfiatis | .. code-block:: javascript |
27 | 2556cf45 | Giorgos Korfiatis | |
28 | 2556cf45 | Giorgos Korfiatis | { |
29 | 2556cf45 | Giorgos Korfiatis | "filter": { |
30 | 2556cf45 | Giorgos Korfiatis | "state": ["active", "suspended"], |
31 | 2556cf45 | Giorgos Korfiatis | "owner": [uuid] |
32 | 2556cf45 | Giorgos Korfiatis | } |
33 | 2556cf45 | Giorgos Korfiatis | } |
34 | 2556cf45 | Giorgos Korfiatis | |
35 | 2556cf45 | Giorgos Korfiatis | **Response Codes**: |
36 | 2556cf45 | Giorgos Korfiatis | |
37 | 2556cf45 | Giorgos Korfiatis | ====== ===================== |
38 | 2556cf45 | Giorgos Korfiatis | Status Description |
39 | 2556cf45 | Giorgos Korfiatis | ====== ===================== |
40 | 2556cf45 | Giorgos Korfiatis | 200 Success |
41 | 2556cf45 | Giorgos Korfiatis | 400 Bad Request |
42 | 2556cf45 | Giorgos Korfiatis | 401 Unauthorized (Missing token) |
43 | 2556cf45 | Giorgos Korfiatis | 500 Internal Server Error |
44 | 2556cf45 | Giorgos Korfiatis | ====== ===================== |
45 | 2556cf45 | Giorgos Korfiatis | |
46 | 2556cf45 | Giorgos Korfiatis | **Example Successful Response**: |
47 | 2556cf45 | Giorgos Korfiatis | |
48 | 2556cf45 | Giorgos Korfiatis | List of project details. See below. |
49 | 2556cf45 | Giorgos Korfiatis | |
50 | 2556cf45 | Giorgos Korfiatis | Retrieve a Project |
51 | 2556cf45 | Giorgos Korfiatis | .................. |
52 | 2556cf45 | Giorgos Korfiatis | |
53 | 2556cf45 | Giorgos Korfiatis | **GET** /account/v1.0/projects/<proj_id> |
54 | 2556cf45 | Giorgos Korfiatis | |
55 | 2556cf45 | Giorgos Korfiatis | ==================== ========================= |
56 | 2556cf45 | Giorgos Korfiatis | Request Header Name Value |
57 | 2556cf45 | Giorgos Korfiatis | ==================== ========================= |
58 | 2556cf45 | Giorgos Korfiatis | X-Auth-Token User authentication token |
59 | 2556cf45 | Giorgos Korfiatis | ==================== ========================= |
60 | 2556cf45 | Giorgos Korfiatis | |
61 | 2556cf45 | Giorgos Korfiatis | A project is accessible when the request user is admin, project owner, |
62 | 2556cf45 | Giorgos Korfiatis | applicant or member, or the project is active. |
63 | 2556cf45 | Giorgos Korfiatis | |
64 | 2556cf45 | Giorgos Korfiatis | **Response Codes**: |
65 | 2556cf45 | Giorgos Korfiatis | |
66 | 2556cf45 | Giorgos Korfiatis | ====== ============================ |
67 | 2556cf45 | Giorgos Korfiatis | Status Description |
68 | 2556cf45 | Giorgos Korfiatis | ====== ============================ |
69 | 2556cf45 | Giorgos Korfiatis | 200 Success |
70 | 2556cf45 | Giorgos Korfiatis | 401 Unauthorized (Missing token) |
71 | 2556cf45 | Giorgos Korfiatis | 403 Forbidden |
72 | 2556cf45 | Giorgos Korfiatis | 404 Not Found |
73 | 2556cf45 | Giorgos Korfiatis | 500 Internal Server Error |
74 | 2556cf45 | Giorgos Korfiatis | ====== ============================ |
75 | 2556cf45 | Giorgos Korfiatis | |
76 | 2556cf45 | Giorgos Korfiatis | **Example Successful Response**: |
77 | 2556cf45 | Giorgos Korfiatis | |
78 | 2556cf45 | Giorgos Korfiatis | .. code-block:: javascript |
79 | 2556cf45 | Giorgos Korfiatis | |
80 | 2556cf45 | Giorgos Korfiatis | { |
81 | 2556cf45 | Giorgos Korfiatis | "id": proj_id, |
82 | 2556cf45 | Giorgos Korfiatis | "application": app_id, |
83 | 2556cf45 | Giorgos Korfiatis | "state": "pending" | "active" | "denied" | "dismissed" | "cancelled" | "suspended" | "terminated", |
84 | 2556cf45 | Giorgos Korfiatis | "creation_date": "2013-06-26T11:48:06.579100+00:00", |
85 | 2556cf45 | Giorgos Korfiatis | "name": "name", |
86 | 2556cf45 | Giorgos Korfiatis | "owner": uuid, |
87 | 2556cf45 | Giorgos Korfiatis | "homepage": homepage or null, |
88 | 2556cf45 | Giorgos Korfiatis | "description": description or null, |
89 | 2556cf45 | Giorgos Korfiatis | "start_date": date, |
90 | 2556cf45 | Giorgos Korfiatis | "end_date": date, |
91 | 2556cf45 | Giorgos Korfiatis | "join_policy": "auto" | "moderated" | "closed", |
92 | 2556cf45 | Giorgos Korfiatis | "leave_policy": "auto" | "moderated" | "closed", |
93 | e98239db | Giorgos Korfiatis | "max_members": natural number |
94 | 2556cf45 | Giorgos Korfiatis | "resources": {"cyclades.vm": {"project_capacity": int or null, |
95 | 2556cf45 | Giorgos Korfiatis | "member_capacity": int |
96 | 2556cf45 | Giorgos Korfiatis | } |
97 | 2556cf45 | Giorgos Korfiatis | } |
98 | 2556cf45 | Giorgos Korfiatis | # only if request user is admin or project owner: |
99 | 2556cf45 | Giorgos Korfiatis | "comments": comments, |
100 | 2556cf45 | Giorgos Korfiatis | "pending_application": last pending app id or null, |
101 | 2556cf45 | Giorgos Korfiatis | "deactivation_date": date # if applicable |
102 | 2556cf45 | Giorgos Korfiatis | } |
103 | 2556cf45 | Giorgos Korfiatis | |
104 | 2556cf45 | Giorgos Korfiatis | Create a Project |
105 | 2556cf45 | Giorgos Korfiatis | ................ |
106 | 2556cf45 | Giorgos Korfiatis | |
107 | 2556cf45 | Giorgos Korfiatis | **POST** /account/v1.0/projects |
108 | 2556cf45 | Giorgos Korfiatis | |
109 | 2556cf45 | Giorgos Korfiatis | ==================== ========================= |
110 | 2556cf45 | Giorgos Korfiatis | Request Header Name Value |
111 | 2556cf45 | Giorgos Korfiatis | ==================== ========================= |
112 | 2556cf45 | Giorgos Korfiatis | X-Auth-Token User authentication token |
113 | 2556cf45 | Giorgos Korfiatis | ==================== ========================= |
114 | 2556cf45 | Giorgos Korfiatis | |
115 | 2556cf45 | Giorgos Korfiatis | **Example Request**: |
116 | 2556cf45 | Giorgos Korfiatis | |
117 | 2556cf45 | Giorgos Korfiatis | .. code-block:: javascript |
118 | 2556cf45 | Giorgos Korfiatis | |
119 | 2556cf45 | Giorgos Korfiatis | { |
120 | 2556cf45 | Giorgos Korfiatis | "name": name, |
121 | 2556cf45 | Giorgos Korfiatis | "owner": uuid, # if omitted, request user assumed |
122 | 2556cf45 | Giorgos Korfiatis | "homepage": homepage, # optional |
123 | 2556cf45 | Giorgos Korfiatis | "description": description, # optional |
124 | 2556cf45 | Giorgos Korfiatis | "comments": comments, # optional |
125 | 2556cf45 | Giorgos Korfiatis | "start_date": date, # optional |
126 | 2556cf45 | Giorgos Korfiatis | "end_date": date, |
127 | 2556cf45 | Giorgos Korfiatis | "join_policy": "auto" | "moderated" | "closed", # default: "moderated" |
128 | 2556cf45 | Giorgos Korfiatis | "leave_policy": "auto" | "moderated" | "closed", # default: "auto" |
129 | 2556cf45 | Giorgos Korfiatis | "resources": {"cyclades.vm": {"project_capacity": int or null, |
130 | 2556cf45 | Giorgos Korfiatis | "member_capacity": int |
131 | 2556cf45 | Giorgos Korfiatis | } |
132 | 2556cf45 | Giorgos Korfiatis | } |
133 | 2556cf45 | Giorgos Korfiatis | } |
134 | 2556cf45 | Giorgos Korfiatis | |
135 | 2556cf45 | Giorgos Korfiatis | **Response Codes**: |
136 | 2556cf45 | Giorgos Korfiatis | |
137 | 2556cf45 | Giorgos Korfiatis | ====== ============================ |
138 | 2556cf45 | Giorgos Korfiatis | Status Description |
139 | 2556cf45 | Giorgos Korfiatis | ====== ============================ |
140 | 2556cf45 | Giorgos Korfiatis | 201 Created |
141 | 2556cf45 | Giorgos Korfiatis | 400 Bad Request |
142 | 2556cf45 | Giorgos Korfiatis | 401 Unauthorized (Missing token) |
143 | 2556cf45 | Giorgos Korfiatis | 403 Forbidden |
144 | 2556cf45 | Giorgos Korfiatis | 409 Conflict |
145 | 2556cf45 | Giorgos Korfiatis | 500 Internal Server Error |
146 | 2556cf45 | Giorgos Korfiatis | ====== ============================ |
147 | 2556cf45 | Giorgos Korfiatis | |
148 | 2556cf45 | Giorgos Korfiatis | **Example Successful Response**: |
149 | 2556cf45 | Giorgos Korfiatis | |
150 | 2556cf45 | Giorgos Korfiatis | .. code-block:: javascript |
151 | 2556cf45 | Giorgos Korfiatis | |
152 | 2556cf45 | Giorgos Korfiatis | { |
153 | 2556cf45 | Giorgos Korfiatis | "id": project_id, |
154 | 2556cf45 | Giorgos Korfiatis | "application": application_id |
155 | 2556cf45 | Giorgos Korfiatis | } |
156 | 2556cf45 | Giorgos Korfiatis | |
157 | 2556cf45 | Giorgos Korfiatis | |
158 | 2556cf45 | Giorgos Korfiatis | Modify a Project |
159 | 2556cf45 | Giorgos Korfiatis | ................ |
160 | 2556cf45 | Giorgos Korfiatis | |
161 | 2556cf45 | Giorgos Korfiatis | **POST** /account/v1.0/projects/<proj_id> |
162 | 2556cf45 | Giorgos Korfiatis | |
163 | 2556cf45 | Giorgos Korfiatis | ==================== ========================= |
164 | 2556cf45 | Giorgos Korfiatis | Request Header Name Value |
165 | 2556cf45 | Giorgos Korfiatis | ==================== ========================= |
166 | 2556cf45 | Giorgos Korfiatis | X-Auth-Token User authentication token |
167 | 2556cf45 | Giorgos Korfiatis | ==================== ========================= |
168 | 2556cf45 | Giorgos Korfiatis | |
169 | 2556cf45 | Giorgos Korfiatis | |
170 | 2556cf45 | Giorgos Korfiatis | **Example Request**: |
171 | 2556cf45 | Giorgos Korfiatis | |
172 | 2556cf45 | Giorgos Korfiatis | As above. |
173 | 2556cf45 | Giorgos Korfiatis | |
174 | 2556cf45 | Giorgos Korfiatis | **Response Codes**: |
175 | 2556cf45 | Giorgos Korfiatis | |
176 | 2556cf45 | Giorgos Korfiatis | ====== ============================ |
177 | 2556cf45 | Giorgos Korfiatis | Status Description |
178 | 2556cf45 | Giorgos Korfiatis | ====== ============================ |
179 | 2556cf45 | Giorgos Korfiatis | 201 Created |
180 | 2556cf45 | Giorgos Korfiatis | 400 Bad Request |
181 | 2556cf45 | Giorgos Korfiatis | 401 Unauthorized (Missing token) |
182 | 2556cf45 | Giorgos Korfiatis | 403 Forbidden |
183 | 2556cf45 | Giorgos Korfiatis | 404 Not Found |
184 | 2556cf45 | Giorgos Korfiatis | 409 Conflict |
185 | 2556cf45 | Giorgos Korfiatis | 500 Internal Server Error |
186 | 2556cf45 | Giorgos Korfiatis | ====== ============================ |
187 | 2556cf45 | Giorgos Korfiatis | |
188 | 2556cf45 | Giorgos Korfiatis | **Example Successful Response**: |
189 | 2556cf45 | Giorgos Korfiatis | |
190 | 2556cf45 | Giorgos Korfiatis | As above. |
191 | 2556cf45 | Giorgos Korfiatis | |
192 | 2556cf45 | Giorgos Korfiatis | Take Action on a Project |
193 | 2556cf45 | Giorgos Korfiatis | ........................ |
194 | 2556cf45 | Giorgos Korfiatis | |
195 | 2556cf45 | Giorgos Korfiatis | **POST** /account/v1.0/projects/<proj_id>/action |
196 | 2556cf45 | Giorgos Korfiatis | |
197 | 2556cf45 | Giorgos Korfiatis | ==================== ========================= |
198 | 2556cf45 | Giorgos Korfiatis | Request Header Name Value |
199 | 2556cf45 | Giorgos Korfiatis | ==================== ========================= |
200 | 2556cf45 | Giorgos Korfiatis | X-Auth-Token User authentication token |
201 | 2556cf45 | Giorgos Korfiatis | ==================== ========================= |
202 | 2556cf45 | Giorgos Korfiatis | |
203 | 2556cf45 | Giorgos Korfiatis | **Example Request**: |
204 | 2556cf45 | Giorgos Korfiatis | |
205 | 2556cf45 | Giorgos Korfiatis | .. code-block:: javascript |
206 | 2556cf45 | Giorgos Korfiatis | |
207 | 2556cf45 | Giorgos Korfiatis | { |
208 | 2556cf45 | Giorgos Korfiatis | <action>: "reason" |
209 | 2556cf45 | Giorgos Korfiatis | } |
210 | 2556cf45 | Giorgos Korfiatis | |
211 | 2556cf45 | Giorgos Korfiatis | <action> can be: "suspend", "unsuspend", "terminate", "reinstate" |
212 | 2556cf45 | Giorgos Korfiatis | |
213 | 2556cf45 | Giorgos Korfiatis | **Response Codes**: |
214 | 2556cf45 | Giorgos Korfiatis | |
215 | 2556cf45 | Giorgos Korfiatis | ====== ============================ |
216 | 2556cf45 | Giorgos Korfiatis | Status Description |
217 | 2556cf45 | Giorgos Korfiatis | ====== ============================ |
218 | 2556cf45 | Giorgos Korfiatis | 200 Success |
219 | 2556cf45 | Giorgos Korfiatis | 400 Bad Request |
220 | 2556cf45 | Giorgos Korfiatis | 401 Unauthorized (Missing token) |
221 | 2556cf45 | Giorgos Korfiatis | 403 Forbidden |
222 | 2556cf45 | Giorgos Korfiatis | 404 Not Found |
223 | 2556cf45 | Giorgos Korfiatis | 409 Conflict |
224 | 2556cf45 | Giorgos Korfiatis | 500 Internal Server Error |
225 | 2556cf45 | Giorgos Korfiatis | ====== ============================ |
226 | 2556cf45 | Giorgos Korfiatis | |
227 | 2556cf45 | Giorgos Korfiatis | Retrieve List of Applications |
228 | 2556cf45 | Giorgos Korfiatis | ............................. |
229 | 2556cf45 | Giorgos Korfiatis | |
230 | 2556cf45 | Giorgos Korfiatis | **GET** /account/v1.0/projects/apps |
231 | 2556cf45 | Giorgos Korfiatis | |
232 | 2556cf45 | Giorgos Korfiatis | ==================== ========================= |
233 | 2556cf45 | Giorgos Korfiatis | Request Header Name Value |
234 | 2556cf45 | Giorgos Korfiatis | ==================== ========================= |
235 | 2556cf45 | Giorgos Korfiatis | X-Auth-Token User authentication token |
236 | 2556cf45 | Giorgos Korfiatis | ==================== ========================= |
237 | 2556cf45 | Giorgos Korfiatis | |
238 | 2556cf45 | Giorgos Korfiatis | Get all accessible applications. See below. |
239 | 2556cf45 | Giorgos Korfiatis | |
240 | 2556cf45 | Giorgos Korfiatis | **Example optional request** |
241 | 2556cf45 | Giorgos Korfiatis | |
242 | 2556cf45 | Giorgos Korfiatis | .. code-block:: javascript |
243 | 2556cf45 | Giorgos Korfiatis | |
244 | 2556cf45 | Giorgos Korfiatis | { |
245 | 2556cf45 | Giorgos Korfiatis | "project": <project_id> |
246 | 2556cf45 | Giorgos Korfiatis | } |
247 | 2556cf45 | Giorgos Korfiatis | |
248 | 2556cf45 | Giorgos Korfiatis | **Response Codes**: |
249 | 2556cf45 | Giorgos Korfiatis | |
250 | 2556cf45 | Giorgos Korfiatis | ====== ============================ |
251 | 2556cf45 | Giorgos Korfiatis | Status Description |
252 | 2556cf45 | Giorgos Korfiatis | ====== ============================ |
253 | 2556cf45 | Giorgos Korfiatis | 200 Success |
254 | 2556cf45 | Giorgos Korfiatis | 400 Bad Request |
255 | 2556cf45 | Giorgos Korfiatis | 401 Unauthorized (Missing token) |
256 | 2556cf45 | Giorgos Korfiatis | 500 Internal Server Error |
257 | 2556cf45 | Giorgos Korfiatis | ====== ============================ |
258 | 2556cf45 | Giorgos Korfiatis | |
259 | 2556cf45 | Giorgos Korfiatis | **Example Successful Response**: |
260 | 2556cf45 | Giorgos Korfiatis | |
261 | 2556cf45 | Giorgos Korfiatis | List of application details. See below. |
262 | 2556cf45 | Giorgos Korfiatis | |
263 | 2556cf45 | Giorgos Korfiatis | Retrieve an Application |
264 | 2556cf45 | Giorgos Korfiatis | ....................... |
265 | 2556cf45 | Giorgos Korfiatis | |
266 | 2556cf45 | Giorgos Korfiatis | **GET** /account/v1.0/projects/apps/<app_id> |
267 | 2556cf45 | Giorgos Korfiatis | |
268 | 2556cf45 | Giorgos Korfiatis | ==================== ========================= |
269 | 2556cf45 | Giorgos Korfiatis | Request Header Name Value |
270 | 2556cf45 | Giorgos Korfiatis | ==================== ========================= |
271 | 2556cf45 | Giorgos Korfiatis | X-Auth-Token User authentication token |
272 | 2556cf45 | Giorgos Korfiatis | ==================== ========================= |
273 | 2556cf45 | Giorgos Korfiatis | |
274 | 2556cf45 | Giorgos Korfiatis | An application is accessible when the request user is admin or the |
275 | 2556cf45 | Giorgos Korfiatis | application owner/applicant. |
276 | 2556cf45 | Giorgos Korfiatis | |
277 | 2556cf45 | Giorgos Korfiatis | **Response Codes**: |
278 | 2556cf45 | Giorgos Korfiatis | |
279 | 2556cf45 | Giorgos Korfiatis | ====== ============================ |
280 | 2556cf45 | Giorgos Korfiatis | Status Description |
281 | 2556cf45 | Giorgos Korfiatis | ====== ============================ |
282 | 2556cf45 | Giorgos Korfiatis | 200 Success |
283 | 2556cf45 | Giorgos Korfiatis | 401 Unauthorized (Missing token) |
284 | 2556cf45 | Giorgos Korfiatis | 403 Forbidden |
285 | 2556cf45 | Giorgos Korfiatis | 404 Not Found |
286 | 2556cf45 | Giorgos Korfiatis | 500 Internal Server Error |
287 | 2556cf45 | Giorgos Korfiatis | ====== ============================ |
288 | 2556cf45 | Giorgos Korfiatis | |
289 | 2556cf45 | Giorgos Korfiatis | **Example Successful Response** |
290 | 2556cf45 | Giorgos Korfiatis | |
291 | 2556cf45 | Giorgos Korfiatis | .. code-block:: javascript |
292 | 2556cf45 | Giorgos Korfiatis | |
293 | 2556cf45 | Giorgos Korfiatis | { |
294 | 2556cf45 | Giorgos Korfiatis | "id": app_id, |
295 | 2556cf45 | Giorgos Korfiatis | "project": project_id, |
296 | 2556cf45 | Giorgos Korfiatis | "state": "pending" | "approved" | "replaced" | "denied" | "dismissed" | "cancelled", |
297 | 2556cf45 | Giorgos Korfiatis | "name": "name", |
298 | 2556cf45 | Giorgos Korfiatis | "owner": uuid, |
299 | 2556cf45 | Giorgos Korfiatis | "applicant": uuid, |
300 | 2556cf45 | Giorgos Korfiatis | "homepage": homepage or null, |
301 | 2556cf45 | Giorgos Korfiatis | "description": description or null, |
302 | 2556cf45 | Giorgos Korfiatis | "start_date": date, |
303 | 2556cf45 | Giorgos Korfiatis | "end_date": date, |
304 | 2556cf45 | Giorgos Korfiatis | "join_policy": "auto" | "moderated" | "closed", |
305 | 2556cf45 | Giorgos Korfiatis | "leave_policy": "auto" | "moderated" | "closed", |
306 | 2556cf45 | Giorgos Korfiatis | "max_members": int or null |
307 | 2556cf45 | Giorgos Korfiatis | "comments": comments, |
308 | 2556cf45 | Giorgos Korfiatis | "resources": {"cyclades.vm": {"project_capacity": int or null, |
309 | 2556cf45 | Giorgos Korfiatis | "member_capacity": int |
310 | 2556cf45 | Giorgos Korfiatis | } |
311 | 2556cf45 | Giorgos Korfiatis | } |
312 | 2556cf45 | Giorgos Korfiatis | } |
313 | 2556cf45 | Giorgos Korfiatis | |
314 | 2556cf45 | Giorgos Korfiatis | Take Action on an Application |
315 | 2556cf45 | Giorgos Korfiatis | ............................. |
316 | 2556cf45 | Giorgos Korfiatis | |
317 | 2556cf45 | Giorgos Korfiatis | **POST** /account/v1.0/projects/apps/<app_id>/action |
318 | 2556cf45 | Giorgos Korfiatis | |
319 | 2556cf45 | Giorgos Korfiatis | ==================== ============================ |
320 | 2556cf45 | Giorgos Korfiatis | Request Header Name Value |
321 | 2556cf45 | Giorgos Korfiatis | ==================== ============================ |
322 | 2556cf45 | Giorgos Korfiatis | X-Auth-Token User authentication token |
323 | 2556cf45 | Giorgos Korfiatis | ==================== ============================ |
324 | 2556cf45 | Giorgos Korfiatis | |
325 | 2556cf45 | Giorgos Korfiatis | **Example Request**: |
326 | 2556cf45 | Giorgos Korfiatis | |
327 | 2556cf45 | Giorgos Korfiatis | .. code-block:: javascript |
328 | 2556cf45 | Giorgos Korfiatis | |
329 | 2556cf45 | Giorgos Korfiatis | { |
330 | 2556cf45 | Giorgos Korfiatis | <action>: "reason" |
331 | 2556cf45 | Giorgos Korfiatis | } |
332 | 2556cf45 | Giorgos Korfiatis | |
333 | 2556cf45 | Giorgos Korfiatis | <action> can be one of "approve", "deny", "dismiss", "cancel". |
334 | 2556cf45 | Giorgos Korfiatis | |
335 | 2556cf45 | Giorgos Korfiatis | **Response Codes**: |
336 | 2556cf45 | Giorgos Korfiatis | |
337 | 2556cf45 | Giorgos Korfiatis | ====== ============================ |
338 | 2556cf45 | Giorgos Korfiatis | Status Description |
339 | 2556cf45 | Giorgos Korfiatis | ====== ============================ |
340 | 2556cf45 | Giorgos Korfiatis | 200 Success |
341 | 2556cf45 | Giorgos Korfiatis | 400 Bad Request |
342 | 2556cf45 | Giorgos Korfiatis | 401 Unauthorized (Missing token) |
343 | 2556cf45 | Giorgos Korfiatis | 403 Forbidden |
344 | 2556cf45 | Giorgos Korfiatis | 404 Not Found |
345 | 2556cf45 | Giorgos Korfiatis | 409 Conflict |
346 | 2556cf45 | Giorgos Korfiatis | 500 Internal Server Error |
347 | 2556cf45 | Giorgos Korfiatis | ====== ============================ |
348 | 2556cf45 | Giorgos Korfiatis | |
349 | 2556cf45 | Giorgos Korfiatis | Retrieve List of Memberships |
350 | 2556cf45 | Giorgos Korfiatis | ............................ |
351 | 2556cf45 | Giorgos Korfiatis | |
352 | 2556cf45 | Giorgos Korfiatis | **GET** /account/v1.0/projects/memberships |
353 | 2556cf45 | Giorgos Korfiatis | |
354 | 2556cf45 | Giorgos Korfiatis | ==================== ============================ |
355 | 2556cf45 | Giorgos Korfiatis | Request Header Name Value |
356 | 2556cf45 | Giorgos Korfiatis | ==================== ============================ |
357 | 2556cf45 | Giorgos Korfiatis | X-Auth-Token User authentication token |
358 | 2556cf45 | Giorgos Korfiatis | ==================== ============================ |
359 | 2556cf45 | Giorgos Korfiatis | |
360 | 2556cf45 | Giorgos Korfiatis | Get all accessible memberships. See below. |
361 | 2556cf45 | Giorgos Korfiatis | |
362 | 2556cf45 | Giorgos Korfiatis | **Example Optional Request** |
363 | 2556cf45 | Giorgos Korfiatis | |
364 | 2556cf45 | Giorgos Korfiatis | .. code-block:: javascript |
365 | 2556cf45 | Giorgos Korfiatis | |
366 | 2556cf45 | Giorgos Korfiatis | { |
367 | 2556cf45 | Giorgos Korfiatis | "project": <proj_id> |
368 | 2556cf45 | Giorgos Korfiatis | } |
369 | 2556cf45 | Giorgos Korfiatis | |
370 | 2556cf45 | Giorgos Korfiatis | **Response Codes**: |
371 | 2556cf45 | Giorgos Korfiatis | |
372 | 2556cf45 | Giorgos Korfiatis | ====== ============================ |
373 | 2556cf45 | Giorgos Korfiatis | Status Description |
374 | 2556cf45 | Giorgos Korfiatis | ====== ============================ |
375 | 2556cf45 | Giorgos Korfiatis | 200 Success |
376 | 2556cf45 | Giorgos Korfiatis | 400 Bad Request |
377 | 2556cf45 | Giorgos Korfiatis | 401 Unauthorized (Missing token) |
378 | 2556cf45 | Giorgos Korfiatis | 500 Internal Server Error |
379 | 2556cf45 | Giorgos Korfiatis | ====== ============================ |
380 | 2556cf45 | Giorgos Korfiatis | |
381 | 2556cf45 | Giorgos Korfiatis | **Example Successful Response** |
382 | 2556cf45 | Giorgos Korfiatis | |
383 | 2556cf45 | Giorgos Korfiatis | List of memberships. See below. |
384 | 2556cf45 | Giorgos Korfiatis | |
385 | 2556cf45 | Giorgos Korfiatis | Retrieve a Membership |
386 | 2556cf45 | Giorgos Korfiatis | ..................... |
387 | 2556cf45 | Giorgos Korfiatis | |
388 | 2556cf45 | Giorgos Korfiatis | **GET** /account/v1.0/projects/memberships/<memb_id> |
389 | 2556cf45 | Giorgos Korfiatis | |
390 | 2556cf45 | Giorgos Korfiatis | ==================== ============================ |
391 | 2556cf45 | Giorgos Korfiatis | Request Header Name Value |
392 | 2556cf45 | Giorgos Korfiatis | ==================== ============================ |
393 | 2556cf45 | Giorgos Korfiatis | X-Auth-Token User authentication token |
394 | 2556cf45 | Giorgos Korfiatis | ==================== ============================ |
395 | 2556cf45 | Giorgos Korfiatis | |
396 | 2556cf45 | Giorgos Korfiatis | A membership is accessible if the request user is admin, project owner or |
397 | 2556cf45 | Giorgos Korfiatis | the member. |
398 | 2556cf45 | Giorgos Korfiatis | |
399 | 2556cf45 | Giorgos Korfiatis | **Response Codes**: |
400 | 2556cf45 | Giorgos Korfiatis | |
401 | 2556cf45 | Giorgos Korfiatis | ====== ============================ |
402 | 2556cf45 | Giorgos Korfiatis | Status Description |
403 | 2556cf45 | Giorgos Korfiatis | ====== ============================ |
404 | 2556cf45 | Giorgos Korfiatis | 200 Success |
405 | 2556cf45 | Giorgos Korfiatis | 401 Unauthorized (Missing token) |
406 | 2556cf45 | Giorgos Korfiatis | 403 Forbidden |
407 | 2556cf45 | Giorgos Korfiatis | 404 Not Found |
408 | 2556cf45 | Giorgos Korfiatis | 500 Internal Server Error |
409 | 2556cf45 | Giorgos Korfiatis | ====== ============================ |
410 | 2556cf45 | Giorgos Korfiatis | |
411 | 2556cf45 | Giorgos Korfiatis | **Example Successful Response** |
412 | 2556cf45 | Giorgos Korfiatis | |
413 | 2556cf45 | Giorgos Korfiatis | .. code-block:: javascript |
414 | 2556cf45 | Giorgos Korfiatis | |
415 | 2556cf45 | Giorgos Korfiatis | { |
416 | 2556cf45 | Giorgos Korfiatis | "id": id, |
417 | 2556cf45 | Giorgos Korfiatis | "user": uuid, |
418 | 2556cf45 | Giorgos Korfiatis | "project": project_id, |
419 | 2556cf45 | Giorgos Korfiatis | "state": "requested" | "accepted" | "leave_requested" | "suspended" | "rejected" | "cancelled" | "removed", |
420 | 2556cf45 | Giorgos Korfiatis | "requested": last_request_date, |
421 | 2556cf45 | Giorgos Korfiatis | "accepted": last_acceptance_date, |
422 | 2556cf45 | Giorgos Korfiatis | "removed": last_removal_date, |
423 | 2556cf45 | Giorgos Korfiatis | "allowed_actions": ["leave", "cancel", "accept", "reject", "remove"], |
424 | 2556cf45 | Giorgos Korfiatis | } |
425 | 2556cf45 | Giorgos Korfiatis | |
426 | 2556cf45 | Giorgos Korfiatis | Take Action on a Membership |
427 | 2556cf45 | Giorgos Korfiatis | ........................... |
428 | 2556cf45 | Giorgos Korfiatis | |
429 | 2556cf45 | Giorgos Korfiatis | **POST** /account/v1.0/projects/memberships/<memb_id>/action |
430 | 2556cf45 | Giorgos Korfiatis | |
431 | 2556cf45 | Giorgos Korfiatis | ==================== ============================ |
432 | 2556cf45 | Giorgos Korfiatis | Request Header Name Value |
433 | 2556cf45 | Giorgos Korfiatis | ==================== ============================ |
434 | 2556cf45 | Giorgos Korfiatis | X-Auth-Token User authentication token |
435 | 2556cf45 | Giorgos Korfiatis | ==================== ============================ |
436 | 2556cf45 | Giorgos Korfiatis | |
437 | 2556cf45 | Giorgos Korfiatis | **Example Request** |
438 | 2556cf45 | Giorgos Korfiatis | |
439 | 2556cf45 | Giorgos Korfiatis | .. code-block:: javascript |
440 | 2556cf45 | Giorgos Korfiatis | |
441 | 2556cf45 | Giorgos Korfiatis | { |
442 | 2556cf45 | Giorgos Korfiatis | <action>: "reason" |
443 | 2556cf45 | Giorgos Korfiatis | } |
444 | 2556cf45 | Giorgos Korfiatis | |
445 | 2556cf45 | Giorgos Korfiatis | <action> can be one of: "leave", "cancel", "accept", "reject", "remove" |
446 | 2556cf45 | Giorgos Korfiatis | |
447 | 2556cf45 | Giorgos Korfiatis | **Response Codes**: |
448 | 2556cf45 | Giorgos Korfiatis | |
449 | 2556cf45 | Giorgos Korfiatis | ====== ============================ |
450 | 2556cf45 | Giorgos Korfiatis | Status Description |
451 | 2556cf45 | Giorgos Korfiatis | ====== ============================ |
452 | 2556cf45 | Giorgos Korfiatis | 200 Success |
453 | 2556cf45 | Giorgos Korfiatis | 400 Bad Request |
454 | 2556cf45 | Giorgos Korfiatis | 401 Unauthorized (Missing token) |
455 | 2556cf45 | Giorgos Korfiatis | 403 Forbidden |
456 | 2556cf45 | Giorgos Korfiatis | 404 Not Found |
457 | 2556cf45 | Giorgos Korfiatis | 409 Conflict |
458 | 2556cf45 | Giorgos Korfiatis | 500 Internal Server Error |
459 | 2556cf45 | Giorgos Korfiatis | ====== ============================ |
460 | 2556cf45 | Giorgos Korfiatis | |
461 | 2556cf45 | Giorgos Korfiatis | Create a Membership |
462 | 2556cf45 | Giorgos Korfiatis | ................... |
463 | 2556cf45 | Giorgos Korfiatis | |
464 | 2556cf45 | Giorgos Korfiatis | **POST** /account/v1.0/projects/memberships |
465 | 2556cf45 | Giorgos Korfiatis | |
466 | 2556cf45 | Giorgos Korfiatis | ==================== ============================ |
467 | 2556cf45 | Giorgos Korfiatis | Request Header Name Value |
468 | 2556cf45 | Giorgos Korfiatis | ==================== ============================ |
469 | 2556cf45 | Giorgos Korfiatis | X-Auth-Token User authentication token |
470 | 2556cf45 | Giorgos Korfiatis | ==================== ============================ |
471 | 2556cf45 | Giorgos Korfiatis | |
472 | 2556cf45 | Giorgos Korfiatis | **Example Requests** |
473 | 2556cf45 | Giorgos Korfiatis | |
474 | 2556cf45 | Giorgos Korfiatis | .. code-block:: javascript |
475 | 2556cf45 | Giorgos Korfiatis | |
476 | 2556cf45 | Giorgos Korfiatis | { |
477 | 2556cf45 | Giorgos Korfiatis | "join": { |
478 | 2556cf45 | Giorgos Korfiatis | "project": proj_id |
479 | 2556cf45 | Giorgos Korfiatis | } |
480 | 2556cf45 | Giorgos Korfiatis | } |
481 | 2556cf45 | Giorgos Korfiatis | |
482 | 2556cf45 | Giorgos Korfiatis | .. code-block:: javascript |
483 | 2556cf45 | Giorgos Korfiatis | |
484 | 2556cf45 | Giorgos Korfiatis | { |
485 | 2556cf45 | Giorgos Korfiatis | "enroll": { |
486 | 2556cf45 | Giorgos Korfiatis | "project": proj_id, |
487 | 2556cf45 | Giorgos Korfiatis | "user": "user@example.org" |
488 | 2556cf45 | Giorgos Korfiatis | } |
489 | 2556cf45 | Giorgos Korfiatis | } |
490 | 2556cf45 | Giorgos Korfiatis | |
491 | 2556cf45 | Giorgos Korfiatis | **Response Codes**: |
492 | 2556cf45 | Giorgos Korfiatis | |
493 | 2556cf45 | Giorgos Korfiatis | ====== ============================ |
494 | 2556cf45 | Giorgos Korfiatis | Status Description |
495 | 2556cf45 | Giorgos Korfiatis | ====== ============================ |
496 | 2556cf45 | Giorgos Korfiatis | 200 Success |
497 | 2556cf45 | Giorgos Korfiatis | 400 Bad Request |
498 | 2556cf45 | Giorgos Korfiatis | 401 Unauthorized (Missing token) |
499 | 2556cf45 | Giorgos Korfiatis | 403 Forbidden |
500 | 2556cf45 | Giorgos Korfiatis | 409 Conflict |
501 | 2556cf45 | Giorgos Korfiatis | 500 Internal Server Error |
502 | 2556cf45 | Giorgos Korfiatis | ====== ============================ |
503 | 2556cf45 | Giorgos Korfiatis | |
504 | 2556cf45 | Giorgos Korfiatis | **Example Response** |
505 | 2556cf45 | Giorgos Korfiatis | |
506 | 2556cf45 | Giorgos Korfiatis | .. code-block:: javascript |
507 | 2556cf45 | Giorgos Korfiatis | |
508 | 2556cf45 | Giorgos Korfiatis | { |
509 | 2556cf45 | Giorgos Korfiatis | "id": membership_id |
510 | 2556cf45 | Giorgos Korfiatis | } |