Crowd REST API Reference
Crowd 3.4.0
Welcome to the Crowd REST API reference. This page documents the REST resources available in Crowd, along with expected HTTP response codes and sample requests. This set of REST APIs is intended to be used by applications connecting to Crowd.
URI Structure
The Crowd REST APIs allow you to address the Crowd data entities as 'resources'. This means that the data entities are identified by URIs and operated on by HTTP requests (GET, POST, PUT and DELETE). Below are details of the resources made available by the APIs. To use a REST API, your application will make an HTTP request and parse the response.
Depending on the resource, responses are returned as JSON and/or XML. For resources that offer both, you can use the Accept HTTP header to specify which one you prefer. URIs for Crowd's REST API resource have the following structure:
http://host:port/context/rest/api-name/api-version/resource-name
Currently the following API names are available, which will be discussed further below:
usermanagement
- intended for applications to interact with the Crowd server for user management operationsadmin
- intended to be used for administrative operations on the Crowd server
Each API has it's version. However, there is also a symbolic version, called latest
,
which resolves to the latest version supported by the given Crowd instance.
As an example, if you wanted to retrieve information about a user 'admin' from a Crowd instance, you would access:
https://crowd-server:8095/crowd/rest/usermanagement/latest/user?username=admin
There is a WADL document that contains the documentation for each resource in the REST API. It is available here.
Authentication
The preferred authentication methods for the Crowd REST APIs is HTTP basic authentication (when using SSL).
Please note that the usermanagement
resource expects the callers to authenticate using the application
credentials (i.e. the application name and password configured in Crowd). Calls to this APIs are restricted by IP
as configured. Permissions and seen users, groups and other entities depend on the application configuration as well.
Other resources expect the callers to authenticate using the user credentials. Permissions depend on configured user permissions.
Expansion
In order to simplify API responses, the Crowd REST API uses resource expansion. This means the API will only return parts of the resource when explicitly requested.
You can use the expand
query parameter to specify a comma-separated list of entities that you want
expanded, identifying each of them by name. For example, appending ?expand=attributes
to a users's
URI requests the inclusion of the user attribute names and values in the response.
Continuing with our example above, we would use the following URL to get the attribute values for the 'admin' user:
https://crowd-server:8095/crowd/rest/usermanagement/latest/user?username=admin&expand=attributes
To discover the identifiers for each entity, look at the expand
property in the parent object. In the
JSON example below, the resource declares widgets as being expandable.
{
"expand": "widgets",
"widgets": {
"widgets": []
}
}
You can use the dot notation to specify expansion of entities within another entity. For example
?expand=widgets.fringels
would expand the widgets collection and also the fringel property on each
widget.
Pagination
Crowd uses pagination to limit the response size for resources that return a potentially large collection of items.
A request to a paged API will result in a values
array, wrapped in a JSON object with some paging metadata:
{ "values": [ { /* result 0 */ }, { /* result 1 */ }, { /* result 2 */ } ], "size": 3, "start": 0, "limit": 50, "isLastPage": true }
Clients can use the limit
and start
query parameters to retrieve the desired number of results.
The limit
parameter indicates how many results to return per page. Most APIs default to returning
50
if the limit is left unspecified. This number can be increased, but note that a resource-specific
hard limit will apply. These hard limits can be configured by server administrators, so it's always best practice to
check the limit
attribute on the response to see what limit has been applied.
The request to get a larger page should look like this:
http://host:port/context/rest/api-name/api-version/path/to/resource?limit={desired size of page}
The start
parameter indicates which item should be used as the first item in the page of results. All
paged responses contain an isLastPage
attribute indicating whether another page of items exists.
Experimental methods
Methods marked as experimental may change without an earlier notice. We are looking for your feedback for these methods.
Resources
Expand all methodsadmin/1.0//samlconfigExpand all methods
Resource for SSO SAML configuration.
Get saml configurationGET /rest/admin/1.0//samlconfig
Returns the global SAML configuration
Responses
- Status
200
Example
{ "issuer": "https://supercrowd:7657/crowd", "ssoUrl": "https://supercrowd:7657/crowd/sso/sign", "certificateFormat": "PEM", "certificate": "-----BEGIN CERTIFICATE-----\nMIICpzCCAhACAg4AMA0GCSqGSIb3DQEBBQUAMIGbMQswCQYDVQQGEwJKUDEOMAwG\nA1UECBMFVG9reW8xEDAOBgNVBAcTB0NodW8ta3UxETAPBgNVBAoTCEZyYW5rNERE\nMRgwFgYDVQQLEw9XZWJDZXJ0IFN1cHBvcnQxGDAWBgNVBAMTD0ZyYW5rNEREIFdl\nYiBDQTEjMCEGCSqGSIb3DQEJARYUc3VwcG9ydEBmcmFuazRkZC5jb20wHhcNMTIw\nODIyMDcyNjQzWhcNMTcwODIxMDcyNjQzWjBKMQswCQYDVQQGEwJKUDEOMAwGA1UE\nCAwFVG9reW8xETAPBgNVBAoMCEZyYW5rNEREMRgwFgYDVQQDDA93d3cuZXhhbXBs\nZS5jb20wgfAwgagGByqGSM44BAEwgZwCQQDKVt7ZYtFRCzrm2/NTjl45YtMgVctQ\npLadAowFRydY13uhGw+JXyM+qmngfQkXImQpoYdIe+A8DWG2vaO3wKQ3AhUAxx6d\neaDs+XNHcbsiVQ1osvxrG8sCQHQYZDlSy/A5AFXrWXUNlTJbNhWDnitiG/95qYCe\nFGnwYPp/WyhX+/lbDmQujkrbd4wYStudZM0cc4iDAWeOHQ0DQwACQDtK/S6POMQE\n8aI+skBdNQn+Ch76kNDhztC/suOr9FbCSxnZ/CfhSgE1phOJyEkdR2jgErl3uh51\nlo+7to76LLUwDQYJKoZIhvcNAQEFBQADgYEAnrmxZ3HB0LmVoFYdBJWxNBkRaFyn\njBmRsSJp2xvFg2nyAF77AOqBuFOFqOxg04eDxH8TGLQOWjqdyCFCY79AQlmkdB+8\nZ5SWqPEwLJHVLd91O9avQwwRQT5TAxGXFkHTlQxOoaGfTsVQFqSDnlYC4mFjspA7\nW+K8+llxOFmtVzU=\n-----END CERTIFICATE-----\n", "expirationDate": 1544616405123 }
- Status
401Returned if the user has no permission to perform this operation
Get idp metadataGET /rest/admin/1.0//samlconfig/idp/metadata
Returns Identity provider's metadata
Responses
- Status
200
Example
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<md:EntityDescriptor entityID=\"http://supercrowd:7657/crowd\" xmlns:md=\"urn:oasis:names:tc:SAML:2.0:metadata\">\n <md:IDPSSODescriptor protocolSupportEnumeration=\"urn:oasis:names:tc:SAML:2.0:protocol\">\n <md:KeyDescriptor use=\"signing\">\n <ds:KeyInfo xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\">\n <ds:X509Data>\n <ds:X509Certificate>MIICpzCCAhACAg4AMA0GCSqGSIb3DQEBBQUAMIGbMQswCQYDVQQGEwJKUDEOMAwG\n` A1UECBMFVG9reW8xEDAOBgNVBAcTB0NodW8ta3UxETAPBgNVBAoTCEZyYW5rNERE\n` MRgwFgYDVQQLEw9XZWJDZXJ0IFN1cHBvcnQxGDAWBgNVBAMTD0ZyYW5rNEREIFdl\n` YiBDQTEjMCEGCSqGSIb3DQEJARYUc3VwcG9ydEBmcmFuazRkZC5jb20wHhcNMTIw\n` ODIyMDcyNjQzWhcNMTcwODIxMDcyNjQzWjBKMQswCQYDVQQGEwJKUDEOMAwGA1UE\n` CAwFVG9reW8xETAPBgNVBAoMCEZyYW5rNEREMRgwFgYDVQQDDA93d3cuZXhhbXBs\n` ZS5jb20wgfAwgagGByqGSM44BAEwgZwCQQDKVt7ZYtFRCzrm2/NTjl45YtMgVctQ\n` pLadAowFRydY13uhGw+JXyM+qmngfQkXImQpoYdIe+A8DWG2vaO3wKQ3AhUAxx6d\n` eaDs+XNHcbsiVQ1osvxrG8sCQHQYZDlSy/A5AFXrWXUNlTJbNhWDnitiG/95qYCe\n` FGnwYPp/WyhX+/lbDmQujkrbd4wYStudZM0cc4iDAWeOHQ0DQwACQDtK/S6POMQE\n` 8aI+skBdNQn+Ch76kNDhztC/suOr9FbCSxnZ/CfhSgE1phOJyEkdR2jgErl3uh51\n` lo+7to76LLUwDQYJKoZIhvcNAQEFBQADgYEAnrmxZ3HB0LmVoFYdBJWxNBkRaFyn\n` jBmRsSJp2xvFg2nyAF77AOqBuFOFqOxg04eDxH8TGLQOWjqdyCFCY79AQlmkdB+8\n` Z5SWqPEwLJHVLd91O9avQwwRQT5TAxGXFkHTlQxOoaGfTsVQFqSDnlYC4mFjspA7\n </ds:X509Certificate>\n </ds:X509Data>\n </ds:KeyInfo>\n </md:KeyDescriptor>\n <md:SingleSignOnService Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\"\n Location=\"http://supercrowd:7657/crowd/console/secure/saml/sso.action\"/>\n <md:SingleSignOnService Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect\"\n Location=\"http://supercrowd:7657/crowd/console/secure/saml/sso.action\"/>\n </md:IDPSSODescriptor>\n</md:EntityDescriptor>"
- Status
400Returned if issues while generating IdP's metadata occurs
Reset saml configurationPOST /rest/admin/1.0//samlconfig/reset-certificates
Replaces the private key/certificate pair used for signing/verifying assertions with a new one.
Responses
- Status
200replacing key/certificate pair and fetching SAML configuration succeeded
Example
{ "issuer": "https://supercrowd:7657/crowd", "ssoUrl": "https://supercrowd:7657/crowd/sso/sign", "certificateFormat": "PEM", "certificate": "-----BEGIN CERTIFICATE-----\nMIICpzCCAhACAg4AMA0GCSqGSIb3DQEBBQUAMIGbMQswCQYDVQQGEwJKUDEOMAwG\nA1UECBMFVG9reW8xEDAOBgNVBAcTB0NodW8ta3UxETAPBgNVBAoTCEZyYW5rNERE\nMRgwFgYDVQQLEw9XZWJDZXJ0IFN1cHBvcnQxGDAWBgNVBAMTD0ZyYW5rNEREIFdl\nYiBDQTEjMCEGCSqGSIb3DQEJARYUc3VwcG9ydEBmcmFuazRkZC5jb20wHhcNMTIw\nODIyMDcyNjQzWhcNMTcwODIxMDcyNjQzWjBKMQswCQYDVQQGEwJKUDEOMAwGA1UE\nCAwFVG9reW8xETAPBgNVBAoMCEZyYW5rNEREMRgwFgYDVQQDDA93d3cuZXhhbXBs\nZS5jb20wgfAwgagGByqGSM44BAEwgZwCQQDKVt7ZYtFRCzrm2/NTjl45YtMgVctQ\npLadAowFRydY13uhGw+JXyM+qmngfQkXImQpoYdIe+A8DWG2vaO3wKQ3AhUAxx6d\neaDs+XNHcbsiVQ1osvxrG8sCQHQYZDlSy/A5AFXrWXUNlTJbNhWDnitiG/95qYCe\nFGnwYPp/WyhX+/lbDmQujkrbd4wYStudZM0cc4iDAWeOHQ0DQwACQDtK/S6POMQE\n8aI+skBdNQn+Ch76kNDhztC/suOr9FbCSxnZ/CfhSgE1phOJyEkdR2jgErl3uh51\nlo+7to76LLUwDQYJKoZIhvcNAQEFBQADgYEAnrmxZ3HB0LmVoFYdBJWxNBkRaFyn\njBmRsSJp2xvFg2nyAF77AOqBuFOFqOxg04eDxH8TGLQOWjqdyCFCY79AQlmkdB+8\nZ5SWqPEwLJHVLd91O9avQwwRQT5TAxGXFkHTlQxOoaGfTsVQFqSDnlYC4mFjspA7\nW+K8+llxOFmtVzU=\n-----END CERTIFICATE-----\n", "expirationDate": 1544616405123 }
- Status
401Returned if user has no permission to perform this operation
Update application configurationPOST /rest/admin/1.0//samlconfig/application/{applicationId}
Updates SAML configuration.
Request
Example
{
"entityId": "http://my.service.com",
"assertionConsumerUrl": "http://my.service.com/SAML2/SSO/POST",
"enabled": true
}
Schema
{
"id": "https://docs.atlassian.com/jira/REST/schema/application-saml-configuration-rest-entity#",
"title": "Application Saml Configuration Rest Entity",
"type": "object",
"properties": {
"entityId": {
"type": "string"
},
"assertionConsumerUrl": {
"type": "string"
},
"enabled": {
"type": "boolean"
}
},
"additionalProperties": false
}
Responses
- Status
400
Example
{ "ASSERTION_CONSUMER_URL": "EMPTY", "ENTITY_ID": "NOT_UNIQUE" }
Get configurationGET /rest/admin/1.0//samlconfig/application/{applicationId}
Returns SAML configuration.
Responses
- Status
200
Example
{ "entityId": "http://my.service.com", "assertionConsumerUrl": "http://my.service.com/SAML2/SSO/POST", "enabled": true }
Schema
{ "id": "https://docs.atlassian.com/jira/REST/schema/application-saml-configuration-rest-entity#", "title": "Application Saml Configuration Rest Entity", "type": "object", "properties": { "entityId": { "type": "string" }, "assertionConsumerUrl": { "type": "string" }, "enabled": { "type": "boolean" } }, "additionalProperties": false }
- Status
400Returned if the application was not found
Find directory mappings mismatchGET /rest/admin/1.0//samlconfig/application/{applicationId}/directory-mapping-mismatch
Compares the directory mappings of application with crowd application
Responses
- Status
200Returned if a mismatch is found
Example
{ "reason": "Directory mappings in Crowd and Jira are not same" }
- Status
204Returned if no mismatch have been found
Parse application metadataPOST /rest/admin/1.0//samlconfig/application/parse_metadata
Parses SAML configuration.
Request
Responses
- Status
200
Example
{ "entityId": "http://my.service.com", "assertionConsumerUrl": "http://my.service.com/SAML2/SSO/POST" }
Schema
{ "id": "https://docs.atlassian.com/jira/REST/schema/application-saml-configuration-rest-entity#", "title": "Application Saml Configuration Rest Entity", "type": "object", "properties": { "entityId": { "type": "string" }, "assertionConsumerUrl": { "type": "string" }, "enabled": { "type": "boolean" } }, "additionalProperties": false }
Parse application metadataPOST /rest/admin/1.0//samlconfig/application/parse_metadata_multipart
Parses SAML configuration.
Responses
- Status
200
Example
{ "entityId": "http://my.service.com", "assertionConsumerUrl": "http://my.service.com/SAML2/SSO/POST" }
Schema
{ "id": "https://docs.atlassian.com/jira/REST/schema/application-saml-configuration-rest-entity#", "title": "Application Saml Configuration Rest Entity", "type": "object", "properties": { "entityId": { "type": "string" }, "assertionConsumerUrl": { "type": "string" }, "enabled": { "type": "boolean" } }, "additionalProperties": false }
admin/1.0/applicationExpand all methods
Represents a service for managing applications
Get applications
experimentalGET /rest/admin/1.0/application
Returns a paged list of all applications
Responses
- Status
200The operation succeeded
Example
{ "size": 2, "start": 1, "limit": 2, "isLastPage": false, "values": [ { "id": 1900, "name": "crowd", "description": "crowd-app", "type": "CROWD", "active": true, "aliasingEnabled": false, "lowercaseOutput": false, "aggregateMemberships": false }, { "id": 19, "name": "otherApp", "description": "Custom application", "type": "GENERIC_APPLICATION", "active": true, "aliasingEnabled": false, "lowercaseOutput": false, "aggregateMemberships": false } ] }
Schema
{ "id": "https://docs.atlassian.com/jira/REST/schema/rest-page-of-application-entity#", "title": "Rest Page of Application Entity", "type": "object", "properties": { "values": { "type": "array", "items": { "title": "Application Entity", "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "description": { "type": "string" }, "type": { "type": "string", "enum": [ "CROWD", "GENERIC_APPLICATION", "PLUGIN", "JIRA", "CONFLUENCE", "BAMBOO", "FISHEYE", "CRUCIBLE", "STASH" ] }, "active": { "type": "boolean" }, "aliasingEnabled": { "type": "boolean" }, "lowercaseOutput": { "type": "boolean" }, "aggregateMemberships": { "type": "boolean" }, "directoryMappings": { "title": "Directory Mappings Entity", "type": "object", "properties": { "mappings": { "type": "array", "items": { "title": "Directory Mapping Entity", "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "authentication": { "title": "Directory Mapping Authentication Entity", "type": "object", "properties": { "allowAll": { "type": "boolean" }, "allowGroups": { "type": "array", "items": { "type": "string" } } }, "additionalProperties": false }, "defaultGroups": { "type": "array", "items": { "type": "string" } } }, "additionalProperties": false } } }, "additionalProperties": false } }, "additionalProperties": false } }, "size": { "type": "integer" }, "start": { "type": "integer" }, "limit": { "type": "integer" }, "isLastPage": { "type": "boolean" } }, "additionalProperties": false, "required": [ "size", "start", "limit", "isLastPage" ] }
Get application
experimentalGET /rest/admin/1.0/application/{applicationId}
Returns the application with the specified id
Responses
- Status
200The operation succeeded
Example
{ "id": 1900, "name": "crowd", "description": "crowd-app", "type": "CROWD", "active": true, "aliasingEnabled": false, "lowercaseOutput": false, "aggregateMemberships": false }
Schema
{ "id": "https://docs.atlassian.com/jira/REST/schema/application-entity#", "title": "Application Entity", "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "description": { "type": "string" }, "type": { "type": "string", "enum": [ "CROWD", "GENERIC_APPLICATION", "PLUGIN", "JIRA", "CONFLUENCE", "BAMBOO", "FISHEYE", "CRUCIBLE", "STASH" ] }, "active": { "type": "boolean" }, "aliasingEnabled": { "type": "boolean" }, "lowercaseOutput": { "type": "boolean" }, "aggregateMemberships": { "type": "boolean" }, "directoryMappings": { "title": "Directory Mappings Entity", "type": "object", "properties": { "mappings": { "type": "array", "items": { "title": "Directory Mapping Entity", "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "authentication": { "title": "Directory Mapping Authentication Entity", "type": "object", "properties": { "allowAll": { "type": "boolean" }, "allowGroups": { "type": "array", "items": { "type": "string" } } }, "additionalProperties": false }, "defaultGroups": { "type": "array", "items": { "type": "string" } } }, "additionalProperties": false } } }, "additionalProperties": false } }, "additionalProperties": false }
- Status
404Returned if the application was not found
Update application
experimentalPUT /rest/admin/1.0/application/{applicationId}
Updates the specified application
Request
Example
{
"id": 1900,
"name": "crowd",
"description": "crowd-app",
"type": "CROWD",
"active": true,
"aliasingEnabled": false,
"lowercaseOutput": false,
"aggregateMemberships": false
}
Schema
{
"id": "https://docs.atlassian.com/jira/REST/schema/application-entity#",
"title": "Application Entity",
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"CROWD",
"GENERIC_APPLICATION",
"PLUGIN",
"JIRA",
"CONFLUENCE",
"BAMBOO",
"FISHEYE",
"CRUCIBLE",
"STASH"
]
},
"active": {
"type": "boolean"
},
"aliasingEnabled": {
"type": "boolean"
},
"lowercaseOutput": {
"type": "boolean"
},
"aggregateMemberships": {
"type": "boolean"
},
"directoryMappings": {
"title": "Directory Mappings Entity",
"type": "object",
"properties": {
"mappings": {
"type": "array",
"items": {
"title": "Directory Mapping Entity",
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"authentication": {
"title": "Directory Mapping Authentication Entity",
"type": "object",
"properties": {
"allowAll": {
"type": "boolean"
},
"allowGroups": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"defaultGroups": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
Responses
- Status
200The operation succeeded
Example
{ "id": 1900, "name": "crowd", "description": "crowd-app", "type": "CROWD", "active": true, "aliasingEnabled": false, "lowercaseOutput": false, "aggregateMemberships": false }
Schema
{ "id": "https://docs.atlassian.com/jira/REST/schema/application-entity#", "title": "Application Entity", "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "description": { "type": "string" }, "type": { "type": "string", "enum": [ "CROWD", "GENERIC_APPLICATION", "PLUGIN", "JIRA", "CONFLUENCE", "BAMBOO", "FISHEYE", "CRUCIBLE", "STASH" ] }, "active": { "type": "boolean" }, "aliasingEnabled": { "type": "boolean" }, "lowercaseOutput": { "type": "boolean" }, "aggregateMemberships": { "type": "boolean" }, "directoryMappings": { "title": "Directory Mappings Entity", "type": "object", "properties": { "mappings": { "type": "array", "items": { "title": "Directory Mapping Entity", "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "authentication": { "title": "Directory Mapping Authentication Entity", "type": "object", "properties": { "allowAll": { "type": "boolean" }, "allowGroups": { "type": "array", "items": { "type": "string" } } }, "additionalProperties": false }, "defaultGroups": { "type": "array", "items": { "type": "string" } } }, "additionalProperties": false } } }, "additionalProperties": false } }, "additionalProperties": false }
- Status
404Returned if the application was not found
Add application directory mapping
experimentalPOST /rest/admin/1.0/application/{applicationId}/directory-mapping
Adds a directory mapping to the specified application. It is added as the last mapping for the application.
Request
Example
{
"id": 123,
"authentication": {
"allowAll": false,
"allowGroups": [
"crowd-administrators"
]
},
"defaultGroups": [
"crowd-users"
]
}
Schema
{
"id": "https://docs.atlassian.com/jira/REST/schema/directory-mapping-entity#",
"title": "Directory Mapping Entity",
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"authentication": {
"title": "Directory Mapping Authentication Entity",
"type": "object",
"properties": {
"allowAll": {
"type": "boolean"
},
"allowGroups": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"defaultGroups": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
}
Responses
- Status
201the mapping was successfully created
- Status
500the operation failed due to an error
- Status
404the application or directory requested doesn't exist
Get application directory mappings
experimentalGET /rest/admin/1.0/application/{applicationId}/directory-mapping
The directory mappings of the specified application
Responses
- Status
200The operation succeeded
Example
{ "size": 1, "start": 2, "limit": 1, "isLastPage": false, "values": [ { "id": 123, "name": "Internal directory", "authentication": { "allowAll": false, "allowGroups": [ "crowd-administrators" ] }, "defaultGroups": [ "crowd-users" ] } ] }
Schema
{ "id": "https://docs.atlassian.com/jira/REST/schema/rest-page-of-directory-mapping-entity#", "title": "Rest Page of Directory Mapping Entity", "type": "object", "properties": { "values": { "type": "array", "items": { "title": "Directory Mapping Entity", "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "authentication": { "title": "Directory Mapping Authentication Entity", "type": "object", "properties": { "allowAll": { "type": "boolean" }, "allowGroups": { "type": "array", "items": { "type": "string" } } }, "additionalProperties": false }, "defaultGroups": { "type": "array", "items": { "type": "string" } } }, "additionalProperties": false } }, "size": { "type": "integer" }, "start": { "type": "integer" }, "limit": { "type": "integer" }, "isLastPage": { "type": "boolean" } }, "additionalProperties": false, "required": [ "size", "start", "limit", "isLastPage" ] }
- Status
404Returned if application was not found
Update application directory mapping
experimentalPUT /rest/admin/1.0/application/{applicationId}/directory-mapping/{directoryId}
Updates the specified directory mapping. The fields specified will overwrite the current values. The unspecified fields will not be changed.
Request
Example
{
"id": 123,
"authentication": {
"allowAll": false,
"allowGroups": [
"crowd-administrators"
]
},
"defaultGroups": [
"crowd-users"
]
}
Schema
{
"id": "https://docs.atlassian.com/jira/REST/schema/directory-mapping-entity#",
"title": "Directory Mapping Entity",
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"authentication": {
"title": "Directory Mapping Authentication Entity",
"type": "object",
"properties": {
"allowAll": {
"type": "boolean"
},
"allowGroups": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"defaultGroups": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
}
Responses
- Status
200the mapping was successfully updated
Example
{ "id": 123, "name": "Internal directory", "authentication": { "allowAll": false, "allowGroups": [ "crowd-administrators" ] }, "defaultGroups": [ "crowd-users" ] }
Schema
{ "id": "https://docs.atlassian.com/jira/REST/schema/directory-mapping-entity#", "title": "Directory Mapping Entity", "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "authentication": { "title": "Directory Mapping Authentication Entity", "type": "object", "properties": { "allowAll": { "type": "boolean" }, "allowGroups": { "type": "array", "items": { "type": "string" } } }, "additionalProperties": false }, "defaultGroups": { "type": "array", "items": { "type": "string" } } }, "additionalProperties": false }
- Status
500the operation failed due to an error
- Status
404the application or directory mapping requested doesn't exist
- Status
409updating the directory mapping would cause an illegal state (for example deny the current user access to the Crowd application)
Delete application directory mapping
experimentalDELETE /rest/admin/1.0/application/{applicationId}/directory-mapping/{directoryId}
Removes a directory mapping from an application.
Responses
- Status
500the operation failed due to an error
- Status
204the mapping was removed correctly
- Status
404the application or directory mapping requested doesn't exist
- Status
409removing the directory mapping would cause an illegal state (for example deny the current user access to the Crowd application)
Get application directory mapping
experimentalGET /rest/admin/1.0/application/{applicationId}/directory-mapping/{directoryId}
Returns the specified application's mapping to the specified directory
Responses
- Status
200The operation succeeded
Example
{ "id": 123, "name": "Internal directory", "authentication": { "allowAll": false, "allowGroups": [ "crowd-administrators" ] }, "defaultGroups": [ "crowd-users" ] }
Schema
{ "id": "https://docs.atlassian.com/jira/REST/schema/directory-mapping-entity#", "title": "Directory Mapping Entity", "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "authentication": { "title": "Directory Mapping Authentication Entity", "type": "object", "properties": { "allowAll": { "type": "boolean" }, "allowGroups": { "type": "array", "items": { "type": "string" } } }, "additionalProperties": false }, "defaultGroups": { "type": "array", "items": { "type": "string" } } }, "additionalProperties": false }
- Status
404Returned if application or directory mapping was not found
Reorder application directory mapping
experimentalPOST /rest/admin/1.0/application/{applicationId}/directory-mapping/{directoryId}/move
Changes the position of the specified application-directory mapping
Request
Schema
{
"id": "https://docs.atlassian.com/jira/REST/schema/reorder-entity#",
"title": "Reorder Entity",
"type": "object",
"properties": {
"after": {
"type": "string"
},
"position": {
"type": "string"
}
},
"additionalProperties": false
}
Responses
- Status
200The operation succeeded
- Status
400Returned if directory was not found
- Status
404Returned if application or directory mapping was not found
admin/1.0/auditlogExpand all methods
Add changesetPOST /rest/admin/1.0/auditlog
Stores a changeset in the audit log
Request
Example
{
"id": 1,
"timestamp": "2017-04-26T00:00:00.000+0000",
"author": {
"id": 1,
"name": "admin",
"type": "USER"
},
"eventType": "APPLICATION_CREATED",
"entities": [
{
"id": 12,
"name": "Jira 7.4",
"type": "APPLICATION",
"subtype": "JIRA",
"primary": true
}
],
"ipAddress": "127.0.0.1",
"eventMessage": "Application modified",
"entries": [
{
"propertyName": "name",
"oldValue": "JIRA 7.2",
"newValue": "Jira 7.4"
}
]
}
Schema
{
"id": "https://docs.atlassian.com/jira/REST/schema/audit-log-changeset-rest#",
"title": "Audit Log Changeset Rest",
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"timestamp": {
"type": "string"
},
"author": {
"title": "Audit Log Author Rest",
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"displayName": {
"type": "string"
},
"originalName": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"USER",
"APPLICATION",
"SYSTEM",
"PLUGIN",
"SYNCHRONIZATION",
"DATA_IMPORT",
"OTHER"
]
},
"subtype": {
"type": "string"
}
},
"additionalProperties": false
},
"authorType": {
"type": "string",
"enum": [
"USER",
"APPLICATION",
"SYSTEM",
"PLUGIN",
"SYNCHRONIZATION",
"DATA_IMPORT",
"OTHER"
]
},
"authorId": {
"type": "integer"
},
"authorName": {
"type": "string"
},
"eventType": {
"type": "string",
"enum": [
"CREATED",
"MODIFIED",
"DELETED",
"STARTED",
"COMPLETED",
"FAILED",
"OTHER",
"APPLICATION_CREATED",
"APPLICATION_UPDATED",
"APPLICATION_DELETED",
"DIRECTORY_CREATED",
"DIRECTORY_UPDATED",
"DIRECTORY_DELETED",
"CONFIGURATION_MODIFIED",
"RESTORE_STARTED",
"RESTORE_FINISHED",
"USER_CREATED",
"USER_UPDATED",
"USER_DELETED",
"GROUP_CREATED",
"GROUP_UPDATED",
"GROUP_DELETED",
"ADDED_TO_GROUP",
"REMOVED_FROM_GROUP",
"ALIAS_CREATED",
"ALIAS_UPDATED",
"ALIAS_DELETED",
"SYNCHRONIZATION_STARTED",
"SYNCHRONIZATION_FINISHED",
"IMPORT_STARTED",
"IMPORT_FINISHED",
"PASSWORD_RESET_STARTED",
"PASSWORD_RESET_FINISHED",
"PASSWORD_CHANGED",
"GROUP_ADMIN_ASSIGNED",
"GROUP_ADMIN_REVOKED"
]
},
"entityType": {
"type": "string",
"enum": [
"APPLICATION",
"DIRECTORY",
"USER",
"GROUP",
"CONFIGURATION",
"RESTORE",
"OTHER"
]
},
"entityId": {
"type": "integer"
},
"entityName": {
"type": "string"
},
"entities": {
"type": "array",
"items": {
"title": "Audit Log Entity Rest",
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"displayName": {
"type": "string"
},
"originalName": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"APPLICATION",
"DIRECTORY",
"USER",
"GROUP",
"CONFIGURATION",
"RESTORE",
"OTHER"
]
},
"subtype": {
"type": "string"
},
"primary": {
"type": "boolean"
}
},
"additionalProperties": false
}
},
"ipAddress": {
"type": "string"
},
"eventMessage": {
"type": "string"
},
"source": {
"type": "string",
"enum": [
"MANUAL",
"SYNCHRONIZATION",
"DATA_IMPORT"
]
},
"entries": {
"type": "array",
"items": {
"title": "Audit Log Entry Rest",
"type": "object",
"properties": {
"propertyName": {
"type": "string"
},
"oldValue": {
"type": "string"
},
"newValue": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}
Responses
- Status
201Returned when given changeset was stored in audit log
Get configurationGET /rest/admin/1.0/auditlog/configuration
Retrieves current audit log configuration
Responses
- Status
200Returned if configuration was successfully retrieved
Example
{ "retentionPeriod": "UNLIMITED" }
Schema
{ "id": "https://docs.atlassian.com/jira/REST/schema/audit-log-configuration-entity#", "title": "Audit Log Configuration Entity", "type": "object", "properties": { "retentionPeriod": { "type": "string", "enum": [ "ONE_MONTH", "THREE_MONTHS", "SIX_MONTHS", "UNLIMITED" ] } }, "additionalProperties": false }
Set configurationPUT /rest/admin/1.0/auditlog/configuration
Saves new audit log configuration
Request
Example
{
"retentionPeriod": "UNLIMITED"
}
Schema
{
"id": "https://docs.atlassian.com/jira/REST/schema/audit-log-configuration-entity#",
"title": "Audit Log Configuration Entity",
"type": "object",
"properties": {
"retentionPeriod": {
"type": "string",
"enum": [
"ONE_MONTH",
"THREE_MONTHS",
"SIX_MONTHS",
"UNLIMITED"
]
}
},
"additionalProperties": false
}
Responses
- Status
200Returned if configuration was successfully saved
Example
{ "retentionPeriod": "UNLIMITED" }
Schema
{ "id": "https://docs.atlassian.com/jira/REST/schema/audit-log-configuration-entity#", "title": "Audit Log Configuration Entity", "type": "object", "properties": { "retentionPeriod": { "type": "string", "enum": [ "ONE_MONTH", "THREE_MONTHS", "SIX_MONTHS", "UNLIMITED" ] } }, "additionalProperties": false }
Search audit log
experimentalPOST /rest/admin/1.0/auditlog/query
Searches audit log for entries matching given restrictions.
Multiple restrictions for a single category (for example multiple authors) are treated as logical ORs - the resulting changesets must match at least one of them. Restrictions of different categories (for example specifying an author and event type) are treated as logical ANDs - the resulting changesets must match all of them.
This resource is experimental and may be subject to change.
This resource supports pagination.
Request
Example
{
"onOrAfter": "2017-04-26T00:00:00.000+0000",
"beforeOrOn": "2017-05-26T00:00:00.000+0000",
"actions": [
"USER_UPDATED",
"APPLICATION_CREATED"
],
"sources": [],
"authors": [
{
"id": 1,
"name": "admin",
"type": "USER"
},
{
"name": "jira",
"type": "APPLICATION"
}
],
"users": [
{
"id": 2,
"name": "user"
}
],
"groups": [
{
"id": 4,
"name": "jira-administrators"
}
],
"applications": [
{
"id": 5,
"name": "jira"
}
],
"directories": [
{
"id": 6,
"name": "ad"
}
]
}
Schema
{
"id": "https://docs.atlassian.com/jira/REST/schema/audit-log-query-rest#",
"title": "Audit Log Query Rest",
"type": "object",
"properties": {
"onOrAfter": {
"type": "string"
},
"beforeOrOn": {
"type": "string"
},
"actions": {
"type": "array",
"items": {
"type": "string",
"enum": [
"CREATED",
"MODIFIED",
"DELETED",
"STARTED",
"COMPLETED",
"FAILED",
"OTHER",
"APPLICATION_CREATED",
"APPLICATION_UPDATED",
"APPLICATION_DELETED",
"DIRECTORY_CREATED",
"DIRECTORY_UPDATED",
"DIRECTORY_DELETED",
"CONFIGURATION_MODIFIED",
"RESTORE_STARTED",
"RESTORE_FINISHED",
"USER_CREATED",
"USER_UPDATED",
"USER_DELETED",
"GROUP_CREATED",
"GROUP_UPDATED",
"GROUP_DELETED",
"ADDED_TO_GROUP",
"REMOVED_FROM_GROUP",
"ALIAS_CREATED",
"ALIAS_UPDATED",
"ALIAS_DELETED",
"SYNCHRONIZATION_STARTED",
"SYNCHRONIZATION_FINISHED",
"IMPORT_STARTED",
"IMPORT_FINISHED",
"PASSWORD_RESET_STARTED",
"PASSWORD_RESET_FINISHED",
"PASSWORD_CHANGED",
"GROUP_ADMIN_ASSIGNED",
"GROUP_ADMIN_REVOKED"
]
}
},
"sources": {
"type": "array",
"items": {
"type": "string",
"enum": [
"MANUAL",
"SYNCHRONIZATION",
"DATA_IMPORT"
]
}
},
"authors": {
"type": "array",
"items": {
"title": "Audit Log Author Restriction Rest",
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"USER",
"APPLICATION",
"SYSTEM",
"PLUGIN",
"SYNCHRONIZATION",
"DATA_IMPORT",
"OTHER"
]
}
},
"additionalProperties": false
}
},
"users": {
"type": "array",
"items": {
"$ref": "#/definitions/audit-log-entity-restriction-rest"
}
},
"groups": {
"type": "array",
"items": {
"$ref": "#/definitions/audit-log-entity-restriction-rest"
}
},
"applications": {
"type": "array",
"items": {
"$ref": "#/definitions/audit-log-entity-restriction-rest"
}
},
"directories": {
"type": "array",
"items": {
"$ref": "#/definitions/audit-log-entity-restriction-rest"
}
}
},
"definitions": {
"audit-log-entity-restriction-rest": {
"title": "Audit Log Entity Restriction Rest",
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
Responses
- Status
200Returned when restriction was valid
Example
{ "size": 1, "start": 0, "limit": 1, "isLastPage": false, "values": [ { "id": 1, "timestamp": "2017-04-26T00:00:00.000+0000", "author": { "id": 1, "name": "admin", "type": "USER" }, "eventType": "APPLICATION_CREATED", "entities": [ { "id": 12, "name": "Jira 7.4", "type": "APPLICATION", "subtype": "JIRA", "primary": true } ], "ipAddress": "127.0.0.1", "eventMessage": "Application modified", "entries": [ { "propertyName": "name", "oldValue": "JIRA 7.2", "newValue": "Jira 7.4" } ] } ] }
Get filter values
experimentalPOST /rest/admin/1.0/auditlog/query/filter
Returns a list of unique items of the chosen type that exist in changesets matching the specified search restriction.
Request
query parameters
parameter | type | description |
---|---|---|
search | string | returns only results with a name starting with the given value |
projection | string | the item type requested. Currently supports 'EVENT_TYPE', 'AUTHOR', 'ENTITY_USER', 'ENTITY_GROUP', 'ENTITY_DIRECTORY', 'ENTITY_APPLICATION', 'SOURCE' |
Example
{
"onOrAfter": "2017-04-26T00:00:00.000+0000",
"beforeOrOn": "2017-05-26T00:00:00.000+0000",
"actions": [
"USER_UPDATED",
"APPLICATION_CREATED"
],
"sources": [],
"authors": [
{
"id": 1,
"name": "admin",
"type": "USER"
},
{
"name": "jira",
"type": "APPLICATION"
}
],
"users": [
{
"id": 2,
"name": "user"
}
],
"groups": [
{
"id": 4,
"name": "jira-administrators"
}
],
"applications": [
{
"id": 5,
"name": "jira"
}
],
"directories": [
{
"id": 6,
"name": "ad"
}
]
}
Schema
{
"id": "https://docs.atlassian.com/jira/REST/schema/audit-log-query-rest#",
"title": "Audit Log Query Rest",
"type": "object",
"properties": {
"onOrAfter": {
"type": "string"
},
"beforeOrOn": {
"type": "string"
},
"actions": {
"type": "array",
"items": {
"type": "string",
"enum": [
"CREATED",
"MODIFIED",
"DELETED",
"STARTED",
"COMPLETED",
"FAILED",
"OTHER",
"APPLICATION_CREATED",
"APPLICATION_UPDATED",
"APPLICATION_DELETED",
"DIRECTORY_CREATED",
"DIRECTORY_UPDATED",
"DIRECTORY_DELETED",
"CONFIGURATION_MODIFIED",
"RESTORE_STARTED",
"RESTORE_FINISHED",
"USER_CREATED",
"USER_UPDATED",
"USER_DELETED",
"GROUP_CREATED",
"GROUP_UPDATED",
"GROUP_DELETED",
"ADDED_TO_GROUP",
"REMOVED_FROM_GROUP",
"ALIAS_CREATED",
"ALIAS_UPDATED",
"ALIAS_DELETED",
"SYNCHRONIZATION_STARTED",
"SYNCHRONIZATION_FINISHED",
"IMPORT_STARTED",
"IMPORT_FINISHED",
"PASSWORD_RESET_STARTED",
"PASSWORD_RESET_FINISHED",
"PASSWORD_CHANGED",
"GROUP_ADMIN_ASSIGNED",
"GROUP_ADMIN_REVOKED"
]
}
},
"sources": {
"type": "array",
"items": {
"type": "string",
"enum": [
"MANUAL",
"SYNCHRONIZATION",
"DATA_IMPORT"
]
}
},
"authors": {
"type": "array",
"items": {
"title": "Audit Log Author Restriction Rest",
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"USER",
"APPLICATION",
"SYSTEM",
"PLUGIN",
"SYNCHRONIZATION",
"DATA_IMPORT",
"OTHER"
]
}
},
"additionalProperties": false
}
},
"users": {
"type": "array",
"items": {
"$ref": "#/definitions/audit-log-entity-restriction-rest"
}
},
"groups": {
"type": "array",
"items": {
"$ref": "#/definitions/audit-log-entity-restriction-rest"
}
},
"applications": {
"type": "array",
"items": {
"$ref": "#/definitions/audit-log-entity-restriction-rest"
}
},
"directories": {
"type": "array",
"items": {
"$ref": "#/definitions/audit-log-entity-restriction-rest"
}
}
},
"definitions": {
"audit-log-entity-restriction-rest": {
"title": "Audit Log Entity Restriction Rest",
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
Responses
- Status
200
Example
{ "size": 3, "start": 0, "limit": 50, "isLastPage": true, "values": [ { "timestamp": null, "authorType": "USER", "authorId": 5, "authorName": "user1", "entities": [], "entries": [] }, { "timestamp": null, "authorType": "USER", "authorName": "user3", "entities": [], "entries": [] }, { "id": 12345, "timestamp": null, "authorType": "APPLICATION", "authorName": "jira1", "entities": [], "entries": [] } ] }
admin/1.0/directoryExpand all methods
Represents an Directory management resource.
Test azure ad connectionPOST /rest/admin/1.0/directory/testazuread
Tests connection to the specified Azure Active Directory.
Request
Example
{
"tenantId": "example.onmicrosoft.com",
"webAppId": "1a23b45c-de67-8ce0-881c-b43acfee0x34",
"webAppSecret": "X70mv+pzvXoiib3OYwaRPVmzoFgq1eDpYUnGm0JTfzQ=",
"nativeAppId": "a1af321g-j123-4ter-84x2-a456d3987aa1",
"graphEndpoint": "https://graph.microsoft.com",
"authorityEndpoint": "https://login.windows.net",
"region": "GERMANY"
}
Schema
{
"id": "https://docs.atlassian.com/jira/REST/schema/azure-ad-connection-test-entity#",
"title": "Azure Ad Connection Test Entity",
"type": "object",
"properties": {
"tenantId": {
"type": "string"
},
"webAppId": {
"type": "string"
},
"webAppSecret": {
"type": "string"
},
"nativeAppId": {
"type": "string"
},
"graphEndpoint": {
"type": "string"
},
"authorityEndpoint": {
"type": "string"
},
"region": {
"type": "string"
}
},
"additionalProperties": false
}
Responses
- Status
400Returned if the entity contains invalid values for fields
Example
{ "errors": [ { "field": "url", "messages": [ "Supplied URL is blank" ] }, { "field": "name", "messages": [ "Supplied name is blank" ] } ] }
- Status
204Returned if the connection was successfully made
- Status
409Returned if there was a problem with connecting to the Azure Active Directory
Test azure ad connectionPOST /rest/admin/1.0/directory/testazuread/{id}
Tests connection to the specified Azure Active Directory.
Request
Example
{
"tenantId": "example.onmicrosoft.com",
"webAppId": "1a23b45c-de67-8ce0-881c-b43acfee0x34",
"webAppSecret": "X70mv+pzvXoiib3OYwaRPVmzoFgq1eDpYUnGm0JTfzQ=",
"nativeAppId": "a1af321g-j123-4ter-84x2-a456d3987aa1",
"graphEndpoint": "https://graph.microsoft.com",
"authorityEndpoint": "https://login.windows.net",
"region": "GERMANY"
}
Schema
{
"id": "https://docs.atlassian.com/jira/REST/schema/azure-ad-connection-test-entity#",
"title": "Azure Ad Connection Test Entity",
"type": "object",
"properties": {
"tenantId": {
"type": "string"
},
"webAppId": {
"type": "string"
},
"webAppSecret": {
"type": "string"
},
"nativeAppId": {
"type": "string"
},
"graphEndpoint": {
"type": "string"
},
"authorityEndpoint": {
"type": "string"
},
"region": {
"type": "string"
}
},
"additionalProperties": false
}
Responses
- Status
400Returned if the entity contains invalid values for fields
Example
{ "errors": [ { "field": "url", "messages": [ "Supplied URL is blank" ] }, { "field": "name", "messages": [ "Supplied name is blank" ] } ] }
- Status
204Returned if the connection was successfully made
- Status
409Returned if there was a problem with connecting to the Azure Active Directory
Test crowd connectionPOST /rest/admin/1.0/directory/testcrowd
Tests connection to the specified Remote Crowd directory
Request
Example
{
"url": "http://127.0.0.1:8095/crowd",
"applicationName": "application",
"applicationPassword": "application_password",
"httpProxyHost": "",
"httpProxyUsername": "",
"httpProxyPassword": ""
}
Schema
{
"id": "https://docs.atlassian.com/jira/REST/schema/crowd-connection-test-entity#",
"title": "Crowd Connection Test Entity",
"type": "object",
"properties": {
"url": {
"type": "string"
},
"applicationName": {
"type": "string"
},
"applicationPassword": {
"type": "string"
},
"httpProxyHost": {
"type": "string"
},
"httpProxyPort": {
"type": "integer"
},
"httpProxyUsername": {
"type": "string"
},
"httpProxyPassword": {
"type": "string"
}
},
"additionalProperties": false
}
Responses
- Status
400Returned if the entity contains invalid values for fields
Example
{ "errors": [ { "field": "url", "messages": [ "Supplied URL is blank" ] }, { "field": "name", "messages": [ "Supplied name is blank" ] } ] }
- Status
204Returned if the connection was successfully made
- Status
409Returned if there was a problem with connecting to the Remote Crowd directory
Test crowd connectionPOST /rest/admin/1.0/directory/testcrowd/{id}
Tests connection to the specified Remote Crowd directory
Request
Example
{
"url": "http://127.0.0.1:8095/crowd",
"applicationName": "application",
"applicationPassword": "application_password",
"httpProxyHost": "",
"httpProxyUsername": "",
"httpProxyPassword": ""
}
Schema
{
"id": "https://docs.atlassian.com/jira/REST/schema/crowd-connection-test-entity#",
"title": "Crowd Connection Test Entity",
"type": "object",
"properties": {
"url": {
"type": "string"
},
"applicationName": {
"type": "string"
},
"applicationPassword": {
"type": "string"
},
"httpProxyHost": {
"type": "string"
},
"httpProxyPort": {
"type": "integer"
},
"httpProxyUsername": {
"type": "string"
},
"httpProxyPassword": {
"type": "string"
}
},
"additionalProperties": false
}
Responses
- Status
400Returned if the entity contains invalid values for fields
Example
{ "errors": [ { "field": "url", "messages": [ "Supplied URL is blank" ] }, { "field": "name", "messages": [ "Supplied name is blank" ] } ] }
- Status
204Returned if the connection was successfully made
- Status
409Returned if there was a problem with connecting to the Remote Crowd directory
Test ldap connectionPOST /rest/admin/1.0/directory/testldap
Tests connection to the specified LDAP server.
Request
Example
{
"hostname": "localhost",
"port": 389,
"secureMode": "false",
"baseDN": "dc=test,dc=com",
"ldapPassword": "admin",
"userDN": "cn=admin,dc=test,dc=com",
"connector": "com.atlassian.crowd.directory.OpenLDAP",
"referral": false
}
Schema
{
"id": "https://docs.atlassian.com/jira/REST/schema/ldap-connection-test-entity#",
"title": "Ldap Connection Test Entity",
"type": "object",
"properties": {
"hostname": {
"type": "string"
},
"port": {
"type": "integer"
},
"secureMode": {
"type": "string",
"enum": [
"false",
"true",
"starttls"
]
},
"baseDN": {
"type": "string"
},
"ldapPassword": {
"type": "string"
},
"userDN": {
"type": "string"
},
"connector": {
"type": "string"
},
"referral": {
"type": "boolean"
},
"userEncryptionMethod": {
"type": "string"
},
"groupDNaddition": {
"type": "string"
},
"groupDescriptionAttr": {
"type": "string"
},
"groupMemberAttr": {
"type": "string"
},
"groupNameAttr": {
"type": "string"
},
"groupObjectClass": {
"type": "string"
},
"groupObjectFilter": {
"type": "string"
},
"userDNaddition": {
"type": "string"
},
"userObjectClass": {
"type": "string"
},
"userGroupMemberAttr": {
"type": "string"
},
"userFirstnameAttr": {
"type": "string"
},
"userLastnameAttr": {
"type": "string"
},
"userDisplayNameAttr": {
"type": "string"
},
"userMailAttr": {
"type": "string"
},
"userNameAttr": {
"type": "string"
},
"userNameRdnAttr": {
"type": "string"
},
"userPasswordAttr": {
"type": "string"
},
"userObjectFilter": {
"type": "string"
},
"userExternalIdAttr": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"port",
"referral"
]
}
Responses
- Status
400Returned if the entity contains invalid values for fields
Example
{ "errors": [ { "field": "url", "messages": [ "Supplied URL is blank" ] }, { "field": "name", "messages": [ "Supplied name is blank" ] } ] }
- Status
204Returned if the connection was successfully made
- Status
409Returned if there was a problem with connecting to the LDAP server
Test ldap connectionPOST /rest/admin/1.0/directory/testldap/{id}
Tests connection to the specified LDAP server.
Request
Example
{
"hostname": "localhost",
"port": 389,
"secureMode": "false",
"baseDN": "dc=test,dc=com",
"ldapPassword": "admin",
"userDN": "cn=admin,dc=test,dc=com",
"connector": "com.atlassian.crowd.directory.OpenLDAP",
"referral": false
}
Schema
{
"id": "https://docs.atlassian.com/jira/REST/schema/ldap-connection-test-entity#",
"title": "Ldap Connection Test Entity",
"type": "object",
"properties": {
"hostname": {
"type": "string"
},
"port": {
"type": "integer"
},
"secureMode": {
"type": "string",
"enum": [
"false",
"true",
"starttls"
]
},
"baseDN": {
"type": "string"
},
"ldapPassword": {
"type": "string"
},
"userDN": {
"type": "string"
},
"connector": {
"type": "string"
},
"referral": {
"type": "boolean"
},
"userEncryptionMethod": {
"type": "string"
},
"groupDNaddition": {
"type": "string"
},
"groupDescriptionAttr": {
"type": "string"
},
"groupMemberAttr": {
"type": "string"
},
"groupNameAttr": {
"type": "string"
},
"groupObjectClass": {
"type": "string"
},
"groupObjectFilter": {
"type": "string"
},
"userDNaddition": {
"type": "string"
},
"userObjectClass": {
"type": "string"
},
"userGroupMemberAttr": {
"type": "string"
},
"userFirstnameAttr": {
"type": "string"
},
"userLastnameAttr": {
"type": "string"
},
"userDisplayNameAttr": {
"type": "string"
},
"userMailAttr": {
"type": "string"
},
"userNameAttr": {
"type": "string"
},
"userNameRdnAttr": {
"type": "string"
},
"userPasswordAttr": {
"type": "string"
},
"userObjectFilter": {
"type": "string"
},
"userExternalIdAttr": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"port",
"referral"
]
}
Responses
- Status
400Returned if the entity contains invalid values for fields
Example
{ "errors": [ { "field": "url", "messages": [ "Supplied URL is blank" ] }, { "field": "name", "messages": [ "Supplied name is blank" ] } ] }
- Status
204Returned if the connection was successfully made
- Status
409Returned if there was a problem with connecting to the LDAP server
Test searchPOST /rest/admin/1.0/directory/testsearch
Tests search with the provided LDAP directory configuration
Request
Example
{
"strategy": "GROUP",
"hostname": "localhost",
"port": 389,
"secureMode": "false",
"referral": false,
"baseDN": "dc=test,dc=com",
"userDN": "cn=admin,dc=test,dc=com",
"ldapPassword": "admin",
"filterExpiredUsers": false,
"primaryGroupSupport": false,
"useUserMembershipAttribute": false,
"useUserMembershipAttributeForGroupMembership": false,
"useRelaxedDNStandardisation": false,
"pagedResults": false,
"groupNameAttr": "cn",
"groupObjectFilter": "(objectCategory=Group)",
"connector": "com.atlassian.crowd.directory.OpenLDAP"
}
Schema
{
"id": "https://docs.atlassian.com/jira/REST/schema/ldap-search-test-entity#",
"title": "Ldap Search Test Entity",
"type": "object",
"properties": {
"strategy": {
"type": "string"
},
"hostname": {
"type": "string"
},
"port": {
"type": "integer"
},
"secureMode": {
"type": "string",
"enum": [
"false",
"true",
"starttls"
]
},
"referral": {
"type": "boolean"
},
"baseDN": {
"type": "string"
},
"userDN": {
"type": "string"
},
"ldapPassword": {
"type": "string"
},
"userEncryptionMethod": {
"type": "string"
},
"filterExpiredUsers": {
"type": "boolean"
},
"primaryGroupSupport": {
"type": "boolean"
},
"useUserMembershipAttribute": {
"type": "boolean"
},
"useUserMembershipAttributeForGroupMembership": {
"type": "boolean"
},
"useRelaxedDNStandardisation": {
"type": "boolean"
},
"pagedResults": {
"type": "boolean"
},
"pagedResultsSize": {
"type": "integer"
},
"groupDNaddition": {
"type": "string"
},
"groupDescriptionAttr": {
"type": "string"
},
"groupMemberAttr": {
"type": "string"
},
"groupNameAttr": {
"type": "string"
},
"groupObjectClass": {
"type": "string"
},
"groupObjectFilter": {
"type": "string"
},
"userDNaddition": {
"type": "string"
},
"userObjectClass": {
"type": "string"
},
"userGroupMemberAttr": {
"type": "string"
},
"userFirstnameAttr": {
"type": "string"
},
"userLastnameAttr": {
"type": "string"
},
"userDisplayNameAttr": {
"type": "string"
},
"userMailAttr": {
"type": "string"
},
"userNameAttr": {
"type": "string"
},
"userNameRdnAttr": {
"type": "string"
},
"userPasswordAttr": {
"type": "string"
},
"userObjectFilter": {
"type": "string"
},
"userExternalIdAttr": {
"type": "string"
},
"connector": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"port",
"referral",
"filterExpiredUsers",
"primaryGroupSupport",
"useUserMembershipAttribute",
"useUserMembershipAttributeForGroupMembership",
"useRelaxedDNStandardisation",
"pagedResults"
]
}
Responses
- Status
400Returned if the entity contains invalid values for fields
Example
{ "errors": [ { "field": "url", "messages": [ "Supplied URL is blank" ] }, { "field": "name", "messages": [ "Supplied name is blank" ] } ] }
- Status
204Returned if the search returned results was successfully made
- Status
409Returned if the search did not return any results, or there was a problem with connecting to the directory
Test searchPOST /rest/admin/1.0/directory/testsearch/{id}
Tests search with the provided LDAP directory configuration
Request
Example
{
"strategy": "GROUP",
"hostname": "localhost",
"port": 389,
"secureMode": "false",
"referral": false,
"baseDN": "dc=test,dc=com",
"userDN": "cn=admin,dc=test,dc=com",
"ldapPassword": "admin",
"filterExpiredUsers": false,
"primaryGroupSupport": false,
"useUserMembershipAttribute": false,
"useUserMembershipAttributeForGroupMembership": false,
"useRelaxedDNStandardisation": false,
"pagedResults": false,
"groupNameAttr": "cn",
"groupObjectFilter": "(objectCategory=Group)",
"connector": "com.atlassian.crowd.directory.OpenLDAP"
}
Schema
{
"id": "https://docs.atlassian.com/jira/REST/schema/ldap-search-test-entity#",
"title": "Ldap Search Test Entity",
"type": "object",
"properties": {
"strategy": {
"type": "string"
},
"hostname": {
"type": "string"
},
"port": {
"type": "integer"
},
"secureMode": {
"type": "string",
"enum": [
"false",
"true",
"starttls"
]
},
"referral": {
"type": "boolean"
},
"baseDN": {
"type": "string"
},
"userDN": {
"type": "string"
},
"ldapPassword": {
"type": "string"
},
"userEncryptionMethod": {
"type": "string"
},
"filterExpiredUsers": {
"type": "boolean"
},
"primaryGroupSupport": {
"type": "boolean"
},
"useUserMembershipAttribute": {
"type": "boolean"
},
"useUserMembershipAttributeForGroupMembership": {
"type": "boolean"
},
"useRelaxedDNStandardisation": {
"type": "boolean"
},
"pagedResults": {
"type": "boolean"
},
"pagedResultsSize": {
"type": "integer"
},
"groupDNaddition": {
"type": "string"
},
"groupDescriptionAttr": {
"type": "string"
},
"groupMemberAttr": {
"type": "string"
},
"groupNameAttr": {
"type": "string"
},
"groupObjectClass": {
"type": "string"
},
"groupObjectFilter": {
"type": "string"
},
"userDNaddition": {
"type": "string"
},
"userObjectClass": {
"type": "string"
},
"userGroupMemberAttr": {
"type": "string"
},
"userFirstnameAttr": {
"type": "string"
},
"userLastnameAttr": {
"type": "string"
},
"userDisplayNameAttr": {
"type": "string"
},
"userMailAttr": {
"type": "string"
},
"userNameAttr": {
"type": "string"
},
"userNameRdnAttr": {
"type": "string"
},
"userPasswordAttr": {
"type": "string"
},
"userObjectFilter": {
"type": "string"
},
"userExternalIdAttr": {
"type": "string"
},
"connector": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"port",
"referral",
"filterExpiredUsers",
"primaryGroupSupport",
"useUserMembershipAttribute",
"useUserMembershipAttributeForGroupMembership",
"useRelaxedDNStandardisation",
"pagedResults"
]
}
Responses
- Status
400Returned if the entity contains invalid values for fields
Example
{ "errors": [ { "field": "url", "messages": [ "Supplied URL is blank" ] }, { "field": "name", "messages": [ "Supplied name is blank" ] } ] }
- Status
204Returned if the search returned results was successfully made
- Status
409Returned if the search did not return any results, or there was a problem with connecting to the directory
admin/1.0/directoryExpand all methods
Represents a resource for directories, this resource is accessible by user-based authentication
Get managed directories
experimentalGET /rest/admin/1.0/directory/managed
Lists the directories managed by the logged in user
Responses
- Status
200the search was performed successfully
Example
{ "size": 2, "start": 0, "limit": 50, "isLastPage": true, "values": [ { "id": 1, "displayName": "Directory One" }, { "id": 2, "displayName": "Directory Two" } ] }
Schema
{ "id": "https://docs.atlassian.com/jira/REST/schema/rest-page-of-directory#", "title": "Rest Page of Directory", "type": "object", "properties": { "values": { "type": "array", "items": { "title": "Directory", "type": "object", "properties": { "id": { "type": "integer" }, "displayName": { "type": "string" } }, "additionalProperties": false, "required": [ "id" ] } }, "size": { "type": "integer" }, "start": { "type": "integer" }, "limit": { "type": "integer" }, "isLastPage": { "type": "boolean" } }, "additionalProperties": false, "required": [ "size", "start", "limit", "isLastPage" ] }
- Status
412If the feature is not accessible under current license
- Status
500If the operation fails to complete because of server error
admin/1.0/groupExpand all methods
Search directory groups
experimentalGET /rest/admin/1.0/group/search/{directoryId}
Searches the given directory for groups matching the search term.
Request
query parameters
parameter | type | description |
---|---|---|
term | string | the search term |
Responses
- Status
200the search was performed successfully
Example
[ { "name": "crowd-administrators" }, { "name": "crowd-users" } ]
Schema
{ "id": "https://docs.atlassian.com/jira/REST/schema/rest-page-of-group-search-result-entity#", "title": "Rest Page of Group Search Result Entity", "type": "object", "properties": { "values": { "type": "array", "items": { "title": "Group Search Result Entity", "type": "object", "properties": { "name": { "type": "string" } }, "additionalProperties": false } }, "size": { "type": "integer" }, "start": { "type": "integer" }, "limit": { "type": "integer" }, "isLastPage": { "type": "boolean" } }, "additionalProperties": false, "required": [ "size", "start", "limit", "isLastPage" ] }
admin/1.0/group-level-adminExpand all methods
Represents a resource for managing group-level administrators.
Get group administratorsGET /rest/admin/1.0/group-level-admin/{groupId}/admins
Lists the group-level admins for the specified group
Responses
- Status
200the search was performed successfully
Example
{ "size": 2, "start": 2, "limit": 2, "isLastPage": false, "values": [ { "entity": { "id": "1-Z3JvdXAx", "type": "GROUP" }, "name": "group1", "directory": { "id": 1, "displayName": "Directory One" } }, { "entity": { "id": "2-dXNlcjE=", "type": "USER" }, "name": "user1", "displayName": "User One", "directory": { "id": 1, "displayName": "Directory One" }, "email": "user@company.com", "active": true } ] }
Schema
{ "id": "https://docs.atlassian.com/jira/REST/schema/rest-page-of-group-administration-mapping-rest#", "title": "Rest Page of Group Administration Mapping Rest", "type": "object", "properties": { "values": { "type": "array", "items": { "title": "Group Administration Mapping Rest", "type": "object", "properties": { "entity": { "title": "Directory Entity Rest", "type": "object", "properties": { "id": { "title": "Directory Entity Id", "type": "object" }, "type": { "type": "string", "enum": [ "USER", "GROUP" ] } }, "additionalProperties": false }, "name": { "type": "string" }, "displayName": { "type": "string" }, "directory": { "title": "Directory", "type": "object", "properties": { "id": { "type": "integer" }, "displayName": { "type": "string" } }, "additionalProperties": false, "required": [ "id" ] }, "email": { "type": "string" }, "active": { "type": "boolean" } }, "additionalProperties": false } }, "size": { "type": "integer" }, "start": { "type": "integer" }, "limit": { "type": "integer" }, "isLastPage": { "type": "boolean" } }, "additionalProperties": false, "required": [ "size", "start", "limit", "isLastPage" ] }
- Status
400If the group to be administered or any of the group admins belongs to a non-existent directory
- Status
412If the feature is not accessible under current license
- Status
404if the group that should be administered cannot be found
Add group administrators
experimentalPOST /rest/admin/1.0/group-level-admin/{groupId}/admins
Grants the rights to administer the specified group to the specified directory entities
Request
Example
[
{
"id": "1-dXNlcjE=",
"type": "USER"
},
{
"id": "2-Z3JvdXAx",
"type": "GROUP"
}
]
Schema
{
"id": "https://docs.atlassian.com/jira/REST/schema/list-of-directory-entity-rest#",
"title": "List of Directory Entity Rest",
"type": "array",
"items": {
"title": "Directory Entity Rest",
"type": "object",
"properties": {
"id": {
"title": "Directory Entity Id",
"type": "object"
},
"type": {
"type": "string",
"enum": [
"USER",
"GROUP"
]
}
},
"additionalProperties": false
}
}
Responses
- Status
200the search was performed successfully
Example
{ "successes": [ "1-dXNlcjE=" ], "failures": [ { "entity": "1-dXNlcjE=", "reason": "The entity does not exist" } ] }
Schema
{ "id": "https://docs.atlassian.com/jira/REST/schema/batch-result-with-failure-reasons-rest-of-directory-entity-rest#", "title": "Batch Result With Failure Reasons Rest of Directory Entity Rest", "type": "object", "properties": { "successes": { "type": "array", "items": { "$ref": "#/definitions/directory-entity-rest" } }, "failures": { "type": "array", "items": { "title": "Failed Entity", "type": "object", "properties": { "entity": { "$ref": "#/definitions/directory-entity-rest" }, "reason": { "type": "string" } }, "additionalProperties": false } } }, "definitions": { "directory-entity-rest": { "title": "Directory Entity Rest", "type": "object", "properties": { "id": { "title": "Directory Entity Id", "type": "object" }, "type": { "type": "string", "enum": [ "USER", "GROUP" ] } }, "additionalProperties": false } }, "additionalProperties": false }
- Status
400If the group to be administered or any of the group admins belongs to a non-existent directory
- Status
412If the feature is not accessible under current license
- Status
404if the group that should be administered cannot be found
Delete group group administrator
experimentalDELETE /rest/admin/1.0/group-level-admin/{groupId}/admins/groups/{adminId}
Revokes the rights to administer the given group from the specified group
Responses
- Status
200the rights were revoked successfully
- Status
400If the administered group or the admin group belongs to a non-existent directory
- Status
412If the feature is not accessible under current license
- Status
500The operation failed due to an error
- Status
404if the administered group or the admin group cannot be found
Get admin candidatesGET /rest/admin/1.0/group-level-admin/{groupId}/admins/suggestions
Returns users and groups that can become admins of the given group.
Request
query parameters
parameter | type | description |
---|---|---|
search | string | user/group search string |
limit | int Default: 100 | maximum number of results returned from the search |
Responses
- Status
200
Example
{ "size": 4, "start": 0, "limit": 10, "isLastPage": true, "values": [ { "entity": { "id": "0-UG93ZXIgdXNlcnM=", "type": "GROUP" }, "name": "Power users", "directory": { "id": 0, "displayName": "Open LDAP" }, "active": true }, { "entity": { "id": "1-VGVzdGVycw==", "type": "GROUP" }, "name": "Testers", "directory": { "id": 1, "displayName": "Active Directory" }, "active": true }, { "entity": { "type": "USER" }, "name": "ariel", "directory": { "id": 0, "displayName": "Open LDAP" }, "email": "ariel@some.domain.com", "active": true }, { "entity": { "type": "USER" }, "name": "carie", "directory": { "id": 0, "displayName": "Open LDAP" }, "email": "carie@some.domain.com", "active": true } ] }
Schema
{ "id": "https://docs.atlassian.com/jira/REST/schema/rest-page-of-group-administration-mapping-rest#", "title": "Rest Page of Group Administration Mapping Rest", "type": "object", "properties": { "values": { "type": "array", "items": { "title": "Group Administration Mapping Rest", "type": "object", "properties": { "entity": { "title": "Directory Entity Rest", "type": "object", "properties": { "id": { "title": "Directory Entity Id", "type": "object" }, "type": { "type": "string", "enum": [ "USER", "GROUP" ] } }, "additionalProperties": false }, "name": { "type": "string" }, "displayName": { "type": "string" }, "directory": { "title": "Directory", "type": "object", "properties": { "id": { "type": "integer" }, "displayName": { "type": "string" } }, "additionalProperties": false, "required": [ "id" ] }, "email": { "type": "string" }, "active": { "type": "boolean" } }, "additionalProperties": false } }, "size": { "type": "integer" }, "start": { "type": "integer" }, "limit": { "type": "integer" }, "isLastPage": { "type": "boolean" } }, "additionalProperties": false, "required": [ "size", "start", "limit", "isLastPage" ] }
- Status
401Returned if user does not have permission to perform this operation
- Status
412If the feature is not accessible under current license
- Status
500The operation failed due to an error
- Status
404Returned if the group to administer or current was not found
Delete user group administrator
experimentalDELETE /rest/admin/1.0/group-level-admin/{groupId}/admins/users/{adminId}
Revokes the rights to administer the given group from the specified user
Responses
- Status
200the rights were revoked successfully
- Status
400If the administered group or the admin user belongs to a non-existent directory
- Status
412If the feature is not accessible under current license
- Status
500The operation failed due to an error
- Status
404if the administered group or the admin user cannot be found
admin/1.0/groupsExpand all methods
Represents a resource for managing groups.
Group detailsGET /rest/admin/1.0/groups/{groupId}
Returns group details
Responses
- Status
200The operation succeeded
Example
{ "displayName": "groupName", "directory": { "id": 19, "displayName": "mainDirectory" } }
- Status
400Returned if directory was not found
- Status
401Returned if user has no permission to perform this operation
- Status
412If the feature is not accessible under current license
- Status
500The operation failed due to an error
- Status
404Returned if group was not found
Remove users from groupDELETE /rest/admin/1.0/groups/{groupId}/users
Removes multiple users from single group placed in the same directory
Request
Example
{
"ids": [
"1900-Z3JvdXAx",
"1900-Z3JvdXAy",
"1900-Z3JvdXAz"
]
}
Schema
{
"id": "https://docs.atlassian.com/jira/REST/schema/user-identifiers-entity-list#",
"title": "User Identifiers Entity List",
"type": "object",
"properties": {
"ids": {
"type": "array",
"items": {
"title": "Directory Entity Id",
"type": "object"
}
}
},
"additionalProperties": false
}
Responses
- Status
200Returned if operation of removing users from group was completed
Example
{ "successes": [ "1900-Z3JvdXAx" ], "failures": [ { "entity": "1900-Z3JvdXAy", "reason": "Some reason of failure" }, { "entity": "1900-Z3JvdXAz", "reason": "Another reason of failure" } ] }
- Status
400Returned if directory was not found
- Status
401Returned if user has no permission to this operation
- Status
412If the feature is not accessible under current license
- Status
500The operation failed due to an error
- Status
404Returned if group was not found
Group membersGET /rest/admin/1.0/groups/{groupId}/users
Returns group's direct members (users).
Responses
- Status
200The operation succeeded
Example
{ "size": 1, "start": 0, "limit": 1, "isLastPage": false, "values": [ { "id": "1900-dXNlcjE=", "displayName": "user", "email": "some@mail.com", "active": true } ] }
- Status
400Returned if directory was not found
- Status
401Returned if user has no permission to perform this operation
- Status
412If the feature is not accessible under current license
- Status
500The operation failed due to an error
- Status
404Returned if group was not found
Add users to groupPOST /rest/admin/1.0/groups/{groupId}/users
Adds multiple users to a single group placed in the same directory
Request
Example
{
"ids": [
"1900-Z3JvdXAx",
"1900-Z3JvdXAy",
"1900-Z3JvdXAz"
]
}
Schema
{
"id": "https://docs.atlassian.com/jira/REST/schema/user-identifiers-entity-list#",
"title": "User Identifiers Entity List",
"type": "object",
"properties": {
"ids": {
"type": "array",
"items": {
"title": "Directory Entity Id",
"type": "object"
}
}
},
"additionalProperties": false
}
Responses
- Status
200Returned if operation of adding users to group was completed
Example
{ "successes": [ "1900-Z3JvdXAx" ], "failures": [ { "entity": "1900-Z3JvdXAy", "reason": "Some reason of failure" }, { "entity": "1900-Z3JvdXAz", "reason": "Another reason of failure" } ] }
- Status
400Returned if directory was not found
- Status
401Returned if user has no permission to perform this operation
- Status
412If the feature is not accessible under current license
- Status
500The operation failed due to an error
- Status
404Returned if group was not found
- Status
409Returned if the directory does not support the operation
Search usersGET /rest/admin/1.0/groups/{groupId}/users/suggestions
Returns users that can be assigned to the given group.
Request
query parameters
parameter | type | description |
---|---|---|
search | string | user search string |
limit | int Default: 100 | maximum number of results returned from the search |
Responses
- Status
200
Example
{ "size": 10, "start": 0, "limit": 10, "isLastPage": false, "values": [ { "username": "ariel", "email": "ariel@some.domain.com", "active": true, "directory": { "id": 0, "displayName": "Open LDAP" } }, { "username": "carie", "email": "carie@some.domain.com", "active": true, "directory": { "id": 0, "displayName": "Open LDAP" } }, { "username": "clarita", "email": "clarita@some.domain.com", "active": true, "directory": { "id": 0, "displayName": "Open LDAP" } }, { "username": "john", "email": "john@some.domain.com", "active": true, "directory": { "id": 0, "displayName": "Open LDAP" } }, { "username": "libby", "email": "libby@some.domain.com", "active": true, "directory": { "id": 0, "displayName": "Open LDAP" } }, { "username": "magdalena", "email": "magdalena@some.domain.com", "active": true, "directory": { "id": 1, "displayName": "Active Directory" } }, { "username": "naomi", "email": "naomi@some.domain.com", "active": true, "directory": { "id": 1, "displayName": "Active Directory" } }, { "username": "patricia", "email": "patricia@some.domain.com", "active": true, "directory": { "id": 1, "displayName": "Active Directory" } }, { "username": "starwars", "email": "starwars@some.domain.com", "active": true, "directory": { "id": 1, "displayName": "Active Directory" } }, { "username": "winona", "email": "winona@some.domain.com", "active": true, "directory": { "id": 1, "displayName": "Active Directory" } } ] }
- Status
401Returned if user does not have permission to perform this operation
- Status
412If the feature is not accessible under current license
- Status
500The operation failed due to an error
- Status
404Returned if the group or current user was not found
Search administered groups
experimentalPOST /rest/admin/1.0/groups/query
Returns groups that are administered by logged in user
Request
Example
{
"search": "admins",
"directoryId": 1900
}
Schema
{
"id": "https://docs.atlassian.com/jira/REST/schema/groups-filter#",
"title": "Groups Filter",
"type": "object",
"properties": {
"search": {
"type": "string"
},
"directoryId": {
"type": "integer"
}
},
"additionalProperties": false
}
Responses
- Status
200The operation succeeded
Example
{ "size": 2, "start": 0, "limit": 2, "isLastPage": false, "values": [ { "id": "1900-Z3JvdXAx", "displayName": "group1", "description": "The best group", "directory": { "id": 19, "displayName": "mainDirectory" } }, { "id": "1900-Z3JvdXAy", "displayName": "group2", "description": "The most valuable group", "directory": { "id": 19, "displayName": "mainDirectory" } } ] }
- Status
400Returned if the filter directory was not found
- Status
412If the feature is not accessible under current license
- Status
500The operation failed due to an error
admin/1.0/mail/configurationExpand all methods
Represents a Mail Server management resource.
Save configurationPOST /rest/admin/1.0/mail/configuration
Saves mail configuration
Request
Example
{
"from": "somefrom@mail.com",
"notificationEmails": [
"notification@mail.com",
"serveralert@mail.com"
],
"prefix": "[PREFIX]",
"host": "host.com",
"username": "username",
"password": "P4ssw0rd",
"port": 1234,
"jndiMailActive": false,
"useSSL": "true",
"addressToTest": "address@to.test",
"timeout": 30
}
Schema
{
"id": "https://docs.atlassian.com/jira/REST/schema/mail-server-configuration-entity#",
"title": "Mail Server Configuration Entity",
"type": "object",
"properties": {
"from": {
"type": "string"
},
"notificationEmails": {
"type": "array",
"items": {
"type": "string"
}
},
"prefix": {
"type": "string"
},
"host": {
"type": "string"
},
"username": {
"type": "string"
},
"password": {
"type": "string"
},
"jndiLocation": {
"type": "string"
},
"port": {
"type": "integer"
},
"jndiMailActive": {
"type": "boolean"
},
"useSSL": {
"type": "string"
},
"addressToTest": {
"type": "string"
},
"timeout": {
"type": "integer"
}
},
"additionalProperties": false
}
Responses
- Status
200Returned if saving was success
- Status
400Returned if saving failed (validation failed)
Test mail server connectionPOST /rest/admin/1.0/mail/configuration/test
Tests connection to the specified SMTP server.
Request
Example
{
"from": "somefrom@mail.com",
"notificationEmails": [
"notification@mail.com",
"serveralert@mail.com"
],
"prefix": "[PREFIX]",
"host": "host.com",
"username": "username",
"password": "P4ssw0rd",
"port": 1234,
"jndiMailActive": false,
"useSSL": "true",
"addressToTest": "address@to.test",
"timeout": 30
}
Schema
{
"id": "https://docs.atlassian.com/jira/REST/schema/mail-server-configuration-entity#",
"title": "Mail Server Configuration Entity",
"type": "object",
"properties": {
"from": {
"type": "string"
},
"notificationEmails": {
"type": "array",
"items": {
"type": "string"
}
},
"prefix": {
"type": "string"
},
"host": {
"type": "string"
},
"username": {
"type": "string"
},
"password": {
"type": "string"
},
"jndiLocation": {
"type": "string"
},
"port": {
"type": "integer"
},
"jndiMailActive": {
"type": "boolean"
},
"useSSL": {
"type": "string"
},
"addressToTest": {
"type": "string"
},
"timeout": {
"type": "integer"
}
},
"additionalProperties": false
}
Responses
- Status
200Returned if test was completed
Example
{ "logs": "Cannot connect to host `host.com`", "success": false }
- Status
400Returned if provided parameters are invalid
- Status
500The operation failed due to an error
Validate fieldsPOST /rest/admin/1.0/mail/configuration/validate
Validates fields required in test connection for mail server.
Request
Example
{
"from": "somefrom@mail.com",
"notificationEmails": [
"notification@mail.com",
"serveralert@mail.com"
],
"prefix": "[PREFIX]",
"host": "host.com",
"username": "username",
"password": "P4ssw0rd",
"port": 1234,
"jndiMailActive": false,
"useSSL": "true",
"addressToTest": "address@to.test",
"timeout": 30
}
Schema
{
"id": "https://docs.atlassian.com/jira/REST/schema/mail-server-configuration-entity#",
"title": "Mail Server Configuration Entity",
"type": "object",
"properties": {
"from": {
"type": "string"
},
"notificationEmails": {
"type": "array",
"items": {
"type": "string"
}
},
"prefix": {
"type": "string"
},
"host": {
"type": "string"
},
"username": {
"type": "string"
},
"password": {
"type": "string"
},
"jndiLocation": {
"type": "string"
},
"port": {
"type": "integer"
},
"jndiMailActive": {
"type": "boolean"
},
"useSSL": {
"type": "string"
},
"addressToTest": {
"type": "string"
},
"timeout": {
"type": "integer"
}
},
"additionalProperties": false
}
Responses
- Status
200Returned if validation was success
- Status
400Returned if validation failed
admin/1.0/remember-meExpand all methods
Resource for managing remember-me configuration in Crowd
Save configurationPUT /rest/admin/1.0/remember-me/config
Updates the remember me configuration
Request
Example
{
"expirationPeriod": 300,
"enabled": true
}
Schema
{
"id": "https://docs.atlassian.com/jira/REST/schema/remember-me-configuration-entity#",
"title": "Remember Me Configuration Entity",
"type": "object",
"properties": {
"expirationPeriod": {
"type": "integer"
},
"enabled": {
"type": "boolean"
}
},
"additionalProperties": false
}
Responses
- Status
204Returned if saving the configuration was successful
Get configurationGET /rest/admin/1.0/remember-me/config
Returns the current remember-me configuration
Responses
- Status
200Returned if fetching the current configuration was successful
Example
{ "expirationPeriod": 300, "enabled": true }
Schema
{ "id": "https://docs.atlassian.com/jira/REST/schema/remember-me-configuration-entity#", "title": "Remember Me Configuration Entity", "type": "object", "properties": { "expirationPeriod": { "type": "integer" }, "enabled": { "type": "boolean" } }, "additionalProperties": false }
Expire all tokensPOST /rest/admin/1.0/remember-me/expire-all
Expires all active remember-me tokens
Responses
- Status
204Returned if the tokens have been successfully expired
admin/1.0/server-infoExpand all methods
Server information resource
Get server infoGET /rest/admin/1.0/server-info
Returns server information
Responses
- Status
200Should always return server information
Example
{ "version": "3.3.0", "deploymentTitle": "Crowd: Commercial", "buildNumber": 1234, "buildDate": "2018-10-01" }
admin/1.0/sessionsExpand all methods
Represents a resource for managing current application and user sessions.
Expire session
experimentalDELETE /rest/admin/1.0/sessions/{randomHash}
Expires the session with given ID
Responses
- Status
200the session was expired successfully
Get application sessions
experimentalGET /rest/admin/1.0/sessions/application
Lists the sessions of applications for specified parameters
Request
query parameters
parameter | type | description |
---|---|---|
search | string | the search keyword for sessions filtering |
Responses
- Status
200the search was performed successfully
Example
[ { "randomHash": "randomhash1", "id": 123, "initialization": "1970-01-01T00:00:00.123+0000", "lastAccess": 123, "application": { "id": 1, "name": "JIRA", "description": "Jira Application", "type": "JIRA", "active": true, "aliasingEnabled": true, "lowercaseOutput": true, "aggregateMemberships": true } }, { "randomHash": "randomhash2", "id": 124, "initialization": "1970-01-01T00:00:00.124+0000", "lastAccess": 124, "application": { "id": 2, "name": "BAMBOO", "description": "Bamboo Application", "type": "BAMBOO", "active": true, "aliasingEnabled": true, "lowercaseOutput": true, "aggregateMemberships": true } } ]
Schema
{ "id": "https://docs.atlassian.com/jira/REST/schema/rest-page-of-application-sessions-search-result-entity#", "title": "Rest Page of Application Sessions Search Result Entity", "type": "object", "properties": { "values": { "type": "array", "items": { "title": "Application Sessions Search Result Entity", "type": "object", "properties": { "randomHash": { "type": "string" }, "id": { "type": "integer" }, "initialization": { "type": "string" }, "lastAccess": { "type": "integer" }, "application": { "title": "Application Entity", "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "description": { "type": "string" }, "type": { "type": "string", "enum": [ "CROWD", "GENERIC_APPLICATION", "PLUGIN", "JIRA", "CONFLUENCE", "BAMBOO", "FISHEYE", "CRUCIBLE", "STASH" ] }, "active": { "type": "boolean" }, "aliasingEnabled": { "type": "boolean" }, "lowercaseOutput": { "type": "boolean" }, "aggregateMemberships": { "type": "boolean" }, "directoryMappings": { "title": "Directory Mappings Entity", "type": "object", "properties": { "mappings": { "type": "array", "items": { "title": "Directory Mapping Entity", "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "authentication": { "title": "Directory Mapping Authentication Entity", "type": "object", "properties": { "allowAll": { "type": "boolean" }, "allowGroups": { "type": "array", "items": { "type": "string" } } }, "additionalProperties": false }, "defaultGroups": { "type": "array", "items": { "type": "string" } } }, "additionalProperties": false } } }, "additionalProperties": false } }, "additionalProperties": false } }, "additionalProperties": false } }, "size": { "type": "integer" }, "start": { "type": "integer" }, "limit": { "type": "integer" }, "isLastPage": { "type": "boolean" } }, "additionalProperties": false, "required": [ "size", "start", "limit", "isLastPage" ] }
Get user sessions
experimentalGET /rest/admin/1.0/sessions/user
Lists the sessions of users for specified parameters
Request
query parameters
parameter | type | description |
---|---|---|
search | string | the search keyword for sessions filtering |
directoryId | long | the id of directory for sessions filtering |
Responses
- Status
200the search was performed successfully
Example
[ { "randomHash": "randomhash1", "id": 123, "initialization": "1970-01-01T00:00:00.123+0000", "lastAccess": 123, "directory": { "id": 1, "displayName": "Crowd Directory" }, "username": "nwadursk" }, { "randomHash": "randomhash2", "id": 124, "initialization": "1970-01-01T00:00:00.124+0000", "lastAccess": 124, "directory": { "id": 2, "displayName": "Internal Directory" }, "username": "ppakowsk" } ]
Schema
{ "id": "https://docs.atlassian.com/jira/REST/schema/rest-page-of-user-sessions-search-result-entity#", "title": "Rest Page of User Sessions Search Result Entity", "type": "object", "properties": { "values": { "type": "array", "items": { "title": "User Sessions Search Result Entity", "type": "object", "properties": { "randomHash": { "type": "string" }, "id": { "type": "integer" }, "initialization": { "type": "string" }, "lastAccess": { "type": "integer" }, "directory": { "title": "Directory", "type": "object", "properties": { "id": { "type": "integer" }, "displayName": { "type": "string" } }, "additionalProperties": false, "required": [ "id" ] }, "username": { "type": "string" } }, "additionalProperties": false } }, "size": { "type": "integer" }, "start": { "type": "integer" }, "limit": { "type": "integer" }, "isLastPage": { "type": "boolean" } }, "additionalProperties": false, "required": [ "size", "start", "limit", "isLastPage" ] }
- Status
400Returned if the directory was not found
admin/1.0/usersExpand all methods
Represents a group-level admin resource for users view.
Add user to groupsPOST /rest/admin/1.0/users/{userId}/groups
Adds single user to multiple groups placed in the same directory
Request
Example
{
"ids": [
"1900-dXNlcjE=",
"1900-dXNlcjI=",
"1900-dXNlcjM="
]
}
Schema
{
"id": "https://docs.atlassian.com/jira/REST/schema/group-identifiers-entity-list#",
"title": "Group Identifiers Entity List",
"type": "object",
"properties": {
"ids": {
"type": "array",
"items": {
"title": "Directory Entity Id",
"type": "object"
}
}
},
"additionalProperties": false
}
Responses
- Status
200Returned if operation of adding user to groups was completed
Example
{ "successes": [ "1900-dXNlcjE=" ], "failures": [ { "entity": "1900-dXNlcjI=", "reason": "Some reason of failure" }, { "entity": "1900-dXNlcjM=", "reason": "Another reason of failure" } ] }
- Status
400Returned if the directory was not found
- Status
401Returned if user has no permission to perform this operation
- Status
412If the feature is not accessible under current license
- Status
500The operation failed due to an error
- Status
404Returned if user not found
Remove user from groupsDELETE /rest/admin/1.0/users/{userId}/groups
Removes multiple users from single group placed in the same directory
Request
Example
{
"ids": [
"1900-dXNlcjE=",
"1900-dXNlcjI=",
"1900-dXNlcjM="
]
}
Schema
{
"id": "https://docs.atlassian.com/jira/REST/schema/group-identifiers-entity-list#",
"title": "Group Identifiers Entity List",
"type": "object",
"properties": {
"ids": {
"type": "array",
"items": {
"title": "Directory Entity Id",
"type": "object"
}
}
},
"additionalProperties": false
}
Responses
- Status
200Returned if operation of removing user from groups was completed
Example
{ "successes": [ "1900-dXNlcjE=" ], "failures": [ { "entity": "1900-dXNlcjI=", "reason": "Some reason of failure" }, { "entity": "1900-dXNlcjM=", "reason": "Another reason of failure" } ] }
- Status
400Returned if the directory was not found
- Status
401Returned if user has no permission to perform this operation
- Status
412If the feature is not accessible under current license
- Status
500The operation failed due to an error
- Status
404Returned if user not found
Search usersPOST /rest/admin/1.0/users/search
Returns users that can be assigned by to any group administered by the current user.
Request
Example
{
"search": "username",
"directoryIds": [
1900
],
"active": true
}
Schema
{
"id": "https://docs.atlassian.com/jira/REST/schema/user-search-params#",
"title": "User Search Params",
"type": "object",
"properties": {
"search": {
"type": "string"
},
"directoryIds": {
"type": "array",
"items": {
"type": "integer"
}
},
"active": {
"type": "boolean"
}
},
"additionalProperties": false
}
Responses
- Status
200
Example
{ "size": 10, "start": 0, "limit": 10, "isLastPage": false, "values": [ { "username": "ariel", "email": "ariel@some.domain.com", "active": true, "directory": { "id": 0, "displayName": "Open LDAP" } }, { "username": "carie", "email": "carie@some.domain.com", "active": true, "directory": { "id": 0, "displayName": "Open LDAP" } }, { "username": "clarita", "email": "clarita@some.domain.com", "active": true, "directory": { "id": 0, "displayName": "Open LDAP" } }, { "username": "john", "email": "john@some.domain.com", "active": true, "directory": { "id": 0, "displayName": "Open LDAP" } }, { "username": "libby", "email": "libby@some.domain.com", "active": true, "directory": { "id": 0, "displayName": "Open LDAP" } }, { "username": "magdalena", "email": "magdalena@some.domain.com", "active": true, "directory": { "id": 1, "displayName": "Active Directory" } }, { "username": "naomi", "email": "naomi@some.domain.com", "active": true, "directory": { "id": 1, "displayName": "Active Directory" } }, { "username": "patricia", "email": "patricia@some.domain.com", "active": true, "directory": { "id": 1, "displayName": "Active Directory" } }, { "username": "starwars", "email": "starwars@some.domain.com", "active": true, "directory": { "id": 1, "displayName": "Active Directory" } }, { "username": "winona", "email": "winona@some.domain.com", "active": true, "directory": { "id": 1, "displayName": "Active Directory" } } ] }
- Status
400Returned if the directory was not found
- Status
401Returned if user has no permission to perform this operation
- Status
412If the feature is not accessible under current license
- Status
500The operation failed due to an error
- Status
404Returned if user not found
usermanagement/1/authenticationExpand all methods
User Authentication Resource.
Authenticate userPOST /rest/usermanagement/1/authentication
Authenticates a user. Does not generate an SSO token. For SSO please take a look at the SSO token resource.
Request
query parameters
parameter | type | description |
---|---|---|
username | string | name of the user |
Example
{
"value": "hunter2"
}
Schema
{
"id": "https://docs.atlassian.com/jira/REST/schema/password-entity#",
"title": "Password Entity",
"type": "object",
"properties": {
"link": {
"title": "Link",
"type": "object",
"properties": {
"href": {
"type": "string",
"format": "uri"
},
"type": {
"type": "string"
},
"rel": {
"type": "string"
}
},
"additionalProperties": false
},
"value": {
"type": "string"
}
},
"additionalProperties": false
}
Responses
- Status
200Returned if successful
Example
{ "expand": "attributes", "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user?username=sampleuser", "rel": "self" }, "name": "sampleuser", "password": { "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user/password?username=sampleuser", "rel": "edit" } }, "key": "557057:927441f1-cc92-4030-b633-8a2bbdf7136e", "active": true, "attributes": { "attributes": [ { "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user/attributes?username=sampleuser&attributename=invalidPasswordAttempts", "rel": "self" }, "name": "invalidPasswordAttempts", "values": [ "0" ] }, { "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user/attributes?username=sampleuser&attributename=invalidPasswordAttempts&attributename=requiresPasswordChange", "rel": "self" }, "name": "requiresPasswordChange", "values": [ "false" ] } ], "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user/attributes?username=sampleuser&attributename=invalidPasswordAttempts&attributename=requiresPasswordChange", "rel": "self" } }, "first-name": "Sample", "last-name": "User", "display-name": "Sample User", "email": "sample@user.cool" }
- Status
400Returned if unsuccessful (for example the user doesn't exist or can't access the application)
User authenticated
experimentalPOST /rest/usermanagement/1/authentication/notify
Notifies Crowd that a user has logged into an application, using a method different than the default /authentication or /session resources. Does not initiate a SSO session.
This allows to trigger side effects in Crowd, such as updating the user from the remote directory, or applying automatic group assignments.
Request
query parameters
parameter | type | description |
---|---|---|
username | string | name of the user |
Responses
- Status
200Returned if successful
Example
{ "expand": "attributes", "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user?username=sampleuser", "rel": "self" }, "name": "sampleuser", "password": { "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user/password?username=sampleuser", "rel": "edit" } }, "key": "557057:927441f1-cc92-4030-b633-8a2bbdf7136e", "active": true, "attributes": { "attributes": [ { "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user/attributes?username=sampleuser&attributename=invalidPasswordAttempts", "rel": "self" }, "name": "invalidPasswordAttempts", "values": [ "0" ] }, { "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user/attributes?username=sampleuser&attributename=invalidPasswordAttempts&attributename=requiresPasswordChange", "rel": "self" }, "name": "requiresPasswordChange", "values": [ "false" ] } ], "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user/attributes?username=sampleuser&attributename=invalidPasswordAttempts&attributename=requiresPasswordChange", "rel": "self" } }, "first-name": "Sample", "last-name": "User", "display-name": "Sample User", "email": "sample@user.cool" }
- Status
400Returned if unsuccessful (for example the user doesn't exist or can't access the application)
usermanagement/1/config/cookieExpand all methods
Get configGET /rest/usermanagement/1/config/cookie
Returns the Cookie configuration information.
Responses
- Status
200Returned if successful
Example
{ "domain": ".atlassian.com", "secure": true, "name": "cookie-name" }
usermanagement/1/groupExpand all methods
Update groupPUT /rest/usermanagement/1/group
Updates an existing group.
Request
query parameters
parameter | type | description |
---|---|---|
groupname | string | the name of the group to update. |
Example
{
"name": "newgroupname",
"description": "description",
"type": "GROUP"
}
Schema
{
"id": "https://docs.atlassian.com/jira/REST/schema/group-entity#",
"title": "Group Entity",
"type": "object",
"properties": {
"link": {
"$ref": "#/definitions/link"
},
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"GROUP",
"LEGACY_ROLE"
]
},
"active": {
"type": "boolean"
},
"attributes": {
"title": "Multi Valued Attribute Entity List",
"type": "object",
"properties": {
"attributes": {
"type": "array",
"items": {
"title": "Multi Valued Attribute Entity",
"type": "object",
"properties": {
"link": {
"$ref": "#/definitions/link"
},
"name": {
"type": "string"
},
"values": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
}
},
"link": {
"$ref": "#/definitions/link"
}
},
"additionalProperties": false
}
},
"definitions": {
"link": {
"title": "Link",
"type": "object",
"properties": {
"href": {
"type": "string",
"format": "uri"
},
"type": {
"type": "string"
},
"rel": {
"type": "string"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
Responses
- Status
200Returned if the group previously existed and is now updated.
Example
{ "expand": "attributes", "link": { "href": "link_to_group", "rel": "self" }, "name": "groupname", "description": "Group Description", "type": "GROUP", "active": true, "attributes": { "attributes": [], "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/group/attributes?groupname=groupname", "rel": "self" } } }
- Status
400Returned if the groupname in the request body and the URI do not match.
- Status
403Returned if the application is not allowed to update/create a group.
- Status
404Returned if the group does not exist.
Get groupGET /rest/usermanagement/1/group
Retrieves a group.
Request
query parameters
parameter | type | description |
---|---|---|
groupname | string | Name of the group to retrieve. |
Responses
- Status
200Returned if the group was found.
Example
{ "expand": "attributes", "link": { "href": "link_to_group", "rel": "self" }, "name": "groupname", "description": "Group Description", "type": "GROUP", "active": true, "attributes": { "attributes": [], "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/group/attributes?groupname=groupname", "rel": "self" } } }
- Status
404Returned if the group was not found.
Add groupPOST /rest/usermanagement/1/group
Adds a new group.
Request
Example
{
"name": "newgroupname",
"description": "description",
"type": "GROUP"
}
Schema
{
"id": "https://docs.atlassian.com/jira/REST/schema/group-entity#",
"title": "Group Entity",
"type": "object",
"properties": {
"link": {
"$ref": "#/definitions/link"
},
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"GROUP",
"LEGACY_ROLE"
]
},
"active": {
"type": "boolean"
},
"attributes": {
"title": "Multi Valued Attribute Entity List",
"type": "object",
"properties": {
"attributes": {
"type": "array",
"items": {
"title": "Multi Valued Attribute Entity",
"type": "object",
"properties": {
"link": {
"$ref": "#/definitions/link"
},
"name": {
"type": "string"
},
"values": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
}
},
"link": {
"$ref": "#/definitions/link"
}
},
"additionalProperties": false
}
},
"definitions": {
"link": {
"title": "Link",
"type": "object",
"properties": {
"href": {
"type": "string",
"format": "uri"
},
"type": {
"type": "string"
},
"rel": {
"type": "string"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
Responses
- Status
201Returned if the group is successfully created.
Example
{ "expand": "attributes", "link": { "href": "link_to_group", "rel": "self" }, "name": "groupname", "description": "Group Description", "type": "GROUP", "active": true, "attributes": { "attributes": [], "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/group/attributes?groupname=groupname", "rel": "self" } } }
- Status
400Returned if the group already exists.
- Status
403Returned if the application is not allowed to create a new group.
Remove groupDELETE /rest/usermanagement/1/group
Deletes a group.
Request
query parameters
parameter | type | description |
---|---|---|
groupname | string | Name of the group to delete. |
Responses
- Status
204Returned if the group was found and deleted.
- Status
404Returned if the group could not be found.
Get group attributesGET /rest/usermanagement/1/group/attribute
Retrieves a list of group attributes.
Request
query parameters
parameter | type | description |
---|---|---|
groupname | string | Name of the group to fetch attributes from. |
Responses
- Status
200Returned if the group attribute was found.
Example
{ "attributes": [ { "link": { "href": "https://crowdserver/crowd", "rel": "self" }, "name": "attribute", "values": [ "value1", "value2" ] } ], "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/group/attributes?username=sampleuser", "rel": "self" } }
- Status
404Returned if the group attribute could not be found.
Store group attributesPOST /rest/usermanagement/1/group/attribute
Stores the group attributes.
Request
query parameters
parameter | type | description |
---|---|---|
groupname | string | name of the group. |
Example
{
"attributes": [
{
"link": {
"href": "https://crowdserver/crowd",
"rel": "self"
},
"name": "attribute",
"values": [
"value1",
"value2"
]
}
],
"link": {
"href": "https://crowdserver/crowd/rest/usermanagement/1/group/attributes?username=sampleuser",
"rel": "self"
}
}
Schema
{
"id": "https://docs.atlassian.com/jira/REST/schema/multi-valued-attribute-entity-list#",
"title": "Multi Valued Attribute Entity List",
"type": "object",
"properties": {
"attributes": {
"type": "array",
"items": {
"title": "Multi Valued Attribute Entity",
"type": "object",
"properties": {
"link": {
"$ref": "#/definitions/link"
},
"name": {
"type": "string"
},
"values": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
}
},
"link": {
"$ref": "#/definitions/link"
}
},
"definitions": {
"link": {
"title": "Link",
"type": "object",
"properties": {
"href": {
"type": "string",
"format": "uri"
},
"type": {
"type": "string"
},
"rel": {
"type": "string"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
Responses
- Status
204Returned if the group attributes are successfully set.
- Status
403Returned if the application is not allowed to set group attributes.
- Status
404Returned if the group attribute could not be found.
Delete group attributeDELETE /rest/usermanagement/1/group/attribute
Deletes a group attribute.
Request
query parameters
parameter | type | description |
---|---|---|
groupname | string | name of the group. |
attributename | string | name of the attribute to delete. |
Responses
- Status
204Returned if the group attribute is successfully deleted.
- Status
403Returned if the application is not allowed to remove a group attribute.
- Status
404Returned if the group or attribute could not be found.
Get direct children of groupGET /rest/usermanagement/1/group/child-group/direct
Retrieves the groups that are direct children of the specified group or a single direct child of that group with the specified name.
Request
query parameters
parameter | type | description |
---|---|---|
groupname | string | Name of the parent group which will have its children fetched. |
child-groupname | string | If specified then only the direct child group with this name will be returned. |
start-index | int Default: 0 | start index if using paged queries, only applicable when |
max-results | int Default: 1000 | maximum amount of results to return, only applicable when |
Responses
- Status
200Returned if the group was found.
Example
{ "expand": "group", "groups": [ { "expand": "attributes", "link": { "href": "link_to_group", "rel": "self" }, "name": "groupname", "description": "Group Description", "type": "GROUP", "active": true, "attributes": { "attributes": [], "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/group/attributes?groupname=groupname", "rel": "self" } } }, { "expand": "attributes", "link": { "href": "link_to_group", "rel": "self" }, "name": "groupname", "description": "Group Description", "type": "GROUP", "active": true, "attributes": { "attributes": [], "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/group/attributes?groupname=groupname", "rel": "self" } } } ] }
- Status
404Returned if the group could not be found.
Add direct child group membershipPOST /rest/usermanagement/1/group/child-group/direct
Adds a direct child group membership.
Request
query parameters
parameter | type | description |
---|---|---|
groupname | string | Name of the parent group to which the direct child group will be added. |
Example
{
"name": "groupname"
}
Schema
{
"id": "https://docs.atlassian.com/jira/REST/schema/group-entity#",
"title": "Group Entity",
"type": "object",
"properties": {
"link": {
"$ref": "#/definitions/link"
},
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"GROUP",
"LEGACY_ROLE"
]
},
"active": {
"type": "boolean"
},
"attributes": {
"title": "Multi Valued Attribute Entity List",
"type": "object",
"properties": {
"attributes": {
"type": "array",
"items": {
"title": "Multi Valued Attribute Entity",
"type": "object",
"properties": {
"link": {
"$ref": "#/definitions/link"
},
"name": {
"type": "string"
},
"values": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
}
},
"link": {
"$ref": "#/definitions/link"
}
},
"additionalProperties": false
}
},
"definitions": {
"link": {
"title": "Link",
"type": "object",
"properties": {
"href": {
"type": "string",
"format": "uri"
},
"type": {
"type": "string"
},
"rel": {
"type": "string"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
Responses
- Status
201Returned if the child group membership is successfully added.
Example
"https://crowdserver/crowd/group/user/direct?groupname=group&username=user"
- Status
400Returned if the child group could not be found, or adding the membership would result in a circular dependency.
- Status
404Returned if the group could not be found.
Remove direct child group membershipDELETE /rest/usermanagement/1/group/child-group/direct
Deletes a child group membership.
Request
query parameters
parameter | type | description |
---|---|---|
groupname | string | Name of the parent group. |
child-groupname | string | Name of the child group. |
Responses
- Status
204Returned if the child group membership is deleted.
- Status
404Returned if the child or parent group could not be found.
Get nested children of groupGET /rest/usermanagement/1/group/child-group/nested
Retrieves nested children of the specified group or a single nested child of that group with the specified name.
Request
query parameters
parameter | type | description |
---|---|---|
groupname | string | Name of the parent group which will have its nested children fetched. |
child-groupname | string | If provided then only a single nested child group with this name will be fetched from the group specified by |
start-index | int Default: 0 | start index if using paged queries, only applicable when |
max-results | int Default: 1000 | maximum amount of results to return, only applicable when |
Responses
- Status
200Returned if the groups were found.
Example
{ "expand": "group", "groups": [ { "expand": "attributes", "link": { "href": "link_to_group", "rel": "self" }, "name": "groupname", "description": "Group Description", "type": "GROUP", "active": true, "attributes": { "attributes": [], "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/group/attributes?groupname=groupname", "rel": "self" } } }, { "expand": "attributes", "link": { "href": "link_to_group", "rel": "self" }, "name": "groupname", "description": "Group Description", "type": "GROUP", "active": true, "attributes": { "attributes": [], "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/group/attributes?groupname=groupname", "rel": "self" } } } ] }
- Status
404Returned if the groups could not be found.
Get all membershipsGET /rest/usermanagement/1/group/membership
Retrieves full details of all group memberships, with users and nested groups. This resource is optimised for streaming XML responses, and does not support JSON responses.
Responses
- Status
200Returned on success.
- Status
404Returned if unavailable in earlier releases of Crowd.
Get direct parents of groupGET /rest/usermanagement/1/group/parent-group/direct
Retrieves the groups that are direct parents of the specified group or a direct parent group of the specified child group.
Request
query parameters
parameter | type | description |
---|---|---|
groupname | string | if |
child-groupname | string | if specified this will return a single direct parent group of this group with the name |
start-index | int Default: 0 | start index if using paged queries, only applicable when |
max-results | int Default: 1000 | maximum amount of results to return, only applicable when |
Responses
- Status
200Returned if the group is found.
Example
{ "expand": "group", "groups": [ { "expand": "attributes", "link": { "href": "link_to_group", "rel": "self" }, "name": "groupname", "description": "Group Description", "type": "GROUP", "active": true, "attributes": { "attributes": [], "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/group/attributes?groupname=groupname", "rel": "self" } } }, { "expand": "attributes", "link": { "href": "link_to_group", "rel": "self" }, "name": "groupname", "description": "Group Description", "type": "GROUP", "active": true, "attributes": { "attributes": [], "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/group/attributes?groupname=groupname", "rel": "self" } } } ] }
- Status
404Returned if the group could not be found.
Add direct parent group membershipPOST /rest/usermanagement/1/group/parent-group/direct
Adds a direct parent group membership.
Request
query parameters
parameter | type | description |
---|---|---|
groupname | string | name of the child group. |
Schema
{
"id": "https://docs.atlassian.com/jira/REST/schema/group-entity#",
"title": "Group Entity",
"type": "object",
"properties": {
"link": {
"$ref": "#/definitions/link"
},
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"GROUP",
"LEGACY_ROLE"
]
},
"active": {
"type": "boolean"
},
"attributes": {
"title": "Multi Valued Attribute Entity List",
"type": "object",
"properties": {
"attributes": {
"type": "array",
"items": {
"title": "Multi Valued Attribute Entity",
"type": "object",
"properties": {
"link": {
"$ref": "#/definitions/link"
},
"name": {
"type": "string"
},
"values": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
}
},
"link": {
"$ref": "#/definitions/link"
}
},
"additionalProperties": false
}
},
"definitions": {
"link": {
"title": "Link",
"type": "object",
"properties": {
"href": {
"type": "string",
"format": "uri"
},
"type": {
"type": "string"
},
"rel": {
"type": "string"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
Responses
- Status
201Returned if the parent group membership is successfully added.
Example
"https://crowdserver/crowd/group/user/direct?groupname=group&username=user"
- Status
400Returned if the parent group could not be found, or adding the membership would result in a circular dependency.
- Status
404Returned if the group could not be found.
Get nested parent groupsGET /rest/usermanagement/1/group/parent-group/nested
Retrieves the groups that are nested parents of the specified group or a single nested parent of that group with the specified name.
Request
query parameters
parameter | type | description |
---|---|---|
groupname | string | name of the group of which the nested parents will be returned. |
parent-groupname | string | if specified then the single nested parent group with this name of the group specified by |
start-index | int Default: 0 | start index if using paged queries, only applicable when |
max-results | int Default: 1000 | maximum amount of results to return, only applicable when |
Responses
- Status
200Returned if the group was found.
Example
{ "expand": "group", "groups": [ { "expand": "attributes", "link": { "href": "link_to_group", "rel": "self" }, "name": "groupname", "description": "Group Description", "type": "GROUP", "active": true, "attributes": { "attributes": [], "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/group/attributes?groupname=groupname", "rel": "self" } } }, { "expand": "attributes", "link": { "href": "link_to_group", "rel": "self" }, "name": "groupname", "description": "Group Description", "type": "GROUP", "active": true, "attributes": { "attributes": [], "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/group/attributes?groupname=groupname", "rel": "self" } } } ] }
- Status
404Returned if the group could not be found.
Add user as direct group memberPOST /rest/usermanagement/1/group/user/direct
Adds a user as a direct member of the specified group.
Request
query parameters
parameter | type | description |
---|---|---|
groupname | string | name of the group to which the user will be added. |
Example
{
"name": "sampleuser"
}
Schema
{
"id": "https://docs.atlassian.com/jira/REST/schema/user-entity#",
"title": "User Entity",
"type": "object",
"properties": {
"link": {
"$ref": "#/definitions/link"
},
"name": {
"type": "string"
},
"first-name": {
"type": "string"
},
"last-name": {
"type": "string"
},
"display-name": {
"type": "string"
},
"directory-id": {
"type": "integer"
},
"email": {
"type": "string"
},
"password": {
"$ref": "#/definitions/password-entity"
},
"encrypted-password": {
"$ref": "#/definitions/password-entity"
},
"key": {
"type": "string"
},
"created-date": {
"type": "string"
},
"updated-date": {
"type": "string"
},
"directory-name": {
"type": "string"
},
"active": {
"type": "boolean"
},
"attributes": {
"title": "Multi Valued Attribute Entity List",
"type": "object",
"properties": {
"attributes": {
"type": "array",
"items": {
"title": "Multi Valued Attribute Entity",
"type": "object",
"properties": {
"link": {
"$ref": "#/definitions/link"
},
"name": {
"type": "string"
},
"values": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
}
},
"link": {
"$ref": "#/definitions/link"
}
},
"additionalProperties": false
}
},
"definitions": {
"link": {
"title": "Link",
"type": "object",
"properties": {
"href": {
"type": "string",
"format": "uri"
},
"type": {
"type": "string"
},
"rel": {
"type": "string"
}
},
"additionalProperties": false
},
"password-entity": {
"title": "Password Entity",
"type": "object",
"properties": {
"link": {
"$ref": "#/definitions/link"
},
"value": {
"type": "string"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
Responses
- Status
201Returned if the user is successfully added as a member of the group.
Example
"https://crowdserver/crowd/group/user/direct?groupname=group&username=user"
- Status
400Returned if the user could not be found.
- Status
404Returned if the group could not be found.
- Status
409Returned if the user is already a direct member of the group.
Remove direct group membershipDELETE /rest/usermanagement/1/group/user/direct
Removes the user membership.
Request
query parameters
parameter | type | description |
---|---|---|
groupname | string | name of the group from which the user membership will be removed. |
username | string | name the user to have their membership removed. |
Responses
- Status
204Returned if the user membership is successfully deleted.
- Status
404Returned if the user or group could not be found.
Get direct members of groupGET /rest/usermanagement/1/group/user/direct
Retrieves the users that are direct members of the specified group or a specified user who is a direct member of that group.
Request
query parameters
parameter | type | description |
---|---|---|
groupname | string | name of the group. |
username | string | if specified it will return a single user if the user is a direct member of the specified group. |
start-index | int Default: 0 | start index if using paged queries, only applicable when |
max-results | int Default: 1000 | maximum amount of results to return, only applicable when |
Responses
- Status
200Returned if the group is found.
Example
{ "expand": "user", "users": [ { "expand": "attributes", "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user?username=sampleuser", "rel": "self" }, "name": "sampleuser", "password": { "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user/password?username=sampleuser", "rel": "edit" } }, "key": "557057:927441f1-cc92-4030-b633-8a2bbdf7136e", "active": true, "attributes": { "attributes": [ { "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user/attributes?username=sampleuser&attributename=invalidPasswordAttempts", "rel": "self" }, "name": "invalidPasswordAttempts", "values": [ "0" ] }, { "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user/attributes?username=sampleuser&attributename=invalidPasswordAttempts&attributename=requiresPasswordChange", "rel": "self" }, "name": "requiresPasswordChange", "values": [ "false" ] } ], "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user/attributes?username=sampleuser&attributename=invalidPasswordAttempts&attributename=requiresPasswordChange", "rel": "self" } }, "first-name": "Sample", "last-name": "User", "display-name": "Sample User", "email": "sample@user.cool" }, { "expand": "attributes", "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user?username=sampleuser", "rel": "self" }, "name": "sampleuser", "password": { "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user/password?username=sampleuser", "rel": "edit" } }, "key": "557057:927441f1-cc92-4030-b633-8a2bbdf7136e", "active": true, "attributes": { "attributes": [ { "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user/attributes?username=sampleuser&attributename=invalidPasswordAttempts", "rel": "self" }, "name": "invalidPasswordAttempts", "values": [ "0" ] }, { "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user/attributes?username=sampleuser&attributename=invalidPasswordAttempts&attributename=requiresPasswordChange", "rel": "self" }, "name": "requiresPasswordChange", "values": [ "false" ] } ], "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user/attributes?username=sampleuser&attributename=invalidPasswordAttempts&attributename=requiresPasswordChange", "rel": "self" } }, "first-name": "Sample", "last-name": "User", "display-name": "Sample User", "email": "sample@user.cool" } ] }
- Status
404Returned if the group could not be found or the specified user is not a direct member of the group.
Get nested members of groupGET /rest/usermanagement/1/group/user/nested
Retrieves the users that are nested members of the specified group or a single user who is a nested member of the specified group.
Request
query parameters
parameter | type | description |
---|---|---|
groupname | string | name of the group. |
username | string | if specified it will return a single user if the user is a nested member of the specified group. |
start-index | int Default: 0 | start index if using paged queries, only applicable |
max-results | int Default: 1000 | maximum amount of results to return, only applicable when |
Responses
- Status
200Returned if the group is found.
Example
{ "expand": "user", "users": [ { "expand": "attributes", "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user?username=sampleuser", "rel": "self" }, "name": "sampleuser", "password": { "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user/password?username=sampleuser", "rel": "edit" } }, "key": "557057:927441f1-cc92-4030-b633-8a2bbdf7136e", "active": true, "attributes": { "attributes": [ { "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user/attributes?username=sampleuser&attributename=invalidPasswordAttempts", "rel": "self" }, "name": "invalidPasswordAttempts", "values": [ "0" ] }, { "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user/attributes?username=sampleuser&attributename=invalidPasswordAttempts&attributename=requiresPasswordChange", "rel": "self" }, "name": "requiresPasswordChange", "values": [ "false" ] } ], "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user/attributes?username=sampleuser&attributename=invalidPasswordAttempts&attributename=requiresPasswordChange", "rel": "self" } }, "first-name": "Sample", "last-name": "User", "display-name": "Sample User", "email": "sample@user.cool" }, { "expand": "attributes", "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user?username=sampleuser", "rel": "self" }, "name": "sampleuser", "password": { "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user/password?username=sampleuser", "rel": "edit" } }, "key": "557057:927441f1-cc92-4030-b633-8a2bbdf7136e", "active": true, "attributes": { "attributes": [ { "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user/attributes?username=sampleuser&attributename=invalidPasswordAttempts", "rel": "self" }, "name": "invalidPasswordAttempts", "values": [ "0" ] }, { "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user/attributes?username=sampleuser&attributename=invalidPasswordAttempts&attributename=requiresPasswordChange", "rel": "self" }, "name": "requiresPasswordChange", "values": [ "false" ] } ], "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user/attributes?username=sampleuser&attributename=invalidPasswordAttempts&attributename=requiresPasswordChange", "rel": "self" } }, "first-name": "Sample", "last-name": "User", "display-name": "Sample User", "email": "sample@user.cool" } ] }
- Status
404Returned if the user or group could not be found or the specified user is not a nested member of the group.
usermanagement/1/searchExpand all methods
Search resource.
Search by cqlGET /rest/usermanagement/1/search
Searches for entities of entity-type (either 'user' or 'group') with the specified search restriction (as Crowd Query Language).
Request
query parameters
parameter | type | description |
---|---|---|
entity-type | string | type of the entity to search |
max-results | int Default: 1000 | maximum number of results returned |
start-index | int Default: 0 | starting index of the results |
restriction | string Default: | restriction entities must satisfy in the Crowd Query Language |
Responses
- Status
200list of users or groups
Example
{ "expand": "user", "users": [ { "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user?username=sampleuser", "rel": "self" }, "name": "sampleuser" } ] }
- Status
409when the entity type is not specified or uknown
SearchPOST /rest/usermanagement/1/search
Searches for entities of entity-type (either 'user' or 'group') satisfying the given search restriction.
Request
query parameters
parameter | type | description |
---|---|---|
entity-type | string | type of the entity to search |
max-results | int Default: 1000 | maximum number of results returned |
start-index | int Default: 0 | starting index of the results |
Example
{
"restriction-type": "property-search-restriction",
"property": {
"name": "email",
"type": "STRING"
},
"value": "bob@example.net",
"match-mode": "EXACTLY_MATCHES"
}
Schema
{
"id": "https://docs.atlassian.com/jira/REST/schema/search-restriction-entity#",
"title": "Search Restriction Entity",
"type": "object",
"anyOf": [
{
"$ref": "#/definitions/boolean-restriction-entity"
},
{
"$ref": "#/definitions/null-restriction-entity"
},
{
"$ref": "#/definitions/property-restriction-entity"
}
],
"definitions": {
"boolean-restriction-entity": {
"title": "Boolean Restriction Entity",
"type": "object",
"properties": {
"boolean-logic": {
"type": "string"
},
"restrictions": {
"type": "array",
"items": {
"title": "Search Restriction Entity",
"type": "object",
"anyOf": [
{
"$ref": "#/definitions/boolean-restriction-entity"
},
{
"$ref": "#/definitions/null-restriction-entity"
},
{
"$ref": "#/definitions/property-restriction-entity"
}
]
}
}
},
"additionalProperties": false
},
"null-restriction-entity": {
"title": "Null Restriction Entity",
"type": "object"
},
"property-restriction-entity": {
"title": "Property Restriction Entity",
"type": "object",
"properties": {
"property": {
"title": "Property Entity",
"type": "object",
"properties": {
"name": {
"type": "string"
},
"type": {
"type": "string"
}
},
"additionalProperties": false
},
"match-mode": {
"type": "string"
},
"value": {
"type": "string"
}
},
"additionalProperties": false
}
}
}
Responses
- Status
200list of users or groups
Example
{ "expand": "group", "groups": [ { "link": { "href": "https://crowdserver/crowd/group?groupname=group&groupname=crowd-administrators", "rel": "self" }, "name": "crowd-administrators" } ] }
- Status
409when the entity type is not specified or uknown
usermanagement/1/sessionExpand all methods
Crowd SSO Token Resource.
Authenticate userPOST /rest/usermanagement/1/session
Create new session token valid for duration seconds, or for the server default session timeout if no duration is specified or if duration is longer than the server default session timeout.
Either the user password needs to be valid or the validate-password
query param must be set to false.
If an ongoing session already exists for the same authentication credentials and validation factors, then that session token is returned.
Request
query parameters
parameter | type | description |
---|---|---|
validate-password | boolean Default: true | true if the password should be validated (optional, defaults to true) |
duration | long Default: -1 | requested duration of the token, in seconds (optional, defaults to server session duration) |
Example
{
"username": "my_username",
"password": "my_password",
"validation-factors": {
"validationFactors": [
{
"name": "remote_address",
"value": "127.0.0.1"
}
]
}
}
Schema
{
"id": "https://docs.atlassian.com/jira/REST/schema/authentication-context-entity#",
"title": "Authentication Context Entity",
"type": "object",
"properties": {
"username": {
"type": "string"
},
"password": {
"type": "string"
},
"validation-factors": {
"title": "Validation Factor Entity List",
"type": "object",
"properties": {
"validationFactors": {
"type": "array",
"items": {
"title": "Validation Factor Entity",
"type": "object",
"properties": {
"name": {
"type": "string"
},
"value": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
Responses
- Status
201Returned the session creation was successful or an ongoing session already existed. Contains the Crowd SSO token.
Example
{ "expand": "user", "token": "abc123", "user": { "name": "sampleuser" }, "link": { "href": "https://crowdserver/crowd/session/abcc123", "rel": "self" }, "created-date": 1464453000000, "expiry-date": 1464456600000 }
- Status
400Returned if the user authentication details are incorrect (e.g., bad password, inactive user, user does not have permission to authenticate with the application).
Delete tokens for userDELETE /rest/usermanagement/1/session
Invalidate all tokens for a given user name.
Optionally, a token key can be saved from invalidation if specified in the exclude
param
Request
query parameters
parameter | type | description |
---|---|---|
username | string | The user for which the tokens will be invalidated |
exclude | string | The token to exclude |
Responses
- Status
400Returned if the application is not found
- Status
204Returned if successful
- Status
404Returned if the user is not found
Invalidate tokenDELETE /rest/usermanagement/1/session/{token}
Invalidates the Crowd SSO token.
Responses
- Status
204Returned if successful
Validate tokenPOST /rest/usermanagement/1/session/{token}
Validates the session token. Validating the token keeps the SSO session alive.
Request
Example
{
"validationFactors": [
{
"name": "remote_address",
"value": "127.0.0.1"
}
]
}
Schema
{
"id": "https://docs.atlassian.com/jira/REST/schema/validation-factor-entity-list#",
"title": "Validation Factor Entity List",
"type": "object",
"properties": {
"validationFactors": {
"type": "array",
"items": {
"title": "Validation Factor Entity",
"type": "object",
"properties": {
"name": {
"type": "string"
},
"value": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}
Responses
- Status
200Returned if successful
Example
{ "expand": "user", "token": "abc123", "user": { "name": "sampleuser" }, "link": { "href": "https://crowdserver/crowd/session/abcc123", "rel": "self" }, "created-date": 1464453000000, "expiry-date": 1464456600000 }
- Status
400Returned if the validation factors are incorrect
- Status
404Returned if if the token cannot be found
Get sessionGET /rest/usermanagement/1/session/{token}
Retrieves the token with the authenticated user expanded.
Responses
- Status
200Returned if successfully retrieved
Example
{ "expand": "user", "token": "abc123", "user": { "name": "sampleuser" }, "link": { "href": "https://crowdserver/crowd/session/abcc123", "rel": "self" }, "created-date": 1464453000000, "expiry-date": 1464456600000 }
- Status
404Returned if the token is not found
usermanagement/1/userExpand all methods
Update userPUT /rest/usermanagement/1/user
Updates a user.
Request
query parameters
parameter | type | description |
---|---|---|
username | string | name of the user to update |
Example
{
"name": "sampleuser",
"password": {
"value": "secret"
},
"active": true,
"first-name": "Sample",
"last-name": "User",
"display-name": "Sample User",
"email": "sample@user.cool"
}
Schema
{
"id": "https://docs.atlassian.com/jira/REST/schema/user-entity#",
"title": "User Entity",
"type": "object",
"properties": {
"link": {
"$ref": "#/definitions/link"
},
"name": {
"type": "string"
},
"first-name": {
"type": "string"
},
"last-name": {
"type": "string"
},
"display-name": {
"type": "string"
},
"directory-id": {
"type": "integer"
},
"email": {
"type": "string"
},
"password": {
"$ref": "#/definitions/password-entity"
},
"encrypted-password": {
"$ref": "#/definitions/password-entity"
},
"key": {
"type": "string"
},
"created-date": {
"type": "string"
},
"updated-date": {
"type": "string"
},
"directory-name": {
"type": "string"
},
"active": {
"type": "boolean"
},
"attributes": {
"title": "Multi Valued Attribute Entity List",
"type": "object",
"properties": {
"attributes": {
"type": "array",
"items": {
"title": "Multi Valued Attribute Entity",
"type": "object",
"properties": {
"link": {
"$ref": "#/definitions/link"
},
"name": {
"type": "string"
},
"values": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
}
},
"link": {
"$ref": "#/definitions/link"
}
},
"additionalProperties": false
}
},
"definitions": {
"link": {
"title": "Link",
"type": "object",
"properties": {
"href": {
"type": "string",
"format": "uri"
},
"type": {
"type": "string"
},
"rel": {
"type": "string"
}
},
"additionalProperties": false
},
"password-entity": {
"title": "Password Entity",
"type": "object",
"properties": {
"link": {
"$ref": "#/definitions/link"
},
"value": {
"type": "string"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
Responses
- Status
400invalid user data, for example the usernames in the body and the uri don't match
- Status
204the user was successfully updated
- Status
403the application is not allowed to update a user
- Status
404the user doesn't exist
Remove userDELETE /rest/usermanagement/1/user
Removes a user.
Request
query parameters
parameter | type | description |
---|---|---|
username | string | name of the user to remove |
Responses
- Status
204the user was successfully removed
- Status
403the application is not allowed to remove the user
- Status
404the user could not be found
Get userGET /rest/usermanagement/1/user
Retrieves the user details. Either username or key query parameter must be present.
Theexpand
parameter can be used to include additional data in the response.
This can currently be set to attributes
, to include the user's attributes in the responseRequest
query parameters
parameter | type | description |
---|---|---|
username | string | name of the user |
key | string | the key of the user (only observed if userName is null). |
Responses
- Status
200the representation of the found user
Example
{ "expand": "attributes", "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user?username=sampleuser", "rel": "self" }, "name": "sampleuser", "password": { "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user/password?username=sampleuser", "rel": "edit" } }, "key": "557057:927441f1-cc92-4030-b633-8a2bbdf7136e", "active": true, "attributes": { "attributes": [ { "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user/attributes?username=sampleuser&attributename=invalidPasswordAttempts", "rel": "self" }, "name": "invalidPasswordAttempts", "values": [ "0" ] }, { "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user/attributes?username=sampleuser&attributename=invalidPasswordAttempts&attributename=requiresPasswordChange", "rel": "self" }, "name": "requiresPasswordChange", "values": [ "false" ] } ], "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user/attributes?username=sampleuser&attributename=invalidPasswordAttempts&attributename=requiresPasswordChange", "rel": "self" } }, "first-name": "Sample", "last-name": "User", "display-name": "Sample User", "email": "sample@user.cool" }
- Status
404when the user cannot be found
Add userPOST /rest/usermanagement/1/user
Creates a new user
Request
Example
{
"name": "sampleuser",
"password": {
"value": "secret"
},
"active": true,
"first-name": "Sample",
"last-name": "User",
"display-name": "Sample User",
"email": "sample@user.cool"
}
Schema
{
"id": "https://docs.atlassian.com/jira/REST/schema/user-entity#",
"title": "User Entity",
"type": "object",
"properties": {
"link": {
"$ref": "#/definitions/link"
},
"name": {
"type": "string"
},
"first-name": {
"type": "string"
},
"last-name": {
"type": "string"
},
"display-name": {
"type": "string"
},
"directory-id": {
"type": "integer"
},
"email": {
"type": "string"
},
"password": {
"$ref": "#/definitions/password-entity"
},
"encrypted-password": {
"$ref": "#/definitions/password-entity"
},
"key": {
"type": "string"
},
"created-date": {
"type": "string"
},
"updated-date": {
"type": "string"
},
"directory-name": {
"type": "string"
},
"active": {
"type": "boolean"
},
"attributes": {
"title": "Multi Valued Attribute Entity List",
"type": "object",
"properties": {
"attributes": {
"type": "array",
"items": {
"title": "Multi Valued Attribute Entity",
"type": "object",
"properties": {
"link": {
"$ref": "#/definitions/link"
},
"name": {
"type": "string"
},
"values": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
}
},
"link": {
"$ref": "#/definitions/link"
}
},
"additionalProperties": false
}
},
"definitions": {
"link": {
"title": "Link",
"type": "object",
"properties": {
"href": {
"type": "string",
"format": "uri"
},
"type": {
"type": "string"
},
"rel": {
"type": "string"
}
},
"additionalProperties": false
},
"password-entity": {
"title": "Password Entity",
"type": "object",
"properties": {
"link": {
"$ref": "#/definitions/link"
},
"value": {
"type": "string"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
Responses
- Status
201the user was successfully created
Example
{ "expand": "attributes", "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user?username=sampleuser", "rel": "self" }, "name": "sampleuser", "password": { "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user/password?username=sampleuser", "rel": "edit" } }, "key": "557057:927441f1-cc92-4030-b633-8a2bbdf7136e", "active": true, "attributes": { "attributes": [ { "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user/attributes?username=sampleuser&attributename=invalidPasswordAttempts", "rel": "self" }, "name": "invalidPasswordAttempts", "values": [ "0" ] }, { "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user/attributes?username=sampleuser&attributename=invalidPasswordAttempts&attributename=requiresPasswordChange", "rel": "self" }, "name": "requiresPasswordChange", "values": [ "false" ] } ], "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user/attributes?username=sampleuser&attributename=invalidPasswordAttempts&attributename=requiresPasswordChange", "rel": "self" } }, "first-name": "Sample", "last-name": "User", "display-name": "Sample User", "email": "sample@user.cool" }
- Status
400invalid user data, for example missing password or the user already exists
- Status
403the application is not allowed to create a new user
Get user attributesGET /rest/usermanagement/1/user/attribute
Retrieves a list of user attributes
Request
query parameters
parameter | type | description |
---|---|---|
username | string | name of the user |
Responses
- Status
200
Example
{ "attributes": [ { "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user/attributes?username=sampleuser&attributename=invalidPasswordAttempts", "rel": "self" }, "name": "invalidPasswordAttempts", "values": [ "0" ] }, { "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user/attributes?username=sampleuser&attributename=invalidPasswordAttempts&attributename=requiresPasswordChange", "rel": "self" }, "name": "requiresPasswordChange", "values": [ "false" ] } ], "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user/attributes?username=sampleuser&attributename=invalidPasswordAttempts&attributename=requiresPasswordChange", "rel": "self" } }
- Status
404the user could not be found
Store user attributesPOST /rest/usermanagement/1/user/attribute
Stores the user attributes. Attribute values will not be overwritten if not specified in attributes.
Request
query parameters
parameter | type | description |
---|---|---|
username | string | name of the user |
Example
{
"attributes": [
{
"name": "invalidPasswordAttempts",
"values": [
"0"
]
},
{
"name": "requiresPasswordChange",
"values": [
"false"
]
}
]
}
Schema
{
"id": "https://docs.atlassian.com/jira/REST/schema/multi-valued-attribute-entity-list#",
"title": "Multi Valued Attribute Entity List",
"type": "object",
"properties": {
"attributes": {
"type": "array",
"items": {
"title": "Multi Valued Attribute Entity",
"type": "object",
"properties": {
"link": {
"$ref": "#/definitions/link"
},
"name": {
"type": "string"
},
"values": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
}
},
"link": {
"$ref": "#/definitions/link"
}
},
"definitions": {
"link": {
"title": "Link",
"type": "object",
"properties": {
"href": {
"type": "string",
"format": "uri"
},
"type": {
"type": "string"
},
"rel": {
"type": "string"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
Responses
- Status
204the attributes were successfully updated
- Status
403the application is not allowed to set attributes
- Status
404the user could not be found
Remove user attributeDELETE /rest/usermanagement/1/user/attribute
Deletes a user attribute.
Request
query parameters
parameter | type | description |
---|---|---|
username | string | name of the user |
attributename | string | name of the attribute to delete |
Responses
- Status
204the attributes was successfully deleted, or the attribute was not defined for the user
- Status
403the application is not allowed to delete attributes
- Status
404the user could not be found
Get avatar for user
experimentalGET /rest/usermanagement/1/user/avatar
Returns the url of the user's avatar
Request
query parameters
parameter | type | description |
---|---|---|
username | string | the name of the user |
s | int Default: 128 | the requested avatar size in pixels |
Responses
- Status
303the uri for the user's avatar (in the location header)
- Status
404the user doesn't exist, or doesn't have an avatar defined
Expire all passwords
experimentalPOST /rest/usermanagement/1/user/expire-all-passwords
Expires all passwords for all directories which are part of this application, regardless of group mapping.
Request
query parameters
parameter | type | description |
---|---|---|
confirm | boolean | must be true to take the action. This is so all passwords cannot accidentally be expired. |
Responses
- Status
500if any of the directories fail to expire all passwords. This can lead to only some of the users having expired passwords.
- Status
204the operation was successful
Get direct groupsGET /rest/usermanagement/1/user/group/direct
Returns the a list of groups the user is a direct member of.
Request
query parameters
parameter | type | description |
---|---|---|
username | string | name of the user |
groupname | string | name of the group (optional). If null, then all the groups that the user is a direct member of, are returned. |
max-results | int Default: 1000 | maximum number of results to return |
start-index | int Default: 0 | start index of the result |
Responses
- Status
200
Example
{ "expand": "group", "groups": [ { "link": { "href": "https://crowdserver/crowd/group?groupname=group&groupname=crowd-administrators", "rel": "self" }, "name": "crowd-administrators" } ] }
- Status
404the user could not be found or the user is not a direct member of the specified group.
Add user to groupPOST /rest/usermanagement/1/user/group/direct
Adds a user as a direct member of the group
Request
query parameters
parameter | type | description |
---|---|---|
username | string | name of the user |
Schema
{
"id": "https://docs.atlassian.com/jira/REST/schema/group-entity#",
"title": "Group Entity",
"type": "object",
"properties": {
"link": {
"$ref": "#/definitions/link"
},
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"GROUP",
"LEGACY_ROLE"
]
},
"active": {
"type": "boolean"
},
"attributes": {
"title": "Multi Valued Attribute Entity List",
"type": "object",
"properties": {
"attributes": {
"type": "array",
"items": {
"title": "Multi Valued Attribute Entity",
"type": "object",
"properties": {
"link": {
"$ref": "#/definitions/link"
},
"name": {
"type": "string"
},
"values": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
}
},
"link": {
"$ref": "#/definitions/link"
}
},
"additionalProperties": false
}
},
"definitions": {
"link": {
"title": "Link",
"type": "object",
"properties": {
"href": {
"type": "string",
"format": "uri"
},
"type": {
"type": "string"
},
"rel": {
"type": "string"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
Responses
- Status
201the user was successfully added to the group
- Status
400the group could not be found
- Status
403the application is not allowed to add the membership
- Status
404the user could not be found
- Status
409the user is already a direct member of the group
Remove user from groupDELETE /rest/usermanagement/1/user/group/direct
Removes a user from a group.
Request
query parameters
parameter | type | description |
---|---|---|
username | string | name of the user |
groupname | string | name of the group |
Responses
- Status
204the user was successfully removed from the group
- Status
403the application is not allowed to delete the membership
- Status
404the user or group could not be found
Get nested groupsGET /rest/usermanagement/1/user/group/nested
Retrieves the group that the user is a nested member of
Request
query parameters
parameter | type | description |
---|---|---|
username | string | name of the user |
groupname | string | name of the group (optional). If null, then all the groups that the user is a nested member of, are returned. |
max-results | int Default: 1000 | maximum number of results to return |
start-index | int Default: 0 | start index of the result |
Responses
- Status
200
Example
{ "expand": "group", "groups": [ { "link": { "href": "https://crowdserver/crowd/group?groupname=group&groupname=crowd-administrators", "rel": "self" }, "name": "crowd-administrators" } ] }
- Status
404the user could not be found or the user is not a nested member of the specified group.
Get user by openid
experimentalGET /rest/usermanagement/1/user/id
Looks up a user by the v2 OpenID URL, and returns the user's details
Request
query parameters
parameter | type | description |
---|---|---|
openid | string | the v2 OpenID URL for the user |
Responses
- Status
200the representation of the found user
Example
{ "expand": "attributes", "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user?username=sampleuser", "rel": "self" }, "name": "sampleuser", "password": { "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user/password?username=sampleuser", "rel": "edit" } }, "key": "557057:927441f1-cc92-4030-b633-8a2bbdf7136e", "active": true, "attributes": { "attributes": [ { "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user/attributes?username=sampleuser&attributename=invalidPasswordAttempts", "rel": "self" }, "name": "invalidPasswordAttempts", "values": [ "0" ] }, { "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user/attributes?username=sampleuser&attributename=invalidPasswordAttempts&attributename=requiresPasswordChange", "rel": "self" }, "name": "requiresPasswordChange", "values": [ "false" ] } ], "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user/attributes?username=sampleuser&attributename=invalidPasswordAttempts&attributename=requiresPasswordChange", "rel": "self" } }, "first-name": "Sample", "last-name": "User", "display-name": "Sample User", "email": "sample@user.cool" }
- Status
404the user was not found, or the provided url is not a v2 OpenID URL
Request password resetPOST /rest/usermanagement/1/user/mail/password
Sends the user a password reset link to the user's email address
Request
query parameters
parameter | type | description |
---|---|---|
username | string | name of the user to request a password reset |
Responses
- Status
204the operation was successful
- Status
403the application is not allowed to update the user's password
- Status
404the user could not be found
Request usernames reminderPOST /rest/usermanagement/1/user/mail/usernames
Requests an email to be sent containing usernames associated with the given email address.
Request
query parameters
parameter | type | description |
---|---|---|
email | string | email address of the user |
Responses
- Status
204the operation was successful
- Status
404no users with the given email were found
Update user passwordPUT /rest/usermanagement/1/user/password
Updates a user password.
Request
query parameters
parameter | type | description |
---|---|---|
username | string | the name of the user to update the password for |
Example
{
"value": "hunter2"
}
Schema
{
"id": "https://docs.atlassian.com/jira/REST/schema/password-entity#",
"title": "Password Entity",
"type": "object",
"properties": {
"link": {
"title": "Link",
"type": "object",
"properties": {
"href": {
"type": "string",
"format": "uri"
},
"type": {
"type": "string"
},
"rel": {
"type": "string"
}
},
"additionalProperties": false
},
"value": {
"type": "string"
}
},
"additionalProperties": false
}
Responses
- Status
204the password was updated
- Status
403the application is not allowed to update a user's password
- Status
404the user could not be found
Delete user passwordDELETE /rest/usermanagement/1/user/password
Deletes a user password. This will prevent the user from logging in using a password.
Request
query parameters
parameter | type | description |
---|---|---|
username | string | the name of the user to update the password for |
Responses
- Status
204the password was updated
- Status
403the application is not allowed to update a user's password
- Status
404the user could not be found
Rename userPOST /rest/usermanagement/1/user/rename
Renames a user.
Request
query parameters
parameter | type | description |
---|---|---|
username | string | name of the user to rename |
Example
{
"new-name": "sampleuser-brandnewname"
}
Schema
{
"id": "https://docs.atlassian.com/jira/REST/schema/rename-entity#",
"title": "Rename Entity",
"type": "object",
"properties": {
"new-name": {
"type": "string"
}
},
"additionalProperties": false
}
Responses
- Status
200the user was successfully renamed
Example
{ "expand": "attributes", "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user?username=sampleuser", "rel": "self" }, "name": "sampleuser", "password": { "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user/password?username=sampleuser", "rel": "edit" } }, "key": "557057:927441f1-cc92-4030-b633-8a2bbdf7136e", "active": true, "attributes": { "attributes": [ { "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user/attributes?username=sampleuser&attributename=invalidPasswordAttempts", "rel": "self" }, "name": "invalidPasswordAttempts", "values": [ "0" ] }, { "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user/attributes?username=sampleuser&attributename=invalidPasswordAttempts&attributename=requiresPasswordChange", "rel": "self" }, "name": "requiresPasswordChange", "values": [ "false" ] } ], "link": { "href": "https://crowdserver/crowd/rest/usermanagement/1/user/attributes?username=sampleuser&attributename=invalidPasswordAttempts&attributename=requiresPasswordChange", "rel": "self" } }, "first-name": "Sample", "last-name": "User", "display-name": "Sample User", "email": "sample@user.cool" }
- Status
400the new user name is invalid or already taken
- Status
403the application is not allowed to rename the user
- Status
404the user could not be found