{
  "type": "object",
  "$schema": "http://json-schema.org/draft-04/schema#",
  "title": "Input Parameters",
  "properties": {
    "user-authorized-key": {
      "title": "User Authorized Key",
      "description": "SSH public key in order to connect to the SSH server of this instance.",
      "textarea": true,
      "type": "string"
    },
    "enb_id": {
      "title": "eNB ID",
      "description": "eNB ID. (must be set if there are LTE cells)",
      "type": "string"
    },
    "gtp_addr": {
      "title": "GTP Address",
      "description": "String. Set the IP address (and optional port) on which the GTP-U packets are received. The default port is 2152. It is normally the IP address of the network interface connected to the core network.",
      "type": "string",
      "default": "127.0.1.1"
    },
    "mbmsgw_addr": {
      "title": "SGW Address",
      "description": "Set the IP address (and optional port) of the MBMS Gateway for the M2 connection. The default port is 36443.",
      "type": "string"
    },
    "mme_list": {
      "title": "MME list",
      "description": "List of MME to which the eNodeB is connected. (must be set if there are LTE cells)",
      "patternProperties": {
        ".*": {
          "properties": {
            "mme_addr": {
              "title": "MME Address",
              "description": "IP address (and optional port) of S1AP SCTP connection to the MME. The default port is 36412.",
              "type": "string"
            },
            "s1ap_bind_addr": {
              "title": "S1AP Bind Address",
              "description": "Optional String. IP address and optional port on which the S1AP SCTP connection is bound.",
              "type": "string"
            }
          },
          "type": "object"
        }
      },
      "type": "object"
    },
    "plmn_list": {
      "title": "PLMN list (4G)",
      "description": "List of PLMNs broadcasted by the eNodeB, at most 6. (must be set if there are LTE cells)",
      "patternProperties": {
        ".*": {
          "properties": {
            "plmn": {
              "title": "Public Land Mobile Network",
              "description": "Public Land Mobile Network",
              "type": "string"
            },
            "attach_without_pdn": {
              "default": false,
              "title": "Attach Without PDN",
              "description": "Optional boolean. Indicates if PLMN supports attach without PDN connectivity.",
              "type": "boolean"
            },
            "reserved": {
              "default": false,
              "title": "Reserved",
              "description": "True if the cell is reserved for operator use.",
              "type": "boolean"
            }
          },
          "type": "object"
        }
      },
      "type": "object"
    },
    "gnb_id": {
      "title": "gNB ID",
      "description": "gNB ID. (must be set if there are NR cells)",
      "type": "string"
    },
    "gnb_id_bits": {
      "title": "gNB ID bits",
      "description": "Number of bits for the gNodeB global identifier. (range 22 to 32)",
      "type": "number",
      "default": 28
    },
    "amf_list": {
      "title": "AMF list",
      "description": "List of AMF to which the gNodeB is connected. (must be set if there are NR cells)",
      "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"
            },
            "ngap_bind_addr": {
              "title": "NGAP Bind Address",
              "description": "Optional string. IP address and optional port on which the NGAP SCTP connection is bound.",
              "type": "string"
            }
          },
          "type": "object"
        }
      },
      "type": "object"
    },
    "plmn_list_5g": {
      "title": "PLMN list (5G)",
      "description": "List of PLMNs broadcasted by the gNodeB, at most 12. (must be set if there are NR cells)",
      "patternProperties": {
        ".*": {
          "properties": {
            "plmn": {
              "title": "Public Land Mobile Network",
              "description": "Public Land Mobile Network",
              "type": "string"
            },
            "tac": {
              "$ref": "cell/nr/input-schema.json#/$defs/tac"
            },
            "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"
    },
    "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": "0x000032",
              "title": "Slice Differentiator",
              "description": "Optional integer (range 0 to 0xFFFFFE)",
              "type": "string"
            }
          },
          "type": "object"
        }
      },
      "type": "object",
      "default": {}
    },
    "handover_a1_rsrp": {
      "title": "Handover A1 event RSRP threshold",
      "description": "Integer, range from -140 to -43. RSRP threshold value in dBm.",
      "type": "number",
      "default": -70
    },
    "handover_a1_hysteresis": {
      "title": "Handover A1 event hysteresis",
      "description": "Integer, range from 0 to 30. A1 hysteresis in 0.5dB steps used for the measurement report triggering condition.",
      "type": "number",
      "default": 0
    },
    "handover_a1_time_to_trigger": {
      "title": "Handover A1 event time to trigger",
      "description": "Time in ms during which the A1 event condition must be met before triggering the measurement report.",
      "type": "number",
      "enum": [
        0,
        40,
        64,
        80,
        100,
        128,
        160,
        256,
        320,
        480,
        512,
        640,
        1024,
        1280,
        2560,
        5120
      ],
      "default": 640
    },
    "handover_a2_rsrp": {
      "title": "Handover A2 event RSRP threshold",
      "description": "Integer, range from -140 to -43. RSRP threshold value in dBm.",
      "type": "number",
      "default": -80
    },
    "handover_a2_hysteresis": {
      "title": "Handover A2 event hysteresis",
      "description": "Integer, range from 0 to 30. A2 hysteresis in 0.5dB steps used for the measurement report triggering condition.",
      "type": "number",
      "default": 0
    },
    "handover_a2_time_to_trigger": {
      "title": "Handover A2 event time to trigger",
      "description": "Time in ms during which the A2 event condition must be met before triggering the measurement report.",
      "type": "number",
      "enum": [
        0,
        40,
        64,
        80,
        100,
        128,
        160,
        256,
        320,
        480,
        512,
        640,
        1024,
        1280,
        2560,
        5120
      ],
      "default": 640
    },
    "eutra_eutra_handover": {
      "title": "EUTRA Handover",
      "type": "object",
      "default": {
        "event": {
          "a3_rsrp": 6
        },
        "hysteresis": 0,
        "time_to_trigger": 480
      },
      "properties": {
        "event": {
          "title": "EUTRA Handover event",
          "type": "object",
          "oneOf": [
            {
              "title": "A3 event",
              "type": "object",
              "required": [
                "a3_rsrp"
              ],
              "properties": {
                "a3_rsrp": {
                  "title": "Handover A3 event RSRP offset",
                  "description": "Integer, range from -140 to -43. RSRP gain offset between eNBs and gNBs which will trigger handover",
                  "type": "number"
                }
              }
            },
            {
              "title": "A4 event",
              "type": "object",
              "required": [
                "a4_rsrp"
              ],
              "properties": {
                "a4_rsrp": {
                  "title": "Handover A4 event RSRP threshold",
                  "description": "Integer, range from -140 to -43. RSRP threshold value in dBm",
                  "type": "number"
                }
              }
            },
            {
              "title": "A5 event",
              "type": "object",
              "required": [
                "a5_threshold1_rsrp",
                "a5_threshold2_rsrp"
              ],
              "properties": {
                "a5_threshold1_rsrp": {
                  "title": "Handover A5 event RSRP threshold1",
                  "description": "Integer, range from -140 to -43. RSRP threshold1 value in dBm",
                  "type": "number"
                },
                "a5_threshold2_rsrp": {
                  "title": "Handover A5 event RSRP threshold2",
                  "description": "Integer, range from -140 to -43. RSRP threshold2 value in dBm",
                  "type": "number"
                }
              }
            }
          ]
        },
        "hysteresis": {
          "title": "EUTRA Handover hysteresis",
          "description": "Integer, range from 0 to 30. A3/A4/A5 hysteresis in 0.5dB steps used for the measurement report triggering condition.",
          "type": "number"
        },
        "time_to_trigger": {
          "title": "EUTRA Handover time to trigger",
          "description": "Time in ms during which the A3/A4/A5 event condition must be met before triggering the measurement report.",
          "type": "number",
          "enum": [
            0,
            40,
            64,
            80,
            100,
            128,
            160,
            256,
            320,
            480,
            512,
            640,
            1024,
            1280,
            2560,
            5120
          ]
        }
      }
    },
    "eutra_nr_handover": {
      "title": "NR Handover",
      "type": "object",
      "default": {
        "event": {
          "b1_rsrp": -80
        },
        "hysteresis": 0,
        "time_to_trigger": 100
      },
      "properties": {
        "event": {
          "title": "NR Handover event",
          "type": "object",
          "oneOf": [
            {
              "title": "B1 event",
              "type": "object",
              "required": [
                "b1_rsrp"
              ],
              "properties": {
                "b1_rsrp": {
                  "title": "Handover B1 event RSRP threshold",
                  "description": "Integer, range from -156 to -30. RSRP threshold value in dBm.",
                  "type": "number"
                }
              }
            },
            {
              "title": "B2 event",
              "type": "object",
              "required": [
                "b2_threshold1_rsrp",
                "b2_threshold2_rsrp"
              ],
              "properties": {
                "b2_threshold1_rsrp": {
                  "title": "Handover B2 event RSRP threshold1",
                  "description": "Integer, range from -140 to -43. RSRP threshold1 value in dBm",
                  "type": "number"
                },
                "b2_threshold2_rsrp": {
                  "title": "Handover B2 event RSRP threshold2",
                  "description": "Integer, range from -140 to -43. RSRP threshold2 value in dBm",
                  "type": "number"
                }
              }
            }
          ]
        },
        "hysteresis": {
          "title": "NR Handover hysteresis",
          "description": "Integer, range from 0 to 30. NR B1 or B2 hysteresis in 0.5dB steps.",
          "type": "number"
        },
        "time_to_trigger": {
          "title": "NR Handover time to trigger",
          "description": "Time in ms during which the NR B1 or B2 event condition must be met before triggering the measurement report.",
          "type": "number",
          "enum": [
            0,
            40,
            64,
            80,
            100,
            128,
            160,
            256,
            320,
            480,
            512,
            640,
            1024,
            1280,
            2560,
            5120
          ]
        }
      }
    },
    "nr_nr_handover": {
      "title": "NR Handover",
      "type": "object",
      "default": {
        "event": {
          "a3_rsrp": 6
        },
        "hysteresis": 0,
        "time_to_trigger": 480
      },
      "properties": {
        "event": {
          "title": "NR Handover event",
          "type": "object",
          "oneOf": [
            {
              "title": "A3 event",
              "type": "object",
              "required": [
                "a3_rsrp"
              ],
              "properties": {
                "a3_rsrp": {
                  "title": "Handover A3 event RSRP offset",
                  "description": "Integer, range from -140 to -43. RSRP gain offset between eNBs and gNBs which will trigger handover",
                  "type": "number"
                }
              }
            },
            {
              "title": "A4 event",
              "type": "object",
              "required": [
                "a4_rsrp"
              ],
              "properties": {
                "a4_rsrp": {
                  "title": "Handover A4 event RSRP threshold",
                  "description": "Integer, range from -140 to -43. RSRP threshold value in dBm",
                  "type": "number"
                }
              }
            },
            {
              "title": "A5 event",
              "type": "object",
              "required": [
                "a5_threshold1_rsrp",
                "a5_threshold2_rsrp"
              ],
              "properties": {
                "a5_threshold1_rsrp": {
                  "title": "Handover A5 event RSRP threshold1",
                  "description": "Integer, range from -140 to -43. RSRP threshold1 value in dBm",
                  "type": "number"
                },
                "a5_threshold2_rsrp": {
                  "title": "Handover A5 event RSRP threshold2",
                  "description": "Integer, range from -140 to -43. RSRP threshold2 value in dBm",
                  "type": "number"
                }
              }
            }
          ]
        },
        "hysteresis": {
          "title": "NR Handover hysteresis",
          "description": "Integer, range from 0 to 30. A3/A4/A5 hysteresis in 0.5dB steps used for the measurement report triggering condition.",
          "type": "number"
        },
        "time_to_trigger": {
          "title": "NR Handover time to trigger",
          "description": "Time in ms during which the A3/A4/A5 event condition must be met before triggering the measurement report.",
          "type": "number",
          "enum": [
            0,
            40,
            64,
            80,
            100,
            128,
            160,
            256,
            320,
            480,
            512,
            640,
            1024,
            1280,
            2560,
            5120
          ]
        }
      }
    },
    "nr_eutra_handover": {
      "title": "EUTRA Handover",
      "type": "object",
      "default": {
        "event": {
          "b1_rsrp": -80
        },
        "hysteresis": 0,
        "time_to_trigger": 100
      },
      "properties": {
        "event": {
          "title": "EUTRA Handover event",
          "type": "object",
          "oneOf": [
            {
              "title": "B1 event",
              "type": "object",
              "required": [
                "b1_rsrp"
              ],
              "properties": {
                "b1_rsrp": {
                  "title": "Handover B1 event RSRP threshold",
                  "description": "Integer, range from -156 to -30. RSRP threshold value in dBm.",
                  "type": "number"
                }
              }
            },
            {
              "title": "B2 event",
              "type": "object",
              "required": [
                "b2_threshold1_rsrp",
                "b2_threshold2_rsrp"
              ],
              "properties": {
                "b2_threshold1_rsrp": {
                  "title": "Handover B2 event RSRP threshold1",
                  "description": "Integer, range from -140 to -43. RSRP threshold1 value in dBm",
                  "type": "number"
                },
                "b2_threshold2_rsrp": {
                  "title": "Handover B2 event RSRP threshold2",
                  "description": "Integer, range from -140 to -43. RSRP threshold2 value in dBm",
                  "type": "number"
                }
              }
            }
          ]
        },
        "hysteresis": {
          "title": "EUTRA Handover hysteresis",
          "description": "Integer, range from 0 to 30. EUTRA B1 or B2 hysteresis in 0.5dB steps.",
          "type": "number"
        },
        "time_to_trigger": {
          "title": "EUTRA Handover time to trigger",
          "description": "Time in ms during which the EUTRA B1 or B2 event condition must be met before triggering the measurement report.",
          "type": "number",
          "enum": [
            0,
            40,
            64,
            80,
            100,
            128,
            160,
            256,
            320,
            480,
            512,
            640,
            1024,
            1280,
            2560,
            5120
          ]
        }
      }
    },
    "handover_meas_gap_config": {
      "title": "Handover measurement gap configuration",
      "description": "Configuration of the measurement gap. Ignored if no neighbour cells are configured.",
      "type": "string",
      "enum": [
        "None",
        "Gap Pattern 0",
        "Gap Pattern 1"
      ],
      "default": "Gap Pattern 1"
    },
    "log_phy_debug": {
      "title": "Physical layer log debug",
      "description": "Enable debug mode for physical layer logs",
      "type": "boolean",
      "default": false
    },
    "gps_sync": {
      "default": false,
      "title": "GPS synchronisation",
      "description": "True if GPS should be used for synchronisation",
      "type": "boolean"
    },
    "use_ipv4": {
      "default": false,
      "title": "Use IPv4",
      "description": "Set to true to use IPv4 for AMF / MME addresses",
      "type": "boolean"
    },
    "enb_stats_fetch_period": {
      "title": "eNB/gNB statistics fetch period (seconds)",
      "description": "Describes how often a call to Amarisoft remote API is made to get eNB/gNB statistics",
      "type": "number",
      "default": 60
    },
    "enb_drb_stats_enabled": {
      "title": "Enable eNB/gNB drb statistics",
      "description": "Enable eNB/gNB drb statistics through 100Hz polling, needed for E-UTRAN IP Throughput KPI",
      "type": "boolean",
      "default": true
    },
    "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_rxtx_delay": {
      "title": "Minimum available time for radio front end processing (ms)",
      "description": "Baseband latency promise will fail if minimum TX/RX diff reaches threshold (lower than this value)",
      "type": "number",
      "default": 0
    },
    "xlog_forwarding_enabled": {
      "title": "Enable eNB xlog forwarding",
      "description": "Enable eNB xlog forwarding through fluentbit",
      "type": "boolean",
      "default": "true"
    },
    "wendelin_telecom_software_release_url": {
      "title": "Wendelin Telecom Software Release URL",
      "description": "URL of the Wendelin Telecom Software Release to use to request a shared instance",
      "type": "string",
      "default": "wendelin-telecom-enb-shared-instance"
    },
    "xlog_fluentbit_forward_host": {
      "title": "Fluentbit Xlog forwarding address",
      "description": "Address of remote Fluentd or Fluentbit server to which Fluentbit should forward Xlog data",
      "type": "string"
    },
    "xlog_fluentbit_forward_port": {
      "title": "Fluentbit Xlog forwarding port",
      "description": "Port of remote Fluentd or Fluentbit server to which Fluentbit should forward Xlog data",
      "type": "integer",
      "default": 24224
    },
    "xlog_fluentbit_forward_shared_key": {
      "title": "Fluentbit Xlog forwarding shared key",
      "description": "Secret key shared with remote Fluentd or Fluentbit server for authentication when forwarding Xlog data",
      "type": "string"
    }
  }
}
