module odl-srm-types {
    namespace "urn:opendaylight:serviceutils:srm:types";
    prefix "srmtypes";

    revision "2018-06-26" {
        description "ODL Services Recovery Manager Types Module";
    }

    /* Entity TYPEs */

    identity entity-type-base {
        description "Base identity for all srm entity types";
    }
    identity entity-type-service {
        description "SRM Entity type service";
        base entity-type-base;
    }
    identity entity-type-instance {
        description "SRM Entity type instance";
        base entity-type-base;
    }


    /* Entity NAMEs */

    /* Entity Type SERVICE names */
    identity entity-name-base {
        description "Base identity for all srm entity names";
    }
    identity genius-ifm {
        description "SRM Entity name for IFM service";
        base entity-name-base;
    }
    identity genius-itm {
        description "SRM Entity name for ITM service";
        base entity-name-base;
    }
    identity netvirt-vpn {
        description "SRM Entity name for VPN service";
        base entity-name-base;
    }
    identity netvirt-elan {
        description "SRM Entity name for elan service";
        base entity-name-base;
    }
    identity netvirt-l2gw {
        description "SRM Entity name for l2gw service";
        base entity-name-base;
    }
    identity netvirt-dhcp {
        description "SRM Entity name for dhcp service";
        base entity-name-base;
    }
    identity netvirt-acl {
        description "SRM Entity name for ACL service";
        base entity-name-base;
    }
    identity ofplugin {
        description "SRM Entity name for openflowplugin service";
        base entity-name-base;
    }
    identity netvirt-qos {
        description "SRM Entity name for QoS service";
        base entity-name-base;
    }


    /* Entity Type INSTANCE Names */

    /* Entity names supported by GENIUS */
    identity genius-itm-tep {
        description "SRM Entity name for ITM's tep instance";
        base entity-name-base;
    }
    identity genius-itm-tz {
        description "SRM Entity name for ITM's transportzone instance";
        base entity-name-base;
    }

    identity genius-ifm-interface {
        description "SRM Entity name for IFM's interface instance";
        base entity-name-base;
    }

    /* Entity names supported by NETVIRT */
    identity netvirt-vpn-instance {
        description "SRM Entity name for VPN instance";
        base entity-name-base;
    }

    identity netvirt-elan-interface {
        description "SRM Entity name for ELAN interface";
        base entity-name-base;
    }

    identity netvirt-l2gw-connection {
        description "SRM Entity name for l2gw connection";
        base entity-name-base;
    }

    identity netvirt-l2gw-node {
        description "SRM Entity name for l2gw device name";
        base entity-name-base;
    }

    identity netvirt-qos-policy-instance {
        description "SRM Entity name for QoS Policy instance";
        base entity-name-base;
    }

    identity netvirt-acl-interface {
        description "SRM Entity name for ACL interface";
        base entity-name-base;
    }

    identity netvirt-acl-instance {
        description "SRM Entity name for ACL instance";
         base entity-name-base;
    }

    /* Service operations */
    identity service-op-base {
        description "Base identity for all srm operations";
    }
    identity service-op-reinstall {
        description "Reinstall a service";
        base service-op-base;
    }
    identity service-op-recover {
        description "Recover a service or instance";
        base service-op-base;
    }

}