cloudflare
Version:
The official TypeScript library for the Cloudflare API
164 lines (146 loc) • 4.86 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';
import { CloudflareError } from '../../../../error';
import { SinglePage } from '../../../../pagination';
export class Settings extends APIResource {
/**
* Updates an mTLS certificate's hostname settings.
*/
update(
params: SettingUpdateParams,
options?: Core.RequestOptions,
): Core.PagePromise<CertificateSettingsSinglePage, CertificateSettings> {
const { account_id, zone_id, ...body } = params;
if (!account_id && !zone_id) {
throw new CloudflareError('You must provide either account_id or zone_id.');
}
if (account_id && zone_id) {
throw new CloudflareError('You cannot provide both account_id and zone_id.');
}
const { accountOrZone, accountOrZoneId } =
account_id ?
{
accountOrZone: 'accounts',
accountOrZoneId: account_id,
}
: {
accountOrZone: 'zones',
accountOrZoneId: zone_id,
};
return this._client.getAPIList(
`/${accountOrZone}/${accountOrZoneId}/access/certificates/settings`,
CertificateSettingsSinglePage,
{ body, method: 'put', ...options },
);
}
/**
* List all mTLS hostname settings for this account or zone.
*/
get(
params?: SettingGetParams,
options?: Core.RequestOptions,
): Core.PagePromise<CertificateSettingsSinglePage, CertificateSettings>;
get(options?: Core.RequestOptions): Core.PagePromise<CertificateSettingsSinglePage, CertificateSettings>;
get(
params: SettingGetParams | Core.RequestOptions = {},
options?: Core.RequestOptions,
): Core.PagePromise<CertificateSettingsSinglePage, CertificateSettings> {
if (isRequestOptions(params)) {
return this.get({}, params);
}
const { account_id, zone_id } = params;
if (!account_id && !zone_id) {
throw new CloudflareError('You must provide either account_id or zone_id.');
}
if (account_id && zone_id) {
throw new CloudflareError('You cannot provide both account_id and zone_id.');
}
const { accountOrZone, accountOrZoneId } =
account_id ?
{
accountOrZone: 'accounts',
accountOrZoneId: account_id,
}
: {
accountOrZone: 'zones',
accountOrZoneId: zone_id,
};
return this._client.getAPIList(
`/${accountOrZone}/${accountOrZoneId}/access/certificates/settings`,
CertificateSettingsSinglePage,
options,
);
}
}
export class CertificateSettingsSinglePage extends SinglePage<CertificateSettings> {}
export interface CertificateSettings {
/**
* Request client certificates for this hostname in China. Can only be set to true
* if this zone is china network enabled.
*/
china_network: boolean;
/**
* Client Certificate Forwarding is a feature that takes the client cert provided
* by the eyeball to the edge, and forwards it to the origin as a HTTP header to
* allow logging on the origin.
*/
client_certificate_forwarding: boolean;
/**
* The hostname that these settings apply to.
*/
hostname: string;
}
export interface CertificateSettingsParam {
/**
* Request client certificates for this hostname in China. Can only be set to true
* if this zone is china network enabled.
*/
china_network: boolean;
/**
* Client Certificate Forwarding is a feature that takes the client cert provided
* by the eyeball to the edge, and forwards it to the origin as a HTTP header to
* allow logging on the origin.
*/
client_certificate_forwarding: boolean;
/**
* The hostname that these settings apply to.
*/
hostname: string;
}
export interface SettingUpdateParams {
/**
* Body param:
*/
settings: Array<CertificateSettingsParam>;
/**
* Path param: The Account ID to use for this endpoint. Mutually exclusive with the
* Zone ID.
*/
account_id?: string;
/**
* Path param: The Zone ID to use for this endpoint. Mutually exclusive with the
* Account ID.
*/
zone_id?: string;
}
export interface SettingGetParams {
/**
* The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.
*/
account_id?: string;
/**
* The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.
*/
zone_id?: string;
}
Settings.CertificateSettingsSinglePage = CertificateSettingsSinglePage;
export declare namespace Settings {
export {
type CertificateSettings as CertificateSettings,
CertificateSettingsSinglePage as CertificateSettingsSinglePage,
type SettingUpdateParams as SettingUpdateParams,
type SettingGetParams as SettingGetParams,
};
}