-- =================================================================
-- Copyright (c) 2004-2022 New H3C Tech. Co., Ltd. All rights reserved.
--
-- Description: GRPC mib
-- Reference:
-- Version: V1.0
-- History:
--  V1.0 Created by xiexiang
--      Initial version 2022-12-22
-- =================================================================
HH3C-GRPC-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
    Integer32
        FROM SNMPv2-SMI
    DisplayString
        FROM SNMPv2-TC
    InetAddressType, InetAddress
        FROM INET-ADDRESS-MIB
    hh3cCommon
        FROM HH3C-OID-MIB;

hh3cGrpc MODULE-IDENTITY
    LAST-UPDATED "202212220000Z"
    ORGANIZATION
        "New H3C Tech. Co., Ltd."
    CONTACT-INFO
        "Platform Team New H3C Tech. Co., Ltd.
        Hai-Dian District Beijing P.R. China
        http://www.h3c.com
        Zip:100085"
    DESCRIPTION
        "The MIB module is used for GRPC connection notification."
    REVISION    "202212220000Z"
    DESCRIPTION    "The initial version."
    ::= { hh3cCommon 259 }

-- ==================================================================
--
-- GRPC trap object
--
-- ==================================================================
hh3cGrpcObjects OBJECT IDENTIFIER ::= { hh3cGrpc 1 }

hh3cGrpcConnObjects OBJECT IDENTIFIER ::= { hh3cGrpcObjects 1 }

hh3cGrpcUserName OBJECT-TYPE
    SYNTAX       DisplayString (SIZE(1..80))
    MAX-ACCESS   accessible-for-notify
    STATUS   current
    DESCRIPTION
    "The name of an GRPC user."
    ::= { hh3cGrpcConnObjects 1 }

hh3cGrpcUserIPAddressType OBJECT-TYPE
    SYNTAX       InetAddressType
    MAX-ACCESS   accessible-for-notify
    STATUS   current
    DESCRIPTION
    "The IP address type of the GRPC user."
    ::= { hh3cGrpcConnObjects 2 }

hh3cGrpcUserIPAddress OBJECT-TYPE
    SYNTAX       InetAddress
    MAX-ACCESS   accessible-for-notify
    STATUS   current
    DESCRIPTION
    "The IP address of the GRPC user."
    ::= { hh3cGrpcConnObjects 3 }

hh3cGrpcSessionId OBJECT-TYPE
    SYNTAX       Integer32(1..2147483647)
    MAX-ACCESS   accessible-for-notify
    STATUS   current
    DESCRIPTION
    "ID of a GRPC session."
    ::= { hh3cGrpcConnObjects 4 }

hh3cGrpcTrapDescription OBJECT-TYPE
    SYNTAX       DisplayString (SIZE(1..80))
    MAX-ACCESS   accessible-for-notify
    STATUS   current
    DESCRIPTION
    "The description of the GRPC trap."
    ::= { hh3cGrpcConnObjects 5 }

hh3cGrpcEventName OBJECT-TYPE
    SYNTAX       DisplayString (SIZE(1..80))
    MAX-ACCESS   accessible-for-notify
    STATUS   current
    DESCRIPTION
    "The name of an GRPC event."
    ::= { hh3cGrpcConnObjects 6 }

hh3cGrpcModuleName OBJECT-TYPE
    SYNTAX       DisplayString (SIZE(1..80))
    MAX-ACCESS   accessible-for-notify
    STATUS   current
    DESCRIPTION
    "The name of a GRPC module."
    ::= { hh3cGrpcConnObjects 7 }

hh3cGrpcTrap OBJECT IDENTIFIER ::= { hh3cGrpc 2 }

hh3cGrpcConnTrapPrefix OBJECT IDENTIFIER ::= { hh3cGrpcTrap 0 }

hh3cGrpcLogin NOTIFICATION-TYPE
    OBJECTS {
            hh3cGrpcUserName,
            hh3cGrpcUserIPAddressType,
            hh3cGrpcUserIPAddress,
            hh3cGrpcSessionId
        }
    STATUS  current
    DESCRIPTION
        "This notification is generated when a user logs in successfully through GRPC."
::= { hh3cGrpcConnTrapPrefix 1 }

hh3cGrpcLoginFailure NOTIFICATION-TYPE
    OBJECTS {
            hh3cGrpcUserName,
            hh3cGrpcUserIPAddressType,
            hh3cGrpcUserIPAddress
        }
    STATUS  current
    DESCRIPTION
        "This notification is generated when a user fails to log in through GRPC."
::= { hh3cGrpcConnTrapPrefix 2 }

hh3cGrpcLogout NOTIFICATION-TYPE
    OBJECTS {
            hh3cGrpcUserName,
            hh3cGrpcSessionId
        }
    STATUS  current
    DESCRIPTION
        "This notification is generated when a user logs out successfully through GRPC."
::= { hh3cGrpcConnTrapPrefix 3 }

hh3cGrpcServerFailure NOTIFICATION-TYPE
    OBJECTS {
            hh3cGrpcTrapDescription
        }
    STATUS  current
    DESCRIPTION
        "This notification is generated when the GRPC server fails to enable ."
::= { hh3cGrpcConnTrapPrefix 4 }

hh3cGrpcServiceStop NOTIFICATION-TYPE
    OBJECTS {
            hh3cGrpcTrapDescription
        }
    STATUS  current
    DESCRIPTION
        "This notification is generated when the CPU usage threshold has been exceeded."
::= { hh3cGrpcConnTrapPrefix 5 }

hh3cGrpcServiceRecover NOTIFICATION-TYPE
    OBJECTS {
            hh3cGrpcTrapDescription
        }
    STATUS  current
    DESCRIPTION
        "This notification is generated when the GRPC service recovered."
::= { hh3cGrpcConnTrapPrefix 6 }

hh3cGrpcSubscribeEventFailure NOTIFICATION-TYPE
    OBJECTS {
            hh3cGrpcEventName
        }
    STATUS  current
    DESCRIPTION
        "This notification is generated when the GRPC subscribes event unsuccessfully."
::= { hh3cGrpcConnTrapPrefix 7 }

hh3cGrpcReceiveSubscription NOTIFICATION-TYPE
    OBJECTS {
            hh3cGrpcModuleName
        }
    STATUS  current
    DESCRIPTION
        "This notification is generated when the GRPC subscription is received."
::= { hh3cGrpcConnTrapPrefix 8 }
END
