{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/oracle/main/json-schema/oracle-bds-instance-schema.json",
  "title": "BdsInstance",
  "description": "Description of the cluster.",
  "x-generated": "2026-10-03",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/oracle-bds-api-openapi.yml#/components/schemas/BdsInstance",
  "properties": {
    "bdsClusterVersionSummary": {
      "$ref": "#/$defs/BdsClusterVersionSummary"
    },
    "bootstrapScriptUrl": {
      "description": "pre-authenticated URL of the bootstrap script in Object Store that can be downloaded and executed.",
      "maxLength": 1024,
      "minLength": 1,
      "type": "string"
    },
    "cloudSqlDetails": {
      "$ref": "#/$defs/CloudSqlDetails"
    },
    "clusterDetails": {
      "$ref": "#/$defs/ClusterDetails"
    },
    "clusterProfile": {
      "description": "Profile of the Big Data Service cluster.",
      "enum": [
        "HADOOP_EXTENDED",
        "HADOOP",
        "HIVE",
        "SPARK",
        "HBASE",
        "TRINO",
        "KAFKA"
      ],
      "type": "string"
    },
    "clusterVersion": {
      "description": "Version of the Hadoop distribution.",
      "enum": [
        "CDH5",
        "CDH6",
        "ODH1",
        "ODH0_9",
        "ODH2_0"
      ],
      "type": "string"
    },
    "compartmentId": {
      "description": "The OCID of the compartment.",
      "maxLength": 255,
      "minLength": 1,
      "type": "string"
    },
    "createdBy": {
      "description": "The user who created the cluster.",
      "type": "string"
    },
    "definedTags": {
      "additionalProperties": {
        "additionalProperties": {
          "description": "The value of the tag. Only string, integer and boolean types are supported.\n",
          "type": "object"
        },
        "description": "Key-value pair representing predefined tags' keys and values scoped to a namespace.\nFor example, `{\"bar-key\": \"value\"}`\n",
        "type": "object"
      },
      "description": "Defined tags for this resource. Each key is predefined and scoped to a namespace.\nFor example, `{\"foo-namespace\": {\"bar-key\": \"value\"}}`\n",
      "type": "object"
    },
    "displayName": {
      "description": "The name of the cluster.",
      "maxLength": 255,
      "minLength": 1,
      "type": "string"
    },
    "freeformTags": {
      "additionalProperties": {
        "type": "string"
      },
      "description": "Simple key-value pair that is applied without any predefined name, type, or scope.\nExists for cross-compatibility only. For example, `{\"bar-key\": \"value\"}`\n",
      "type": "object"
    },
    "id": {
      "description": "The OCID of the Big Data Service resource.",
      "maxLength": 255,
      "minLength": 1,
      "type": "string"
    },
    "isCloudSqlConfigured": {
      "default": false,
      "description": "Boolean flag specifying whether or not Cloud SQL should be configured.",
      "type": "boolean"
    },
    "isHighAvailability": {
      "description": "Boolean flag specifying whether or not the cluster is highly available (HA)",
      "type": "boolean"
    },
    "isKafkaConfigured": {
      "default": false,
      "description": "Boolean flag specifying whether or not Kafka should be configured.",
      "type": "boolean"
    },
    "isSecretReused": {
      "default": false,
      "description": "Boolean flag specifying whether or not to persist the provided secret OCID and reuse it for future operations.",
      "type": "boolean"
    },
    "isSecure": {
      "description": "Boolean flag specifying whether or not the cluster should be set up as secure.",
      "type": "boolean"
    },
    "kmsKeyId": {
      "description": "The OCID of the Key Management master encryption key.",
      "maxLength": 255,
      "minLength": 1,
      "type": "string"
    },
    "lifecycleState": {
      "description": "The state of the cluster.",
      "enum": [
        "CREATING",
        "ACTIVE",
        "UPDATING",
        "SUSPENDING",
        "SUSPENDED",
        "RESUMING",
        "DELETING",
        "DELETED",
        "FAILED",
        "INACTIVE"
      ],
      "type": "string"
    },
    "networkConfig": {
      "$ref": "#/$defs/NetworkConfig"
    },
    "nodes": {
      "description": "The list of nodes in the cluster.",
      "items": {
        "$ref": "#/$defs/Node"
      },
      "type": "array"
    },
    "numberOfNodes": {
      "description": "Number of nodes that forming the cluster",
      "format": "int32",
      "maximum": 8192,
      "minimum": 1,
      "type": "integer"
    },
    "numberOfNodesRequiringMaintenanceReboot": {
      "description": "Number of nodes that require a maintenance reboot",
      "format": "int32",
      "maximum": 8192,
      "minimum": 1,
      "type": "integer"
    },
    "secretId": {
      "description": "The secretId for the clusterAdminPassword.",
      "maxLength": 255,
      "minLength": 1,
      "type": "string"
    },
    "timeCreated": {
      "description": "The time the cluster was created, shown as an RFC 3339 formatted datetime string.",
      "format": "date-time",
      "type": "string"
    },
    "timeEarliestCertificateExpiration": {
      "description": "The earliest time of certificate expiration date across the certificates of all current nodes under this cluster.",
      "format": "date-time",
      "type": "string"
    },
    "timeUpdated": {
      "description": "The time the cluster was updated, shown as an RFC 3339 formatted datetime string.",
      "format": "date-time",
      "type": "string"
    }
  },
  "required": [
    "id",
    "compartmentId",
    "displayName",
    "lifecycleState",
    "isHighAvailability",
    "isSecure",
    "isCloudSqlConfigured",
    "isKafkaConfigured",
    "numberOfNodes",
    "nodes"
  ],
  "type": "object",
  "$defs": {
    "BdsClusterVersionSummary": {
      "description": "Cluster version details including bds and odh version information.",
      "properties": {
        "bdsVersion": {
          "description": "BDS version to be used for cluster creation",
          "type": "string"
        },
        "odhVersion": {
          "description": "ODH version to be used for cluster creation",
          "type": "string"
        }
      },
      "required": [
        "bdsVersion"
      ],
      "type": "object"
    },
    "CloudSqlDetails": {
      "description": "The information about added Cloud SQL capability",
      "properties": {
        "blockVolumeSizeInGBs": {
          "description": "The size of block volume in GB that needs to be attached to a given node.\nAll the necessary details needed for attachment are managed by service itself.\n",
          "format": "int64",
          "type": "integer"
        },
        "ipAddress": {
          "description": "IP address of the Cloud SQL node.",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "isKerberosMappedToDatabaseUsers": {
          "default": true,
          "description": "Boolean flag specifying whether or not Kerberos principals are mapped\nto database users.\n",
          "type": "boolean"
        },
        "kerberosDetails": {
          "description": "Details about the Kerberos principals.",
          "items": {
            "$ref": "#/$defs/KerberosDetails"
          },
          "type": "array"
        },
        "shape": {
          "description": "Shape of the node",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        }
      },
      "required": [
        "shape",
        "ipAddress"
      ],
      "type": "object"
    },
    "ClusterDetails": {
      "description": "Specific info about a Hadoop cluster",
      "properties": {
        "ambariUrl": {
          "description": "The URL of Ambari",
          "maxLength": 1024,
          "minLength": 1,
          "type": "string"
        },
        "bdCellVersion": {
          "description": "Cloud SQL cell version.",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "bdaVersion": {
          "description": "BDA version installed in the cluster",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "bdmVersion": {
          "description": "Big Data Manager version installed in the cluster.",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "bdsVersion": {
          "description": "Big Data Service version installed in the cluster.",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "bigDataManagerUrl": {
          "description": "The URL of Big Data Manager.",
          "maxLength": 1024,
          "minLength": 1,
          "type": "string"
        },
        "clouderaManagerUrl": {
          "description": "The URL of Cloudera Manager",
          "maxLength": 1024,
          "minLength": 1,
          "type": "string"
        },
        "csqlCellVersion": {
          "description": "Big Data SQL version.",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "dbVersion": {
          "description": "Cloud SQL query server database version.",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "hueServerUrl": {
          "description": "The URL of the Hue server.",
          "maxLength": 1024,
          "minLength": 1,
          "type": "string"
        },
        "jupyterHubUrl": {
          "description": "The URL of the Jupyterhub.",
          "maxLength": 1024,
          "minLength": 1,
          "type": "string"
        },
        "odhVersion": {
          "description": "Version of the ODH (Oracle Distribution including Apache Hadoop) installed on the cluster.",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "osVersion": {
          "description": "Oracle Linux version installed in the cluster.",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "timeCreated": {
          "description": "The time the cluster was created, shown as an RFC 3339 formatted datetime string.",
          "format": "date-time",
          "type": "string"
        },
        "timeRefreshed": {
          "description": "The time the cluster was automatically or manually refreshed, shown as an RFC 3339 formatted datetime string.\n",
          "format": "date-time",
          "type": "string"
        }
      },
      "required": [
        "timeCreated"
      ],
      "type": "object"
    },
    "KerberosDetails": {
      "description": "Details about the Kerberos principals.",
      "properties": {
        "keytabFile": {
          "description": "Location of the keytab file",
          "maxLength": 1024,
          "minLength": 1,
          "type": "string"
        },
        "principalName": {
          "description": "Name of the Kerberos principal.",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        }
      },
      "required": [
        "principalName",
        "keytabFile"
      ],
      "type": "object"
    },
    "NetworkConfig": {
      "description": "Additional configuration of the user's network.",
      "properties": {
        "cidrBlock": {
          "description": "The CIDR IP address block of the VCN.",
          "maxLength": 32,
          "minLength": 1,
          "type": "string"
        },
        "isNatGatewayRequired": {
          "description": "A boolean flag whether to configure a NAT gateway.",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "Node": {
      "description": "Details about a node.",
      "properties": {
        "attachedBlockVolumes": {
          "description": "The list of block volumes attached to a given node.",
          "items": {
            "$ref": "#/$defs/VolumeAttachmentDetail"
          },
          "type": "array"
        },
        "availabilityDomain": {
          "description": "The name of the availability domain in which the node is running.",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "certificateConfigurationId": {
          "description": "ID of the certificate configuration which is used to generate the certificate for the node.",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "displayName": {
          "description": "The name of the node.",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "faultDomain": {
          "description": "The name of the fault domain in which the node is running.",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "hostname": {
          "description": "The fully-qualified hostname (FQDN) of the node.",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "imageId": {
          "description": "The OCID of the image from which the node was created.",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "instanceId": {
          "description": "The OCID of the underlying Oracle Cloud Infrastructure Compute instance.",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "ipAddress": {
          "description": "IP address of the node.",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "isRebootRequired": {
          "default": false,
          "description": "Indicates if the node requires a reboot to either reflect the latest os kernel or take actions for maintenance reboot.",
          "type": "boolean"
        },
        "lifecycleState": {
          "description": "The state of the node.",
          "enum": [
            "CREATING",
            "ACTIVE",
            "INACTIVE",
            "UPDATING",
            "DELETING",
            "DELETED",
            "FAILED",
            "STOPPED",
            "STOPPING",
            "STARTING"
          ],
          "type": "string"
        },
        "localDisksTotalSizeInGBs": {
          "description": "The aggregate size of all local disks, in gigabytes. If the instance does not have any local disks, this field is null.",
          "format": "double",
          "type": "number"
        },
        "memoryInGBs": {
          "description": "The total amount of memory available to the node, in gigabytes.",
          "type": "integer"
        },
        "nodeBackupId": {
          "description": "The node back id that was used for replacing the node.",
          "type": "string"
        },
        "nodeType": {
          "description": "Cluster node type.",
          "enum": [
            "MASTER",
            "EDGE",
            "UTILITY",
            "WORKER",
            "COMPUTE_ONLY_WORKER",
            "KAFKA_BROKER",
            "BURSTING",
            "CLOUD_SQL"
          ],
          "type": "string"
        },
        "nvmes": {
          "description": "The number of NVMe drives to be used for storage. A single drive has 6.8 TB available.",
          "type": "integer"
        },
        "ocpus": {
          "description": "The total number of OCPUs available to the node.",
          "type": "integer"
        },
        "odhVersion": {
          "description": "Version of the ODH (Oracle Distribution including Apache Hadoop) for the node.",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "osVersion": {
          "default": "OL7.9",
          "description": "BDS-assigned Operating System version for the node.",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "shape": {
          "description": "Shape of the node.",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "sshFingerprint": {
          "description": "The fingerprint of the SSH key used for node access.",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "subnetId": {
          "description": "The OCID of the subnet in which the node is to be created.",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "timeCreated": {
          "description": "The time the node was created, shown as an RFC 3339 formatted datetime string.",
          "format": "date-time",
          "type": "string"
        },
        "timeMaintenanceRebootDue": {
          "description": "The date and time the instance is expected to be stopped / started, in the format defined by RFC3339.",
          "format": "date-time",
          "type": "string"
        },
        "timeReplaced": {
          "description": "The date and time the instance was replaced by a new vm with a node backup.",
          "format": "date-time",
          "type": "string"
        },
        "timeUpdated": {
          "description": "The time the cluster was updated, shown as an RFC 3339 formatted datetime string.",
          "format": "date-time",
          "type": "string"
        }
      },
      "required": [
        "instanceId",
        "displayName",
        "lifecycleState",
        "nodeType",
        "shape",
        "ipAddress",
        "sshFingerprint",
        "availabilityDomain",
        "faultDomain",
        "timeCreated",
        "subnetId"
      ],
      "type": "object"
    },
    "VolumeAttachmentDetail": {
      "description": "A detail of the attached block volume.",
      "properties": {
        "volumeAttachmentId": {
          "description": "The OCID of the volume attachment.",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "volumeSizeInGBs": {
          "description": "The size of the volume in GBs.",
          "format": "int64",
          "type": "integer"
        }
      },
      "required": [
        "volumeAttachmentId",
        "volumeSizeInGBs"
      ],
      "type": "object"
    }
  }
}