OpenMetadata Users API

A `User` represents a user of OpenMetadata. A user can be part of 0 or more teams. A special type of user called Bot is used for automation. A user can be an owner of zero or more data assets. A user can also follow zero or more data assets.

OpenAPI Specification

openmetadata-users-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: OpenMetadata APIs Agent Executions Users API
  description: Common types and API definition for OpenMetadata
  contact:
    name: OpenMetadata
    url: https://open-metadata.org
    email: openmetadata-dev@googlegroups.com
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
  version: '1.13'
servers:
- url: /api
  description: Current Host
- url: http://localhost:8585/api
  description: Endpoint URL
security:
- BearerAuth: []
tags:
- name: Users
  description: A `User` represents a user of OpenMetadata. A user can be part of 0 or more teams. A special type of user called Bot is used for automation. A user can be an owner of zero or more data assets. A user can also follow zero or more data assets.
paths:
  /v1/users/changePassword:
    put:
      tags:
      - Users
      summary: Change Password For User
      description: Create a new user.
      operationId: changeUserPassword
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChangePasswordRequest'
      responses:
        '200':
          description: 'The user '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
        '400':
          description: Bad request
  /v1/users/checkEmailVerified:
    post:
      tags:
      - Users
      summary: Check if a mail is verified
      description: Check if a mail is already in use
      operationId: checkEmailIsVerified
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmailRequest'
      responses:
        '200':
          description: Return true or false
          content:
            application/json:
              schema:
                type: boolean
        '400':
          description: Bad request
  /v1/users/registrationConfirmation:
    put:
      tags:
      - Users
      summary: Confirm User Email
      description: Confirm User Email
      operationId: confirmUserEmail
      parameters:
      - name: token
        in: query
        description: Token sent for Email Confirmation
        schema:
          type: string
      responses:
        '200':
          description: 'The user '
        '400':
          description: Bad request
  /v1/users/security/token:
    get:
      tags:
      - Users
      summary: Get personal access token to User
      description: Get a personal access token
      operationId: getPersonalAccessToken
      parameters:
      - name: username
        in: query
        description: User Name of the User for which to get. (Default = `false`)
        schema:
          type: string
      responses:
        '200':
          description: 'List Of Personal Access Tokens '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PersonalAccessTokenList'
        '400':
          description: Bad request
    put:
      tags:
      - Users
      summary: Provide access token to User
      description: Provide access token to User
      operationId: createPersonalAccessToken
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreatePersonalToken'
      responses:
        '200':
          description: 'The user '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PersonalAccessToken'
        '400':
          description: Bad request
  /v1/users:
    get:
      tags:
      - Users
      summary: List users
      description: Get a list of users. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.
      operationId: listUsers
      parameters:
      - name: fields
        in: query
        description: Fields requested in the returned resource
        schema:
          type: string
          example: profile,roles,teams,follows,owns,domains,personas,defaultPersona,personaPreferences
      - name: team
        in: query
        description: Filter users by team
        schema:
          type: string
          example: Legal
      - name: limit
        in: query
        description: Limit the number users returned. (1 to 1000000, default = 10)
        schema:
          maximum: 1000000
          minimum: 0
          type: integer
          format: int32
          default: 10
      - name: before
        in: query
        description: Returns list of users before this cursor
        schema:
          type: string
      - name: after
        in: query
        description: Returns list of users after this cursor
        schema:
          type: string
      - name: isAdmin
        in: query
        description: Returns list of admin users if set to true
        schema:
          type: boolean
      - name: isBot
        in: query
        description: Returns list of bot users if set to true
        schema:
          type: boolean
      - name: include
        in: query
        description: Include all, deleted, or non-deleted entities.
        schema:
          type: string
          default: non-deleted
          enum:
          - all
          - deleted
          - non-deleted
      responses:
        '200':
          description: 'The user '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserList'
    put:
      tags:
      - Users
      summary: Update user
      description: Create or Update a user.
      operationId: createOrUpdateUser
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateUser'
      responses:
        '200':
          description: 'The user '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateUser'
        '400':
          description: Bad request
    post:
      tags:
      - Users
      summary: Create a user
      description: Create a new user.
      operationId: createUser
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateUser'
      responses:
        '200':
          description: 'The user '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
        '400':
          description: Bad request
  /v1/users/name/{name}:
    get:
      tags:
      - Users
      summary: Get a user by name
      description: Get a user by `name`.
      operationId: getUserByFQN
      parameters:
      - name: name
        in: path
        description: Name of the user
        required: true
        schema:
          type: string
      - name: fields
        in: query
        description: Fields requested in the returned resource
        schema:
          type: string
          example: profile,roles,teams,follows,owns,domains,personas,defaultPersona,personaPreferences
      - name: include
        in: query
        description: Include all, deleted, or non-deleted entities.
        schema:
          type: string
          default: non-deleted
          enum:
          - all
          - deleted
          - non-deleted
      responses:
        '200':
          description: The user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
        '404':
          description: User for instance {name} is not found
    delete:
      tags:
      - Users
      summary: Delete a user
      description: Users can't be deleted but are soft-deleted.
      operationId: deleteUserByName
      parameters:
      - name: hardDelete
        in: query
        description: Hard delete the entity. (Default = `false`)
        schema:
          type: boolean
          default: false
      - name: name
        in: path
        description: Name of the user
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
        '404':
          description: User for instance {name} is not found
  /v1/users/{id}:
    get:
      tags:
      - Users
      summary: Get a user
      description: Get a user by `id`
      operationId: getUserByID
      parameters:
      - name: id
        in: path
        description: Id of the user
        required: true
        schema:
          type: string
          format: uuid
      - name: fields
        in: query
        description: Fields requested in the returned resource
        schema:
          type: string
          example: profile,roles,teams,follows,owns,domains,personas,defaultPersona,personaPreferences
      - name: include
        in: query
        description: Include all, deleted, or non-deleted entities.
        schema:
          type: string
          default: non-deleted
          enum:
          - all
          - deleted
          - non-deleted
      responses:
        '200':
          description: The user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
        '404':
          description: User for instance {id} is not found
    delete:
      tags:
      - Users
      summary: Delete a user
      description: Users can't be deleted but are soft-deleted.
      operationId: deleteUser
      parameters:
      - name: hardDelete
        in: query
        description: Hard delete the entity. (Default = `false`)
        schema:
          type: boolean
          default: false
      - name: id
        in: path
        description: Id of the user
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
        '404':
          description: User for instance {id} is not found
    patch:
      tags:
      - Users
      summary: Update a user
      description: Update an existing user using JsonPatch.
      externalDocs:
        description: JsonPatch RFC
        url: https://tools.ietf.org/html/rfc6902
      operationId: patchUser
      parameters:
      - name: id
        in: path
        description: Id of the user
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        description: JsonPatch with array of operations
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/JsonPatch'
            example: '[{op:remove, path:/a},{op:add, path: /b, value: val}]'
      responses:
        default:
          description: default response
          content:
            application/json: {}
  /v1/users/async/{id}:
    delete:
      tags:
      - Users
      summary: Asynchronously delete a user
      description: Users can't be deleted but are soft-deleted.
      operationId: deleteUserAsync
      parameters:
      - name: hardDelete
        in: query
        description: Hard delete the entity. (Default = `false`)
        schema:
          type: boolean
          default: false
      - name: id
        in: path
        description: Id of the user
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
        '404':
          description: User for instance {id} is not found
  /v1/users/export:
    get:
      tags:
      - Users
      summary: Export users in a team in CSV format
      operationId: exportUsers
      parameters:
      - name: team
        in: query
        description: Name of the team to under which the users are imported to
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Exported csv with user information
          content:
            application/json:
              schema:
                type: string
  /v1/users/exportAsync:
    get:
      tags:
      - Users
      summary: Export users in a team in CSV format
      operationId: exportUsers_1
      parameters:
      - name: team
        in: query
        description: Name of the team to under which the users are imported to
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Exported csv with user information
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CSVExportResponse'
  /v1/users/generateRandomPwd:
    get:
      tags:
      - Users
      summary: Generate a random password
      description: Generate a random password
      operationId: generateRandomPwd
      responses:
        '200':
          description: Random pwd
  /v1/users/generatePasswordResetLink:
    post:
      tags:
      - Users
      summary: Generate Password Reset Link
      description: Generate Password Reset Link
      operationId: generatePasswordResetLink
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmailRequest'
      responses:
        '200':
          description: 'The user '
        '400':
          description: Bad request
  /v1/users/generateToken/{id}:
    put:
      tags:
      - Users
      summary: Generate JWT Token for a Bot User
      description: Generate JWT Token for a Bot User.
      operationId: generateJWTTokenForBotUser
      parameters:
      - name: id
        in: path
        description: Id of the user
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenerateTokenRequest'
      responses:
        '200':
          description: 'The user '
          content:
            application/json:
              schema:
                type: string
                enum:
                - OneHour
                - '1'
                - '7'
                - '30'
                - '60'
                - '90'
                - Unlimited
        '400':
          description: Bad request
  /v1/users/generateToken:
    post:
      tags:
      - Users
      summary: Generate JWT Token for a User
      description: Generate JWT Token for a user. Users with EDIT permission can generate tokens for bot users, and users can generate their own tokens. Regular users cannot generate tokens for other regular users.
      operationId: generateJWTTokenForUser
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenerateTokenRequest'
      responses:
        '200':
          description: The JWT auth mechanism with the generated token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JWTAuthMechanism'
        '400':
          description: Bad request
        '403':
          description: Forbidden - User not authorized
  /v1/users/auth-mechanism/{id}:
    get:
      tags:
      - Users
      summary: Get Authentication Mechanism for a Bot User
      description: Get Authentication Mechanism for a Bot User.
      operationId: getAuthenticationMechanismBotUser
      parameters:
      - name: id
        in: path
        description: Id of the user
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: 'The user '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticationMechanism'
        '400':
          description: Bad request
  /v1/users/loggedInUser/groupTeams:
    get:
      tags:
      - Users
      summary: Get group type of teams for current logged in user
      description: Get the group type of teams of user who is authenticated and is currently logged in.
      operationId: getCurrentLoggedInUserGroupTeams
      responses:
        '200':
          description: The teams of type 'Group' that a user belongs to
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EntityReference'
        '404':
          description: User not found
  /v1/users/loggedInUser:
    get:
      tags:
      - Users
      summary: Get current logged in user
      description: Get the user who is authenticated and is currently logged in.
      operationId: getCurrentLoggedInUser
      parameters:
      - name: fields
        in: query
        description: Fields requested in the returned resource
        schema:
          type: string
          example: profile,roles,teams,follows,owns,domains,personas,defaultPersona,personaPreferences
      responses:
        '200':
          description: The user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
        '404':
          description: User not found
  /v1/users/token/{id}:
    get:
      tags:
      - Users
      summary: Get JWT Token for a Bot User
      description: Get JWT Token for a Bot User.
      operationId: getJWTTokenForBotUser
      parameters:
      - name: id
        in: path
        description: Id of the user
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: 'The user '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JWTAuthMechanism'
        '400':
          description: Bad request
  /v1/users/documentation/csv:
    get:
      tags:
      - Users
      summary: Get CSV documentation for user import/export
      operationId: getCsvDocumentation_2
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                type: string
  /v1/users/{id}/versions/{version}:
    get:
      tags:
      - Users
      summary: Get a version of the user
      description: Get a version of the user by given `id`
      operationId: getSpecificUserVersion
      parameters:
      - name: id
        in: path
        description: Id of the user
        required: true
        schema:
          type: string
          format: uuid
      - name: version
        in: path
        description: User version number in the form `major`.`minor`
        required: true
        schema:
          type: string
          example: 0.1 or 1.1
      responses:
        '200':
          description: user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
        '404':
          description: User for instance {id} and version {version} is not found
  /v1/users/import:
    put:
      tags:
      - Users
      summary: Import from CSV to create, and update teams.
      operationId: importTeams_1
      parameters:
      - name: team
        in: query
        description: Name of the team to under which the users are imported to
        required: true
        schema:
          type: string
      - name: dryRun
        in: query
        description: Dry-run when true is used for validating the CSV without really importing it. (default=true)
        schema:
          type: boolean
          default: true
      requestBody:
        content:
          text/plain:
            schema:
              type: string
      responses:
        '200':
          description: Import result
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CsvImportResult'
  /v1/users/importAsync:
    put:
      tags:
      - Users
      summary: Import from CSV to create, and update teams asynchronously.
      operationId: importTeamsAsync_1
      parameters:
      - name: team
        in: query
        description: Name of the team to under which the users are imported to
        required: true
        schema:
          type: string
      - name: dryRun
        in: query
        description: Dry-run when true is used for validating the CSV without really importing it. (default=true)
        schema:
          type: boolean
          default: true
      requestBody:
        content:
          text/plain:
            schema:
              type: string
      responses:
        '200':
          description: Import result
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CsvImportResult'
  /v1/users/history:
    get:
      tags:
      - Users
      summary: List all entity versions within a time range
      description: 'Get a paginated list of all entity versions within a given time range specified by `startTs` and `endTs` in milliseconds since epoch. '
      operationId: listAllEntityVersionsByTimestamp_60
      parameters:
      - name: startTs
        in: query
        description: Start timestamp in milliseconds since epoch
        required: true
        schema:
          type: integer
          format: int64
      - name: endTs
        in: query
        description: End timestamp in milliseconds since epoch
        required: true
        schema:
          type: integer
          format: int64
      - name: limit
        in: query
        description: Limit the number of entity returned (1 to 1000000, default = 10)
        schema:
          maximum: 500
          minimum: 1
          type: integer
          format: int32
          default: 10
      - name: before
        in: query
        description: Returns list of entity versions before this cursor
        schema:
          type: string
      - name: after
        in: query
        description: Returns list of entity versions after this cursor
        schema:
          type: string
      responses:
        '200':
          description: List of all versions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResultList'
  /v1/users/online:
    get:
      tags:
      - Users
      summary: List online users
      description: Get a list of users who have been active within the specified time window. Admin access only.
      operationId: listOnlineUsers
      parameters:
      - name: timeWindow
        in: query
        description: 'Time window in minutes (default: 5). Use 0 for all time. Examples: 0 (all time), 1 (last minute), 5 (last 5 minutes), 60 (last hour), 1440 (last day)'
        schema:
          minimum: 0
          type: integer
          format: int64
          example: 5
          default: 5
      - name: fields
        in: query
        description: Fields requested in the returned resource
        schema:
          type: string
          example: profile,roles,teams,follows,owns,domains,personas,defaultPersona,personaPreferences
      - name: limit
        in: query
        description: Limit the number users returned. (1 to 1000000, default = 10)
        schema:
          maximum: 1000000
          minimum: 0
          type: integer
          format: int32
          default: 10
      - name: before
        in: query
        description: Returns list of users before this cursor
        schema:
          type: string
      - name: after
        in: query
        description: Returns list of users after this cursor
        schema:
          type: string
      responses:
        '200':
          description: List of online users
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserList'
        '403':
          description: Forbidden - Admin access required
  /v1/users/{id}/assets:
    get:
      tags:
      - Users
      summary: List assets owned by this user or their teams
      description: Get a paginated list of assets that are owned by this user or any of the teams they belong to. Use limit and offset query params for pagination.
      operationId: listUserAssets
      parameters:
      - name: id
        in: path
        description: Id of the user
        required: true
        schema:
          type: string
          format: uuid
      - name: limit
        in: query
        description: Limit the number of assets returned. (1 to 1000, default = 100)
        schema:
          maximum: 1000
          minimum: 1
          type: integer
          format: int32
          default: 10
      - name: offset
        in: query
        description: Offset for pagination (default = 0)
        schema:
          minimum: 0
          type: integer
          format: int32
          default: 0
      responses:
        '200':
          description: List of assets
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityReference'
        '404':
          description: User for instance {id} is not found
  /v1/users/name/{name}/assets:
    get:
      tags:
      - Users
      summary: List assets owned by this user or their teams by name
      description: Get a paginated list of assets that are owned by this user or any of the teams they belong to. Use limit and offset query params for pagination.
      operationId: listUserAssetsByName
      parameters:
      - name: name
        in: path
        description: Name of the user
        required: true
        schema:
          type: string
      - name: limit
        in: query
        description: Limit the number of assets returned. (1 to 1000, default = 100)
        schema:
          maximum: 1000
          minimum: 1
          type: integer
          format: int32
          default: 10
      - name: offset
        in: query
        description: Offset for pagination (default = 0)
        schema:
          minimum: 0
          type: integer
          format: int32
          default: 0
      responses:
        '200':
          description: List of assets
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityReference'
        '404':
          description: User for instance {name} is not found
  /v1/users/{id}/versions:
    get:
      tags:
      - Users
      summary: List user versions
      description: Get a list of all the versions of a user identified by `id`
      operationId: listAllUserVersion
      parameters:
      - name: id
        in: path
        description: Id of the user
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: List of user versions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityHistory'
  /v1/users/login:
    post:
      tags:
      - Users
      summary: Login User with email (plain-text) and Password (encoded in base 64)
      description: Login User with email(plain-text) and Password (encoded in base 64)
      operationId: loginUserWithPwd
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LoginRequest'
      responses:
        '200':
          description: 'Returns the Jwt Token Response '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JwtResponse'
        '400':
          description: Bad request
  /v1/users/logout:
    post:
      tags:
      - Users
      summary: Logout a User(Only called for saml and basic Auth)
      description: Logout a User(Only called for saml and basic Auth)
      operationId: logoutUser
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LogoutRequest'
      responses:
        '200':
          description: 'The user '
        '400':
          description: Bad request
  /v1/users/refresh:
    post:
      tags:
      - Users
      summary: Provide access token to User with refresh token
      description: Provide access token to User with refresh token
      operationId: refreshToken
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TokenRefreshRequest'
      responses:
        '200':
          description: 'The user '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JwtResponse'
        '400':
          description: Bad request
  /v1/users/signup:
    post:
      tags:
      - Users
      summary: Register User
      description: Register a new User
      operationId: registerUser
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RegistrationRequest'
      responses:
        '200':
          description: 'The user '
        '400':
          description: Bad request
  /v1/users/resendRegistrationToken:
    put:
      tags:
      - Users
      summary: Resend Registration Token
      description: Resend Registration Token
      operationId: resendRegistrationToken
      parameters:
      - name: user
        in: query
        description: Token sent for Email Confirmation Earlier
        schema:
          type: string
      responses:
        '200':
          description: 'The user '
        '400':
          description: Bad request
  /v1/users/password/reset:
    post:
      tags:
      - Users
      summary: Reset Password For User
      description: Reset User Password
      operationId: resetUserPassword
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PasswordResetRequest'
      responses:
        '200':
          description: 'The user '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
        '400':
          description: Bad request
  /v1/users/restore:
    put:
      tags:
      - Users
      summary: Restore a soft deleted User.
      description: Restore a soft deleted User.
      operationId: restore_47
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RestoreEntity'
      responses:
        '200':
          description: 'Successfully restored the User '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
  /v1/users/security/token/revoke:
    put:
      tags:
      - Users
      summary: Revoke personal access token to User
      description: Revoke personal access token
      operationId: revokePersonalAccessToken
      parameters:
      - name: username
        in: query
        description: Username in case admin is revoking. (Default = `false`)
        schema:
          type: string
      - name: removeAll
        in: query
        description: Remove All tokens of the user. (Default = `false`)
        schema:
          type: boolean
          default: false
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RevokePersonalTokenRequest'
      responses:
        '200':
          description: 'The Personal access token '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PersonalAccessTokenList'
        '400':
          description: Bad request
  /v1/users/revokeToken:
    put:
      tags:
      - Users
      summary: Revoke JWT Token for a Bot User
      description: Revoke JWT Token for a Bot User.
      operationId: revokeJWTTokenForBotUser
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RevokeTokenRequest'
      responses:
        '200':
          description: 'The user '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JWTAuthMechanism'
        '400':
          description: Bad request
components:
  schemas:
    TagLabelRecognizerMetadata:
      required:
      - recognizerId
      - recognizerName
      - score
      type: object
      properties:
        recognizerId:
          type: string
          format: uuid
        recognizerName:
          type: string
        score:
          type: number
          format: double
        target:
          type: string
          enum:
          - content
          - column_name
     

# --- truncated at 32 KB (53 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/openmetadata/refs/heads/main/openapi/openmetadata-users-api-openapi.yml