Example: Retrieve a single product

Frequency of useCommon
Actors
  • An authenticated user (user)
Communication Flow: Kotlin
Products.retrieve.call(
    ProductsRetrieveRequest(
        filterArea = null, 
        filterCategory = "example-compute", 
        filterName = "example-compute", 
        filterProvider = "example", 
        filterVersion = null, 
        includeBalance = null, 
    ),
    user
).orThrow()

/*
Product.Compute(
    category = ProductCategoryId(
        id = "example-compute", 
        name = "example-compute", 
        provider = "example", 
    ), 
    chargeType = ChargeType.ABSOLUTE, 
    cpu = 10, 
    description = "An example compute product", 
    freeToUse = false, 
    gpu = 0, 
    hiddenInGrantApplications = false, 
    memoryInGigs = 20, 
    name = "example-compute", 
    pricePerUnit = 1000000, 
    priority = 0, 
    productType = ProductType.COMPUTE, 
    unitOfPrice = ProductPriceUnit.CREDITS_PER_MINUTE, 
    version = 1, 
    balance = null, 
    id = "example-compute", 
)
*/
Communication Flow: TypeScript
// Authenticated as user
await callAPI(ProductsApi.retrieve(
    {
        "filterName": "example-compute",
        "filterCategory": "example-compute",
        "filterProvider": "example",
        "filterArea": null,
        "filterVersion": null,
        "includeBalance": null
    }
);

/*
{
    "type": "compute",
    "balance": null,
    "name": "example-compute",
    "pricePerUnit": 1000000,
    "category": {
        "name": "example-compute",
        "provider": "example"
    },
    "description": "An example compute product",
    "priority": 0,
    "cpu": 10,
    "memoryInGigs": 20,
    "gpu": 0,
    "version": 1,
    "freeToUse": false,
    "unitOfPrice": "CREDITS_PER_MINUTE",
    "chargeType": "ABSOLUTE",
    "hiddenInGrantApplications": false,
    "productType": "COMPUTE"
}
*/
Communication Flow: Curl
# ------------------------------------------------------------------------------------------------------
# $host is the UCloud instance to contact. Example: 'http://localhost:8080' or 'https://cloud.sdu.dk'
# $accessToken is a valid access-token issued by UCloud
# ------------------------------------------------------------------------------------------------------

# Authenticated as user
curl -XGET -H "Authorization: Bearer $accessToken" "$host/api/products/retrieve?filterName=example-compute&filterCategory=example-compute&filterProvider=example" 

# {
#     "type": "compute",
#     "balance": null,
#     "name": "example-compute",
#     "pricePerUnit": 1000000,
#     "category": {
#         "name": "example-compute",
#         "provider": "example"
#     },
#     "description": "An example compute product",
#     "priority": 0,
#     "cpu": 10,
#     "memoryInGigs": 20,
#     "gpu": 0,
#     "version": 1,
#     "freeToUse": false,
#     "unitOfPrice": "CREDITS_PER_MINUTE",
#     "chargeType": "ABSOLUTE",
#     "hiddenInGrantApplications": false,
#     "productType": "COMPUTE"
# }
Communication Flow: Visual