github.com/technosophos/deis@v1.7.1-0.20150915173815-f9005256004b/docs/reference/api-v1.1.rst (about)

     1  :title: Controller API v1.1
     2  :description: The v1.1 REST API for Deis' Controller
     3  
     4  Controller API v1.1
     5  ===================
     6  
     7  This is the v1.1 REST API for the :ref:`Controller`.
     8  
     9  
    10  What's New
    11  ----------
    12  
    13  **New!** All controller responses now return the ``X_DEIS_API_VERSION`` header.
    14  
    15  **New!** All controller responses now return the ``X_DEIS_PLATFORM_VERSION`` header.
    16  
    17  **New!** Users see a 404 response when modifying applications they are unauthorized to see.
    18  
    19  **New!** Responses returned from the scheduler are properly formatted JSON responses.
    20  
    21  
    22  Authentication
    23  --------------
    24  
    25  
    26  Register a New User
    27  ```````````````````
    28  
    29  Example Request:
    30  
    31  .. code-block:: console
    32  
    33      POST /v1/auth/register/ HTTP/1.1
    34      Host: deis.example.com
    35      Content-Type: application/json
    36  
    37      {
    38          "username": "test",
    39          "password": "opensesame",
    40          "email": "test@example.com"
    41      }
    42  
    43  Optional Parameters:
    44  
    45  .. code-block:: console
    46  
    47      {
    48          "first_name": "test",
    49          "last_name": "testerson"
    50      }
    51  
    52  Example Response:
    53  
    54  .. code-block:: console
    55  
    56      HTTP/1.1 201 CREATED
    57      X_DEIS_API_VERSION: 1.1
    58      X_DEIS_PLATFORM_VERSION: 1.4.1
    59      Content-Type: application/json
    60  
    61      {
    62          "id": 1,
    63          "last_login": "2014-10-19T22:01:00.601Z",
    64          "is_superuser": true,
    65          "username": "test",
    66          "first_name": "test",
    67          "last_name": "testerson",
    68          "email": "test@example.com",
    69          "is_staff": true,
    70          "is_active": true,
    71          "date_joined": "2014-10-19T22:01:00.601Z",
    72          "groups": [],
    73          "user_permissions": []
    74      }
    75  
    76  
    77  Log in
    78  ``````
    79  
    80  Example Request:
    81  
    82  .. code-block:: console
    83  
    84      POST /v1/auth/login/ HTTP/1.1
    85      Host: deis.example.com
    86      Content-Type: application/json
    87  
    88      {"username": "test", "password": "opensesame"}
    89  
    90  Example Response:
    91  
    92  .. code-block:: console
    93  
    94      HTTP/1.1 200 OK
    95      X_DEIS_API_VERSION: 1.1
    96      X_DEIS_PLATFORM_VERSION: 1.4.1
    97      Content-Type: application/json
    98  
    99      {"token": "abc123"}
   100  
   101  
   102  Cancel Account
   103  ``````````````
   104  
   105  Example Request:
   106  
   107  .. code-block:: console
   108  
   109      DELETE /v1/auth/cancel/ HTTP/1.1
   110      Host: deis.example.com
   111      Authorization: token abc123
   112  
   113  Example Response:
   114  
   115  .. code-block:: console
   116  
   117      HTTP/1.1 204 NO CONTENT
   118      X_DEIS_API_VERSION: 1.1
   119      X_DEIS_PLATFORM_VERSION: 1.4.1
   120  
   121  
   122  Applications
   123  ------------
   124  
   125  
   126  List all Applications
   127  `````````````````````
   128  
   129  Example Request:
   130  
   131  .. code-block:: console
   132  
   133      GET /v1/apps HTTP/1.1
   134      Host: deis.example.com
   135      Authorization: token abc123
   136  
   137  Example Response:
   138  
   139  .. code-block:: console
   140  
   141      HTTP/1.1 200 OK
   142      X_DEIS_API_VERSION: 1.1
   143      X_DEIS_PLATFORM_VERSION: 1.4.1
   144      Content-Type: application/json
   145  
   146      {
   147          "count": 1,
   148          "next": null,
   149          "previous": null,
   150          "results": [
   151              {
   152                  "created": "2014-01-01T00:00:00UTC",
   153                  "id": "example-go",
   154                  "owner": "test",
   155                  "structure": {},
   156                  "updated": "2014-01-01T00:00:00UTC",
   157                  "url": "example-go.example.com",
   158                  "uuid": "de1bf5b5-4a72-4f94-a10c-d2a3741cdf75"
   159              }
   160          ]
   161      }
   162  
   163  
   164  Create an Application
   165  `````````````````````
   166  
   167  Example Request:
   168  
   169  .. code-block:: console
   170  
   171      POST /v1/apps/ HTTP/1.1
   172      Host: deis.example.com
   173      Content-Type: application/json
   174      Authorization: token abc123
   175  
   176  Optional parameters:
   177  
   178  .. code-block:: console
   179  
   180      {"id": "example-go"}
   181  
   182  
   183  Example Response:
   184  
   185  .. code-block:: console
   186  
   187      HTTP/1.1 201 CREATED
   188      X_DEIS_API_VERSION: 1.1
   189      X_DEIS_PLATFORM_VERSION: 1.4.1
   190      Content-Type: application/json
   191  
   192      {
   193          "created": "2014-01-01T00:00:00UTC",
   194          "id": "example-go",
   195          "owner": "test",
   196          "structure": {},
   197          "updated": "2014-01-01T00:00:00UTC",
   198          "url": "example-go.example.com",
   199          "uuid": "de1bf5b5-4a72-4f94-a10c-d2a3741cdf75"
   200      }
   201  
   202  
   203  Destroy an Application
   204  ``````````````````````
   205  
   206  Example Request:
   207  
   208  .. code-block:: console
   209  
   210      DELETE /v1/apps/example-go/ HTTP/1.1
   211      Host: deis.example.com
   212      Authorization: token abc123
   213  
   214  Example Response:
   215  
   216  .. code-block:: console
   217  
   218      HTTP/1.1 204 NO CONTENT
   219      X_DEIS_API_VERSION: 1.1
   220      X_DEIS_PLATFORM_VERSION: 1.4.1
   221  
   222  
   223  List Application Details
   224  ````````````````````````
   225  
   226  Example Request:
   227  
   228  .. code-block:: console
   229  
   230      GET /v1/apps/example-go/ HTTP/1.1
   231      Host: deis.example.com
   232      Authorization: token abc123
   233  
   234  Example Response:
   235  
   236  .. code-block:: console
   237  
   238      HTTP/1.1 200 OK
   239      X_DEIS_API_VERSION: 1.1
   240      X_DEIS_PLATFORM_VERSION: 1.4.1
   241      Content-Type: application/json
   242  
   243      {
   244          "created": "2014-01-01T00:00:00UTC",
   245          "id": "example-go",
   246          "owner": "test",
   247          "structure": {},
   248          "updated": "2014-01-01T00:00:00UTC",
   249          "url": "example-go.example.com",
   250          "uuid": "de1bf5b5-4a72-4f94-a10c-d2a3741cdf75"
   251      }
   252  
   253  
   254  Retrieve Application Logs
   255  `````````````````````````
   256  
   257  Example Request:
   258  
   259  .. code-block:: console
   260  
   261      GET /v1/apps/example-go/logs/ HTTP/1.1
   262      Host: deis.example.com
   263      Authorization: token abc123
   264  
   265  Example Response:
   266  
   267  .. code-block:: console
   268  
   269      HTTP/1.1 200 OK
   270      X_DEIS_API_VERSION: 1.1
   271      X_DEIS_PLATFORM_VERSION: 1.4.1
   272      Content-Type: text/plain
   273  
   274      "16:51:14 deis[api]: test created initial release\n"
   275  
   276  
   277  Run one-off Commands
   278  ````````````````````
   279  
   280  .. code-block:: console
   281  
   282      POST /v1/apps/example-go/run/ HTTP/1.1
   283      Host: deis.example.com
   284      Content-Type: application/json
   285      Authorization: token abc123
   286  
   287      {"command": "echo hi"}
   288  
   289  Example Response:
   290  
   291  .. code-block:: console
   292  
   293      HTTP/1.1 200 OK
   294      X_DEIS_API_VERSION: 1.1
   295      X_DEIS_PLATFORM_VERSION: 1.4.1
   296      Content-Type: application/json
   297  
   298      {"rc": 0, "output": "hi"}
   299  
   300  
   301  Containers
   302  ----------
   303  
   304  
   305  List all Containers
   306  ```````````````````
   307  
   308  Example Request:
   309  
   310  .. code-block:: console
   311  
   312      GET /v1/apps/example-go/containers/ HTTP/1.1
   313      Host: deis.example.com
   314      Authorization: token abc123
   315  
   316  Example Response:
   317  
   318  .. code-block:: console
   319  
   320      HTTP/1.1 200 OK
   321      X_DEIS_API_VERSION: 1.1
   322      X_DEIS_PLATFORM_VERSION: 1.4.1
   323      Content-Type: application/json
   324  
   325      {
   326          "count": 1,
   327          "next": null,
   328          "previous": null,
   329          "results": [
   330              {
   331                  "owner": "test",
   332                  "app": "example-go",
   333                  "release": "v2",
   334                  "created": "2014-01-01T00:00:00UTC",
   335                  "updated": "2014-01-01T00:00:00UTC",
   336                  "uuid": "de1bf5b5-4a72-4f94-a10c-d2a3741cdf75",
   337                  "type": "web",
   338                  "num": 1,
   339                  "state": "up"
   340              }
   341          ]
   342      }
   343  
   344  
   345  List all Containers by Type
   346  ```````````````````````````
   347  
   348  Example Request:
   349  
   350  .. code-block:: console
   351  
   352      GET /v1/apps/example-go/containers/web/ HTTP/1.1
   353      Host: deis.example.com
   354      Authorization: token abc123
   355  
   356  Example Response:
   357  
   358  .. code-block:: console
   359  
   360      HTTP/1.1 200 OK
   361      X_DEIS_API_VERSION: 1.1
   362      X_DEIS_PLATFORM_VERSION: 1.4.1
   363      Content-Type: application/json
   364  
   365      {
   366          "count": 1,
   367          "next": null,
   368          "previous": null,
   369          "results": [
   370              {
   371                  "owner": "test",
   372                  "app": "example-go",
   373                  "release": "v2",
   374                  "created": "2014-01-01T00:00:00UTC",
   375                  "updated": "2014-01-01T00:00:00UTC",
   376                  "uuid": "de1bf5b5-4a72-4f94-a10c-d2a3741cdf75",
   377                  "type": "web",
   378                  "num": 1,
   379                  "state": "up"
   380              }
   381          ]
   382      }
   383  
   384  
   385  Scale Containers
   386  ````````````````
   387  
   388  Example Request:
   389  
   390  .. code-block:: console
   391  
   392      POST /v1/apps/example-go/scale/ HTTP/1.1
   393      Host: deis.example.com
   394      Content-Type: application/json
   395      Authorization: token abc123
   396  
   397      {"web": 3}
   398  
   399  Example Response:
   400  
   401  .. code-block:: console
   402  
   403      HTTP/1.1 204 NO CONTENT
   404      X_DEIS_API_VERSION: 1.1
   405      X_DEIS_PLATFORM_VERSION: 1.4.1
   406  
   407  
   408  Configuration
   409  -------------
   410  
   411  
   412  List Application Configuration
   413  ``````````````````````````````
   414  
   415  Example Request:
   416  
   417  .. code-block:: console
   418  
   419      GET /v1/apps/example-go/config/ HTTP/1.1
   420      Host: deis.example.com
   421      Authorization: token abc123
   422  
   423  Example Response:
   424  
   425  .. code-block:: console
   426  
   427      HTTP/1.1 200 OK
   428      X_DEIS_API_VERSION: 1.1
   429      X_DEIS_PLATFORM_VERSION: 1.4.1
   430      Content-Type: application/json
   431  
   432      {
   433          "owner": "test",
   434          "app": "example-go",
   435          "values": {},
   436          "memory": {},
   437          "cpu": {},
   438          "tags": {},
   439          "created": "2014-01-01T00:00:00UTC",
   440          "updated": "2014-01-01T00:00:00UTC",
   441          "uuid": "de1bf5b5-4a72-4f94-a10c-d2a3741cdf75"
   442      }
   443  
   444  
   445  Create new Config
   446  `````````````````
   447  
   448  Example Request:
   449  
   450  .. code-block:: console
   451  
   452      POST /v1/apps/example-go/config/ HTTP/1.1
   453      Host: deis.example.com
   454      Content-Type: application/json
   455      Authorization: token abc123
   456  
   457      {"values": {"HELLO": "world", "PLATFORM: "deis"}}
   458  
   459  Example Response:
   460  
   461  .. code-block:: console
   462  
   463      HTTP/1.1 201 CREATED
   464      X_DEIS_API_VERSION: 1.1
   465      X_DEIS_PLATFORM_VERSION: 1.4.1
   466      Content-Type: application/json
   467      X-Deis-Release: 3
   468  
   469      {
   470          "owner": "test",
   471          "app": "example-go",
   472          "values": {
   473              "DEIS_APP": "example-go",
   474              "DEIS_RELEASE": "v3",
   475              "HELLO": "world",
   476              "PLATFORM": "deis"
   477  
   478          },
   479          "memory": {},
   480          "cpu": {},
   481          "tags": {},
   482          "created": "2014-01-01T00:00:00UTC",
   483          "updated": "2014-01-01T00:00:00UTC",
   484          "uuid": "de1bf5b5-4a72-4f94-a10c-d2a3741cdf75"
   485      }
   486  
   487  
   488  Unset Config Variable
   489  `````````````````````
   490  
   491  Example Request:
   492  
   493  .. code-block:: console
   494  
   495      POST /v1/apps/example-go/config/ HTTP/1.1
   496      Host: deis.example.com
   497      Content-Type: application/json
   498      Authorization: token abc123
   499  
   500      {"values": {"HELLO": null}}
   501  
   502  Example Response:
   503  
   504  .. code-block:: console
   505  
   506      HTTP/1.1 201 CREATED
   507      X_DEIS_API_VERSION: 1.1
   508      X_DEIS_PLATFORM_VERSION: 1.4.1
   509      Content-Type: application/json
   510      X-Deis-Release: 4
   511  
   512      {
   513          "owner": "test",
   514          "app": "example-go",
   515          "values": {
   516              "DEIS_APP": "example-go",
   517              "DEIS_RELEASE": "v4",
   518              "PLATFORM": "deis"
   519         },
   520          "memory": {},
   521          "cpu": {},
   522          "tags": {},
   523          "created": "2014-01-01T00:00:00UTC",
   524          "updated": "2014-01-01T00:00:00UTC",
   525          "uuid": "de1bf5b5-4a72-4f94-a10c-d2a3741cdf75"
   526      }
   527  
   528  
   529  Domains
   530  -------
   531  
   532  
   533  List Application Domains
   534  ````````````````````````
   535  
   536  Example Request:
   537  
   538  .. code-block:: console
   539  
   540      GET /v1/apps/example-go/domains/ HTTP/1.1
   541      Host: deis.example.com
   542      Authorization: token abc123
   543  
   544  Example Response:
   545  
   546  .. code-block:: console
   547  
   548      HTTP/1.1 200 OK
   549      X_DEIS_API_VERSION: 1.1
   550      X_DEIS_PLATFORM_VERSION: 1.4.1
   551      Content-Type: application/json
   552  
   553      {
   554          "count": 1,
   555          "next": null,
   556          "previous": null,
   557          "results": [
   558              {
   559                  "app": "example-go",
   560                  "created": "2014-01-01T00:00:00UTC",
   561                  "domain": "example.example.com",
   562                  "owner": "test",
   563                  "updated": "2014-01-01T00:00:00UTC"
   564              }
   565          ]
   566      }
   567  
   568  
   569  Add Domain
   570  ``````````
   571  
   572  Example Request:
   573  
   574  .. code-block:: console
   575  
   576      POST /v1/apps/example-go/domains/ HTTP/1.1
   577      Host: deis.example.com
   578      Authorization: token abc123
   579  
   580      {'domain': 'example.example.com'}
   581  
   582  Example Response:
   583  
   584  .. code-block:: console
   585  
   586      HTTP/1.1 201 CREATED
   587      X_DEIS_API_VERSION: 1.1
   588      X_DEIS_PLATFORM_VERSION: 1.4.1
   589      Content-Type: application/json
   590  
   591      {
   592          "app": "example-go",
   593          "created": "2014-01-01T00:00:00UTC",
   594          "domain": "example.example.com",
   595          "owner": "test",
   596          "updated": "2014-01-01T00:00:00UTC"
   597      }
   598  
   599  
   600  
   601  Remove Domain
   602  `````````````
   603  
   604  Example Request:
   605  
   606  .. code-block:: console
   607  
   608      DELETE /v1/apps/example-go/domains/example.example.com HTTP/1.1
   609      Host: deis.example.com
   610      Authorization: token abc123
   611  
   612  Example Response:
   613  
   614  .. code-block:: console
   615  
   616      HTTP/1.1 204 NO CONTENT
   617      X_DEIS_API_VERSION: 1.1
   618      X_DEIS_PLATFORM_VERSION: 1.4.1
   619  
   620  
   621  Builds
   622  ------
   623  
   624  
   625  List Application Builds
   626  ```````````````````````
   627  
   628  Example Request:
   629  
   630  .. code-block:: console
   631  
   632      GET /v1/apps/example-go/builds/ HTTP/1.1
   633      Host: deis.example.com
   634      Authorization: token abc123
   635  
   636  Example Response:
   637  
   638  .. code-block:: console
   639  
   640      HTTP/1.1 200 OK
   641      X_DEIS_API_VERSION: 1.1
   642      X_DEIS_PLATFORM_VERSION: 1.4.1
   643      Content-Type: application/json
   644  
   645      {
   646          "count": 1,
   647          "next": null,
   648          "previous": null,
   649          "results": [
   650              {
   651                  "app": "example-go",
   652                  "created": "2014-01-01T00:00:00UTC",
   653                  "dockerfile": "FROM deis/slugrunner RUN mkdir -p /app WORKDIR /app ENTRYPOINT [\"/runner/init\"] ADD slug.tgz /app ENV GIT_SHA 060da68f654e75fac06dbedd1995d5f8ad9084db",
   654                  "image": "example-go",
   655                  "owner": "test",
   656                  "procfile": {
   657                      "web": "example-go"
   658                  },
   659                  "sha": "060da68f",
   660                  "updated": "2014-01-01T00:00:00UTC",
   661                  "uuid": "de1bf5b5-4a72-4f94-a10c-d2a3741cdf75"
   662              }
   663          ]
   664      }
   665  
   666  
   667  Create Application Build
   668  ````````````````````````
   669  
   670  Example Request:
   671  
   672  .. code-block:: console
   673  
   674      POST /v1/apps/example-go/builds/ HTTP/1.1
   675      Host: deis.example.com
   676      Content-Type: application/json
   677      Authorization: token abc123
   678  
   679      {"image": "deis/example-go:latest"}
   680  
   681  Example Response:
   682  
   683  .. code-block:: console
   684  
   685      HTTP/1.1 201 CREATED
   686      X_DEIS_API_VERSION: 1.1
   687      X_DEIS_PLATFORM_VERSION: 1.4.1
   688      Content-Type: application/json
   689      X-Deis-Release: 4
   690  
   691      {
   692          "app": "example-go",
   693          "created": "2014-01-01T00:00:00UTC",
   694          "dockerfile": "",
   695          "image": "deis/example-go:latest",
   696          "owner": "test",
   697          "procfile": {},
   698          "sha": "",
   699          "updated": "2014-01-01T00:00:00UTC",
   700          "uuid": "de1bf5b5-4a72-4f94-a10c-d2a3741cdf75"
   701      }
   702  
   703  
   704  Releases
   705  --------
   706  
   707  
   708  List Application Releases
   709  `````````````````````````
   710  
   711  Example Request:
   712  
   713  .. code-block:: console
   714  
   715      GET /v1/apps/example-go/releases/ HTTP/1.1
   716      Host: deis.example.com
   717      Authorization: token abc123
   718  
   719  Example Response:
   720  
   721  .. code-block:: console
   722  
   723      HTTP/1.1 200 OK
   724      X_DEIS_API_VERSION: 1.1
   725      X_DEIS_PLATFORM_VERSION: 1.4.1
   726      Content-Type: application/json
   727  
   728      {
   729          "count": 3,
   730          "next": null,
   731          "previous": null,
   732          "results": [
   733              {
   734                  "app": "example-go",
   735                  "build": "202d8e4b-600e-4425-a85c-ffc7ea607f61",
   736                  "config": "ed637ceb-5d32-44bd-9406-d326a777a513",
   737                  "created": "2014-01-01T00:00:00UTC",
   738                  "owner": "test",
   739                  "summary": "test changed nothing",
   740                  "updated": "2014-01-01T00:00:00UTC",
   741                  "uuid": "de1bf5b5-4a72-4f94-a10c-d2a3741cdf75",
   742                  "version": 3
   743              },
   744              {
   745                  "app": "example-go",
   746                  "build": "202d8e4b-600e-4425-a85c-ffc7ea607f61",
   747                  "config": "95bd6dea-1685-4f78-a03d-fd7270b058d1",
   748                  "created": "2014-01-01T00:00:00UTC",
   749                  "owner": "test",
   750                  "summary": "test deployed 060da68",
   751                  "updated": "2014-01-01T00:00:00UTC",
   752                  "uuid": "de1bf5b5-4a72-4f94-a10c-d2a3741cdf75",
   753                  "version": 2
   754              },
   755              {
   756                  "app": "example-go",
   757                  "build": null,
   758                  "config": "95bd6dea-1685-4f78-a03d-fd7270b058d1",
   759                  "created": "2014-01-01T00:00:00UTC",
   760                  "owner": "test",
   761                  "summary": "test created initial release",
   762                  "updated": "2014-01-01T00:00:00UTC",
   763                  "uuid": "de1bf5b5-4a72-4f94-a10c-d2a3741cdf75",
   764                  "version": 1
   765              }
   766          ]
   767      }
   768  
   769  
   770  List Release Details
   771  ````````````````````
   772  
   773  Example Request:
   774  
   775  .. code-block:: console
   776  
   777      GET /v1/apps/example-go/releases/v1/ HTTP/1.1
   778      Host: deis.example.com
   779      Authorization: token abc123
   780  
   781  Example Response:
   782  
   783  .. code-block:: console
   784  
   785      HTTP/1.1 200 OK
   786      X_DEIS_API_VERSION: 1.1
   787      X_DEIS_PLATFORM_VERSION: 1.4.1
   788      Content-Type: application/json
   789  
   790      {
   791          "app": "example-go",
   792          "build": null,
   793          "config": "95bd6dea-1685-4f78-a03d-fd7270b058d1",
   794          "created": "2014-01-01T00:00:00UTC",
   795          "owner": "test",
   796          "summary": "test created initial release",
   797          "updated": "2014-01-01T00:00:00UTC",
   798          "uuid": "de1bf5b5-4a72-4f94-a10c-d2a3741cdf75",
   799          "version": 1
   800      }
   801  
   802  
   803  Rollback Release
   804  ````````````````
   805  
   806  Example Request:
   807  
   808  .. code-block:: console
   809  
   810      POST /v1/apps/example-go/releases/rollback/ HTTP/1.1
   811      Host: deis.example.com
   812      Content-Type: application/json
   813      Authorization: token abc123
   814  
   815      {"version": 1}
   816  
   817  Example Response:
   818  
   819  .. code-block:: console
   820  
   821      HTTP/1.1 201 CREATED
   822      X_DEIS_API_VERSION: 1.1
   823      X_DEIS_PLATFORM_VERSION: 1.4.1
   824      Content-Type: application/json
   825  
   826      {"version": 5}
   827  
   828  
   829  Keys
   830  ----
   831  
   832  
   833  List Keys
   834  `````````
   835  
   836  Example Request:
   837  
   838  .. code-block:: console
   839  
   840      GET /v1/keys/ HTTP/1.1
   841      Host: deis.example.com
   842      Authorization: token abc123
   843  
   844  Example Response:
   845  
   846  .. code-block:: console
   847  
   848      {
   849      X_DEIS_API_VERSION: 1.1
   850      X_DEIS_PLATFORM_VERSION: 1.4.1
   851          "count": 1,
   852          "next": null,
   853          "previous": null,
   854          "results": [
   855              {
   856                  "created": "2014-01-01T00:00:00UTC",
   857                  "id": "test@example.com",
   858                  "owner": "test",
   859                  "public": "ssh-rsa <...>",
   860                  "updated": "2014-01-01T00:00:00UTC",
   861                  "uuid": "de1bf5b5-4a72-4f94-a10c-d2a3741cdf75"
   862              }
   863          ]
   864      }
   865  
   866  
   867  Add Key to User
   868  ```````````````
   869  
   870  Example Request:
   871  
   872  .. code-block:: console
   873  
   874      POST /v1/keys/ HTTP/1.1
   875      Host: deis.example.com
   876      Authorization: token abc123
   877  
   878      {
   879          "id": "example",
   880          "public": "ssh-rsa <...>"
   881      }
   882  
   883  Example Response:
   884  
   885  .. code-block:: console
   886  
   887      HTTP/1.1 201 CREATED
   888      X_DEIS_API_VERSION: 1.1
   889      X_DEIS_PLATFORM_VERSION: 1.4.1
   890      Content-Type: application/json
   891  
   892      {
   893          "created": "2014-01-01T00:00:00UTC",
   894          "id": "example",
   895          "owner": "example",
   896          "public": "ssh-rsa <...>",
   897          "updated": "2014-01-01T00:00:00UTC",
   898          "uuid": "de1bf5b5-4a72-4f94-a10c-d2a3741cdf75"
   899      }
   900  
   901  
   902  Remove Key from User
   903  ````````````````````
   904  
   905  Example Request:
   906  
   907  .. code-block:: console
   908  
   909      DELETE /v1/keys/example HTTP/1.1
   910      Host: deis.example.com
   911      Authorization: token abc123
   912  
   913  Example Response:
   914  
   915  .. code-block:: console
   916  
   917      HTTP/1.1 204 NO CONTENT
   918      X_DEIS_API_VERSION: 1.1
   919      X_DEIS_PLATFORM_VERSION: 1.4.1
   920  
   921  
   922  Permissions
   923  -----------
   924  
   925  
   926  List Application Permissions
   927  ````````````````````````````
   928  
   929  Example Request:
   930  
   931  .. code-block:: console
   932  
   933      GET /v1/apps/example-go/perms/ HTTP/1.1
   934      Host: deis.example.com
   935      Authorization: token abc123
   936  
   937  Example Response:
   938  
   939  .. code-block:: console
   940  
   941      HTTP/1.1 200 OK
   942      X_DEIS_API_VERSION: 1.1
   943      X_DEIS_PLATFORM_VERSION: 1.4.1
   944      Content-Type: application/json
   945  
   946      {
   947          "users": []
   948      }
   949  
   950  
   951  Create Application Permission
   952  `````````````````````````````
   953  
   954  Example Request:
   955  
   956  .. code-block:: console
   957  
   958      POST /v1/apps/example-go/perms/ HTTP/1.1
   959      Host: deis.example.com
   960      Authorization: token abc123
   961  
   962      {"username": "example"}
   963  
   964  Example Response:
   965  
   966  .. code-block:: console
   967  
   968      HTTP/1.1 201 CREATED
   969      X_DEIS_API_VERSION: 1.1
   970      X_DEIS_PLATFORM_VERSION: 1.4.1
   971  
   972  
   973  Remove Application Permission
   974  `````````````````````````````
   975  
   976  Example Request:
   977  
   978  .. code-block:: console
   979  
   980      POST /v1/apps/example-go/perms/example HTTP/1.1
   981      Host: deis.example.com
   982      Authorization: token abc123
   983  
   984  Example Response:
   985  
   986  .. code-block:: console
   987  
   988      HTTP/1.1 204 NO CONTENT
   989      X_DEIS_API_VERSION: 1.1
   990      X_DEIS_PLATFORM_VERSION: 1.4.1
   991  
   992  Grant User Administrative Privileges
   993  ````````````````````````````````````
   994  
   995  .. note::
   996  
   997      This command requires administrative privileges
   998  
   999  Example Request:
  1000  
  1001  .. code-block:: console
  1002  
  1003      POST /v1/admin/perms HTTP/1.1
  1004      Host: deis.example.com
  1005      Authorization: token abc123
  1006  
  1007      {"username": "example"}
  1008  
  1009  Example Response:
  1010  
  1011  .. code-block:: console
  1012  
  1013      HTTP/1.1 201 CREATED
  1014      X_DEIS_API_VERSION: 1.1
  1015      X_DEIS_PLATFORM_VERSION: 1.4.1