openapi: 3.2.0 info: title: Portal Software API version: 0.1.0 servers: - url: https://am1.portal.api.nasuni.com description: Base URL for accounts assigned the US region. - url: https://eu1.portal.api.nasuni.com description: Base URL for accounts assigned the EU region. - url: https://ap1.portal.api.nasuni.com description: Base URL for accounts assigned the Asia-Pacific region. security: - HTTPBearer: [] tags: - name: Software paths: /software/downloads: get: tags: - Software summary: Get Software Downloads operationId: get_downloads_software_downloads_get security: - HTTPBearer: [] parameters: - name: type in: query required: false schema: anyOf: - $ref: '#/components/schemas/ApplianceType' - type: 'null' title: Type - name: platform in: query required: false schema: anyOf: - type: string - type: 'null' title: Platform - name: version in: query required: false schema: anyOf: - type: string - type: 'null' title: Version responses: '200': description: Software downloads retrieved successfully content: application/json: schema: $ref: '#/components/schemas/DownloadsDto' '401': description: Not authenticated content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Insufficient permissions content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '422': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' /software/downloads/{id}: get: tags: - Software summary: Get Download URL description: Get the download URL for a specific software download operationId: get_download_url_software_downloads__id__get security: - HTTPBearer: [] parameters: - name: id in: path required: true schema: type: string format: uuid title: Id responses: '200': description: Download URL retrieved successfully content: application/json: schema: $ref: '#/components/schemas/DownloadUrlResponseDto' '401': description: Not authenticated content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Insufficient permissions content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '422': description: Invalid input data content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' components: schemas: ValidationErrorResponse: properties: message: type: string title: Message detail: items: additionalProperties: true type: object type: array title: Detail example: - ctx: error: 'invalid length: expected length 32 for simple format, found 3' input: '123' loc: - path - id msg: 'Input should be a valid UUID, invalid length: expected length 32 for simple format, found 3' type: uuid_parsing type: object required: - message - detail title: ValidationErrorResponse DownloadUrlResponseDto: properties: download_url: anyOf: - type: string - type: 'null' title: Download Url type: object required: - download_url title: DownloadUrlResponseDto description: Response DTO containing the download URL for a specific download. DownloadsDto: properties: items: items: $ref: '#/components/schemas/DownloadInfoDto' type: array title: Items type: object title: DownloadsDto ApplianceType: type: string enum: - nmc - naa - edge - uaas - file_iq - naada - awada - desktop - ha_edge title: ApplianceType ErrorResponse: properties: message: type: string title: Message detail: anyOf: - {} - type: 'null' title: Detail type: object required: - message - detail title: ErrorResponse DownloadInfoDto: properties: appliance_type: $ref: '#/components/schemas/ApplianceType' version: anyOf: - type: string - type: 'null' title: Version platform: type: string title: Platform availability: type: string enum: - url - cloud title: Availability default: url display_name: type: string title: Display Name description: Display name of the appliance type id: anyOf: - type: string format: uuid - type: 'null' title: Id type: object required: - appliance_type - platform - display_name title: DownloadInfoDto securitySchemes: ServiceKeyHeader: type: apiKey in: header name: x-service-key description: Service key for programmatic API access. Must be used together with x-service-secret. ServiceSecretHeader: type: apiKey in: header name: x-service-secret description: Service secret for programmatic API access. Must be used together with x-service-key. UserKeyHeader: type: apiKey in: header name: x-user-key description: User key for user-specific API access. HTTPBearer: type: http scheme: bearer bearerFormat: JWT description: Bearer token obtained from /auth/token endpoint. OAuth2ClientCredentials: type: oauth2 description: Standard OAuth2 Client Credentials flow (RFC 6749 ยง4.4). Send `client_id` (service key) and `client_secret` (service secret) as form-encoded body parameters to the token endpoint. flows: clientCredentials: tokenUrl: /auth/token scopes: {}