module openconfig-platform-linecard {

  yang-version "1";

  // namespace
  namespace "http://openconfig.net/yang/platform/linecard";

  prefix "oc-linecard";

  import openconfig-platform { prefix oc-platform; }
  import openconfig-platform-types { prefix oc-platform-types; }
  import openconfig-extensions { prefix oc-ext; }


  // meta
  organization "OpenConfig working group";

  contact
    "OpenConfig working group
    www.openconfig.net";

  description
    "This module defines data related to LINECARD components in the openconfig-platform model";

  oc-ext:openconfig-version "0.1.0";

  revision "2017-08-03" {
    description
      "Initial revision";
    reference "0.1.0";
  }

  // extension statements

  // feature statements

  // identity statements

  // typedef statements

  // grouping statements

  grouping linecard-config {
    description
      "Configuration data for linecard components";

    leaf power {
      type oc-platform-types:component-power-type;
      default POWER_ENABLED;
      description
        "Enable or disable power to the linecard";
    }
  }

  grouping linecard-state {
    description
      "Operational state data for linecard components";

    leaf slot-id {
      type string;
      description
        "Identifier for the slot or chassis position in which the
        linecard is installed";
    }
  }

  grouping linecard-top {
    description
      "Top-level grouping for linecard data";

    container linecard {
      description
        "Top-level container for linecard data";

      container config {
        description
          "Configuration data for linecards";

        uses linecard-config;
      }

      container state {

        config false;

        description
          "Operational state data for linecards";

        uses linecard-config;
        uses linecard-state;
      }
    }
  }

  // data definition statements

  // augment statements

  augment "/oc-platform:components/oc-platform:component" {
    description
      "Adding linecard data to physical inventory";

    uses linecard-top {
      when "current()/oc-platform:state/" +
        "oc-platform:type = 'LINECARD'" {
        description
          "Augment is active when component is of type LINECARD";
      }
    }
  }

  // rpc statements

  // notification statements

}

