cloudflare
Version:
The official TypeScript library for the Cloudflare API
210 lines (176 loc) • 5.26 kB
text/typescript
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
import { APIResource } from '../../../../core/resource';
import * as FleetStatusAPI from './fleet-status';
import * as DevicesAPI from './devices';
import {
BaseDevices,
DeviceListParams,
DeviceListResponse,
DeviceListResponsesV4PagePaginationArray,
Devices,
} from './devices';
import { APIPromise } from '../../../../core/api-promise';
import { RequestOptions } from '../../../../internal/request-options';
import { path } from '../../../../internal/utils/path';
export class BaseFleetStatus extends APIResource {
static override readonly _key: readonly ['zeroTrust', 'dex', 'fleetStatus'] = Object.freeze([
'zeroTrust',
'dex',
'fleetStatus',
] as const);
/**
* Get details for live (up to 60 minutes) devices using WARP.
*
* @example
* ```ts
* const response =
* await client.zeroTrust.dex.fleetStatus.live({
* account_id: '01a7362d577a6c3019a474fd6f485823',
* since_minutes: 10,
* });
* ```
*/
live(params: FleetStatusLiveParams, options?: RequestOptions): APIPromise<FleetStatusLiveResponse> {
const { account_id, ...query } = params;
return (
this._client.get(path`/accounts/${account_id}/dex/fleet-status/live`, {
query,
...options,
}) as APIPromise<{ result: FleetStatusLiveResponse }>
)._thenUnwrap((obj) => obj.result);
}
/**
* Get aggregate details for devices using WARP, up to 7 days.
*
* @example
* ```ts
* const response =
* await client.zeroTrust.dex.fleetStatus.overTime({
* account_id: '01a7362d577a6c3019a474fd6f485823',
* from: '2023-10-11 00:00:00+00',
* to: '2023-10-11 00:00:00+00',
* });
* ```
*/
overTime(
params: FleetStatusOverTimeParams,
options?: RequestOptions,
): APIPromise<FleetStatusOverTimeResponse> {
const { account_id, ...query } = params;
return (
this._client.get(path`/accounts/${account_id}/dex/fleet-status/over-time`, {
query,
...options,
}) as APIPromise<{ result: FleetStatusOverTimeResponse }>
)._thenUnwrap((obj) => obj.result);
}
}
export class FleetStatus extends BaseFleetStatus {
devices: DevicesAPI.Devices = new DevicesAPI.Devices(this._client);
}
export interface LiveStat {
/**
* Number of unique devices
*/
uniqueDevicesTotal?: number;
value?: string;
}
export interface FleetStatusLiveResponse {
deviceStats?: FleetStatusLiveResponse.DeviceStats;
}
export namespace FleetStatusLiveResponse {
export interface DeviceStats {
byColo?: Array<FleetStatusAPI.LiveStat> | null;
byMode?: Array<FleetStatusAPI.LiveStat> | null;
byPlatform?: Array<FleetStatusAPI.LiveStat> | null;
byStatus?: Array<FleetStatusAPI.LiveStat> | null;
byVersion?: Array<FleetStatusAPI.LiveStat> | null;
/**
* Number of unique devices
*/
uniqueDevicesTotal?: number;
}
}
export interface FleetStatusOverTimeResponse {
deviceStats?: FleetStatusOverTimeResponse.DeviceStats;
}
export namespace FleetStatusOverTimeResponse {
export interface DeviceStats {
byMode?: Array<DeviceStats.ByMode>;
byStatus?: Array<DeviceStats.ByStatus>;
/**
* Number of unique devices
*/
uniqueDevicesTotal?: number;
}
export namespace DeviceStats {
export interface ByMode {
timestamp?: string;
/**
* Number of unique devices
*/
uniqueDevicesTotal?: number;
value?: string;
}
export interface ByStatus {
timestamp?: string;
/**
* Number of unique devices
*/
uniqueDevicesTotal?: number;
value?: string;
}
}
}
export interface FleetStatusLiveParams {
/**
* Path param: Unique Cloudflare account ID.
*/
account_id: string;
/**
* Query param: Number of minutes before current time.
*/
since_minutes: number;
}
export interface FleetStatusOverTimeParams {
/**
* Path param: Unique Cloudflare account ID.
*/
account_id: string;
/**
* Query param: Start of the time range to query. Timestamp can be provided in ISO
* 8601 datetime format or milliseconds since epoch.
*/
from: string;
/**
* Query param: End of the time range to query. Timestamp can be provided in ISO
* 8601 datetime format or milliseconds since epoch.
*/
to: string;
/**
* Query param: Cloudflare colo airport code.
*/
colo?: string;
/**
* Query param: Device-specific ID, given as UUID.
*/
device_id?: string;
}
FleetStatus.Devices = Devices;
FleetStatus.BaseDevices = BaseDevices;
export declare namespace FleetStatus {
export {
type LiveStat as LiveStat,
type FleetStatusLiveResponse as FleetStatusLiveResponse,
type FleetStatusOverTimeResponse as FleetStatusOverTimeResponse,
type FleetStatusLiveParams as FleetStatusLiveParams,
type FleetStatusOverTimeParams as FleetStatusOverTimeParams,
};
export {
Devices as Devices,
BaseDevices as BaseDevices,
type DeviceListResponse as DeviceListResponse,
type DeviceListResponsesV4PagePaginationArray as DeviceListResponsesV4PagePaginationArray,
type DeviceListParams as DeviceListParams,
};
}