cloudflare
Version:
The official TypeScript library for the Cloudflare API
128 lines (103 loc) • 2.91 kB
text/typescript
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
import { APIResource } from '../../../resource';
import { isRequestOptions } from '../../../core';
import * as Core from '../../../core';
export class Domain extends APIResource {
/**
* Retrieves domain rank details. Cloudflare provides an ordered rank for the top
* 100 domains, but for the remainder it only provides ranking buckets like top 200
* thousand, top one million, etc.. These are available through Radar datasets
* endpoints.
*/
get(
domain: string,
query?: DomainGetParams,
options?: Core.RequestOptions,
): Core.APIPromise<DomainGetResponse>;
get(domain: string, options?: Core.RequestOptions): Core.APIPromise<DomainGetResponse>;
get(
domain: string,
query: DomainGetParams | Core.RequestOptions = {},
options?: Core.RequestOptions,
): Core.APIPromise<DomainGetResponse> {
if (isRequestOptions(query)) {
return this.get(domain, {}, query);
}
return (
this._client.get(`/radar/ranking/domain/${domain}`, { query, ...options }) as Core.APIPromise<{
result: DomainGetResponse;
}>
)._thenUnwrap((obj) => obj.result);
}
}
export interface DomainGetResponse {
details_0: DomainGetResponse.Details0;
meta: DomainGetResponse.Meta;
}
export namespace DomainGetResponse {
export interface Details0 {
categories: Array<Details0.Category>;
/**
* Only available in POPULAR ranking for the most recent ranking.
*/
bucket?: string;
rank?: number;
top_locations?: Array<Details0.TopLocation>;
}
export namespace Details0 {
export interface Category {
id: number;
name: string;
superCategoryId: number;
}
export interface TopLocation {
locationCode: string;
locationName: string;
rank: number;
}
}
export interface Meta {
dateRange: Array<Meta.DateRange>;
}
export namespace Meta {
export interface DateRange {
/**
* Adjusted end of date range.
*/
endTime: string;
/**
* Adjusted start of date range.
*/
startTime: string;
}
}
}
export interface DomainGetParams {
/**
* Array of dates to filter the results.
*/
date?: Array<string>;
/**
* Format in which results will be returned.
*/
format?: 'JSON' | 'CSV';
/**
* Includes top locations in the response.
*/
includeTopLocations?: boolean;
/**
* Limits the number of objects returned in the response.
*/
limit?: number;
/**
* Array of names used to label the series in the response.
*/
name?: Array<string>;
/**
* Ranking type.
*/
rankingType?: 'POPULAR' | 'TRENDING_RISE' | 'TRENDING_STEADY';
}
export declare namespace Domain {
export { type DomainGetResponse as DomainGetResponse, type DomainGetParams as DomainGetParams };
}