Pulse Software User Details API API
API for managing user details in Pulse
API for managing user details in Pulse
swagger: '2.0'
info:
title: Pulse Public Authentication User Details API API
version: 1.0.1
description: "The Pulse API is targeted towards developers looking to automate tasks in Pulse. \n\n# Authentication\nAll endpoints in Pulse require authentication. Legacy endpoints require only a Private API Key, while all new endpoints incorporate JSON Web Tokens. \n\n**API Key**\nTo consume a Pulse endpoint using API Key authentication, :\n * Contact Pulse support at support@pulsesoftware.com to enable the Pulse Public API and issue your API key.\n * Pass the API key in the **'x-Api-Key'** header with each request.\n\nNote: It is recommended to use a User Private API key where possible, rather than the Application Private Key. When using a User API key, functionality will be restricted based on the role of the User for which the API key was generated. See API endpoint documentation for authorised roles. \n\n**JSON Web Token (JWT)**\nTo consume a Pulse endpoint using JWT authentication:\n * Contact Pulse support at support@pulsesoftware.com to enable the Pulse Public API and issue your API key.\n * Request a bearer token from /pulse/jwt, passing the API key in the **'x-Api-Key'** header with the request.\n * Pass the token issued in the **'Authorization'** header of all requests as **'bearer [token]'**\n\n**Note** Tokens will expire 60 minutes after being issued, at which point your application will need to request a new token.\n\n# Requests\nThe Pulse API follows REST principles. Data resources are accessed via standard HTTPS requests in UTF-8 format to an API endpoint. Where possible, Web API uses appropriate HTTP verbs for each action.\nHTTP Verbs:\n * **GET** Retrieves resources\n * **POST** Creates resources\n * **PUT** Changes and/or replaces resources or collections\n * **DELETE** Deletes resources\n\nThe Pulse API accepts the following ISO-8601 formats for date strings:\n * Date, Time, Timezone: e.g. \"2021-06-02T21:39:18+00:00\"\n * Date, Time: e.g. \"2021-06-02T21:39:18Z\"\n * Date: e.g. \"2021-06-02\"\n\n# Responses\nPulse API returns all response data as a JSON object. \n\n# Response Status Codes\nPulse API uses the following status codes:\n * **200** OK - Request succeeded. Result provided in response body.\n * **400** Bad Request - Malformed syntax. See message body for information.\n * **401** Unauthorised - Missing authentication (API Key or JWT).\n * **403** Forbidden - API user is not authorised to access requested resource.\n * **404** Not Found - Request resource does not exist.\n\n# Support\nContact support@pulsesoftware.com for any queries or issues related to this API\n"
termsOfService: http://www.apache.org/licenses/LICENSE-2.0.html
contact:
email: support@pulsesoftware.com
license:
name: Apache 2.0
url: http://www.apache.org/licenses/LICENSE-2.0.html
host: '*.pulsesoftware.com'
basePath: /webservices/api
schemes:
- https
- http
tags:
- name: User Details API
description: API for managing user details in Pulse
paths:
/security/users/{value}:
get:
security:
- ApiKey: []
tags:
- User Details API
summary: Retrieve user details
description: Retrieves a list of users matching a provided user identifier. Includes an 'active' flag which indicates whether or not a user is active.
operationId: getUser
parameters:
- name: value
in: path
description: UserID, Username or Email of the desired user.
required: true
type: string
produces:
- application/json
responses:
200:
description: OK. Request completed successfully.
schema:
type: array
items:
$ref: '#/definitions/GetResponse'
403:
description: Missing x-api-key or the given x-api-key does not grant client with access to this API.
404:
description: User not found in Pulse.
/security/users:
get:
security:
- ApiKey: []
tags:
- User Details API
summary: Retrieve a complete list of users in Pulse
description: Returns a list of all users in Pulse (including inactive users). Includes an 'active' flag which indicates whether or not a user is active.
operationId: getUsers
produces:
- application/json
responses:
200:
description: OK. Request completed successfully.
schema:
type: array
items:
$ref: '#/definitions/GetResponse'
403:
description: Missing x-api-key or the given x-api-key does not grant client with access to this API.
post:
security:
- ApiKey: []
tags:
- User Details API
summary: Add a new user to Pulse
description: Notifications can be enabled for this endpoint. Contact Pulse support at support@pulsesoftware.com to enable notifications via the UserSyncEnableNotification config.
operationId: addUser
consumes:
- application/json
produces:
- application/json
parameters:
- in: body
name: body
description: User object to be created
required: true
schema:
$ref: '#/definitions/User'
responses:
200:
description: OK. Request completed successfully.
schema:
$ref: '#/definitions/UpdateUserResponse'
403:
description: Missing x-api-key or the given x-api-key does not grant client with access to this API.
put:
security:
- ApiKey: []
tags:
- User Details API
summary: Replaces an existing user in Pulse or creates a user if the specified user does not exist.
description: Notifications can be enabled for this endpoint. Contact Pulse support at support@pulsesoftware.com to enable notifications via the UserSyncEnableNotification config.
operationId: updateUser
consumes:
- application/json
produces:
- application/json
parameters:
- in: body
name: body
description: User object to be updated to
required: true
schema:
$ref: '#/definitions/UpdateUser'
responses:
200:
description: OK. Request completed successfully.
schema:
$ref: '#/definitions/UpdateUserResponse'
403:
description: Missing x-api-key or the given x-api-key does not grant client with access to this API.
delete:
security:
- ApiKey: []
tags:
- User Details API
summary: Delete a user from Pulse
description: Deletes a user from Pulse using the given userId or email
operationId: deleteUser
consumes:
- application/json
produces:
- application/json
parameters:
- in: body
name: body
description: Requires a <strong>UserId</strong> or <strong>Email</strong> in order lookup the user to delete from Pulse.
required: true
schema:
$ref: '#/definitions/DeleteUser'
responses:
200:
description: ''
403:
description: Missing x-api-key or the given x-api-key does not grant client with access to this API.
definitions:
AdditionalPosition:
type: object
required:
- startDate
- endDate
properties:
positionNumber:
type: string
example: '1006'
positionName:
type: string
example: Financial Accountant
startDate:
type: string
example: '2021-02-11'
endDate:
type: string
example: '2021-08-11'
UpdateUser:
type: object
required:
- userId
- email
properties:
userId:
type: string
example: 00000000-0000-0000-0000-000000000000
email:
type: string
example: testuser@mail.com
firstName:
type: string
example: Johnny
lastName:
type: string
example: Samson
additionalPositions:
type: array
items:
$ref: '#/definitions/AdditionalPosition'
roles:
type: array
items:
type: string
example: cpruser
phone:
type: string
example: (02) 9983 0039
mobile:
type: string
example: +61 412 030 992
streetAddress:
type: string
example: 1 Talavera Rd
suburb:
type: string
example: Macquarie Park
state:
type: string
example: NSW
postcode:
type: string
example: '2113'
country:
type: string
example: Australia
payrollNumber:
type: string
example: A123B
positionNumber:
type: string
example: '1005'
positionName:
type: string
example: Financial Accountant
supervisorEmail:
type: string
example: super@gmail.com
divisionName:
type: string
example: Business Performance
divisionCode:
type: string
example: BP
unitName:
type: string
example: Finance
unitCode:
type: string
example: FIN
sectionName:
type: string
example: Financial Accounting
sectionCode:
type: string
example: FA
OnboardingEnrolment:
type: object
required:
- enrol
properties:
enrol:
type: boolean
example: 'true'
portalId:
type: integer
example: '1'
dueDate:
type: string
example: '2021-12-30'
activeDate:
type: string
example: '2020-12-30'
DeleteUser:
type: object
required:
- userId
- email
properties:
userId:
type: string
example: 00000000-0000-0000-0000-000000000000
email:
type: string
example: jbjovi@gmail.com
xml:
name: DeleteUser
User:
type: object
required:
- firstName
- lastName
- email
properties:
active:
type: boolean
example: true
firstName:
type: string
example: John
lastName:
type: string
example: Jovi
networkLogin:
type: string
example: johnj
phone:
type: string
example: (02) 9983 0039
mobile:
type: string
example: +61 412 030 992
streetAddress:
type: string
example: 1 Talavera Rd
suburb:
type: string
example: Macquarie Park
state:
type: string
example: NSW
postcode:
type: string
example: '2113'
country:
type: string
example: Australia
payrollNumber:
type: string
example: A123B
positionNumber:
type: string
example: '1005'
positionName:
type: string
example: Financial Accountant
applicationDate:
type: string
example: '2020-12-30'
supervisorEmail:
type: string
example: super@gmail.com
onboarding:
$ref: '#/definitions/OnboardingEnrolment'
additionalPositions:
type: array
items:
$ref: '#/definitions/AdditionalPosition'
roles:
type: array
items:
type: string
example: cpruser
divisionName:
type: string
example: Business Performance
divisionCode:
type: string
example: BP
unitName:
type: string
example: Finance
unitCode:
type: string
example: FIN
sectionName:
type: string
example: Financial Accounting
sectionCode:
type: string
example: FA
userId:
type: string
example: 00000000-0000-0000-0000-000000000000
email:
type: string
example: jbjovi@gmail.com
xml:
name: User
UpdateUserResponse:
type: object
properties:
errors:
type: array
items:
$ref: '#/definitions/PulseApiError'
data:
$ref: '#/definitions/GetResponse'
GetResponse:
type: object
properties:
active:
type: boolean
example: true
firstName:
type: string
example: John
lastName:
type: string
example: Jovi
networkLogin:
type: string
example: johnj
phone:
type: string
example: (02) 9983 0039
mobile:
type: string
example: +61 412 030 992
streetAddress:
type: string
example: 1 Talavera Rd
suburb:
type: string
example: Macquarie Park
state:
type: string
example: NSW
postcode:
type: string
example: '2113'
country:
type: string
example: Australia
payrollNumber:
type: string
example: A123B
positionNumber:
type: string
example: '1005'
positionName:
type: string
example: Financial Accountant
applicationDate:
type: string
example: '2020-12-30'
supervisorEmail:
type: string
example: super@gmail.com
onboarding:
$ref: '#/definitions/OnboardingEnrolment'
additionalPositions:
type: array
items:
$ref: '#/definitions/AdditionalPosition'
roles:
type: array
items:
type: string
example: cpruser
divisionName:
type: string
example: Business Performance
divisionCode:
type: string
example: BP
unitName:
type: string
example: Finance
unitCode:
type: string
example: FIN
sectionName:
type: string
example: Financial Accounting
sectionCode:
type: string
example: FA
userId:
type: string
example: 00000000-0000-0000-0000-000000000000
email:
type: string
example: jbjovi@gmail.com
xml:
name: User
PulseApiError:
type: object
properties:
code:
type: string
example: PRF/ProgressUpdate/Reference_MissingReference
detail:
type: string
example: Mandatory field Reference was not supplied.
source:
type: string
example: /data/0/uniqueReference
securityDefinitions:
ApiKey:
type: apiKey
name: x-Api-Key
in: header
BearerJWT:
type: apiKey
name: Authorisation
in: header
externalDocs:
description: Find out more about Swagger
url: http://swagger.io