cloudflare
Version:
The official TypeScript library for the Cloudflare API
131 lines (108 loc) • 3.5 kB
text/typescript
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
import { APIResource } from '../../../resource';
import * as Core from '../../../core';
import * as OperationsAPI from './operations';
import {
OperationBulkEditParams,
OperationBulkEditResponse,
OperationEditParams,
OperationEditResponse,
OperationListParams,
Operations,
} from './operations';
import { V4PagePaginationArray } from '../../../pagination';
export class Discovery extends APIResource {
operations: OperationsAPI.Operations = new OperationsAPI.Operations(this._client);
/**
* Retrieve the most up to date view of discovered operations, rendered as OpenAPI
* schemas
*/
get(params: DiscoveryGetParams, options?: Core.RequestOptions): Core.APIPromise<DiscoveryGetResponse> {
const { zone_id } = params;
return (
this._client.get(`/zones/${zone_id}/api_gateway/discovery`, options) as Core.APIPromise<{
result: DiscoveryGetResponse;
}>
)._thenUnwrap((obj) => obj.result);
}
}
export class DiscoveryOperationsV4PagePaginationArray extends V4PagePaginationArray<DiscoveryOperation> {}
export interface DiscoveryOperation {
/**
* UUID
*/
id: string;
/**
* The endpoint which can contain path parameter templates in curly braces, each
* will be replaced from left to right with {varN}, starting with {var1}, during
* insertion. This will further be Cloudflare-normalized upon insertion. See:
* https://developers.cloudflare.com/rules/normalization/how-it-works/.
*/
endpoint: string;
/**
* RFC3986-compliant host.
*/
host: string;
last_updated: string;
/**
* The HTTP method used to access the endpoint.
*/
method: 'GET' | 'POST' | 'HEAD' | 'OPTIONS' | 'PUT' | 'DELETE' | 'CONNECT' | 'PATCH' | 'TRACE';
/**
* API discovery engine(s) that discovered this operation
*/
origin: Array<'ML' | 'SessionIdentifier'>;
/**
* State of operation in API Discovery
*
* - `review` - Operation is not saved into API Shield Endpoint Management
* - `saved` - Operation is saved into API Shield Endpoint Management
* - `ignored` - Operation is marked as ignored
*/
state: 'review' | 'saved' | 'ignored';
features?: DiscoveryOperation.Features;
}
export namespace DiscoveryOperation {
export interface Features {
traffic_stats?: Features.TrafficStats;
}
export namespace Features {
export interface TrafficStats {
last_updated: string;
/**
* The period in seconds these statistics were computed over
*/
period_seconds: number;
/**
* The average number of requests seen during this period
*/
requests: number;
}
}
}
export interface DiscoveryGetResponse {
schemas: Array<unknown>;
timestamp: string;
}
export interface DiscoveryGetParams {
/**
* Identifier
*/
zone_id: string;
}
Discovery.Operations = Operations;
export declare namespace Discovery {
export {
type DiscoveryOperation as DiscoveryOperation,
type DiscoveryGetResponse as DiscoveryGetResponse,
type DiscoveryGetParams as DiscoveryGetParams,
};
export {
Operations as Operations,
type OperationBulkEditResponse as OperationBulkEditResponse,
type OperationEditResponse as OperationEditResponse,
type OperationListParams as OperationListParams,
type OperationBulkEditParams as OperationBulkEditParams,
type OperationEditParams as OperationEditParams,
};
}