# account.py

`GET` `/accounts/<account>/attr/`

  list all attributes for an account.

  Example request:

      GET /accounts/<account>/attr/ HTTP/1.1

  Example response:

      HTTP/1.1 200 OK
      Vary: Accept
      Content-Type: 'application/json'

  Status Codes: | 404 Not Found – ‘AccountNotFound’: e.args[0][0] 500 Internal Server Error – e.__class__.__name__: e.args[0][0]

`POST` `/accounts/<account>/attr/<key>`

  Add attributes to an account.

  Example request:

      POST /accounts/<account>/attr/<key> HTTP/1.1

  Example response:

      HTTP/1.1 200 OK
      Vary: Accept
      Content-Type:

  Status Codes: | 400 Bad Request – ‘ValueError’: ‘cannot decode json parameter dictionary’ 400 Bad Request – ‘KeyError’: ‘%s not defined’ % str(e 400 Bad Request – ‘TypeError’: ‘body must be a json dictionary’ 401 Unauthorized – ‘AccessDenied’: e.args[0][0] 409 Conflict – ‘Duplicate’: e.args[0][0] 404 Not Found – ‘AccountNotFound’: e.args[0][0]

`DELETE` `/accounts/<account>/attr/<key>`

  disable account with given account name.

  Example request:

      DELETE /accounts/<account>/attr/<key> HTTP/1.1

  Example response:

      HTTP/1.1 200 OK
      Vary: Accept
      Content-Type:

  Status Codes: | 401 Unauthorized – ‘AccessDenied’: e.args[0][0] 404 Not Found – ‘AccountNotFound’: e.args[0][0]

`GET` `/accounts/<account>/scopes/`

  list all scopes for an account.

  Example request:

      GET /accounts/<account>/scopes/ HTTP/1.1

  Example response:

      HTTP/1.1 200 OK
      Vary: Accept
      Content-Type: 'application/json'

  Status Codes: | 404 Not Found – ‘AccountNotFound’: e.args[0][0] 500 Internal Server Error – e.__class__.__name__: e.args[0][0] 404 Not Found – ‘ScopeNotFound’: ‘no scopes found for account ID ‘%s” % account

`POST` `/accounts/<account>/scopes/<scope>`

  create scope with given scope name.

  Example request:

      POST /accounts/<account>/scopes/<scope> HTTP/1.1

  Example response:

      HTTP/1.1 200 OK
      Vary: Accept
      Content-Type:

  Status Codes: | 401 Unauthorized – ‘AccessDenied’: e.args[0][0] 409 Conflict – ‘Duplicate’: e.args[0][0] 404 Not Found – ‘AccountNotFound’: e.args[0][0] 500 Internal Server Error – e.__class__.__name__: e.args[0][0]

`GET` `/accounts/<account>`

  get account information for given account name.

  Example request:

      GET /accounts/<account> HTTP/1.1

  Example response:

      HTTP/1.1 200 OK
      Vary: Accept
      Content-Type: 'application/json'

  Status Codes: | 404 Not Found – ‘AccountNotFound’: e.args[0][0] 401 Unauthorized – ‘AccessDenied’: e.args[0][0] 500 Internal Server Error – e.__class__.__name__: e.args[0][0]

`POST` `/accounts/<account>`

  create account with given account name.

  Example request:

      POST /accounts/<account> HTTP/1.1

  Example response:

      HTTP/1.1 200 OK
      Vary: Accept
      Content-Type:

  Status Codes: | 400 Bad Request – ‘ValueError’: ‘cannot decode json parameter dictionary’ 400 Bad Request – ‘KeyError’: ‘%s not defined’ % str(e 400 Bad Request – ‘TypeError’: ‘body must be a json dictionary’ 409 Conflict – ‘Duplicate’: e.args[0][0] 401 Unauthorized – ‘AccessDenied’: e.args[0][0] 500 Internal Server Error – e.__class__.__name__: e.args[0][0]

`DELETE` `/accounts/<account>`

  disable account with given account name.

  Example request:

      DELETE /accounts/<account> HTTP/1.1

  Example response:

      HTTP/1.1 200 OK
      Vary: Accept
      Content-Type:

  Status Codes: | 401 Unauthorized – ‘AccessDenied’: e.args[0][0] 404 Not Found – ‘AccountNotFound’: e.args[0][0]

`GET` `/accounts/?$/?$`

  list all rucio accounts.

  Example request:

      GET /accounts/?$/?$ HTTP/1.1

  Example response:

      HTTP/1.1 200 OK
      Vary: Accept
      Content-Type: 'application/x-json-stream'

`GET` `/accounts/<account>/limits/<rse=None>`

  get the current limits for an account on a specific RSE

  Example request:

      GET /accounts/<account>/limits/<rse=None> HTTP/1.1

  Example response:

      HTTP/1.1 200 OK
      Vary: Accept
      Content-Type: 'application/json'

  Status Codes: | 404 Not Found – ‘RSENotFound’: e.args[0][0]

`POST` `/accounts/<account>/identities`

  Grant an identity access to an account.

  Example request:

      POST /accounts/<account>/identities HTTP/1.1

  Example response:

      HTTP/1.1 200 OK
      Vary: Accept
      Content-Type:

  Status Codes: | 400 Bad Request – ‘ValueError’: ‘cannot decode json parameter dictionary’ 400 Bad Request – ‘KeyError’: ‘%s not defined’ % str(e 400 Bad Request – ‘TypeError’: ‘body must be a json dictionary’ 401 Unauthorized – ‘AccessDenied’: e.args[0][0] 409 Conflict – ‘Duplicate’: e.args[0][0] 404 Not Found – ‘AccountNotFound’: e.args[0][0]

`GET` `/accounts/<account>/identities`

  > No doc string

  Example request:

      GET /accounts/<account>/identities HTTP/1.1

  Example response:

      HTTP/1.1 200 OK
      Vary: Accept
      Content-Type: 'application/x-json-stream'

`DELETE` `/accounts/<account>/identities`

  Delete an account’s identity mapping.

  Example request:

      DELETE /accounts/<account>/identities HTTP/1.1

  Example response:

      HTTP/1.1 200 OK
      Vary: Accept
      Content-Type:

  Status Codes: | 400 Bad Request – ‘ValueError’: ‘cannot decode json parameter dictionary’ 400 Bad Request – ‘KeyError’: ‘%s not defined’ % str(e 400 Bad Request – ‘TypeError’: ‘body must be a json dictionary’ 401 Unauthorized – ‘AccessDenied’: e.args[0][0] 404 Not Found – ‘AccountNotFound’: e.args[0][0] 404 Not Found – ‘IdentityError’: e.args[0][0]

`GET` `/accounts/<account>/rules`

  > Return all rules of a given account.

  Example request:

      GET /accounts/<account>/rules HTTP/1.1

  Example response:

      HTTP/1.1 200 OK
      Vary: Accept
      Content-Type: 'application/x-json-stream'

  Status Codes: | 404 Not Found – ‘RuleNotFound’: e.args[0][0]

`GET` `/accounts/<account>/usage/`

  > Return the account usage of the account.

  Example request:

      GET /accounts/<account>/usage/ HTTP/1.1

  Example response:

      HTTP/1.1 200 OK
      Vary: Accept
      Content-Type: 'application/x-json-stream'

  Status Codes: | 404 Not Found – ‘AccountNotFound’: e.args[0][0] 401 Unauthorized – ‘AccessDenied’: e.args[0][0]

`GET` `/accounts/<account>/usage/<rse>`

  > Return the account usage of the account.

  Example request:

      GET /accounts/<account>/usage/<rse> HTTP/1.1

  Example response:

      HTTP/1.1 200 OK
      Vary: Accept
      Content-Type: 'application/x-json-stream'

  Status Codes: | 404 Not Found – ‘AccountNotFound’: e.args[0][0] 404 Not Found – ‘RSENotFound’: e.args[0][0] 401 Unauthorized – ‘AccessDenied’: e.args[0][0]