From c3ea8624b59faef340cf48fbd00d99c7365f9443 Mon Sep 17 00:00:00 2001 From: Marek Chrastina <marek.chrastina@vsb.cz> Date: Fri, 8 Dec 2017 16:01:24 +0100 Subject: [PATCH] Manual mdl fix fo test --- .gitlab-ci.yml | 2 +- docs.it4i/apidocs.md | 1024 ++++++++++++++++++++++++++++++++++++++---- 2 files changed, 946 insertions(+), 80 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a2147e7a3..9980b9919 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -7,7 +7,7 @@ docs: stage: test image: davidhrbac/docker-mdcheck:latest script: - - mdl -r ~MD013,~MD033,~MD014,~MD026,~MD037 *.md docs.it4i + - mdl -r ~MD013,~MD033,~MD014,~MD026,~MD037,~MD034 *.md docs.it4i two spaces: stage: test diff --git a/docs.it4i/apidocs.md b/docs.it4i/apidocs.md index 65a2df5a4..36ca88772 100644 --- a/docs.it4i/apidocs.md +++ b/docs.it4i/apidocs.md @@ -1,86 +1,286 @@ -API Documentation_public -============================================================================================= +<div class="document"> + +<div class="documentwrapper"> + +<div class="body" role="main"> + +<div id="module-scs_api.server" class="section"> + +[]{#api-documentation} +API Documentation[¶](#module-scs_api.server "Permalink to this headline"){.headerlink} +====================================================================================== Implements API for IT4I SCS Information System. -- api revision: `9eb0678f / 2017-12-08 11:06:12 +0100` -- api version: `0.9-11-g9eb0678` -- apidoc building date: `2017-12-08 15:01:48 +0100` +- api revision: `9eb0678f / 2017-12-08 11:06:12 +0100`{.docutils + .literal} +- api version: `0.9-11-g9eb0678`{.docutils .literal} +- apidoc building date: `2017-12-08 15:52:11 +0100`{.docutils + .literal} -Summary +<div id="summary" class="section"> +Summary[¶](#summary "Permalink to this headline"){.headerlink} -------------------------------------------------------------- - Resource | Operation | Description - ------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------| ----------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ - check-access | [POST /api/v1/check-access](#post--api-v1-check-access) | Access check to queue - dedicated-time | [GET /api/v1/dedicated-time/(cluster\_type)](#get--api-v1-dedicated-time-cluster_type) | HPC dedicated time - it4ifree | [POST /api/v1/it4ifree/(login)](#post--api-v1-it4ifree-login) | Free account resources - motd | [GET /api/v1/motd/(category)](#get--api-v1-motd-category) | SCS messages of the day - ping | [GET /api/v1/ping](#get--api-v1-ping) | Connection test - version | [GET /api/v1/version](#get--api-v1-version) | API version - -API Details + + Resource Operation Description + ------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ + account-expire [GET /api/v1/account-expire/(login)](#get--api-v1-account-expire-(login)){.reference .external} Account expiration date + accounts-to-close [GET /api/v1/accounts-to-close/(category)](#get--api-v1-accounts-to-close-(category)){.reference .external} Standard accounts close to expiration date + check-access [POST /api/v1/check-access](#post--api-v1-check-access){.reference .external} Access check to queue + dedicated-time [GET /api/v1/dedicated-time/(cluster\_type)](#get--api-v1-dedicated-time-(cluster_type)){.reference .external} HPC dedicated time + graph\_affiliation\_stats [GET /api/v1/graph\_affiliation\_stats](#get--api-v1-graph_affiliation_stats){.reference .external} Graph affiliation statistics + graph\_research\_area\_stats [GET /api/v1/graph\_research\_area\_stats](#get--api-v1-graph_research_area_stats){.reference .external} Graph research area statistics + graph\_utilization\_stats [GET /api/v1/graph\_utilization\_stats](#get--api-v1-graph_utilization_stats){.reference .external} Graph utilization statistics + irregular-accounts-to-close [GET /api/v1/irregular-accounts-to-close](#get--api-v1-irregular-accounts-to-close){.reference .external} Special accounts close to expiration date + it4ifree [POST /api/v1/it4ifree/(login)](#post--api-v1-it4ifree-(login)){.reference .external} Free account resources + it4ifreetoken [GET /api/v1/it4ifreetoken/(login)](#get--api-v1-it4ifreetoken-(login)){.reference .external} Free account token + motd [GET /api/v1/motd/(category)](#get--api-v1-motd-(category)){.reference .external} SCS messages of the day + ping [GET /api/v1/ping](#get--api-v1-ping){.reference .external} Connection test + quota-extra [GET /api/v1/quota-extra](#get--api-v1-quota-extra){.reference .external} User extra quota + version [GET /api/v1/version](#get--api-v1-version){.reference .external} API version + +</div> + +<div id="api-details" class="section"> + +API Details[¶](#api-details "Permalink to this headline"){.headerlink} ---------------------------------------------------------------------- - `POST /api/v1/check-access` {#post--api-v1-check-access} + `GET `{.descname}`/api/v1/account-expire/`{.descname}[(]{.sig-paren}*login*[)]{.sig-paren}[¶](#get--api-v1-account-expire-(login) "Permalink to this definition"){.headerlink} + +: Access to this service is restricted to just few source ipv4 + addresses. + + It returns the account expiration date. The account may participates + on several projects. If all projects were already finished, there + will come a time when the account expires as well. It will happen + after: + + > <div> + > + > - 365 days - for all standard accounts + > - 31 days - for special (e.g. training) accounts + > + > </div> + + Query Parameters: + + + + - **login** – account id + + Status Codes: + + - [200 + OK](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1){.reference + .external} – no error + - [405 Method Not + Allowed](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.6){.reference + .external} – restricted access, your ipv4 is not allowed + + **Example request**: + + <div class="highlight-console"> + + <div class="highlight"> + + curl -i https://scs.it4i.cz/api/v1/account-expire/chr0139 + + </div> + + </div> + + **Example response**: + + <div class="highlight-http"> + + <div class="highlight"> + + HTTP/1.1 200 OK + Content-Type: application/json + + [ + { + "login": "chr0139", + "projectendtime": "2019-07-25 21:59:59" + } + ] + + </div> + + </div> + +<!-- --> + + `GET `{.descname}`/api/v1/accounts-to-close/`{.descname}[(]{.sig-paren}*category*[)]{.sig-paren}[¶](#get--api-v1-accounts-to-close-(category) "Permalink to this definition"){.headerlink} + +: Access to this service is restricted to just few source ipv4 + addresses. + + The standard account expires 365 days after the date when the last + project was finished. This service returns the list of standard + accounts which are close to the expiration date. The closeness time + interval depends on requested parameter. + + Query Parameters: + + - : A service to check if account and/or related project has the access + - **first** – 93±2 days before expiration date + - **second** – 31±2 days before expiration date + - **third** – 7±2 days before expiration date + + Response JSON Object: + + + + - **fullname** (*string*) – user full name + - **login** (*string*) – account id + - **projectendtime** (*string*) – project end date + - **userclosetime** (*string*) – project end date shifted by + 272/334/358 days + + Status Codes: + + - [200 + OK](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1){.reference + .external} – no error + - [405 Method Not + Allowed](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.6){.reference + .external} – restricted access, your ipv4 address is not allowed + + **Example request**: + + <div class="highlight-console"> + + <div class="highlight"> + + curl -i https://scs.it4i.cz/api/v1/accounts-to-close/second + + </div> + + </div> + + **Example response**: + + <div class="highlight-http"> + + <div class="highlight"> + + HTTP/1.1 200 OK + Content-Type: application/json + + [ + { + "fullname": "Smith John", + "login": "johnsm", + "projectendtime": "2017-01-08 22:59:59", + "userclosetime": "2017-11-09 22:59:59" + } + ] + + </div> + + </div> + +<!-- --> + + `POST `{.descname}`/api/v1/check-access`{.descname}[¶](#post--api-v1-check-access "Permalink to this definition"){.headerlink} + +: A service to check if account and/or related project has the access to specified queue. Request JSON Object: - - **login** (*string*) – account id - - **queue** (*string*) – queue id - - **pid** (*string*) – project id, not required if querying projectless queue + + + - **login** (*string*) – account id + - **queue** (*string*) – queue id + - **pid** (*string*) – project id, not required if querying + projectless queue Status Codes: - - [200 OK](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1) - – no error + - [200 + OK](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1){.reference + .external} – no error **Example request**: + <div class="highlight-console"> + + <div class="highlight"> + curl -i -H "Content-Type:application/json" -X POST \ --data '{"pid":"DD-13-5","login":"johnsm","queue":"qfat"}' \ https://scs.it4i.cz/api/v1/check-access + </div> + + </div> + **Example response**: + <div class="highlight-http"> + + <div class="highlight"> + HTTP/1.1 200 OK Content-Type: application/json "OK Access granted for regular queue." - `GET /api/v1/dedicated-time/`(*cluster\_type*) {#get--api-v1-dedicated-time-cluster_type} + </div> - : Returns list of times dedicated for HPC maintainance. It is not + </div> + +<!-- --> + + `GET `{.descname}`/api/v1/dedicated-time/`{.descname}[(]{.sig-paren}*cluster\_type*[)]{.sig-paren}[¶](#get--api-v1-dedicated-time-(cluster_type) "Permalink to this definition"){.headerlink} + +: Returns list of times dedicated for HPC maintainance. It is not possible to use HPC services during maintainance. Query Parameters: - - **all** – returns all dedicated times for all clusters - - **salomon** – returns all times just for salomon cluster - - **anselm** – returns all times just for anselm cluster - - **active** – returns dedicated times for all clusters which are + + + - **all** – returns all dedicated times for all clusters + - **salomon** – returns all times just for salomon cluster + - **anselm** – returns all times just for anselm cluster + - **active** – returns dedicated times for all clusters which are now active - - **planned** – returns dedicated times for all clusters which are + - **planned** – returns dedicated times for all clusters which are now active or scheduled in the future Status Codes: - - [200 - OK](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1) - – no error - - [405 Method Not - Allowed](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.6) - – invalid requested query parameter + - [200 + OK](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1){.reference + .external} – no error + - [405 Method Not + Allowed](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.6){.reference + .external} – invalid requested query parameter **Example request**: + <div class="highlight-console"> + + <div class="highlight"> + curl -i curl https://scs.it4i.cz/api/v1/dedicated-time/all + </div> + + </div> + **Example response**: + <div class="highlight-http"> + + <div class="highlight"> + HTTP/1.1 200 OK Content-Type: application/json @@ -93,9 +293,452 @@ API Details } ] - `POST /api/v1/it4ifree/`(*login*) {#post--api-v1-it4ifree-login} + </div> + + </div> + +<!-- --> + + `GET `{.descname}`/api/v1/graph_affiliation_stats`{.descname}[¶](#get--api-v1-graph_affiliation_stats "Permalink to this definition"){.headerlink} + +: Access to this service is restricted to just few source ipv4 + addresses. + + It returns graph data useful to plot statistics of using HPC by some + affiliations. + + Query Parameters: + + + + - **height** – optional, graph height in pixels, default 300 + - **width** – optional, graph width in pixels, default 420 + - **sizepct** – optional, graph size in percents, default 40 + + Status Codes: + + - [200 + OK](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1){.reference + .external} – no error + - [405 Method Not + Allowed](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.6){.reference + .external} – restricted access, your ipv4 address is not allowed + + **Example request**: + + <div class="highlight-console"> + + <div class="highlight"> + + curl -i -X GET --data height=50 -d sizepct=50 \ + -G https://scs.it4i.cz/api/v1/graph_affiliation_stats + + </div> + + </div> + + **Example response**: + + <div class="highlight-http"> + + <div class="highlight"> + + HTTP/1.1 200 OK + Content-Type: application/json + + " + { + chart: { + plotBackgroundColor: null, + plotBorderWidth: null, + plotShadow: false, + height: 50, + width: 420, + }, + credits: { + text: 'IT4Innovations 2017-11-14 13:21' + }, + title: { + text: '' + }, + exporting: { + enabled: false + }, + tooltip: { + pointFormat: '{point.percentage:.1f} %' + }, + plotOptions: { + pie: { + allowPointSelect: true, + cursor: 'pointer', + size: '50%', + startAngle: 315, + dataLabels: { + enabled: true, + format: '{point.name}', + } + } + }, + series: [ + { + type: 'pie', + data: [ + ['IT4Innovations', 143320459.886 ], + ['Akademie věd ČR', 67329442.8672 ], + ['CEITEC', 41987818.0711 ], + ['Masarykova univerzita', 22767491.1453 ], + ['VUT Brno', 18184662.5402 ], + ['Univerzita Karlova', 15544836.8455 ], + ['ČVUT', 12383341.426 ], + ['Matematicko-fyzikální fakulta', 4583152.32333 ], + ['Uppsala University', 4562701.04 ], + ['Others', 36525837.5894 ], + ] + } + ] + } + " + + </div> + + </div> + +<!-- --> + + `GET `{.descname}`/api/v1/graph_research_area_stats`{.descname}[¶](#get--api-v1-graph_research_area_stats "Permalink to this definition"){.headerlink} + +: Access to this service is restricted to just few source ipv4 + addresses. + + It returns graph data useful to plot statistics of using HPC by + various science fields. + + Query Parameters: + + + + - **height** – optional, graph height in pixels, default 300 + - **width** – optional, graph width in pixels, default 420 + - **sizepct** – optional, graph size in percents, default 40 + + Status Codes: + + - [200 + OK](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1){.reference + .external} – no error + - [405 Method Not + Allowed](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.6){.reference + .external} – restricted access, your ipv4 address is not allowed + + **Example request**: + + <div class="highlight-console"> + + <div class="highlight"> + + curl -i -X GET -G https://scs.it4i.cz/api/v1/graph_research_area_stats + + </div> + + </div> + + **Example response**: + + <div class="highlight-http"> + + <div class="highlight"> + + HTTP/1.1 200 OK + Content-Type: application/json + + " + { + chart: { + plotBackgroundColor: null, + plotBorderWidth: null, + plotShadow: false, + height: 300, + width: 420, + }, + credits: { + text: 'IT4Innovations 2017-11-14 13:43' + }, + title: { + text: '' + }, + exporting: { + enabled: false + }, + tooltip: { + pointFormat: '{point.percentage:.1f} %' + }, + plotOptions: { + pie: { + allowPointSelect: true, + cursor: 'pointer', + size: '40%', + startAngle: 315, + dataLabels: { + enabled: true, + format: '{point.name}', + } + } + }, + series: [ + { + type: 'pie', + data: [ + ['Materials Science ', 205656805 ], + ['Bio Sciences ', 65319185 ], + ['Plasma & Particle Physics ', 21935334 ], + ['Service', 20537970 ], + ['Engineering ', 15691906 ], + ['Informatics', 12335969 ], + ['Applied Mathematics', 9458711 ], + ['Earth Sciences ', 8804183 ], + ['Astro Sciences ', 4229242 ], + ['Other Research Areas', 2493851 ], + ] + } + ] + } + " + + </div> + + </div> + +<!-- --> + + `GET `{.descname}`/api/v1/graph_utilization_stats`{.descname}[¶](#get--api-v1-graph_utilization_stats "Permalink to this definition"){.headerlink} + +: Access to this service is restricted to just few source ipv4 + addresses. + + It returns graph data to plot statistics of HPC week utilization + during last 100 days. + + Query Parameters: + + + + - **height** – optional, graph height in pixels, default 300 + - **width** – optional, graph width in pixels, default 420 + - **sizepct** – optional, graph size in percents, default 40 - : A service to check resources of the projects on which the account + Status Codes: + + - [200 + OK](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1){.reference + .external} – no error + - [405 Method Not + Allowed](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.6){.reference + .external} – restricted access, your ipv4 address is not allowed + + **Example request**: + + <div class="highlight-console"> + + <div class="highlight"> + + curl -i -X GET -G https://scs.it4i.cz/api/v1/graph_utilization_stats + + </div> + + </div> + + **Example response**: + + <div class="highlight-http"> + + <div class="highlight"> + + HTTP/1.1 200 OK + Content-Type: application/json + + " + { + chart: { + zoomType: 'x', + plotBorderWidth: 0, + borderWidth: 0, + borderRadius: 0, + borderColor: '#DDDDDD', + height: 300, + width: 420 + }, + series: [ + { + name: 'Cores utilized', + type: 'areaspline', + data: [ + [ Date.UTC(2017,7,6), 18466], + [ Date.UTC(2017,7,7), 18606], + [ Date.UTC(2017,7,8), 19075], + [ Date.UTC(2017,7,9), 19962], + [ Date.UTC(2017,7,10), 20239], + [ Date.UTC(2017,7,11), 20425], + [ Date.UTC(2017,7,12), 20110], + [ Date.UTC(2017,7,13), 19413], + [ Date.UTC(2017,7,14), 20204], + [ Date.UTC(2017,7,15), 20058], + [ Date.UTC(2017,7,16), 19890], + [ Date.UTC(2017,7,17), 18102], + [ Date.UTC(2017,7,18), 18529], + [ Date.UTC(2017,7,19), 18871], + [ Date.UTC(2017,7,20), 18704], + [ Date.UTC(2017,7,21), 17106], + [ Date.UTC(2017,7,22), 17854], + [ Date.UTC(2017,7,23), 19541], + [ Date.UTC(2017,7,24), 19691], + [ Date.UTC(2017,7,25), 19335], + [ Date.UTC(2017,7,26), 20776], + [ Date.UTC(2017,7,27), 20856], + [ Date.UTC(2017,7,28), 21116], + [ Date.UTC(2017,7,29), 21705], + [ Date.UTC(2017,7,30), 17907], + [ Date.UTC(2017,7,31), 18085], + [ Date.UTC(2017,8,1), 18564], + [ Date.UTC(2017,8,2), 17449], + [ Date.UTC(2017,8,3), 17472], + [ Date.UTC(2017,8,4), 17173], + [ Date.UTC(2017,8,5), 14445], + [ Date.UTC(2017,8,6), 17952], + [ Date.UTC(2017,8,7), 18813], + [ Date.UTC(2017,8,8), 17847], + [ Date.UTC(2017,8,9), 16434], + [ Date.UTC(2017,8,10), 14957], + [ Date.UTC(2017,8,11), 15695], + [ Date.UTC(2017,8,12), 15495], + [ Date.UTC(2017,8,13), 11848], + [ Date.UTC(2017,8,14), 9612], + [ Date.UTC(2017,8,15), 9765], + [ Date.UTC(2017,8,16), 11730], + [ Date.UTC(2017,8,17), 12932], + [ Date.UTC(2017,8,18), 12296], + [ Date.UTC(2017,8,19), 11230], + ], + color: '#AA4643' + } + ], + title: { + text: '' + }, + credits: { + text: 'IT4Innovations 2017-11-14 14:14' + }, + exporting: { + enabled: false + }, + plotOptions: { + areaspline: { + fillOpacity: 0.5 + }, + pie: { + dataLabels: { + enabled: false + }, + showInLegend: true + }, + series: { + turboThreshold: 0 + }, + line: { + marker: { + enabled: false + } + } + }, + xAxis: { + type: 'datetime', + title: { + text: 'Date', + style: { + color: '#000000' + } + } + }, + yAxis: { + min: 0, + tickInterval: 1000, + title: { + text: 'Cores [-]', + style: { + color: '#000000' + } + } + }, + } + " + + </div> + + </div> + +<!-- --> + + `GET `{.descname}`/api/v1/irregular-accounts-to-close`{.descname}[¶](#get--api-v1-irregular-accounts-to-close "Permalink to this definition"){.headerlink} + +: Access to this service is restricted to just few source ipv4 + addresses. + + The special (e.g. training) account expires 31 days after the date + when the last project was finished. This service returns the list of + special accounts which are already after this the expiration date. + + Response JSON Object: + + + + - **login** (*string*) – account id + - **projectendtime** (*string*) – project end date + + Status Codes: + + - [200 + OK](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1){.reference + .external} – no error + - [405 Method Not + Allowed](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.6){.reference + .external} – restricted access, your ipv4 address is not allowed + + **Example request**: + + <div class="highlight-console"> + + <div class="highlight"> + + curl -i https://scs.it4i.cz/api/v1/irregular-accounts-to-close + + </div> + + </div> + + **Example response**: + + <div class="highlight-http"> + + <div class="highlight"> + + HTTP/1.1 200 OK + Content-Type: application/json + + [ + { + "login": "dd-01", + "projectendtime": "2009-09-19 23:59:59" + } + ] + + </div> + + </div> + +<!-- --> + + `POST `{.descname}`/api/v1/it4ifree/`{.descname}[(]{.sig-paren}*login*[)]{.sig-paren}[¶](#post--api-v1-it4ifree-(login) "Permalink to this definition"){.headerlink} + +: A service to check resources of the projects on which the account participate. If the calculation run on 1 cpu core during 1 hour, it consumes 1 core-hour from the project resources. However, some calculations (or their placement) can be cheaper. Actual consumed @@ -105,50 +748,72 @@ API Details for more details about so-called normalized core-hours. The json response contains two parts: - - `me` – data from projects, where the account has access - - `me_as_pi` – data from projects, where the account is PI (primary investigator) + > <div> + > + > - `me`{.docutils .literal} – data from projects, where the + > account has access + > - `me_as_pi`{.docutils .literal} – data from projects, where the + > account is PI (primary investigator) + > + > </div> Request JSON Object: - - **login** (*string*) – account id - - **it4ifreetoken** (*string*) – token + + + - **login** (*string*) – account id + - **it4ifreetoken** (*string*) – token Response JSON Object: - - **login** (*string*) – account id - - **pid** (*string*) – project id - - **pi\_login** (*string*) – account id which is PI - - **days\_left** (*string*) – days to the end of project, - `---` if project is inactive or not yet + + + - **login** (*string*) – account id + - **pid** (*string*) – project id + - **pi\_login** (*string*) – account id which is PI + - **days\_left** (*string*) – days to the end of project, + `---`{.docutils .literal} if project is inactive or not yet started - - **free** (*int*) – free core-hours which can be still consumed - - **total** (*int*) – total core-hours assigned to the project - - **used** (*int*) – actual consumed core-hours - - **used\_with\_factor** (*int*) – consumed normalized core-hours - - **used\_by\_me** (*int*) – core-hours consumed by the account - - **used\_by\_me\_with\_factor** (*int*) – normalized core-hours + - **free** (*int*) – free core-hours which can be still consumed + - **total** (*int*) – total core-hours assigned to the project + - **used** (*int*) – actual consumed core-hours + - **used\_with\_factor** (*int*) – consumed normalized core-hours + - **used\_by\_me** (*int*) – core-hours consumed by the account + - **used\_by\_me\_with\_factor** (*int*) – normalized core-hours consumed by the account - - **corehours** (*int*) – core-hours consumed by the account - - **core\_hours\_with\_factor** (*int*) – normalized core-hours + - **corehours** (*int*) – core-hours consumed by the account + - **core\_hours\_with\_factor** (*int*) – normalized core-hours consumed by the account Status Codes: - - [200 - OK](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1) - – no error - - [405 Method Not - Allowed](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.6) - – token does not match + - [200 + OK](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1){.reference + .external} – no error + - [405 Method Not + Allowed](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.6){.reference + .external} – token does not match **Example request**: + <div class="highlight-console"> + + <div class="highlight"> + curl -i -H "Content-Type:application/json" -X POST \ --data '{"login":"johnsm", "it4ifreetoken": "abc"}' \ https://scs.it4i.cz/api/v1/it4ifree/johnsm + </div> + + </div> + **Example response**: + <div class="highlight-http"> + + <div class="highlight"> + HTTP/1.1 200 OK Content-Type: application/json @@ -195,31 +860,104 @@ API Details ] } - `GET /api/v1/motd/`(*category*) {#get--api-v1-motd-category} + </div> - : Returns SCS messages of the day. + </div> + +<!-- --> + + `GET `{.descname}`/api/v1/it4ifreetoken/`{.descname}[(]{.sig-paren}*login*[)]{.sig-paren}[¶](#get--api-v1-it4ifreetoken-(login) "Permalink to this definition"){.headerlink} + +: Access to this service is restricted to just few source ipv4 + addresses. + + It returns free token for the account. Query Parameters: - - **notice** – returns only notice messages - - **important** – returns only important messages - - **all** – returns all messages + + + - **login** – account id Status Codes: - - [200 - OK](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1) - – no error - - [405 Method Not - Allowed](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.6) - – invalid requested query parameter + - [200 + OK](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1){.reference + .external} – no error + - [405 Method Not + Allowed](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.6){.reference + .external} – restricted access, your ipv4 address is not allowed **Example request**: + <div class="highlight-console"> + + <div class="highlight"> + + curl -i https://scs.it4i.cz/api/v1/it4ifreetoken/johnsm + + </div> + + </div> + + **Example response**: + + <div class="highlight-http"> + + <div class="highlight"> + + HTTP/1.1 200 OK + Content-Type: application/json + + { + "it4ifreetoken": "abc" + } + + </div> + + </div> + +<!-- --> + + `GET `{.descname}`/api/v1/motd/`{.descname}[(]{.sig-paren}*category*[)]{.sig-paren}[¶](#get--api-v1-motd-(category) "Permalink to this definition"){.headerlink} + +: Returns SCS messages of the day. + + Query Parameters: + + + + - **notice** – returns only notice messages + - **important** – returns only important messages + - **all** – returns all messages + + Status Codes: + + - [200 + OK](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1){.reference + .external} – no error + - [405 Method Not + Allowed](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.6){.reference + .external} – invalid requested query parameter + + **Example request**: + + <div class="highlight-console"> + + <div class="highlight"> + curl -i https://scs.it4i.cz/api/v1/motd/notice + </div> + + </div> + **Example response**: + <div class="highlight-http"> + + <div class="highlight"> + HTTP/1.1 200 OK Content-Type: application/json @@ -243,19 +981,38 @@ API Details } ] - `GET /api/v1/ping` {#get--api-v1-ping} + </div> + + </div> + +<!-- --> + + `GET `{.descname}`/api/v1/ping`{.descname}[¶](#get--api-v1-ping "Permalink to this definition"){.headerlink} - : A service for testing connection to API. +: A service for testing connection to API. - Status Codes: - - [200 OK](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1) – no error + --------------- ----------------------------------------------------------------------------------------------------------------- + Status Codes: - [200 OK] http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html – no error + --------------- ----------------------------------------------------------------------------------------------------------------- **Example request**: + <div class="highlight-console"> + + <div class="highlight"> + curl -i https://scs.it4i.cz/api/v1/ping + </div> + + </div> + **Example response**: + <div class="highlight-http"> + + <div class="highlight"> + HTTP/1.1 200 OK Content-Type: application/json @@ -263,20 +1020,107 @@ API Details "message": "pong" } - `GET /api/v1/version` {#get--api-v1-version} + </div> + + </div> + +<!-- --> + + `GET `{.descname}`/api/v1/quota-extra`{.descname}[¶](#get--api-v1-quota-extra "Permalink to this definition"){.headerlink} + +: Access to this service is restricted to just few source ipv4 + addresses. - : Returns basic information about API. + Returns all accounts which have active filesystem quotas bigger than + standard. + + Response JSON Object: + + + + - **login** (*string*) – account id + - **system\_name** (*string*) – computer system name + - **filesystem** (*string*) – folder name + - **quota\_gb** (*int*) – disk usage quota for in GB + - **quota\_ki** (*int*) – quota for number of files in thousands + - **expiration** (*string*) – expiration date + - **description** (*string*) – reason for allocation extra quotas Status Codes: - - [200 OK](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1) – no error + - [200 + OK](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1){.reference + .external} – no error + - [405 Method Not + Allowed](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.6){.reference + .external} – restricted access, your ipv4 is not allowed **Example request**: + <div class="highlight-console"> + + <div class="highlight"> + + curl -i curl https://scs.it4i.cz/api/v1/quota-extra + + </div> + + </div> + + **Example response**: + + <div class="highlight-http"> + + <div class="highlight"> + + HTTP/1.1 200 OK + Content-Type: application/json + + [ + { + "login": "johnsm", + "system_name": "anselm", + "filesystem": "HOME", + "quota_gb": 500, + "quota_ki": 1500, + "expiration": "2017-12-31", + "description": "build SW" + + } + ] + + </div> + + </div> + +<!-- --> + + `GET `{.descname}`/api/v1/version`{.descname}[¶](#get--api-v1-version "Permalink to this definition"){.headerlink} + +: Returns basic information about API. + + --------------- ----------------------------------------------------------------------------------------------------------------- + Status Codes: - [200 OK](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1){.reference .external} – no error + --------------- ----------------------------------------------------------------------------------------------------------------- + + **Example request**: + + <div class="highlight-console"> + + <div class="highlight"> + curl -i https://scs.it4i.cz/api/v1/version + </div> + + </div> + **Example response**: + <div class="highlight-http"> + + <div class="highlight"> + HTTP/1.1 200 OK Content-Type: application/json @@ -286,6 +1130,28 @@ API Details "version": "0.8.2-34-gceac8aa" } + </div> + + </div> + +</div> + +</div> + +</div> + +</div> + +<div class="clearer"> + +</div> + +</div> + +<div class="footer"> + ©2017, IT4Innovations. | Powered by [Sphinx 1.5.6](http://sphinx-doc.org/) & [Alabaster 0.7.10](https://github.com/bitprophet/alabaster) + +</div> -- GitLab