/*
Package device is a generated package which contains definitions
of structs which generate gNMI paths for a YANG schema. The generated paths are
based on a compressed form of the schema.

This package was generated by pathgen-tests
using the following YANG input files:
	- ../testdata/modules/openconfig-import.yang
Imported modules were sourced from:
*/
package device

import (
	"github.com/openconfig/ygot/ygot"
	"example.com/openconfigimportpath"
	"example.com/openconfigsimpletargetpath"
)

// DevicePath represents the /device YANG schema element.
type DevicePath struct {
	*ygot.DeviceRootBase
}

// DeviceRoot returns a new path object from which YANG paths can be constructed.
func DeviceRoot(id string) *DevicePath {
	return &DevicePath{ygot.NewDeviceRootBase(id)}
}

// Child (container): 
// ----------------------------------------
// Defining module: "openconfig-import"
// Instantiating module: "openconfig-import"
// Path from parent: "child"
// Path from root: "/child"
func (n *DevicePath) Child() *openconfigimportpath.ChildPath {
	return &openconfigimportpath.ChildPath{
		NodePath: ygot.NewNodePath(
			[]string{"child"},
			map[string]interface{}{},
			n,
		),
	}
}

// Native (container): 
// ----------------------------------------
// Defining module: "openconfig-simple-target"
// Instantiating module: "openconfig-simple-target"
// Path from parent: "native"
// Path from root: "/native"
func (n *DevicePath) Native() *openconfigsimpletargetpath.NativePath {
	return &openconfigsimpletargetpath.NativePath{
		NodePath: ygot.NewNodePath(
			[]string{"native"},
			map[string]interface{}{},
			n,
		),
	}
}

// Target (container): 
// ----------------------------------------
// Defining module: "openconfig-simple-target"
// Instantiating module: "openconfig-simple-target"
// Path from parent: "target"
// Path from root: "/target"
func (n *DevicePath) Target() *openconfigsimpletargetpath.TargetPath {
	return &openconfigsimpletargetpath.TargetPath{
		NodePath: ygot.NewNodePath(
			[]string{"target"},
			map[string]interface{}{},
			n,
		),
	}
}
