swagger: "2.0" info: title: Mainflux authentication service description: HTTP API for managing platform API keys. version: "1.0.0" consumes: - "application/json" produces: - "application/json" paths: /keys: post: summary: Issue API key description: | Generates a new API key. Thew new API key will be uniquely identified by its ID. tags: - authn parameters: - name: key description: JSON-formatted document describing the new key. in: body schema: $ref: "#/definitions/KeyRequest" required: true responses: 201: description: Issued new key. 400: description: Failed due to malformed JSON. 409: description: Failed due to using already existing ID. 415: description: Missing or invalid content type. 500: $ref: "#/responses/ServiceError" get: summary: Gets API key details. description: | Gets API key details for the given key. tags: - authn parameters: - $ref: "#/parameters/Authorization" - name: id description: API Key id. in: path type: string required: true responses: 200: description: Data retrieved. schema: $ref: "#/definitions/Key" 400: description: Failed due to malformed query parameters. 403: description: Missing or invalid access token provided. 500: $ref: "#/responses/ServiceError" delete: summary: Revoke API key description: | Revoke API key identified by the given ID. tags: - authn parameters: - $ref: "#/parameters/Authorization" - name: id description: API Key id. in: path type: string required: true responses: 204: description: Key revoked. 403: description: Missing or invalid access token provided. 500: $ref: "#/responses/ServiceError" definitions: Key: type: object properties: id: type: string format: uuid example: "c5747f2f-2a7c-4fe1-b41a-51a5ae290945" description: API key unique identifier type: type: integer example: 0 description: API key type. Keys of different type are processed differently issuer: type: string format: string example: "test@example.com" description: User's email or service identifier of API key issuer secret: type: string example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1lIjoiZXhhbXBsZSIsImlhdCI6MTUxNjIzOTAyMn0.9UYAFWmPIn4ojss36LpIGSqABZHfADQmVuKQ4PJBMdI description: API Key value. issued_at: type: string format: date-time example: "2019-11-26 13:31:52" description: Time when the key is generated expires_at: type: string format: date-time example: "2019-11-26 13:31:52" description: Time when the Key expires KeyRequest: type: object properties: type: type: integer example: 0 description: API key type. Keys of different type are processed differently issuer: type: string format: e-mail example: "test@example.com" description: User's email or service identifier of API key issuer duration: type: number format: integer example: 23456 description: Number of seconds issued token is valid for. parameters: Authorization: name: Authorization description: Login key secret (User's access token). in: header type: string required: true responses: ServiceError: description: Unexpected server-side error occurred.