TD SYNNEX Cloud Providers API

Customer cloud provider account linking

OpenAPI Specification

td-synnex-cloud-providers-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: TD SYNNEX StreamOne Ion Partner Authentication Cloud Providers API
  description: The StreamOne Ion Partner API provides partners with programmatic access to TD SYNNEX cloud distribution services. Partners can manage end customers, browse product catalogs, create and manage orders, track subscriptions, manage shopping carts, and access business intelligence reports through a unified REST interface supporting multiple cloud vendors. The API enables MSPs, resellers, and technology partners to automate their cloud distribution workflows.
  version: '3'
  contact:
    name: TD SYNNEX StreamOne Support
    url: https://www.tdsynnex.com/ion/api/
servers:
- url: https://ion.tdsynnex.com
  description: TD SYNNEX StreamOne Ion Production API
security:
- OAuth2: []
tags:
- name: Cloud Providers
  description: Customer cloud provider account linking
paths:
  /v3/accounts/{accountId}/customers/{customerId}/cloudProviders:
    post:
      operationId: createCloudProvider
      summary: Create Cloud Provider
      description: Register a 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/CloudProviderRequest'
      responses:
        '201':
          description: Cloud provider registered
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CloudProvider'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /v3/accounts/{accountId}/customers/{customerId}/cloudProviders/{providerId}:
    get:
      operationId: getCloudProvider
      summary: Get Cloud Provider
      description: Retrieve details for a specific customer cloud provider account.
      tags:
      - Cloud Providers
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - $ref: '#/components/parameters/CustomerId'
      - name: providerId
        in: path
        required: true
        description: Unique cloud provider identifier
        schema:
          type: string
      responses:
        '200':
          description: Cloud provider details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CloudProvider'
        '401':
          $ref: '#/components/responses/Unauthorized'
    put:
      operationId: linkCloudProvider
      summary: Link Cloud Provider
      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
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CloudProviderRequest'
      responses:
        '200':
          description: Cloud provider linked
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CloudProvider'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    Error:
      type: object
      properties:
        code:
          type: string
          description: Error code
        message:
          type: string
          description: Human-readable error message
        details:
          type: array
          items:
            type: string
    CloudProviderRequest:
      type: object
      required:
      - vendor
      properties:
        vendor:
          type: string
          description: Cloud vendor name (e.g., Microsoft, AWS, Google)
        accountId:
          type: string
          description: Cloud vendor account identifier
    CloudProvider:
      type: object
      description: Cloud provider account linked to a customer
      properties:
        providerId:
          type: string
        vendor:
          type: string
        accountId:
          type: string
        status:
          type: string
        createdDate:
          type: string
          format: date-time
  responses:
    Unauthorized:
      description: Unauthorized - Valid OAuth 2.0 token required
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  parameters:
    CustomerId:
      name: customerId
      in: path
      required: true
      description: End customer identifier
      schema:
        type: string
    AccountId:
      name: accountId
      in: path
      required: true
      description: Partner account identifier
      schema:
        type: string
  securitySchemes:
    OAuth2:
      type: oauth2
      description: TD SYNNEX StreamOne Ion uses OAuth 2.0 with refresh token flow
      flows:
        clientCredentials:
          tokenUrl: https://ion.tdsynnex.com/oauth/token
          scopes:
            read: Read access to partner resources
            write: Write access to create and update resources