-- *****************************************************************
-- CISCO-FTP-CLIENT-MIB.my:  FTP Client MIB
--
-- July 1997, Bob Stewart
--
-- Copyright (c) 1997, 1998, 1999, 2006 by cisco Systems, Inc.
-- All rights reserved.
-- 
-- *****************************************************************

CISCO-FTP-CLIENT-MIB DEFINITIONS ::= BEGIN
 
IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE,
    Gauge32, Counter32,
    Unsigned32                           FROM SNMPv2-SMI 
    TimeStamp, RowStatus,
    DisplayString                        FROM SNMPv2-TC
    MODULE-COMPLIANCE, OBJECT-GROUP      FROM SNMPv2-CONF
    ciscoMgmt                            FROM CISCO-SMI;
 
ciscoFtpClientMIB MODULE-IDENTITY
    LAST-UPDATED "200603310000Z"
    ORGANIZATION "Cisco Systems, Inc."
    CONTACT-INFO "Cisco Systems
                  Customer Service

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

                  Tel: +1 800 553-NETS

                  E-mail: cs-snmp@cisco.com"
    DESCRIPTION
      "The MIB module for invoking Internet File Transfer Protocol
      (FTP) operations for network management purposes."
    REVISION        "200603310000Z"
    DESCRIPTION
      "Updated the imports such that Unsigned32 is imported from
      SNMPv2-SMI instead of CISCO-TC."
    REVISION        "199710091700Z"
    DESCRIPTION
      "Initial version."
    ::= { ciscoMgmt 80 }


ciscoFtpClientMIBObjects OBJECT IDENTIFIER ::= { ciscoFtpClientMIB 1 }

cfcRequest            OBJECT IDENTIFIER ::= { ciscoFtpClientMIBObjects 1 }


--
-- Client Request Control
--

cfcRequestMaximum OBJECT-TYPE
    SYNTAX      Unsigned32 (0..4294967295)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
      "The maximum number of requests this system can hold in
      cfcRequestTable.  A value of 0 indicates no configured limit.

      This object may be read-only on some systems.

      When an attempt is made to create a new entry but the table
      is full, the oldest completed entry is bumped out and
      cfcRequestsBumped is incremented.

      Changing this number does not disturb existing requests that
      are not completed and bumps completed requests as necessary."
    ::= { cfcRequest 1 }

cfcRequests OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
      "The current number of requests in cfcRequestTable."
    ::= { cfcRequest 2 }

cfcRequestsHigh OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
      "The highest number of requests in cfcRequestTable since this
      system was last initialized."
    ::= { cfcRequest 3 }

cfcRequestsBumped OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
      "The number of requests in cfcRequestTable that were bumped
      out to make room for a new request."
    ::= { cfcRequest 4 }

--
-- Client Request Control Table
--

cfcRequestTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CfcRequestEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
      "A table of FTP client requests."
    ::= { cfcRequest 5 }

cfcRequestEntry OBJECT-TYPE
    SYNTAX      CfcRequestEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
      "Information about an FTP client request.  Management applications
      use cfcRequestEntryStatus to control entry modification, creation,
      and deletion.

      Setting cfcRequestEntryStatus to 'active' from any state including
      'active' causes the operation to be started.

      The entry may be modified only when cfcRequestOperationState is
      'stopped'.

      The value of cfcRequestEntryStatus may be set to 'destroy' at any
      time.  Doing so will abort a running request.

      Entries may not be created without explicitly setting
      cfcRequestEntryStatus to either 'createAndGo' or 'createAndWait'."
    INDEX       { cfcRequestIndex }
    ::= { cfcRequestTable 1 }

CfcRequestEntry ::= SEQUENCE {
    cfcRequestIndex           Unsigned32,
    cfcRequestOperation       INTEGER,
    cfcRequestLocalFile       DisplayString,
    cfcRequestRemoteFile      DisplayString,
    cfcRequestServer          DisplayString,
    cfcRequestUser            DisplayString,
    cfcRequestPassword        DisplayString,
    cfcRequestResult          INTEGER,
    cfcRequestCompletionTime  TimeStamp,
    cfcRequestStop            INTEGER,
    cfcRequestOperationState  INTEGER,
    cfcRequestEntryStatus     RowStatus
}

cfcRequestIndex OBJECT-TYPE
    SYNTAX      Unsigned32 (1..4294967295)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
      "An arbitrary integer to uniquely identify this entry.  To
      create an entry a management application should pick a
      random number."
    ::= { cfcRequestEntry 1 }

cfcRequestOperation OBJECT-TYPE
    SYNTAX      INTEGER { putBinary(1), putASCII(2) }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
      "The FTP operation to be performed."
    DEFVAL      { putBinary }
    ::= { cfcRequestEntry 2 }

cfcRequestLocalFile OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (1..255))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
      "The local file on which the operation is to be performed."
    ::= { cfcRequestEntry 3 }

cfcRequestRemoteFile OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (1..255))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
      "The remote file on which the operation is to be performed."
    ::= { cfcRequestEntry 4 }

cfcRequestServer OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (1..64))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
      "The domain name or IP address of the FTP server to use."
    ::= { cfcRequestEntry 5 }

cfcRequestUser OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (1..32))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
      "The user name to use at the FTP server."
    ::= { cfcRequestEntry 6 }

cfcRequestPassword OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..16))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
      "The password to use at the FTP server.

      When read this object always returns a zero-length string."
    DEFVAL      { ''H }
    ::= { cfcRequestEntry 7 }

cfcRequestResult OBJECT-TYPE
    SYNTAX      INTEGER {
                pending(1),
                success(2),
                aborted(3),
                fileOpenFailLocal(4),
                fileOpenFailRemote(5),
                badDomainName(6),
                unreachableIpAddress(7),
                linkFailed(8),
                fileReadFailed(9),
                fileWriteFailed(10)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
      "The result of the FTP operation."
    ::= { cfcRequestEntry 8 }

cfcRequestCompletionTime OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
      "The value of sysUpTime when the operation completed.  For
      an incomplete operation this value is zero."
    ::= { cfcRequestEntry 9 }

cfcRequestStop OBJECT-TYPE
    SYNTAX      INTEGER { ready(1), stop(2) }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
      "The action control to stop a running request.  Setting this to
      'stop' will begin the process of stopping the request.  Setting
      it to 'ready' or setting it to 'stop' more than once have no
      effect.  When read this object always returns ready."
    ::= { cfcRequestEntry 10 }

cfcRequestOperationState OBJECT-TYPE
    SYNTAX      INTEGER { running(1), stopping(2), stopped(3) }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
      "The operational state of the file transfer.  To short-terminate
      the transfer set cfcRequestStop to 'stop'."
    ::= { cfcRequestEntry 11 }

cfcRequestEntryStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
      "The control that allows modification, creation, and deletion
      of entries.  For detailed rules see the DESCRIPTION for
      cfcRequestEntry."
    ::= { cfcRequestEntry 12 }


--
-- Conformance
--

ciscoFtpClientMIBConformance OBJECT IDENTIFIER ::= { ciscoFtpClientMIB 3 }

ciscoFtpClientMIBCompliances OBJECT IDENTIFIER ::=
      { ciscoFtpClientMIBConformance 1 }
ciscoFtpClientMIBGroups      OBJECT IDENTIFIER ::=
      { ciscoFtpClientMIBConformance 2 }

-- Compliance

ciscoFtpClientMIBCompliance MODULE-COMPLIANCE
      STATUS current
      DESCRIPTION
            "The compliance statement for entities which implement
            the Cisco FTP Client MIB.  Implementation of this MIB
            is based on individual product needs."
      MODULE      -- this module
            MANDATORY-GROUPS { 
                  ciscoFtpClientRequestGroup
            }

      ::= { ciscoFtpClientMIBCompliances 1 }

-- Units of Conformance

ciscoFtpClientRequestGroup OBJECT-GROUP
      OBJECTS {
            cfcRequestMaximum,
            cfcRequests,
            cfcRequestsHigh,
            cfcRequestsBumped,
            cfcRequestOperation,
            cfcRequestLocalFile,
            cfcRequestRemoteFile,
            cfcRequestServer,
            cfcRequestUser,
            cfcRequestPassword,
            cfcRequestResult,
            cfcRequestCompletionTime,
            cfcRequestStop,
            cfcRequestOperationState,
            cfcRequestEntryStatus
      }
      STATUS current
      DESCRIPTION
            "FTP client request management."
      ::= { ciscoFtpClientMIBGroups 1 }

END
