Password reset API

This API can be used to allow the user to request a password reset. When requested, an email is sent to the user's email address containing a link to our system that allows them to set a new password. The link is only valid for 1-3 days and after the password has been set the user receives a second email notifying that it has been changed. 

This API call still needs the requester to authenticate, but now with a client token only to allow us to identify the application doing the request.

{ "swagger": "2.0", "info": { "version": "2.0.0", "title": "Cameramanager API", "description": "RESTful API for the Cameramanager platform." }, "host": "rest.cameramanager.com", "schemes": [ "http", "https" ], "basePath": "/rest/v2.0", "produces": [ "application/json" ], "definitions": { "Error": { "type": "object", "description": "Generic error response, modelled after RFC 7807.", "properties": { "code": { "type": "integer", "description": "Error code within the system." }, "title": { "type": "string", "description": "This title is not meant to be shown to users and is not guaranteed to stay the same. Please use the code to parse the error." }, "detail": { "type": "string", "description": "Error details, to help developers detect what went wrong." } }, "required": [ "code", "title" ] }, "OAuth2Error": { "type": "object", "description": "Generic OAuth2 error response when there is something wrong with the OAuth2 authentication. Defined at RFC 6749.", "properties": { "error": { "type": "string", "description": "A single ASCII error code conforming the pattern." }, "error_description": { "type": "string", "description": "Human-readable ASCII text providing additional information, used to assist the client developer in understanding the error that occurred." } }, "required": [ "error" ] }, "PasswordResetRequest": { "type": "object", "description": "Object containing a user email for identification.", "properties": { "email": { "type": "string", "description": "E-mail address for which the password request is performed.", "minLength": 3, "maxLength": 128 } }, "required": [ "email" ] } }, "responses": { "resourceNotFound": { "description": "Referenced resource could not be found.", "schema": { "$ref": "#/definitions/Error" } }, "unauthorized": { "description": "You are not authenticated. Please authenticate and try again.", "schema": { "$ref": "#/definitions/OAuth2Error" } }, "forbidden": { "description": "You have no permission to access the specified resource.", "schema": { "$ref": "#/definitions/Error" } }, "validationError": { "description": "The supplied object is invalid. Error detail will contain the validation error.", "schema": { "$ref": "#/definitions/Error" } }, "notAcceptableError": { "description": "The requested resource is capable of generating only content not acceptable according to the Accept headers sent in the request.", "schema": { "$ref": "#/definitions/Error" } }, "unsupportedMediaType": { "description": "The requested resource does not understand the media type sent in the request.", "schema": { "$ref": "#/definitions/Error" } }, "conflict": { "description": "There was a conflict while trying to perform your request. Error detail will contain the detailed conflict.", "schema": { "$ref": "#/definitions/Error" } }, "internalServerError": { "description": "Something went wrong in the server. Please try again.", "schema": { "$ref": "#/definitions/Error" } } }, "paths": { "/passwordResets": { "post": { "summary": "Request a password reset for a given email address.", "description": "The body should contain the email address used to identify the user. On succes, the user will receive an email with a link that can be used to reset their password.", "operationId": "resetPassword", "parameters": [ { "name": "passwordResetRequest", "in": "body", "required": true, "schema": { "$ref": "#/definitions/PasswordResetRequest" } } ], "consumes": [ "application/json" ], "responses": { "204": { "description": "No Content" }, "401": { "$ref": "#/responses/unauthorized" }, "404": { "$ref": "#/responses/resourceNotFound" }, "500": { "$ref": "#/responses/internalServerError" } }, "tags": [ "UserPasswordReset" ] } } } }

swagger-passwordResets.yaml