YugabyteDB · Schema

YugabyteDB Cluster

Represents a YugabyteDB database cluster or universe, covering both Aeon (managed cloud) and Anywhere (self-managed) deployment models. Captures identity, cloud placement, compute configuration, connectivity endpoints, backup settings, and operational state.

Cloud DatabaseDatabaseDatabase-as-a-ServiceDistributed SQLPostgreSQL

Properties

Name Type Description
id string Unique identifier for the cluster or universe.
name string Human-readable display name of the cluster.
deployment_model string Indicates whether this cluster is managed by YugabyteDB Aeon (cloud-managed) or YugabyteDB Anywhere (self-managed).
state string Current operational state of the cluster.
yugabytedb_version string YugabyteDB software version running on the cluster (e.g., 2.20.1.0-b1).
cloud_info object
cluster_info object
endpoints array Connection endpoints for accessing the cluster's YSQL and YCQL APIs.
backup_config object
maintenance_window object
allow_list_ids array List of IP allow list IDs assigned to this cluster to control inbound connections.
read_replicas array Read replica configurations attached to this cluster for geographically distributed read traffic.
created_at string Timestamp when the cluster was created.
updated_at string Timestamp when the cluster configuration was last updated.
View JSON Schema on GitHub

JSON Schema

yugabytedb-cluster-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://yugabyte.com/schemas/yugabytedb/cluster.json",
  "title": "YugabyteDB Cluster",
  "description": "Represents a YugabyteDB database cluster or universe, covering both Aeon (managed cloud) and Anywhere (self-managed) deployment models. Captures identity, cloud placement, compute configuration, connectivity endpoints, backup settings, and operational state.",
  "type": "object",
  "required": ["id", "name", "state"],
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "description": "Unique identifier for the cluster or universe."
    },
    "name": {
      "type": "string",
      "description": "Human-readable display name of the cluster.",
      "minLength": 1,
      "maxLength": 63
    },
    "deployment_model": {
      "type": "string",
      "description": "Indicates whether this cluster is managed by YugabyteDB Aeon (cloud-managed) or YugabyteDB Anywhere (self-managed).",
      "enum": ["aeon", "anywhere"]
    },
    "state": {
      "type": "string",
      "description": "Current operational state of the cluster.",
      "enum": [
        "ACTIVE",
        "PAUSED",
        "CREATING",
        "DELETING",
        "FAILED",
        "UPDATING",
        "BOOTSTRAPPING"
      ]
    },
    "yugabytedb_version": {
      "type": "string",
      "description": "YugabyteDB software version running on the cluster (e.g., 2.20.1.0-b1).",
      "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+(\\-[a-zA-Z0-9]+)?$"
    },
    "cloud_info": {
      "$ref": "#/$defs/CloudInfo"
    },
    "cluster_info": {
      "$ref": "#/$defs/ClusterInfo"
    },
    "endpoints": {
      "type": "array",
      "description": "Connection endpoints for accessing the cluster's YSQL and YCQL APIs.",
      "items": {
        "$ref": "#/$defs/ClusterEndpoint"
      }
    },
    "backup_config": {
      "$ref": "#/$defs/BackupConfig"
    },
    "maintenance_window": {
      "$ref": "#/$defs/MaintenanceWindow"
    },
    "allow_list_ids": {
      "type": "array",
      "description": "List of IP allow list IDs assigned to this cluster to control inbound connections.",
      "items": {
        "type": "string",
        "format": "uuid",
        "description": "UUID of an IP allow list."
      }
    },
    "read_replicas": {
      "type": "array",
      "description": "Read replica configurations attached to this cluster for geographically distributed read traffic.",
      "items": {
        "$ref": "#/$defs/ReadReplica"
      }
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the cluster was created."
    },
    "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the cluster configuration was last updated."
    }
  },
  "$defs": {
    "CloudInfo": {
      "type": "object",
      "description": "Cloud provider and region placement for a cluster.",
      "required": ["code", "region"],
      "properties": {
        "code": {
          "type": "string",
          "description": "Cloud provider code indicating where the cluster is hosted.",
          "enum": ["AWS", "GCP", "AZURE"]
        },
        "region": {
          "type": "string",
          "description": "Cloud provider region identifier where the cluster is deployed (e.g., us-east-1 for AWS, us-central1 for GCP, eastus for Azure)."
        },
        "multi_region": {
          "type": "boolean",
          "description": "Whether this cluster spans multiple cloud regions."
        },
        "regions": {
          "type": "array",
          "description": "List of cloud regions when this is a multi-region cluster.",
          "items": {
            "type": "string",
            "description": "A cloud region code."
          }
        }
      }
    },
    "ClusterInfo": {
      "type": "object",
      "description": "Compute, storage, and replication configuration for the cluster.",
      "properties": {
        "num_nodes": {
          "type": "integer",
          "description": "Total number of nodes in the cluster. Must be a multiple of the replication factor.",
          "minimum": 1
        },
        "replication_factor": {
          "type": "integer",
          "description": "Number of data replicas across nodes. Determines fault tolerance.",
          "enum": [1, 3, 5, 7]
        },
        "fault_tolerance": {
          "type": "string",
          "description": "Level at which the cluster can tolerate failures without losing availability.",
          "enum": ["NONE", "NODE", "ZONE", "REGION"]
        },
        "cluster_tier": {
          "type": "string",
          "description": "Service tier for Aeon clusters controlling available node sizes and features.",
          "enum": ["FREE", "DEDICATED"]
        },
        "node_info": {
          "$ref": "#/$defs/NodeInfo"
        },
        "enable_ysql": {
          "type": "boolean",
          "description": "Whether the PostgreSQL-compatible YSQL API is enabled on this cluster."
        },
        "enable_ycql": {
          "type": "boolean",
          "description": "Whether the Cassandra-compatible YCQL API is enabled on this cluster."
        },
        "encryption_in_transit": {
          "$ref": "#/$defs/EncryptionInTransit"
        }
      }
    },
    "NodeInfo": {
      "type": "object",
      "description": "Per-node compute and storage resource allocation.",
      "properties": {
        "num_cores": {
          "type": "integer",
          "description": "Number of vCPU cores per node.",
          "minimum": 1
        },
        "memory_mb": {
          "type": "integer",
          "description": "Amount of memory in megabytes per node.",
          "minimum": 1024
        },
        "disk_size_gb": {
          "type": "integer",
          "description": "Storage disk size in gigabytes per node.",
          "minimum": 10
        },
        "disk_iops": {
          "type": "integer",
          "description": "Provisioned IOPS for disk storage per node, where applicable."
        },
        "instance_type": {
          "type": "string",
          "description": "Cloud provider instance type for each node (e.g., m5.large for AWS)."
        }
      }
    },
    "ClusterEndpoint": {
      "type": "object",
      "description": "A network endpoint for connecting to the cluster.",
      "properties": {
        "accessibility_type": {
          "type": "string",
          "description": "Whether this endpoint is publicly reachable or only accessible via private networking.",
          "enum": ["PUBLIC", "PRIVATE"]
        },
        "host": {
          "type": "string",
          "description": "Hostname for the connection endpoint."
        },
        "port": {
          "type": "integer",
          "description": "Port number for the connection endpoint. YSQL defaults to 5433, YCQL to 9042.",
          "minimum": 1,
          "maximum": 65535
        },
        "api_type": {
          "type": "string",
          "description": "Which database API this endpoint serves.",
          "enum": ["YSQL", "YCQL"]
        },
        "region": {
          "type": "string",
          "description": "Cloud region this endpoint is associated with."
        }
      }
    },
    "BackupConfig": {
      "type": "object",
      "description": "Backup schedule and retention policy for the cluster.",
      "properties": {
        "schedule_enabled": {
          "type": "boolean",
          "description": "Whether automatic scheduled backups are enabled for this cluster."
        },
        "frequency_in_hours": {
          "type": "integer",
          "description": "How often scheduled backups are taken, in hours. Default is 24.",
          "minimum": 1,
          "maximum": 168
        },
        "retention_period_in_days": {
          "type": "integer",
          "description": "Number of days scheduled backups are retained before automatic deletion. Default is 8.",
          "minimum": 1,
          "maximum": 365
        },
        "storage_location": {
          "type": "string",
          "description": "Cloud storage path or bucket where backups are stored."
        }
      }
    },
    "MaintenanceWindow": {
      "type": "object",
      "description": "Scheduled window during which Yugabyte may apply patches and infrastructure updates.",
      "properties": {
        "day_of_week": {
          "type": "string",
          "description": "Day of the week when the maintenance window is scheduled.",
          "enum": [
            "MONDAY",
            "TUESDAY",
            "WEDNESDAY",
            "THURSDAY",
            "FRIDAY",
            "SATURDAY",
            "SUNDAY"
          ]
        },
        "start_time": {
          "type": "string",
          "description": "UTC start time for the maintenance window in HH:MM format (24-hour clock).",
          "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$"
        },
        "duration_in_hours": {
          "type": "integer",
          "description": "Duration of the maintenance window in hours.",
          "minimum": 1,
          "maximum": 8
        }
      }
    },
    "ReadReplica": {
      "type": "object",
      "description": "An asynchronous read replica attached to a primary cluster for distributing read traffic.",
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "Unique identifier for the read replica."
        },
        "cloud_info": {
          "$ref": "#/$defs/CloudInfo"
        },
        "cluster_info": {
          "$ref": "#/$defs/ClusterInfo"
        },
        "state": {
          "type": "string",
          "description": "Current operational state of the read replica.",
          "enum": ["ACTIVE", "CREATING", "DELETING", "FAILED"]
        },
        "endpoints": {
          "type": "array",
          "description": "Connection endpoints for the read replica.",
          "items": {
            "$ref": "#/$defs/ClusterEndpoint"
          }
        }
      }
    },
    "EncryptionInTransit": {
      "type": "object",
      "description": "TLS encryption settings for cluster communications.",
      "properties": {
        "node_to_node": {
          "type": "boolean",
          "description": "Whether TLS encryption is enabled for node-to-node communication within the cluster."
        },
        "client_to_node": {
          "type": "boolean",
          "description": "Whether TLS encryption is enabled for client-to-node communication."
        },
        "cert_expiry_time": {
          "type": "string",
          "format": "date-time",
          "description": "Expiry timestamp for the TLS certificate in use on the cluster."
        }
      }
    }
  }
}