openapi: 3.0.1 info: title: Jans Config API - User-Mgt contact: name: Gluu Support url: https://support.gluu.org email: xxx@gluu.org license: name: Apache 2.0 url: https://github.com/JanssenProject/jans/blob/main/LICENSE version: 1.0.0 servers: - url: https://jans.io/ description: The Jans server tags: - name: Configuration – User Management paths: /mgt/configuser: get: tags: - Configuration – User Management summary: Gets list of users description: Gets list of users operationId: get-user parameters: - name: limit in: query description: Search size - max size of the results to return schema: type: integer format: int32 default: 50 - name: pattern in: query description: Search pattern schema: type: string default: "" - name: startIndex in: query description: The 1-based index of the first query result schema: type: integer format: int32 default: 0 - name: sortBy in: query description: Attribute whose value will be used to order the returned response schema: type: string default: inum - name: sortOrder in: query description: Order in which the sortBy param is applied. Allowed values are "ascending" and "descending" schema: type: string default: ascending - name: fieldValuePair in: query description: Field and value pair for seraching schema: type: string default: "" examples: Field value example: description: Field value example value: "mail=abc@mail.com,jansStatus=true" responses: "200": description: Ok content: application/json: schema: $ref: "#/components/schemas/UserPagedResult" examples: Response json example: description: Response json example value: | { "start": 0, "totalEntriesCount": 23, "entriesCount": 2, "entries": [ { "dn": "inum=XXXX.DDDD-4444,ou=people,o=jans", "userId": "dddd4444", "customAttributes": [ { "name": "sn", "multiValued": false, "values": [ "FilterTest" ], "value": "FilterTest", "displayValue": "FilterTest" } ], "customObjectClasses": [ "top", "jansCustomPerson" ], "inum": "XXXX.DDDD-4444", "displayName": "Test Dddd 4444", "jansStatus": "active", "givenName": "(special chars\\)/*", "baseDn": "inum=XXXX.DDDD-4444,ou=people,o=jans" }, { "dn": "inum=XXXX.EEEE-1111,ou=people,o=jans", "userId": "eeee1111", "customObjectClasses": [ "top", "jansCustomPerson" ], "inum": "XXXX.EEEE-1111", "jansStatus": "active", "baseDn": "inum=XXXX.EEEE-1111,ou=people,o=jans" } ] } "401": description: Unauthorized "500": description: InternalServerError security: - oauth2: - https://jans.io/oauth/config/user.readonly - oauth2: - https://jans.io/oauth/config/user.write - oauth2: - https://jans.io/oauth/config/user.admin - oauth2: - https://jans.io/oauth/config/read-all put: tags: - Configuration – User Management summary: Update User description: Update User operationId: put-user parameters: - name: removeNonLDAPAttributes in: query description: "Boolean flag to indicate if attributes to be removed for non-LDAP\ \ DB. Default value is true, indicating non-LDAP attributes will be removed\ \ from request." schema: type: boolean default: true requestBody: description: User object content: application/json: schema: $ref: "#/components/schemas/CustomUser" examples: Request json example: description: Request json example value: | { "dn": "inum=559a7e26-7a33-4e11-9d42-13266d33261e,ou=people,o=jans", "userId": "testUser1", "createdAt": "2022-10-27T22:45:48", "customAttributes": [ { "name": "birthdate", "multiValued": false, "values": [ "20001231041508.553Z" ], "value": "20001231041508.553Z", "displayValue": "20001231041508.553Z" }, { "name": "emailVerified", "multiValued": false, "values": [ "TRUE" ], "value": "TRUE", "displayValue": "TRUE" }, { "name": "jansAdminUIRole", "multiValued": false, "values": [ "api-admin" ], "value": "api-admin", "displayValue": "api-admin" }, { "name": "memberOf", "multiValued": false, "values": [ "inum=60B7,ou=groups,o=jans" ], "value": "inum=60B7,ou=groups,o=jans", "displayValue": "inum=60B7,ou=groups,o=jans" }, { "name": "middleName", "multiValued": false, "values": [ "Test USer 3" ], "value": "Test USer 3", "displayValue": "Test USer 3" }, { "name": "nickname", "multiValued": false, "values": [ "Test USer 3" ], "value": "Test USer 3", "displayValue": "Test USer 3" }, { "name": "sn", "multiValued": false, "values": [ "User3" ], "value": "User3", "displayValue": "User3" } ], "customObjectClasses": [ "top", "jansCustomPerson" ], "inum": "559a7e26-7a33-4e11-9d42-13266d33261e", "mail": "test3@jans.server", "displayName": "Default Test User 32", "jansStatus": "active", "givenName": "Test3", "baseDn": "inum=559a7e26-7a33-4e11-9d42-13266d33261e,ou=people,o=jans" } responses: "200": description: Ok content: application/json: schema: $ref: "#/components/schemas/CustomUser" examples: Response json example: description: Response json example value: | { "dn": "inum=559a7e26-7a33-4e11-9d42-13266d33261e,ou=people,o=jans", "userId": "testUser1", "createdAt": "2022-10-27T22:45:48", "customAttributes": [ { "name": "birthdate", "multiValued": false, "values": [ "20001231041508.553Z" ], "value": "20001231041508.553Z", "displayValue": "20001231041508.553Z" }, { "name": "emailVerified", "multiValued": false, "values": [ "TRUE" ], "value": "TRUE", "displayValue": "TRUE" }, { "name": "jansAdminUIRole", "multiValued": false, "values": [ "api-admin" ], "value": "api-admin", "displayValue": "api-admin" }, { "name": "memberOf", "multiValued": false, "values": [ "inum=60B7,ou=groups,o=jans" ], "value": "inum=60B7,ou=groups,o=jans", "displayValue": "inum=60B7,ou=groups,o=jans" }, { "name": "middleName", "multiValued": false, "values": [ "Test USer 3" ], "value": "Test USer 3", "displayValue": "Test USer 3" }, { "name": "nickname", "multiValued": false, "values": [ "Test USer 3" ], "value": "Test USer 3", "displayValue": "Test USer 3" }, { "name": "sn", "multiValued": false, "values": [ "User3" ], "value": "User3", "displayValue": "User3" } ], "customObjectClasses": [ "top", "jansCustomPerson" ], "inum": "559a7e26-7a33-4e11-9d42-13266d33261e", "mail": "test3@jans.server", "displayName": "Default Test User 32", "jansStatus": "active", "givenName": "Test3", "baseDn": "inum=559a7e26-7a33-4e11-9d42-13266d33261e,ou=people,o=jans" } "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ApiError" "401": description: Unauthorized "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ApiError" "500": description: InternalServerError content: application/json: schema: $ref: "#/components/schemas/ApiError" security: - oauth2: - https://jans.io/oauth/config/user.write - oauth2: - https://jans.io/oauth/config/user.admin - oauth2: - https://jans.io/oauth/config/write-all post: tags: - Configuration – User Management summary: Create new User description: Create new User operationId: post-user parameters: - name: removeNonLDAPAttributes in: query description: "Boolean flag to indicate if attributes to be removed for non-LDAP\ \ DB. Default value is true, indicating non-LDAP attributes will be removed\ \ from request." schema: type: boolean default: true requestBody: description: User object content: application/json: schema: $ref: "#/components/schemas/CustomUser" examples: Request json example: description: Request json example value: | { "userId": "testUser1", "createdAt": "2022-05-30T20:06:57", "customAttributes": [ { "name": "emailVerified", "multiValued": false, "values": [ "TRUE" ], "value": "TRUE", "displayValue": "TRUE" }, { "name": "jansAdminUIRole", "multiValued": false, "values": [ "api-admin" ], "value": "api-admin", "displayValue": "api-admin" }, { "name": "memberOf", "multiValued": false, "values": [ "inum=60B7,ou=groups,o=jans" ], "value": "inum=60B7,ou=groups,o=jans", "displayValue": "inum=60B7,ou=groups,o=jans" }, { "name": "middleName", "multiValued": false, "values": [ "Test USer 3" ], "value": "Test USer 3", "displayValue": "Test USer 3" }, { "name": "nickname", "multiValued": false, "values": [ "Test USer 3" ], "value": "Test USer 3", "displayValue": "Test USer 3" }, { "name": "sn", "multiValued": false, "values": [ "User3" ], "value": "User3", "displayValue": "User3" },{ "name": "birthdate", "multiValued": false, "values": [ "20001231041508.553Z" ], "value": "20001231041508.553Z", "displayValue": "20001231041508.553Z" } ], "customObjectClasses": [ "top", "jansCustomPerson" ], "mail": "test3@jans.server", "displayName": "Default Test User 32", "jansStatus": "active", "givenName": "Test3", "userPassword": "test123" } responses: "201": description: Created content: application/json: schema: $ref: "#/components/schemas/CustomUser" examples: Response json example: description: Response json example value: | { "dn": "inum=559a7e26-7a33-4e11-9d42-13266d33261e,ou=people,o=jans", "userId": "testUser1", "createdAt": "2022-10-27T22:45:48", "customAttributes": [ { "name": "birthdate", "multiValued": false, "values": [ "20001231041508.553Z" ], "value": "20001231041508.553Z", "displayValue": "20001231041508.553Z" }, { "name": "emailVerified", "multiValued": false, "values": [ "TRUE" ], "value": "TRUE", "displayValue": "TRUE" }, { "name": "jansAdminUIRole", "multiValued": false, "values": [ "api-admin" ], "value": "api-admin", "displayValue": "api-admin" }, { "name": "memberOf", "multiValued": false, "values": [ "inum=60B7,ou=groups,o=jans" ], "value": "inum=60B7,ou=groups,o=jans", "displayValue": "inum=60B7,ou=groups,o=jans" }, { "name": "middleName", "multiValued": false, "values": [ "Test USer 3" ], "value": "Test USer 3", "displayValue": "Test USer 3" }, { "name": "nickname", "multiValued": false, "values": [ "Test USer 3" ], "value": "Test USer 3", "displayValue": "Test USer 3" }, { "name": "sn", "multiValued": false, "values": [ "User3" ], "value": "User3", "displayValue": "User3" } ], "customObjectClasses": [ "top", "jansCustomPerson" ], "inum": "559a7e26-7a33-4e11-9d42-13266d33261e", "mail": "test3@jans.server", "displayName": "Default Test User 32", "jansStatus": "active", "givenName": "Test3", "baseDn": "inum=559a7e26-7a33-4e11-9d42-13266d33261e,ou=people,o=jans" } "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ApiError" "401": description: Unauthorized "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ApiError" "500": description: InternalServerError content: application/json: schema: $ref: "#/components/schemas/ApiError" security: - oauth2: - https://jans.io/oauth/config/user.write - oauth2: - https://jans.io/oauth/config/user.admin - oauth2: - https://jans.io/oauth/config/write-all /mgt/configuser/{inum}: get: tags: - Configuration – User Management summary: Get User by Inum description: Get User by Inum operationId: get-user-by-inum parameters: - name: inum in: path description: User identifier required: true schema: type: string responses: "200": description: Ok content: application/json: schema: $ref: "#/components/schemas/CustomUser" examples: Response json example: description: Response json example value: | { "dn": "inum=559a7e26-7a33-4e11-9d42-13266d33261e,ou=people,o=jans", "userId": "testUser1", "createdAt": "2022-10-27T22:45:48", "customAttributes": [ { "name": "birthdate", "multiValued": false, "values": [ "20001231041508.553Z" ], "value": "20001231041508.553Z", "displayValue": "20001231041508.553Z" }, { "name": "emailVerified", "multiValued": false, "values": [ "TRUE" ], "value": "TRUE", "displayValue": "TRUE" }, { "name": "jansAdminUIRole", "multiValued": false, "values": [ "api-admin" ], "value": "api-admin", "displayValue": "api-admin" }, { "name": "memberOf", "multiValued": false, "values": [ "inum=60B7,ou=groups,o=jans" ], "value": "inum=60B7,ou=groups,o=jans", "displayValue": "inum=60B7,ou=groups,o=jans" }, { "name": "middleName", "multiValued": false, "values": [ "Test USer 3" ], "value": "Test USer 3", "displayValue": "Test USer 3" }, { "name": "nickname", "multiValued": false, "values": [ "Test USer 3" ], "value": "Test USer 3", "displayValue": "Test USer 3" }, { "name": "sn", "multiValued": false, "values": [ "User3" ], "value": "User3", "displayValue": "User3" } ], "customObjectClasses": [ "top", "jansCustomPerson" ], "inum": "559a7e26-7a33-4e11-9d42-13266d33261e", "mail": "test3@jans.server", "displayName": "Default Test User 32", "jansStatus": "active", "givenName": "Test3", "baseDn": "inum=559a7e26-7a33-4e11-9d42-13266d33261e,ou=people,o=jans" } "401": description: Unauthorized "404": description: Not Found "500": description: InternalServerError security: - oauth2: - https://jans.io/oauth/config/user.readonly - oauth2: - https://jans.io/oauth/config/user.write - oauth2: - https://jans.io/oauth/config/user.admin - oauth2: - https://jans.io/oauth/config/read-all delete: tags: - Configuration – User Management summary: Delete User description: Delete User operationId: delete-user parameters: - name: inum in: path description: User identifier required: true schema: type: string responses: "204": description: No Content "401": description: Unauthorized "404": description: Not Found "500": description: InternalServerError security: - oauth2: - https://jans.io/oauth/config/user.delete - oauth2: - https://jans.io/oauth/config/user.admin - oauth2: - https://jans.io/oauth/config/delete-all patch: tags: - Configuration – User Management summary: Patch user properties by Inum description: Patch user properties by Inum operationId: patch-user-by-inum parameters: - name: inum in: path description: User identifier required: true schema: type: string - name: removeNonLDAPAttributes in: query description: "Boolean flag to indicate if attributes to be removed for non-LDAP\ \ DB. Default value is true, indicating non-LDAP attributes will be removed\ \ from request." schema: type: boolean default: true requestBody: description: UserPatchRequest content: application/json: schema: $ref: "#/components/schemas/UserPatchRequest" examples: Request json example: description: Request json example value: "{\n \"jsonPatchString\": \"[ {\\\"op\\\":\\\"add\\\", \\\ \"path\\\": \\\"/userId\\\", \\\"value\\\":\\\"config_test_user_100_final_patch\\\ \" } ]\",\n \"customAttributes\": [{\n \"name\": \"\ emailVerified\",\n \"multiValued\": false,\n \ \ \"values\": [\n \"TRUE\"\n ],\n \ \ \"value\": \"TRUE\",\n \"displayValue\":\ \ \"TRUE\"\n },\n\t\t{\n \"name\": \"secretAnswer\"\ ,\n \"multiValued\": false,\n \"values\":\ \ [\n \"james-bond@123\"\n ],\n \ \ \"value\": \"james-bond@123\",\n \"displayValue\"\ : \"james-bond@123\"\n },\n {\n \"name\"\ : \"jansImsValue\",\n \"multiValued\": true,\n \ \ \"values\": [{\n\t\t\t \"value\": \"123456\",\n\t\t\t \"\ display\": \"Home phone\",\n\t\t\t \"type\": \"home\",\n\t\t\t\ \ \"primary\": true\t\t\t\n\t\t\t},\n\t\t\t{\n\t\t\t \"value\"\ : \"9821789\",\n\t\t\t \"display\": \"Work phone\",\n\t\t\t \"\ type\": \"work\",\n\t\t\t \"primary\": false\t\t\t\n\t\t\t}\n \ \ \n ]\n }\n ]\n}\n" responses: "200": description: Ok content: application/json: schema: $ref: "#/components/schemas/CustomUser" examples: Response json example: description: Response json example value: | { "dn": "inum=559a7e26-7a33-4e11-9d42-13266d33261e,ou=people,o=jans", "userId": "testUser1", "createdAt": "2022-10-27T22:45:48", "customAttributes": [ { "name": "birthdate", "multiValued": false, "values": [ "20001231041508.553Z" ], "value": "20001231041508.553Z", "displayValue": "20001231041508.553Z" }, { "name": "emailVerified", "multiValued": false, "values": [ "TRUE" ], "value": "TRUE", "displayValue": "TRUE" }, { "name": "jansAdminUIRole", "multiValued": false, "values": [ "api-admin" ], "value": "api-admin", "displayValue": "api-admin" }, { "name": "memberOf", "multiValued": false, "values": [ "inum=60B7,ou=groups,o=jans" ], "value": "inum=60B7,ou=groups,o=jans", "displayValue": "inum=60B7,ou=groups,o=jans" }, { "name": "middleName", "multiValued": false, "values": [ "Test USer 3" ], "value": "Test USer 3", "displayValue": "Test USer 3" }, { "name": "nickname", "multiValued": false, "values": [ "Test USer 3" ], "value": "Test USer 3", "displayValue": "Test USer 3" }, { "name": "sn", "multiValued": false, "values": [ "User3" ], "value": "User3", "displayValue": "User3" } ], "customObjectClasses": [ "top", "jansCustomPerson" ], "inum": "559a7e26-7a33-4e11-9d42-13266d33261e", "mail": "test3@jans.server", "displayName": "Default Test User 32", "jansStatus": "active", "givenName": "Test3", "baseDn": "inum=559a7e26-7a33-4e11-9d42-13266d33261e,ou=people,o=jans" } "400": description: Bad Request "401": description: Unauthorized "404": description: Not Found "500": description: InternalServerError security: - oauth2: - https://jans.io/oauth/config/user.write - oauth2: - https://jans.io/oauth/config/user.admin - oauth2: - https://jans.io/oauth/config/write-all components: schemas: CustomObjectAttribute: type: object properties: name: type: string multiValued: type: boolean values: type: array items: type: object value: type: object displayValue: type: string CustomUser: type: object properties: dn: type: string userId: type: string updatedAt: type: string format: date-time createdAt: type: string format: date-time oxAuthPersistentJwt: type: array items: type: string externalUid: type: array items: type: string authenticator: $ref: "#/components/schemas/UserAuthenticatorList" status: type: string enum: - active - inactive - expired - register customAttributes: type: array items: $ref: "#/components/schemas/CustomObjectAttribute" customObjectClasses: type: array items: type: string inum: type: string mail: type: string displayName: type: string givenName: type: string userPassword: type: string baseDn: type: string UserAuthenticator: type: object properties: id: type: string type: type: string custom: type: object additionalProperties: type: object UserAuthenticatorList: type: object properties: authenticators: type: array items: $ref: "#/components/schemas/UserAuthenticator" ApiError: type: object properties: code: type: string message: type: string description: type: string UserPagedResult: type: object properties: start: type: integer format: int32 totalEntriesCount: type: integer format: int32 entriesCount: type: integer format: int32 entries: type: array items: $ref: "#/components/schemas/CustomUser" UserPatchRequest: type: object properties: jsonPatchString: type: string customAttributes: type: array items: $ref: "#/components/schemas/CustomObjectAttribute" securitySchemes: oauth2: type: oauth2 flows: clientCredentials: tokenUrl: "https://{op-hostname}/.../token" scopes: https://jans.io/oauth/config/user.readonly: View user related information https://jans.io/oauth/config/user.write: Manage user related information https://jans.io/oauth/config/user.delete: Delete user related information https://jans.io/oauth/config/user.admin: Admin to manage user related information https://jans.io/oauth/config/read-all: Super admin for viewing application resource information https://jans.io/oauth/config/write-all: Super admin for updating application resource information https://jans.io/oauth/config/delete-all: Super admin for deleting application resource information