// AUTO-GENERATED by scripts/generate.ts from .generated-specs. Do not edit. import * as S from "@distilled.cloud/core/schema"; import * as API from "@distilled.cloud/core/api"; import * as T from "../traits.ts"; import { CloudflareProtocol, type CloudflareOpError, type CloudflareOpContext, } from "../protocol.ts"; import { CloudflareError, CloudflareRateLimited } from "../errors.ts"; import * as Retry from "../retry.ts"; export type { CloudflareOpError, CloudflareOpContext }; /** Fallback camelCase→wire mapping for opaque content (mined from the distilled SDK). */ const KEY_DICTIONARY: Record> = { documentationUrl: "documentation_url", preferredLanguages: "preferred_languages", }; export class Forbidden extends /*@__PURE__*/ T.applyErrorMatchers( /*@__PURE__*/ S.TaggedError()("Forbidden", { code: S.Number, message: S.String, }), [{ status: 403 }], ) {} export class SecurityTxtInvalid extends /*@__PURE__*/ T.applyErrorMatchers( /*@__PURE__*/ S.TaggedError()("SecurityTxtInvalid", { code: S.Number, message: S.String, }), [{ code: 10400, message: { includes: "invalid or missing values" } }], ) {} export interface DeleteSecurityTxtRequest { /** Identifier. */ zoneId: string; } export const DeleteSecurityTxtRequest = /*@__PURE__*/ S.suspend(() => S.Struct({ zoneId: S.String.pipe(T.Label("zone_id")), }) .pipe( T.Http({ method: "DELETE", uri: "/zones/{zone_id}/security-center/securitytxt", code: 200, }), ) .pipe(T.KeyDictionary(KEY_DICTIONARY)), ).annotate({ identifier: "DeleteSecurityTxtRequest", }) as any as S.Schema; export interface DeleteSecurityTxtResponse {} export const DeleteSecurityTxtResponse = /*@__PURE__*/ S.suspend(() => S.Struct({}).pipe(T.KeyDictionary(KEY_DICTIONARY)), ).annotate({ identifier: "DeleteSecurityTxtResponse", }) as any as S.Schema; export interface GetSecurityTxtRequest { /** Identifier. */ zoneId: string; } export const GetSecurityTxtRequest = /*@__PURE__*/ S.suspend(() => S.Struct({ zoneId: S.String.pipe(T.Label("zone_id")), }) .pipe( T.Http({ method: "GET", uri: "/zones/{zone_id}/security-center/securitytxt", code: 200, }), ) .pipe(T.KeyDictionary(KEY_DICTIONARY)), ).annotate({ identifier: "GetSecurityTxtRequest", }) as any as S.Schema; export type GetResponseAcknowledgmentsList = Array; export const GetResponseAcknowledgmentsList = /*@__PURE__*/ S.Array( S.String, ) as any as S.Schema; export type GetResponseCanonicalList = Array; export const GetResponseCanonicalList = /*@__PURE__*/ S.Array( S.String, ) as any as S.Schema; export type GetResponseContactList = Array; export const GetResponseContactList = /*@__PURE__*/ S.Array( S.String, ) as any as S.Schema; export type GetResponseEncryptionList = Array; export const GetResponseEncryptionList = /*@__PURE__*/ S.Array( S.String, ) as any as S.Schema; export type GetResponseHiringList = Array; export const GetResponseHiringList = /*@__PURE__*/ S.Array( S.String, ) as any as S.Schema; export type GetResponsePolicyList = Array; export const GetResponsePolicyList = /*@__PURE__*/ S.Array( S.String, ) as any as S.Schema; /** Unwrapped `result` payload of the Cloudflare v4 response envelope. */ export interface SecurityTxtFile { acknowledgments?: GetResponseAcknowledgmentsList | null; canonical?: GetResponseCanonicalList | null; contact?: GetResponseContactList | null; enabled?: boolean | null; encryption?: GetResponseEncryptionList | null; expires?: string | null; hiring?: GetResponseHiringList | null; policy?: GetResponsePolicyList | null; preferredLanguages?: string | null; } export const SecurityTxtFile = /*@__PURE__*/ S.suspend(() => S.Struct({ acknowledgments: S.optional(S.NullOr(GetResponseAcknowledgmentsList)), canonical: S.optional(S.NullOr(GetResponseCanonicalList)), contact: S.optional(S.NullOr(GetResponseContactList)), enabled: S.optional(S.NullOr(S.Boolean)), encryption: S.optional(S.NullOr(GetResponseEncryptionList)), expires: S.optional(S.NullOr(S.String)), hiring: S.optional(S.NullOr(GetResponseHiringList)), policy: S.optional(S.NullOr(GetResponsePolicyList)), preferredLanguages: S.optional( S.NullOr(S.String).pipe(T.Body("preferred_languages")), ), }), ).annotate({ identifier: "SecurityTxtFile", }) as any as S.Schema; export type GetSecurityTxtResponse = SecurityTxtFile; export const GetSecurityTxtResponse = /*@__PURE__*/ S.suspend(() => SecurityTxtFile.pipe( T.EnvelopePayloadRoot(), T.KeyDictionary(KEY_DICTIONARY), ), ).annotate({ identifier: "GetSecurityTxtResponse", }) as any as S.Schema; export type UpdateRequestAcknowledgmentsList = Array; export const UpdateRequestAcknowledgmentsList = /*@__PURE__*/ S.Array( S.String, ) as any as S.Schema; export type UpdateRequestCanonicalList = Array; export const UpdateRequestCanonicalList = /*@__PURE__*/ S.Array( S.String, ) as any as S.Schema; export type UpdateRequestContactList = Array; export const UpdateRequestContactList = /*@__PURE__*/ S.Array( S.String, ) as any as S.Schema; export type UpdateRequestEncryptionList = Array; export const UpdateRequestEncryptionList = /*@__PURE__*/ S.Array( S.String, ) as any as S.Schema; export type UpdateRequestHiringList = Array; export const UpdateRequestHiringList = /*@__PURE__*/ S.Array( S.String, ) as any as S.Schema; export type UpdateRequestPolicyList = Array; export const UpdateRequestPolicyList = /*@__PURE__*/ S.Array( S.String, ) as any as S.Schema; export interface PutSecurityTxtRequest { /** Identifier. */ zoneId: string; acknowledgments?: UpdateRequestAcknowledgmentsList; canonical?: UpdateRequestCanonicalList; contact?: UpdateRequestContactList; enabled?: boolean; encryption?: UpdateRequestEncryptionList; expires?: string; hiring?: UpdateRequestHiringList; policy?: UpdateRequestPolicyList; preferredLanguages?: string; } export const PutSecurityTxtRequest = /*@__PURE__*/ S.suspend(() => S.Struct({ zoneId: S.String.pipe(T.Label("zone_id")), acknowledgments: S.optional(UpdateRequestAcknowledgmentsList), canonical: S.optional(UpdateRequestCanonicalList), contact: S.optional(UpdateRequestContactList), enabled: S.optional(S.Boolean), encryption: S.optional(UpdateRequestEncryptionList), expires: S.optional(S.String), hiring: S.optional(UpdateRequestHiringList), policy: S.optional(UpdateRequestPolicyList), preferredLanguages: S.optional( S.String.pipe(T.Body("preferred_languages")), ), }) .pipe( T.Http({ method: "PUT", uri: "/zones/{zone_id}/security-center/securitytxt", code: 200, }), ) .pipe(T.KeyDictionary(KEY_DICTIONARY)), ).annotate({ identifier: "PutSecurityTxtRequest", }) as any as S.Schema; export interface PutSecurityTxtResponse {} export const PutSecurityTxtResponse = /*@__PURE__*/ S.suspend(() => S.Struct({}).pipe(T.KeyDictionary(KEY_DICTIONARY)), ).annotate({ identifier: "PutSecurityTxtResponse", }) as any as S.Schema; export type DeleteSecurityTxtError = Forbidden | CloudflareOpError; /** Removes the security.txt file configuration for a zone. The /.well-known/security.txt endpoint will no longer be served. */ export const deleteSecurityTxt: API.OperationMethod< DeleteSecurityTxtRequest, DeleteSecurityTxtResponse, DeleteSecurityTxtError, CloudflareOpContext > = /*@__PURE__*/ API.make(() => ({ input: DeleteSecurityTxtRequest, output: DeleteSecurityTxtResponse, errors: [Forbidden, CloudflareRateLimited, CloudflareError], protocol: CloudflareProtocol, retry: Retry.Retry, })); export type GetSecurityTxtError = Forbidden | CloudflareOpError; /** Retrieves the current security.txt file configuration for a zone, used for security vulnerability reporting. */ export const getSecurityTxt: API.OperationMethod< GetSecurityTxtRequest, GetSecurityTxtResponse, GetSecurityTxtError, CloudflareOpContext > = /*@__PURE__*/ API.make(() => ({ input: GetSecurityTxtRequest, output: GetSecurityTxtResponse, errors: [Forbidden, CloudflareRateLimited, CloudflareError], protocol: CloudflareProtocol, retry: Retry.Retry, })); export type PutSecurityTxtError = | Forbidden | SecurityTxtInvalid | CloudflareOpError; /** Updates the security.txt file configuration for a zone, which provides security researchers with vulnerability reporting information. */ export const putSecurityTxt: API.OperationMethod< PutSecurityTxtRequest, PutSecurityTxtResponse, PutSecurityTxtError, CloudflareOpContext > = /*@__PURE__*/ API.make(() => ({ input: PutSecurityTxtRequest, output: PutSecurityTxtResponse, errors: [ Forbidden, SecurityTxtInvalid, CloudflareRateLimited, CloudflareError, ], protocol: CloudflareProtocol, retry: Retry.Retry, }));