Tool Name: Not defined in the current tool contract
Risk Level: Read
Execution Mode: Synchronous
Category: Organization App Library
Quick Start (Copy and Use)
Summary: Read rollout totals and per-device delivery status for one Organization App Library application release.
Prerequisites: A positive ReleaseId obtained from latest_release.release_id in List Organization App Library Applications or Search Organization App Library Applications.
Success Criteria: StatusCode is 200 and ErrorMessage is empty. This confirms the status page was read; it does not mean every device has succeeded.
What to Do Next: Inspect Counts.failed_count and Records[].status. A Failed record can be eligible for retry; Processing is not a final outcome.
Minimal Request Example:
{
"ReleaseId": 1,
"PageIndex": 1,
"PageSize": 20
}
Minimal Response Example:
{
"Release": {
"release_id": 1,
"store_id": 1,
"application_name": "",
"version": "",
"status": "Releasing"
},
"Counts": {
"target_count": 0,
"succeeded_count": 0,
"failed_count": 0,
"in_progress_count": 0
},
"Records": [],
"Pagination": {
"total": 0,
"page_size": 20,
"page_index": 1,
"last_page": 1
},
"Hint": "",
"Retryable": false,
"OriginalStatusCode": 200,
"StatusCode": 200,
"ErrorMessage": ""
}
Recipes (Common Recipes)
Recipe 1: Read a Release Summary
When to use: You have a release ID and need its current counts plus the first device page.
{
"ReleaseId": 1,
"SortBy": "status",
"SortOrder": "desc",
"PageIndex": 1,
"PageSize": 20
}
Recipe 2: Scope to a Group and Descendants
When to use: You need the counts and records only for one group subtree.
{
"ReleaseId": 1,
"GroupId": 1,
"SortBy": "updated_at",
"SortOrder": "desc",
"PageIndex": 1,
"PageSize": 20
}
Recipe 3: Read the Next Status Page
When to use: A successful response has Pagination.page_index < Pagination.last_page.
{
"ReleaseId": 1,
"SortBy": "status",
"SortOrder": "desc",
"PageIndex": 2,
"PageSize": 100
}
1. Overview
1.1 Description
Reads one release's summary, scoped distribution counts, and paginated per-device delivery records.
1.2 When to Use
- Monitor a release during or after distribution.
- Identify failed devices and distinguish them from Processing devices.
- Limit a release view to a group and its child groups.
1.3 Execution Mode and Response
This is synchronous, read-only, and idempotent. Counts and Records describe the same ReleaseId and optional GroupId scope. A successful request is a status snapshot, not a rollout-completion guarantee.
1.4 Prerequisites
| Condition | Description |
|---|---|
| Release ID | ReleaseId must be a positive integer from latest_release.release_id. |
| Optional group | GroupId, when provided, must be a positive integer and includes the group and its descendants. |
| Pagination | PageIndex >= 1; PageSize is 1 through 100. |
1.5 Prerequisite Tools
| Tool | Purpose |
|---|---|
| List Organization App Library Applications | Obtain latest_release.release_id through simple browse controls. |
| Search Organization App Library Applications | Obtain latest_release.release_id through structured filtering. |
| List Groups | Obtain a group ID when group scope is needed. |
| Resolve Group ID by Name | Obtain a group ID from a group name when available. |
| Batch Resolve Group IDs by Name | Obtain multiple group IDs from names when available. |
1.6 Similar Tools
This tool reports one release's per-device distribution outcomes. It does not browse the application catalog and does not start, pause, or retry a rollout.
2. Inputs
2.1 Parameter List
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| ReleaseId | number | Yes | - | Positive release identifier. |
| GroupId | number | No | omitted | Positive group identifier; includes descendants. |
| SortBy | string | No | status | status or updated_at. |
| SortOrder | string | No | desc | asc or desc. |
| PageIndex | number | No | 1 | 1-based page index. |
| PageSize | number | No | 20 | Records per page, from 1 through 100. |
2.2 Parameter Details
`ReleaseId`
Pass the positive latest_release.release_id returned by an Organization App Library application tool. A list or search item whose latest_release is null cannot provide this input.
`GroupId`
Optionally pass a positive group ID to include that group and its child groups. Omit it to include all available targets for the release.
`SortBy` and `SortOrder`
Use status or updated_at with asc or desc. For status, ascending orders Processing, Failed, then Success; descending reverses that order. For updated_at, ascending shows older updates first and descending shows newer updates first.
`PageIndex` and `PageSize`
Both must be positive whole numbers. PageSize is limited to 1 through 100.
2.3 Parameter Combination Logic
Counts and Records use the same ReleaseId and optional GroupId scope. Preserve scope and sorting when paging. Do not infer retry eligibility solely from Counts.in_progress_count; inspect failed_count and the individual Failed records.
3. Outputs
3.1 Response Examples
The Quick Start response is a successful release-status page.
Invalid release ID:
{
"Release": {},
"Counts": {},
"Records": [],
"Pagination": {},
"Hint": "Provide an existing release ID, then retry.",
"Retryable": false,
"OriginalStatusCode": 0,
"StatusCode": -1,
"ErrorMessage": "ReleaseId must be a positive integer."
}
3.2 Field Descriptions
| Field | Type | Description |
|---|---|---|
| Release | object | Release summary. |
| Release.release_id | integer | Release identifier. |
| Release.store_id | integer | Application-library identifier. |
| Release.application_name | string | Application name. |
| Release.version | string | Release version. |
| Release.status | string | Release status. |
| Counts | object | Totals for the same release and group scope as Records. |
| Counts.target_count | integer | Number of target devices. |
| Counts.succeeded_count | integer | Number of successful distributions. |
| Counts.failed_count | integer | Number of failed distributions. |
| Counts.in_progress_count | integer | Number of records not yet succeeded or failed. |
| Records | object-array | Current page of per-device distribution records. |
| Records[].device.device_id | string | Device identifier. |
| Records[].device.name | string | Device name. |
| Records[].device.group_id | integer/null | Current group identifier, or null when unavailable. |
| Records[].device.model | string | Device model. |
| Records[].device.platform | string | Android or Windows. |
| Records[].device.online | string | Online, Offline, or Unknown. |
| Records[].status | string | Per-device distribution status. |
| Records[].updated_at | string/null | UTC time in YYYY-MM-DD HH:mm:ss, or null. |
| Pagination | object | total, page_size, page_index, and last_page. |
| Hint | string | Recommended next action after a failure; empty on success. |
| Retryable | bool | Whether the same request may be attempted again after a failure. |
| OriginalStatusCode | number | Upstream HTTP status; 0 means no response was received. |
| StatusCode | number | Tool status. |
| ErrorMessage | string | Empty on success; otherwise the failure reason. |
3.3 Status and Enum Values
| Field | Values | Meaning |
|---|---|---|
| Release.status | The version has been deleted, Paused Rollout, Ready to rollout, Releasing, Rolled out to all devices, Scheduled Release, Unknown | Release status. |
| Records[].status | Not Installed | Release target has no install progress yet. |
| Records[].status | Processing | Delivery is underway. |
| Records[].status | Success | Delivery succeeded. |
| Records[].status | Failed | Delivery failed. |
| Records[].device.online | Online, Offline, Unknown | Device connectivity state. |
| StatusCode | -1, 200, 500 | Validation failure, completed request, or upstream/system/network failure. |
3.4 Pagination
Pagination.page_index and Pagination.last_page are 1-based. Request PageIndex + 1 while page_index < last_page, retaining the same release, group scope, and sort controls. PageSize defaults to 20 and is limited to 100.
4. Examples
4.1 Basic Example: Release Summary and First Records
{
"ReleaseId": 1,
"SortBy": "status",
"SortOrder": "desc",
"PageIndex": 1,
"PageSize": 20
}
4.2 Advanced Example: Prioritize Old Status Updates in a Group
{
"ReleaseId": 1,
"GroupId": 1,
"SortBy": "updated_at",
"SortOrder": "asc",
"PageIndex": 1,
"PageSize": 100
}
4.3 Error Example: Invalid Group ID
{
"ReleaseId": 1,
"GroupId": 0
}
This returns StatusCode -1, ErrorMessage GroupId must be a positive integer when provided., and a hint to provide an existing group ID or omit it.
5. Error Handling
| Condition | Visible result | Action |
|---|---|---|
| Missing credential or invalid release/group/sort/page input | StatusCode: -1 | Correct the input using Hint; do not retry unchanged input. |
| HTTP 429 | StatusCode: 500, Retryable: true | Wait 10-30 seconds, then retry once. |
| HTTP 401 or 403 | StatusCode: 500 | Refresh authorization or request the required permission. |
| Other transient upstream HTTP failure | StatusCode: 500; Retryable is true only for HTTP 500, 502, 503, or 504 | Retry only when Retryable is true. |
| Upstream business error | StatusCode: 200, non-empty ErrorMessage | Treat it as a failure and follow Hint. |
6. Best Practices
6.1 Performance
Use GroupId when the intended operational scope is one group subtree. Page through large record sets rather than requesting more than 100 records.
6.2 Safety
This tool only reports status; it cannot change a rollout or resend a delivery.
6.3 Idempotency
Idempotent. Repeating a request reads a current status snapshot without changing distribution state.
7. Related Tools
| Tool | Use |
|---|---|
| List Organization App Library Applications | Obtain a release ID through simple browse controls. |
| Search Organization App Library Applications | Obtain a release ID through structured filtering. |
| Retry Organization App Library Distribution | Retry eligible failed delivery only after inspecting this status. |
8. Tool Chains
8.1 Review Failed Delivery Before Retry
List Organization App Library Applications or Search Organization App Library Applications -> List Organization App Library Distribution Status -> Retry Organization App Library Distribution -> List Organization App Library Distribution Status
- Obtain latest_release.release_id from an application listing or search result.
- Read the release status and confirm at least one relevant record is Failed.
- Obtain explicit user approval for that named release before retrying.
- Re-read this status after retry acceptance to inspect the new per-device outcomes; no polling interval is defined by the current contract.
Leave a Reply.