-- ============================================================================
-- AT-FILEv2.MIB, Allied Telesis enterprise MIB:
-- File MIB for the AlliedWare Plus(tm) operating system
--
-- Copyright (c) 2011, 2012 by Allied Telesis, Inc.
-- All rights reserved.
--
-- ============================================================================

    AT-FILEv2-MIB DEFINITIONS ::= BEGIN

        IMPORTS
            modules
                FROM AT-SMI-MIB
            IpAddress, Integer32, Unsigned32, Counter64, OBJECT-TYPE, MODULE-IDENTITY
                FROM SNMPv2-SMI
            DisplayString, TruthValue
                FROM SNMPv2-TC;


        atFilev2 MODULE-IDENTITY
            LAST-UPDATED "201703310000Z"
            ORGANIZATION
                "Allied Telesis Labs New Zealand"
            CONTACT-INFO
                "http://www.alliedtelesis.com"
            DESCRIPTION
                "The AT File v2 MIB, for listing file contents of flash, nvs
                and sd-cards on local and stacked devices, and copying, moving
                and deleting files from local, stacked and remote sources."
            REVISION "201703310000Z"
            DESCRIPTION
                "Remove '_' in the MIB object names to comply with the ASN.1 standard."
            REVISION "201404300000Z"
            DESCRIPTION
                "Updated decriptions to refer to chassisMappingTable"
            REVISION "201404230000Z"
            DESCRIPTION
                "Added more descriptions to atFilev2FileViewerDevice"
            REVISION "201404160000Z"
            DESCRIPTION
                "Added more descriptions to atFilev2StackID, atFilev2SourceStackID,
                 atFilev2DestinationStackID, atFilev2DirStackID, atFilev2USBMediaStackMemberId,
                 atFilev2FileViewerStackId for VCStack Plus."
            REVISION "201401170000Z"
            DESCRIPTION
                "Obsoleted atFilev2InfoTable table, so this cannot be used in the future"
            REVISION "201209270000Z"
            DESCRIPTION
                "Deprecate atFilev2InfoTable table, since this has been replaced by
                atFilev2FileViewer table."
            REVISION "201209210000Z"
            DESCRIPTION
                "Added chassis switch (e.g. SBx8100) descriptions to stack-related MIB objects"
            REVISION "201205220500Z"
            DESCRIPTION
                "Change syntax of atFilev2DirFileSystem to have USB in line with
                its definition in other parts of the MIB."
            REVISION "201205070000Z"
            DESCRIPTION
                "Added atFilev2FileViewer group. This allows a directory at a
                time view of files on the device. This change also foreshadows
                the deprecation of the atFilev2InfoTable, which the
                atFilev2FileViewer group replaces. However, the InfoTable will
                be left in place as a transition mechanism. However, support for
                SD cards and USB memory devices has been removed from this table."
            REVISION "201109120000Z"
            DESCRIPTION
                "Added support for USB media."
            REVISION "201105300000Z"
            DESCRIPTION
                "Updated enumeration type to use INTEGER."
            REVISION "201104210000Z"
            DESCRIPTION
                "Clarified object descriptions."
            REVISION "201103240000Z"
            DESCRIPTION
                "Obsoleted existing file listing objects and created
                replacements."
            REVISION "201101260000Z"
            DESCRIPTION
                "Added new objects to manipulate directories."
            REVISION "201009070000Z"
            DESCRIPTION
                "Generic syntax tidy up"
            REVISION "201006140459Z"
            DESCRIPTION
                "MIB revision history dates in descriptions updated."
            REVISION "200812050000Z"
            DESCRIPTION
                "Added SD card table."
            REVISION "200811110000Z"
            DESCRIPTION
                "Normalised object names."
            REVISION "200809240000Z"
            DESCRIPTION
                "Initial revision."
            ::= { modules 600 }




--
-- Node definitions
--

-- ---------------------------------------------------------- --
-- The options objects
-- ---------------------------------------------------------- --
        atFilev2TableOptions OBJECT IDENTIFIER ::= { atFilev2 1 }


        atFilev2Recursive OBJECT-TYPE
            SYNTAX Integer32 (0..1)
            MAX-ACCESS read-write
            STATUS obsolete
            DESCRIPTION
                "Set a value of '1' to enable recursive listing of directories
                in the atFilev2Table listing.
                
                NOTE: atFilev2Table and associated objects have been replaced
                by atFilev2FileViewer."
            DEFVAL { 0 }
            ::= { atFilev2TableOptions 1 }


        atFilev2AllFiles OBJECT-TYPE
            SYNTAX Integer32 (0..1)
            MAX-ACCESS read-write
            STATUS obsolete
            DESCRIPTION
                "Set a value of '1' to enable listing of all files (including
                hidden etc) in the atFilev2Table listing.
            
                NOTE: atFilev2Table and associated objects have been replaced
                by atFilev2FileViewer."
            DEFVAL { 0 }
            ::= { atFilev2TableOptions 2 }


        atFilev2Device OBJECT-TYPE
            SYNTAX Integer32 (1..3)
            MAX-ACCESS read-write
            STATUS obsolete
            DESCRIPTION
                "Set a value that corresponds with the various devices listed
                below:

                1. Flash (default)
                2. Card
                3. NVS

                Subsequent SNMP queries to the atFilev2Table will use this as
                the device to generate a file listing from.
            
                NOTE: atFilev2Table and associated objects have been replaced
                by atFilev2FileViewer."
            DEFVAL { 1 }
            ::= { atFilev2TableOptions 3 }


        atFilev2StackID OBJECT-TYPE
            SYNTAX Integer32
            MAX-ACCESS read-write
            STATUS obsolete
            DESCRIPTION
                "Set an integer to correspond to the stack ID of a stack
                member. For devices that are not capable of being stacked, set
                with the value 1. For a chassis switch, it corresponds to the
                card ID. For VCStack Plus, 1-12 refers to the cards on VCS stack
                member 1 and 13-24 refers to the cards on VCS stack member 2.
                Refer to chassisMappingTable for more details.

                Subsequent SNMP queries to the atFilev2Table will use this as
                the stack member to generate a file listing from.
            
                NOTE: atFilev2Table and associated objects have been replaced
                by atFilev2FileViewer."
            DEFVAL { 1 }
            ::= { atFilev2TableOptions 4 }


-- ---------------------------------------------------------- --
-- The file table
-- ---------------------------------------------------------- --
        atFilev2Table OBJECT-TYPE
            SYNTAX SEQUENCE OF AtFilev2Entry
            MAX-ACCESS not-accessible
            STATUS obsolete
            DESCRIPTION
                "A list of files present on the device and stack-member
                specified by the atFilev2Device and atFilev2StackID objects.
            
                NOTE: atFilev2Table and associated objects have been replaced
                by atFilev2FileViewer."
            ::= { atFilev2 2 }


        atFilev2Entry OBJECT-TYPE
            SYNTAX AtFilev2Entry
            MAX-ACCESS not-accessible
            STATUS obsolete
            DESCRIPTION
                "An entry in the list of files containing information about a
                single file.
            
                NOTE: atFilev2Table and associated objects have been replaced
                by atFilev2FileViewer."
            INDEX { atFilev2Filename }
            ::= { atFilev2Table 1 }


        AtFilev2Entry ::=
            SEQUENCE {
                atFilev2Filename
                    OCTET STRING,
                atFilev2FileSize
                    Integer32,
                atFilev2FileCreationTime
                    OCTET STRING,
                atFilev2FileAttribs
                    OCTET STRING
             }

        atFilev2Filename OBJECT-TYPE
            SYNTAX OCTET STRING (SIZE (1..112))
            MAX-ACCESS read-only
            STATUS obsolete
            DESCRIPTION
                "The name of the file. Files are sorted in alphabetical order.
                Directory names end with / and have a 'd' present in the
                atFilev2FileAttribs object.

                The filename is truncated at 112 characters due to SNMP OID
                length limitations. If two files are not uniquely
                distinguishable within the first 112 characters, the listing
                will halt after the first file.
            
                NOTE: atFilev2Table and associated objects have been replaced
                by atFilev2FileViewer."
            ::= { atFilev2Entry 1 }


        atFilev2FileSize OBJECT-TYPE
            SYNTAX Integer32
            MAX-ACCESS read-only
            STATUS obsolete
            DESCRIPTION
                "The size of the file in bytes.
            
                NOTE: atFilev2Table and associated objects have been replaced
                by atFilev2FileViewer."
            ::= { atFilev2Entry 2 }


        atFilev2FileCreationTime OBJECT-TYPE
            SYNTAX OCTET STRING
            MAX-ACCESS read-only
            STATUS obsolete
            DESCRIPTION
                "File creation time in the form <MMM DD YYYY HH:MM:SS>.
                Eg: Sep 7 2008 06:07:54.
            
                NOTE: atFilev2Table and associated objects have been replaced
                by atFilev2FileViewer."
            ::= { atFilev2Entry 3 }


        atFilev2FileAttribs OBJECT-TYPE
            SYNTAX OCTET STRING
            MAX-ACCESS read-only
            STATUS obsolete
            DESCRIPTION
                "The standard file accessibility attributes in the form <drwx>.

                d - directory
                r - readable
                w - writeable
                x - executable

                If a file does not have a particular attribute set, the
                respective position will contain a -. For example, <-r-x>
                indicates a readable and executable file that is not a
                directory or writeable.
            
                NOTE: atFilev2Table and associated objects have been replaced
                by atFilev2FileViewer."
            ::= { atFilev2Entry 4 }


-- ---------------------------------------------------------- --
-- The file operation objects
-- ---------------------------------------------------------- --
        atFilev2FileOperation OBJECT IDENTIFIER ::= { atFilev2 3 }


        atFilev2SourceStackID OBJECT-TYPE
            SYNTAX Integer32
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "Set to the stack ID of the source device to be used for the
                file operation. For devices that are not capable of being
                stacked, set with the value 1. For a chassis switch, it
                corresponds to the card ID. For VCStack Plus, 1-12 refers
                to the cards on VCS stack member 1 and 13-24 refers to the
                cards on VCS stack member 2. Refer to chassisMappingTable
                for more details.
                
                This value is ignored if the source device is set to TFTP."
            ::= { atFilev2FileOperation 1 }


        atFilev2SourceDevice OBJECT-TYPE
            SYNTAX INTEGER
                {
                flash(1),
                card(2),
                nvs(3),
                tftp(4),
                usb(5)
                }
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "Set to the value representing the source file system to be
                used for the file operation:

                  1. Flash
                  2. Card
                  3. NVS
                  4. TFTP
                  5. USB

                For copying files, any combination of source and destination
                file system types may be selected, with the exception of TFTP
                to TFTP, which is not supported.

                For moving files, TFTP may not be selected as the source or
                destination file system type.

                For deleting files, the source file system type cannot be TFTP.

                All required parameters must be fully configured before an
                operation can commence. Where a TFTP operation is configured,
                an IP address must also be set via atFilev2TftpIPAddr."
            ::= { atFilev2FileOperation 2 }


        atFilev2SourceFilename OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "The filename of the source file to be copied, moved or deleted.
                Include any path as required, but the file system type is not
                necessary.

                For example, to copy the file latest.cfg from the
                backupconfigs/routers directory on the TFTP server, this object
                should be set to:

                  backupconfigs/routers/latest.cfg"
            ::= { atFilev2FileOperation 3 }


        atFilev2DestinationStackID OBJECT-TYPE
            SYNTAX Integer32
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "Set to the stack ID of the destination device to be used for
                the file operation. For devices that are not capable of being
                stacked, set with the value 1. For a chassis switch, it
                corresponds to the card ID. For VCStack Plus, 1-12 refers to
                the cards on VCS stack member 1 and 13-24 refers to the cards
                on VCS stack member 2. Refer to chassisMappingTable for more details.

                This value is ignored if the destination device is set to TFTP,
                or if a deletion operation is carried out."
            ::= { atFilev2FileOperation 4 }


        atFilev2DestinationDevice OBJECT-TYPE
            SYNTAX INTEGER
                {
                flash(1),
                card(2),
                nvs(3),
                tftp(4),
                usb(5)
                }
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "Set to the value representing the destination file system to
                be used for the file operation:

                  1. Flash
                  2. Card
                  3. NVS
                  4. TFTP
                  5. USB

                For copying files, any combination of source and destination
                file system types may be selected, with the exception of TFTP
                to TFTP, which is not supported.

                For moving files, TFTP may not be selected as the source or
                destination file system type.

                For deleting files, this object is ignored.

                All required parameters must be fully configured before an
                operation can commence. Where a TFTP operation is configured,
                an IP address must also be set via atFilev2TftpIPAddr."
            ::= { atFilev2FileOperation 5 }


        atFilev2DestinationFilename OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "The destination filename for the copy or move operation.
                Include any path as required, but the file system type is not
                necessary. The destination filename does not need to be the
                same as the source filename, and this object is ignored for
                file deletion operations.

                For example, to copy a release file from a TFTP server to the
                backuprelease directory on the flash file system, this object
                should be set to:

                  backuprelease/latest.rel

                Note: Any file at the destination that shares the destination
                filename will be overwritten by a move or copy operation."
            ::= { atFilev2FileOperation 6 }


        atFilev2CopyBegin OBJECT-TYPE
            SYNTAX OCTET STRING
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "A read on this object can return several possible values,
                depending on the current status of the system and the
                various file operation objects:

                idle                               There is no file operation
                                                   in progress and all required
                                                   objects have been set
                                                   correctly. Setting a '1' to
                                                   this object will begin the
                                                   file copy.

                Error codes: [1-7]                 A copy operation cannot be
                                                   started until these errors
                                                   are resolved. See below for
                                                   key.

                [action]ing x [--> y]              A file operation is
                                                   currently in progress. You
                                                   cannot start another
                                                   operation while the object
                                                   is returning this value.

                [action] x [--> y] success         The last copy, move or
                                                   delete operation was
                                                   successfully completed.

                [action] x [--> y] failure: [err]  The last copy, move or
                                                   delete operation failed,
                                                   with the error message
                                                   attached. Common failures
                                                   include lack of space on the
                                                   destination file system,
                                                   incorrect source file names
                                                   or communication errors with
                                                   remote services.

                Upon reading a success or failure message, the message will be
                cleared and the next read will result in either an 'idle'
                message or an 'Error codes' message if not all required objects
                have been correctly set. If a read returns 'idle', a new file
                operation can be started.

                Error codes for file copy:

                1 - atFilev2SourceDevice has not been set
                2 - atFilev2SourceFilename has not been set
                3 - atFilev2DestinationDevice has not been set
                4 - atFilev2DestinationFilename has not been set
                5 - atFilev2SourceDevice and atFilev2DestinationDevice are both
                    set to TFTP
                6 - the combination of source device, stackID and filename is
                    the same as the destination device, stackID and filename
                    (i.e. it is not valid to copy a file onto itself.
                7 - TFTP IP address has not been set and TFTP has been set for
                    one of the devices

                Note that if the above requirements are met and the operation
                would result in a system file being modified, then an SNMP set
                to this object will be disallowed.
                
                For valid operations, immediately upon executing the SNMP set
                operation on this object, the file copy will begin and will
                continue on the device until either it has completed, or a
                failure occurs. For large files, operations can take several
                minutes to complete.

                Subsequent reads of the object will return one of the messages
                shown above, to track the progress of the copy operation."
            ::= { atFilev2FileOperation 7 }


        atFilev2MoveBegin OBJECT-TYPE
            SYNTAX OCTET STRING
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "A read on this object can return several possible values,
                depending on the current status of the system and the various
                file operation objects:

                idle                               There is no file operation
                                                   in progress and all required
                                                   objects have been set
                                                   correctly. Setting a '1' to
                                                   this object will begin the
                                                   file move.

                Error codes: [1-6]                 A move operation cannot be
                                                   started until these errors
                                                   are resolved. See below for
                                                   key.

                [action]ing x [--> y]              A file operation is
                                                   currently in progress. You
                                                   cannot start another
                                                   operation while the object
                                                   is returning this value.

                [action] x [--> y] success         The last copy, move or
                                                   delete operation was
                                                   successfully completed.

                [action] x [--> y] failure: [err]  The last copy, move or
                                                   delete operation failed,
                                                   with the error message
                                                   attached. Common failures
                                                   include lack of space on the
                                                   destination file system,
                                                   incorrect source file names
                                                   or communication errors with
                                                   remote services.

                Upon reading a success or failure message, the message will be
                cleared and the next read will result in either an 'idle'
                message or an 'Error codes' message if not all required objects
                have been correctly set. If a read returns 'idle', a new file
                operation can be started.

                Error codes for file move:

                1 - atFilev2SourceDevice has not been set
                2 - atFilev2SourceFilename has not been set
                3 - atFilev2DestinationDevice has not been set
                4 - atFilev2DestinationFilename has not been set
                5 - either atFilev2SourceDevice or atFilev2DestinationDevice
                    are set to TFTP
                6 - the combination of source device, stackID and filename is
                    the same as the destination device, stackID and filename
                    (i.e. it is not valid to move a file onto itself.

                Note that if the above requirements are met and the operation
                would result in a system file being modified or deleted, then
                an SNMP set to this object will be disallowed.
                
                For valid operations, immediately upon executing the SNMP set
                operation on this object, the file move will begin and will
                continue on the device until either it has completed, or a
                failure occurs. For large files, operations can take several
                minutes to complete.

                Subsequent reads of the object will return one of the messages
                shown above, to track the progress of the move operation."
            ::= { atFilev2FileOperation 8 }


        atFilev2DeleteBegin OBJECT-TYPE
            SYNTAX OCTET STRING
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "A read on this object can return several possible values,
                depending on the current status of the system and the various
                file operation objects:

                idle                               There is no file operation
                                                   in progress and all required
                                                   objects have been set
                                                   correctly. Setting a '1' to
                                                   this object will begin the
                                                   file deletion.

                Error codes: [1-3]                 A delete operation cannot be
                                                   started until these errors
                                                   are resolved. See below for
                                                   key.

                [action]ing x [--> y]              A file operation is
                                                   currently in progress. You
                                                   cannot start another
                                                   operation while the object
                                                   is returning this value.

                [action] x [--> y] success         The last copy, move or
                                                   delete operation was
                                                   successfully completed.

                [action] x [--> y] failure: [err]  The last copy, move or
                                                   delete operation failed,
                                                   with the error message
                                                   attached. Common failures
                                                   include lack of space on the
                                                   destination file system,
                                                   incorrect source file names
                                                   or communication errors with
                                                   remote services.

                Upon reading a success or failure message, the message will be
                cleared and the next read will result in either an 'idle'
                message or an 'Error codes' message if not all required objects
                have been correctly set. If a read returns 'idle', a new file
                operation can be started.

                File deletion operations ignore the values set in the
                atFilev2DestinationStackID, atFilev2DestinationDevice and
                atFilev2DestinationFilename objects.

                Error codes for file deletion:

                1 - atFilev2SourceDevice has not been set
                2 - atFilev2SourceFilename has not been set
                3 - atFilev2SourceDevice has been set to TFTP

                Note that if the above requirements are met and the operation
                would result in a system file being deleted, then an SNMP set
                to this object will be disallowed.
                
                For valid operations, immediately upon executing the SNMP set
                operation on this object, the file deletion will begin and will
                continue on the device until either it has completed, or a
                failure occurs. For large files, operations can take several
                minutes to complete.

                Subsequent reads of the object will return one of the messages
                shown above, to track the progress of the deletion operation."
            ::= { atFilev2FileOperation 9 }


-- Begin file operation devices.

        atFilev2Flash1 OBJECT IDENTIFIER ::= { atFilev2FileOperation 10 }


        atFilev2Card2 OBJECT IDENTIFIER ::= { atFilev2FileOperation 11 }


        atFilev2Nvs3 OBJECT IDENTIFIER ::= { atFilev2FileOperation 12 }


        atFilev2Tftp4 OBJECT IDENTIFIER ::= { atFilev2FileOperation 13 }


        atFilev2TftpIPAddr OBJECT-TYPE
            SYNTAX IpAddress
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "The IP address of the TFTP server that is to be used for the
                file copy process. This IP address needs to be reachable from
                the device or the file copy will fail."
            ::= { atFilev2Tftp4 1 }

	atFilev2Usb5 OBJECT IDENTIFIER ::= { atFilev2FileOperation 15 }

-- End file operation devices.


-- Directory operations.

	      atFilev2DirOperation OBJECT IDENTIFIER ::= { atFilev2FileOperation 14 }


	      atFilev2DirStackID OBJECT-TYPE
	          SYNTAX Integer32
	          MAX-ACCESS read-write
	          STATUS current
	          DESCRIPTION
	              "Set to the stack ID of the device containing the directory to
	              be renamed or deleted, or to the stack ID of the device on
	              which to create a new directory. For devices that are not
                      capable of being stacked, set with the value 1. For a chassis
                      switch, it corresponds to the card ID. For VCStack Plus,
                      1-12 refers to the cards on VCS stack member 1 and 13-24 refers
                      to the cards on VCS stack member 2.
                      Refer to chassisMappingTable for more details."
              ::= { atFilev2DirOperation 1 }


	      atFilev2DirFileSystem OBJECT-TYPE
	          SYNTAX INTEGER
	              {
	              flash(1),
	              card(2),
	              nvs(3),
	              usb(5)
	              }
	          MAX-ACCESS read-write
	          STATUS current
	          DESCRIPTION
	              "Set to the value representing the file system on which the
	              existing directory resides, or on which a new directory should
	              be created:

	                1. Flash
	                2. Card
	                3. NVS
	                5. USB"
	          ::= { atFilev2DirOperation 2 }


	      atFilev2DirPath OBJECT-TYPE
	          SYNTAX DisplayString
	          MAX-ACCESS read-write
	          STATUS current
	          DESCRIPTION
	              "This object should be set to the path of the directory to be
	              created/deleted/renamed, but should not include the name of the
	              directory itself, or the file system on which it resides.

	              For example, to delete directory 'backupconfigs/old' from the
	              flash filesystem, this object should be set to 'backupconfigs'."
	          ::= { atFilev2DirOperation 3 }


	      atFilev2SourceDirName OBJECT-TYPE
	          SYNTAX DisplayString
	          MAX-ACCESS read-write
	          STATUS current
	          DESCRIPTION
	              "This object is required for directory deletion or rename
	              operations only. It should be set to the name of the directory
	              to be deleted/renamed, but should not include any path data.
                Operations on hidden directories are not supported.

	              For example, to delete directory 'backupconfigs/old' from the
	              flash filesystem, this object should be set to 'old'."
	          ::= { atFilev2DirOperation 4 }


	      atFilev2DestDirName OBJECT-TYPE
	          SYNTAX DisplayString
	          MAX-ACCESS read-write
	          STATUS current
	          DESCRIPTION
	              "This object is required for directory creation or rename
	              operations only. It should be set to the name of the directory
	              to be created, or the destination directory name for a rename
	              operation. It should not include any path data and operations
	              on hidden directories are not supported.

	              For example, to create directory 'backupconfigs/old' on the
	              flash filesystem, this object should be set to 'old'."
	          ::= { atFilev2DirOperation 5 }


	      atFilev2BeginDirOperation OBJECT-TYPE
	          SYNTAX INTEGER
	              {
	              idle(1),
	              createDir(2),
	              renameDir(3),
	              deleteEmptyDir(4),
	              deleteForceDir(5)
	              }
	          MAX-ACCESS read-write
	          STATUS current
	          DESCRIPTION
	              "A read of this object will always return 'idle' (1). All
	              applicable objects above must have been set correctly in order
	              to commence an operation.
	              
	              The following values may be set to perform the operations
	              described:

	                createDir (2) :      This will create a new directory with a
	                                     name equating to atFilev2DestDirName, on
	                                     the device indicated by
	                                     atFilev2DirStackID, and the file system
	                                     indicated by atFilev2DirFileSystem, with
	                                     the path to the directory being
	                                     indicated by atFilev2DirPath. The given
	                                     path structure must already exist.

	                renameDir (3) :      This will rename an existing directory
	                                     with a name equating to
	                                     atFilev2SourceDirName, to a name
	                                     equating to atFilev2DestDirName on the
	                                     device indicated by atFilev2DirStackID,
	                                     and the file system indicated by
	                                     atFilev2DirFileSystem, with the path to
	                                     the directory being indicated by
	                                     atFilev2DirPath. The given path
	                                     structure and source directory must
	                                     already exist, and a rename operation
	                                     cannot change the path where the
	                                     directory currently resides.

	                deleteEmptyDir (4) : This will delete an existing directory
	                                     with a name equating to
	                                     atFilev2SourceDirName, on the device
	                                     indicated by atFilev2DirStackID, and the
	                                     file system indicated by
	                                     atFilev2DirFileSystem, with the path to
	                                     the directory being indicated by
	                                     atFilev2DirPath. However, the operation
	                                     will fail if the specified directory is
	                                     not empty. Only sub-directories within
	                                     the specified file system can be
	                                     deleted.

	                deleteForceDir (5) : This will delete an existing directory
	                                     with a name equating to
	                                     atFilev2SourceDirName, on the device
	                                     indicated by atFilev2DirStackID, and the
	                                     file system indicated by
	                                     atFilev2DirFileSystem, with the path to
	                                     the directory being indicated by
	                                     atFilev2DirPath. The operation will also
	                                     automatically delete any contents within
	                                     the specified directory. Only sub-
	                                     directories within the specified file
	                                     system can be deleted."
	          ::= { atFilev2DirOperation 6 }


	      atFilev2LastDirOpResult OBJECT-TYPE
	          SYNTAX DisplayString
	          MAX-ACCESS read-only
	          STATUS current
	          DESCRIPTION
	              "Gives an indication of the result of the last completed SNMP
	              directory operation."
	          ::= { atFilev2DirOperation 7 }

-- ---------------------------------------------------------- --
-- The SD Card Table
-- ---------------------------------------------------------- --

        atFilev2SDcardTable OBJECT-TYPE
            SYNTAX SEQUENCE OF AtFilev2SDcardEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "A table of information about SD cards."
            ::= { atFilev2 4 }


        atFilev2SDcardEntry OBJECT-TYPE
            SYNTAX AtFilev2SDcardEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "Data pertaining to an SD card instance."
            INDEX { atFilev2SDcardStackMemberId }
            ::= { atFilev2SDcardTable 1 }


        AtFilev2SDcardEntry ::=
            SEQUENCE {
                atFilev2SDcardStackMemberId
                    Unsigned32,
                atFilev2SDcardPresence
                    INTEGER
             }

        atFilev2SDcardStackMemberId OBJECT-TYPE
            SYNTAX Unsigned32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The index of the stack member hosting this SD card. For
                devices that are not capable of being stacked, this object will
                always return the value 1."
            ::= { atFilev2SDcardEntry 1 }


        atFilev2SDcardPresence OBJECT-TYPE
            SYNTAX INTEGER
                {
                notPresent(1),
                present(2)
                }
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "This object indicates whether or not an SD card is inserted
                in a slot."
            ::= { atFilev2SDcardEntry 2 }


-- ---------------------------------------------------------- --
-- The file info table
-- ---------------------------------------------------------- --
        atFilev2InfoTable OBJECT-TYPE
            SYNTAX SEQUENCE OF AtFilev2InfoEntry
            MAX-ACCESS not-accessible
            STATUS obsolete
            DESCRIPTION
                "A list of all files, including pathnames, that are present on
                the device. Hidden system files are not displayed.

                NOTE: atFilev2InfoTable and associated objects have been replaced
                by atFilev2FileViewer."
            ::= { atFilev2 5 }


        atFilev2InfoEntry OBJECT-TYPE
            SYNTAX AtFilev2InfoEntry
            MAX-ACCESS not-accessible
            STATUS obsolete
            DESCRIPTION
                "An entry in the list of files, containing information about a
                single file.

                NOTE: atFilev2Table and associated objects have been replaced
                by atFilev2FileViewer."

            INDEX { IMPLIED atFilev2InfoFilepath }
            ::= { atFilev2InfoTable 1 }


        AtFilev2InfoEntry ::=
            SEQUENCE {
                atFilev2InfoFilepath
                    OCTET STRING,
                atFilev2InfoFileSize
                    Counter64,
                atFilev2InfoFileCreationTime
                    OCTET STRING,
                atFilev2InfoFileIsDirectory
                    TruthValue,
                atFilev2InfoFileIsReadable
                    TruthValue,
                atFilev2InfoFileIsWriteable
                    TruthValue,
                atFilev2InfoFileIsExecutable
                    TruthValue
             }

        atFilev2InfoFilepath OBJECT-TYPE
            SYNTAX OCTET STRING (SIZE (1..112))
            MAX-ACCESS read-only
            STATUS obsolete
            DESCRIPTION
                "The full path and name of the file. Files are sorted in
                alphabetical order, and any filepath that is longer than 112
                characters will not be displayed due to SNMP OID length
                limitations.

                NOTE: atFilev2InfoTable and associated objects have been replaced
                by atFilev2FileViewer."

            ::= { atFilev2InfoEntry 1 }


        atFilev2InfoFileSize OBJECT-TYPE
            SYNTAX Counter64
            MAX-ACCESS read-only
            STATUS obsolete
            DESCRIPTION
                "The size of the file in bytes.

                NOTE: atFilev2InfoTable and associated objects have been replaced
                by atFilev2FileViewer."

            ::= { atFilev2InfoEntry 2 }


        atFilev2InfoFileCreationTime OBJECT-TYPE
            SYNTAX OCTET STRING
            MAX-ACCESS read-only
            STATUS obsolete
            DESCRIPTION
                "File creation time in the form <MMM DD YYYY HH:MM:SS>.
                Eg: Sep 7 2008 06:07:54.

                NOTE: atFilev2InfoTable and associated objects have been replaced
                by atFilev2FileViewer."

            ::= { atFilev2InfoEntry 3 }


        atFilev2InfoFileIsDirectory OBJECT-TYPE
            SYNTAX TruthValue
            MAX-ACCESS read-only
            STATUS obsolete
            DESCRIPTION
                "Returns TRUE if the entry is a directory, FALSE otherwise.

                NOTE: atFilev2InfoTable and associated objects have been replaced
                by atFilev2FileViewer."

            ::= { atFilev2InfoEntry 4 }


        atFilev2InfoFileIsReadable OBJECT-TYPE
            SYNTAX TruthValue
            MAX-ACCESS read-only
            STATUS obsolete
            DESCRIPTION
                "Returns TRUE if the file is readable, FALSE otherwise.

                NOTE: atFilev2InfoTable and associated objects have been replaced
                by atFilev2FileViewer."

            ::= { atFilev2InfoEntry 5 }


        atFilev2InfoFileIsWriteable OBJECT-TYPE
            SYNTAX TruthValue
            MAX-ACCESS read-only
            STATUS obsolete
            DESCRIPTION
                "Returns TRUE if the file is writeable, FALSE otherwise.

                NOTE: atFilev2InfoTable and associated objects have been replaced
                by atFilev2FileViewer."

            ::= { atFilev2InfoEntry 6 }


        atFilev2InfoFileIsExecutable OBJECT-TYPE
            SYNTAX TruthValue
            MAX-ACCESS read-only
            STATUS obsolete
            DESCRIPTION
                "Returns TRUE if the file is executable, FALSE otherwise.

                NOTE: atFilev2InfoTable and associated objects have been replaced
                by atFilev2FileViewer."

            ::= { atFilev2InfoEntry 7 }


-- ---------------------------------------------------------- --
-- The USB Media Table
-- ---------------------------------------------------------- --

        atFilev2USBMediaTable OBJECT-TYPE
            SYNTAX SEQUENCE OF AtFilev2USBMediaEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "A table of information about USB media."
            ::= { atFilev2 6 }


        atFilev2USBMediaEntry OBJECT-TYPE
            SYNTAX AtFilev2USBMediaEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "Data pertaining to an USB media instance."
            INDEX { atFilev2USBMediaStackMemberId }
            ::= { atFilev2USBMediaTable 1 }


        AtFilev2USBMediaEntry ::=
            SEQUENCE {
                atFilev2USBMediaStackMemberId
                    Unsigned32,
                atFilev2USBMediaPresence
                    INTEGER
             }

        atFilev2USBMediaStackMemberId OBJECT-TYPE
            SYNTAX Unsigned32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The index of the stack member hosting this USB media. For
                devices that are not capable of being stacked, this object will
                always return the value 1. For a chassis switch, it corresponds
                to the card ID. For VCStack Plus, 1-12 refers to the cards on
                VCS stack member 1 and 13-24 refers to the cards on VCS stack
                member 2. Refer to chassisMappingTable for more details."
            ::= { atFilev2USBMediaEntry 1 }


        atFilev2USBMediaPresence OBJECT-TYPE
            SYNTAX INTEGER
                {
                notPresent(1),
                present(2)
                }
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "This object indicates whether or not an USB media is inserted
                in a slot."
            ::= { atFilev2USBMediaEntry 2 }


-- ---------------------------------------------------------- --
-- The file viewer
-- The set of objects in this section allow for a view of the files
-- on this managed device that is reminiscent of the view that a
-- shell user on a device would have, with the concepts of current
-- working directory, changing directories and viewing files
-- within a directory all supported.
-- This section obseletes the first two attempts at creating a view
-- of files for the reason that performance and functionality of the
-- original views was not sufficient. In particular, trying to
-- create a view of all files in the device, sorted by path and
-- file name, proved to be very difficult when scaling considerations
-- were taken into account.
-- Note that in order to use this group of objects the ability to
-- write MIB variables is required.
-- ---------------------------------------------------------- --

        atFilev2FileViewer OBJECT IDENTIFIER ::= { atFilev2 7 }

        atFilev2FileViewerStackId OBJECT-TYPE
            SYNTAX Integer32
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "The stack ID of the stack member for which files will be displayed
                in the FileViewer table. For devices that are not capable of being
                stacked, this variable will always read as 1, and will cause an error
                on being written to with any value other than 1.

                Write this variable with the stack ID of the stack member for which
                a view of files is required. If the stack member doesn't exist, an
                error will be returned. For a chassis switch, it corresponds to
                the card ID. For VCStack Plus, 1-12 refers to the cards on VCS stack
                member 1 and 13-24 refers to the cards on VCS stack member 2.
                Refer to chassisMappingTable for more details.

                Note that the other variables specifying the files to view will
                not be altered by changing the stack ID, which means that the
                file view table could be empty if a non-existant device or path
                has been referenced previously."
            DEFVAL { 1 }
            ::= { atFilev2FileViewer 1 }


        atFilev2FileViewerDevice OBJECT-TYPE
            SYNTAX INTEGER
                {
                flash(1),
                card(2),
                nvs(3),
                tftp(4),
                usb(5)
                }
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "The file system device for which files will be displayed in the
                FileViewer table. The values supported for this variable are
                identical to the values for other variables in the MIB, although not
                all values will actually result in the display of files.

                The different devices and whether they will result in the display
                of files are:

                  1. Flash - Onboard Flash - supported
                  2. Card - Removable SD card - supported
                  3. NVS - Onboard battery backed RAM - supported
                  4. TFTP - not supported
                  5. USB - Removable USB media - supported

                Note: Card and USB are supported on the stack master or Active
                CFC. The devices cannot be read if atFilev2FileViewerStackId is
                set with the ID of a different stack member or chassis card.

                Setting this variable to an unsupported value will result in an error,
                but setting to a value that is supported but on a system that doesn't
                contain that type of device will not. However, no files will be
                displayed in the File Viewer table in this case."
                DEFVAL { 1 }
            ::= { atFilev2FileViewer 2 }


        atFilev2FileViewerCurrentPath OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "The file system path for which files will be displayed in
                the FileViewer table. This path will always read as a full
                pathname starting with the '/' character.

                Setting this variable will specify a new directory for which
                files will be displayed. The path specified must be the full
                path, relative setting of path does not work. Only paths with
                invalid characters in them will cause an error, paths specifying
                non-existant directories will be accepted, but no files will be
                displayed in the File Viewer table in this case."
              -- DEFVAL { "//" }
              ::= { atFilev2FileViewer 3 }


        atFilev2FileViewerTable OBJECT-TYPE
            SYNTAX SEQUENCE OF AtFilev2FileViewerEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "A list of all files, not including pathnames, that are present
                on the device specified by atFilev2FileViewerStackId and
                atFilev2FileViewerDevice, in the path specified by
                atFilev2FileViewerCurrentPath.

                Hidden and system files are not displayed.

                If the Stack ID, device and path are invalid (the path is for
                a non-existant directory), the table will be empty. This will
                allow a MIB walk through the table even though the setup
                parameters are incorrect."
            ::= { atFilev2FileViewer 4 }


        atFilev2FileViewerEntry OBJECT-TYPE
            SYNTAX AtFilev2FileViewerEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "An entry in the list of files, containing information about a
                single file."
            INDEX { IMPLIED atFilev2FileViewerName }
            ::= { atFilev2FileViewerTable 1 }


        AtFilev2FileViewerEntry ::=
            SEQUENCE {
                atFilev2FileViewerName
                    DisplayString,
                atFilev2FileViewerSize
                    Counter64,
                atFilev2FileViewerCreationTime
                    DisplayString,
                atFilev2FileViewerIsDirectory
                    TruthValue,
                atFilev2FileViewerIsReadable
                    TruthValue,
                atFilev2FileViewerIsWriteable
                    TruthValue,
                atFilev2FileViewerIsExecutable
                    TruthValue
             }

        atFilev2FileViewerName OBJECT-TYPE
            SYNTAX DisplayString (SIZE (1..112))
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The name of the file. Files are sorted in alphabetical order,
                and any name that is longer than 112 characters will not be
                displayed due to SNMP OID length limitations."
            ::= { atFilev2FileViewerEntry 1 }


        atFilev2FileViewerSize OBJECT-TYPE
            SYNTAX Counter64
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The size of the file in bytes."
            ::= { atFilev2FileViewerEntry 2 }


        atFilev2FileViewerCreationTime OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "File creation time in the form <MMM DD YYYY HH:MM:SS>.
                Eg: Sep 7 2008 06:07:54."
            ::= { atFilev2FileViewerEntry 3 }


        atFilev2FileViewerIsDirectory OBJECT-TYPE
            SYNTAX TruthValue
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Returns TRUE if the entry is a directory, FALSE otherwise."
            ::= { atFilev2FileViewerEntry 4 }


        atFilev2FileViewerIsReadable OBJECT-TYPE
            SYNTAX TruthValue
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Returns TRUE if the file is readable, FALSE otherwise."
            ::= { atFilev2FileViewerEntry 5 }


        atFilev2FileViewerIsWriteable OBJECT-TYPE
            SYNTAX TruthValue
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Returns TRUE if the file is writeable, FALSE otherwise."
            ::= { atFilev2FileViewerEntry 6 }


        atFilev2FileViewerIsExecutable OBJECT-TYPE
            SYNTAX TruthValue
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Returns TRUE if the file is executable, FALSE otherwise."
            ::= { atFilev2FileViewerEntry 7 }


    END

--
-- at-filev2.mib
--

