Introduction

This is the Profile component of the AAP, a RESTful microservice for managing attributes attached to users and domains.

Resources

Profile

The Profile resource represents a set of attributes for a user, i.e. person using the AAP, or for a domain.

The user profile is generated automatically when the user signs up to the AAP (either local or federated account). The Profile resource is used to retrieve and update the set of attributes.

The domain profile can be created/edited by a domain manager and can be accessed by any domain member.

Getting the set of attributes of a given user

This is how to retrieve the attributes for a given user.

Example request

http
GET /users/usr-e8c1d6d5-6bf4-4636-a70e-41b8f32c70b4/profile HTTP/1.1
Authorization: Bearer fakeToken
Content-Type: application/json;charset=UTF-8
Host: localhost:8080
curl
$ curl 'http://localhost:8080/users/usr-e8c1d6d5-6bf4-4636-a70e-41b8f32c70b4/profile' -i \
    -H 'Authorization: Bearer fakeToken' \
    -H 'Content-Type: application/json;charset=UTF-8'
httpie
$ http GET 'http://localhost:8080/users/usr-e8c1d6d5-6bf4-4636-a70e-41b8f32c70b4/profile' \
    'Authorization:Bearer fakeToken' \
    'Content-Type:application/json;charset=UTF-8'

Example response

HTTP/1.1 200 OK
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
X-Application-Context: application:integration-test:0
Content-Type: application/json;charset=UTF-8
Content-Length: 265

{"reference":"prf-6b3c0b7d-1530-445a-859a-94c05b9c0a90","user":{"userName":null,"email":null,"userReference":"usr-e8c1d6d5-6bf4-4636-a70e-41b8f32c70b4","fullName":null,"domains":null,"accountNonLocked":false},"attributes":{"name":"ajay","email":"ajay@alibaba.com"}}

Getting the set of attributes of the logged-in user

Example request

http
GET /my/profile HTTP/1.1
Authorization: Bearer fakeToken
Content-Type: application/json;charset=UTF-8
Host: localhost:8080
curl
$ curl 'http://localhost:8080/my/profile' -i \
    -H 'Authorization: Bearer fakeToken' \
    -H 'Content-Type: application/json;charset=UTF-8'
httpie
$ http GET 'http://localhost:8080/my/profile' \
    'Authorization:Bearer fakeToken' \
    'Content-Type:application/json;charset=UTF-8'

Example response

HTTP/1.1 200 OK
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
X-Application-Context: application:integration-test:0
Content-Type: application/json;charset=UTF-8
Content-Length: 265

{"reference":"prf-6b3c0b7d-1530-445a-859a-94c05b9c0a90","user":{"userName":null,"email":null,"userReference":"usr-e8c1d6d5-6bf4-4636-a70e-41b8f32c70b4","fullName":null,"domains":null,"accountNonLocked":false},"attributes":{"name":"ajay","email":"ajay@alibaba.com"}}

Searching the users based on the given profile attribute

This is how to retrieve the users for a given profile attribute. Profile attribute key must be given in path param (email or name) and value must be given in query param (alice@example.com).

Authorisation

You must be a member of aap.profile.search in order to be able to use this search.

Example request

Unresolved directive in profile.adoc - include::/builds/sd/aap/aap-profiles-api/build/generated-snippets/search_users_by_attribute/http-request.adoc[] Unresolved directive in profile.adoc - include::/builds/sd/aap/aap-profiles-api/build/generated-snippets/search_users_by_attribute/curl-request.adoc[] Unresolved directive in profile.adoc - include::/builds/sd/aap/aap-profiles-api/build/generated-snippets/search_users_by_attribute/httpie-request.adoc[] ==== Example response Unresolved directive in profile.adoc - include::/builds/sd/aap/aap-profiles-api/build/generated-snippets/search_users_by_attribute/http-response.adoc[]

Getting the set of attributes of a given domain

This is how to retrieve the attributes for a given domain.

Example request

http
GET /domains/dom-9c620e5b-1f8e-45c0-a0d1-1b6560302014/profile HTTP/1.1
Authorization: Bearer fakeToken
Content-Type: application/json;charset=UTF-8
Host: localhost:8080
curl
$ curl 'http://localhost:8080/domains/dom-9c620e5b-1f8e-45c0-a0d1-1b6560302014/profile' -i \
    -H 'Authorization: Bearer fakeToken' \
    -H 'Content-Type: application/json;charset=UTF-8'
httpie
$ http GET 'http://localhost:8080/domains/dom-9c620e5b-1f8e-45c0-a0d1-1b6560302014/profile' \
    'Authorization:Bearer fakeToken' \
    'Content-Type:application/json;charset=UTF-8'

Example response

HTTP/1.1 200 OK
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
X-Application-Context: application:integration-test:0
Content-Type: application/json;charset=UTF-8
Content-Length: 259

{"reference":"prf-16bab742-a7fd-4ee5-8569-dcaa267bf897","domain":{"domainName":null,"domainDesc":null,"domainReference":"dom-9c620e5b-1f8e-45c0-a0d1-1b6560302014","users":[],"managers":[],"authority":"ROLE_null"},"attributes":{"car":"Volvo","fruit":"Banana"}}

Getting the set of attributes in a profile

This is how to retrieve the details of a profile, which includes the attributes.

Example request

http
GET /profiles/prf-6b3c0b7d-1530-445a-859a-94c05b9c0a90 HTTP/1.1
Authorization: Bearer fakeToken
Content-Type: application/json;charset=UTF-8
Host: localhost:8080
curl
$ curl 'http://localhost:8080/profiles/prf-6b3c0b7d-1530-445a-859a-94c05b9c0a90' -i \
    -H 'Authorization: Bearer fakeToken' \
    -H 'Content-Type: application/json;charset=UTF-8'
httpie
$ http GET 'http://localhost:8080/profiles/prf-6b3c0b7d-1530-445a-859a-94c05b9c0a90' \
    'Authorization:Bearer fakeToken' \
    'Content-Type:application/json;charset=UTF-8'

Example response

HTTP/1.1 200 OK
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
X-Application-Context: application:integration-test:0
Content-Type: application/json;charset=UTF-8
Content-Length: 265

{"reference":"prf-6b3c0b7d-1530-445a-859a-94c05b9c0a90","user":{"userName":null,"email":null,"userReference":"usr-e8c1d6d5-6bf4-4636-a70e-41b8f32c70b4","fullName":null,"domains":null,"accountNonLocked":false},"attributes":{"name":"ajay","email":"ajay@alibaba.com"}}

Creating a user profile

Creates new profile

Example request

http
POST /profiles HTTP/1.1
Authorization: Bearer fakeToken
Content-Type: application/json;charset=UTF-8
Host: localhost:8080
Content-Length: 196

{"user": {"userReference":"usr-9832620d-ec53-43a1-873d-94c05b9c0a44"}, "attributes": {       "name":"White Rabbit",        "email":"rabbit@example.com",        "address":"Somewhere on campus"   }}
curl
$ curl 'http://localhost:8080/profiles' -i -X POST \
    -H 'Authorization: Bearer fakeToken' \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -d '{"user": {"userReference":"usr-9832620d-ec53-43a1-873d-94c05b9c0a44"}, "attributes": {       "name":"White Rabbit",        "email":"rabbit@example.com",        "address":"Somewhere on campus"   }}'
httpie
$ echo '{"user": {"userReference":"usr-9832620d-ec53-43a1-873d-94c05b9c0a44"}, "attributes": {       "name":"White Rabbit",        "email":"rabbit@example.com",        "address":"Somewhere on campus"   }}' | http POST 'http://localhost:8080/profiles' \
    'Authorization:Bearer fakeToken' \
    'Content-Type:application/json;charset=UTF-8'

Example response

HTTP/1.1 201 Created
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
X-Application-Context: application:integration-test:0
Content-Type: application/json;charset=UTF-8
Content-Length: 307

{"reference":"prf-be158688-22d8-4481-b178-af4b908e8e3e","user":{"userName":null,"email":null,"userReference":"usr-9832620d-ec53-43a1-873d-94c05b9c0a44","fullName":null,"domains":null,"accountNonLocked":false},"attributes":{"name":"White Rabbit","email":"rabbit@example.com","address":"Somewhere on campus"}}

Creating a domain profile

Creates a profile for a domain.

Authorisation

You must be a manager of the domain in order to be able to create the profile for the domain.

Example request

http
POST /profiles HTTP/1.1
Authorization: Bearer fakeToken
Content-Type: application/json;charset=UTF-8
Host: localhost:8080
Content-Length: 228

{"domain": {"domainReference":"dom-b38d6175-61e8-4d40-98da-df9188d91c82"}, "attributes": {       "cost_center":"ABC123",        "address":"South Building, EMBL-EBI, Wellcome Genome Campus, Hinxton, Cambridgeshire, CB10 1SD"   }}
curl
$ curl 'http://localhost:8080/profiles' -i -X POST \
    -H 'Authorization: Bearer fakeToken' \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -d '{"domain": {"domainReference":"dom-b38d6175-61e8-4d40-98da-df9188d91c82"}, "attributes": {       "cost_center":"ABC123",        "address":"South Building, EMBL-EBI, Wellcome Genome Campus, Hinxton, Cambridgeshire, CB10 1SD"   }}'
httpie
$ echo '{"domain": {"domainReference":"dom-b38d6175-61e8-4d40-98da-df9188d91c82"}, "attributes": {       "cost_center":"ABC123",        "address":"South Building, EMBL-EBI, Wellcome Genome Campus, Hinxton, Cambridgeshire, CB10 1SD"   }}' | http POST 'http://localhost:8080/profiles' \
    'Authorization:Bearer fakeToken' \
    'Content-Type:application/json;charset=UTF-8'

Example response

HTTP/1.1 201 Created
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
X-Application-Context: application:integration-test:0
Content-Type: application/json;charset=UTF-8
Content-Length: 347

{"reference":"prf-5717be48-6cb5-4ca8-b35b-dde424ed3a26","domain":{"domainName":null,"domainDesc":null,"domainReference":"dom-b38d6175-61e8-4d40-98da-df9188d91c82","users":[],"managers":[],"authority":"ROLE_null"},"attributes":{"cost_center":"ABC123","address":"South Building, EMBL-EBI, Wellcome Genome Campus, Hinxton, Cambridgeshire, CB10 1SD"}}

Creating a domain profile with validation

Creates a profile for a domain, and includes a schema. The attributes must match the schema. The validation also applies on subsequent editing of any attributes.

The schema is expected to be a json schema specifically Draft 04. It can be specified either inline, or as a URL.

We currently support properties of "type": "string" and the corresponding validation. We are planning to support the other types soon.

Authorisation

You must be a manager of the domain in order to be able to create the profile for the domain.

Example request

http
POST /profiles HTTP/1.1
Authorization: Bearer eyJhb...h7HgQ
Content-Type: application/json;charset=UTF-8
Host: explore.api.aai.ebi.ac.uk

{
  "reference" : null,
  "domain" : {
    "domainName" : null,
    "domainDesc" : null,
    "domainReference" : "dom-dnfavt",
    "users" : [ ],
    "managers" : [ ],
    "authority" : "ROLE_null"
  },
  "schema" : "{\"$schema\":\"http://json-schema.org/draft-04/schema#\",\"title\":\"Simple Schema\",\"description\":\"Example of attribute validation\",\"type\":\"object\",\"properties\":{\"address\":{\"description\":\"Where the person works\",\"type\":\"string\",\"minLength\":7},\"name\":{\"type\":\"string\",\"pattern\":\"^[^9]$\"}},\"required\":[\"address\"]}",
  "attributes" : {
    "address" : "long enough"
  }
}
curl
$ curl 'https://explore.api.aai.ebi.ac.uk/profiles' -i -X POST \
    -H 'Authorization: Bearer eyJhb...h7HgQ' \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -d '{
  "reference" : null,
  "domain" : {
    "domainName" : null,
    "domainDesc" : null,
    "domainReference" : "dom-dnfavt",
    "users" : [ ],
    "managers" : [ ],
    "authority" : "ROLE_null"
  },
  "schema" : "{\"$schema\":\"http://json-schema.org/draft-04/schema#\",\"title\":\"Simple Schema\",\"description\":\"Example of attribute validation\",\"type\":\"object\",\"properties\":{\"address\":{\"description\":\"Where the person works\",\"type\":\"string\",\"minLength\":7},\"name\":{\"type\":\"string\",\"pattern\":\"^[^9]$\"}},\"required\":[\"address\"]}",
  "attributes" : {
    "address" : "long enough"
  }
}'
httpie
$ echo '{
  "reference" : null,
  "domain" : {
    "domainName" : null,
    "domainDesc" : null,
    "domainReference" : "dom-dnfavt",
    "users" : [ ],
    "managers" : [ ],
    "authority" : "ROLE_null"
  },
  "schema" : "{\"$schema\":\"http://json-schema.org/draft-04/schema#\",\"title\":\"Simple Schema\",\"description\":\"Example of attribute validation\",\"type\":\"object\",\"properties\":{\"address\":{\"description\":\"Where the person works\",\"type\":\"string\",\"minLength\":7},\"name\":{\"type\":\"string\",\"pattern\":\"^[^9]$\"}},\"required\":[\"address\"]}",
  "attributes" : {
    "address" : "long enough"
  }
}' | http POST 'https://explore.api.aai.ebi.ac.uk/profiles' \
    'Authorization:Bearer eyJhb...h7HgQ' \
    'Content-Type:application/json;charset=UTF-8'

Example response

HTTP/1.1 201 Created
Content-Type: application/json;charset=UTF-8
Content-Length: 660

{
  "reference" : "prf-5be7a4e1-ce9b-4a4d-9636-3df75d7fe5f3",
  "domain" : {
    "domainName" : null,
    "domainDesc" : null,
    "domainReference" : "dom-dnfavt",
    "users" : [ ],
    "managers" : [ ],
    "authority" : "ROLE_null"
  },
  "schema" : "{\"$schema\":\"http://json-schema.org/draft-04/schema#\",\"title\":\"Simple Schema\",\"description\":\"Example of attribute validation\",\"type\":\"object\",\"properties\":{\"address\":{\"description\":\"Where the person works\",\"type\":\"string\",\"minLength\":7},\"name\":{\"type\":\"string\",\"pattern\":\"^[^9]$\"}},\"required\":[\"address\"]}",
  "attributes" : {
    "address" : "long enough"
  }
}

Example request - invalid attributes

http
POST /profiles HTTP/1.1
Authorization: Bearer eyJhb...h7HgQ
Content-Type: application/json;charset=UTF-8
Host: explore.api.aai.ebi.ac.uk

{
  "reference" : null,
  "domain" : {
    "domainName" : null,
    "domainDesc" : null,
    "domainReference" : "dom-dnfavt",
    "users" : [ ],
    "managers" : [ ],
    "authority" : "ROLE_null"
  },
  "schema" : "{\"$schema\":\"http://json-schema.org/draft-04/schema#\",\"title\":\"Simple Schema\",\"description\":\"Example of attribute validation\",\"type\":\"object\",\"properties\":{\"address\":{\"description\":\"Where the person works\",\"type\":\"string\",\"minLength\":7},\"name\":{\"type\":\"string\",\"pattern\":\"^[^9]$\"}},\"required\":[\"address\"]}",
  "attributes" : {
    "address" : "short",
    "name" : "invalid cos has 9 in it"
  }
}
curl
$ curl 'https://explore.api.aai.ebi.ac.uk/profiles' -i -X POST \
    -H 'Authorization: Bearer eyJhb...h7HgQ' \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -d '{
  "reference" : null,
  "domain" : {
    "domainName" : null,
    "domainDesc" : null,
    "domainReference" : "dom-dnfavt",
    "users" : [ ],
    "managers" : [ ],
    "authority" : "ROLE_null"
  },
  "schema" : "{\"$schema\":\"http://json-schema.org/draft-04/schema#\",\"title\":\"Simple Schema\",\"description\":\"Example of attribute validation\",\"type\":\"object\",\"properties\":{\"address\":{\"description\":\"Where the person works\",\"type\":\"string\",\"minLength\":7},\"name\":{\"type\":\"string\",\"pattern\":\"^[^9]$\"}},\"required\":[\"address\"]}",
  "attributes" : {
    "address" : "short",
    "name" : "invalid cos has 9 in it"
  }
}'
httpie
$ echo '{
  "reference" : null,
  "domain" : {
    "domainName" : null,
    "domainDesc" : null,
    "domainReference" : "dom-dnfavt",
    "users" : [ ],
    "managers" : [ ],
    "authority" : "ROLE_null"
  },
  "schema" : "{\"$schema\":\"http://json-schema.org/draft-04/schema#\",\"title\":\"Simple Schema\",\"description\":\"Example of attribute validation\",\"type\":\"object\",\"properties\":{\"address\":{\"description\":\"Where the person works\",\"type\":\"string\",\"minLength\":7},\"name\":{\"type\":\"string\",\"pattern\":\"^[^9]$\"}},\"required\":[\"address\"]}",
  "attributes" : {
    "address" : "short",
    "name" : "invalid cos has 9 in it"
  }
}' | http POST 'https://explore.api.aai.ebi.ac.uk/profiles' \
    'Authorization:Bearer eyJhb...h7HgQ' \
    'Content-Type:application/json;charset=UTF-8'

Example response - invalid attributes

HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json;charset=UTF-8
Content-Length: 332

{
  "timestamp" : "2022.09.05.10.36.51",
  "status" : "UNPROCESSABLE_ENTITY",
  "message" : "Data does not conform to Simple Schema. There are 2 error(s).",
  "path" : "https://explore.api.aai.ebi.ac.uk/profiles",
  "details" : [ "$.address: must be at least 7 characters long", "$.name: does not match the regex pattern ^[^9]$" ]
}

Updating a profile

This is how to modify a profile, as a whole

Example request

http
PUT /profiles/prf-6b3c0b7d-1530-445a-859a-94c05b9c0a90 HTTP/1.1
Authorization: Bearer fakeToken
Content-Type: application/json;charset=UTF-8
Host: localhost:8080
Content-Length: 39

{"name":"Foo", "email": "foo@foo.com" }
curl
$ curl 'http://localhost:8080/profiles/prf-6b3c0b7d-1530-445a-859a-94c05b9c0a90' -i -X PUT \
    -H 'Authorization: Bearer fakeToken' \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -d '{"name":"Foo", "email": "foo@foo.com" }'
httpie
$ echo '{"name":"Foo", "email": "foo@foo.com" }' | http PUT 'http://localhost:8080/profiles/prf-6b3c0b7d-1530-445a-859a-94c05b9c0a90' \
    'Authorization:Bearer fakeToken' \
    'Content-Type:application/json;charset=UTF-8'

Example response

HTTP/1.1 200 OK
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
X-Application-Context: application:integration-test:0
Content-Type: application/json;charset=UTF-8
Content-Length: 259

{"reference":"prf-6b3c0b7d-1530-445a-859a-94c05b9c0a90","user":{"userName":null,"email":null,"userReference":"usr-e8c1d6d5-6bf4-4636-a70e-41b8f32c70b4","fullName":null,"domains":null,"accountNonLocked":false},"attributes":{"name":"Foo","email":"foo@foo.com"}}

Attribute

The Attribute resource represents a key/value pair of information. It is used to read / update / delete individual items of information.

Adding attributes to a profile

This is how to partially a profile, by adding/updating attributes so that the existing list is merged with the list in the request:

  • attributes in the request and in the profile are updated

  • attributes in the request and not in the profile are added

  • attributes not in the request and in the profile are left unchanged

Example request

http
PATCH /profiles/prf-6b3c0b7d-1530-445a-859a-94c05b9c0a90 HTTP/1.1
Authorization: Bearer fakeToken
Content-Type: application/json;charset=UTF-8
Host: localhost:8080
Content-Length: 14

{"name":"Foo"}
curl
$ curl 'http://localhost:8080/profiles/prf-6b3c0b7d-1530-445a-859a-94c05b9c0a90' -i -X PATCH \
    -H 'Authorization: Bearer fakeToken' \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -d '{"name":"Foo"}'
httpie
$ echo '{"name":"Foo"}' | http PATCH 'http://localhost:8080/profiles/prf-6b3c0b7d-1530-445a-859a-94c05b9c0a90' \
    'Authorization:Bearer fakeToken' \
    'Content-Type:application/json;charset=UTF-8'

Example response

HTTP/1.1 200 OK
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
X-Application-Context: application:integration-test:0
Content-Type: application/json;charset=UTF-8
Content-Length: 264

{"reference":"prf-6b3c0b7d-1530-445a-859a-94c05b9c0a90","user":{"userName":null,"email":null,"userReference":"usr-e8c1d6d5-6bf4-4636-a70e-41b8f32c70b4","fullName":null,"domains":null,"accountNonLocked":false},"attributes":{"name":"Foo","email":"ajay@alibaba.com"}}

Getting a single attribute

This is how to retrieve an attribute in a profile.

Example request

http
GET /profiles/prf-6b3c0b7d-1530-445a-859a-94c05b9c0a90/email HTTP/1.1
Authorization: Bearer fakeToken
Content-Type: application/json;charset=UTF-8
Host: localhost:8080
curl
$ curl 'http://localhost:8080/profiles/prf-6b3c0b7d-1530-445a-859a-94c05b9c0a90/email' -i \
    -H 'Authorization: Bearer fakeToken' \
    -H 'Content-Type: application/json;charset=UTF-8'
httpie
$ http GET 'http://localhost:8080/profiles/prf-6b3c0b7d-1530-445a-859a-94c05b9c0a90/email' \
    'Authorization:Bearer fakeToken' \
    'Content-Type:application/json;charset=UTF-8'

Example response

HTTP/1.1 200 OK
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
X-Application-Context: application:integration-test:0
Content-Type: text/plain;charset=UTF-8
Content-Length: 16

ajay@alibaba.com

Deleting an attributes

This is how to remove an attribute from a profile.

Example request

http
DELETE /profiles/prf-6b3c0b7d-1530-445a-859a-94c05b9c0a90/name HTTP/1.1
Authorization: Bearer fakeToken
Content-Type: application/json;charset=UTF-8
Host: localhost:8080
curl
$ curl 'http://localhost:8080/profiles/prf-6b3c0b7d-1530-445a-859a-94c05b9c0a90/name' -i -X DELETE \
    -H 'Authorization: Bearer fakeToken' \
    -H 'Content-Type: application/json;charset=UTF-8'
httpie
$ http DELETE 'http://localhost:8080/profiles/prf-6b3c0b7d-1530-445a-859a-94c05b9c0a90/name' \
    'Authorization:Bearer fakeToken' \
    'Content-Type:application/json;charset=UTF-8'

Example response

HTTP/1.1 200 OK
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
X-Application-Context: application:integration-test:0
Content-Type: application/json;charset=UTF-8
Content-Length: 251

{"reference":"prf-6b3c0b7d-1530-445a-859a-94c05b9c0a90","user":{"userName":null,"email":null,"userReference":"usr-e8c1d6d5-6bf4-4636-a70e-41b8f32c70b4","fullName":null,"domains":null,"accountNonLocked":false},"attributes":{"email":"ajay@alibaba.com"}}