Example: Looking up resources by provider generated ID¶
Frequency of use | Common |
---|---|
Actors |
|
Communication Flow: Kotlin
ResourceProvider.create.call(
bulkRequestOf(ExampleResource(
createdAt = 1635170395571,
id = "1234",
owner = ResourceOwner(
createdBy = "user",
project = null,
),
permissions = ResourcePermissions(
myself = listOf(Permission.ADMIN),
others = emptyList(),
),
specification = ExampleResource.Spec(
product = ProductReference(
category = "example-compute",
id = "example-compute",
provider = "example",
),
start = 0,
target = 100,
),
status = ExampleResource.Status(
resolvedProduct = null,
resolvedSupport = null,
state = State.RUNNING,
value = 10,
),
updates = listOf(ExampleResource.Update(
currentValue = null,
newState = State.PENDING,
status = "We are about to start counting!",
timestamp = 1635170395571,
), ExampleResource.Update(
currentValue = 10,
newState = State.RUNNING,
status = "We are now counting!",
timestamp = 1635170395571,
)),
providerGeneratedId = "1234",
)),
ucloud
).orThrow()
/*
BulkResponse(
responses = listOf(FindByStringId(
id = "mhxas1",
)),
)
*/
ResourceControl.browse.call(
ResourceBrowseRequest(
consistency = null,
flags = ExampleResourceFlags(
filterCreatedAfter = null,
filterCreatedBefore = null,
filterCreatedBy = null,
filterIds = null,
filterProductCategory = null,
filterProductId = null,
filterProvider = null,
filterProviderIds = "mhxas1",
filterState = null,
hideProductCategory = null,
hideProductId = null,
hideProvider = null,
includeOthers = false,
includeProduct = false,
includeSupport = false,
includeUpdates = false,
),
itemsPerPage = null,
itemsToSkip = null,
next = null,
sortBy = null,
sortDirection = null,
),
provider
).orThrow()
/*
PageV2(
items = listOf(ExampleResource(
createdAt = 1635170395571,
id = "1234",
owner = ResourceOwner(
createdBy = "user",
project = null,
),
permissions = ResourcePermissions(
myself = listOf(Permission.ADMIN),
others = emptyList(),
),
specification = ExampleResource.Spec(
product = ProductReference(
category = "example-compute",
id = "example-compute",
provider = "example",
),
start = 0,
target = 100,
),
status = ExampleResource.Status(
resolvedProduct = null,
resolvedSupport = null,
state = State.RUNNING,
value = 10,
),
updates = listOf(ExampleResource.Update(
currentValue = null,
newState = State.PENDING,
status = "We are about to start counting!",
timestamp = 1635170395571,
), ExampleResource.Update(
currentValue = 10,
newState = State.RUNNING,
status = "We are now counting!",
timestamp = 1635170395571,
)),
providerGeneratedId = "1234",
)),
itemsPerPage = 100,
next = null,
)
*/
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 ucloud
curl -XPOST -H "Authorization: Bearer $accessToken" -H "Content-Type: content-type: application/json; charset=utf-8" "$host/ucloud/PROVIDERID/example" -d '{
"items": [
{
"id": "1234",
"specification": {
"start": 0,
"target": 100,
"product": {
"id": "example-compute",
"category": "example-compute",
"provider": "example"
}
},
"createdAt": 1635170395571,
"status": {
"state": "RUNNING",
"value": 10,
"resolvedSupport": null,
"resolvedProduct": null
},
"updates": [
{
"timestamp": 1635170395571,
"status": "We are about to start counting!",
"newState": "PENDING",
"currentValue": null
},
{
"timestamp": 1635170395571,
"status": "We are now counting!",
"newState": "RUNNING",
"currentValue": 10
}
],
"owner": {
"createdBy": "user",
"project": null
},
"permissions": {
"myself": [
"ADMIN"
],
"others": [
]
}
}
]
}'
# {
# "responses": [
# {
# "id": "mhxas1"
# }
# ]
# }
# Authenticated as provider
curl -XGET -H "Authorization: Bearer $accessToken" "$host/api/example/control/browse?includeOthers=false&includeUpdates=false&includeSupport=false&includeProduct=false&filterProviderIds=mhxas1"
# {
# "itemsPerPage": 100,
# "items": [
# {
# "id": "1234",
# "specification": {
# "start": 0,
# "target": 100,
# "product": {
# "id": "example-compute",
# "category": "example-compute",
# "provider": "example"
# }
# },
# "createdAt": 1635170395571,
# "status": {
# "state": "RUNNING",
# "value": 10,
# "resolvedSupport": null,
# "resolvedProduct": null
# },
# "updates": [
# {
# "timestamp": 1635170395571,
# "status": "We are about to start counting!",
# "newState": "PENDING",
# "currentValue": null
# },
# {
# "timestamp": 1635170395571,
# "status": "We are now counting!",
# "newState": "RUNNING",
# "currentValue": 10
# }
# ],
# "owner": {
# "createdBy": "user",
# "project": null
# },
# "permissions": {
# "myself": [
# "ADMIN"
# ],
# "others": [
# ]
# }
# }
# ],
# "next": null
# }