module flow-capable-transaction {
    namespace "urn:opendaylight:flow:transaction";
    prefix type;

    import opendaylight-inventory {prefix inv; revision-date "2013-08-19";}
    import ietf-inet-types {prefix inet; revision-date "2013-07-15";}
    import yang-ext {prefix ext; revision-date "2013-07-09";}

    revision "2015-03-04" {
        description "Transaction support for openflow, contains:
         - barrier rpc
         - tentative transaction support structures";
    }

    typedef transaction-id {
        type uint64;
    }
    grouping transaction-metadata {
      description "Refers to MD-SAL transaction reference.";
        leaf transaction-uri {
            type inet:uri;
        }
    }

    grouping transaction-aware {
        status deprecated;

        leaf transaction-id {
            type transaction-id;
        }
    }

    grouping multipart-transaction-aware {
        status deprecated;

        uses transaction-aware;

        leaf moreReplies {
            type boolean;
            default false;
        }
    }

    rpc send-barrier {
        description "barrier request";
        input {
            leaf node {
                ext:context-reference "inv:node-context";
                type inv:node-ref;
            }
        }
    }
}