func ListReferencedSecureBoots(c common.Client, link string) ([]*SecureBoot, error) {  
	var result []*SecureBoot
	if link == "" {
		return result, nil
	}
	links, err := common.GetCollection(c, link)
	if err != nil {
		return result, err
	}
	collectionError := common.NewCollectionError()
	for _, securebootLink := range links.ItemLinks {
		secureboot, err := GetSecureBoot(c, securebootLink)
		if err != nil {
			collectionError.Failures[securebootLink] = err
		} else {
			result = append(result, secureboot)
		}
	}
	if collectionError.Empty() {
		return result, nil
	}
	return result, collectionError
}
ListReferencedSecureBoots gets the collection of SecureBoot from
a provided reference.
package redfish
import (
	"encoding/json"
	"reflect"
	"github.com/stmcginnis/gofish/common"
)
type ResetKeysType string
const (
	ResetAllKeysToDefaultResetKeysType ResetKeysType = "ResetAllKeysToDefault"
	DeleteAllKeysResetKeysType ResetKeysType = "DeleteAllKeys"
	DeletePKResetKeysType ResetKeysType = "DeletePK"
)
type SecureBootCurrentBootType string
const (
	EnabledSecureBootCurrentBootType SecureBootCurrentBootType = "Enabled"
	DisabledSecureBootCurrentBootType SecureBootCurrentBootType = "Disabled"
)
type SecureBootModeType string
const (
	SetupModeSecureBootModeType SecureBootModeType = "SetupMode"
	UserModeSecureBootModeType SecureBootModeType = "UserMode"
	AuditModeSecureBootModeType SecureBootModeType = "AuditMode"
	DeployedModeSecureBootModeType SecureBootModeType = "DeployedMode"
)
type SecureBoot struct {
	common.Entity
	ODataContext string `json:"@odata.context"`
	ODataType string `json:"@odata.type"`
	Description string
	SecureBootCurrentBoot SecureBootCurrentBootType
	SecureBootEnable bool
	SecureBootMode SecureBootModeType
	resetKeysTarget string
	rawData []byte
}
func (secureboot *SecureBoot) UnmarshalJSON(b []byte) error {
	type temp SecureBoot
	type actions struct {
		ResetKeys struct {
			Target string
		} `json:"#SecureBoot.ResetKeys"`
	}
	var t struct {
		temp
		Actions actions
	}
	err := json.Unmarshal(b, &t)
	if err != nil {
		return err
	}
	*secureboot = SecureBoot(t.temp)
	secureboot.resetKeysTarget = t.Actions.ResetKeys.Target
	secureboot.rawData = b
	return nil
}
func (secureboot *SecureBoot) Update() error {
	original := new(SecureBoot)
	err := original.UnmarshalJSON(secureboot.rawData)
	if err != nil {
		return err
	}
	readWriteFields := []string{
		"SecureBootEnable",
	}
	originalElement := reflect.ValueOf(original).Elem()
	currentElement := reflect.ValueOf(secureboot).Elem()
	return secureboot.Entity.Update(originalElement, currentElement, readWriteFields)
}
func GetSecureBoot(c common.Client, uri string) (*SecureBoot, error) {
	resp, err := c.Get(uri)
	if err != nil {
		return nil, err
	}
	defer resp.Body.Close()
	var secureboot SecureBoot
	err = json.NewDecoder(resp.Body).Decode(&secureboot)
	if err != nil {
		return nil, err
	}
	secureboot.SetClient(c)
	return &secureboot, nil
}