Equinix Streams API

Streams

OpenAPI Specification

equinix-streams-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Equinix API Authentication Streams API
  description: 'Equinix APIs use the OAuth 2.0 for authentication and authorization. Equinix supports the resource owner password and the client credentials flow.

    To begin, obtain OAuth 2.0 client credentials from the Equinix Developer Console under "My Apps". Then your client application  requests an access token from the Equinix API Authorization endpoint, extracts the access_token from the response, and sends the Bearer token to the API that you want to access'
  termsOfService: https://www.equinix.com/about/legal/terms
  contact:
    name: Equinix API Support
    url: https://docs.equinix.com/api-support.htm
  version: '1.2'
servers:
- url: https://api.equinix.com
tags:
- name: Streams
  description: Streams
paths:
  /fabric/v4/streams:
    get:
      tags:
      - Streams
      summary: Get Streams
      description: This API provides capability to retrieve streams
      operationId: getStreams
      parameters:
      - name: offset
        in: query
        description: offset
        required: false
        schema:
          type: integer
        example: 1
      - name: limit
        in: query
        description: number of records to fetch
        required: false
        schema:
          type: integer
        example: 10
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAllStreamResponse'
              examples:
                Example:
                  $ref: '#/components/examples/stream-get-all-example'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/401'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/403'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/404'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/500'
    post:
      tags:
      - Streams
      summary: Create Stream
      description: This API provides capability to create user's stream
      operationId: createStreams
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StreamPostRequest'
            examples:
              CreateStream:
                $ref: '#/components/examples/StreamPostRequestExample'
        required: true
      responses:
        '202':
          description: Stream object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Stream'
              examples:
                StreamSubscriptionResponse:
                  $ref: '#/components/examples/StreamResponseExample'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/401'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/403'
        '415':
          description: Unsupported Media Type
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/415'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/500'
  /fabric/v4/streams/{streamId}:
    get:
      tags:
      - Streams
      summary: Get Stream
      description: This API provides capability to get user's stream
      operationId: getStreamByUuid
      parameters:
      - name: streamId
        in: path
        description: Stream UUID
        required: true
        schema:
          $ref: '#/components/schemas/StreamId'
      responses:
        '200':
          description: Stream object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Stream'
              examples:
                StreamSubscriptionResponse:
                  $ref: '#/components/examples/StreamResponseExample'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/401'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/403'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/404'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/500'
    put:
      tags:
      - Streams
      summary: Update Stream
      description: This API provides capability to update user's stream
      operationId: updateStreamByUuid
      parameters:
      - name: streamId
        in: path
        description: Stream UUID
        required: true
        schema:
          $ref: '#/components/schemas/StreamId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StreamPutRequest'
            examples:
              UpdateStream:
                $ref: '#/components/examples/StreamPutRequestExample'
        required: true
      responses:
        '202':
          description: Stream object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Stream'
              examples:
                StreamResponse:
                  $ref: '#/components/examples/StreamResponseExample'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/401'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/403'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/404'
        '415':
          description: Unsupported Media Type
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/415'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/500'
    delete:
      tags:
      - Streams
      summary: Delete Stream
      description: This API provides capability to delete user's stream
      operationId: deleteStreamByUuid
      parameters:
      - name: streamId
        in: path
        description: Stream UUID
        required: true
        schema:
          $ref: '#/components/schemas/StreamId'
      responses:
        '202':
          description: Stream object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Stream'
              examples:
                StreamSubscriptionResponse:
                  $ref: '#/components/examples/StreamDeleteRequestExample'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/401'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/403'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/404'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/500'
  /fabric/v4/streamAssets/search:
    post:
      tags:
      - Streams
      summary: Get Assets
      description: This API provides capability to retrieve stream assets
      operationId: getStreamsAssets
      parameters:
      - name: offset
        in: query
        description: offset
        required: false
        schema:
          type: integer
        example: 1
      - name: limit
        in: query
        description: number of records to fetch
        required: false
        schema:
          type: integer
        example: 10
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StreamAssetSearchRequest'
            examples:
              SearchAssets:
                $ref: '#/components/examples/StreamAssetSearchRequestExample'
        required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAllStreamAssetResponse'
              examples:
                Example:
                  $ref: '#/components/examples/stream-asset-get-all-example'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/401'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/403'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/404'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/500'
  /fabric/v4/streams/{streamId}/{asset}/{assetId}:
    get:
      tags:
      - Streams
      summary: Get Asset
      description: This API provides capability to get user's assets attached to a stream
      operationId: getStreamAssetByUuid
      parameters:
      - name: assetId
        in: path
        description: asset UUID
        required: true
        schema:
          $ref: '#/components/schemas/AssetId_1'
      - name: asset
        in: path
        description: asset
        required: true
        schema:
          $ref: '#/components/schemas/Asset'
      - name: streamId
        in: path
        description: Stream UUID
        required: true
        schema:
          $ref: '#/components/schemas/StreamId'
      responses:
        '200':
          description: Stream asset object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StreamAsset'
              examples:
                StreamSubscriptionResponse:
                  $ref: '#/components/examples/StreamConnectionAssetResponseExample'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/401'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/403'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/404'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/500'
    put:
      tags:
      - Streams
      summary: Attach Asset
      description: This API provides capability to attach an asset to a stream
      operationId: updateStreamAssetByUuid
      parameters:
      - name: assetId
        in: path
        description: asset UUID
        required: true
        schema:
          $ref: '#/components/schemas/AssetId_1'
      - name: asset
        in: path
        description: asset
        required: true
        schema:
          $ref: '#/components/schemas/Asset'
      - name: streamId
        in: path
        description: Stream UUID
        required: true
        schema:
          $ref: '#/components/schemas/StreamId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StreamAssetPutRequest'
            examples:
              UpdateStream:
                $ref: '#/components/examples/StreamAssetPutRequestExample'
        required: true
      responses:
        '202':
          description: Stream object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StreamAsset'
              examples:
                StreamAssetResponse:
                  $ref: '#/components/examples/StreamRouterAssetAttachResponseExample'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/401'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/403'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/404'
        '415':
          description: Unsupported Media Type
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/415'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/500'
    delete:
      tags:
      - Streams
      summary: Detach Asset
      description: This API provides capability to detach an asset from a stream
      operationId: deleteStreamAssetByUuid
      parameters:
      - name: assetId
        in: path
        description: asset UUID
        required: true
        schema:
          $ref: '#/components/schemas/AssetId_1'
      - name: asset
        in: path
        description: asset
        required: true
        schema:
          $ref: '#/components/schemas/Asset'
      - name: streamId
        in: path
        description: Stream UUID
        required: true
        schema:
          $ref: '#/components/schemas/StreamId'
      responses:
        '202':
          description: Stream object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StreamAsset'
              examples:
                StreamAssetResponse:
                  $ref: '#/components/examples/StreamRouterAssetDetachResponseExample'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/401'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/403'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/404'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorList'
              examples:
                example:
                  $ref: '#/components/examples/500'
components:
  schemas:
    StreamAssetSortBy:
      type: string
      description: Possible field names to use on sorting
      default: /uuid
      enum:
      - /uuid
    PriceError_additionalInfo:
      type: object
      properties:
        property:
          type: string
        reason:
          type: string
    StreamAsset:
      type: object
      properties:
        href:
          type: string
          description: Stream Asset URI
          format: uri
          readOnly: true
        uuid:
          type: string
          description: Equinix-assigned access point identifier
          format: uuid
          example: c9b8e7a2-f3b1-4576-a4a9-1366a63df170
        type:
          type: string
          description: Asset types
          enum:
          - XF_PORT
          - IP_VC
          - EVPLAN_VC
          - EVPL_VC
          - XF_METRO
          - XF_ROUTER
          - ORGANIZATION
          - PROJECT
        metricsEnabled:
          type: boolean
          description: enable metric
          example: false
        attachmentStatus:
          type: string
          description: asset status
          enum:
          - ATTACHING
          - ATTACHED
          - DETACHED
          - DETACHING
          - FAILED
      description: Stream object
    Asset:
      type: string
      enum:
      - ports
      - connections
      - routers
      - metros
      - organizations
      - projects
      - networkEdgeDevices
      - companyProfiles
    Pagination:
      required:
      - limit
      - total
      type: object
      properties:
        offset:
          minimum: 0
          type: integer
          description: Index of the first item returned in the response. The default is 0.
          default: 0
        limit:
          minimum: 0
          type: integer
          description: Maximum number of search results returned per page. Number must be between 1 and 100, and the default is 20.
          default: 20
        total:
          minimum: 0
          type: integer
          description: Total number of elements returned.
        next:
          type: string
          description: URL relative to the next item in the response.
        previous:
          type: string
          description: URL relative to the previous item in the response.
      description: Pagination response information
    StreamAssetSearchRequest:
      required:
      - filter
      type: object
      properties:
        filter:
          $ref: '#/components/schemas/StreamAssetFilters'
        pagination:
          $ref: '#/components/schemas/PaginationRequest'
        sort:
          type: array
          items:
            $ref: '#/components/schemas/StreamAssetSortCriteria'
      description: Search requests containing criteria
    ErrorList:
      type: array
      description: List of Error Message
      items:
        $ref: '#/components/schemas/Error'
    Changelog:
      type: object
      properties:
        createdBy:
          type: string
          description: Created by User Key
          example: johnsmith
        createdByFullName:
          type: string
          description: Created by User Full Name
          example: John Smith
        createdByEmail:
          type: string
          description: Created by User Email Address
          example: john.smith@example.com
        createdDateTime:
          type: string
          description: Created by Date and Time
          format: date-time
          example: 2020-11-06 07:00:00+00:00
        updatedBy:
          type: string
          description: Updated by User Key
          example: johnsmith
        updatedByFullName:
          type: string
          description: Updated by User Full Name
          example: John Smith
        updatedByEmail:
          type: string
          description: Updated by User Email Address
          example: john.smith@example.com
        updatedDateTime:
          type: string
          description: Updated by Date and Time
          format: date-time
          example: 2020-11-06 07:00:00+00:00
        deletedBy:
          type: string
          description: Deleted by User Key
          example: johnsmith
        deletedByFullName:
          type: string
          description: Deleted by User Full Name
          example: John Smith
        deletedByEmail:
          type: string
          description: Deleted by User Email Address
          example: john.smith@example.com
        deletedDateTime:
          type: string
          description: Deleted by Date and Time
          format: date-time
          example: 2020-11-06 07:00:00+00:00
      description: Change log
    StreamAssetSimpleExpression:
      type: object
      properties:
        property:
          type: string
          description: "Possible field names to use on filters:\n * `/uuid` - Asset uuid\n * `/streamUuid` - Stream uuid\n * `/projectId` - Asset projectId\n * `/*` - all-category search\n"
          example: /name
        operator:
          type: string
          description: "Possible operators to use on filters:\n * `=` - equal\n * `!=` - not equal\n * `>` - greater than\n * `>=` - greater than or equal to\n * `<` - less than\n * `<=` - less than or equal to\n * `[NOT] BETWEEN` - (not) between\n * `[NOT] LIKE` - (not) like\n * `[NOT] IN` - (not) in\n * `ILIKE` - case-insensitive like\n"
          example: '='
        values:
          type: array
          items:
            type: string
            example: FabricStreamAsset-1
    AssetId_1:
      type: string
      description: Stream Asset UUID
      format: uuid
      example: 757400f8-d360-11e9-bb65-2a2ae2dbcce6
    StreamAssetSortDirection:
      type: string
      description: Sorting direction
      default: DESC
      enum:
      - DESC
      - ASC
    StreamAssetPutRequest:
      type: object
      properties:
        metricsEnabled:
          type: boolean
          description: enable metric
          example: false
          default: false
      description: Update Stream Asset
    StreamAssetFilter:
      type: object
      anyOf:
      - $ref: '#/components/schemas/StreamAssetSimpleExpression'
      - $ref: '#/components/schemas/StreamAssetOrFilter'
    StreamPostRequest:
      required:
      - name
      - project
      - type
      type: object
      properties:
        type:
          type: string
          enum:
          - TELEMETRY_STREAM
        name:
          type: string
          description: Customer-provided stream name
        description:
          type: string
          description: Customer-provided stream description
        project:
          $ref: '#/components/schemas/Project'
      description: Create Stream
    Project:
      required:
      - projectId
      type: object
      properties:
        projectId:
          type: string
          description: Subscriber-assigned project ID
          example: 44f4c4f8-2f39-494e-838c-d8e640591be5
    StreamId:
      type: string
      description: Stream UUID
      format: uuid
      example: 657400f8-d360-11e9-bb65-2a2ae2dbcce5
    StreamAssetSortCriteria:
      type: object
      properties:
        direction:
          $ref: '#/components/schemas/StreamAssetSortDirection'
        property:
          $ref: '#/components/schemas/StreamAssetSortBy'
    StreamPutRequest:
      required:
      - name
      type: object
      properties:
        name:
          type: string
          description: Customer-provided stream name
        description:
          type: string
          description: Customer-provided stream description
      description: Update Stream
    GetAllStreamResponse:
      type: object
      properties:
        pagination:
          $ref: '#/components/schemas/Pagination'
        data:
          type: array
          description: Data returned from the API call.
          items:
            $ref: '#/components/schemas/Stream'
    Stream:
      type: object
      properties:
        href:
          type: string
          description: Stream URI
          format: uri
          readOnly: true
          example: https://api.equinix.com/fabric/v4/streams/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170
        uuid:
          type: string
          description: Equinix-assigned access point identifier
          format: uuid
          example: c9b8e7a2-f3b1-4576-a4a9-1366a63df170
        type:
          type: string
          description: type
          enum:
          - TELEMETRY_STREAM
        name:
          type: string
          description: Customer-provided stream name
        description:
          type: string
          description: Customer-provided stream description
        project:
          $ref: '#/components/schemas/Project'
        state:
          type: string
          description: Stream provision state
          enum:
          - PROVISIONING
          - PROVISIONED
          - REPROVISIONING
          - DEPROVISIONING
          - DEPROVISIONED
          - FAILED
        assetsCount:
          type: integer
          description: Stream assets count
          example: 1
        streamSubscriptionsCount:
          type: integer
          description: Stream subscriptions count
          example: 2
        alertRulesCount:
          type: integer
          description: Stream alert rules count
          example: 3
        changeLog:
          $ref: '#/components/schemas/Changelog'
      description: Stream object
    StreamAssetFilters:
      type: object
      properties:
        and:
          maxItems: 8
          type: array
          items:
            $ref: '#/components/schemas/StreamAssetFilter'
    GetAllStreamAssetResponse:
      type: object
      properties:
        pagination:
          $ref: '#/components/schemas/Pagination'
        data:
          type: array
          description: Data returned from the API call.
          items:
            $ref: '#/components/schemas/StreamAsset'
    Error:
      required:
      - errorCode
      - errorMessage
      type: object
      properties:
        errorCode:
          pattern: ^EQ-\d{7}$
          type: string
        errorMessage:
          type: string
        correlationId:
          type: string
        details:
          type: string
        help:
          type: string
        additionalInfo:
          type: array
          items:
            $ref: '#/components/schemas/PriceError_additionalInfo'
      description: Error Response with details
    StreamAssetOrFilter:
      type: object
      properties:
        or:
          maxItems: 3
          type: array
          items:
            $ref: '#/components/schemas/StreamAssetSimpleExpression'
    PaginationRequest:
      type: object
      properties:
        offset:
          minimum: 0
          type: integer
          description: Index of the first element.
          default: 0
        limit:
          minimum: 1
          type: integer
          description: Number of elements to be requested per page. Number must be between 1 and 100, and the default is 20.
          default: 20
      description: Pagination request information
  examples:
    StreamConnectionAssetResponseExample:
      value:
        href: https://api.equinix.com/fabric/v4/streams/e684aa26-8276-48b7-bb42-a6d9def0a419/connections/d684aa26-8276-48b7-bb42-a6d9def0a418
        uuid: d684aa26-8276-48b7-bb42-a6d9def0a418
        type: IP_VC
        metricsEnabled: false
        attachmentStatus: ATTACHED
    '415':
      value:
      - errorCode: EQ

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