POST //v1/roles/<requestNumber>/<roleType>/<username>
add a role

Params

Param name Description
requestNumber
required

Validations:

  • Must be a String

roleType
required

Validations:

  • Must be a Integer

username
required

Validations:

  • Must be a String

isAccountToBeCreated
optional

Validations:

  • Must be one of: true, false.

Returns

Code: 200

Description:

OK

Param name Description

DELETE //v1/roles/<requestNumber>/<roleType>/<username>
delete a role

Params

Param name Description
requestNumber
required

Validations:

  • Must be a String

roleType
required

Validations:

  • Must be a Integer

username
required

Validations:

  • Must be a String

Returns

Code: 200

Description:

OK

Param name Description

GET //v1/roles/<requestNumber>/Users
get users on resources

Retrieves users on resources from the accounting service.

Examples

{
  "message": null,
  "result": {
    "users": [
      {
        "username": "mshapiro",
        "firstName": "Michael",
        "middleName": null,
        "lastName": "Shapiro",
        "email": "mshapiro@ncsa.edu",
        "phone": "(217) 244-1514",
        "organization": "University of Illinois at Urbana-Champaign",
        "academicStatus": "Center Researcher Staff",
        "residenceCountry": "United States",
        "isReconciled": true,
        "orcid": null,
        "resources": [530001]
      }
    ],
    "resources": [
      {
        "resourceId": 530001,
        "resourceName": "Open Storage Network (OSN)",
        "displayResourceName": "Open Storage Network (OSN)",
        "resourceType": "Storage",
        "description": null,
        "organization": "Open Storage Network"
      }
    ]
  }
}

Params

Param name Description
requestNumber
required

Validations:

  • Must be a String

Returns

Code: 200

Description:

OK

Param name Description
message
required

Validations:

  • Must be a String

result
required

Validations:

  • Must be a Hash

result[users]
required

Validations:

  • Must be an Array of nested elements

result[users][username]
required

Validations:

  • Must be a String

result[users][firstName]
required

Validations:

  • Must be a String

result[users][middleName]
required

Validations:

  • Must be a String

result[users][lastName]
required

Validations:

  • Must be a String

result[users][email]
required

Validations:

  • Must be a String

result[users][phone]
required

Validations:

  • Must be a String

result[users][organization]
required

Validations:

  • Must be a String

result[users][academicStatus]
required

Validations:

  • Must be a String

result[users][residenceCountry]
required

Validations:

  • Must be a String

result[users][orcid]
required

Validations:

  • Must be a String

result[users][resources]
required

Validations:

  • Must be an array of Integer

result[resources]
required

Validations:

  • Must be an Array of nested elements

result[resources][resourceId]
required

Validations:

  • Must be a Integer

result[resources][resourceName]
required

Validations:

  • Must be a String

result[resources][displayResourceName]
required

Validations:

  • Must be a String

result[resources][resourceType]
required

Validations:

  • Must be a String

result[resources][description]
required

Validations:

  • Must be a String

result[resources][organization]
required

Validations:

  • Must be a String


POST //v1/roles/<requestNumber>/Users
add or remove users from resources

XRAS doesn’t keep track of users on resources, only whether or not a person has a “User” role on a request. However, this endpoint passes the resource information on to the accounting service and can be used to keep roles in XRAS and the accounting service in sync.

Accepts a JSON body like the following:

[
  {"username": "mshapiro", "resources": [531001, 530299]},
  {"username": "hackwort", "resources": []}
]

XRAS will retrieve user information from the accounting service and perform the necessary requests to the accounting service to add or remove users from resources.

If a username is not referenced in the POSTed body, no action will be taken for that user.

For allocations processes without an accounting service, this route will return a 501/Not Implemented. Use /v1/roles/:requestNumber/User/:username instead.

Params

Param name Description
requestNumber
required

Validations:

  • Must be a String

_json
optional

Validations:

  • Must be an Array of nested elements

_json[username]
required

Validations:

  • Must be a String

_json[resources]
required

Validations:

  • Must be an array of Integer

Returns

Code: 200

Description:

OK

Param name Description

Code: 404

Description:

Not Found

Param name Description
message
required

“requestNumber ‘<requestNumber>’ not found”

Validations:

  • Must be a String

Code: 501

Description:

Not Implemented

Param name Description
message
required

“No accounting service available”

Validations:

  • Must be a String