Example: Declaring minimal support for virtual machinesΒΆ

Frequency of useCommon
Actors
  • The UCloud/Core service user (ucloud)
Communication Flow: Kotlin
/* In this example we will show how you, as a provider, can declare minimal support for virtual
machines. This example assumes that you have already registered two compute products with
UCloud/Core. */


/* The retrieveProducts call will be invoked by the UCloud/Core service account. UCloud will generally
cache this response for a period of time before re-querying for information. As a result, changes
in your response might not be immediately visible in UCloud. */

JobsProvider.retrieveProducts.call(
    Unit,
    ucloud
).orThrow()

/*
BulkResponse(
    responses = listOf(ComputeSupport(
        docker = ComputeSupport.Docker(
            enabled = null, 
            logs = null, 
            peers = null, 
            terminal = null, 
            timeExtension = null, 
            utilization = null, 
            vnc = null, 
            web = null, 
        ), 
        native = ComputeSupport.Native(
            enabled = null, 
            logs = null, 
            terminal = null, 
            timeExtension = null, 
            utilization = null, 
            vnc = null, 
            web = null, 
        ), 
        product = ProductReference(
            category = "example-compute", 
            id = "example-compute-1", 
            provider = "example", 
        ), 
        virtualMachine = ComputeSupport.VirtualMachine(
            enabled = true, 
            logs = null, 
            suspension = null, 
            terminal = null, 
            timeExtension = null, 
            utilization = null, 
            vnc = null, 
        ), 
    ), ComputeSupport(
        docker = ComputeSupport.Docker(
            enabled = null, 
            logs = null, 
            peers = null, 
            terminal = null, 
            timeExtension = null, 
            utilization = null, 
            vnc = null, 
            web = null, 
        ), 
        native = ComputeSupport.Native(
            enabled = null, 
            logs = null, 
            terminal = null, 
            timeExtension = null, 
            utilization = null, 
            vnc = null, 
            web = null, 
        ), 
        product = ProductReference(
            category = "example-compute", 
            id = "example-compute-2", 
            provider = "example", 
        ), 
        virtualMachine = ComputeSupport.VirtualMachine(
            enabled = true, 
            logs = null, 
            suspension = null, 
            terminal = null, 
            timeExtension = null, 
            utilization = null, 
            vnc = null, 
        ), 
    )), 
)
*/

/* πŸ“ Note: If a support feature is not explicitly mentioned, then no support is assumed. */


/* πŸ“ Note: The support information must be repeated for every Product you support. */


/* πŸ“ Note: The Products mentioned in this response must already be registered with UCloud. */
Communication Flow: TypeScript
/* In this example we will show how you, as a provider, can declare minimal support for virtual
machines. This example assumes that you have already registered two compute products with
UCloud/Core. */


/* The retrieveProducts call will be invoked by the UCloud/Core service account. UCloud will generally
cache this response for a period of time before re-querying for information. As a result, changes
in your response might not be immediately visible in UCloud. */

// Authenticated as ucloud
await callAPI(JobsProviderPROVIDERIDApi.retrieveProducts(
    {
    }
);

/*
{
    "responses": [
        {
            "product": {
                "id": "example-compute-1",
                "category": "example-compute",
                "provider": "example"
            },
            "docker": {
                "enabled": null,
                "web": null,
                "vnc": null,
                "logs": null,
                "terminal": null,
                "peers": null,
                "timeExtension": null,
                "utilization": null
            },
            "virtualMachine": {
                "enabled": true,
                "logs": null,
                "vnc": null,
                "terminal": null,
                "timeExtension": null,
                "suspension": null,
                "utilization": null
            },
            "native": {
                "enabled": null,
                "logs": null,
                "vnc": null,
                "terminal": null,
                "timeExtension": null,
                "utilization": null,
                "web": null
            }
        },
        {
            "product": {
                "id": "example-compute-2",
                "category": "example-compute",
                "provider": "example"
            },
            "docker": {
                "enabled": null,
                "web": null,
                "vnc": null,
                "logs": null,
                "terminal": null,
                "peers": null,
                "timeExtension": null,
                "utilization": null
            },
            "virtualMachine": {
                "enabled": true,
                "logs": null,
                "vnc": null,
                "terminal": null,
                "timeExtension": null,
                "suspension": null,
                "utilization": null
            },
            "native": {
                "enabled": null,
                "logs": null,
                "vnc": null,
                "terminal": null,
                "timeExtension": null,
                "utilization": null,
                "web": null
            }
        }
    ]
}
*/

/* πŸ“ Note: If a support feature is not explicitly mentioned, then no support is assumed. */


/* πŸ“ Note: The support information must be repeated for every Product you support. */


/* πŸ“ Note: The Products mentioned in this response must already be registered with UCloud. */
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
# ------------------------------------------------------------------------------------------------------

# In this example we will show how you, as a provider, can declare minimal support for virtual
# machines. This example assumes that you have already registered two compute products with
# UCloud/Core.

# The retrieveProducts call will be invoked by the UCloud/Core service account. UCloud will generally
# cache this response for a period of time before re-querying for information. As a result, changes
# in your response might not be immediately visible in UCloud.

# Authenticated as ucloud
curl -XGET -H "Authorization: Bearer $accessToken" "$host/ucloud/PROVIDERID/jobs/retrieveProducts" 

# {
#     "responses": [
#         {
#             "product": {
#                 "id": "example-compute-1",
#                 "category": "example-compute",
#                 "provider": "example"
#             },
#             "docker": {
#                 "enabled": null,
#                 "web": null,
#                 "vnc": null,
#                 "logs": null,
#                 "terminal": null,
#                 "peers": null,
#                 "timeExtension": null,
#                 "utilization": null
#             },
#             "virtualMachine": {
#                 "enabled": true,
#                 "logs": null,
#                 "vnc": null,
#                 "terminal": null,
#                 "timeExtension": null,
#                 "suspension": null,
#                 "utilization": null
#             },
#             "native": {
#                 "enabled": null,
#                 "logs": null,
#                 "vnc": null,
#                 "terminal": null,
#                 "timeExtension": null,
#                 "utilization": null,
#                 "web": null
#             }
#         },
#         {
#             "product": {
#                 "id": "example-compute-2",
#                 "category": "example-compute",
#                 "provider": "example"
#             },
#             "docker": {
#                 "enabled": null,
#                 "web": null,
#                 "vnc": null,
#                 "logs": null,
#                 "terminal": null,
#                 "peers": null,
#                 "timeExtension": null,
#                 "utilization": null
#             },
#             "virtualMachine": {
#                 "enabled": true,
#                 "logs": null,
#                 "vnc": null,
#                 "terminal": null,
#                 "timeExtension": null,
#                 "suspension": null,
#                 "utilization": null
#             },
#             "native": {
#                 "enabled": null,
#                 "logs": null,
#                 "vnc": null,
#                 "terminal": null,
#                 "timeExtension": null,
#                 "utilization": null,
#                 "web": null
#             }
#         }
#     ]
# }

# πŸ“ Note: If a support feature is not explicitly mentioned, then no support is assumed.

# πŸ“ Note: The support information must be repeated for every Product you support.

# πŸ“ Note: The Products mentioned in this response must already be registered with UCloud.
Communication Flow: Visual