   STREAMER-MIB DEFINITIONS ::= BEGIN

   IMPORTS
       OBJECT-TYPE, Counter32, Gauge32, Counter64
         FROM SNMPv2-SMI
       mib-2
         FROM RFC1213-MIB
       DisplayString, TimeStamp
         FROM SNMPv2-TC;


   DistinguishedName ::= TEXTUAL-CONVENTION
       STATUS current
       DESCRIPTION
           "Streamer MIB"
       SYNTAX DisplayString

   application MODULE-IDENTITY
       LAST-UPDATED ""
       ORGANIZATION "Bitonlive, Cinemeccanica"
       CONTACT-INFO
         "support@bitonlive.com"
       DESCRIPTION
         "Custom MIB for Streamer TMS Software API 2025 - c/o Riva Stefano"
       ::= { mib-2 27 }

   -- Lista Entità

   -- tabella Datastores

   datastoreTable OBJECT-TYPE
       SYNTAX SEQUENCE OF Datastores
       MAX-ACCESS not-accessible
       STATUS current
       DESCRIPTION
           "Table that contains the information on streamer configured datastores"
       ::= {application 1}

   datastores OBJECT-TYPE
       SYNTAX Datastores
       MAX-ACCESS not-accessible
       STATUS current
       DESCRIPTION
         "An entry associated with a network service application."
       INDEX {datastoreIndex}
       ::= {datastoreTable 1}

   Datastores ::= SEQUENCE {
       datastoreIndex
           INTEGER,
       datastoreName
           DisplayString,
        datastoreAddress
           DisplayString,
       datastoreUsedSpace
           DisplayString,
       datastoreTotalSpace
           DisplayString,
       datastoreFreeSpace
           DisplayString,
       datastoreFreeSpacePerc
           INTEGER,
       datastoreUsedSpacePerc
           INTEGER,
       datastoreStatus
           INTEGER
       
   }

   datastoreIndex OBJECT-TYPE
       SYNTAX INTEGER (1..2147483647)
       MAX-ACCESS read-only
       STATUS current     
       ::= {datastores 1}

   datastoreName OBJECT-TYPE
       SYNTAX DisplayString
       MAX-ACCESS read-only
       STATUS current
       ::= {datastores 2}
    
    datastoreAddress OBJECT-TYPE
       SYNTAX DisplayString
       MAX-ACCESS read-only
       STATUS current
       ::= {datastores 3}

   datastoreUsedSpace OBJECT-TYPE
       SYNTAX DisplayString
       MAX-ACCESS read-only
       STATUS current
       ::= {datastores 4}

   datastoreTotalSpace OBJECT-TYPE
       SYNTAX DisplayString
       MAX-ACCESS read-only
       STATUS current
       ::= {datastores 5}

   datastoreFreeSpace OBJECT-TYPE
       SYNTAX DisplayString
       MAX-ACCESS read-only
       STATUS current
       ::= {datastores 6}

    datastoreFreeSpacePerc OBJECT-TYPE
       SYNTAX INTEGER (1..2147483647)
       MAX-ACCESS read-only
       STATUS current
       ::= {datastores 7}

    datastoreUsedSpacePerc OBJECT-TYPE
       SYNTAX INTEGER (1..2147483647)
       MAX-ACCESS read-only
       STATUS current
       ::= {datastores 8}

    datastoreStatus OBJECT-TYPE
       SYNTAX INTEGER {
         down(0),
         up(1),      
         emergency(2)
       }
       MAX-ACCESS read-only
       STATUS current
       ::= {datastores 9}


    -- tabella di stato di Streamer Software

    streamerTable OBJECT-TYPE
       SYNTAX SEQUENCE OF Streamer
       MAX-ACCESS not-accessible
       STATUS current      
       ::= {application 2}


    streamer OBJECT-TYPE
        SYNTAX Streamer
        MAX-ACCESS not-accessible
        STATUS current        
        INDEX {streamerIndex}
        ::= {streamerTable 1}

    Streamer ::= SEQUENCE {
        streamerIndex
            INTEGER,
        streamerVersion
            DisplayString,
        streamerUptime
            TimeStamp
    }

    streamerIndex OBJECT-TYPE
       SYNTAX INTEGER (1..2147483647)
       MAX-ACCESS read-only
       STATUS current     
       ::= {streamer 1}

    streamerVersion OBJECT-TYPE
       SYNTAX DisplayString
       MAX-ACCESS read-only
       STATUS current
       ::= {streamer 2}

    streamerUptime OBJECT-TYPE
       SYNTAX TimeStamp
       MAX-ACCESS read-only
       STATUS current
       ::= {streamer 3}


    -- tabella schedule streamer


    scheduleTable OBJECT-TYPE
       SYNTAX SEQUENCE OF Schedule
       MAX-ACCESS not-accessible
       STATUS current      
       ::= {application 3}


    schedule OBJECT-TYPE
        SYNTAX Schedule
        MAX-ACCESS not-accessible
        STATUS current        
        INDEX {scheduleIndex}
        ::= {scheduleTable 1}

    Schedule ::= SEQUENCE {
        scheduleIndex
            INTEGER,
        scheduleStatus
            INTEGER,
        scheduleErrors
            INTEGER,
        scheduleTimestamp
            DisplayString
    }

    scheduleIndex OBJECT-TYPE
       SYNTAX INTEGER (1..2147483647)
       MAX-ACCESS read-only
       STATUS current     
       ::= {schedule 1}

    scheduleStatus OBJECT-TYPE
       SYNTAX INTEGER {
         schedule_OK(0),
         error_in_24_hours(1),
         error_in_12_hours(2),
         error_in_6_hours(3),
         error_during_schedule(4)
       }
       MAX-ACCESS read-only
       STATUS current
       ::= {schedule 2}

    scheduleErrors OBJECT-TYPE
       SYNTAX INTEGER (1..2147483647)
       MAX-ACCESS read-only
       STATUS current
       ::= {schedule 3}

    scheduleTimestamp OBJECT-TYPE
       SYNTAX DisplayString
       MAX-ACCESS read-only
       STATUS current
       ::= {schedule 4}   


   -- The assocTable augments the information in the datastoreTable
   -- with information about associations.  Note that two levels
   -- of compliance are specified below, depending on whether
   -- association monitoring is mandated.

   applTCPProtoID OBJECT IDENTIFIER ::= {application 4}
   applUDPProtoID OBJECT IDENTIFIER ::= {application 5}

   END
