openapi: 3.2.0 info: title: ASMS STB API description: AppStore Metadata Service REST API. MAS API in RDK. version: 0.7.0 license: name: Apache 2.0 url: http://www.apache.org/licenses/LICENSE-2.0.html tags: - name: STB paths: /apps: get: summary: Returns paginated list of applications available in AppStore Metadata Service operationId: listApplications tags: - STB parameters: - name: name in: query schema: type: string description: Application name (pattern) required: false example: you.i - name: description in: query schema: type: string description: Application description (pattern) required: false example: Awesome application - name: version in: query schema: type: string default: latest description: Searched version of application required: false example: 1.2.3 - name: type in: query schema: type: string description: Application type required: false example: application/vnd.rdk-app.dac.lightning - name: platform in: query schema: type: string description: Running platform (architecture:[version]:[os]) required: false example: arm:v7:linux - name: category in: query schema: $ref: '#/components/schemas/Category' description: Application category required: false example: application - name: maintainerName in: query schema: type: string description: Maintainer name required: false example: Liberty Global - name: offset in: query schema: type: integer description: The number of items to skip before starting to collect the result set required: false example: 0 - name: limit in: query schema: type: integer description: The number of items to return required: false example: 10 responses: 200: description: OK content: application/json: schema: $ref: '#/components/schemas/StbApplicationsList' default: description: Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' /apps/{applicationId}: get: summary: Returns details of the specified application/version operationId: getApplicationDetails tags: - STB parameters: - name: applicationId in: path schema: type: string description: Reverse Domain Notation ID + optional version separated by a colon. If the version is not specified then default latest version is considered required: true example: com.libertyglobal.app.awesome:1.2.3 - name: platformName in: query schema: type: string description: Platform name required: true - name: firmwareVer in: query schema: type: string description: Firmware version required: true responses: 200: description: Requested application details content: application/json: schema: $ref: '#/components/schemas/StbApplicationDetails' 400: description: 'Bad request. Used when * platformName is mandatory for native apps (100217) * firmwareVer is mandatory for native apps (100231) * unsupported application type (100237) ' 403: description: Access denied 404: description: Not Found 5XX: description: Unexpected error default: description: Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' components: schemas: Meta: type: object properties: resultSet: $ref: '#/components/schemas/ResultSetMeta' Dependency: type: object required: - id properties: id: type: string description: ID/Package name in Reverse Domain Notation example: com.libertyglobal.service.voice version: type: string description: Package version example: 0.3.4 ErrorResponse: type: object required: - message properties: message: type: string Category: type: string enum: - application - dev - service - resource - plugin description: Application category ResultSetMeta: type: object properties: count: type: integer description: Number of items in the current result set example: 9 offset: type: integer description: Number of skipped items example: 0 limit: type: integer description: Maximum number of items in the current result set example: 10 total: type: integer description: Number of items that match the search criteria. example: 9 Maintainer: type: object required: - code - name properties: code: type: string description: Maintainer code (eg. lgi) example: lgi name: type: string description: Maintainer name example: Liberty Global address: type: string description: Maintainer's office address example: Liberty Global B.V., Boeing Avenue 53, 1119 PE Schiphol Rijk, The Netherlands homepage: type: string description: Maintainer's homepage example: https://www.libertyglobal.com email: type: string description: Maintainer's email address example: developer@libertyglobal.com StbApplicationsList: type: object properties: applications: type: array items: $ref: '#/components/schemas/StbApplicationHeader' meta: $ref: '#/components/schemas/Meta' Platform: type: object required: - architecture - os properties: architecture: type: string description: Architecture (eg. arm, mips, x86, amd64, web) example: arm variant: type: string description: Variant (eg. v7, v8a) example: v7 os: type: string description: OS (eg. linux, all) example: linux Hardware: type: object properties: ram: type: string description: Minimum RAM (G/M/K) (eg. 512M) example: 512M dmips: type: string description: Minimum DMIPS (eg. 3000) example: 2000 persistent: type: string description: Persistent Storage (G/M/K) example: 60M cache: type: string description: Maximum cache size (G/M/K) example: 200M ApplicationHeader: type: object required: - icon - name - type - category properties: icon: type: string description: Icon location example: https://libertyglobal.com/s/apps/com.libertyglobal.app.awesome/1.2.3/image/1920x1080/icon.png name: type: string pattern: ^(?!\s*$).+ description: Application name example: Awesome Application description: type: string description: Application description example: This is Awesome App type: type: string description: Application type (example: application/vnd.rdk-app.dac.lightning) example: application/vnd.rdk-app.dac.native size: type: integer description: Size in bytes example: 10000000 minimum: 0 maximum: 2147483647 category: $ref: '#/components/schemas/Category' localization: type: array items: $ref: '#/components/schemas/Localization' StbSingleApplicationHeader: allOf: - $ref: '#/components/schemas/StbApplicationHeader' - $ref: '#/components/schemas/AppicationHeaderGeneratedAttributes' AppicationHeaderGeneratedAttributes: type: object required: - url properties: url: type: string description: Application url (eg. OCI Container Manifest, external web app url) example: https://$SERVER/com.libertyglobal.app.awesome/1.2.3/cascadelake/502.54.1/com.libertyglobal.app.awesome_1.2.3_cascadelake_502.54.1.tar.gz StbApplicationHeader: allOf: - $ref: '#/components/schemas/ApplicationHeader' - type: object required: - id - version properties: id: type: string pattern: ^(?!\s*$).+ description: Reverse Domain Notation ID example: com.libertyglobal.app.awesome version: type: string description: Application version example: 1.2.3 StbVersions: type: array description: semantically sorted versions of the application items: $ref: '#/components/schemas/StbVersion' Requirements: type: object required: - platform properties: dependencies: type: array items: $ref: '#/components/schemas/Dependency' platform: $ref: '#/components/schemas/Platform' hardware: $ref: '#/components/schemas/Hardware' features: type: array items: $ref: '#/components/schemas/Feature' StbApplicationDetails: type: object required: - header - requirements properties: header: $ref: '#/components/schemas/StbSingleApplicationHeader' requirements: $ref: '#/components/schemas/Requirements' maintainer: $ref: '#/components/schemas/Maintainer' versions: $ref: '#/components/schemas/StbVersions' Feature: type: object properties: name: type: string description: Feature name example: rdk.api.awc version: type: string description: Feature version example: 2.0 required: type: boolean description: Required for run example: false StbVersion: type: object properties: version: type: string description: Version code example: 1.2.3 Localization: type: object required: - languageCode - name properties: languageCode: type: string description: The ISO 639-2 three character language code example: nld name: type: string description: Application name in selected language (UTF-8) example: Geweldige applicatie description: type: string description: Application description in selected language (UTF-8) example: Dit is een geweldige applicatie