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 DatabaseDatabaseDBaaSDistributed 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."
        }
      }
    }
  }
}