OpenMetadata Teams API

A `Team` is a group of zero or more users and/or other teams. Teams can own zero or more data assets. Hierarchical teams are supported `Organization` -> `BusinessUnit` -> `Division` -> `Department`.

Operations 27

PUT /v1/teams/{name}/assets/add Bulk Add Assets #
PUT /v1/teams/{name}/assets/remove Bulk Remove Assets #
GET /v1/teams List teams #
PUT /v1/teams Update team #
POST /v1/teams Create a team #
GET /v1/teams/name/{name} Get a team by name #
DELETE /v1/teams/name/{name} Delete a team by name #
GET /v1/teams/{id} Get a team by id #
DELETE /v1/teams/{id} Delete a team by id #
PATCH /v1/teams/{id} Update a team #
DELETE /v1/teams/async/{id} Asynchronously delete a team by id #
DELETE /v1/teams/{teamId}/users/{userId} Remove a user from a team #
GET /v1/teams/name/{name}/export Export teams in CSV format #
GET /v1/teams/name/{name}/exportAsync Export teams in CSV format #
GET /v1/teams/assets/counts Get all teams with their asset counts #
GET /v1/teams/documentation/csv Get CSV documentation for team import/export #
GET /v1/teams/{id}/versions/{version} Get a version of the team #
PUT /v1/teams/name/{name}/import Import from CSV to create, and update teams. #
PUT /v1/teams/name/{name}/importAsync Import from CSV to create, and update teams asynchronously. #
GET /v1/teams/history List all entity versions within a time range #
GET /v1/teams/hierarchy List teams with hierarchy #
GET /v1/teams/{id}/assets List assets owned by this team #
GET /v1/teams/name/{fqn}/assets List assets owned by this team by fully qualified name #
GET /v1/teams/{id}/versions List team versions #
PATCH /v1/teams/name/{fqn} Update a team using name. #
PUT /v1/teams/restore Restore a soft deleted team #
PUT /v1/teams/{teamId}/users Update team users #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/openmetadata-teams-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

openmetadata-teams-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: OpenMetadata APIs Agent Executions Teams 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: Teams
  description: A `Team` is a group of zero or more users and/or other teams. Teams can own zero or more data assets. Hierarchical teams are supported `Organization` -> `BusinessUnit` -> `Division` -> `Department`.
paths:
  /v1/teams/{name}/assets/add:
    put:
      tags:
      - Teams
      summary: Bulk Add Assets
      description: Bulk Add Assets
      operationId: bulkAddAssets_2
      parameters:
      - name: name
        in: path
        description: Name of the Team
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkAssets'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkOperationResult'
        '404':
          description: model for instance {id} is not found
  /v1/teams/{name}/assets/remove:
    put:
      tags:
      - Teams
      summary: Bulk Remove Assets
      description: Bulk Remove Assets
      operationId: bulkRemoveAssets_2
      parameters:
      - name: name
        in: path
        description: Name of the Team
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkAssets'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChangeEvent'
        '404':
          description: model for instance {id} is not found
  /v1/teams:
    get:
      tags:
      - Teams
      summary: List teams
      description: Get a list of teams. 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: listTeams
      parameters:
      - name: fields
        in: query
        description: Fields requested in the returned resource
        schema:
          type: string
          example: owners,profile,users,owns,defaultRoles,defaultPersona,parents,children,policies,userCount,childrenCount,domains
      - name: limit
        in: query
        description: Limit the number of teams 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 teams before this cursor
        schema:
          type: string
      - name: after
        in: query
        description: Returns list of teams after this cursor
        schema:
          type: string
      - name: parentTeam
        in: query
        description: Filter the results by parent team name
        schema:
          type: string
      - name: isJoinable
        in: query
        description: Filter the results by whether the team can be joined by any user or not
        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: List of teams
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TeamList'
    put:
      tags:
      - Teams
      summary: Update team
      description: Create or Update a team.
      operationId: createOrUpdateTeam
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTeam'
      responses:
        '200':
          description: 'The team '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Team'
        '400':
          description: Bad request
    post:
      tags:
      - Teams
      summary: Create a team
      description: Create a new team.
      operationId: createTeam
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTeam'
      responses:
        '200':
          description: The team
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Team'
        '400':
          description: Bad request
  /v1/teams/name/{name}:
    get:
      tags:
      - Teams
      summary: Get a team by name
      description: Get a team by `name`.
      operationId: getTeamByFQN
      parameters:
      - name: name
        in: path
        description: Name of the team
        required: true
        schema:
          type: string
      - name: fields
        in: query
        description: Fields requested in the returned resource
        schema:
          type: string
          example: owners,profile,users,owns,defaultRoles,defaultPersona,parents,children,policies,userCount,childrenCount,domains
      - 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 team
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Team'
        '404':
          description: Team for instance {name} is not found
    delete:
      tags:
      - Teams
      summary: Delete a team by name
      description: Delete a team by given `name`.
      operationId: deleteTeamByName
      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 team
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
        '404':
          description: Team for instance {name} is not found
  /v1/teams/{id}:
    get:
      tags:
      - Teams
      summary: Get a team by id
      description: Get a team by `id`.
      operationId: getTeamByID
      parameters:
      - name: id
        in: path
        description: Id of the team
        required: true
        schema:
          type: string
          format: uuid
      - name: fields
        in: query
        description: Fields requested in the returned resource
        schema:
          type: string
          example: owners,profile,users,owns,defaultRoles,defaultPersona,parents,children,policies,userCount,childrenCount,domains
      - name: include
        in: query
        description: Include all, deleted, or non-deleted entities.
        schema:
          type: string
          default: non-deleted
          enum:
          - all
          - deleted
          - non-deleted
      - name: includeRelations
        in: query
        description: 'Per-relation include control. Format: field:value,field2:value2. Example: owners:non-deleted,followers:all. Valid values: all, deleted, non-deleted. If not specified for a field, uses the entity''s include value.'
        schema:
          type: string
          example: owners:non-deleted,followers:all
      responses:
        '200':
          description: The team
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Team'
        '404':
          description: Team for instance {id} is not found
    delete:
      tags:
      - Teams
      summary: Delete a team by id
      description: Delete a team by given `id`.
      operationId: deleteTeam
      parameters:
      - name: recursive
        in: query
        description: Recursively delete this team and it's children. (Default `false`)
        schema:
          type: boolean
          default: false
      - name: hardDelete
        in: query
        description: Hard delete the entity. (Default = `false`)
        schema:
          type: boolean
          default: false
      - name: id
        in: path
        description: Id of the team
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
        '404':
          description: Team for instance {id} is not found
    patch:
      tags:
      - Teams
      summary: Update a team
      description: Update an existing team with JsonPatch.
      externalDocs:
        description: JsonPatch RFC
        url: https://tools.ietf.org/html/rfc6902
      operationId: patchTeam_1
      parameters:
      - name: id
        in: path
        description: Id of the team
        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/teams/async/{id}:
    delete:
      tags:
      - Teams
      summary: Asynchronously delete a team by id
      description: Asynchronously delete a team by given `id`.
      operationId: deleteTeamAsync
      parameters:
      - name: recursive
        in: query
        description: Recursively delete this team and it's children. (Default `false`)
        schema:
          type: boolean
          default: false
      - name: hardDelete
        in: query
        description: Hard delete the entity. (Default = `false`)
        schema:
          type: boolean
          default: false
      - name: id
        in: path
        description: Id of the team
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
        '404':
          description: Team for instance {id} is not found
  /v1/teams/{teamId}/users/{userId}:
    delete:
      tags:
      - Teams
      summary: Remove a user from a team
      description: Remove the user identified by `userId` from the team identified by `teamId`.
      operationId: deleteTeamUser
      parameters:
      - name: teamId
        in: path
        description: Id of the team
        required: true
        schema:
          type: string
          format: uuid
      - name: userId
        in: path
        description: Id of the user being removed
        required: true
        schema:
          type: string
      responses:
        '200':
          description: User removed from team
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChangeEvent'
        '404':
          description: Team or user not found
  /v1/teams/name/{name}/export:
    get:
      tags:
      - Teams
      summary: Export teams in CSV format
      operationId: exportTeams
      parameters:
      - name: name
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Exported csv with teams information
          content:
            application/json:
              schema:
                type: string
  /v1/teams/name/{name}/exportAsync:
    get:
      tags:
      - Teams
      summary: Export teams in CSV format
      operationId: exportTeams_1
      parameters:
      - name: name
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Exported csv with teams information
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CSVExportResponse'
  /v1/teams/assets/counts:
    get:
      tags:
      - Teams
      summary: Get all teams with their asset counts
      description: Get a map of team fully qualified names to their asset counts using search aggregation.
      operationId: getAllTeamsWithAssetsCount
      responses:
        '200':
          description: Map of team FQN to asset count
          content:
            application/json: {}
  /v1/teams/documentation/csv:
    get:
      tags:
      - Teams
      summary: Get CSV documentation for team import/export
      operationId: getCsvDocumentation_1
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                type: string
  /v1/teams/{id}/versions/{version}:
    get:
      tags:
      - Teams
      summary: Get a version of the team
      description: Get a version of the team by given `id`
      operationId: getSpecificTeamVersion
      parameters:
      - name: id
        in: path
        description: Id of the team
        required: true
        schema:
          type: string
          format: uuid
      - name: version
        in: path
        description: Team version number in the form `major`.`minor`
        required: true
        schema:
          type: string
          example: 0.1 or 1.1
      responses:
        '200':
          description: team
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Team'
        '404':
          description: Team for instance {id} and version {version} is not found
  /v1/teams/name/{name}/import:
    put:
      tags:
      - Teams
      summary: Import from CSV to create, and update teams.
      operationId: importTeams
      parameters:
      - name: name
        in: path
        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/teams/name/{name}/importAsync:
    put:
      tags:
      - Teams
      summary: Import from CSV to create, and update teams asynchronously.
      operationId: importTeamsAsync
      parameters:
      - name: name
        in: path
        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 initiated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CsvImportResult'
  /v1/teams/history:
    get:
      tags:
      - Teams
      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_59
      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/teams/hierarchy:
    get:
      tags:
      - Teams
      summary: List teams with hierarchy
      description: Get a list of teams with hierarchy.
      operationId: listTeamsHierarchy
      parameters:
      - name: limit
        in: query
        description: Limit the number of teams returned. (1 to 1000000, default = 10)
        schema:
          maximum: 1000000
          minimum: 1000
          type: integer
          format: int32
          default: 10000
      - name: isJoinable
        in: query
        description: Filter the results by whether the team can be joined by any user or not
        schema:
          type: boolean
      responses:
        '200':
          description: List of teams with hierarchy
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TeamList'
  /v1/teams/{id}/assets:
    get:
      tags:
      - Teams
      summary: List assets owned by this team
      description: Get a paginated list of assets that are owned by this team. Use limit and offset query params for pagination.
      operationId: listTeamAssets
      parameters:
      - name: id
        in: path
        description: Id of the team
        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: Team for instance {id} is not found
  /v1/teams/name/{fqn}/assets:
    get:
      tags:
      - Teams
      summary: List assets owned by this team by fully qualified name
      description: Get a paginated list of assets that are owned by this team. Use limit and offset query params for pagination.
      operationId: listTeamAssetsByName
      parameters:
      - name: fqn
        in: path
        description: Fully qualified name of the team
        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: Team for instance {fqn} is not found
  /v1/teams/{id}/versions:
    get:
      tags:
      - Teams
      summary: List team versions
      description: Get a list of all the versions of a team identified by `id`
      operationId: listAllTeamVersion
      parameters:
      - name: id
        in: path
        description: Id of the team
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: List of team versions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityHistory'
  /v1/teams/name/{fqn}:
    patch:
      tags:
      - Teams
      summary: Update a team using name.
      description: Update an existing team with JsonPatch.
      externalDocs:
        description: JsonPatch RFC
        url: https://tools.ietf.org/html/rfc6902
      operationId: patchTeam
      parameters:
      - name: fqn
        in: path
        description: Name of the team
        required: true
        schema:
          type: string
      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/teams/restore:
    put:
      tags:
      - Teams
      summary: Restore a soft deleted team
      description: Restore a soft deleted team.
      operationId: restore_46
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RestoreEntity'
      responses:
        '200':
          description: 'Successfully restored the Team '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Team'
  /v1/teams/{teamId}/users:
    put:
      tags:
      - Teams
      summary: Update team users
      description: Update the list of users for a team. Replaces existing users with the provided list.
      operationId: updateTeamUsers
      parameters:
      - name: teamId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/EntityReference'
      responses:
        '200':
          description: Updated team users
          content:
            application/json: {}
        '404':
          description: Team not found
components:
  schemas:
    EntityHistory:
      required:
      - entityType
      - versions
      type: object
      properties:
        entityType:
          type: string
        versions:
          type: array
          items:
            type: object
    AccessDetails:
      required:
      - timestamp
      type: object
      properties:
        timestamp:
          type: integer
          format: int64
        accessedBy:
          $ref: '#/components/schemas/EntityReference'
        accessedByAProcess:
          type: string
    SubscriptionConfig:
      type: object
      properties:
        slack:
          $ref: '#/components/schemas/Webhook'
        msTeams:
          $ref: '#/components/schemas/Webhook'
        gChat:
          $ref: '#/components/schemas/Webhook'
        generic:
          $ref: '#/components/schemas/Webhook'
    UsageDetails:
      required:
      - dailyStats
      - date
      type: object
      properties:
        dailyStats:
          $ref: '#/components/schemas/UsageStats'
        weeklyStats:
          $ref: '#/components/schemas/UsageStats'
        monthlyStats:
          $ref: '#/components/schemas/UsageStats'
        date:
          type: string
    JsonPatch:
      type: object
    Profile:
      type: object
      properties:
        images:
          $ref: '#/components/schemas/ImageList'
        subscription:
          $ref: '#/components/schemas/SubscriptionConfig'
    CSVExportResponse:
      type: object
      properties:
        jobId:
          type: string
        message:
          type: string
    Team:
      required:
      - id
      - name
      type: object
      properties:
        id:
          type: string
          format: uuid
        teamType:
          type: string
          enum:
          - Group
          - Department
          - Division
          - BusinessUnit
          - Organization
        name:
          maxLength: 256
          minLength: 1
          pattern: ^((?!::).)*$
          type: string
        email:
          maxLength: 127
          minLength: 6
          pattern: ^[\S.!#$%&’*+/=?^_`{|}~-]+@\S+\.\S+$
          type: string
        fullyQualifiedName:
          maxLength: 3072
          minLength: 1
          type: string
        displayName:
          type: string
        externalId:
          type: string
        description:
          type: string
        version:
          type: number
          format: double
        updatedAt:
          type: integer
          format: int64
        updatedBy:
          type: string
        impersonatedBy:
          type: string
        href:
          type: string
          format: uri
        profile:
          $ref: '#/components/schemas/Profile'
        parents:
          type: array
          items:
            $ref: '#/components/schemas/EntityReference'
        children:
          type: array
          items:
            $ref: '#/components/schemas/EntityReference'
        users:
          type: array
          items:
            $ref: '#/components/schemas/EntityReference'
        childrenCount:
          type: integer
          format: int32
        userCount:
          type: integer
          format: int32
        owns:
          type: array
          items:
            $ref: '#/components/schemas/EntityReference'
        owners:
          type: array
          items:
            $ref: '#/components/schemas/EntityReference'
        isJoinable:
          type: boolean
        changeDescription:
          $ref: '#/components/schemas/ChangeDescription'
        incrementalChangeDescription:
          $ref: '#/components/schemas/ChangeDescription'
        deleted:
          type: boolean
        defaultRoles:
          type: array
          items:
            $ref: '#/components/schemas/EntityReference'
        inheritedRoles:
          type: array
          items:
            $ref: '#/components/schemas/EntityReference'
        defaultPersona:
          $ref: '#/components/schemas/EntityReference'
        policies:
          type: array
          items:
            $ref: '#/components/schemas/EntityReference'
        domains:
          type: array
          items:
            $ref: '#/components/schemas/EntityReference'
        provider:
          type: string
          enum:
          - system
          - user
          - automation
        extension:
          type: object
        service:
          $ref: '#/components/schemas/EntityReference'
        style:
          $ref: '#/components/schemas/Style'
        tags:
          type: array
          items:
            $ref: '#/components/schemas/TagLabel'
        followers:
          type: array
          items:
            $ref: '#/components/schemas/EntityReference'
        experts:
          type: array
          items:
            $ref: '#/components/schemas/EntityReference'
        reviewers:
          type: array
          items:
            $ref: '#/components/schemas/EntityReference'
        dataProducts:
          type: array
          items:
            $ref: '#/components/schemas/EntityReference'
        dataContract:
          $ref: '#/components/schemas/EntityReference'
        usageSummary:
          $ref: '#/components/schemas/UsageDetails'
        entityStatus:
          type: string
          enum:
          - Draft
          - In Review
          - Approved
          - Archived
          - Deprecated
          - Rejected
          - Unprocessed
        votes:
          $ref: '#/components/schemas/Votes'
        lifeCycle:
          $ref: '#/components/schemas/LifeCycle'
        certification:
          $ref: '#/components/schemas/AssetCertification'
    TeamList:
      required:
      - data
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Team'
        paging:
          $ref: '#/components/schemas/Paging'
        errors:
          type: array
          items:
            $ref: '#/components/schemas/EntityError'
        warningsCount:
          type: integer
          format: int32
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/EntityError'
    AssetCertification:
      required:
      - appliedDate
      - expiryDate
      - tagLabel
      type: object
      properties:
        tagLabel:
          $ref: '#/components/schemas/TagLabel'
        appliedDate:
          type: integer
          format: int64
        expiryDate:
          type: integer
          format: int64
    CsvImportResult:
      type: object
      properties:
        dryRun:
          type: boolean
        status:
          type: string
          enum:
          - success
          - failure
          - aborted
          - partialSuccess
          - running
        abortReason:
          type: string
        numberOfRowsProcessed:
          minimum: 0
          type: integer
          format: int32
        numberOfRowsPassed:
          minimum: 0
          type: integer
          format: int32
        numberOfRowsFailed:
          minimum: 0
          type: integer
          format: int32
        importResultsCsv:
          type: string
    PatternMatch:
      required:
      - name
      - score
      type: object
      properties:
        name:
          type: string
        regex:
          type: string
        score:
          type: number
          format: double
    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
        patterns:
          type: array
          items:
            $ref: '#/components/schemas/PatternMatch'
    Webhook:
      type: object
      properties:
        receivers:
          uniqueItems: true
          type: array
          items:
            type: string
        endpoint:
          type: string
          format: uri
        headers:
          type: object
          additionalProperties:
            type: string
        queryParams:
          type: object
          additionalProperties:
            type: string
        httpMethod:
          type: string
          enum:
          - POST
          - PUT
        sendToAdmins:
          type: boolean
        sendToOwners:
          type: boolean
        authType:
          type: object
        sendToFollowers:
          type: boolean
    UsageStats:
      required:
      - count
      type: object
      properties:
        count:
          minimum: 0
          type: integer
          format: int32
        percentileRank:
          type: number
          format: double
    Style:
      type: object
      properties:
        color:
          type: string
        iconURL:
          type: string
        coverImage:
          $ref: '#/components/schemas/CoverImage'
    BulkAssets:
      type: object
      properties:
        assets:
          type: array
          items:
            $ref: '#/components/schemas/EntityReference'
        dryRun:
          type: boolean
    Votes:
      type: object
      properties:
        upVotes:
          type: integer
          format: int32
        downVotes:
          ty

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