-- *****************************************************************
-- ICFG-MIB:  Cisco private MIB
-- ****************************************************************

CIE1000-ICFG-MIB DEFINITIONS ::= BEGIN

IMPORTS
    NOTIFICATION-GROUP, MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF
    NOTIFICATION-TYPE, MODULE-IDENTITY, OBJECT-TYPE FROM SNMPv2-SMI
    TEXTUAL-CONVENTION FROM SNMPv2-TC
    cie1000SwitchMgmt FROM CISCO-IE1000-MIB
    CIE1000DisplayString FROM CIE1000-TC
    Integer32 FROM SNMPv2-SMI
    Unsigned32 FROM SNMPv2-SMI
    TruthValue FROM SNMPv2-TC
    ;

cie1000IcfgMib MODULE-IDENTITY
    LAST-UPDATED "201605090000Z"
    ORGANIZATION
        "Cisco Systems, Inc."
    CONTACT-INFO
        "Cisco Systems
	 Customer Service

	 Postal: 170 West Tasman Drive
	 San Jose, CA  95134
	 USA

	 Tel: +1 800 553-NETS

	 E-mail: cs-snmp@cisco.com"
    DESCRIPTION
        "This is a private version of ICFG"
    REVISION    "201605090000Z"
    DESCRIPTION
        "Add support for allocated/free flash size"
    REVISION    "201410100000Z"
    DESCRIPTION
        "Editorial changes"
    REVISION    "201407010000Z"
    DESCRIPTION
        "Initial version"
    ::= { cie1000SwitchMgmt 101 }


CIE1000IcfgConfigStatus ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "This enumeration defines the type of configuration."
    SYNTAX      INTEGER { none(0), success(1), inProgress(2),
                          errOtherInProcessing(3), errNoSuchFile(4),
                          errSameSrcDst(5), errPermissionDenied(6),
                          errLoadSrc(7), errSaveDst(8) }

CIE1000IcfgConfigType ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "This enumeration defines the type of configuration."
    SYNTAX      INTEGER { none(0), runningConfig(1), startupConfig(2),
                          configFile(3) }

CIE1000IcfgReloadDefault ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "This enumeration defines the type of reload default."
    SYNTAX      INTEGER { none(0), default(1), defaultKeepIp(2) }

cie1000IcfgMibObjects OBJECT IDENTIFIER
    ::= { cie1000IcfgMib 1 }

cie1000IcfgStatus OBJECT IDENTIFIER
    ::= { cie1000IcfgMibObjects 3 }

cie1000IcfgStatusFileStatistics OBJECT IDENTIFIER
    ::= { cie1000IcfgStatus 1 }

cie1000IcfgStatusFileStatisticsNumberOfFiles OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Number of files in flash."
    ::= { cie1000IcfgStatusFileStatistics 1 }

cie1000IcfgStatusFileStatisticsTotalBytes OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Total number of bytes used by all files in flash."
    ::= { cie1000IcfgStatusFileStatistics 2 }

cie1000IcfgStatusFileStatisticsFlashSizeBytes OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Flash file system size in bytes."
    ::= { cie1000IcfgStatusFileStatistics 3 }

cie1000IcfgStatusFileStatisticsFlashFreeBytes OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Flash file system number of free bytes."
    ::= { cie1000IcfgStatusFileStatistics 4 }

cie1000IcfgStatusFileTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CIE1000IcfgStatusFileEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This is a table of status of files in flash."
    ::= { cie1000IcfgStatus 2 }

cie1000IcfgStatusFileEntry OBJECT-TYPE
    SYNTAX      CIE1000IcfgStatusFileEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Each entry has a set of file status."
    INDEX       { cie1000IcfgStatusFileFileNo }
    ::= { cie1000IcfgStatusFileTable 1 }

CIE1000IcfgStatusFileEntry ::= SEQUENCE {
    cie1000IcfgStatusFileFileNo        Integer32,
    cie1000IcfgStatusFileFileName      CIE1000DisplayString,
    cie1000IcfgStatusFileBytes         Unsigned32,
    cie1000IcfgStatusFileModifiedTime  CIE1000DisplayString,
    cie1000IcfgStatusFileAttribute     CIE1000DisplayString
}

cie1000IcfgStatusFileFileNo OBJECT-TYPE
    SYNTAX      Integer32 (0..2147483647)
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The number of File. The number starts from 1."
    ::= { cie1000IcfgStatusFileEntry 1 }

cie1000IcfgStatusFileFileName OBJECT-TYPE
    SYNTAX      CIE1000DisplayString (SIZE(0..127))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "File name."
    ::= { cie1000IcfgStatusFileEntry 2 }

cie1000IcfgStatusFileBytes OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Number of bytes of the file."
    ::= { cie1000IcfgStatusFileEntry 3 }

cie1000IcfgStatusFileModifiedTime OBJECT-TYPE
    SYNTAX      CIE1000DisplayString (SIZE(0..39))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Last modified time of the file."
    ::= { cie1000IcfgStatusFileEntry 4 }

cie1000IcfgStatusFileAttribute OBJECT-TYPE
    SYNTAX      CIE1000DisplayString (SIZE(0..15))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "File attribute in the format of 'rw'. 'r' presents readable while 'w'
         presents writable."
    ::= { cie1000IcfgStatusFileEntry 5 }

cie1000IcfgStatusCopyConfig OBJECT IDENTIFIER
    ::= { cie1000IcfgStatus 3 }

cie1000IcfgStatusCopyConfigStatus OBJECT-TYPE
    SYNTAX      CIE1000IcfgConfigStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The status indicates the status of current copy operation. none(0)
         means no copy operation. success(1) means copy operation is successful.
         inProgress(2) means current copy operation is in progress.
         errOtherInProcessing(3) means copy operation is failed due to other in
         processing. errNoSuchFile(4) means copy operation is failed due to file
         not existing. errSameSrcDst(5) means copy operation is failed due to
         the source and destination are the same. errPermissionDenied(6) means
         copy operation is failed due to the destination is not permitted to
         modify. errLoadSrc(7) means copy operation is failed due to the error
         to load source file. errSaveDst(8) means copy operation is failed due
         to the error to save or commit destination."
    ::= { cie1000IcfgStatusCopyConfig 1 }

cie1000IcfgControl OBJECT IDENTIFIER
    ::= { cie1000IcfgMibObjects 4 }

cie1000IcfgControlGlobals OBJECT IDENTIFIER
    ::= { cie1000IcfgControl 1 }

cie1000IcfgControlGlobalsReloadDefault OBJECT-TYPE
    SYNTAX      CIE1000IcfgReloadDefault
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Reset system to default. none(0) is to do nothing. default(1) is to
         reset the whole system to default. defaultKeepIp(2) is to reset system
         to default, but keep IP address of VLAN 1."
    ::= { cie1000IcfgControlGlobals 1 }

cie1000IcfgControlGlobalsDeleteFile OBJECT-TYPE
    SYNTAX      CIE1000DisplayString (SIZE(0..127))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Delete file in flash. The format is flash:filename. Where
         'default-config' is read-only and not allowed to be deleted."
    ::= { cie1000IcfgControlGlobals 2 }

cie1000IcfgControlCopyConfig OBJECT IDENTIFIER
    ::= { cie1000IcfgControl 2 }

cie1000IcfgControlCopyConfigCopy OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Action to do copy or not. true is to do the copy operation. false is to
         do nothing"
    ::= { cie1000IcfgControlCopyConfig 1 }

cie1000IcfgControlCopyConfigSourceConfigType OBJECT-TYPE
    SYNTAX      CIE1000IcfgConfigType
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Source configuration type. none(0) means no configuration file.
         runningConfig(1) means running configuration. startupConfig(2) means
         startup configuration file in flash. configFile(3) is the configuration
         file specified in SourceConfigFile."
    ::= { cie1000IcfgControlCopyConfig 2 }

cie1000IcfgControlCopyConfigSourceConfigFile OBJECT-TYPE
    SYNTAX      CIE1000DisplayString (SIZE(0..127))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Source configuration file. If the configuration file is in flash then
         the format is flash:'filename'. If the configuration file is from tftp
         then the format is tftp://server[:port]/path-to-file."
    ::= { cie1000IcfgControlCopyConfig 3 }

cie1000IcfgControlCopyConfigDestinationConfigType OBJECT-TYPE
    SYNTAX      CIE1000IcfgConfigType
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Source configuration type. none(0) means no configuration file.
         runningConfig(1) means running configuration. startupConfig(2) means
         startup configuration file in flash. configFile(3) is the configuration
         file specified in DestinationConfigFile."
    ::= { cie1000IcfgControlCopyConfig 4 }

cie1000IcfgControlCopyConfigDestinationConfigFile OBJECT-TYPE
    SYNTAX      CIE1000DisplayString (SIZE(0..127))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Destination configuration file. If the configuration file is in flash
         then the format is flash:filename. If the configuration file is from
         tftp then the format is tftp://server[:port]/filename_with_path. Where
         'default-config' is read-only and not allowed to be deleted."
    ::= { cie1000IcfgControlCopyConfig 5 }

cie1000IcfgControlCopyConfigMerge OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This flag works only if DestinationConfigType is runningConfig(1). true
         is to merge the source configuration into the current running
         configuration. false is to replace the current running configuration
         with the source configuration."
    ::= { cie1000IcfgControlCopyConfig 6 }

cie1000IcfgMibConformance OBJECT IDENTIFIER
    ::= { cie1000IcfgMib 2 }

cie1000IcfgMibCompliances OBJECT IDENTIFIER
    ::= { cie1000IcfgMibConformance 1 }

cie1000IcfgMibGroups OBJECT IDENTIFIER
    ::= { cie1000IcfgMibConformance 2 }

cie1000IcfgStatusFileStatisticsInfoGroup OBJECT-GROUP
    OBJECTS     { cie1000IcfgStatusFileStatisticsNumberOfFiles,
                  cie1000IcfgStatusFileStatisticsTotalBytes,
                  cie1000IcfgStatusFileStatisticsFlashSizeBytes,
                  cie1000IcfgStatusFileStatisticsFlashFreeBytes }
    STATUS      current
    DESCRIPTION
        "A collection of objects."
    ::= { cie1000IcfgMibGroups 1 }

cie1000IcfgStatusFileTableInfoGroup OBJECT-GROUP
    OBJECTS     { cie1000IcfgStatusFileFileNo,
                  cie1000IcfgStatusFileFileName,
                  cie1000IcfgStatusFileBytes,
                  cie1000IcfgStatusFileModifiedTime,
                  cie1000IcfgStatusFileAttribute }
    STATUS      current
    DESCRIPTION
        "A collection of objects."
    ::= { cie1000IcfgMibGroups 2 }

cie1000IcfgStatusCopyConfigInfoGroup OBJECT-GROUP
    OBJECTS     { cie1000IcfgStatusCopyConfigStatus }
    STATUS      current
    DESCRIPTION
        "A collection of objects."
    ::= { cie1000IcfgMibGroups 3 }

cie1000IcfgControlGlobalsInfoGroup OBJECT-GROUP
    OBJECTS     { cie1000IcfgControlGlobalsReloadDefault,
                  cie1000IcfgControlGlobalsDeleteFile }
    STATUS      current
    DESCRIPTION
        "A collection of objects."
    ::= { cie1000IcfgMibGroups 4 }

cie1000IcfgControlCopyConfigInfoGroup OBJECT-GROUP
    OBJECTS     { cie1000IcfgControlCopyConfigCopy,
                  cie1000IcfgControlCopyConfigSourceConfigType,
                  cie1000IcfgControlCopyConfigSourceConfigFile,
                  cie1000IcfgControlCopyConfigDestinationConfigType,
                  cie1000IcfgControlCopyConfigDestinationConfigFile,
                  cie1000IcfgControlCopyConfigMerge }
    STATUS      current
    DESCRIPTION
        "A collection of objects."
    ::= { cie1000IcfgMibGroups 5 }

cie1000IcfgMibCompliance MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
        "The compliance statement for the implementation."

    MODULE      -- this module

    MANDATORY-GROUPS { cie1000IcfgStatusFileStatisticsInfoGroup,
                       cie1000IcfgStatusFileTableInfoGroup,
                       cie1000IcfgStatusCopyConfigInfoGroup,
                       cie1000IcfgControlGlobalsInfoGroup,
                       cie1000IcfgControlCopyConfigInfoGroup }

    ::= { cie1000IcfgMibCompliances 1 }

END
