openapi: 3.1.0 info: title: TD SYNNEX StreamOne Ion Authentication Customers 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: Customers description: End customer account management paths: /v3/accounts/{accountId}/customers: get: operationId: listCustomers summary: List Customers description: Retrieve a paginated list of all end customers for the reseller account. tags: - Customers parameters: - $ref: '#/components/parameters/accountId' - name: page in: query schema: type: integer default: 1 description: Page number for pagination. - name: pageSize in: query schema: type: integer default: 20 description: Number of records per page. - name: status in: query schema: type: string description: Filter customers by status. responses: '200': description: List of customers content: application/json: schema: $ref: '#/components/schemas/CustomerList' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' post: operationId: createCustomer summary: Create Customer description: Create a new end customer account under the reseller account. tags: - Customers parameters: - $ref: '#/components/parameters/accountId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CustomerCreate' responses: '201': description: Customer created content: application/json: schema: $ref: '#/components/schemas/Customer' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' /v3/accounts/{accountId}/customers/{customerId}: get: operationId: getCustomer summary: Get Customer description: Retrieve details for a specific end customer. tags: - Customers parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/customerId' responses: '200': description: Customer details content: application/json: schema: $ref: '#/components/schemas/Customer' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' put: operationId: updateCustomer summary: Update Customer description: Update an existing end customer account. tags: - Customers parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/customerId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CustomerUpdate' responses: '200': description: Customer updated content: application/json: schema: $ref: '#/components/schemas/Customer' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /v3/accounts/{accountId}/customers/{customerId}/cloudProfiles: get: operationId: getCustomerCloudProfiles summary: Get Customer Cloud Profiles description: Retrieve cloud provider profiles associated with a customer. tags: - Customers parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/customerId' responses: '200': description: Customer cloud profiles content: application/json: schema: type: array items: $ref: '#/components/schemas/CloudProfile' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' components: responses: Forbidden: description: Forbidden - insufficient permissions content: application/json: schema: $ref: '#/components/schemas/Error' Unauthorized: description: Unauthorized - invalid or expired token content: application/json: schema: $ref: '#/components/schemas/Error' NotFound: description: Resource not found content: application/json: schema: $ref: '#/components/schemas/Error' BadRequest: description: Bad request content: application/json: schema: $ref: '#/components/schemas/Error' schemas: Customer: type: object properties: id: type: string name: type: string email: type: string format: email status: type: string enum: - Active - Inactive - Suspended createdAt: type: string format: date-time updatedAt: type: string format: date-time address: $ref: '#/components/schemas/Address' Pagination: type: object properties: page: type: integer pageSize: type: integer totalRecords: type: integer totalPages: type: integer CustomerUpdate: type: object properties: name: type: string email: type: string format: email phone: type: string status: type: string address: $ref: '#/components/schemas/Address' Address: type: object properties: street: type: string city: type: string state: type: string postalCode: type: string country: type: string Error: type: object properties: code: type: string message: type: string details: type: array items: type: string CloudProfile: type: object properties: id: type: string provider: type: string enum: - Microsoft - Google - AWS externalId: type: string status: type: string CustomerCreate: type: object required: - name - email properties: name: type: string email: type: string format: email phone: type: string address: $ref: '#/components/schemas/Address' CustomerList: type: object properties: data: type: array items: $ref: '#/components/schemas/Customer' pagination: $ref: '#/components/schemas/Pagination' 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.