cloudflare
Version:
The official TypeScript library for the Cloudflare API
179 lines (147 loc) • 3.98 kB
text/typescript
// 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 BaseRules extends APIResource {
static override readonly _key: readonly ['cloudConnector', 'rules'] = Object.freeze([
'cloudConnector',
'rules',
] as const);
/**
* Updates Cloud Connector rules for a zone, replacing the existing rule
* configuration.
*/
update(
params: RuleUpdateParams,
options?: RequestOptions,
): PagePromise<RuleUpdateResponsesSinglePage, RuleUpdateResponse> {
const { zone_id, rules } = params;
return this._client.getAPIList(
path`/zones/${zone_id}/cloud_connector/rules`,
SinglePage<RuleUpdateResponse>,
{ body: rules, method: 'put', ...options },
);
}
/**
* Retrieves the Cloud Connector rules configured for a zone. Rules define how
* traffic is routed to cloud services.
*/
list(
params: RuleListParams,
options?: RequestOptions,
): PagePromise<RuleListResponsesSinglePage, RuleListResponse> {
const { zone_id } = params;
return this._client.getAPIList(
path`/zones/${zone_id}/cloud_connector/rules`,
SinglePage<RuleListResponse>,
options,
);
}
}
export class Rules extends BaseRules {}
export type RuleUpdateResponsesSinglePage = SinglePage<RuleUpdateResponse>;
export type RuleListResponsesSinglePage = SinglePage<RuleListResponse>;
export interface RuleUpdateResponse {
id?: string;
description?: string;
enabled?: boolean;
expression?: string;
/**
* Parameters of Cloud Connector Rule
*/
parameters?: RuleUpdateResponse.Parameters;
/**
* Cloud Provider type
*/
provider?: 'aws_s3' | 'cloudflare_r2' | 'gcp_storage' | 'azure_storage' | 'oci_storage';
}
export namespace RuleUpdateResponse {
/**
* Parameters of Cloud Connector Rule
*/
export interface Parameters {
/**
* Host to perform Cloud Connection to
*/
host?: string;
}
}
export interface RuleListResponse {
id?: string;
description?: string;
enabled?: boolean;
expression?: string;
/**
* Parameters of Cloud Connector Rule
*/
parameters?: RuleListResponse.Parameters;
/**
* Cloud Provider type
*/
provider?: 'aws_s3' | 'cloudflare_r2' | 'gcp_storage' | 'azure_storage' | 'oci_storage';
}
export namespace RuleListResponse {
/**
* Parameters of Cloud Connector Rule
*/
export interface Parameters {
/**
* Host to perform Cloud Connection to
*/
host?: string;
}
}
export interface RuleUpdateParams {
/**
* Path param: Identifier.
*/
zone_id: string;
/**
* Body param
*/
rules: Array<RuleUpdateParams.Rule>;
}
export namespace RuleUpdateParams {
export interface Rule {
id?: string;
description?: string;
enabled?: boolean;
expression?: string;
/**
* Parameters of Cloud Connector Rule
*/
parameters?: Rule.Parameters;
/**
* Cloud Provider type
*/
provider?: 'aws_s3' | 'cloudflare_r2' | 'gcp_storage' | 'azure_storage' | 'oci_storage';
}
export namespace Rule {
/**
* Parameters of Cloud Connector Rule
*/
export interface Parameters {
/**
* Host to perform Cloud Connection to
*/
host?: string;
}
}
}
export interface RuleListParams {
/**
* Identifier.
*/
zone_id: string;
}
export declare namespace Rules {
export {
type RuleUpdateResponse as RuleUpdateResponse,
type RuleListResponse as RuleListResponse,
type RuleUpdateResponsesSinglePage as RuleUpdateResponsesSinglePage,
type RuleListResponsesSinglePage as RuleListResponsesSinglePage,
type RuleUpdateParams as RuleUpdateParams,
type RuleListParams as RuleListParams,
};
}