{
  "$id": "https://schemas.sand.binaryedge.io/minion/modules/grabber",
  "title": "Grabber Module Body",
  "type": "object",
  "properties": {
    "module": {
      "type": "string",
      "enum": [
        "amqp091",
        "bacnet",
        "banner",
        "dnp3",
        "fox",
        "ftp",
        "http",
        "imap",
        "ipp",
        "jarm",
        "modbus",
        "mongodb",
        "mqtt",
        "mssql",
        "mysql",
        "ntp",
        "oracle",
        "pop3",
        "postgres",
        "pptp",
        "redis",
        "siemens",
        "smb",
        "smtp",
        "socks5",
        "ssh",
        "telnet",
        "tls"
      ]
    },
    "output": {
      "$comment": "Conditionals below may apply a module-specific schema to this object."
    },
    "probe": {
      "$comment": "Probe type identifier for the banner module.",
      "type": "string"
    },
    "tls": {
      "$comment": "TLS handshake metadata for encrypted connections. Present as supplementary data for non-'tls' modules that use TLS, or as primary output when module is 'tls'.",
      "$ref": "#/$defs/tls"
    }
  },
  "allOf": [
    {
      "if": {
        "properties": {
          "module": {
            "const": "amqp091"
          }
        }
      },
      "then": {
        "properties": {
          "output": {
            "$ref": "#/$defs/amqp091"
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "module": {
            "const": "bacnet"
          }
        }
      },
      "then": {
        "properties": {
          "output": {
            "$ref": "#/$defs/bacnet"
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "module": {
            "const": "banner"
          }
        }
      },
      "then": {
        "properties": {
          "output": {
            "$ref": "#/$defs/banner"
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "module": {
            "const": "dnp3"
          }
        }
      },
      "then": {
        "properties": {
          "output": {
            "$ref": "#/$defs/dnp3"
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "module": {
            "const": "fox"
          }
        }
      },
      "then": {
        "properties": {
          "output": {
            "$ref": "#/$defs/fox"
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "module": {
            "const": "ftp"
          }
        }
      },
      "then": {
        "properties": {
          "output": {
            "$ref": "#/$defs/ftp"
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "module": {
            "const": "http"
          }
        }
      },
      "then": {
        "properties": {
          "output": {
            "$ref": "#/$defs/http"
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "module": {
            "const": "imap"
          }
        }
      },
      "then": {
        "properties": {
          "output": {
            "$ref": "#/$defs/imap"
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "module": {
            "const": "ipp"
          }
        }
      },
      "then": {
        "properties": {
          "output": {
            "$ref": "#/$defs/ipp"
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "module": {
            "const": "jarm"
          }
        }
      },
      "then": {
        "properties": {
          "output": {
            "$ref": "#/$defs/jarm"
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "module": {
            "const": "modbus"
          }
        }
      },
      "then": {
        "properties": {
          "output": {
            "$ref": "#/$defs/modbus"
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "module": {
            "const": "mongodb"
          }
        }
      },
      "then": {
        "properties": {
          "output": {
            "$ref": "#/$defs/mongodb"
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "module": {
            "const": "mqtt"
          }
        }
      },
      "then": {
        "properties": {
          "output": {
            "$ref": "#/$defs/mqtt"
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "module": {
            "const": "mssql"
          }
        }
      },
      "then": {
        "properties": {
          "output": {
            "$ref": "#/$defs/mssql"
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "module": {
            "const": "mysql"
          }
        }
      },
      "then": {
        "properties": {
          "output": {
            "$ref": "#/$defs/mysql"
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "module": {
            "const": "ntp"
          }
        }
      },
      "then": {
        "properties": {
          "output": {
            "$ref": "#/$defs/ntp"
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "module": {
            "const": "oracle"
          }
        }
      },
      "then": {
        "properties": {
          "output": {
            "$ref": "#/$defs/oracle"
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "module": {
            "const": "pop3"
          }
        }
      },
      "then": {
        "properties": {
          "output": {
            "$ref": "#/$defs/pop3"
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "module": {
            "const": "postgres"
          }
        }
      },
      "then": {
        "properties": {
          "output": {
            "$ref": "#/$defs/postgres"
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "module": {
            "const": "pptp"
          }
        }
      },
      "then": {
        "properties": {
          "output": {
            "$ref": "#/$defs/pptp"
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "module": {
            "const": "redis"
          }
        }
      },
      "then": {
        "properties": {
          "output": {
            "$ref": "#/$defs/redis"
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "module": {
            "const": "siemens"
          }
        }
      },
      "then": {
        "properties": {
          "output": {
            "$ref": "#/$defs/siemens"
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "module": {
            "const": "smb"
          }
        }
      },
      "then": {
        "properties": {
          "output": {
            "$ref": "#/$defs/smb"
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "module": {
            "const": "smtp"
          }
        }
      },
      "then": {
        "properties": {
          "output": {
            "$ref": "#/$defs/smtp"
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "module": {
            "const": "socks5"
          }
        }
      },
      "then": {
        "properties": {
          "output": {
            "$ref": "#/$defs/socks5"
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "module": {
            "const": "ssh"
          }
        }
      },
      "then": {
        "properties": {
          "output": {
            "$ref": "#/$defs/ssh"
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "module": {
            "const": "telnet"
          }
        }
      },
      "then": {
        "properties": {
          "output": {
            "$ref": "#/$defs/telnet"
          }
        }
      }
    },
    {
      "if": {
        "properties": {
          "module": {
            "const": "tls"
          }
        }
      },
      "then": {
        "properties": {
          "output": {
            "$ref": "#/$defs/tls"
          }
        }
      }
    }
  ],
  "$defs": {
    "amqp091": {
      "type": "object",
      "properties": {
        "auth_success": {
          "type": "boolean"
        },
        "failure": {
          "type": "string"
        },
        "locales": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "server_properties": {
          "type": "object",
          "properties": {
            "copyright": {
              "type": "string"
            },
            "information": {
              "type": "string"
            },
            "platform": {
              "type": "string"
            },
            "product": {
              "type": "string"
            },
            "unknown_props": {
              "type": "object"
            },
            "version": {
              "type": "string"
            }
          }
        },
        "tune": {
          "type": "object",
          "properties": {
            "channel_max": {
              "type": "integer"
            },
            "frame_max": {
              "type": "integer"
            },
            "heartbeat": {
              "type": "integer"
            }
          }
        },
        "version_major": {
          "type": "integer"
        },
        "version_minor": {
          "type": "integer"
        },
        "version_revision": {
          "type": "integer"
        }
      }
    },
    "bacnet": {
      "type": "object",
      "properties": {
        "application_software_revision": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "firmware_revision": {
          "type": "string"
        },
        "instance_number": {
          "type": "integer"
        },
        "is_bacnet": {
          "type": "boolean"
        },
        "location": {
          "type": "string"
        },
        "model_name": {
          "type": "string"
        },
        "object_name": {
          "type": "string"
        },
        "vendor_id": {
          "type": "integer"
        },
        "vendor_name": {
          "type": "string"
        }
      }
    },
    "banner": {
      "type": "object",
      "properties": {
        "banner": {
          "type": "string"
        },
        "length": {
          "type": "integer"
        }
      }
    },
    "dnp3": {
      "type": "object",
      "properties": {
        "is_dnp3": {
          "type": "boolean"
        },
        "raw_response": {
          "type": "string"
        }
      }
    },
    "fox": {
      "type": "object",
      "properties": {
        "agent_auth_type": {
          "type": "string"
        },
        "app_name": {
          "type": "string"
        },
        "app_version": {
          "type": "string"
        },
        "brand_id": {
          "type": "string"
        },
        "host_address": {
          "type": "string"
        },
        "host_id": {
          "type": "string"
        },
        "hostname": {
          "type": "string"
        },
        "id": {
          "type": "number"
        },
        "is_fox": {
          "type": "boolean"
        },
        "language": {
          "type": "string"
        },
        "os_name": {
          "type": "string"
        },
        "os_version": {
          "type": "string"
        },
        "station_name": {
          "type": "string"
        },
        "sys_info": {
          "type": "string"
        },
        "time_zone": {
          "type": "string"
        },
        "version": {
          "type": "string"
        },
        "vm_name": {
          "type": "string"
        },
        "vm_uuid": {
          "type": "string"
        },
        "vm_version": {
          "type": "string"
        }
      }
    },
    "ftp": {
      "type": "object",
      "properties": {
        "auth_ssl": {
          "type": "string"
        },
        "auth_tls": {
          "type": "string"
        },
        "banner": {
          "type": "string"
        }
      }
    },
    "http": {
      "type": "object",
      "properties": {
        "connect_request": {
          "type": "object",
          "properties": {
            "body": {
              "type": "string"
            },
            "endpoint": {
              "type": "string"
            },
            "method": {
              "type": "string"
            },
            "user_agent": {
              "type": "string"
            }
          }
        },
        "connect_response": {
          "type": "object"
        },
        "redirect_response_chain": {
          "type": "array",
          "items": {
            "type": "object"
          }
        },
        "redirects_to_resolved_ips": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "ip": {
                "type": "string"
              },
              "redirect_name": {
                "type": "string"
              }
            }
          }
        },
        "response": {
          "type": "object"
        }
      }
    },
    "imap": {
      "type": "object",
      "properties": {
        "banner": {
          "type": "string"
        },
        "close": {
          "type": "string"
        },
        "starttls": {
          "type": "string"
        }
      }
    },
    "ipp": {
      "type": "object",
      "properties": {
        "attr_ipp_versions": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "attr_printer_uris": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "attributes": {
          "type": "array",
          "items": {
            "type": "object"
          }
        },
        "cups_version": {
          "type": "string"
        },
        "version_major": {
          "type": "integer"
        },
        "version_minor": {
          "type": "integer"
        },
        "version_string": {
          "type": "string"
        }
      }
    },
    "jarm": {
      "type": "object"
    },
    "modbus": {
      "type": "object",
      "properties": {
        "exception_response": {
          "type": "object"
        },
        "function_code": {
          "type": "integer"
        },
        "length": {
          "type": "integer"
        },
        "raw": {
          "type": "string"
        },
        "raw_response": {
          "type": "string"
        },
        "unit_id": {
          "type": "integer"
        }
      }
    },
    "mongodb": {
      "type": "object",
      "properties": {
        "build_info": {
          "type": "object",
          "properties": {
            "allocator": {
              "type": "string"
            },
            "bits": {
              "type": "integer"
            },
            "cc": {
              "type": "string"
            },
            "cc_flags": {
              "type": "string"
            },
            "cxx": {
              "type": "string"
            },
            "cxx_flags": {
              "type": "string"
            },
            "dist_arch": {
              "type": "string"
            },
            "git_version": {
              "type": "string"
            },
            "javascript_engine": {
              "type": "string"
            },
            "link_flags": {
              "type": "string"
            },
            "max_bson_object_size": {
              "type": "integer"
            },
            "max_wire_version": {
              "type": "integer"
            },
            "storage_engines": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "sys_info": {
              "type": "string"
            },
            "target_arch": {
              "type": "string"
            },
            "target_os": {
              "type": "string"
            },
            "version": {
              "type": "string"
            }
          }
        },
        "database_info": {
          "type": "object",
          "properties": {
            "databases": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "empty": {
                    "type": "boolean"
                  },
                  "name": {
                    "type": "string"
                  },
                  "size_on_disk": {
                    "type": "integer"
                  },
                  "total_size": {
                    "type": "integer"
                  }
                }
              }
            }
          }
        },
        "is_master": {
          "type": "object",
          "properties": {
            "is_master": {
              "type": "boolean"
            },
            "logical_session_timeout_minutes": {
              "type": "integer"
            },
            "max_bson_object_size": {
              "type": "integer"
            },
            "max_message_size_bytes": {
              "type": "integer"
            },
            "max_wire_version": {
              "type": "integer"
            },
            "max_write_batch_size": {
              "type": "integer"
            },
            "min_wire_version": {
              "type": "integer"
            },
            "read_only": {
              "type": "boolean"
            }
          }
        }
      }
    },
    "mqtt": {
      "type": "object",
      "properties": {
        "connect_return_code": {
          "type": "integer"
        },
        "response": {
          "type": "string"
        },
        "session_present": {
          "type": "boolean"
        }
      }
    },
    "mssql": {
      "type": "object",
      "properties": {
        "version": {
          "type": "string"
        },
        "instance_name": {
          "type": "string"
        },
        "prelogin_options": {
          "type": "object"
        },
        "encrypt_mode": {
          "type": "string",
          "enum": [
            "ENCRYPT_OFF",
            "ENCRYPT_ON",
            "ENCRYPT_NOT_SUP",
            "ENCRYPT_REQ",
            "UNKNOWN"
          ]
        }
      }
    },
    "mysql": {
      "type": "object",
      "properties": {
        "protocol_version": {
          "type": "integer"
        },
        "server_version": {
          "type": "string"
        },
        "connection_id": {
          "type": "integer"
        },
        "auth_plugin_data": {
          "type": "string"
        },
        "capability_flags": {
          "$comment": "The module doesn't populate specific keys, it only relays what is returned from the server.",
          "type": "object"
        },
        "character_set": {
          "type": "integer"
        },
        "status_flags": {
          "$comment": "The module doesn't populate specific keys, it only relays what is returned from the server.",
          "type": "object"
        },
        "auth_plugin_name": {
          "type": "string"
        },
        "error_code": {
          "type": "integer"
        },
        "error_id": {
          "type": "string"
        },
        "error_message": {
          "type": "string"
        },
        "raw_packets": {
          "type": "string"
        }
      }
    },
    "ntp": {
      "type": "object",
      "properties": {
        "monlist_header": {
          "type": "object"
        },
        "monlist_response": {
          "type": "string"
        },
        "time": {
          "type": "string"
        },
        "time_response": {
          "type": "object"
        },
        "version": {
          "type": "integer"
        }
      }
    },
    "oracle": {
      "type": "object",
      "properties": {
        "handshake": {
          "type": "object",
          "properties": {
            "accept_version": {
              "type": "integer"
            },
            "connect_flags0": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "connect_flags1": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "did_resend": {
              "type": "boolean"
            },
            "global_service_options": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "nsn_service_versions": {
              "type": "object",
              "properties": {
                "service": {
                  "type": "string"
                },
                "version": {
                  "type": "string"
                }
              }
            },
            "nsn_version": {
              "type": "string"
            },
            "redirect_target": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "type": "string"
                  },
                  "value": {
                    "type": "string"
                  }
                }
              }
            },
            "redirect_target_raw": {
              "type": "string"
            },
            "refuse_error": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "type": "string"
                  },
                  "value": {
                    "type": "string"
                  }
                }
              }
            },
            "refuse_error_raw": {
              "type": "string"
            },
            "refuse_reason_app": {
              "type": "string"
            },
            "refuse_reason_sys": {
              "type": "string"
            },
            "refuse_version": {
              "type": "string"
            }
          }
        }
      }
    },
    "pop3": {
      "type": "object",
      "properties": {
        "banner": {
          "type": "string"
        },
        "help": {
          "type": "string"
        },
        "noop": {
          "type": "string"
        },
        "quit": {
          "type": "string"
        },
        "starttls": {
          "type": "string"
        }
      }
    },
    "postgres": {
      "type": "object",
      "properties": {
        "authentication_mode": {
          "type": "object",
          "properties": {
            "mode": {
              "type": "string",
              "enum": [
                "kerberos_v5",
                "password_cleartext",
                "password_md5",
                "scm_credentials",
                "gss",
                "sspi",
                "sasl",
                "ok",
                "gss-continue",
                "sasl-continue",
                "sasl-final"
              ]
            },
            "payload": {
              "type": "string"
            }
          }
        },
        "backend_key_data": {
          "type": "object",
          "properties": {
            "process_id": {
              "type": "integer"
            },
            "secret_key": {
              "type": "integer"
            }
          }
        },
        "is_ssl": {
          "type": "boolean"
        },
        "protocol_error": {
          "$ref": "#/$defs/postgres_error"
        },
        "server_parameters": {
          "type": "string"
        },
        "startup_error": {
          "$ref": "#/$defs/postgres_error"
        },
        "supported_versions": {
          "type": "string"
        },
        "transaction_status": {
          "type": "string"
        }
      }
    },
    "pptp": {
      "type": "object",
      "properties": {
        "banner": {
          "type": "string"
        },
        "control_message": {
          "type": "string"
        }
      }
    },
    "redis": {
      "type": "object",
      "properties": {
        "arch_bits": {
          "type": "string"
        },
        "auth_response": {
          "type": "string"
        },
        "build_id": {
          "type": "string"
        },
        "commands": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "custom_responses": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "arguments": {
                "type": "string"
              },
              "command": {
                "type": "string"
              },
              "response": {
                "type": "string"
              }
            }
          }
        },
        "gcc_version": {
          "type": "string"
        },
        "git_sha1": {
          "type": "string"
        },
        "info_response": {
          "type": "string"
        },
        "major": {
          "type": "integer"
        },
        "mem_allocator": {
          "type": "string"
        },
        "minor": {
          "type": "integer"
        },
        "mode": {
          "type": "string"
        },
        "nonexistent_response": {
          "type": "string"
        },
        "os": {
          "type": "string"
        },
        "patchlevel": {
          "type": "integer"
        },
        "ping_response": {
          "type": "string"
        },
        "quit_response": {
          "type": "string"
        },
        "raw_command_output": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "total_commands_processed": {
          "type": "integer"
        },
        "total_connections_received": {
          "type": "integer"
        },
        "uptime_in_seconds": {
          "type": "integer"
        },
        "used_memory": {
          "type": "integer"
        },
        "version": {
          "type": "string"
        }
      }
    },
    "siemens": {
      "type": "object",
      "properties": {
        "copyright": {
          "type": "string"
        },
        "cpu_profile": {
          "type": "string"
        },
        "is_s7": {
          "type": "boolean"
        },
        "module": {
          "type": "string"
        },
        "module_id": {
          "type": "string"
        },
        "module_type": {
          "type": "string"
        },
        "reserved_for_os": {
          "type": "string"
        },
        "serial_number": {
          "type": "string"
        },
        "system": {
          "type": "string"
        }
      }
    },
    "smb": {
      "type": "object",
      "properties": {
        "group_name": {
          "type": "string"
        },
        "has_ntlm": {
          "type": "boolean"
        },
        "native_os": {
          "type": "string"
        },
        "negotiation_log": {
          "type": "object",
          "properties": {
            "authentication_types": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "capabilities": {
              "type": "integer"
            },
            "command": {
              "type": "integer"
            },
            "credits": {
              "type": "integer"
            },
            "dialect_revision": {
              "type": "integer"
            },
            "flags": {
              "type": "integer"
            },
            "protocol_id": {
              "type": "string"
            },
            "security_mode": {
              "type": "integer"
            },
            "server_guid": {
              "type": "string"
            },
            "server_start_time": {
              "type": "integer"
            },
            "status": {
              "type": "integer"
            },
            "system_time": {
              "type": "integer"
            }
          }
        },
        "ntlm": {
          "type": "string"
        },
        "session_setup_log": {
          "type": "object",
          "properties": {
            "command": {
              "type": "integer"
            },
            "credits": {
              "type": "integer"
            },
            "flags": {
              "type": "integer"
            },
            "negotiate_flags": {
              "type": "integer"
            },
            "protocol_id": {
              "type": "string"
            },
            "setup_flags": {
              "type": "integer"
            },
            "status": {
              "type": "integer"
            },
            "target_name": {
              "type": "string"
            }
          }
        },
        "smb_capabilities": {
          "type": "object",
          "properties": {
            "smb_directory_leasing_support": {
              "type": "boolean"
            },
            "smb_encryption_support": {
              "type": "boolean"
            },
            "smb_leasing_support": {
              "type": "boolean"
            },
            "smb_multicredit_support": {
              "type": "boolean"
            },
            "smb_multchan_support": {
              "type": "boolean"
            },
            "smb_persistent_handle_support": {
              "type": "boolean"
            }
          }
        },
        "smb_version": {
          "type": "object",
          "properties": {
            "major": {
              "type": "integer"
            },
            "minor": {
              "type": "integer"
            },
            "revision": {
              "type": "integer"
            },
            "version_string": {
              "type": "string"
            }
          }
        },
        "smbv1_support": {
          "type": "boolean"
        }
      }
    },
    "smtp": {
      "type": "object",
      "properties": {
        "banner": {
          "type": "string"
        },
        "ehlo": {
          "type": "string"
        },
        "helo": {
          "type": "string"
        },
        "help": {
          "type": "string"
        },
        "implicit_tls": {
          "type": "boolean"
        },
        "quit": {
          "type": "string"
        },
        "starttls": {
          "type": "string"
        }
      }
    },
    "socks5": {
      "type": "object",
      "properties": {
        "connection_response": {
          "type": "string"
        },
        "connection_response_explanation": {
          "type": "object",
          "properties": {
            "Address Type": {
              "type": "string"
            },
            "Bound Address": {
              "type": "string"
            },
            "Bound Port": {
              "type": "string"
            },
            "Reply": {
              "type": "string"
            },
            "Reserved": {
              "type": "string"
            },
            "Version": {
              "type": "string"
            }
          }
        },
        "method_selection": {
          "type": "string"
        },
        "version": {
          "type": "string"
        }
      }
    },
    "ssh": {
      "type": "object",
      "properties": {
        "algorithm_selection": {
          "type": "object"
        },
        "banner": {
          "type": "string"
        },
        "client_id": {
          "type": "object",
          "properties": {
            "comment": {
              "type": "string"
            },
            "raw": {
              "type": "string"
            },
            "software": {
              "type": "string"
            },
            "version": {
              "type": "string"
            }
          }
        },
        "client_key_exchange": {
          "type": "object"
        },
        "crypto": {
          "type": "object",
          "properties": {
            "H": {
              "type": "string"
            },
            "K": {
              "type": "string"
            },
            "session_id": {
              "type": "string"
            }
          }
        },
        "key_exchange": {
          "type": "object"
        },
        "server_id": {
          "type": "object",
          "properties": {
            "comment": {
              "type": "string"
            },
            "raw": {
              "type": "string"
            },
            "software": {
              "type": "string"
            },
            "version": {
              "type": "string"
            }
          }
        },
        "server_key_exchange": {
          "type": "object"
        },
        "userauth": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "telnet": {
      "type": "object",
      "properties": {
        "banner": {
          "type": "string"
        },
        "do": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/pair"
          }
        },
        "dont": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/pair"
          }
        },
        "will": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/pair"
          }
        },
        "wont": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/pair"
          }
        },
        "vulnerabilities": {
          "type": "object"
        }
      }
    },
    "tls": {
      "type": "object",
      "properties": {
        "server_info": {
          "type": "object",
          "properties": {
            "highest_ssl_version_supported": {
              "type": "string"
            },
            "openssl_cipher_string_supported": {
              "type": "string"
            },
            "ip": {
              "type": "string"
            },
            "hostname": {
              "type": "string"
            }
          }
        },
        "certificate_chain": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "as_pem": {
                "type": "string"
              },
              "sha1_fingerprint": {
                "type": "string"
              },
              "sha256_fingerprint": {
                "type": "string"
              },
              "spki_subject_fingerprint": {
                "type": "string"
              },
              "as_dict": {
                "type": "object"
              }
            }
          }
        }
      }
    },
    "pair": {
      "name": {
        "type": "string"
      },
      "value": {
        "type": "integer"
      }
    },
    "postgres_error": {
      "type": "object",
      "properties": {
        "_unknown_error_tag": {
          "type": "string"
        },
        "code": {
          "type": "string"
        },
        "data": {
          "type": "string"
        },
        "detail": {
          "type": "string"
        },
        "hint": {
          "type": "string"
        },
        "internal_position": {
          "type": "string"
        },
        "internal_query": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "position": {
          "type": "string"
        },
        "routine": {
          "type": "string"
        },
        "schema": {
          "type": "string"
        },
        "severity": {
          "type": "string"
        },
        "severity_v": {
          "type": "string"
        },
        "table": {
          "type": "string"
        },
        "where": {
          "type": "string"
        }
      }
    }
  },
  "required": [
    "module",
    "output"
  ],
  "additionalProperties": false
}
