# PySNMP SMI module. Autogenerated from smidump -f python ARC-MIB
# by libsmi2pysnmp-0.1.3 at Mon Apr  2 20:38:42 2012,
# Python version sys.version_info(major=2, minor=7, micro=2, releaselevel='final', serial=0)

# Imports

( ResourceId, ) = mibBuilder.importSymbols("ALARM-MIB", "ResourceId")
( Integer, ObjectIdentifier, OctetString, ) = mibBuilder.importSymbols("ASN1", "Integer", "ObjectIdentifier", "OctetString")
( NamedValues, ) = mibBuilder.importSymbols("ASN1-ENUMERATION", "NamedValues")
( ConstraintsIntersection, ConstraintsUnion, SingleValueConstraint, ValueRangeConstraint, ValueSizeConstraint, ) = mibBuilder.importSymbols("ASN1-REFINEMENT", "ConstraintsIntersection", "ConstraintsUnion", "SingleValueConstraint", "ValueRangeConstraint", "ValueSizeConstraint")
( ModuleCompliance, ObjectGroup, ) = mibBuilder.importSymbols("SNMPv2-CONF", "ModuleCompliance", "ObjectGroup")
( Bits, Integer32, ModuleIdentity, MibIdentifier, MibScalar, MibTable, MibTableRow, MibTableColumn, TimeTicks, Unsigned32, mib_2, ) = mibBuilder.importSymbols("SNMPv2-SMI", "Bits", "Integer32", "ModuleIdentity", "MibIdentifier", "MibScalar", "MibTable", "MibTableRow", "MibTableColumn", "TimeTicks", "Unsigned32", "mib-2")
( RowStatus, StorageType, TextualConvention, ) = mibBuilder.importSymbols("SNMPv2-TC", "RowStatus", "StorageType", "TextualConvention")

# Types

class IANAItuProbableCauseOrZero(Integer32):
    subtypeSpec = Integer32.subtypeSpec+ValueRangeConstraint(0,2147483647)
    

# Objects

arcMibModule = ModuleIdentity((1, 3, 6, 1, 2, 1, 117)).setRevisions(("2004-09-09 00:00",))
if mibBuilder.loadTexts: arcMibModule.setOrganization("IETF Distributed Management Working Group")
if mibBuilder.loadTexts: arcMibModule.setContactInfo("WG EMail:  disman@ietf.org\nSubscribe: disman-request@ietf.org\nhttp://www.ietf.org/html.charters/disman-charter.html\n\nChair:     Randy Presuhn\n     E-mail: randy_presuhn@mindspring.com\n\nEditor:    Hing-Kam Lam\n     Lucent Technologies, 4C-616\n     101 Crawfords Corner Road\n\n\n\n     Holmdel, NJ 07733\n     USA\n     Tel: +1 732 949 8338\n     E-mail: hklam@lucent.com")
if mibBuilder.loadTexts: arcMibModule.setDescription("The MIB module describes the objects for controlling a resource\nin reporting alarm conditions that it detects.\n\nCopyright (C) The Internet Society (2004).  This version\nof this MIB module is part of RFC 3878;  see the RFC\nitself for full legal notices.")
arcTimeIntervals = MibIdentifier((1, 3, 6, 1, 2, 1, 117, 1))
arcTITimeInterval = MibScalar((1, 3, 6, 1, 2, 1, 117, 1, 1), Unsigned32()).setMaxAccess("readwrite").setUnits("seconds")
if mibBuilder.loadTexts: arcTITimeInterval.setDescription("This variable indicates the time interval used for the nalmTI\nstate, in units of second.  It is a pre-defined length of time\nin which the resource will stay in the nalmTI state before\ntransition into the alm state.\n\nInstances of this object SHOULD persist across agent restarts.")
arcCDTimeInterval = MibScalar((1, 3, 6, 1, 2, 1, 117, 1, 2), Unsigned32()).setMaxAccess("readwrite").setUnits("seconds")
if mibBuilder.loadTexts: arcCDTimeInterval.setDescription("This variable indicates the time interval used for the nalmQICD\nstate, in units of second.  It is a pre-defined length of time\nin which the resource will stay in the nalmQICD state before\ntransition into the alm state after it is problem-free.\n\nInstances of this object SHOULD persist across agent restarts.")
arcObjects = MibIdentifier((1, 3, 6, 1, 2, 1, 117, 2))
arcTable = MibTable((1, 3, 6, 1, 2, 1, 117, 2, 1))
if mibBuilder.loadTexts: arcTable.setDescription("A table of Alarm Reporting Control (ARC) settings on the system.\n\nAlarm Reporting Control is a feature that provides an automatic\nin-service provisioning capability.  Alarm reporting is turned\noff on a per-resource basis for a selective set of potential\nalarm conditions to allow sufficient time for customer testing\nand other maintenance activities in an 'alarm free' state.\nOnce a resource is ready for service, alarm reporting is\nautomatically or manually turned on.\n\nFunctional description and requirements of Alarm Reporting\nControl are defined in ITU-T Recommendation M.3100 Amendment 3\n[M.3100 Amd3].")
arcEntry = MibTableRow((1, 3, 6, 1, 2, 1, 117, 2, 1, 1)).setIndexNames((0, "ARC-MIB", "arcIndex"), (0, "ARC-MIB", "arcAlarmType"), (0, "ARC-MIB", "arcNotificationId"))
if mibBuilder.loadTexts: arcEntry.setDescription("A conceptual row that contains information about an ARC setting\nof a resource in the system.\n\nImplementation need to be aware that if the total size of\narcIndex and arcNotificationId exceeds 114 sub-IDs, then OIDs\nof column instances in this table will have more than 128\nsub-IDs and cannot be access using SNMPv1, SNMPv2c, or snmpv3.")
arcIndex = MibTableColumn((1, 3, 6, 1, 2, 1, 117, 2, 1, 1, 1), ResourceId()).setMaxAccess("noaccess")
if mibBuilder.loadTexts: arcIndex.setDescription("This object uniquely identifies a resource, which is under the\narcState's control for the associated arcAlarmType.\n\nFor example, if the resource is an interface, this object will\npoint to an instance of interface, e.g., ifIndex.1.")
arcAlarmType = MibTableColumn((1, 3, 6, 1, 2, 1, 117, 2, 1, 1, 2), IANAItuProbableCauseOrZero()).setMaxAccess("noaccess")
if mibBuilder.loadTexts: arcAlarmType.setDescription("This object identifies the alarm condition type controlled by the\narcState.  It specifies the value 0 or a value of\nIANAItuProbableCause that is applicable to the resource.\nIANAItuProbableCause is defined in the IANA-ITU-ALARM-TC\nmodule in the Alarm MIB document.\n\n\n\n\nThe value of zero (0) implies any probable causes that are\napplicable to the resource.  Usually, the applicable probable\ncauses of a resource are specified in the resource-specific mib.")
arcNotificationId = MibTableColumn((1, 3, 6, 1, 2, 1, 117, 2, 1, 1, 3), ObjectIdentifier()).setMaxAccess("noaccess")
if mibBuilder.loadTexts: arcNotificationId.setDescription("This object identifies the type of notification to be suppressed.\nThe notification type identified should be the one normally used\nby the resource for reporting its alarms.  When the value of 0.0 is\nspecified for this object, it implies all applicable notification\ntypes.")
arcState = MibTableColumn((1, 3, 6, 1, 2, 1, 117, 2, 1, 1, 4), Integer().subtype(subtypeSpec=SingleValueConstraint(4,3,2,1,)).subtype(namedValues=NamedValues(("nalm", 1), ("nalmQI", 2), ("nalmTI", 3), ("nalmQICD", 4), ))).setMaxAccess("readcreate")
if mibBuilder.loadTexts: arcState.setDescription("Defined in M.3100 Amendment 3 [M.3100 Amd3], there are five\nARC states: alm, nalm, nalmQI, nalmQICD, and nalmTI.\n\n   alm:        Alarm reporting is turned on (i.e., is allowed).\n   nalm:       Alarm reporting is turned off (i.e., not allowed).\n   nalmQI:     nalm - Qualified Inhibit. Alarm reporting is\n               turned off until the managed entity is qualified\n               problem-free for an optional persistence interval.\n               Problem-free means that the condition corresponding\n               to the specified alarm type is cleared.\n   nalmQICD:   nalmQI - Count down.  This is a substate of nalmQI\n               and performs the persistence timing countdown\n               function after the managed entity is qualified\n               problem-free.\n   nalmTI:     nalm - Timed Inhibit.  Alarm reporting is turned\n               off for a specified time interval.\n\nalm may transition to nalm, nalmQI or nalmTI by management request.\n\nnalm may transition to alm, nalmQI or nalmTI by management request.\n\n\n\n\nnalmQI may transition to nalm or alm by management request.\n\nnalmQI may transition to alm automatically\n        if qualified problem-free (if nalmQICD is not supported) or\n        if the CD timer expired (if nalmQICD is supported)\n\nnalmTI may transition to alm or nalm by management request.\n\nnalmTI may transition to alm automatically if the TI timer expired.\n\nFurther details of ARC state transitions are defined in Figure 3\nof M.3100 Amd3 [M.3100 Amd3].\n\nAccording to the requirements in M.3100 Amd3, a resource\nsupporting the ARC feature shall support the alm state and at\nleast one of the nalm, nalmTI, and nalmQI states. The nalmQICD\nstate is an optional substate of nalmQI.\n\nThe arcState object controls the alarm reporting state of a\nresource. Note that the state alm (alarm reporting is allowed) is\nnot listed in the enumeration of the value of this object. However,\nthis state is implicitly supported by the mib.\nOnce a resource enters the normal reporting mode (i.e., in the alm\nstate) for the specified alarm type, the corresponding\nrow will be automatically deleted from the arc table.\nAlso the manual setting of arcState to alm can be achieved through\nsetting the RowStatus object to 'destroy'.\n\nThe nalamQICD state is a transitional state from nalmQI to alm. It\nis optional depending on the resource type and the implementation\nof the resource.  If it is supported, before the state\ntransitions from nalmQI to alm, a count down period is activated\nfor a duration set by the object arcNalmCDTimeInterval.  When the\ntime is up, the arcState transitions to alm.")
arcNalmTimeRemaining = MibTableColumn((1, 3, 6, 1, 2, 1, 117, 2, 1, 1, 5), Unsigned32()).setMaxAccess("readcreate")
if mibBuilder.loadTexts: arcNalmTimeRemaining.setDescription("This variable indicates the time remaining in the nalmTI state\nor the nalmQICD state, in units of second.\n\nAt the moment the resource enters the nalmTI state, this variable\nwill have the initial value equal to the value of\n\n\n\narcNalmTITimeInterval and then starts decrementing as time goes by.\n\nSimilarly at the moment the resource enters the nalmQICD state,\nthis variable will have the initial value equal to the value of\narcNalmCDTimeInterval and then starts decrementing as time goes by.\n\nThis variable is read-create and thus will allow the manager to\nwrite (extend or shorten), as needed, the remaining time when the\nresource is in the nalmTI or nalmQICD state.\n\nIf this variable is supported and the resource is currently not in\nthe nalmTI nor nalmQICD state, the value of this variable shall\nequal to zero.")
arcRowStatus = MibTableColumn((1, 3, 6, 1, 2, 1, 117, 2, 1, 1, 6), RowStatus()).setMaxAccess("readcreate")
if mibBuilder.loadTexts: arcRowStatus.setDescription("This columnar object is used for creating and deleting a conceptual\nrow of the arcTable.  It is used to create and delete an arc\nsetting.\n\nSetting RowStatus to createAndGo or createAndWait implies creating\na new ARC setting for the specified resource and alarm type.\nSetting RowStatus to destroy implies removing the ARC setting and\nthus has the effect of resuming normal reporting behaviour of the\nresource for the alarm type.\n\nOnly the objects arcState, arcNalmTimeRemaining, and arcRowStatus\ncan be updated when a row is active. All the objects, except\narcNalmTimeRemaining, must be set before the row can be activated.")
arcStorageType = MibTableColumn((1, 3, 6, 1, 2, 1, 117, 2, 1, 1, 7), StorageType().clone('nonVolatile')).setMaxAccess("readcreate")
if mibBuilder.loadTexts: arcStorageType.setDescription("The storage type for this conceptual row.\nConceptual rows having the value 'permanent' must\nallow write-access at a minimum to arcState.\nNote that arcState must allow change by management request.\nTherefore, no row can be created with 'readOnly'.\nIf a set operation tries to set the value to 'readOnly',\nthen an 'inconsistentValue' error must be returned.")
arcConformance = MibIdentifier((1, 3, 6, 1, 2, 1, 117, 3))
arcCompliances = MibIdentifier((1, 3, 6, 1, 2, 1, 117, 3, 1))
arcGroups = MibIdentifier((1, 3, 6, 1, 2, 1, 117, 3, 2))

# Augmentions

# Groups

arcSettingGroup = ObjectGroup((1, 3, 6, 1, 2, 1, 117, 3, 2, 1)).setObjects(*(("ARC-MIB", "arcStorageType"), ("ARC-MIB", "arcRowStatus"), ("ARC-MIB", "arcState"), ) )
if mibBuilder.loadTexts: arcSettingGroup.setDescription("A collection of objects applicable to\nbasic ARC setting.")
arcTIGroup = ObjectGroup((1, 3, 6, 1, 2, 1, 117, 3, 2, 2)).setObjects(*(("ARC-MIB", "arcTITimeInterval"), ("ARC-MIB", "arcNalmTimeRemaining"), ) )
if mibBuilder.loadTexts: arcTIGroup.setDescription("A collection of objects applicable to\nARC setting that support the Time Inhibit (TI)\nfunction.")
arcQICDGroup = ObjectGroup((1, 3, 6, 1, 2, 1, 117, 3, 2, 3)).setObjects(*(("ARC-MIB", "arcCDTimeInterval"), ("ARC-MIB", "arcNalmTimeRemaining"), ) )
if mibBuilder.loadTexts: arcQICDGroup.setDescription("A collection of objects applicable to\nARC setting that support the Quality Inhibit (QI)\nCount Down (CD) function.")

# Compliances

arcCompliance = ModuleCompliance((1, 3, 6, 1, 2, 1, 117, 3, 1, 1)).setObjects(*(("ARC-MIB", "arcTIGroup"), ("ARC-MIB", "arcSettingGroup"), ("ARC-MIB", "arcQICDGroup"), ) )
if mibBuilder.loadTexts: arcCompliance.setDescription("The compliance statement for systems supporting\nthe ARC MIB module.")

# Exports

# Module identity
mibBuilder.exportSymbols("ARC-MIB", PYSNMP_MODULE_ID=arcMibModule)

# Types
mibBuilder.exportSymbols("ARC-MIB", IANAItuProbableCauseOrZero=IANAItuProbableCauseOrZero)

# Objects
mibBuilder.exportSymbols("ARC-MIB", arcMibModule=arcMibModule, arcTimeIntervals=arcTimeIntervals, arcTITimeInterval=arcTITimeInterval, arcCDTimeInterval=arcCDTimeInterval, arcObjects=arcObjects, arcTable=arcTable, arcEntry=arcEntry, arcIndex=arcIndex, arcAlarmType=arcAlarmType, arcNotificationId=arcNotificationId, arcState=arcState, arcNalmTimeRemaining=arcNalmTimeRemaining, arcRowStatus=arcRowStatus, arcStorageType=arcStorageType, arcConformance=arcConformance, arcCompliances=arcCompliances, arcGroups=arcGroups)

# Groups
mibBuilder.exportSymbols("ARC-MIB", arcSettingGroup=arcSettingGroup, arcTIGroup=arcTIGroup, arcQICDGroup=arcQICDGroup)

# Compliances
mibBuilder.exportSymbols("ARC-MIB", arcCompliance=arcCompliance)
