AISModSettings:
  description: AISMod
  properties:
    inputFrequencyOffset:
      description: channel center frequency shift from baseband center in Hz
      type: integer
      format: int64
    baud:
      type: integer
    rfBandwidth:
      description: channel RF bandwidth in Hz
      type: number
      format: float
    fmDeviation:
      description: frequency deviation in Hz
      type: integer
    gain:
      type: number
      format: float
    channelMute:
      type: integer
    repeat:
      type: integer
    repeatDelay:
      type: number
      format: float
    repeatCount:
      type: integer
    rampUpBits:
      type: integer
    rampDownBits:
      type: integer
    rampRange:
      type: integer
    rfNoise:
      type: integer
      description: >
        Boolean
          * 0 - off
          * 1 - on
    writeToFile:
      type: integer
      description: >
        Boolean
          * 0 - off
          * 1 - on
    msgType:
      type: integer
      description: >
        Message Type
          * 0 - Scheduled position report
          * 1 - Assigned position report
          * 2 - Special position report
          * 3 - Base station report
    mmsi:
      type: string
    status:
      type: integer
      description: >
        Ship status
          * 0 - Under way using engine
          * 1 - At anchor
          * 2 - Not under command
          * 3 - Restricted manoeuvrability
          * 4 - Constrained by her draught
          * 4 - Moored
          * 5 - Aground
          * 6 - Engaged in fishing
          * 7 - Under way sailing
          * 8 - Not defined
    latitude:
      type: number
      format: float
    longitude:
      type: number
      format: float
    course:
      type: number
      format: float
    speed:
      type: number
      format: float
    heading:
      type: integer
    data:
      type: string
    bt:
      type: number
      format: float
    symbolSpan:
      type: integer
    rgbColor:
      type: integer
    title:
      type: string
    streamIndex:
      description: MIMO channel. Not relevant when connected to SI (single Rx).
      type: integer
    useReverseAPI:
      description: Synchronize with reverse API (1 for yes, 0 for no)
      type: integer
    reverseAPIAddress:
      type: string
    reverseAPIPort:
      type: integer
    reverseAPIDeviceIndex:
      type: integer
    reverseAPIChannelIndex:
      type: integer
    udpEnabled:
      description: "Whether to receive messages to transmit on specified UDP port"
      type: integer
    udpAddress:
      description: "UDP address to receive messages to transmit via"
      type: string
    udpPort:
      description: "UDP port to receive messages to transmit via"
      type: integer
    channelMarker:
      $ref: "/doc/swagger/include/ChannelMarker.yaml#/ChannelMarker"
    rollupState:
      $ref: "/doc/swagger/include/RollupState.yaml#/RollupState"

AISModReport:
  description: AISMod
  properties:
    channelPowerDB:
      description: power transmitted in channel (dB)
      type: number
      format: float
    channelSampleRate:
      type: integer

AISModActions:
  description: AISMod
  properties:
    tx:
      type: integer
      description: >
        Transmit stored message
          * 0 - do nothing
          * 1 - transmit
    encode:
      type: integer
      description: >
        Encode message from discrete data
          * 0 - do nothing
          * 1 - encode
    data:
      type: string
