cloudflare
Version:
The official TypeScript library for the Cloudflare API
251 lines (197 loc) • 5.23 kB
text/typescript
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
import { APIResource } from '../../core/resource';
import { APIPromise } from '../../core/api-promise';
import { RequestOptions } from '../../internal/request-options';
import { path } from '../../internal/utils/path';
export class BaseSecurityTXT extends APIResource {
static override readonly _key: readonly ['securityTXT'] = Object.freeze(['securityTXT'] as const);
/**
* Updates the security.txt file configuration for a zone, which provides security
* researchers with vulnerability reporting information.
*
* @example
* ```ts
* const securityTXT = await client.securityTXT.update({
* zone_id: '023e105f4ecef8ad9ca31a8372d0c353',
* });
* ```
*/
update(params: SecurityTXTUpdateParams, options?: RequestOptions): APIPromise<SecurityTXTUpdateResponse> {
const { zone_id, ...body } = params;
return this._client.put(path`/zones/${zone_id}/security-center/securitytxt`, { body, ...options });
}
/**
* Removes the security.txt file configuration for a zone. The
* /.well-known/security.txt endpoint will no longer be served.
*
* @example
* ```ts
* const securityTXT = await client.securityTXT.delete({
* zone_id: '023e105f4ecef8ad9ca31a8372d0c353',
* });
* ```
*/
delete(params: SecurityTXTDeleteParams, options?: RequestOptions): APIPromise<SecurityTXTDeleteResponse> {
const { zone_id } = params;
return this._client.delete(path`/zones/${zone_id}/security-center/securitytxt`, options);
}
/**
* Retrieves the current security.txt file configuration for a zone, used for
* security vulnerability reporting.
*
* @example
* ```ts
* const securityTXT = await client.securityTXT.get({
* zone_id: '023e105f4ecef8ad9ca31a8372d0c353',
* });
* ```
*/
get(params: SecurityTXTGetParams, options?: RequestOptions): APIPromise<SecurityTXTGetResponse> {
const { zone_id } = params;
return (
this._client.get(path`/zones/${zone_id}/security-center/securitytxt`, options) as APIPromise<{
result: SecurityTXTGetResponse;
}>
)._thenUnwrap((obj) => obj.result);
}
}
export class SecurityTXT extends BaseSecurityTXT {}
export interface SecurityTXTUpdateResponse {
errors: Array<SecurityTXTUpdateResponse.Error>;
messages: Array<SecurityTXTUpdateResponse.Message>;
/**
* Whether the API call was successful.
*/
success: true;
}
export namespace SecurityTXTUpdateResponse {
export interface Error {
code: number;
message: string;
documentation_url?: string;
source?: Error.Source;
}
export namespace Error {
export interface Source {
pointer?: string;
}
}
export interface Message {
code: number;
message: string;
documentation_url?: string;
source?: Message.Source;
}
export namespace Message {
export interface Source {
pointer?: string;
}
}
}
export interface SecurityTXTDeleteResponse {
errors: Array<SecurityTXTDeleteResponse.Error>;
messages: Array<SecurityTXTDeleteResponse.Message>;
/**
* Whether the API call was successful.
*/
success: true;
}
export namespace SecurityTXTDeleteResponse {
export interface Error {
code: number;
message: string;
documentation_url?: string;
source?: Error.Source;
}
export namespace Error {
export interface Source {
pointer?: string;
}
}
export interface Message {
code: number;
message: string;
documentation_url?: string;
source?: Message.Source;
}
export namespace Message {
export interface Source {
pointer?: string;
}
}
}
export interface SecurityTXTGetResponse {
acknowledgments?: Array<string>;
canonical?: Array<string>;
contact?: Array<string>;
enabled?: boolean;
encryption?: Array<string>;
expires?: string;
hiring?: Array<string>;
policy?: Array<string>;
preferred_languages?: string;
}
export interface SecurityTXTUpdateParams {
/**
* Path param: Identifier.
*/
zone_id: string;
/**
* Body param
*/
acknowledgments?: Array<string>;
/**
* Body param
*/
canonical?: Array<string>;
/**
* Body param
*/
contact?: Array<string>;
/**
* Body param
*/
enabled?: boolean;
/**
* Body param
*/
encryption?: Array<string>;
/**
* Body param
*/
expires?: string;
/**
* Body param
*/
hiring?: Array<string>;
/**
* Body param
*/
policy?: Array<string>;
/**
* Body param
*/
preferred_languages?: string;
}
export interface SecurityTXTDeleteParams {
/**
* Identifier.
*/
zone_id: string;
}
export interface SecurityTXTGetParams {
/**
* Identifier.
*/
zone_id: string;
}
export declare namespace SecurityTXT {
export {
type SecurityTXTUpdateResponse as SecurityTXTUpdateResponse,
type SecurityTXTDeleteResponse as SecurityTXTDeleteResponse,
type SecurityTXTGetResponse as SecurityTXTGetResponse,
type SecurityTXTUpdateParams as SecurityTXTUpdateParams,
type SecurityTXTDeleteParams as SecurityTXTDeleteParams,
type SecurityTXTGetParams as SecurityTXTGetParams,
};
}