Pool Models
The Pools SDK surface contains listing, creation, deletion and device-membership operations. Use this page when implementing typed wrappers, shared test utilities or generated integration code.
For executable examples, see List Pools and Manage Pools.
Type Map
Purpose | Java | Node.js |
|---|---|---|
Service | PoolsApi | PoolsApi |
List request | ListPoolsRequest | ListPoolsRequest |
Request builder | ListPoolsRequest.Builder | ListPoolsRequestBuilder |
Create request | CreatePoolRequest | CreatePoolRequest |
Create request builder | CreatePoolRequest.Builder | CreatePoolRequestBuilder |
Filter key | PoolFilter | PoolFilter |
Filter rule | PoolFilterRequest | PoolFilterRequest |
Pool result | Pool | Pool |
Paginated result | PageDto<Pool> | PageDto<Pool> |
PoolsApi
Obtain the service from the client:
PoolsApi poolsApi = client.pools();The client memoizes this service. Repeated calls return the same service instance for the client lifetime.
Java signature | Node.js signature |
|---|---|
PageDto<Pool> list(ListPoolsRequest request) | list(request?: ListPoolsRequest): Promise<PageDto<Pool>> |
PageDto<Pool> listByDefaultPool(ListPoolsRequest request) | listByDefaultPool(request?: ListPoolsRequest): Promise<PageDto<Pool>> |
Pool create(CreatePoolRequest request) | create(request: CreatePoolRequest): Promise<Pool> |
void delete(String poolId) | delete(poolId: string): Promise<void> |
List<String> addDevices(String poolId, List<String> serials) | addDevices(poolId: string, serials: string[]): Promise<string[]> |
List<String> removeDevices(String poolId, List<String> serials) | removeDevices(poolId: string, serials: string[]): Promise<string[]> |
The Java implementation accepts null and then creates a default ListPoolsRequest. Prefer an explicit builder in customer code so pagination intent remains visible.
ListPoolsRequest
Java API
Member | Signature | Behavior |
|---|---|---|
Constructor | new ListPoolsRequest() | Creates empty filters and default sorting |
Factory | static Builder builder() | Creates a request builder |
Filters getter | List<PoolFilterRequest> getFilters() | Returns an unmodifiable view |
Filters setter | void setFilters(List<PoolFilterRequest> filters) | Copies the list; null becomes empty |
Sorting getter | Sorting getSorting() | Returns current sorting configuration |
Sorting setter | void setSorting(Sorting sorting) | Uses default Sorting when null |
Node.js Shape
interface ListPoolsRequest {
filters: PoolFilterRequest[];
sorting: Sorting;
}ListPoolsRequestBuilder.build() returns copied filter and sorting values so later builder changes do not mutate the built request.
ListPoolsRequest Builder
Method | Input | Result |
|---|---|---|
page(value) | integer | Sets zero-based sorting.page |
size(value) | integer | Sets sorting.size |
sortBy(value) | string | Sets sorting.sortBy |
direction(value) | SortDirection | Sets ASC or DESC |
addFilter(key, value, operation) | Pool filter components | Appends one rule |
filters(rules) | Filter collection | Replaces all rules |
build() | None | Returns ListPoolsRequest |
Default sorting is:
{
"page": 0,
"size": 20,
"sortBy": "ID",
"direction": "DESC"
}PoolFilter
SDK version 1.0.1 defines two pool filters:
PoolFilter.NAME
PoolFilter.IS_DEFAULTNAME accepts a pool-name string. IS_DEFAULT accepts a boolean; listByDefaultPool(...) applies IS_DEFAULT = true automatically. Filter operations are:
- SearchOperation.EQUAL
- SearchOperation.NOT_EQUAL
- SearchOperation.GREATER_THAN
- SearchOperation.LESS_THAN
Review the List Pools filter section for accepted values and operations.
PoolFilterRequest
Java API
Member | Signature |
|---|---|
Constructor | new PoolFilterRequest() |
Factory | static PoolFilterRequest of(PoolFilter key, Object value, SearchOperation operation) |
Key getter/setter | getKey() / setKey(PoolFilter key) |
Value getter/setter | getValue() / setValue(Object value) |
Operation getter/setter | getOperation() / setOperation(SearchOperation operation) |
Node.js Shape
interface PoolFilterRequest {
key: (typeof PoolFilter)[keyof typeof PoolFilter];
value: unknown;
operation: SearchOperationType;
}CreatePoolRequest
The request contains one required field:
interface CreatePoolRequest {
name: string;
}Java creates it with CreatePoolRequest.builder().name(value).build(). Node.js uses new CreatePoolRequestBuilder().name(value).build(). The Node.js builder and both SDK service methods reject a blank name before sending the request.
Pool
The result model contains the pool identity and default-pool status:
interface Pool {
id: string | null;
name: string | null;
isDefault: boolean | null;
}Java member | Node.js member | Meaning |
|---|---|---|
new Pool(String id, String name, Boolean isDefault) | Object returned by SDK | Creates the immutable Java value |
String id() | pool.id | Value passed as allocation devicePoolId |
String name() | pool.name | Customer-facing pool name |
Boolean isDefault() | pool.isDefault | Whether the pool is a default pool |
Java Pool is immutable and also implements value-based equals(...), hashCode() and toString().
isDefault is nullable, read-only response metadata. true identifies a pool marked as default, false identifies a regular pool and null means the response did not include that information. The field does not indicate device availability and does not cause the SDK to select the pool automatically. See Understanding isDefault for method behavior and examples.
Pool does not contain devices, availability totals or allocation state. Retrieve devices through client.devices() and reserve pool capacity through client.allocations().