/*
 * Copyright (c) 2013 Pantheon Technologies s.r.o. and others. All rights reserved.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
 * and is available at http://www.eclipse.org/legal/epl-v10.html
 */

 module system-notifications {
    namespace "urn:opendaylight:openflow:system";
    prefix "ofs";

    import ietf-yang-types {prefix yang; revision-date "2013-07-15";}

    revision "2013-09-27" {
        description "#NOT_PUBLISHED# Model of system messages used in OpenFlow Protocol Library";
    }

    grouping x500-principal {
        leaf country {
           type string;
        }
        leaf state {
           type string;
        }
        leaf locality {
           type string;
        }
        leaf organization {
           type string;
        }
        leaf organization-unit {
           type string;
        }
        leaf common-name {
           type string;
        }
    }
    grouping switch-certificate {
        container subject {
            uses x500-principal;
        }
        container issuer {
            uses x500-principal;
        }
        leaf valid-from {
            type yang:date-and-time;
        }
        leaf valid-to {
            type yang:date-and-time;
        }
        leaf serial-number {
            type string {
                pattern "0|(-?[1-9][0-9]*)";
            }
        }
        leaf-list subject-alternate-names {
            type string;
            ordered-by user;
        }
    }

    notification disconnect-event {
        description "Disconnect notification";
        leaf info {
            type string;
        }
    }

    notification switch-idle-event {
        description "Switch-idle notification";
        leaf info {
            type string;
        }
    }

    notification ssl-connection-error {
        description "Switch ssl connection error notification.";
        leaf info {
            type string;
        }
        container switch-certificate{
            uses switch-certificate;
        }
    }


}