API: Internal/Beta

Products define the services exposed by a Provider.

sealed class Product {
    abstract val balance: Long?
    abstract val category: ProductCategoryId
    abstract val chargeType: ChargeType
    abstract val description: String
    abstract val freeToUse: Boolean
    abstract val hiddenInGrantApplications: Boolean
    abstract val id: String
    abstract val name: String
    abstract val pricePerUnit: Long
    abstract val priority: Int
    abstract val productType: ProductType
    abstract val unitOfPrice: ProductPriceUnit
    abstract val version: Int

    class Compute : Product()
    class Ingress : Product()
    class License : Product()
    class NetworkIP : Product()
    class Storage : Product()

For more information see this page.

balance: Long? Included only with certain endpoints which support `includeBalance`
category: ProductCategoryId The category groups similar products together, it also defines which provider owns the product
chargeType: ChargeType The category of payment model. Used in combination with unitOfPrice to create a complete payment model.
description: String A short (single-line) description of the Product
freeToUse: Boolean Indicates that a Wallet is not required to use this Product

Under normal circumstances, a Wallet is always required. This is required even if a Product has a pricePerUnit of 0. If freeToUse = true then the Wallet requirement is dropped.

hiddenInGrantApplications: Boolean Flag to indicate that this Product is not publicly available

⚠️ WARNING: This doesn’t make the Product secret. In only hides the Product from the grant system’s UI.

id: String

Deprecated: Yes

name: String A unique name associated with this Product
pricePerUnit: Long The price of a single unit in a single period

For more information go here.

priority: Int A integer used for changing the order in which products are displayed (ascending order)
productType: ProductType Classifier used to explain the type of Product
unitOfPrice: ProductPriceUnit The unit of price. Used in combination with chargeType to create a complete payment model.
version: Int A version number for this Product, managed by UCloud