UNPKG

@certd/acme-client

Version:
124 lines (106 loc) 2.76 kB
/** * Account * * https://datatracker.ietf.org/doc/html/rfc8555#section-7.1.2 * https://datatracker.ietf.org/doc/html/rfc8555#section-7.3 * https://datatracker.ietf.org/doc/html/rfc8555#section-7.3.2 */ export interface Account { status: 'valid' | 'deactivated' | 'revoked'; orders: string; contact?: string[]; termsOfServiceAgreed?: boolean; externalAccountBinding?: object; } export interface AccountCreateRequest { contact?: string[]; termsOfServiceAgreed?: boolean; onlyReturnExisting?: boolean; externalAccountBinding?: object; } export interface AccountUpdateRequest { status?: string; contact?: string[]; termsOfServiceAgreed?: boolean; } /** * Order * * https://datatracker.ietf.org/doc/html/rfc8555#section-7.1.3 * https://datatracker.ietf.org/doc/html/rfc8555#section-7.4 */ export interface Order { status: 'pending' | 'ready' | 'processing' | 'valid' | 'invalid'; identifiers: Identifier[]; authorizations: string[]; finalize: string; expires?: string; notBefore?: string; notAfter?: string; error?: object; certificate?: string; } export interface OrderCreateRequest { identifiers: Identifier[]; notBefore?: string; notAfter?: string; } /** * Authorization * * https://datatracker.ietf.org/doc/html/rfc8555#section-7.1.4 */ export interface Authorization { identifier: Identifier; status: 'pending' | 'valid' | 'invalid' | 'deactivated' | 'expired' | 'revoked'; challenges: Challenge[]; expires?: string; wildcard?: boolean; } export interface Identifier { type: string; value: string; } /** * Challenge * * https://datatracker.ietf.org/doc/html/rfc8555#section-8 * https://datatracker.ietf.org/doc/html/rfc8555#section-8.3 * https://datatracker.ietf.org/doc/html/rfc8555#section-8.4 */ export interface ChallengeAbstract { type: string; url: string; status: 'pending' | 'processing' | 'valid' | 'invalid'; validated?: string; error?: object; } export interface HttpChallenge extends ChallengeAbstract { type: 'http-01'; token: string; } export interface DnsChallenge extends ChallengeAbstract { type: 'dns-01'; token: string; } export type Challenge = HttpChallenge | DnsChallenge; /** * Certificate * * https://datatracker.ietf.org/doc/html/rfc8555#section-7.6 */ export enum CertificateRevocationReason { Unspecified = 0, KeyCompromise = 1, CACompromise = 2, AffiliationChanged = 3, Superseded = 4, CessationOfOperation = 5, CertificateHold = 6, RemoveFromCRL = 8, PrivilegeWithdrawn = 9, AACompromise = 10, } export interface CertificateRevocationRequest { reason?: CertificateRevocationReason; }