openapi: 3.0.1 info: title: LemonLDAP::NG Manager API description: The Manager API allows an administrator to modify the LemonLDAP::NG configuration programmatically. It is not meant to be accessed by end users. version: 2.0.8 servers: - url: /api/v1 tags: - name: samlsp description: SAML Service Providers - name: oidcrp description: OpenID Connect Relaying Parties - name: 2fa description: Registered Second Factors paths: /api/v1/providers/saml/sp: post: tags: - samlsp summary: Create a new SAML Service provider operationId: addsamlsp requestBody: description: SAML Service provider to add content: application/json: schema: $ref: '#/components/schemas/SamlSp' required: true responses: 201: $ref: '#/components/responses/Created' 400: $ref: '#/components/responses/Error' 409: $ref: '#/components/responses/Conflict' /api/v1/providers/saml/sp/findByConfKey: get: tags: - samlsp summary: Finds SAML Service providers by configuration key description: Takes a search pattern to be tested against existing service providers operationId: findSamlSpByConfKey parameters: - name: pattern in: query description: Search pattern required: true schema: type: "string" examples: any: summary: Any value value: "*" prefix: summary: Given prefix value: "zone1-*" anywhere: summary: Substring value: "something" responses: 200: $ref: '#/components/responses/ManySamlSp' 400: $ref: '#/components/responses/Error' /api/v1/providers/saml/sp/findByEntityId: get: tags: - samlsp summary: Finds SAML Service Provider by Entity ID operationId: findSamlSpByEntityId parameters: - name: entityId in: query description: Entity ID to search required: true schema: type: "string" example: http://mysp.example.com/saml/metadata responses: 200: $ref: '#/components/responses/OneSamlSp' 400: $ref: '#/components/responses/Error' 404: $ref: '#/components/responses/NotFound' /api/v1/providers/saml/sp/{confKey}: get: tags: - samlsp summary: Get SAML Service Provider by configuration key description: Returns a single Service Provider operationId: getSamlSpByConfKey parameters: - name: confKey in: path description: Configuration key of SAML Service Provider required: true schema: $ref: '#/components/schemas/confKey' responses: 200: $ref: '#/components/responses/OneSamlSp' 400: $ref: '#/components/responses/Error' 404: $ref: '#/components/responses/NotFound' put: tags: - samlsp summary: Replaces a SAML Service operationId: replaceSamlSp parameters: - name: confKey in: path description: Configuration key of SAML Service Provider that needs to be replaced required: true schema: $ref: '#/components/schemas/confKey' requestBody: content: application/json: schema: $ref: '#/components/schemas/SamlSp' responses: 204: $ref: '#/components/responses/NoContent' 400: $ref: '#/components/responses/Error' 404: $ref: '#/components/responses/NotFound' 409: $ref: '#/components/responses/Conflict' patch: tags: - samlsp summary: Updates a SAML Service. operationId: updateSamlSp parameters: - name: confKey in: path description: Configuration key of SAML Service Provider that needs to be updated required: true schema: $ref: '#/components/schemas/confKey' requestBody: content: application/json: schema: $ref: '#/components/schemas/SamlSpUpdate' responses: 204: $ref: '#/components/responses/NoContent' 400: $ref: '#/components/responses/Error' 404: $ref: '#/components/responses/NotFound' 409: $ref: '#/components/responses/Conflict' delete: tags: - samlsp summary: Deletes a SAML Service Provider operationId: deleteSamlSp parameters: - name: confKey in: path description: Configuration key of SAML Service Provider to delete required: true schema: $ref: '#/components/schemas/confKey' responses: 204: $ref: '#/components/responses/NoContent' 400: $ref: '#/components/responses/Error' 404: $ref: '#/components/responses/NotFound' /api/v1/providers/oidc/rp: post: tags: - oidcrp summary: Create a new OpenID Connect Relaying Party operationId: addoidcrp requestBody: description: OpenID Connect Relaying Party to add content: application/json: schema: $ref: '#/components/schemas/OidcRp' required: true responses: 201: $ref: '#/components/responses/Created' 400: $ref: '#/components/responses/Error' 409: $ref: '#/components/responses/Conflict' /api/v1/providers/oidc/rp/findByConfKey: get: tags: - oidcrp summary: Finds OpenID Connect Relaying Partys by configuration key description: Takes a search pattern to be tested against existing service providers operationId: findOidcRpByConfKey parameters: - name: pattern in: query description: Search pattern required: true schema: $ref: '#/components/schemas/confKey' examples: any: summary: Any value value: "*" prefix: summary: Given prefix value: "zone1-*" anywhere: summary: Substring value: "something" responses: 200: $ref: '#/components/responses/ManyOidcRp' 400: $ref: '#/components/responses/Error' /api/v1/providers/oidc/rp/findByClientId: get: tags: - oidcrp summary: Finds OpenID Connect Relaying Party by Client ID operationId: findOidcRpByClientId parameters: - name: clientId in: query description: Client ID to search required: true schema: type: "string" example: my_client_id responses: 200: $ref: '#/components/responses/OneOidcRp' 400: $ref: '#/components/responses/Error' 404: $ref: '#/components/responses/NotFound' /api/v1/providers/oidc/rp/{confKey}: get: tags: - oidcrp summary: Get OpenID Connect Relaying Party by configuration key description: Returns a single Service Provider operationId: getOidcRpByConfKey parameters: - name: confKey in: path description: Configuration key of OpenID Connect Relaying Party required: true schema: $ref: '#/components/schemas/confKey' responses: 200: $ref: '#/components/responses/OneOidcRp' 400: $ref: '#/components/responses/Error' 404: $ref: '#/components/responses/NotFound' patch: tags: - oidcrp summary: Updates an OpenID Connect Relaying Party operationId: updateOidcRp parameters: - name: confKey in: path description: Configuration key of OpenID Connect Relaying Party that needs to be updated required: true schema: $ref: '#/components/schemas/confKey' requestBody: content: application/json: schema: $ref: '#/components/schemas/OidcRpUpdate' responses: 204: $ref: '#/components/responses/NoContent' 400: $ref: '#/components/responses/Error' 404: $ref: '#/components/responses/NotFound' 409: $ref: '#/components/responses/Conflict' put: tags: - oidcrp summary: Replaces an OpenID Connect Relaying Party operationId: replaceOidcRp parameters: - name: confKey in: path description: Configuration key of OpenID Connect Relaying Party that needs to be replaced required: true schema: $ref: '#/components/schemas/confKey' requestBody: content: application/json: schema: $ref: '#/components/schemas/OidcRp' responses: 204: $ref: '#/components/responses/NoContent' 400: $ref: '#/components/responses/Error' 404: $ref: '#/components/responses/NotFound' 409: $ref: '#/components/responses/Conflict' delete: tags: - oidcrp summary: Deletes a OpenID Connect Relaying Party operationId: deleteOidcRp parameters: - name: confKey in: path description: Configuration key of OpenID Connect Relaying Party to delete required: true schema: $ref: '#/components/schemas/confKey' responses: 204: $ref: '#/components/responses/NoContent' 400: $ref: '#/components/responses/Error' 404: $ref: '#/components/responses/NotFound' '/api/v1/secondFactor/{uid}': description: Second factors for a particular user parameters: - name: uid in: path required: true schema: type: string get: summary: List second factors for a user description: '' tags: - 2fa operationId: getSecondFactors responses: 200: $ref: '#/components/responses/SecondFactors' 404: $ref: '#/components/responses/NotFound' delete: summary: Delete all second factors for a user description: '' tags: - 2fa operationId: deleteSecondFactors responses: 204: $ref: '#/components/responses/NoContent' 404: $ref: '#/components/responses/NotFound' '/api/v1/secondFactor/{uid}/type/{type}': description: Second factors of a given type for a particular user parameters: - name: uid in: path required: true schema: type: string - name: type in: path required: true schema: type: string get: summary: List second factors for a user given its type description: '' tags: - 2fa operationId: getSecondFactorsByType responses: 200: $ref: '#/components/responses/SecondFactors' 404: $ref: '#/components/responses/NotFound' delete: summary: Delete all second factors of a given type for a user description: '' tags: - 2fa operationId: deleteSecondFactorsByType responses: 204: $ref: '#/components/responses/NoContent' 404: $ref: '#/components/responses/NotFound' '/api/v1/secondFactor/{uid}/id/{id}': description: Second factors of a given id for a particular user parameters: - name: uid in: path required: true schema: type: string - name: id in: path required: true schema: type: string get: summary: Get second factors for a user given its ID description: '' tags: - 2fa operationId: getSecondFactorsById responses: 200: $ref: '#/components/responses/SecondFactors' 404: $ref: '#/components/responses/NotFound' delete: summary: Delete a second factors for a user description: '' tags: - 2fa operationId: deleteSecondFactorsById responses: 204: $ref: '#/components/responses/NoContent' 404: $ref: '#/components/responses/NotFound' components: schemas: confKey: type: string pattern: '^\w[\w\.\-]*$' Error: type: object properties: error: type: string required: - error SamlSp: required: - confKey - metadata type: object properties: confKey: $ref: '#/components/schemas/confKey' metadata: type: string example: '