func (m *Metadata) List(opts MetadataOpts) (*api.MetadataResponse, error) {
	if opts.Limit == 0 {
		opts.Limit = 100
	}
	var params = map[string]string{}
	params["limit"] = fmt.Sprintf("%d", opts.Limit)
	params["offset"] = fmt.Sprintf("%d", opts.Offset)
	resp, err := m.c.DoRequest(http.MethodGet, metadataBasePath, params, nil)
	if resp != nil {
		defer resp.Body.Close()
	}
	if err != nil {
		return nil, fmt.Errorf("Error while trying to get roles: %v", err)
	}
	if resp.StatusCode == http.StatusBadRequest {
		return nil, utils.ParseAPIError(resp.Body)
	}
	if resp.StatusCode != http.StatusOK {
		return nil, fmt.Errorf("Error while trying to GET metadata. Got HTTP status code %d", resp.StatusCode)
	}
	var metadataResp = &api.MetadataResponse{}
	err = parseResponse(resp.Body, metadataResp)
	if err != nil {
		return nil, err
	}
	return metadataResp, nil
}
List returns a MetadataResponse which is a wrapper containing pagination data and an array of metadata objects
package cerberus
import (
	"fmt"
	"net/http"
	"github.com/Nike-Inc/cerberus-go-client/api"
	"github.com/Nike-Inc/cerberus-go-client/utils"
)
type Metadata struct {
	c *Client
}
type MetadataOpts struct {
	Limit  uint
	Offset uint
}
var metadataBasePath = "/v1/metadata"