openapi: 3.1.0 info: title: Synopsys Cloud OpenLink Entitlements Licenses API description: The Synopsys Cloud OpenLink API enables semiconductor vendors to interoperate with Synopsys Cloud for managing product entitlements and license distribution. Vendors register endpoints during onboarding and respond to license queries from Synopsys Cloud. The API supports both synchronous and asynchronous license file delivery. version: '1.0' contact: url: https://www.synopsys.com/cloud/openlink/api.html servers: - url: https://api.synopsys.com/openlink/v1 description: Synopsys Cloud OpenLink API security: - apiKeyAuth: [] - oauth2: [] tags: - name: Licenses description: License file generation and delivery. paths: /licenses: post: operationId: generateLicense summary: Generate License File description: Called by Synopsys Cloud to generate and retrieve a license file for a customer. This endpoint is dynamically provided via the entitlement response. Supports synchronous delivery (within 20 seconds) and asynchronous delivery with polling. tags: - Licenses requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/LicenseRequest' responses: '200': description: License generated content: application/json: schema: $ref: '#/components/schemas/LicenseResponse' '202': description: Asynchronous license generation initiated content: application/json: schema: $ref: '#/components/schemas/AsyncLicenseResponse' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' /licenses/{licenseId}: get: operationId: downloadLicense summary: Download License File description: Retrieves a previously generated license file by its identifier. Used for asynchronous license polling scenarios. tags: - Licenses parameters: - name: licenseId in: path required: true schema: type: string description: License file identifier. responses: '200': description: License file content returned content: application/json: schema: $ref: '#/components/schemas/LicenseResponse' '202': description: License not yet ready '404': description: License not found components: schemas: LicenseResponse: type: object properties: licenseId: type: string downloadType: type: string enum: - Sync - Async licenseData: type: string description: Base64-encoded license file content (synchronous delivery). expiresAt: type: string format: date-time ErrorResponse: type: object properties: code: type: string description: Vendor-specific error code. message: type: string description: Customer-facing error description. statusCode: type: integer tid: type: string description: Optional trace identifier. LicenseRequest: type: object required: - entitlementId - customerId properties: entitlementId: type: string customerId: type: string hostId: type: string description: Machine or host identifier for license binding. quantity: type: integer AsyncLicenseResponse: type: object properties: licenseId: type: string downloadType: type: string enum: - Async pollStartDateTime: type: string format: date-time description: When to begin polling for the license. pollIntervalSec: type: integer description: Suggested polling interval in seconds. downloadApi: type: object properties: url: type: string description: URL to poll for license retrieval. securitySchemes: apiKeyAuth: type: apiKey in: header name: X-API-Key description: API key-based authentication oauth2: type: oauth2 flows: clientCredentials: tokenUrl: https://api.synopsys.com/oauth/token scopes: openlink: Access OpenLink API