Synopsys Licenses API

License file generation and delivery.

OpenAPI Specification

synopsys-licenses-api-openapi.yml Raw ↑
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