Elastic.io

elastic.io iPaaS platform gives you the tools for integration visualisation, intuitive data mapping and easy troubleshooting, so that you can generate more value from your data with less distraction from your core business.

OpenAPI Specification

elastic-io-platform-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: elastic.io Platform REST API
  description: >-
    The elastic.io Platform REST API v2 provides programmatic access to the
    elastic.io iPaaS platform. It allows you to manage integration flows,
    workspaces, contracts, credentials, components, recipes, users, and other
    platform resources. The API follows the JSON:API specification and uses
    Bearer token authentication.
  version: 2.0.0
  contact:
    name: elastic.io
    url: https://www.elastic.io/
  license:
    name: Proprietary
    url: https://www.elastic.io/
  termsOfService: https://www.elastic.io/
servers:
  - url: https://api.elastic.io/v2
    description: elastic.io Platform API v2
security:
  - bearerAuth: []
tags:
  - name: Agents
    description: Manage on-premises integration agents
  - name: Auth Clients
    description: Manage OAuth authentication clients
  - name: Auth Secrets
    description: Manage authentication secrets
  - name: Components
    description: Manage integration components
  - name: Contracts
    description: Manage contracts (tenants)
  - name: Credentials
    description: Manage authentication credentials for components
  - name: Data Samples
    description: Manage data samples for component steps
  - name: Executions
    description: Manage flow executions and logs
  - name: Flow Drafts
    description: Manage flow drafts before publishing
  - name: Flow Versions
    description: Manage flow version history
  - name: Flows
    description: Manage integration flows
  - name: Logs
    description: Access execution and platform logs
  - name: Quota Usages
    description: View quota usage statistics
  - name: Recipes
    description: Manage reusable integration recipes
  - name: Roles
    description: Manage user roles and permissions
  - name: Snapshots
    description: Manage flow step snapshots
  - name: SSH Keys
    description: Manage SSH keys for component repositories
  - name: Subscriptions
    description: Manage topic subscriptions
  - name: Teams
    description: Manage developer teams
  - name: Topics
    description: Manage pub/sub topics
  - name: Users
    description: Manage platform users
  - name: Workspaces
    description: Manage workspaces within contracts
paths:
  /flows:
    get:
      operationId: listFlows
      summary: Elastic.io List flows
      description: Retrieve a list of integration flows accessible to the user.
      tags:
        - Flows
      parameters:
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageNumber'
        - $ref: '#/components/parameters/WorkspaceFilter'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FlowListResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createFlow
      summary: Elastic.io Create a flow
      description: Create a new integration flow in a workspace.
      tags:
        - Flows
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FlowCreateRequest'
      responses:
        '201':
          description: Flow created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FlowResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '409':
          $ref: '#/components/responses/Conflict'
  /flows/{flow_id}:
    get:
      operationId: getFlow
      summary: Elastic.io Get a flow
      description: Retrieve details of a specific integration flow.
      tags:
        - Flows
      parameters:
        - $ref: '#/components/parameters/FlowId'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FlowResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    patch:
      operationId: updateFlow
      summary: Elastic.io Update a flow
      description: Update an existing integration flow.
      tags:
        - Flows
      parameters:
        - $ref: '#/components/parameters/FlowId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FlowUpdateRequest'
      responses:
        '200':
          description: Flow updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FlowResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteFlow
      summary: Elastic.io Delete a flow
      description: Delete an integration flow.
      tags:
        - Flows
      parameters:
        - $ref: '#/components/parameters/FlowId'
      responses:
        '204':
          description: Flow deleted successfully
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /flows/{flow_id}/start:
    post:
      operationId: startFlow
      summary: Elastic.io Start a flow
      description: Start an integration flow to begin processing data.
      tags:
        - Flows
      parameters:
        - $ref: '#/components/parameters/FlowId'
      responses:
        '200':
          description: Flow started successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FlowResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /flows/{flow_id}/stop:
    post:
      operationId: stopFlow
      summary: Elastic.io Stop a flow
      description: Stop a running integration flow.
      tags:
        - Flows
      parameters:
        - $ref: '#/components/parameters/FlowId'
      responses:
        '200':
          description: Flow stopped successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FlowResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /flows/{flow_id}/run-now:
    post:
      operationId: runFlowNow
      summary: Elastic.io Run a flow on demand
      description: Trigger an on-demand execution of an integration flow.
      tags:
        - Flows
      parameters:
        - $ref: '#/components/parameters/FlowId'
      responses:
        '200':
          description: Flow execution triggered
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FlowResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /flow-drafts:
    get:
      operationId: listFlowDrafts
      summary: Elastic.io List flow drafts
      description: Retrieve a list of flow drafts.
      tags:
        - Flow Drafts
      parameters:
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageNumber'
        - $ref: '#/components/parameters/WorkspaceFilter'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FlowDraftListResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createFlowDraft
      summary: Elastic.io Create a flow draft
      description: Create a new flow draft for editing before publishing.
      tags:
        - Flow Drafts
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FlowDraftCreateRequest'
      responses:
        '201':
          description: Flow draft created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FlowDraftResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /flow-drafts/{flow_draft_id}:
    get:
      operationId: getFlowDraft
      summary: Elastic.io Get a flow draft
      description: Retrieve details of a specific flow draft.
      tags:
        - Flow Drafts
      parameters:
        - $ref: '#/components/parameters/FlowDraftId'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FlowDraftResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    patch:
      operationId: updateFlowDraft
      summary: Elastic.io Update a flow draft
      description: Update an existing flow draft.
      tags:
        - Flow Drafts
      parameters:
        - $ref: '#/components/parameters/FlowDraftId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FlowDraftUpdateRequest'
      responses:
        '200':
          description: Flow draft updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FlowDraftResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteFlowDraft
      summary: Elastic.io Delete a flow draft
      description: Delete a flow draft.
      tags:
        - Flow Drafts
      parameters:
        - $ref: '#/components/parameters/FlowDraftId'
      responses:
        '204':
          description: Flow draft deleted successfully
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /flow-versions/{flow_version_id}:
    get:
      operationId: getFlowVersion
      summary: Elastic.io Get a flow version
      description: Retrieve a specific version of a flow.
      tags:
        - Flow Versions
      parameters:
        - name: flow_version_id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FlowVersionResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /workspaces:
    get:
      operationId: listWorkspaces
      summary: Elastic.io List workspaces
      description: Retrieve a list of workspaces accessible to the user.
      tags:
        - Workspaces
      parameters:
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageNumber'
        - name: filter[contract_id]
          in: query
          description: Filter by contract ID
          schema:
            type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkspaceListResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createWorkspace
      summary: Elastic.io Create a workspace
      description: Create a new workspace within a contract.
      tags:
        - Workspaces
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkspaceCreateRequest'
      responses:
        '201':
          description: Workspace created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkspaceResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /workspaces/{workspace_id}:
    get:
      operationId: getWorkspace
      summary: Elastic.io Get a workspace
      description: Retrieve details of a specific workspace.
      tags:
        - Workspaces
      parameters:
        - $ref: '#/components/parameters/WorkspaceId'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkspaceResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    patch:
      operationId: updateWorkspace
      summary: Elastic.io Update a workspace
      description: Update an existing workspace.
      tags:
        - Workspaces
      parameters:
        - $ref: '#/components/parameters/WorkspaceId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkspaceUpdateRequest'
      responses:
        '200':
          description: Workspace updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkspaceResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteWorkspace
      summary: Elastic.io Delete a workspace
      description: Delete a workspace.
      tags:
        - Workspaces
      parameters:
        - $ref: '#/components/parameters/WorkspaceId'
      responses:
        '204':
          description: Workspace deleted successfully
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /workspaces/{workspace_id}/members:
    get:
      operationId: listWorkspaceMembers
      summary: Elastic.io List workspace members
      description: Retrieve the list of members in a workspace.
      tags:
        - Workspaces
      parameters:
        - $ref: '#/components/parameters/WorkspaceId'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MemberListResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: addWorkspaceMember
      summary: Elastic.io Add a workspace member
      description: Add a user as a member of a workspace.
      tags:
        - Workspaces
      parameters:
        - $ref: '#/components/parameters/WorkspaceId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MemberCreateRequest'
      responses:
        '200':
          description: Member added successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MemberResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /workspaces/{workspace_id}/members/{user_id}:
    delete:
      operationId: removeWorkspaceMember
      summary: Elastic.io Remove a workspace member
      description: Remove a member from a workspace.
      tags:
        - Workspaces
      parameters:
        - $ref: '#/components/parameters/WorkspaceId'
        - $ref: '#/components/parameters/UserId'
      responses:
        '204':
          description: Member removed successfully
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /contracts:
    get:
      operationId: listContracts
      summary: Elastic.io List contracts
      description: Retrieve a list of contracts accessible to the user.
      tags:
        - Contracts
      parameters:
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageNumber'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContractListResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /contracts/{contract_id}:
    get:
      operationId: getContract
      summary: Elastic.io Get a contract
      description: Retrieve details of a specific contract.
      tags:
        - Contracts
      parameters:
        - $ref: '#/components/parameters/ContractId'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContractResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    patch:
      operationId: updateContract
      summary: Elastic.io Update a contract
      description: Update contract settings and attributes.
      tags:
        - Contracts
      parameters:
        - $ref: '#/components/parameters/ContractId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContractUpdateRequest'
      responses:
        '200':
          description: Contract updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContractResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /contracts/{contract_id}/members:
    get:
      operationId: listContractMembers
      summary: Elastic.io List contract members
      description: Retrieve the list of members in a contract.
      tags:
        - Contracts
      parameters:
        - $ref: '#/components/parameters/ContractId'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MemberListResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: addContractMember
      summary: Elastic.io Add a contract member
      description: Add a user as a member of a contract.
      tags:
        - Contracts
      parameters:
        - $ref: '#/components/parameters/ContractId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MemberCreateRequest'
      responses:
        '200':
          description: Member added successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MemberResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /credentials:
    get:
      operationId: listCredentials
      summary: Elastic.io List credentials
      description: Retrieve a list of credentials for the current workspace.
      tags:
        - Credentials
      parameters:
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageNumber'
        - $ref: '#/components/parameters/WorkspaceFilter'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CredentialListResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createCredential
      summary: Elastic.io Create a credential
      description: Create a new credential for authenticating with external services.
      tags:
        - Credentials
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CredentialCreateRequest'
      responses:
        '201':
          description: Credential created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CredentialResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /credentials/{credential_id}:
    get:
      operationId: getCredential
      summary: Elastic.io Get a credential
      description: Retrieve details of a specific credential.
      tags:
        - Credentials
      parameters:
        - $ref: '#/components/parameters/CredentialId'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CredentialResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    patch:
      operationId: updateCredential
      summary: Elastic.io Update a credential
      description: Update an existing credential.
      tags:
        - Credentials
      parameters:
        - $ref: '#/components/parameters/CredentialId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CredentialUpdateRequest'
      responses:
        '200':
          description: Credential updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CredentialResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteCredential
      summary: Elastic.io Delete a credential
      description: Delete a credential.
      tags:
        - Credentials
      parameters:
        - $ref: '#/components/parameters/CredentialId'
      responses:
        '204':
          description: Credential deleted successfully
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /components:
    get:
      operationId: listComponents
      summary: Elastic.io List components
      description: Retrieve a list of available integration components.
      tags:
        - Components
      parameters:
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageNumber'
        - name: filter[contract_id]
          in: query
          description: Filter by contract ID
          schema:
            type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ComponentListResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /components/{component_id}:
    get:
      operationId: getComponent
      summary: Elastic.io Get a component
      description: Retrieve details of a specific component.
      tags:
        - Components
      parameters:
        - $ref: '#/components/parameters/ComponentId'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ComponentResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    patch:
      operationId: updateComponent
      summary: Elastic.io Update a component
      description: Update component metadata.
      tags:
        - Components
      parameters:
        - $ref: '#/components/parameters/ComponentId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ComponentUpdateRequest'
      responses:
        '200':
          description: Component updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ComponentResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteComponent
      summary: Elastic.io Delete a component
      description: Delete a component.
      tags:
        - Components
      parameters:
        - $ref: '#/components/parameters/ComponentId'
      responses:
        '204':
          description: Component deleted successfully
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /recipes:
    get:
      operationId: listRecipes
      summary: Elastic.io List recipes
      description: Retrieve a list of available integration recipes.
      tags:
        - Recipes
      parameters:
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageNumber'
        - name: filter[contract_id]
          in: query
          description: Filter by contract ID
          schema:
            type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecipeListResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createRecipe
      summary: Elastic.io Create a recipe
      description: Create a new integration recipe.
      tags:
        - Recipes
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RecipeCreateRequest'
      responses:
        '201':
          description: Recipe created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecipeResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /recipes/{recipe_id}:
    get:
      operationId: getRecipe
      summary: Elastic.io Get a recipe
      description: Retrieve details of a specific recipe.
      tags:
        - Recipes
      parameters:
        - $ref: '#/components/parameters/RecipeId'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecipeResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    patch:
      operationId: updateRecipe
      summary: Elastic.io Update a recipe
      description: Update an existing recipe.
      tags:
        - Recipes
      parameters:
        - $ref: '#/components/parameters/RecipeId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RecipeUpdateRequest'
      responses:
        '200':
          description: Recipe updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecipeResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteRecipe
      summary: Elastic.io Delete a recipe
      description: Delete a recipe.
      tags:
        - Recipes
      parameters:
        - $ref: '#/components/parameters/RecipeId'
      responses:
        '204':
          description: Recipe deleted successfully
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /recipes/{recipe_id}/visibility:
    patch:
      operationId: updateRecipeVisibility
      summary: Elastic.io Update recipe visibility
      description: Update the visibility settings of a recipe.
      tags:
        - Recipes
      parameters:
        - $ref: '#/components/parameters/RecipeId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  type: object
                  properties:
                    visibility:
                      type: string
                      enum:
                        - workspace
                        - contract
                        - tenant
                        - global
      responses:
        '200':
          description: Visibility updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecipeResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /users/me:
    get:
      operationId: getCurrentUser
      summary: Elastic.io Get current user
      description: Retrieve the profile of the currently authenticated user.
      tags:
        - Users
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
    patch:
      operationId: updateCurrentUser
      summary: Elastic.io Update current user
      description: Update the profile of the currently authenticated user.
      tags:
        - Users
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserUpdateRequest'
      responses:
        '200':
          description: User updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /users/{user_id}:
    get:
      operationId: getUser
      summary: Elastic.io Get a user
      description: Retrieve the profile of a specific user.
      tags:
        - Users
      parameters:
        - $ref: '#/components/parameters/UserId'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /auth-clients:
    get:
      operationId: listAuthClients
      summary: Elastic.io List auth clients
      description: Retrieve a list of OAuth authentication clients.
      tags:
        - Auth Clients
      parameters:
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/PageNumber'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthClientListResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createAuthClient
      summary: Elastic.io Create an auth client
      description: Create a new OAuth authentication client.
      tags:
        - Auth Clients
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthClientCreateRequest'
      responses:
        '201':
          description: Auth client created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthClientResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /auth-clients/{auth_client_id}:
    get:
      operationId: getAuthClient
      summary: Elastic.io Get an auth client
      description: Retrieve details of a specific auth client.
      tags:
        - Auth Clients
      paramete

# --- truncated at 32 KB (106 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/elastic-io/refs/heads/main/openapi/elastic-io-platform-api-openapi.yml