events.iterate.com

Event type

events.iterate.com/project/custom-domain-cloudflare-observed

Cloudflare custom-hostname status observed for a project custom domain.

Payload schema

cloudflareHostnameIdstring | nulloptional

Cloudflare's custom-hostname id; null before the create call succeeded.

errorstring | nulloptional

The newest provisioning/validation error Cloudflare reported, if any.

hostnamestring

The custom hostname this snapshot describes.

hostnameStatusstring | nulloptional

Cloudflare's raw hostname status (pending, active, …); null when unknown.

ownershipVerificationobject | nulloptional

The DNS TXT record the owner must create to prove control; null once verified.

namestring

TXT record name proving hostname ownership.

valuestring

TXT record value proving hostname ownership.

sslStatusstring | nulloptional

Cloudflare's raw certificate status; null when unknown.

status"requested" | "provisioning" | "pending_validation" | "active" | "failed" | "removing"

Our rollup of the raw statuses: what the dashboard shows and routing acts on. Only `active` routes traffic.

validationRecordsobject[]optional

DNS records the owner still has to create for certificate validation.

namestring

TXT record name for certificate validation.

statusstring | nulloptional

Cloudflare's per-record validation status; null when unknown.

valuestring

TXT record value for certificate validation.

wildcardbooleanoptional

Whether the certificate also covers *.<hostname> (we always request it).

Raw JSON schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "cloudflareHostnameId": {
      "default": null,
      "description": "Cloudflare's custom-hostname id; null before the create call succeeded.",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "error": {
      "default": null,
      "description": "The newest provisioning/validation error Cloudflare reported, if any.",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "hostname": {
      "type": "string",
      "description": "The custom hostname this snapshot describes."
    },
    "hostnameStatus": {
      "default": null,
      "description": "Cloudflare's raw hostname status (pending, active, …); null when unknown.",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "ownershipVerification": {
      "default": null,
      "description": "The DNS TXT record the owner must create to prove control; null once verified.",
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "description": "TXT record name proving hostname ownership."
            },
            "value": {
              "type": "string",
              "description": "TXT record value proving hostname ownership."
            }
          },
          "required": [
            "name",
            "value"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "sslStatus": {
      "default": null,
      "description": "Cloudflare's raw certificate status; null when unknown.",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "status": {
      "type": "string",
      "enum": [
        "requested",
        "provisioning",
        "pending_validation",
        "active",
        "failed",
        "removing"
      ],
      "description": "Our rollup of the raw statuses: what the dashboard shows and routing acts on. Only `active` routes traffic."
    },
    "validationRecords": {
      "default": [],
      "description": "DNS records the owner still has to create for certificate validation.",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "TXT record name for certificate validation."
          },
          "status": {
            "default": null,
            "description": "Cloudflare's per-record validation status; null when unknown.",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "value": {
            "type": "string",
            "description": "TXT record value for certificate validation."
          }
        },
        "required": [
          "name",
          "value"
        ]
      }
    },
    "wildcard": {
      "default": true,
      "description": "Whether the certificate also covers *.<hostname> (we always request it).",
      "type": "boolean"
    }
  },
  "required": [
    "hostname",
    "status"
  ]
}