{
  "type": "object",
  "$schema": "http://json-schema.org/draft-04/schema",
  "title": "Input Parameters",
  "properties": {
    "rrh": {
      "title": "RRH",
      "description": "RRH",
      "type": "string",
      "default": "SDR",
      "enum": [
        "SDR",
        "M2RU Sunwave"
      ]
    },
    "tx_gain": {
      "title": "Tx gain",
      "description": "Tx gain (in dB)",
      "type": "number",
      "default": {{ default_nr_tx_gain }}
    },
    "rx_gain": {
      "title": "Rx gain",
      "description": "Rx gain (in dB)",
      "type": "number",
      "default": {{ default_nr_rx_gain }}
    },
    "n_antenna_dl": {
      "title": "Number of DL antennas",
      "description": "Enumeration: 1, 2, 4 or 8. Number of DL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.",
      "type": "number",
      "default": {{ default_n_antenna_dl }}
    },
    "n_antenna_ul": {
      "title": "Number of UL antennas",
      "description": "Enumeration: 1, 2, 4 or 8. Number of UL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.",
      "type": "number",
      "default": {{ default_n_antenna_ul }}
    },
    "gps_sync": {
      "default": false,
      "title": "GPS synchronisation",
      "description": "True if GPS should be used for synchronisation",
      "type": "boolean"
    },
    "dl_nr_arfcn": {
      "title": "DL NR ARFCN",
      "description": "Downlink NR Absolute Radio Frequency Channel Number of the cell",
      "type": "number",
      "default": {{ default_dl_nr_arfcn }}
    },
    "nr_band": {
      "title": "NR band",
      "description": "NR band number",
      "type": "number",
      "default": {{ default_nr_band }}
    },
    "nr_bandwidth": {
      "title": "Bandwidth",
      "description": "Downlink Bandwidth (in MHz)",
      "type": "number",
      "default": {{ default_nr_bandwidth }}
    },
    "amf_list": {
      "title": "AMF list",
      "description": "Optionnal. List of AMF to which the gNodeB is connected",
      "patternProperties": {
        ".*": {
          "properties": {
            "amf_addr": {
              "title": "AMF Address",
              "description": "IP address (and optional port) of NGAP SCTP connection to the AMF. The default port is 38412.",
              "type": "string"
            }
          },
          "type": "object"
        }
      },
      "type": "object",
      "default": {}
    },
    "ncell_list": {
      "title": "Neighbour Cell Info",
      "description": "Neighbour Cell Info",
      "patternProperties": {
        ".*": {
          "properties": {
            "dl_nr_arfcn": {
              "title": "DL NR ARFCN",
              "description": "Downlink NR Absolute Radio Frequency Channel Number of the neighbour cell",
              "type": "number"
            },
            "ssb_nr_arfcn": {
              "title": "SSB NR ARFCN",
              "description": "SSB NR Absolute Radio Frequency Channel Number of the neighbour cell",
              "type": "number"
            },
            "pci": {
              "title": "Physical Cell ID",
              "description": "Physical Cell ID of the neighbour cell",
              "type": "number"
            },
            "nr_cell_id": {
              "title": "NR Cell ID",
              "description": "Concatenation of gnb_id and cell_id of the neighbour cell",
              "type": "string"
            },
            "gnb_id_bits": {
              "title": "gNB ID bits",
              "description": "Number of bits for the gNodeB global identifier. (range 22 to 32)",
              "type": "number"
            },
            "nr_band": {
              "title": "NR band",
              "description": "NR band number",
              "type": "number"
            },
            "tac": {
              "title": "Tracking Area Code",
              "description": "Integer (range 0 to 16777215)",
              "type": "number"
            }
          },
          "type": "object"
        }
      },
      "type": "object",
      "default": {}
    },
    "xn_peers": {
      "title": "XN Peers",
      "description": "XN Peers",
      "patternProperties": {
        ".*": {
          "properties": {
            "xn_addr": {
              "title": "XN Address",
              "description": "XN Address of the neighbour cell (gNB Address)",
              "type": "string"
            }
          },
          "type": "object"
        }
      },
      "type": "object",
      "default": {}
    },
    "gnb_id": {
      "title": "gNB ID",
      "description": "gNB ID",
      "type": "string",
      "default": "0x12345"
    },
    "gnb_id_bits": {
      "title": "gNB ID bits",
      "description": "Number of bits for the gNodeB global identifier. (range 22 to 32)",
      "type": "number",
      "default": 28
    },
    "cell_id": {
      "title": "Cell ID",
      "description": "Cell ID",
      "type": "string",
      "default": "0x01"
    },
    "pci": {
      "title": "Physical Cell ID",
      "description": "Physical Cell ID",
      "type": "number",
      "default": 500
    },
    "ssb_pos_bitmap": {
      "title": "SSB Position Bitmap",
      "description": "SSB position bitmap in bits (4, 8 or 64 bits depending on the DL frequency).",
      "type": "string",
      "default": {{ default_nr_ssb_pos_bitmap }}
    },
    "plmn_list": {
      "title": "PLMN list",
      "description": "List of PLMNs broadcasted by the gNodeB, at most 12 (default: 00101)",
      "patternProperties": {
        ".*": {
          "properties": {
            "plmn": {
              "default": "00101",
              "title": "Public Land Mobile Network",
              "description": "Public Land Mobile Network",
              "type": "string"
            },
            "tac": {
              "default": 100,
              "title": "Tracking Area Code",
              "description": "Integer (range 0 to 16777215)",
              "type": "number"
            },
            "ranac": {
              "title": "Optional integer (range 0 to 255)",
              "description": "RAN Area Code",
              "type": "number"
            },
            "reserved": {
              "default": false,
              "title": "Reserved",
              "description": "True if the cell is reserved for operator use.",
              "type": "boolean"
            }
          },
          "type": "object"
        }
      },
      "type": "object",
      "default": {}
    },
    "nssai": {
      "title": "AMF slices configuration",
      "description": "AMF slices configuration.",
      "patternProperties": {
        ".*": {
          "properties": {
            "sst": {
              "default": 1,
              "title": "Slice Service Type",
              "description": "Integer (range 1 to 255).",
              "type": "number"
            },
            "sd": {
              "default": 50,
              "title": "Slice Differentiator",
              "description": "Optional integer (range 0 to 0xFFFFFE)",
              "type": "number"
            }
          },
          "type": "object"
        }
      },
      "type": "object",
      "default": {}
    },
    "inactivity_timer": {
      "title": "Inactivity Timer",
      "description": "Send RRC connection release after this time (in ms) of network inactivity.",
      "type": "number",
      "default": {{ default_nr_inactivity_timer }}
    },
    "use_ipv4": {
      "default": false,
      "title": "Use IPv4",
      "description": "Set to true to use IPv4 for AMF / MME addresses",
      "type": "boolean"
    },
    "gnb_stats_fetch_period": {
      "title": "gNB statistics fetch period (seconds)",
      "description": "Describes how often a call to Amarisoft remote API is made to get gNB statistics",
      "type": "number",
      "default": 60
    },
    "gnb_drb_stats_enabled": {
      "title": "Enable gNB drb statistics",
      "description": "Enable gNB drb statistics through 100Hz polling, needed for E-UTRAN IP Throughput KPI",
      "type": "boolean",
      "default": true
    },
    "fluent_bit_conf": {
      "title": "fluent-bit configuration",
      "description": "fluent-it configuration",
      "type": "object",
      "properties": {
        "service": {
          "description": "The desired fluent-bit service, which defines in fluent-bit's configuration the service.",
          "type": "object",
          "default": {}
        },
        "input": {
          "description": "The desired fluent-bit input, which defines in fluent-bit's configuration the inputs.",
          "type": "object",
          "default": {}
        },
        "output": {
          "description": "The desired fluent-bit output, which defines in fluent-bit's configuration the outputs.",
           "type": "object",
           "default": {}
        }

      }
    },

    "max_rx_sample_db": {
      "title": "Maximum RX sample value (dB)",
      "description": "Maximum RX sample threshold above which RX saturated promise will fail",
      "type": "number",
      "default": 0
    },
    "min_txrx_delay": {
      "title": "Minimum available time for radio front end processing (ms)",
      "description": "Minimum TX/RX diff threshold above which baseband latency promise will fail",
      "type": "number",
      "default": 5
    },
    "avg_txrx_delay": {
      "title": "Average available time for radio front end processing (ms)",
      "description": "Average TX/RX diff threshold above which baseband latency promise will fail",
      "type": "number",
      "default": 7
    },
    "promise_cpu_temperature_threshold": {
      "title": "CPU temperature promise threshold",
      "description": "Temperature threshold above which CPU temperature promise will fail",
      "type": "number",
      "default": 80
    },
    "promise_cpu_avg_temperature_threshold": {
      "title": "Average CPU temperature promise threshold",
      "description": "If average temperature over specified duration reaches this threshold, promise will fail",
      "type": "number",
      "default": 80
    },
    "promise_cpu_avg_temperature_threshold_duration": {
      "title": "Average CPU temperature promise threshold duration",
      "description": "Duration during which average temperature should not exceed specified threshold",
      "type": "number",
      "default": 600
    }
  }
}
