Nuxeo OAuth2 API

OAuth2 Operations

OpenAPI Specification

nuxeo-oauth2-api-openapi.yml Raw ↑
openapi: 3.0.2
info:
  version: LTS 2021
  title: Nuxeo Platform ACL OAuth2 API
  termsOfService: https://www.nuxeo.com/about/why-nuxeo/
  contact:
    email: support@nuxeo.com
    url: https://www.nuxeo.com/contact/
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  x-logo:
    url: https://d1q6f0aelx0por.cloudfront.net/product-logos/library-nuxeo-logo.png
  description: '# Nuxeo Platform https://www.nuxeo.com/

    OpenAPI 3.0 Specification for the Nuxeo Platform.'
servers:
- url: https://{host}:{port}/nuxeo/api/v1
  variables:
    host:
      default: demo.nuxeo.com
      description: Nuxeo Platform Host
    port:
      default: '443'
      description: Nuxeo Platform Port
- url: https://nightly.nuxeo.com/nuxeo/api/v1
  description: Nuxeo Platform Nightly Test Server
tags:
- name: OAuth2
  description: OAuth2 Operations
paths:
  /oauth2/client:
    get:
      operationId: OAuth2ClientGet
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/oauth2ClientDataList'
        '401':
          description: Not Authorized to get document
        '404':
          description: Document not found
      summary: Retrieves a OAuth2 client.
      tags:
      - OAuth2
    post:
      operationId: OAuth2ClientPost
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/oauth2ClientData'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/oauth2ClientData'
        '401':
          description: Not Authorized to get document
        '404':
          description: Document not found
      summary: Adds an OAuth2 client.
      tags:
      - OAuth2
  /oauth2/client/{oauth2ClientId}:
    delete:
      operationId: OAuth2ClientIdDelete
      parameters:
      - description: Name of the OAuth2 client
        in: path
        name: oauth2ClientId
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful response
        '401':
          description: Not Authorized to get document
        '404':
          description: Document not found
      summary: Deletes an OAuth2 client token.
      tags:
      - OAuth2
    get:
      operationId: OAuth2ClientIdGet
      parameters:
      - description: Name of the OAuth2 client
        in: path
        name: oauth2ClientId
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/oauth2ClientData'
        '401':
          description: Not Authorized to get document
        '404':
          description: Document not found
      summary: Retrieves an OAuth2 client.
      tags:
      - OAuth2
    put:
      operationId: OAuth2ClientIdPut
      parameters:
      - description: Name of the OAuth2 client
        in: path
        name: oauth2ClientId
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/oauth2ClientData'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/oauth2ClientData'
        '401':
          description: Not Authorized to get document
        '404':
          description: Document not found
      summary: Update an OAuth2 client.
      tags:
      - OAuth2
  /oauth2/provider:
    get:
      operationId: OAuth2ProviderGet
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/oauth2ProviderDataList'
        '401':
          description: Not Authorized to get document
        '404':
          description: Document not found
      summary: Retrieves the list of available OAuth2 providers.
      tags:
      - OAuth2
    post:
      operationId: OAuth2ProviderPost
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/oauth2ProviderData'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/oauth2ProviderData'
        '401':
          description: Not Authorized to get document
        '404':
          description: Document not found
      summary: Adds an OAuth2 provider.
      tags:
      - OAuth2
  /oauth2/provider/{oauth2ProviderId}:
    get:
      operationId: OAuth2ProviderIdGet
      parameters:
      - description: Name of the OAuth2 provider
        in: path
        name: oauth2ProviderId
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/oauth2ProviderData'
        '401':
          description: Not Authorized to get document
        '404':
          description: Document not found
      summary: Retrieves OAuth2 provider data for the current user.
      tags:
      - OAuth2
    put:
      operationId: OAuth2ProviderIdPut
      parameters:
      - description: Name of the OAuth2 provider
        in: path
        name: oauth2ProviderId
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/oauth2ProviderData'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/oauth2ProviderData'
        '401':
          description: Not Authorized to get document
        '404':
          description: Document not found
      summary: Updates an OAuth2 provider.
      tags:
      - OAuth2
  /oauth2/provider/{oauth2ProviderId}/token:
    get:
      operationId: OAuth2ProviderIdTokenGet
      parameters:
      - description: Name of the OAuth2 provider
        in: path
        name: oauth2ProviderId
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/oauth2ProviderTokenData'
        '401':
          description: Not Authorized to get document
        '404':
          description: Document not found
      summary: Retrieves a valid access token to the current user. A new token will be request if the current one is expired.
      tags:
      - OAuth2
  /oauth2/token:
    get:
      operationId: OAuth2TokenGet
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/oauth2TokenDataList'
        '401':
          description: Not Authorized to get document
        '404':
          description: Document not found
      summary: Retrieves all OAuth2 tokens.
      tags:
      - OAuth2
  /oauth2/token/client:
    get:
      operationId: OAuth2TokenClientGet
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/oauth2TokenDataList'
        '401':
          description: Not Authorized to get document
        '404':
          description: Document not found
      summary: Retrieves all OAuth2 client tokens for the current user.
      tags:
      - OAuth2
  /oauth2/token/client/{oauth2ClientId}/user/{userName}:
    delete:
      operationId: OAuth2TokenClientIdUserDelete
      parameters:
      - description: Name of the OAuth2 client
        in: path
        name: oauth2ClientId
        required: true
        schema:
          type: string
      - description: 'Username of the user, ex: ''Administrator'''
        in: path
        name: userName
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful response
        '401':
          description: Not Authorized to get document
        '404':
          description: Document not found
      summary: Deletes a OAuth2 client token.
      tags:
      - OAuth2
    get:
      operationId: OAuth2TokenClientIdUserGet
      parameters:
      - description: Name of the OAuth2 client
        in: path
        name: oauth2ClientId
        required: true
        schema:
          type: string
      - description: 'Username of the user, ex: ''Administrator'''
        in: path
        name: userName
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/oauth2TokenData'
        '401':
          description: Not Authorized to get document
        '404':
          description: Document not found
      summary: Retrieves a OAuth2 client token.
      tags:
      - OAuth2
    put:
      operationId: OAuth2TokenClientIdUserPut
      parameters:
      - description: Name of the OAuth2 client
        in: path
        name: oauth2ClientId
        required: true
        schema:
          type: string
      - description: 'Username of the user, ex: ''Administrator'''
        in: path
        name: userName
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/oauth2TokenData'
        '401':
          description: Not Authorized to get document
        '404':
          description: Document not found
      summary: Updates an OAuth2 client token.
      tags:
      - OAuth2
  /oauth2/token/provider:
    get:
      operationId: OAuth2TokenProviderGet
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/oauth2TokenDataList'
        '401':
          description: Not Authorized to get document
        '404':
          description: Document not found
      summary: Retrieves all OAuth2 provider tokens for the current user.
      tags:
      - OAuth2
  /oauth2/token/provider/{oauth2ProviderId}/user/{userName}:
    delete:
      operationId: OAuth2TokenProviderIdUserDelete
      parameters:
      - description: Name of the OAuth2 provider
        in: path
        name: oauth2ProviderId
        required: true
        schema:
          type: string
      - description: 'Username of the user, ex: ''Administrator'''
        in: path
        name: userName
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful response
        '401':
          description: Not Authorized to get document
        '404':
          description: Document not found
      summary: Delete an OAuth2 provider token.
      tags:
      - OAuth2
    get:
      operationId: OAuth2TokenProviderIdUserGet
      parameters:
      - description: Name of the OAuth2 provider
        in: path
        name: oauth2ProviderId
        required: true
        schema:
          type: string
      - description: 'Username of the user, ex: ''Administrator'''
        in: path
        name: userName
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/oauth2TokenData'
        '401':
          description: Not Authorized to get document
        '404':
          description: Document not found
      summary: Gets an OAuth2 provider token.
      tags:
      - OAuth2
    put:
      operationId: OAuth2TokenProviderIdUserPut
      parameters:
      - description: Name of the OAuth2 provider
        in: path
        name: oauth2ProviderId
        required: true
        schema:
          type: string
      - description: 'Username of the user, ex: ''Administrator'''
        in: path
        name: userName
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/oauth2TokenData'
        '401':
          description: Not Authorized to get document
        '404':
          description: Document not found
      summary: Updates an OAuth2 provider token.
      tags:
      - OAuth2
  /oauth2/token/search:
    get:
      operationId: OAuth2TokenSearchGet
      parameters:
      - description: The service name or user name to match.
        in: query
        name: q
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/oauth2TokenDataList'
        '401':
          description: Not Authorized to get document
        '404':
          description: Document not found
      summary: Search tokens that match service name or user parameter.
      tags:
      - OAuth2
  /oauth2/token/{oAuth2TokenType}:
    get:
      operationId: OAuth2TokenTypeGet
      parameters:
      - description: The oAuth2 token type. AS_PROVIDER to retrieve the provided tokens or AS_CLIENT to retrieve those consumed.
        in: path
        name: oAuth2TokenType
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/oauth2TokenDataList'
        '401':
          description: Not Authorized to get document
        '404':
          description: Document not found
      summary: Retrieves all OAuth2 tokens by OAuth2 token type. An OAuth2 token can be provided by Nuxeo or consumed.
      tags:
      - OAuth2
components:
  schemas:
    oauth2ProviderTokenData:
      properties:
        token:
          type: string
          uniqueItems: false
      required:
      - token
      uniqueItems: false
    oauth2ClientData:
      properties:
        entity-type:
          type: string
          uniqueItems: false
        id:
          type: string
          uniqueItems: false
        isAutoGrant:
          type: boolean
          uniqueItems: false
        isEnabled:
          type: boolean
          uniqueItems: false
        name:
          type: string
          uniqueItems: false
        redirectURIs:
          items:
            type: string
          type: array
          uniqueItems: false
        secret:
          type: string
          uniqueItems: false
      required:
      - entity-type
      - id
      - name
      - redirectURIs
      uniqueItems: false
    oauth2ClientDataList:
      properties:
        currentPageIndex:
          type: integer
          uniqueItems: false
        currentPageOffset:
          type: integer
          uniqueItems: false
        currentPageSize:
          type: integer
          uniqueItems: false
        entity-type:
          type: string
          uniqueItems: false
        entries:
          items:
            $ref: '#/components/schemas/oauth2ClientData'
          type: array
          uniqueItems: false
        erroMessage:
          type: string
          uniqueItems: false
        hasError:
          type: boolean
          uniqueItems: false
        isLastPageAvailable:
          type: boolean
          uniqueItems: false
        isNext:
          type: boolean
          uniqueItems: false
        isPaginable:
          type: boolean
          uniqueItems: false
        isPreviousPageAvailable:
          type: boolean
          uniqueItems: false
        isSortable:
          type: boolean
          uniqueItems: false
        maxPageSize:
          type: integer
          uniqueItems: false
        numberOfPages:
          type: integer
          uniqueItems: false
        pageCount:
          type: integer
          uniqueItems: false
        pageIndex:
          type: integer
          uniqueItems: false
        pageSize:
          type: integer
          uniqueItems: false
        resultCount:
          type: integer
          uniqueItems: false
        totalSize:
          type: integer
          uniqueItems: false
      required:
      - entity-type
      - entries
      uniqueItems: false
    oauth2TokenDataList:
      properties:
        currentPageIndex:
          type: integer
          uniqueItems: false
        currentPageOffset:
          type: integer
          uniqueItems: false
        currentPageSize:
          type: integer
          uniqueItems: false
        entity-type:
          type: string
          uniqueItems: false
        entries:
          items:
            $ref: '#/components/schemas/oauth2TokenData'
          type: array
          uniqueItems: false
        erroMessage:
          type: string
          uniqueItems: false
        hasError:
          type: boolean
          uniqueItems: false
        isLastPageAvailable:
          type: boolean
          uniqueItems: false
        isNext:
          type: boolean
          uniqueItems: false
        isPaginable:
          type: boolean
          uniqueItems: false
        isPreviousPageAvailable:
          type: boolean
          uniqueItems: false
        isSortable:
          type: boolean
          uniqueItems: false
        maxPageSize:
          type: integer
          uniqueItems: false
        numberOfPages:
          type: integer
          uniqueItems: false
        pageCount:
          type: integer
          uniqueItems: false
        pageIndex:
          type: integer
          uniqueItems: false
        pageSize:
          type: integer
          uniqueItems: false
        resultCount:
          type: integer
          uniqueItems: false
        totalSize:
          type: integer
          uniqueItems: false
      required:
      - entity-type
      - entries
      uniqueItems: false
    oauth2ProviderDataList:
      properties:
        currentPageIndex:
          type: integer
          uniqueItems: false
        currentPageOffset:
          type: integer
          uniqueItems: false
        currentPageSize:
          type: integer
          uniqueItems: false
        entity-type:
          type: string
          uniqueItems: false
        entries:
          items:
            $ref: '#/components/schemas/oauth2ProviderData'
          type: array
          uniqueItems: false
        erroMessage:
          type: string
          uniqueItems: false
        hasError:
          type: boolean
          uniqueItems: false
        isLastPageAvailable:
          type: boolean
          uniqueItems: false
        isNext:
          type: boolean
          uniqueItems: false
        isPaginable:
          type: boolean
          uniqueItems: false
        isPreviousPageAvailable:
          type: boolean
          uniqueItems: false
        isSortable:
          type: boolean
          uniqueItems: false
        maxPageSize:
          type: integer
          uniqueItems: false
        numberOfPages:
          type: integer
          uniqueItems: false
        pageCount:
          type: integer
          uniqueItems: false
        pageIndex:
          type: integer
          uniqueItems: false
        pageSize:
          type: integer
          uniqueItems: false
        resultCount:
          type: integer
          uniqueItems: false
        totalSize:
          type: integer
          uniqueItems: false
      required:
      - entity-type
      - entries
      uniqueItems: false
    oauth2TokenData:
      properties:
        clientId:
          type: string
          uniqueItems: false
        creationDate:
          type: string
          uniqueItems: false
        entity-type:
          type: string
          uniqueItems: false
        isShared:
          type: boolean
          uniqueItems: false
        nuxeoLogin:
          type: string
          uniqueItems: false
        serviceLogin:
          type: string
          uniqueItems: false
        serviceName:
          type: string
          uniqueItems: false
        sharedWith:
          items:
            type: string
          type: array
      required:
      - entity-type
      - nuxeoLogin
      - serviceLogin
      - serviceName
      uniqueItems: false
    oauth2ProviderData:
      properties:
        authorizationServerURL:
          type: string
          uniqueItems: false
        authorizationURL:
          type: string
          uniqueItems: false
        clientId:
          type: string
          uniqueItems: false
        clientSecret:
          type: string
          uniqueItems: false
        description:
          type: string
          uniqueItems: false
        entity-type:
          type: string
          uniqueItems: false
        isAuthorized:
          type: boolean
          uniqueItems: false
        isAvailable:
          type: boolean
          uniqueItems: false
        isEnabled:
          type: boolean
          uniqueItems: false
        scopes:
          items:
            type: string
          type: array
          uniqueItems: false
        serviceName:
          type: string
          uniqueItems: false
        tokenServerURL:
          type: string
          uniqueItems: false
        userAuthorizationURL:
          type: string
          uniqueItems: false
        userId:
          type: string
          uniqueItems: false
      required:
      - entity-type
      - serviceName
      uniqueItems: false
  securitySchemes:
    basic_auth:
      type: http
      scheme: basic
    token:
      type: apiKey
      in: header
      name: X-Authentication-Token
externalDocs:
  description: Nuxeo Documentation
  url: https://doc.nuxeo.com/