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