FURMS REST API (4.2.2)

Download OpenAPI specification:Download

License: BSD

Authentication

CIdP token

Pre-shared secret between Fenix central IdP and FURMS shall be used for authentication and authorization of each request with HTTP Basic encoding in HTTP header

Security Scheme Type HTTP
HTTP Authorization Scheme BASIC

FURMS API token

Pre-shared token generated by FURMS shall be used for authentication and authorization of each request, together with owner's user id presented next to the generated token.

Security Scheme Type HTTP
HTTP Authorization Scheme BASIC

Communities Endpoint

FURMS administration endpoint that provides comprehensive access to communities as well as exposes basic operations that can be done in the context of communities.

Get group with members

Returns complete information about a group, including membership information.

Authorizations:
path Parameters
communityId
required
string
groupId
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "description": "string",
  • "memberFenixUserIds": [
    ]
}

Update group

Update mutable elements of a group.

Authorizations:
path Parameters
communityId
required
string
groupId
required
string
Request Body schema: application/json
name
string
description
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "description": "string"
}

Delete group

Removes a group from a community.

Authorizations:
path Parameters
communityId
required
string
groupId
required
string

Responses

Retrieve all groups

Returns information about all groups in a community.

Authorizations:
path Parameters
communityId
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Add group

Creates a new group in a community.

Authorizations:
path Parameters
communityId
required
string
Request Body schema: application/json
name
string
description
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "description": "string"
}

Retrieve all allocations

Retrieve all allocations of a community.

Authorizations:
path Parameters
communityId
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create allocation

Create a new allocation for a community.

Authorizations:
path Parameters
communityId
required
string
Request Body schema: application/json
creditId
string
name
string
amount
number

Responses

Request samples

Content type
application/json
{
  • "creditId": "string",
  • "name": "string",
  • "amount": 0
}

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve all communities

Returns complete information about all communities including its allocations

Authorizations:

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve particular community

Returns complete information about community including its allocations

Authorizations:
path Parameters
communityId
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "allocations": [
    ]
}

Get all community projects

Returns complete information about projects related to specific community.

Authorizations:
path Parameters
communityId
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve allocation

Retrieve a particular allocation of a community.

Authorizations:
path Parameters
communityId
required
string
communityAllocationId
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "creditId": "string",
  • "resourceUnit": "string",
  • "siteId": "string",
  • "siteName": "string",
  • "serviceId": "string",
  • "serviceName": "string",
  • "amount": 0
}

Site Endpoint

FURMS administration endpoint that provides comprehensive access to information about sites as well as exposes basic operations that can be done in a site context.

Retry site request

Retry sending a request to a site agent.

Authorizations:
path Parameters
siteId
required
string
messageId
required
string

Responses

Drop pending request

Removes a pending protocol request. It won't be possible to retry the removed request, FURMS will assume it has timed out.

Authorizations:
path Parameters
siteId
required
string
messageId
required
string

Responses

Accept sites policy on behalf of user

Performs operation of accepting the policy on behalf of given user.

Authorizations:
path Parameters
siteId
required
string
policyId
required
string
fenixUserId
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve all sites

Returns complete information about all sites including their allocations, resource types, services and policies.

Authorizations:

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve particular site information

Returns complete information about a site, including its all allocations, resource types, services and policies

Authorizations:
path Parameters
siteId
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "sitePolicyId": "string",
  • "resourceCredits": [
    ],
  • "resourceTypes": [
    ],
  • "services": [
    ],
  • "policies": [
    ]
}

Retrieve all users that should have access to a site

Returns list of users that have access to the site through at least one of their projects. SSH key of each user is provided as well.

Authorizations:
path Parameters
siteId
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve site user

Returns a specified user by Fenix id, assuming that this user has access to the site.

Authorizations:
path Parameters
siteId
required
string
userId
required
string

Responses

Response samples

Content type
application/json
{
  • "user": {
    },
  • "uid": "string",
  • "sshKeys": [
    ],
  • "projectIds": [
    ]
}

Retrieve project resource usage records

Retrieve individual resoruce usage records, stored by FURMS for a given project on a site. Records have per-user granularity. Caller can limit time range of records.

Authorizations:
path Parameters
siteId
required
string
projectId
required
string
query Parameters
from
string <date-time>
until
string <date-time>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve site allocated resources to projects

Retrieve all project allocations at the site as assigned by the site

Authorizations:
path Parameters
siteId
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve site allocated resources to a project

Retrieve given project allocations at the site as assigned by the site

Authorizations:
path Parameters
siteId
required
string
projectId
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve all services

Authorizations:
path Parameters
siteId
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a given site service

Authorizations:
path Parameters
siteId
required
string
serviceId
required
string

Responses

Response samples

Content type
application/json
{
  • "serviceId": "string",
  • "name": "string",
  • "policyId": "string"
}

Retrieve all resource types

Authorizations:
path Parameters
siteId
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a given resource type

Authorizations:
path Parameters
siteId
required
string
resourceTypeId
required
string

Responses

Response samples

Content type
application/json
{
  • "typeId": "string",
  • "name": "string",
  • "serviceId": "string"
}

Retrieve pending requests

Returns all pending site's requests, which were sent to the site agent.

Authorizations:
path Parameters
siteId
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve project installations

Returns list of projects that should be installed on the site with details of installation status

Authorizations:
path Parameters
siteId
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve site policies acceptance

Returns list of all site's users with policies and status whether given policy is accepcted or not.

Authorizations:
path Parameters
siteId
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve site policies

Authorizations:
path Parameters
siteId
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a given site policy

Authorizations:
path Parameters
siteId
required
string
policyId
required
string

Responses

Response samples

Content type
application/json
{
  • "policyId": "string",
  • "name": "string",
  • "revision": 0
}

Retrieve all FURMS allocations at the site

Retrieve all project allocations at the site as assigned in FURMS

Authorizations:
path Parameters
siteId
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve FURMS allocations at the site of a project

Retrieve given project allocations at the site as assigned in FURMS

Authorizations:
path Parameters
siteId
required
string
projectId
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve cumulative project resource consumption

Retrieve cumultaive resoruce consumption recorded by FURMS for a given project on a site.

Authorizations:
path Parameters
siteId
required
string
projectId
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve credits

Retrieve all resource credits of a site.

Authorizations:
path Parameters
siteId
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve resource credit

Retrieve details of a given resource credit.

Authorizations:
path Parameters
siteId
required
string
creditId
required
string

Responses

Response samples

Content type
application/json
{
  • "creditId": "string",
  • "name": "string",
  • "validity": {
    },
  • "resourceTypeId": "string",
  • "amount": {
    }
}

Central IdP Endpoint

API intended for use by Fenix Central IdP, providing access to FURMS user attributes and basic user management.

Get user status

Authorizations:
path Parameters
fenixUserId
required
string

Responses

Response samples

Content type
application/json
{
  • "status": "ENABLED"
}

Set user status

Authorizations:
path Parameters
fenixUserId
required
string
Request Body schema: application/json
status
string
Enum: "ENABLED" "DISABLED"

Responses

Request samples

Content type
application/json
{
  • "status": "ENABLED"
}

Retrieve user attributes

Returns a complete information about a given user, including project membership and global attributes.

Authorizations:
path Parameters
fenixUserId
required
string

Responses

Response samples

Content type
application/json
{
  • "user": {
    },
  • "userStatus": "ENABLED",
  • "siteAccess": [
    ],
  • "groupAccess": [
    ]
}

Retrieve user attributes on specific site

Returns a complete information about a given user for specific site, including project membership and global attributes.

Authorizations:
path Parameters
fenixUserId
required
string
oauthClientId
required
string

Responses

Response samples

Content type
application/json
{
  • "user": {
    },
  • "userStatus": "ENABLED",
  • "siteAccess": [
    ],
  • "groupAccess": [
    ]
}

Projects Endpoint

FURMS administration endpoint that provides comprehensive access to Projects as well as exposes basic operations that can be done in context of a Projects

Retrieve project information with members

Returns complete information about project including its allocations and its members.

Authorizations:
path Parameters
projectId
required
string

Responses

Response samples

Content type
application/json
{
  • "project": {
    },
  • "userFenixUserIds": [
    ]
}

Update project

Update particular project.

Authorizations:
path Parameters
projectId
required
string
Request Body schema: application/json
name
string
description
string
object (Validity)
researchField
string
projectLeaderId
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "validity": {
    },
  • "researchField": "string",
  • "projectLeaderId": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "acronym": "string",
  • "name": "string",
  • "communityId": "string",
  • "researchField": "string",
  • "installations": [
    ],
  • "description": "string",
  • "validity": {
    },
  • "projectLeader": {
    }
}

Delete project

Removes project from community.

Authorizations:
path Parameters
projectId
required
string

Responses

Retrieve all projects

Returns complete information about all projects including its allocations

Authorizations:

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Add project

Creates project under particular community.

Authorizations:
Request Body schema: application/json
communityId
string
acronym
string
gid
string
name
string
description
string
object (Validity)
researchField
string
projectLeaderId
string

Responses

Request samples

Content type
application/json
{
  • "communityId": "string",
  • "acronym": "string",
  • "gid": "string",
  • "name": "string",
  • "description": "string",
  • "validity": {
    },
  • "researchField": "string",
  • "projectLeaderId": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "acronym": "string",
  • "name": "string",
  • "communityId": "string",
  • "researchField": "string",
  • "installations": [
    ],
  • "description": "string",
  • "validity": {
    },
  • "projectLeader": {
    }
}

Retrieve all allocations

Retrieve all project's allocations information

Authorizations:
path Parameters
projectId
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create allocation

Allocate resources to a project.

Authorizations:
path Parameters
projectId
required
string
Request Body schema: application/json
communityAllocationId
string
communityId
string
name
string
resourceTypeId
string
amount
number

Responses

Request samples

Content type
application/json
{
  • "communityAllocationId": "string",
  • "communityId": "string",
  • "name": "string",
  • "resourceTypeId": "string",
  • "amount": 0
}

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve allocation information

Retrieve project's allocation information

Authorizations:
path Parameters
projectId
required
string
projectAllocationId
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "projectId": "string",
  • "communityAllocationId": "string",
  • "name": "string",
  • "resourceTypeId": "string",
  • "resourceUnit": "string",
  • "siteId": "string",
  • "siteName": "string",
  • "serviceId": "string",
  • "serviceName": "string",
  • "amount": 0
}