Invite API (v1)

Download OpenAPI specification:Download

Invite external API endpoints

Authentication

openId

Security Scheme Type OAuth2
authorizationCode OAuth Flow
Authorization URL: https://connect.test2.surfconext.nl/oidc/authorize
Token URL: https://connect.test2.surfconext.nl/oidc/token
Scopes:
  • openid -

    openid

apiTokens

Security Scheme Type API Key
Header parameter name: X-API-TOKEN

basic_auth

Security Scheme Type HTTP
HTTP Authorization Scheme basic

user-role-controller

updateUserRoleExpirationDate

Authorizations:
openId (openid) apiTokens
Request Body schema: application/json
userRoleId
required
integer <int64>
endDate
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "userRoleId": 0,
  • "endDate": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "property1": 0,
  • "property2": 0
}

Add Role to a User

Provision the User if the User is unknown and add the Role(s)

Authorizations:
openId (openid) apiTokens
Request Body schema: application/json
roleIdentifiers
required
Array of integers <int64>
intendedAuthority
string
Enum: "SUPER_USER" "INSTITUTION_ADMIN" "MANAGER" "INVITER" "GUEST"
sub
string
email
required
string
eduPersonPrincipalName
string
givenName
string
familyName
string
name
string
schacHomeOrganization
string
guestRoleIncluded
boolean

Responses

Request samples

Content type
application/json
{
  • "roleIdentifiers": [
    ],
  • "intendedAuthority": "SUPER_USER",
  • "sub": "string",
  • "email": "string",
  • "eduPersonPrincipalName": "string",
  • "givenName": "string",
  • "familyName": "string",
  • "name": "string",
  • "schacHomeOrganization": "string",
  • "guestRoleIncluded": true
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "sub": "string",
  • "superUser": true,
  • "eduPersonPrincipalName": "string",
  • "givenName": "string",
  • "familyName": "string",
  • "name": "string",
  • "subjectId": "string",
  • "eduId": "string",
  • "uid": "string",
  • "schacHomeOrganization": "string",
  • "organizationGUID": "string",
  • "institutionAdmin": true,
  • "institutionAdminByInvite": true,
  • "email": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "lastActivity": "2019-08-24T14:15:22Z",
  • "userRoles": [
    ],
  • "applications": [
    ],
  • "institution": {
    }
}

searchPaginated_1

Authorizations:
openId (openid) apiTokens
path Parameters
roleId
required
integer <int64>
guests
required
boolean
query Parameters
query
required
string
pageNumber
integer <int32>
Default: 0
pageSize
integer <int32>
Default: 10
sort
string
Default: "id"
sortDirection
string
Default: "ASC"

Responses

Response samples

Content type
application/json
{
  • "totalElements": 0,
  • "totalPages": 0,
  • "pageable": {
    },
  • "size": 0,
  • "content": [
    ],
  • "number": 0,
  • "sort": [
    ],
  • "first": true,
  • "last": true,
  • "numberOfElements": 0,
  • "empty": true
}

byRole

Authorizations:
openId (openid) apiTokens
path Parameters
roleId
required
integer <int64>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

consequencesDeleteRole

Authorizations:
openId (openid) apiTokens
path Parameters
roleId
required
integer <int64>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

deleteUserRole

Authorizations:
openId (openid) apiTokens
path Parameters
id
required
integer <int64>
isGuest
required
boolean

Responses

teams-controller

migrateTeam

Authorizations:
Request Body schema: application/json
urn
string
name
string
description
string
Array of objects (Membership)
Array of objects (Application)

Responses

Request samples

Content type
application/json
{
  • "urn": "string",
  • "name": "string",
  • "description": "string",
  • "memberships": [
    ],
  • "applications": [
    ]
}

Response samples

Content type
application/json
{
  • "property1": 0,
  • "property2": 0
}

system-controller

performanceSeed

Authorizations:
openId (openid)

Responses

Response samples

Content type
application/json
{
  • "property1": { },
  • "property2": { }
}

unknownRoles

Authorizations:
openId (openid)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

expiryUserRoles

Authorizations:
openId (openid)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

expiryNotifications

Authorizations:
openId (openid)

Responses

Response samples

Content type
application/json
{
  • "property1": [
    ],
  • "property2": [
    ]
}

cronCleanup

Authorizations:
openId (openid)

Responses

Response samples

Content type
application/json
{
  • "property1": [
    ],
  • "property2": [
    ]
}

role-controller

rolesByApplication

Authorizations:
openId (openid) apiTokens

Responses

Response samples

Content type
application/json
[
  • {
    }
]

updateRole

Authorizations:
openId (openid) apiTokens
Request Body schema: application/json
id
integer <int64>
name
required
string
shortName
required
string
description
string
urn
string
defaultExpiryDays
integer <int32>
enforceEmailEquality
boolean
eduIDOnly
boolean
blockExpiryDate
boolean
overrideSettingsAllowed
boolean
teamsOrigin
boolean
identifier
string
organizationGUID
string
remoteApiUser
string
inviterDisplayName
string
userRoleCount
integer <int64>
Array of objects (ApplicationUsage) unique
object (Auditable)
Array of objects

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "shortName": "string",
  • "description": "string",
  • "urn": "string",
  • "defaultExpiryDays": 0,
  • "enforceEmailEquality": true,
  • "eduIDOnly": true,
  • "blockExpiryDate": true,
  • "overrideSettingsAllowed": true,
  • "teamsOrigin": true,
  • "identifier": "string",
  • "organizationGUID": "string",
  • "remoteApiUser": "string",
  • "inviterDisplayName": "string",
  • "userRoleCount": 0,
  • "applicationUsages": [
    ],
  • "auditable": {
    },
  • "applicationMaps": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "shortName": "string",
  • "description": "string",
  • "urn": "string",
  • "defaultExpiryDays": 0,
  • "enforceEmailEquality": true,
  • "eduIDOnly": true,
  • "blockExpiryDate": true,
  • "overrideSettingsAllowed": true,
  • "teamsOrigin": true,
  • "identifier": "string",
  • "organizationGUID": "string",
  • "remoteApiUser": "string",
  • "inviterDisplayName": "string",
  • "userRoleCount": 0,
  • "applicationUsages": [
    ],
  • "auditable": {
    },
  • "applicationMaps": [
    ]
}

newRole

Authorizations:
openId (openid) apiTokens
Request Body schema: application/json
id
integer <int64>
name
required
string
shortName
required
string
description
string
urn
string
defaultExpiryDays
integer <int32>
enforceEmailEquality
boolean
eduIDOnly
boolean
blockExpiryDate
boolean
overrideSettingsAllowed
boolean
teamsOrigin
boolean
identifier
string
organizationGUID
string
remoteApiUser
string
inviterDisplayName
string
userRoleCount
integer <int64>
Array of objects (ApplicationUsage) unique
object (Auditable)
Array of objects

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "shortName": "string",
  • "description": "string",
  • "urn": "string",
  • "defaultExpiryDays": 0,
  • "enforceEmailEquality": true,
  • "eduIDOnly": true,
  • "blockExpiryDate": true,
  • "overrideSettingsAllowed": true,
  • "teamsOrigin": true,
  • "identifier": "string",
  • "organizationGUID": "string",
  • "remoteApiUser": "string",
  • "inviterDisplayName": "string",
  • "userRoleCount": 0,
  • "applicationUsages": [
    ],
  • "auditable": {
    },
  • "applicationMaps": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "shortName": "string",
  • "description": "string",
  • "urn": "string",
  • "defaultExpiryDays": 0,
  • "enforceEmailEquality": true,
  • "eduIDOnly": true,
  • "blockExpiryDate": true,
  • "overrideSettingsAllowed": true,
  • "teamsOrigin": true,
  • "identifier": "string",
  • "organizationGUID": "string",
  • "remoteApiUser": "string",
  • "inviterDisplayName": "string",
  • "userRoleCount": 0,
  • "applicationUsages": [
    ],
  • "auditable": {
    },
  • "applicationMaps": [
    ]
}

role

Authorizations:
openId (openid) apiTokens
path Parameters
id
required
integer <int64>

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "shortName": "string",
  • "description": "string",
  • "urn": "string",
  • "defaultExpiryDays": 0,
  • "enforceEmailEquality": true,
  • "eduIDOnly": true,
  • "blockExpiryDate": true,
  • "overrideSettingsAllowed": true,
  • "teamsOrigin": true,
  • "identifier": "string",
  • "organizationGUID": "string",
  • "remoteApiUser": "string",
  • "inviterDisplayName": "string",
  • "userRoleCount": 0,
  • "applicationUsages": [
    ],
  • "auditable": {
    },
  • "applicationMaps": [
    ]
}

deleteRole

Authorizations:
openId (openid) apiTokens
path Parameters
id
required
integer <int64>

Responses

search_1

Authorizations:
openId (openid) apiTokens
query Parameters
query
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

rolesPerApplicationId

Authorizations:
openId (openid) apiTokens
path Parameters
manageId
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

invitation-controller

resendInvitation

Authorizations:
openId (openid) apiTokens
path Parameters
id
required
integer <int64>

Responses

Response samples

Content type
application/json
{
  • "property1": 0,
  • "property2": 0
}

deleteInvitation

Authorizations:
openId (openid) apiTokens
path Parameters
id
required
integer <int64>

Responses

accept

Authorizations:
openId (openid) apiTokens
Request Body schema: application/json
hash
string
invitationId
integer <int64>

Responses

Request samples

Content type
application/json
{
  • "hash": "string",
  • "invitationId": 0
}

Response samples

Content type
application/json
{
  • "property1": { },
  • "property2": { }
}

newInvitation

Authorizations:
openId (openid) apiTokens
Request Body schema: application/json
intendedAuthority
required
string
Enum: "SUPER_USER" "INSTITUTION_ADMIN" "MANAGER" "INVITER" "GUEST"
message
string
language
string
Enum: "en" "nl"
enforceEmailEquality
boolean
eduIDOnly
boolean
guestRoleIncluded
boolean
suppressSendingEmails
boolean
invites
required
Array of strings
roleIdentifiers
Array of integers <int64>
roleExpiryDate
string <date-time>
expiryDate
required
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "intendedAuthority": "SUPER_USER",
  • "message": "string",
  • "language": "en",
  • "enforceEmailEquality": true,
  • "eduIDOnly": true,
  • "guestRoleIncluded": true,
  • "suppressSendingEmails": true,
  • "invites": [
    ],
  • "roleIdentifiers": [
    ],
  • "roleExpiryDate": "2019-08-24T14:15:22Z",
  • "expiryDate": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "status": 0,
  • "recipientInvitationURLs": [
    ]
}

byRole_1

Authorizations:
openId (openid) apiTokens
path Parameters
roleId
required
integer <int64>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

getInvitation

Authorizations:
openId (openid) apiTokens
query Parameters
hash
required
string

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "intendedAuthority": "SUPER_USER",
  • "language": "en",
  • "status": "OPEN",
  • "email": "string",
  • "message": "string",
  • "subInvitee": "string",
  • "enforceEmailEquality": true,
  • "eduIDOnly": true,
  • "guestRoleIncluded": true,
  • "createdAt": "2019-08-24T14:15:22Z",
  • "expiryDate": "2019-08-24T14:15:22Z",
  • "roleExpiryDate": "2019-08-24T14:15:22Z",
  • "acceptedAt": "2019-08-24T14:15:22Z",
  • "remoteApiUser": "string",
  • "roles": [
    ],
  • "emailEqualityConflict": true,
  • "inviter": {
    }
}

all

Authorizations:
openId (openid) apiTokens

Responses

Response samples

Content type
application/json
[
  • {
    }
]

validation-controller

validate

Authorizations:
Request Body schema: application/json
type
required
string
value
required
string

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "property1": true,
  • "property2": true
}

user-controller

error

Authorizations:
openId (openid) apiTokens
Request Body schema: application/json
property name*
object

Responses

Request samples

Content type
application/json
{
  • "property1": { },
  • "property2": { }
}

Response samples

Content type
application/json
{
  • "property1": 0,
  • "property2": 0
}

searchPaginated

Authorizations:
openId (openid) apiTokens
query Parameters
query
string
Default: ""
pageNumber
integer <int32>
Default: 0
pageSize
integer <int32>
Default: 10
sort
string
Default: "id"
sortDirection
string
Default: "ASC"

Responses

Response samples

Content type
application/json
{
  • "totalElements": 0,
  • "totalPages": 0,
  • "pageable": {
    },
  • "size": 0,
  • "content": [
    ],
  • "number": 0,
  • "sort": [
    ],
  • "first": true,
  • "last": true,
  • "numberOfElements": 0,
  • "empty": true
}

searchByApplication

Authorizations:
openId (openid) apiTokens
query Parameters
query
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

search

Authorizations:
openId (openid) apiTokens
query Parameters
query
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

details

Authorizations:
openId (openid) apiTokens
path Parameters
id
required
integer <int64>

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "sub": "string",
  • "superUser": true,
  • "eduPersonPrincipalName": "string",
  • "givenName": "string",
  • "familyName": "string",
  • "name": "string",
  • "subjectId": "string",
  • "eduId": "string",
  • "uid": "string",
  • "schacHomeOrganization": "string",
  • "organizationGUID": "string",
  • "institutionAdmin": true,
  • "institutionAdminByInvite": true,
  • "email": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "lastActivity": "2019-08-24T14:15:22Z",
  • "userRoles": [
    ],
  • "applications": [
    ],
  • "institution": {
    }
}

msAcceptReturn

Authorizations:
openId (openid) apiTokens
path Parameters
manageId
required
string
userId
required
integer <int64>

Responses

Response samples

Content type
application/json
{
  • "contentType": "string"
}

me

Authorizations:
openId (openid) apiTokens

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "sub": "string",
  • "superUser": true,
  • "eduPersonPrincipalName": "string",
  • "givenName": "string",
  • "familyName": "string",
  • "name": "string",
  • "subjectId": "string",
  • "eduId": "string",
  • "uid": "string",
  • "schacHomeOrganization": "string",
  • "organizationGUID": "string",
  • "institutionAdmin": true,
  • "institutionAdminByInvite": true,
  • "email": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "lastActivity": "2019-08-24T14:15:22Z",
  • "userRoles": [
    ],
  • "applications": [
    ],
  • "institution": {
    }
}

logout

Authorizations:
openId (openid) apiTokens

Responses

Response samples

Content type
application/json
{
  • "property1": 0,
  • "property2": 0
}

login

Authorizations:
openId (openid) apiTokens
query Parameters
app
string
Default: "client"

Responses

Response samples

Content type
application/json
{
  • "contentType": "string"
}

config

Authorizations:
openId (openid) apiTokens
query Parameters
required
object (User)
guest
boolean
Default: false

Responses

Response samples

Content type
application/json
{
  • "clientUrl": "string",
  • "welcomeUrl": "string",
  • "serverUrl": "string",
  • "serverWelcomeUrl": "string",
  • "eduidEntityId": "string",
  • "roleSearchRequired": true,
  • "pastDateAllowed": true,
  • "performanceSeedAllowed": true,
  • "groupUrnPrefix": "string",
  • "authenticated": true,
  • "name": "string",
  • "eduidIdpSchacHomeOrganization": "string",
  • "missingAttributes": [
    ]
}

api-token-controller

apiTokensByInstitution

Authorizations:
openId (openid) apiTokens

Responses

Response samples

Content type
application/json
[
  • {
    }
]

create

Authorizations:
openId (openid) apiTokens
Request Body schema: application/json
id
integer <int64>
organizationGUID
string
hashedValue
string
superUserToken
boolean
description
required
string
createdAt
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "organizationGUID": "string",
  • "hashedValue": "string",
  • "superUserToken": true,
  • "description": "string",
  • "createdAt": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "superUserToken": true,
  • "description": "string",
  • "createdAt": "2019-08-24T14:15:22Z"
}

generateToken

Authorizations:
openId (openid) apiTokens

Responses

Response samples

Content type
application/json
{
  • "property1": "string",
  • "property2": "string"
}

deleteToken

Authorizations:
openId (openid) apiTokens
path Parameters
id
required
integer <int64>

Responses

internal-invite-controller

Create a Role

Create a Role linked to a SP in Manage. Note that the required application object needs to be pre-configured during deployment.

Authorizations:
Request Body schema: application/json
id
integer <int64>
name
required
string
shortName
required
string
description
string
urn
string
defaultExpiryDays
integer <int32>
enforceEmailEquality
boolean
eduIDOnly
boolean
blockExpiryDate
boolean
overrideSettingsAllowed
boolean
teamsOrigin
boolean
identifier
string
organizationGUID
string
remoteApiUser
string
inviterDisplayName
string
userRoleCount
integer <int64>
Array of objects (ApplicationUsage) unique
object (Auditable)
Array of objects

Responses

Request samples

Content type
application/json
{
  • "name": "Required role name",
  • "shortName": "Required short name - may be copy of name",
  • "description": "Required role description",
  • "defaultExpiryDays": 365,
  • "applicationUsages": []
}

Response samples

Content type
application/json
{
  • "id": 42114,
  • "name": "Required role name",
  • "shortName": "required_role_name",
  • "description": "Required role description",
  • "urn": "urn:mace:surf.nl:test.surfaccess.nl:74fd8059-7558-4454-8393-fd84f74c4907:required_role_name",
  • "defaultExpiryDays": 365,
  • "enforceEmailEquality": false,
  • "eduIDOnly": false,
  • "blockExpiryDate": false,
  • "overrideSettingsAllowed": false,
  • "teamsOrigin": false,
  • "identifier": "74fd8059-7558-4454-8393-fd84f74c4907",
  • "remoteApiUser": "SP Dashboard",
  • "applicationUsages": [
    ],
  • "auditable": {
    },
  • "applicationMaps": []
}

Invite member for existing Role

Invite a member for an existing role. An invitation email will be sent. Do not forget to set guestRoleIncluded to true.

Authorizations:
Request Body schema: application/json
intendedAuthority
required
string
Enum: "SUPER_USER" "INSTITUTION_ADMIN" "MANAGER" "INVITER" "GUEST"
message
string
language
string
Enum: "en" "nl"
enforceEmailEquality
boolean
eduIDOnly
boolean
guestRoleIncluded
boolean
suppressSendingEmails
boolean
invites
required
Array of strings
roleIdentifiers
Array of integers <int64>
roleExpiryDate
string <date-time>
expiryDate
required
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "intendedAuthority": "INVITER",
  • "message": "Personal message included in the email",
  • "language": "en",
  • "guestRoleIncluded": true,
  • "invites": [
    ],
  • "roleIdentifiers": [
    ],
  • "roleExpiryDate": 1760788376,
  • "expiryDate": 1730461976
}

Response samples

Content type
application/json
{}

Delete existing Role

Delete an existing role. The path parameter id is the id returned when creating the role.

Authorizations:
path Parameters
id
required
integer <int64>

Unique database id of the role

Responses

Response samples

Content type
application/json
{
  • "timestamp": 1717672263253,
  • "status": 400,
  • "error": "BadRequest",
  • "exception": "access.exception.UserRestrictionException",
  • "message": "No access to role",
  • "path": "/api/internal/roles/999"
}

voot-controller

getGroupMemberships

Authorizations:
path Parameters
unspecified_id
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

profile-controller

roles

Authorizations:
query Parameters
collabPersonId
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

manage-controller

providers

Authorizations:
openId (openid) apiTokens

Responses

Response samples

Content type
application/json
[
  • {
    }
]

providerById

Authorizations:
openId (openid) apiTokens
path Parameters
type
required
string
Enum: "SAML20_SP" "OIDC10_RP" "SAML20_IDP" "PROVISIONING"
id
required
string

Responses

Response samples

Content type
application/json
{
  • "property1": { },
  • "property2": { }
}

organizationGUIDValidation

Authorizations:
openId (openid) apiTokens
path Parameters
organizationGUID
required
string

Responses

Response samples

Content type
application/json
{
  • "property1": { },
  • "property2": { }
}

applications

Authorizations:
openId (openid) apiTokens

Responses

Response samples

Content type
application/json
{
  • "property1": [
    ],
  • "property2": [
    ]
}

user-life-cycle-controller

preview

Authorizations:
path Parameters
userId
required
string

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "name": "string",
  • "data": [
    ]
}

deprovision

Authorizations:
path Parameters
userId
required
string

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "name": "string",
  • "data": [
    ]
}

dryRun

Authorizations:
path Parameters
userId
required
string

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "name": "string",
  • "data": [
    ]
}

attribute-aggregator-controller

getGroupMemberships_1

Authorizations:
path Parameters
unspecified_id
required
string
query Parameters
SPentityID
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]