func (c *CredentialV1) Name() string {
	return c.Body.Name
}
Name returns this Credential's name.
package envelope
import (
	"fmt"
	"github.com/manifoldco/go-base64"
	"github.com/manifoldco/torus-cli/identity"
	"github.com/manifoldco/torus-cli/pathexp"
	"github.com/manifoldco/torus-cli/primitive"
)
type Envelope interface {
	GetID() *identity.ID  
}
type Signed struct {
	ID        *identity.ID        `json:"id"`
	Version   uint8               `json:"version"`
	Body      identity.Immutable  `json:"body"`
	Signature primitive.Signature `json:"sig"`
}
func (e *Signed) GetID() *identity.ID {
	return e.ID
}
type Unsigned struct {
	ID      *identity.ID     `json:"id"`
	Version uint8            `json:"version"`
	Body    identity.Mutable `json:"body"`
}
func (e *Unsigned) GetID() *identity.ID {
	return e.ID
}
func (e *Unsigned) GetVersion() uint8 {
	return e.Version
}
type UserInf interface {
	Envelope
	StructVersion() uint8
	Username() string
	Name() string
	Email() string
	Password() *primitive.UserPassword
	Master() *primitive.MasterKey
	State() string
}
func (u *UserV1) StructVersion() uint8 {
	return u.Version
}
func (u *UserV1) Username() string {
	return u.Body.Username
}
func (u *UserV1) Name() string {
	return u.Body.Name
}
func (u *UserV1) Email() string {
	return u.Body.Email
}
func (u *UserV1) Password() *primitive.UserPassword {
	return u.Body.Password
}
func (u *UserV1) Master() *primitive.MasterKey {
	return u.Body.Master
}
func (u *UserV1) State() string {
	return u.Body.State
}
func (u *User) StructVersion() uint8 {
	return u.Version
}
func (u *User) Username() string {
	return u.Body.Username
}
func (u *User) Name() string {
	return u.Body.Name
}
func (u *User) Email() string {
	return u.Body.Email
}
func (u *User) Password() *primitive.UserPassword {
	return u.Body.Password
}
func (u *User) Master() *primitive.MasterKey {
	return u.Body.Master
}
func (u *User) State() string {
	return u.Body.State
}
func ConvertUser(e *Unsigned) (UserInf, error) {
	var user UserInf
	switch e.Version {
	case 1:
		user = &UserV1{
			ID:      e.ID,
			Version: e.Version,
			Body:    e.Body.(*primitive.UserV1),
		}
	case 2:
		user = &User{
			ID:      e.ID,
			Version: e.Version,
			Body:    e.Body.(*primitive.User),
		}
	default:
		return nil, fmt.Errorf("Unknown User Schema Version: %d", e.Version)
	}
	return user, nil
}
type KeyringInf interface {
	Envelope
	PathExp() *pathexp.PathExp
	OrgID() *identity.ID
	GetVersion() uint8  
}
func (k *KeyringV1) GetVersion() uint8 {
	return k.Version
}
func (k *KeyringV1) OrgID() *identity.ID {
	return k.Body.OrgID
}
func (k *KeyringV1) PathExp() *pathexp.PathExp {
	return k.Body.PathExp
}
func (k *Keyring) GetVersion() uint8 {
	return k.Version
}
func (k *Keyring) OrgID() *identity.ID {
	return k.Body.OrgID
}
func (k *Keyring) PathExp() *pathexp.PathExp {
	return k.Body.PathExp
}
type CredentialInf interface {
	Envelope
	GetVersion() uint8  
	Previous() *identity.ID
	CredentialVersion() int
	PathExp() *pathexp.PathExp
	Name() string
	Unset() bool
	Nonce() *base64.Value
	Credential() *primitive.CredentialValue
	OrgID() *identity.ID
	ProjectID() *identity.ID
}
func (c *CredentialV1) GetVersion() uint8 {
	return c.Version
}
func (c *CredentialV1) Previous() *identity.ID {
	return c.Body.Previous
}
func (c *CredentialV1) CredentialVersion() int {
	return c.Body.CredentialVersion
}
func (c *CredentialV1) PathExp() *pathexp.PathExp {
	return c.Body.PathExp
}