// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. import { APIResource } from '../../../core/resource'; import { PagePromise, SinglePage } from '../../../core/pagination'; import { RequestOptions } from '../../../internal/request-options'; import { path } from '../../../internal/utils/path'; export class BaseColos extends APIResource { static override readonly _key: readonly ['zeroTrust', 'dex', 'colos'] = Object.freeze([ 'zeroTrust', 'dex', 'colos', ] as const); /** * List Cloudflare colos that account's devices were connected to during a time * period, sorted by usage starting from the most used colo. Colos without traffic * are also returned and sorted alphabetically. * * @example * ```ts * // Automatically fetches more pages as needed. * for await (const coloListResponse of client.zeroTrust.dex.colos.list( * { * account_id: '01a7362d577a6c3019a474fd6f485823', * from: '2023-08-20T20:45:00Z', * to: '2023-08-24T20:45:00Z', * }, * )) { * // ... * } * ``` */ list( params: ColoListParams, options?: RequestOptions, ): PagePromise { const { account_id, ...query } = params; return this._client.getAPIList(path`/accounts/${account_id}/dex/colos`, SinglePage, { query, ...options, }); } } export class Colos extends BaseColos {} export type ColoListResponsesSinglePage = SinglePage; export interface ColoListResponse { /** * Airport code */ airportCode: string; /** * City */ city: string; /** * Country code */ countryCode: string; } export interface ColoListParams { /** * Path param: Unique identifier linked to an account. */ account_id: string; /** * Query param: Start time for connection period in ISO (RFC3339 - ISO 8601) * format. */ from: string; /** * Query param: End time for connection period in ISO (RFC3339 - ISO 8601) format. */ to: string; /** * Query param: Type of usage that colos should be sorted by. If unspecified, * returns all Cloudflare colos sorted alphabetically. */ sortBy?: 'fleet-status-usage' | 'application-tests-usage'; } export declare namespace Colos { export { type ColoListResponse as ColoListResponse, type ColoListResponsesSinglePage as ColoListResponsesSinglePage, type ColoListParams as ColoListParams, }; }