func (r *Root) ChildSchemas() []*plugin.EntrySchema {
	return []*plugin.EntrySchema{
		(&profile{}).Schema(),
	}
}
ChildSchemas returns the root's child schema
package aws
import (
	"context"
	"fmt"
	"os"
	"path/filepath"
	"strings"
	"time"
	"github.com/puppetlabs/wash/activity"
	"github.com/puppetlabs/wash/plugin"
	"gopkg.in/go-ini/ini.v1"
)
type Root struct {
	plugin.EntryBase
	profs map[string]struct{}
}
func awsCredentialsFile() (string, error) {
	if filename := os.Getenv("AWS_SHARED_CREDENTIALS_FILE"); len(filename) != 0 {
		return filename, nil
	}
	homedir, err := os.UserHomeDir()
	if err != nil {
		return "", fmt.Errorf("could not determine the location of the AWS credentials file: %v", err)
	}
	return filepath.Join(homedir, ".aws", "credentials"), nil
}
func awsConfigFile() (string, error) {
	if filename := os.Getenv("AWS_CONFIG_FILE"); len(filename) != 0 {
		return filename, nil
	}
	homedir, err := os.UserHomeDir()
	if err != nil {
		return "", fmt.Errorf("could not determine the location of the AWS config file: %v", err)
	}
	return filepath.Join(homedir, ".aws", "config"), nil
}
func exists(path string) (bool, error) {
	if _, err := os.Stat(path); err != nil {
		if os.IsNotExist(err) {
			return false, nil
		}
		return false, err
	}
	return true, nil
}
func (r *Root) Init(cfg map[string]interface{}) error {
	r.EntryBase = plugin.NewEntry("aws")
	r.SetTTLOf(plugin.ListOp, 1*time.Minute)
	if profsI, ok := cfg["profiles"]; ok {
		profs, ok := profsI.([]interface{})
		if !ok {
			return fmt.Errorf("aws.profiles config must be an array of strings, not %s", profsI)
		}
		r.profs = make(map[string]struct{})
		for _, elem := range profs {
			prof, ok := elem.(string)
			if !ok {
				return fmt.Errorf("aws.profiles config must be an array of strings, not %s", profs)
			}
			r.profs[prof] = struct{}{}
		}
	}
	_, err := r.List(context.Background())
	return err
}