openapi: 3.0.1
info:
  title: License Service
  version: v0
tags:
  - name: License Service
    description: Documentation grouping for all License Service operations
servers:
  - url: https://prod-ui-zwseuprod01p.pp.zebra.com/api
    description: EU Server
  - url: https://prod-ui-zwsusprod01p.pp.zebra.com/api
    description: NA Server
security:
  - Authorization: []
paths:
  /users/{userId}/message/{id}:
    put:
      tags:
        - License Notification Alert
      x-docs-group: License Service
      summary: Acknowledge License alert notification
      operationId: setLicenseNotificationAcknowledged
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
        - name: userId
          in: path
          required: true
          schema:
            type: string
        - name: tenantId
          in: query
          required: false
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/com.zebra.phoenix.licenseservice.domain.entity.NotificationEntity'
  /users/resend-welcome-email:
    put:
      tags:
        - License Notification Alert
      x-docs-group: License Service
      summary: Resend License activation welcome email
      operationId: resendWelcomeEmail
      parameters:
        - name: tenantId
          in: query
          required: false
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
              uniqueItems: true
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/com.zebra.phoenix.licenseservice.domain.dto.NotificationResentResponseDTO'
  /products/sync:
    post:
      tags:
        - Products
      x-docs-group: License Service
      summary: Sync products
      description: Fetch (from Thales) and persist products
      operationId: syncProducts
      parameters:
        - name: status
          in: query
          description: 'Product status, optional. Example: ACTIVE'
          required: false
          schema:
            type: string
            enum:
              - ACTIVE
              - INACTIVE
        - name: family
          in: query
          description: 'Product family, optional. By default syncs only supported product families Example: wcs'
          required: false
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
  /license-details:
    get:
      tags:
        - License Details
      x-docs-group: License Service
      operationId: getAllLicenseDetails
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/com.zebra.phoenix.licenseservice.domain.entity.LicenseDetailsEntity'
    post:
      tags:
        - License Details
      x-docs-group: License Service
      operationId: createLicenseDetails
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/com.zebra.phoenix.licenseservice.domain.dto.LicenseDetailsDTO'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
  /jobs/{type}:
    get:
      tags:
        - Job Executions
      x-docs-group: License Service
      summary: List job executions
      description: 'Search job executions: scrolling response (with nextPageToken attribute). Allows to request specific fields (projection), sorting by a field and define the page size'
      operationId: getJobExecutions
      parameters:
        - name: type
          in: path
          required: true
          schema:
            type: string
            enum:
              - ENTITLEMENT_IMPORT
              - ENTITLEMENT_ACTIVATION
              - PROCESS_EXPIRED_ENTITLEMENTS
              - PROCESS_LICENSE_UPDATE_FAILURES
        - name: sortField
          in: query
          description: 'Sorting field, optional. Example: startDate'
          required: false
          schema:
            type: string
        - name: sortType
          in: query
          description: 'Sort direction, optional. Example: ASC'
          required: false
          schema:
            type: string
            enum:
              - NONE
              - ASC
              - DESC
              - UNRECOGNIZED
        - name: fields
          in: query
          description: 'Define the requested entity fields (projection), optional. Example: id,tenant,salesOrderNumber'
          required: false
          schema:
            type: string
        - name: size
          in: query
          required: false
          schema:
            type: integer
            format: int32
            default: 20
        - name: pageToken
          in: query
          required: false
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/com.zebra.phoenix.commons.models.KeySetPageCom.zebra.phoenix.licenseservice.domain.entity.JobExecutionEntity'
    post:
      tags:
        - Job Executions
      x-docs-group: License Service
      summary: Run job execution
      operationId: runJobExecution
      parameters:
        - name: type
          in: path
          description: Job Type
          required: true
          schema:
            type: string
            enum:
              - ENTITLEMENT_ACTIVATION
              - PROCESS_EXPIRED_ENTITLEMENTS
        - name: badgeId
          in: query
          required: false
          schema:
            type: string
        - name: skipMstrSetup
          in: query
          description: Skip MSTR setup during sync, defaults to false
          required: false
          schema:
            type: boolean
            default: false
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/com.zebra.phoenix.licenseservice.domain.entity.JobExecutionEntity'
  /entitlements/sync:
    post:
      tags:
        - Entitlements
      x-docs-group: License Service
      operationId: sync
      parameters:
        - name: region
          in: query
          description: 'The region to which the Customer belongs to, Example: ''us''. If region is provided, badgeId needs to be provided as well.'
          required: false
          schema:
            type: string
        - name: badgeId
          in: query
          description: 'Sync by badgeId (Mandatory), Example: BDG-customer-1'
          required: true
          schema:
            type: string
        - name: skipMstrSetup
          in: query
          description: Skip MSTR setup during sync, defaults to false
          required: false
          schema:
            type: boolean
            default: false
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/com.zebra.phoenix.licenseservice.domain.entity.JobExecutionEntity'
  /action:
    post:
      tags:
        - License Activation / Deactivation
      x-docs-group: License Service
      summary: Activate / Deactivate specified user licenses for specified app
      operationId: licenseAction
      parameters:
        - name: tenantId
          in: query
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/com.zebra.phoenix.licenseservice.domain.UserLicenses'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/com.zebra.phoenix.licenseservice.domain.dto.LicenseActivationDTO'
  /users/{userId}/message:
    get:
      tags:
        - License Notification Alert
      x-docs-group: License Service
      summary: License Notification Alert
      description: Notifies users, alerts about license expiration
      operationId: getLicenseNotification
      parameters:
        - name: userId
          in: path
          required: true
          schema:
            type: string
        - name: productFamily
          in: query
          required: true
          schema:
            type: string
        - name: tenantId
          in: query
          required: false
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/com.zebra.phoenix.licenseservice.domain.entity.NotificationEntity'
                uniqueItems: true
  /products:
    get:
      tags:
        - Products
      x-docs-group: License Service
      summary: List products
      description: 'Search products by product family and status: scrolling response (with nextPageToken attribute). Allows to request specific fields (projection), sorting by a field and define the page size'
      operationId: getProducts
      parameters:
        - name: family
          in: query
          description: 'Product family, optional. By default includes only supported product families Example: wcs'
          required: false
          schema:
            type: string
        - name: status
          in: query
          description: 'Product status, optional. Example: ACTIVE'
          required: false
          schema:
            type: string
            enum:
              - ACTIVE
              - INACTIVE
        - name: productType
          in: query
          description: 'Product Type, optional. Example: parent'
          required: false
          schema:
            type: string
            enum:
              - PARENT
              - CHILD
              - DEFAULT
        - name: sortField
          in: query
          description: 'Sorting field, optional. Example: name'
          required: false
          schema:
            type: string
        - name: sortType
          in: query
          description: 'Sort direction, optional. Example: ASC'
          required: false
          schema:
            type: string
            enum:
              - NONE
              - ASC
              - DESC
              - UNRECOGNIZED
        - name: fields
          in: query
          description: 'Define the requested entity fields (projection), optional. Example: id,name,family'
          required: false
          schema:
            type: string
        - name: size
          in: query
          required: false
          schema:
            type: integer
            format: int32
            default: 20
        - name: pageToken
          in: query
          required: false
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/com.zebra.phoenix.commons.models.KeySetPageCom.zebra.phoenix.licenseservice.domain.entity.ProductEntity'
  /license-details/product-family/{productFamily}:
    get:
      tags:
        - License Details
      x-docs-group: License Service
      operationId: getLicenseDetailsByProductFamily
      parameters:
        - name: productFamily
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/com.zebra.phoenix.licenseservice.domain.entity.LicenseDetailsEntity'
  /failures:
    get:
      tags:
        - License Update Failures
      x-docs-group: License Service
      summary: List License Update Failures
      description: 'Search license update failures: scrolling response (with nextPageToken attribute). Allows to request specific fields (projection), sorting by a field and define the page size'
      operationId: getLicenseUpdateFailures
      parameters:
        - name: tenantId
          in: query
          required: false
          schema:
            type: string
        - name: userId
          in: query
          description: User Id of the user, optional.
          required: false
          schema:
            type: string
        - name: status
          in: query
          description: Status of the license update failures.
          required: false
          schema:
            type: string
            enum:
              - PENDING
              - UPDATED
              - FAILED
        - name: sortField
          in: query
          description: 'Sorting field, optional. Example: creationDate'
          required: false
          schema:
            type: string
        - name: sortType
          in: query
          description: 'Sort direction, optional. Example: ASC'
          required: false
          schema:
            type: string
            enum:
              - NONE
              - ASC
              - DESC
              - UNRECOGNIZED
        - name: fields
          in: query
          description: 'Define the requested entity fields (projection), optional. Example: id,tenant,userId'
          required: false
          schema:
            type: string
        - name: size
          in: query
          required: false
          schema:
            type: integer
            format: int32
            default: 20
        - name: pageToken
          in: query
          required: false
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/com.zebra.phoenix.commons.models.KeySetPageCom.zebra.phoenix.licenseservice.domain.entity.LicenseUpdateFailureEntity'
  /entitlements:
    get:
      tags:
        - Entitlements
      x-docs-group: License Service
      summary: List entitlements
      description: 'Search entitlements by tenant: scrolling response (with nextPageToken attribute). Allows to request specific fields (projection), sorting by a field and define the page size'
      operationId: getEntitlements
      parameters:
        - name: tenantId
          in: query
          required: false
          schema:
            type: string
        - name: status
          in: query
          description: 'Entitlement status, optional. Example: ACTIVE'
          required: false
          schema:
            type: string
            enum:
              - CREATED
              - UPDATED
              - ACTIVE
              - DISABLED
              - FAILED
        - name: productId
          in: query
          description: 'Product Id in entitlement, optional. Example: 23344-342-32444311'
          required: false
          schema:
            type: string
        - name: sortField
          in: query
          description: 'Sorting field, optional. Example: salesOrderNumber'
          required: false
          schema:
            type: string
        - name: sortType
          in: query
          description: 'Sort direction, optional. Example: ASC'
          required: false
          schema:
            type: string
            enum:
              - NONE
              - ASC
              - DESC
              - UNRECOGNIZED
        - name: fields
          in: query
          description: 'Define the requested entity fields (projection), optional. Example: id,tenant,salesOrderNumber'
          required: false
          schema:
            type: string
        - name: size
          in: query
          required: false
          schema:
            type: integer
            format: int32
            default: 20
        - name: pageToken
          in: query
          required: false
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/com.zebra.phoenix.commons.models.KeySetPageCom.zebra.phoenix.licenseservice.domain.entity.EntitlementEntity'
  /entitlements/summary:
    get:
      tags:
        - Entitlements
      x-docs-group: License Service
      summary: Summary
      description: Get a summary of active entitlements belonging to the requested tenant
      operationId: getSummary
      parameters:
        - name: tenantId
          in: query
          required: false
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/com.zebra.phoenix.licenseservice.domain.dto.EntitlementSummaryDTO'
  /entitlements/summary/product-families:
    get:
      tags:
        - Entitlements
      x-docs-group: License Service
      summary: Get product families by license model
      description: Get a list of product families that have a specific license model for the requested tenant with ACTIVE summary status. If no license model is specified, returns all product families.
      operationId: getProductFamiliesByLicenseModel
      parameters:
        - name: tenantId
          in: query
          required: false
          schema:
            type: string
        - name: licenseModel
          in: query
          description: 'License model to filter by. Example: CONSUMPTION. If not specified, returns all product families.'
          required: false
          schema:
            type: string
            enum:
              - USER
              - CONSUMPTION
              - UNKNOWN
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: array
                items:
                  type: string
components:
  schemas:
    com.zebra.phoenix.licenseservice.domain.entity.NotificationEntity:
      type: object
      properties:
        id:
          type: string
        tenant:
          type: string
        userId:
          type: string
        message:
          type: string
        productFamily:
          type: string
        acknowledged:
          type: boolean
        creationDate:
          type: string
          format: date-time
        acknowledgementDate:
          type: string
          format: date-time
        alertDate:
          type: string
          format: date
    com.zebra.phoenix.licenseservice.domain.dto.NotificationResentResponseDTO:
      type: object
      properties:
        tenant:
          type: string
        users:
          type: array
          items:
            type: string
    com.zebra.phoenix.licenseservice.domain.dto.LicenseDetailsDTO:
      type: object
      properties:
        productFamily:
          type: string
          minLength: 1
        licenseModel:
          type: string
          minLength: 1
      required:
        - licenseModel
        - productFamily
    com.zebra.phoenix.licenseservice.domain.entity.EntitlementError:
      type: object
      properties:
        errorCode:
          type: string
        errorMessage:
          type: string
        trace:
          type: string
        eid:
          type: string
    com.zebra.phoenix.licenseservice.domain.entity.EntitlementSuccess:
      type: object
      properties:
        message:
          type: string
        eid:
          type: string
    com.zebra.phoenix.licenseservice.domain.entity.EntitlementSummarySuccess:
      type: object
      properties:
        tenant:
          type: string
        productFamily:
          type: string
        badgeId:
          type: string
        message:
          type: string
    com.zebra.phoenix.licenseservice.domain.entity.JobExecutionEntity:
      type: object
      properties:
        id:
          type: string
        overallStatus:
          type: string
        failureCount:
          type: integer
          format: int32
        successImportCount:
          type: integer
          format: int32
        successActivationCount:
          type: integer
          format: int32
        successSummaryCancellationCount:
          type: integer
          format: int32
        type:
          type: string
          enum:
            - ENTITLEMENT_IMPORT
            - ENTITLEMENT_ACTIVATION
            - PROCESS_EXPIRED_ENTITLEMENTS
            - PROCESS_LICENSE_UPDATE_FAILURES
        tenant:
          type: string
        badgeId:
          type: string
        productFamilies:
          type: array
          items:
            type: string
          uniqueItems: true
        filterBy:
          type: string
        startDate:
          type: string
          format: date-time
        endDate:
          type: string
          format: date-time
        successActivation:
          type: array
          items:
            $ref: '#/components/schemas/com.zebra.phoenix.licenseservice.domain.entity.EntitlementSuccess'
        successImport:
          type: array
          items:
            $ref: '#/components/schemas/com.zebra.phoenix.licenseservice.domain.entity.EntitlementSuccess'
        successSummaryCancellation:
          type: array
          items:
            $ref: '#/components/schemas/com.zebra.phoenix.licenseservice.domain.entity.EntitlementSummarySuccess'
        errors:
          type: array
          items:
            $ref: '#/components/schemas/com.zebra.phoenix.licenseservice.domain.entity.EntitlementError'
        processes:
          type: array
          items:
            $ref: '#/components/schemas/com.zebra.phoenix.licenseservice.domain.entity.JobProcess'
    com.zebra.phoenix.licenseservice.domain.entity.JobFailedRecord:
      type: object
      properties:
        tenant:
          type: string
        productFamilies:
          type: array
          items:
            type: string
        badgeId:
          type: string
        errorMessage:
          type: string
        userId:
          type: string
    com.zebra.phoenix.licenseservice.domain.entity.JobImpactedRecord:
      type: object
      properties:
        type:
          type: string
          enum:
            - ENTITLEMENT_SUMMARIES
        count:
          type: integer
          format: int32
        tenant:
          type: string
        productFamilies:
          type: array
          items:
            type: string
        badgeId:
          type: string
        userId:
          type: string
    com.zebra.phoenix.licenseservice.domain.entity.JobProcess:
      type: object
      properties:
        type:
          type: string
          enum:
            - EXPIRY
            - PROCESS_LICENSE_UPDATE_FAILURES
        impactedRecords:
          type: array
          items:
            $ref: '#/components/schemas/com.zebra.phoenix.licenseservice.domain.entity.JobImpactedRecord'
        failedRecords:
          type: array
          items:
            $ref: '#/components/schemas/com.zebra.phoenix.licenseservice.domain.entity.JobFailedRecord'
        initiated:
          type: boolean
        completed:
          type: boolean
    com.zebra.phoenix.licenseservice.domain.UserLicenses:
      type: object
      properties:
        licenseActionType:
          type: string
          enum:
            - ACTIVATE
            - DEACTIVATE
        licensedApp:
          type: string
          minLength: 1
        userIds:
          type: array
          items:
            type: string
          minItems: 1
          uniqueItems: true
      required:
        - licensedApp
        - userIds
    com.zebra.phoenix.licenseservice.domain.dto.LicenseActivationDTO:
      type: object
      properties:
        status:
          type: string
        licensedApp:
          type: string
        count:
          type: integer
          format: int32
        licenseActionType:
          type: string
          enum:
            - ACTIVATE
            - DEACTIVATE
    com.zebra.phoenix.commons.models.KeySetPageCom.zebra.phoenix.licenseservice.domain.entity.ProductEntity:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/com.zebra.phoenix.licenseservice.domain.entity.ProductEntity'
        nextPageToken:
          type: string
    com.zebra.phoenix.licenseservice.domain.Feature:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        version:
          type: string
        licenseModel:
          type: string
    com.zebra.phoenix.licenseservice.domain.entity.ProductEntity:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        productType:
          type: string
        version:
          type: string
        description:
          type: string
        sku:
          type: string
        family:
          type: string
        type:
          type: string
        parentProduct:
          type: string
        licenseType:
          type: string
        module:
          type: string
        creationDate:
          type: string
          format: date-time
        lastModifiedDate:
          type: string
          format: date-time
        features:
          type: array
          items:
            $ref: '#/components/schemas/com.zebra.phoenix.licenseservice.domain.Feature'
        source:
          $ref: '#/components/schemas/com.zebra.phoenix.licenseservice.domain.source.ThalesProduct'
        status:
          type: string
          enum:
            - ACTIVE
            - INACTIVE
    com.zebra.phoenix.licenseservice.domain.source.ThalesProduct:
      type: object
      properties:
        sourceType:
          type: string
        id:
          type: string
        sourceIdentifier:
          type: string
    com.zebra.phoenix.licenseservice.domain.entity.LicenseDetailsEntity:
      type: object
      properties:
        id:
          type: string
        productFamily:
          type: string
        licenseModel:
          type: string
          enum:
            - USER
            - CONSUMPTION
            - UNKNOWN
    com.zebra.phoenix.commons.models.KeySetPageCom.zebra.phoenix.licenseservice.domain.entity.JobExecutionEntity:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/com.zebra.phoenix.licenseservice.domain.entity.JobExecutionEntity'
        nextPageToken:
          type: string
    com.zebra.phoenix.commons.models.KeySetPageCom.zebra.phoenix.licenseservice.domain.entity.LicenseUpdateFailureEntity:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/com.zebra.phoenix.licenseservice.domain.entity.LicenseUpdateFailureEntity'
        nextPageToken:
          type: string
    com.zebra.phoenix.licenseservice.domain.entity.LicenseUpdateFailureEntity:
      type: object
      properties:
        id:
          type: string
        tenant:
          type: string
        userId:
          type: string
        licensedApps:
          type: array
          items:
            type: string
          uniqueItems: true
        creationDate:
          type: string
          format: date-time
        lastModifiedDate:
          type: string
          format: date-time
        eventType:
          type: string
          enum:
            - UNKNOWN
            - CREATE
            - UPDATE
            - DELETE
            - MULTI_UPDATE
            - DEACTIVATE
            - UPDATE_LEVELS
            - UNRECOGNIZED
        errorMessage:
          type: string
        status:
          type: string
          enum:
            - PENDING
            - UPDATED
            - FAILED
    com.zebra.phoenix.commons.models.KeySetPageCom.zebra.phoenix.licenseservice.domain.entity.EntitlementEntity:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/com.zebra.phoenix.licenseservice.domain.entity.EntitlementEntity'
        nextPageToken:
          type: string
    com.zebra.phoenix.licenseservice.domain.ActivationKey:
      type: object
      properties:
        id:
          type: string
        group:
          type: string
        productId:
          type: string
        quantity:
          type: integer
          format: int64
    com.zebra.phoenix.licenseservice.domain.ProductKey:
      type: object
      properties:
        id:
          type: string
        key:
          type: string
        quantity:
          type: integer
          format: int64
        variantVersion:
          type: string
    com.zebra.phoenix.licenseservice.domain.entity.EntitlementEntity:
      type: object
      properties:
        id:
          type: string
        source:
          $ref: '#/components/schemas/com.zebra.phoenix.licenseservice.domain.source.ThalesEntitlement'
        tenant:
          type: string
        region:
          type: string
        salesUser:
          type: string
        salesOrderNumber:
          type: string
        purchaseOrderNumber:
          type: string
        subscriptionType:
          type: string
        productFamily:
          type: string
        customerSalesforceId:
          type: string
        customerName:
          type: string
        primaryContactEmail:
          type: string
        ccEmail:
          type: string
        status:
          type: string
          enum:
            - CREATED
            - UPDATED
            - ACTIVE
            - DISABLED
            - FAILED
        creationDate:
          type: string
          format: date-time
        lastModifiedDate:
          type: string
          format: date-time
        salesOrderDate:
          type: string
          format: date-time
        startDate:
          type: string
          format: date
        endDate:
          type: string
          format: date
        products:
          type: array
          items:
            $ref: '#/components/schemas/com.zebra.phoenix.licenseservice.domain.ProductKey'
        activations:
          type: array
          items:
            $ref: '#/components/schemas/com.zebra.phoenix.licenseservice.domain.ActivationKey'
        revokedActivations:
          type: array
          items:
            $ref: '#/components/schemas/com.zebra.phoenix.licenseservice.domain.ActivationKey'
        error:
          $ref: '#/components/schemas/com.zebra.phoenix.licenseservice.domain.thales.ErrorResponse'
        test:
          type: boolean
        quantityReduction:
          type: boolean
    com.zebra.phoenix.licenseservice.domain.source.ThalesEntitlement:
      type: object
      properties:
        sourceType:
          type: string
        id:
          type: string
        badgeId:
          type: string
        eid:
          type: string
    com.zebra.phoenix.licenseservice.domain.thales.Error:
      type: object
      properties:
        errorCode:
          type: integer
          format: int32
        description:
          type: string
        developerMessage:
          type: string
    com.zebra.phoenix.licenseservice.domain.thales.ErrorResponse:
      type: object
      properties:
        errorResponse:
          $ref: '#/components/schemas/com.zebra.phoenix.licenseservice.domain.thales.Error'
    com.zebra.phoenix.licenseservice.domain.dto.EntitlementSummaryDTO:
      type: object
      properties:
        source:
          $ref: '#/components/schemas/com.zebra.phoenix.licenseservice.domain.source.ThalesSummary'
        tenant:
          type: string
        startDate:
          type: string
          format: date
        endDate:
          type: string
          format: date
        applicationName:
          type: string
        productFamily:
          type: string
        licenseModel:
          type: string
          enum:
            - USER
            - CONSUMPTION
            - UNKNOWN
        subscriptionType:
          type: string
        status:
          type: string
          enum:
            - ACTIVE
            - EXPIRED
            - FAILED
            - CANCELLED
        totalQuantity:
          type: integer
          format: int64
        assignedQuantity:
          type: integer
          format: int64
        products:
          type: array
          items:
            $ref: '#/components/schemas/com.zebra.phoenix.licenseservice.domain.dto.ProductDTO'
        createdDate:
          type: string
          format: date-time
        lastModifiedDate:
          type: string
          format: date-time
    com.zebra.phoenix.licenseservice.domain.dto.ProductDTO:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        version:
          type: string
        family:
          type: string
        type:
          type: string
        module:
          type: string
        description:
          type: string
        sku:
          type: string
        licenseType:
          type: string
    com.zebra.phoenix.licenseservice.domain.source.ThalesSummary:
      type: object
      properties:
        sourceType:
          type: string
        badgeId:
          type: string
  securitySchemes:
    Authorization:
      type: apiKey
      description: Bearer token
      name: Authorization
      in: header
