{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "id": "http://www.qiskit.org/schemas/default_pulse_config_schema.json",
    "description": "Default OpenPulse backend configuration",
    "version": "1.0.0",
    "definitions": {
        "cmd_def": {
            "description": "OpenPulse command definition schema. Defines QASM commands in terms of pulses.",
            "properties": {
                "name": {
                    "description": "QASM command name",
                    "type": "string"
                },
                "qubits": {
                    "description": "Qubits to which this command def applies",
                    "items": {
                        "minimum": 0,
                        "type": "integer"
                    },
                    "minItems": 1,
                    "type": "array"
                },
                "sequence": {
                    "description": "Sequence of pulse instructions",
                    "items": {
                        "type": "object"
                    },
                    "type": "array"
                }
            },
            "required": [
                "name"
            ],
            "type": "object"
        },
        "complex": {
            "description": "JSON representation of a complex number",
            "items": {
                "type": "number"
            },
            "maxItems": 2,
            "minItems": 2,
            "type": "array"
        },
        "complex_array": {
            "description": "JSON representation of a complex vector",
            "items": {
                "$ref": "#/definitions/complex"
            },
            "minItems": 1,
            "type": "array"
        },
        "complex_matrix": {
            "description": "JSON representation of a complex matrix",
            "items": {
                "$ref": "#/definitions/complex_array"
            },
            "minItems": 1,
            "type": "array"
        },
        "discriminator": {
            "description": "Default measurement kernel",
            "properties": {
                "name": {
                    "type": "string"
                },
                "params": {
                    "type": "object"
                }
            },
            "type": "object"
        },
        "meas_kernel": {
            "description": "Default measurement kernel",
            "properties": {
                "name": {
                    "type": "string"
                },
                "params": {
                    "type": "object"
                }
            },
            "type": "object"
        }
    },
    "properties": {
        "buffer": {
            "default": 1,
            "description": "Default buffer time between pulses",
            "minimum": 0,
            "type": "integer"
        },
        "cmd_def": {
            "description": "Backend calibrated QASM to Pulse definitions",
            "items": {
                "$ref": "#/definitions/cmd_def"
            },
            "type": "array"
        },
        "discriminator": {
            "$ref": "#/definitions/discriminator"
        },
        "meas_freq_est": {
            "description": "Backend calibrated qubit frequencies",
            "items": {
                "type": "number"
            },
            "minItems": 1,
            "type": "array"
        },
        "meas_kernel": {
            "$ref": "#/definitions/meas_kernel"
        },
        "pulse_library": {
            "description": "Backend pulse library",
            "items": {
                "properties": {
                    "name": {
                        "description": "Pulse name",
                        "type": "string"
                    },
                    "samples": {
                        "$ref": "#/definitions/complex_array"
                    }
                },
                "required": [
                    "name",
                    "samples"
                ],
                "type": "object"
            },
            "type": "array"
        },
        "qubit_freq_est": {
            "description": "Backend calibrated qubit frequencies",
            "items": {
                "type": "number"
            },
            "minItems": 1,
            "type": "array"
        }
    },
    "required": [
        "qubit_freq_est",
        "meas_freq_est",
        "pulse_library",
        "buffer"
    ],
    "type": "object"
}