acumen/fetch_renewal_info

Fetch renewal information for a certificate (RFC 9773).

Queries the ACME server for a suggested renewal window for a specific certificate. This uses an unauthenticated GET request (no JWS signing needed), so it does not require acumen.execute — just build, send, and parse the response directly.

Example

import acumen
import acumen/fetch_renewal_info
import acumen/renewal_info
import gleam/httpc
import kryptos/x509/certificate

// Parse the certificate and build the identifier
let assert Ok(certs) = certificate.from_pem(pem)
let assert [cert, ..] = certs
let assert Ok(cert_id) = renewal_info.cert_id_from_certificate(cert)

// Fetch renewal information
let assert Ok(req) = fetch_renewal_info.build(directory, cert_id)
let assert Ok(resp) = httpc.send(req)
let assert Ok(info) = fetch_renewal_info.response(resp)

// Check the suggested renewal window
let start = info.suggested_window.start
let end = info.suggested_window.end

// Check polling interval
let retry = acumen.retry_after(resp)

Values

pub fn build(
  directory: acumen.Directory,
  cert_id cert_id: String,
) -> Result(request.Request(String), acumen.AcmeError)

Builds an HTTP GET request to fetch renewal information for a certificate.

Targets {renewalInfo_url}/{cert_id}. Build the cert_id with renewal_info.cert_id or renewal_info.cert_id_from_certificate.

pub fn response(
  resp: response.Response(String),
) -> Result(renewal_info.RenewalInfo, acumen.AcmeError)

Parses a renewal information response.

Search Document