Tech Data Cloud Providers API

Customer cloud provider account management

OpenAPI Specification

tech-data-cloud-providers-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: TD SYNNEX StreamOne Ion Authentication Cloud Providers API
  description: The StreamOne Ion API provides reseller partners with programmatic access to TD SYNNEX's cloud distribution platform. Partners can manage end customers, browse product catalogs, create and manage orders, handle subscriptions, configure cloud provider accounts, manage shopping carts, and access billing reports. The API supports multi-vendor cloud management across Microsoft, Google, and AWS through a unified interface.
  version: v3
  contact:
    name: TD SYNNEX StreamOne Ion
    url: https://docs.streamone.cloud/
  license:
    name: TD SYNNEX Terms of Service
    url: https://eu.tdsynnex.com/CatAdminHtmlContentEditor/uploads/Country/COM/NEW%20Terms-and-Conditions/StreamOne/Partner%20API%20Service%20Specification%20Addendum%20to%20ION%20Platform%20Agreement.pdf
servers:
- url: https://ion.tdsynnex.com/api
  description: TD SYNNEX StreamOne Ion Production
security:
- BearerAuth: []
tags:
- name: Cloud Providers
  description: Customer cloud provider account management
paths:
  /v3/accounts/{accountId}/customers/{customerId}/cloudProviders:
    post:
      operationId: createCloudProvider
      summary: Create Cloud Provider Account
      description: Create a new cloud provider account for a customer.
      tags:
      - Cloud Providers
      parameters:
      - $ref: '#/components/parameters/accountId'
      - $ref: '#/components/parameters/customerId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CloudProviderCreate'
      responses:
        '201':
          description: Cloud provider account created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CloudProvider'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /v3/accounts/{accountId}/customers/{customerId}/cloudProviders/{providerId}:
    get:
      operationId: getCloudProvider
      summary: Get Cloud Provider Account
      description: Retrieve a specific cloud provider account for a customer.
      tags:
      - Cloud Providers
      parameters:
      - $ref: '#/components/parameters/accountId'
      - $ref: '#/components/parameters/customerId'
      - name: providerId
        in: path
        required: true
        schema:
          type: string
        description: The cloud provider account identifier.
      responses:
        '200':
          description: Cloud provider account details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CloudProvider'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /v3/accounts/{accountId}/customers/{customerId}/cloudProviders/{providerId}/link:
    post:
      operationId: linkCloudProvider
      summary: Link Cloud Provider Account
      description: Link an existing cloud provider account to a customer.
      tags:
      - Cloud Providers
      parameters:
      - $ref: '#/components/parameters/accountId'
      - $ref: '#/components/parameters/customerId'
      - name: providerId
        in: path
        required: true
        schema:
          type: string
        description: The cloud provider account identifier.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                externalId:
                  type: string
                  description: External cloud account identifier.
      responses:
        '200':
          description: Cloud provider linked
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CloudProvider'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    CloudProviderCreate:
      type: object
      required:
      - provider
      properties:
        provider:
          type: string
          enum:
          - Microsoft
          - Google
          - AWS
        externalId:
          type: string
    CloudProvider:
      type: object
      properties:
        id:
          type: string
        provider:
          type: string
        externalId:
          type: string
        status:
          type: string
        createdAt:
          type: string
          format: date-time
    Error:
      type: object
      properties:
        code:
          type: string
        message:
          type: string
        details:
          type: array
          items:
            type: string
  responses:
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Unauthorized - invalid or expired token
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: Bad request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  parameters:
    accountId:
      name: accountId
      in: path
      required: true
      schema:
        type: string
      description: The reseller account identifier.
    customerId:
      name: customerId
      in: path
      required: true
      schema:
        type: string
      description: The customer account identifier.
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: OAuth 2.0 bearer token obtained via the /oauth/token endpoint.