ZEEVEE-MIB DEFINITIONS ::= BEGIN

IMPORTS
	enterprises,
	MODULE-IDENTITY, OBJECT-TYPE,
    TimeTicks, Gauge32,
    Integer32, Counter32,
    NOTIFICATION-TYPE                   FROM SNMPv2-SMI
		
    MODULE-COMPLIANCE, OBJECT-GROUP     FROM SNMPv2-CONF

    NOTIFICATION-GROUP                  FROM SNMPv2-CONF
    
    TEXTUAL-CONVENTION, MacAddress,
    DisplayString                       FROM SNMPv2-TC
--    RowStatus                           FROM SNMPv2-TC

    IpAddressOriginTC                   FROM IP-MIB
    InetAddressType, InetAddress,
    InetAddressPrefixLength             FROM INET-ADDRESS-MIB;

zeeveeMIB MODULE-IDENTITY
    LAST-UPDATED
        "201905161216Z"	-- May 16, 2019 12:16:00 PM
    ORGANIZATION
        "ZeeVee, Inc."
	CONTACT-INFO
		"ZeeVee
         295 Foster St.
         Littleton, MA 01460
            
         support@zeevee.com"
	DESCRIPTION
		"SNMP support for the ZeeVee A/V over IP products."
	REVISION
        "201905161216Z"	-- May 16, 2019 12:16:00 PM
	DESCRIPTION
		"Initial version."
	::= { enterprises 53995 }

zvZyper     OBJECT IDENTIFIER  ::= { zeeveeMIB 1 }

zvzTraps    OBJECT IDENTIFIER  ::= { zvZyper 0 }
zvzServer   OBJECT IDENTIFIER  ::= { zvZyper 1 }
zvzDevice   OBJECT IDENTIFIER  ::= { zvZyper 2 }
zvzEncoder  OBJECT IDENTIFIER  ::= { zvZyper 3 }
zvzDecoder  OBJECT IDENTIFIER  ::= { zvZyper 4 }

zvzServerInfo       OBJECT IDENTIFIER ::= { zvzServer 1 }
zvzServerConfig     OBJECT IDENTIFIER ::= { zvzServer 2 }
zvzServerRedundancy OBJECT IDENTIFIER ::= { zvzServer 3 }

zvzConformanceGroups OBJECT IDENTIFIER ::= { zvZyper 5 }
zvzCompliances       OBJECT IDENTIFIER ::= { zvZyper 6 }


zvzCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
        "What must be implemented by the SNMP manager for ZeeVee Zyper devices."
    MODULE
       MANDATORY-GROUPS {
            zvzServerConformanceGroup,
            zvzDeviceConformanceGroup,
            zvzNotificationGroup
       }

    -- One of the following is mandatory, based on device type

    GROUP zvzDecoderConformanceGroup
    DESCRIPTION
        "If the device is a decoder, it must implement this group."

    GROUP zvzEncoderConformanceGroup
    DESCRIPTION
        "If the device is an encoder, it must implement this group."

    ::= { zvzCompliances 1 }

    
zvzServerConformanceGroup OBJECT-GROUP
    OBJECTS {
        zvzServerInfoHostname, zvzServerInfoVersion, zvzServerInfoPreviousVersion,
        zvzServerInfoSerialNumber, zvzServerInfoUptime, zvzServerInfoLicenseLimit,
        zvzServerInfoKnownDevices, zvzServerInfoDevicesUp, zvzServerInfoDevicesExceeded,
        zvzServerConfigAutoEdidMode, zvzServerConfigHdmiAudio, zvzServerConfigLicense, zvzLastEventText }
    STATUS current
    DESCRIPTION
        "Objects providing status and configuration for server functions."
    ::= { zvzConformanceGroups 1 }

zvzDeviceConformanceGroup OBJECT-GROUP
    OBJECTS {
        zvzDeviceConfigModel, zvzDeviceConfigType, zvzDeviceConfigName,
        zvzDeviceConfigFirmwareRev, zvzDeviceStatusState, zvzDeviceStatusUptime, zvzDeviceConfigIpAddressMode,
        zvzDeviceConfigIpAddressType,  zvzDeviceConfigIpAddress, zvzDeviceConfigIpPrefixLength, zvzDeviceStatusLastChangeId, zvzDeviceConfigLastChangeId, 
        zvzDeviceStatusVideoInterfaceType, zvzDeviceStatusVideoInterfaceStatus, zvzDeviceStatusInterfaceProtocol, zvzDeviceStatusInterfaceDrm,
        zvzDeviceStatusVideoSizeX, zvzDeviceStatusVideoSizeY, zvzDeviceStatusVideoFps, zvzDeviceStatusEdidSource,
        zvzDeviceStatusEdidMonitorName, zvzDeviceStatusEdidMaxX, zvzDeviceStatusEdidMaxY, zvzDeviceStatusEdidMaxFps }
    STATUS current
    DESCRIPTION
        "Objects providing status and configuration parameters that all devices have."
    ::= { zvzConformanceGroups 2 }

zvzDecoderConformanceGroup OBJECT-GROUP
    OBJECTS {
        zvzDecoderConfigVideoConnection, zvzDecoderConfigVideoConnectionMode, zvzDecoderStatusVideoConnectionStatus,
        zvzDecoderConfigHdmiAudioConnection, zvzDecoderStatusHdmiAudioConnectionStatus, zvzDecoderConfigAnalogAudioConnection,
        zvzDecoderStatusAnalogAudioConnectionStatus }
    STATUS current
    DESCRIPTION
        "Objects providing status and configuration for decoder-specific functions."
    ::= { zvzConformanceGroups 3 }

zvzEncoderConformanceGroup OBJECT-GROUP
    OBJECTS {
        zvzEncoderStatusVideoStreamDatarate, zvzEncoderStatusVideoScaledStreamDatarate,
        zvzEncoderConfigVideoStreamMode, zvzEncoderConfigVideoScaledStreamMode, 
        zvzEncoderConfigHdmiAudioStreamMode, zvzEncoderConfigAnalogAudioStreamMode }
    STATUS current
    DESCRIPTION
        "Objects providing status and configuration for encoder-specific functions."
    ::= { zvzConformanceGroups 4 }

zvzNotificationGroup NOTIFICATION-GROUP
    NOTIFICATIONS {
         zvzEvent       
    }
    STATUS current
    DESCRIPTION
        "Group of objects describing notifications (traps)."
    ::= { zvzConformanceGroups 5 }

ZyperModel ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
        "Model name of device."
    SYNTAX INTEGER { zyPer4K(1), zyPerUHD(2), zyPerHD(3) }

ZyperType ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
        "Within the specified model, the type. Presently only Encoders and Decoders."
    SYNTAX INTEGER { encoder(1), decoder(2) }

ZyperState ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
        "Device up/down."
    SYNTAX INTEGER { up(1), down(2) }
    
ZyperConnectionStatus ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
        "Indicates if video or audio is streaming."
    SYNTAX INTEGER { down(1), up(2) }

ZyperVideoConnectionMode ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
        "Type of video connection"
    SYNTAX INTEGER { genlocked(1), fastSwitched(2), videoWall(3), multiview(4), genlockedScaled(5) }
    
FramesPerSecond ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "d-2"
    STATUS current
    DESCRIPTION
        "Frames per 1/100th second. That is, divide value by 100."
    SYNTAX Integer32

zvzEvent NOTIFICATION-TYPE
    OBJECTS     { zvzLastEventText }
    STATUS      current
    DESCRIPTION
        "Text message of event such as link up/down."
    ::= { zvzTraps 1 }

zvzServerInfoHostname OBJECT-TYPE
    SYNTAX  DisplayString
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
        "Host name used in Avahi host discovery protocol. Automatically generated by system."
    ::= { zvzServerInfo 1 }

zvzServerInfoVersion OBJECT-TYPE
    SYNTAX  DisplayString
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "Version of running server"
    ::= { zvzServerInfo 2 }

zvzServerInfoPreviousVersion OBJECT-TYPE
    SYNTAX  DisplayString
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "Version system will revert to using the revert command"
    ::= { zvzServerInfo 3 }

zvzServerInfoSerialNumber OBJECT-TYPE
    SYNTAX  DisplayString
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "Serial number of the server application."
    ::= { zvzServerInfo 4 }

zvzServerInfoUptime OBJECT-TYPE
    SYNTAX  TimeTicks
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "The time (in hundredths of a second) since the
        server application was last re-initialized. In contrast to
        sysUpTime, which is from when the system was restarted"
    ::= { zvzServerInfo 5 }

zvzServerInfoLicenseLimit OBJECT-TYPE
    SYNTAX  Integer32 (0..9999)
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "Maximum number of AV devices manageable by this server."
    ::= { zvzServerInfo 6 }

zvzServerInfoKnownDevices OBJECT-TYPE
    SYNTAX  Integer32 (0..9999)
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "The number of unique devices that have been up at some point."
    ::= { zvzServerInfo 7 }

zvzServerInfoDevicesUp OBJECT-TYPE
    SYNTAX  Integer32 (0..9999)
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "The number of devices that are presently up."
    ::= { zvzServerInfo 8 }

zvzServerInfoDevicesExceeded OBJECT-TYPE
    SYNTAX  Integer32 (0..9999)
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "The number of devices seen, but cannot be managed because the license limit has been reached."
    ::= { zvzServerInfo 9 }

zvzLastEventText OBJECT-TYPE
    SYNTAX  DisplayString
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "Text of last event sent by system."
    ::= { zvzServerInfo 10 }

zvzServerConfigAutoEdidMode OBJECT-TYPE
    SYNTAX  INTEGER { enabled(1), disabled(2) }
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "Auto-EDID mode automatically selects the best EDID for each encoder based on
         the capability of the encoder and connected decoders, and the type of connection
         to the decoders. This parameter is system-wide. If enabled, each encoder may still
         disable it."
    ::= { zvzServerConfig 1 }

zvzServerConfigHdmiAudio OBJECT-TYPE
    SYNTAX  INTEGER { allowCompressed(1), forcePcm(2) }
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "If force-pcm, then Modifies the EDID presented by the decoder to only specify PCM audio."
    ::= { zvzServerConfig 2 }

zvzServerConfigLicense OBJECT-TYPE
    SYNTAX  DisplayString
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "License key to specify the number of devices supported and possibly other features."
    ::= { zvzServerConfig 3 }


zvzDeviceStatusTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF ZvzDeviceStatusEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
        "A list of device status entries."
    ::= { zvzDevice 1 }

zvzDeviceStatusEntry OBJECT-TYPE
    SYNTAX  ZvzDeviceStatusEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
        "Status for overall deviceStatus, its interface(s) and connection(s)."
    INDEX   { zvzDeviceStatusMacAddress }
    ::= {zvzDeviceStatusTable 1 }

ZvzDeviceStatusEntry ::= SEQUENCE {
    zvzDeviceStatusMacAddress   MacAddress,
    zvzDeviceStatusState        ZyperState,
    zvzDeviceStatusUptime       TimeTicks,
    zvzDeviceStatusLastChangeId Counter32,
    zvzDeviceStatusVideoInterfaceType INTEGER,
    zvzDeviceStatusVideoInterfaceStatus INTEGER,
    zvzDeviceStatusInterfaceProtocol INTEGER,
    zvzDeviceStatusInterfaceDrm     INTEGER,
    zvzDeviceStatusVideoSizeX    Integer32,
    zvzDeviceStatusVideoSizeY    Integer32,
    zvzDeviceStatusVideoFps      FramesPerSecond,
    zvzDeviceStatusEdidSource   INTEGER,
    zvzDeviceStatusEdidMonitorName  DisplayString,
    zvzDeviceStatusEdidMaxX     Integer32,
    zvzDeviceStatusEdidMaxY     Integer32,
    zvzDeviceStatusEdidMaxFps   FramesPerSecond
}

zvzDeviceStatusMacAddress OBJECT-TYPE
    SYNTAX MacAddress
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
        "MAC address and unique identifier of device."
    ::= { zvzDeviceStatusEntry 1 }

zvzDeviceStatusState OBJECT-TYPE
    SYNTAX ZyperState
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "Indicates if the device is up or down."
    ::= { zvzDeviceStatusEntry 2 }

zvzDeviceStatusUptime OBJECT-TYPE
    SYNTAX TimeTicks
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "TimeTicks (10ms units) since last restarted."
    ::= { zvzDeviceStatusEntry 3 }

zvzDeviceStatusLastChangeId OBJECT-TYPE
    SYNTAX Counter32
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "If any device status or parameter changes, this number will increase."
    ::= { zvzDeviceStatusEntry 4 }

zvzDeviceStatusVideoInterfaceType OBJECT-TYPE
    SYNTAX INTEGER { unknown(1), hdmi(2), hdmiOptionIn(3), displayPort(4), vga(5),
                     component(6), composite(7), sVideo(8), hdsdi(9) }
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "For certain device models, user may select optional video port."
    ::= { zvzDeviceStatusEntry 5 }

zvzDeviceStatusVideoInterfaceStatus OBJECT-TYPE
    SYNTAX INTEGER { cableConnected(1), cableDisconnected(2) }
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "Indicates there is an active source or sink connected to the video interface."
    ::= { zvzDeviceStatusEntry 6 }

zvzDeviceStatusInterfaceProtocol OBJECT-TYPE
    SYNTAX INTEGER { unknown(1), hdmi14(2), hdmi20(3), displayPort(4), analog(5), hdsdi(6) }
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "Type and version of interface signaling."
    ::= { zvzDeviceStatusEntry 7 }

zvzDeviceStatusInterfaceDrm OBJECT-TYPE
    SYNTAX INTEGER { none (1), hdcp14(2), hdcp22(3) }
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "Type and version of encryption active on the interface."
    ::= { zvzDeviceStatusEntry 8 }

zvzDeviceStatusVideoSizeX OBJECT-TYPE
    SYNTAX Integer32 (640..4096)
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "Video format horizontal size."
    ::= { zvzDeviceStatusEntry 9 }

zvzDeviceStatusVideoSizeY OBJECT-TYPE
    SYNTAX Integer32 (480..2160)
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "Video format vertical size."
    ::= { zvzDeviceStatusEntry 10 }

zvzDeviceStatusVideoFps OBJECT-TYPE
    SYNTAX FramesPerSecond
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "Video frame rate."
    ::= { zvzDeviceStatusEntry 11 }

zvzDeviceStatusEdidSource OBJECT-TYPE
    SYNTAX INTEGER { encoder(1), decoder(2), file(3), vga(4), unknown(5) }
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "A decoder may only get its EDID from its attached display. An encoder may receive it 
        from any of the specified sources."
    ::= { zvzDeviceStatusEntry 12 }

zvzDeviceStatusEdidMonitorName OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "EDID specified monitor name."
    ::= { zvzDeviceStatusEntry 13 }

zvzDeviceStatusEdidMaxX OBJECT-TYPE
    SYNTAX Integer32 (640..4096)
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "EDID specified max video format horizontal size."
    ::= { zvzDeviceStatusEntry 14 }

zvzDeviceStatusEdidMaxY OBJECT-TYPE
    SYNTAX Integer32 (480..2160)
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "EDID specified max video format vertical size."
    ::= { zvzDeviceStatusEntry 15 }

zvzDeviceStatusEdidMaxFps OBJECT-TYPE
    SYNTAX FramesPerSecond
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "EDID specified max video frame rate."
    ::= { zvzDeviceStatusEntry 16 }


zvzDeviceConfigTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF ZvzDeviceConfigEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
        "A list of device status entries."
    ::= { zvzDevice 2 }

zvzDeviceConfigEntry OBJECT-TYPE
    SYNTAX  ZvzDeviceConfigEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
        "Config for overall deviceStatus, its interface(s) and connection(s)."
    INDEX   { zvzDeviceConfigMacAddress }
    ::= {zvzDeviceConfigTable 1 }

ZvzDeviceConfigEntry ::= SEQUENCE {
    zvzDeviceConfigMacAddress   MacAddress,
    zvzDeviceConfigModel        ZyperModel,
    zvzDeviceConfigType         ZyperType,
    zvzDeviceConfigName         DisplayString,
    zvzDeviceConfigFirmwareRev  DisplayString,
    zvzDeviceConfigIpAddressMode IpAddressOriginTC,
    zvzDeviceConfigIpAddressType InetAddressType,
    zvzDeviceConfigIpAddress    InetAddress,
    zvzDeviceConfigIpPrefixLength InetAddressPrefixLength,
    zvzDeviceConfigLastChangeId Counter32
}

zvzDeviceConfigMacAddress OBJECT-TYPE
    SYNTAX MacAddress
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
        "MAC address and unique identifier of device."
    ::= { zvzDeviceConfigEntry 1 }

zvzDeviceConfigModel OBJECT-TYPE
    SYNTAX ZyperModel
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "Model of device."
    ::= { zvzDeviceConfigEntry 2 }

zvzDeviceConfigType OBJECT-TYPE
    SYNTAX ZyperType
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "With in model group, device type such as Encoder or Decoder."
    ::= { zvzDeviceConfigEntry 3 }

zvzDeviceConfigName OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "User supplied name of device."
    ::= { zvzDeviceConfigEntry 4 }

zvzDeviceConfigFirmwareRev OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "Running version of firmware."
    ::= { zvzDeviceConfigEntry 5 }

zvzDeviceConfigIpAddressMode OBJECT-TYPE
    SYNTAX IpAddressOriginTC
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "Source of IP address -- dhcp, manual, link local."
    ::= { zvzDeviceConfigEntry 6 }

zvzDeviceConfigIpAddressType OBJECT-TYPE
    SYNTAX InetAddressType
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "Address type is ipv4."
    ::= { zvzDeviceConfigEntry 7 }

zvzDeviceConfigIpAddress OBJECT-TYPE
    SYNTAX InetAddress
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "IP address of device."
    ::= { zvzDeviceConfigEntry 8 }

zvzDeviceConfigIpPrefixLength OBJECT-TYPE
    SYNTAX InetAddressPrefixLength
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "IP address mask of device."
    ::= { zvzDeviceConfigEntry 9 }

zvzDeviceConfigLastChangeId OBJECT-TYPE
    SYNTAX Counter32
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "If any device status or parameter changes, this number will increase."
    ::= { zvzDeviceConfigEntry 10 }


zvzDecoderStatusTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF ZvzDecoderStatusEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
        "A list of device status entries."
    ::= { zvzDecoder 1 }

zvzDecoderStatusEntry OBJECT-TYPE
    SYNTAX  ZvzDecoderStatusEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
        "Status for overall device, its interface(s) and connection(s)."
    INDEX   { zvzDeviceStatusMacAddress }
    ::= { zvzDecoderStatusTable 1 }

ZvzDecoderStatusEntry ::= SEQUENCE {
    zvzDecoderStatusVideoConnectionStatus ZyperConnectionStatus,
    zvzDecoderStatusHdmiAudioConnectionStatus ZyperConnectionStatus,
    zvzDecoderStatusAnalogAudioConnectionStatus ZyperConnectionStatus
}    

zvzDecoderStatusVideoConnectionStatus OBJECT-TYPE
    SYNTAX ZyperConnectionStatus
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "Indicates if the video is being received, and if not, why not."
    ::= { zvzDecoderStatusEntry 1 }

zvzDecoderStatusHdmiAudioConnectionStatus OBJECT-TYPE
    SYNTAX ZyperConnectionStatus
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "Indicates if the digital audio connection is being received, and if not, why not."
    ::= { zvzDecoderStatusEntry 2 }

zvzDecoderStatusAnalogAudioConnectionStatus OBJECT-TYPE
    SYNTAX ZyperConnectionStatus
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "Indicates if the analog audio connection is being received, and if not, why not."
    ::= { zvzDecoderStatusEntry 3 }


zvzDecoderConfigTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF ZvzDecoderConfigEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
        "A list of device status entries."
    ::= { zvzDecoder 2 }

zvzDecoderConfigEntry OBJECT-TYPE
    SYNTAX  ZvzDecoderConfigEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
        "Status for overall device, its interface(s) and connection(s)."
    INDEX   { zvzDeviceConfigMacAddress }
    ::= { zvzDecoderConfigTable 1 }

ZvzDecoderConfigEntry ::= SEQUENCE {
    zvzDecoderConfigVideoConnection MacAddress,
    zvzDecoderConfigVideoConnectionMode ZyperVideoConnectionMode,
    zvzDecoderConfigHdmiAudioConnection MacAddress,
    zvzDecoderConfigAnalogAudioConnection MacAddress
}    

zvzDecoderConfigVideoConnection OBJECT-TYPE
    SYNTAX MacAddress
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "The mac address (ID) of the encoder this decoder is receiving video from."
    ::= { zvzDecoderConfigEntry 1 }

zvzDecoderConfigVideoConnectionMode OBJECT-TYPE
    SYNTAX ZyperVideoConnectionMode
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "There are many types of connections, including 'genlocked', 'fast-switched' and 'video-wall'."
    ::= { zvzDecoderConfigEntry 2 }

zvzDecoderConfigHdmiAudioConnection OBJECT-TYPE
    SYNTAX MacAddress
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "The mac address (ID) of the encoder this decoder is receiving digital audio from."
    ::= { zvzDecoderConfigEntry 3 }

zvzDecoderConfigAnalogAudioConnection OBJECT-TYPE
    SYNTAX MacAddress
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "The mac address (ID) of the encoder this decoder is receiving analog audio from."
    ::= { zvzDecoderConfigEntry 4 }


zvzEncoderStatusTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF ZvzEncoderStatusEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
        "A list of device status entries."
    ::= { zvzEncoder 1 }

zvzEncoderStatusEntry OBJECT-TYPE
    SYNTAX  ZvzEncoderStatusEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
        "Status for overall device, its interface(s) and connection(s)."
    INDEX   { zvzDeviceStatusMacAddress }
    ::= {zvzEncoderStatusTable 1 }

ZvzEncoderStatusEntry ::= SEQUENCE {
    zvzEncoderStatusVideoStreamDatarate Gauge32,
    zvzEncoderStatusVideoScaledStreamDatarate Gauge32
}    

zvzEncoderStatusVideoStreamDatarate OBJECT-TYPE
    SYNTAX Gauge32
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "Zero if not active."
    ::= { zvzEncoderStatusEntry 1 }

zvzEncoderStatusVideoScaledStreamDatarate OBJECT-TYPE
    SYNTAX Gauge32
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "Zero if not active."
    ::= { zvzEncoderStatusEntry 2 }


zvzEncoderConfigTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF ZvzEncoderConfigEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
        "A list of device status entries."
    ::= { zvzEncoder 2 }

zvzEncoderConfigEntry OBJECT-TYPE
    SYNTAX  ZvzEncoderConfigEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
        "Status for overall device, its interface(s) and connection(s)."
    INDEX   { zvzDeviceConfigMacAddress }
    ::= {zvzEncoderConfigTable 1 }

ZvzEncoderConfigEntry ::= SEQUENCE {
    zvzEncoderConfigVideoStreamMode INTEGER,
    zvzEncoderConfigVideoScaledStreamMode INTEGER,
    zvzEncoderConfigHdmiAudioStreamMode INTEGER,
    zvzEncoderConfigAnalogAudioStreamMode INTEGER
}    

zvzEncoderConfigVideoStreamMode OBJECT-TYPE
    SYNTAX INTEGER { enabled(1), disabled(2) }
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "Indicates if the video stream is enabled on encoder. Video must actually be present on the
        input for the video stream to be active."
    ::= { zvzEncoderConfigEntry 1 }

zvzEncoderConfigVideoScaledStreamMode OBJECT-TYPE
    SYNTAX INTEGER { enabled(1), disabled(2) }
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "Indicates if the scaled video stream is enabled on encoder. Video must actually be present on the
        input for the scaled video stream to be active."
    ::= { zvzEncoderConfigEntry 2 }

zvzEncoderConfigHdmiAudioStreamMode OBJECT-TYPE
    SYNTAX INTEGER { enabled(1), disabled(2) }
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "Indicates if the HDMI (digital) audio stream is enabled on encoder. Digital audio must actually be present on the
        input for the HDMI audio stream to be active."
    ::= { zvzEncoderConfigEntry 3 }

zvzEncoderConfigAnalogAudioStreamMode OBJECT-TYPE
    SYNTAX INTEGER { enabled(1), disabled(2) }
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "Indicates if the analog audio stream is enabled on encoder. Audio must actually be present on the
        analog audio input for the stream to be active."
    ::= { zvzEncoderConfigEntry 4 }


END