/*
Package simplepath 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-simple.yang
Imported modules were sourced from:
*/
package simplepath

import (
	"github.com/openconfig/ygot/ygot"
)

// ParentPath represents the /openconfig-simple/parent YANG schema element.
type ParentPath struct {
	*ygot.NodePath
}

// ParentPathAny represents the wildcard version of the /openconfig-simple/parent YANG schema element.
type ParentPathAny struct {
	*ygot.NodePath
}

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

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

// Parent_ChildPath represents the /openconfig-simple/parent/child YANG schema element.
type Parent_ChildPath struct {
	*ygot.NodePath
}

// Parent_ChildPathAny represents the wildcard version of the /openconfig-simple/parent/child YANG schema element.
type Parent_ChildPathAny struct {
	*ygot.NodePath
}

// Parent_Child_FourPath represents the /openconfig-simple/parent/child/state/four YANG schema element.
type Parent_Child_FourPath struct {
	*ygot.NodePath
}

// Parent_Child_FourPathAny represents the wildcard version of the /openconfig-simple/parent/child/state/four YANG schema element.
type Parent_Child_FourPathAny struct {
	*ygot.NodePath
}

// Parent_Child_OnePath represents the /openconfig-simple/parent/child/state/one YANG schema element.
type Parent_Child_OnePath struct {
	*ygot.NodePath
}

// Parent_Child_OnePathAny represents the wildcard version of the /openconfig-simple/parent/child/state/one YANG schema element.
type Parent_Child_OnePathAny struct {
	*ygot.NodePath
}

// Parent_Child_ThreePath represents the /openconfig-simple/parent/child/state/three YANG schema element.
type Parent_Child_ThreePath struct {
	*ygot.NodePath
}

// Parent_Child_ThreePathAny represents the wildcard version of the /openconfig-simple/parent/child/state/three YANG schema element.
type Parent_Child_ThreePathAny struct {
	*ygot.NodePath
}

// Parent_Child_TwoPath represents the /openconfig-simple/parent/child/state/two YANG schema element.
type Parent_Child_TwoPath struct {
	*ygot.NodePath
}

// Parent_Child_TwoPathAny represents the wildcard version of the /openconfig-simple/parent/child/state/two YANG schema element.
type Parent_Child_TwoPathAny struct {
	*ygot.NodePath
}

// Four (leaf): 
// ----------------------------------------
// Defining module: "openconfig-simple"
// Instantiating module: "openconfig-simple"
// Path from parent: "state/four"
// Path from root: "/parent/child/state/four"
func (n *Parent_ChildPath) Four() *Parent_Child_FourPath {
	return &Parent_Child_FourPath{
		NodePath: ygot.NewNodePath(
			[]string{"state", "four"},
			map[string]interface{}{},
			n,
		),
	}
}

// Four (leaf): 
// ----------------------------------------
// Defining module: "openconfig-simple"
// Instantiating module: "openconfig-simple"
// Path from parent: "state/four"
// Path from root: "/parent/child/state/four"
func (n *Parent_ChildPathAny) Four() *Parent_Child_FourPathAny {
	return &Parent_Child_FourPathAny{
		NodePath: ygot.NewNodePath(
			[]string{"state", "four"},
			map[string]interface{}{},
			n,
		),
	}
}

// One (leaf): 
// ----------------------------------------
// Defining module: "openconfig-simple"
// Instantiating module: "openconfig-simple"
// Path from parent: "state/one"
// Path from root: "/parent/child/state/one"
func (n *Parent_ChildPath) One() *Parent_Child_OnePath {
	return &Parent_Child_OnePath{
		NodePath: ygot.NewNodePath(
			[]string{"state", "one"},
			map[string]interface{}{},
			n,
		),
	}
}

// One (leaf): 
// ----------------------------------------
// Defining module: "openconfig-simple"
// Instantiating module: "openconfig-simple"
// Path from parent: "state/one"
// Path from root: "/parent/child/state/one"
func (n *Parent_ChildPathAny) One() *Parent_Child_OnePathAny {
	return &Parent_Child_OnePathAny{
		NodePath: ygot.NewNodePath(
			[]string{"state", "one"},
			map[string]interface{}{},
			n,
		),
	}
}

// Three (leaf): 
// ----------------------------------------
// Defining module: "openconfig-simple"
// Instantiating module: "openconfig-simple"
// Path from parent: "state/three"
// Path from root: "/parent/child/state/three"
func (n *Parent_ChildPath) Three() *Parent_Child_ThreePath {
	return &Parent_Child_ThreePath{
		NodePath: ygot.NewNodePath(
			[]string{"state", "three"},
			map[string]interface{}{},
			n,
		),
	}
}

// Three (leaf): 
// ----------------------------------------
// Defining module: "openconfig-simple"
// Instantiating module: "openconfig-simple"
// Path from parent: "state/three"
// Path from root: "/parent/child/state/three"
func (n *Parent_ChildPathAny) Three() *Parent_Child_ThreePathAny {
	return &Parent_Child_ThreePathAny{
		NodePath: ygot.NewNodePath(
			[]string{"state", "three"},
			map[string]interface{}{},
			n,
		),
	}
}

// Two (leaf): 
// ----------------------------------------
// Defining module: "openconfig-simple"
// Instantiating module: "openconfig-simple"
// Path from parent: "state/two"
// Path from root: "/parent/child/state/two"
func (n *Parent_ChildPath) Two() *Parent_Child_TwoPath {
	return &Parent_Child_TwoPath{
		NodePath: ygot.NewNodePath(
			[]string{"state", "two"},
			map[string]interface{}{},
			n,
		),
	}
}

// Two (leaf): 
// ----------------------------------------
// Defining module: "openconfig-simple"
// Instantiating module: "openconfig-simple"
// Path from parent: "state/two"
// Path from root: "/parent/child/state/two"
func (n *Parent_ChildPathAny) Two() *Parent_Child_TwoPathAny {
	return &Parent_Child_TwoPathAny{
		NodePath: ygot.NewNodePath(
			[]string{"state", "two"},
			map[string]interface{}{},
			n,
		),
	}
}

// RemoteContainerPath represents the /openconfig-simple/remote-container YANG schema element.
type RemoteContainerPath struct {
	*ygot.NodePath
}

// RemoteContainerPathAny represents the wildcard version of the /openconfig-simple/remote-container YANG schema element.
type RemoteContainerPathAny struct {
	*ygot.NodePath
}

// RemoteContainer_ALeafPath represents the /openconfig-simple/remote-container/state/a-leaf YANG schema element.
type RemoteContainer_ALeafPath struct {
	*ygot.NodePath
}

// RemoteContainer_ALeafPathAny represents the wildcard version of the /openconfig-simple/remote-container/state/a-leaf YANG schema element.
type RemoteContainer_ALeafPathAny struct {
	*ygot.NodePath
}

// ALeaf (leaf): 
// ----------------------------------------
// Defining module: "openconfig-remote"
// Instantiating module: "openconfig-simple"
// Path from parent: "state/a-leaf"
// Path from root: "/remote-container/state/a-leaf"
func (n *RemoteContainerPath) ALeaf() *RemoteContainer_ALeafPath {
	return &RemoteContainer_ALeafPath{
		NodePath: ygot.NewNodePath(
			[]string{"state", "a-leaf"},
			map[string]interface{}{},
			n,
		),
	}
}

// ALeaf (leaf): 
// ----------------------------------------
// Defining module: "openconfig-remote"
// Instantiating module: "openconfig-simple"
// Path from parent: "state/a-leaf"
// Path from root: "/remote-container/state/a-leaf"
func (n *RemoteContainerPathAny) ALeaf() *RemoteContainer_ALeafPathAny {
	return &RemoteContainer_ALeafPathAny{
		NodePath: ygot.NewNodePath(
			[]string{"state", "a-leaf"},
			map[string]interface{}{},
			n,
		),
	}
}
