Skip to main content

Secure Share | Golang SDK

Folder

func (f *FilterList) Folder() *pangea.FilterMatch[string]

AccessCount

func (f *FilterShareLinkList) AccessCount() *pangea.FilterRange[string]

CreatedAt

func (f *FilterShareLinkList) CreatedAt() *pangea.FilterRange[string]

ExpiresAt

func (f *FilterShareLinkList) ExpiresAt() *pangea.FilterRange[string]

ID

func (f *FilterShareLinkList) ID() *pangea.FilterMatch[string]

LastAccessedAt

func (f *FilterShareLinkList) LastAccessedAt() *pangea.FilterRange[string]
func (f *FilterShareLinkList) Link() *pangea.FilterMatch[string]
func (f *FilterShareLinkList) LinkType() *pangea.FilterMatch[string]

MaxAccessCount

func (f *FilterShareLinkList) MaxAccessCount() *pangea.FilterRange[string]

StoragePoolID

func (f *FilterShareLinkList) StoragePoolID() *pangea.FilterMatch[string]

Target

func (f *FilterShareLinkList) Target() *pangea.FilterMatch[string]

Delete (Beta)

func (e *share) Delete(ctx context.Context, input *DeleteRequest) (*pangea.PangeaResponse[DeleteResult], error)

Delete object by ID or path. If both are supplied, the path must match that of the object represented by the ID.

required parameters

context.Context
input := &share.DeleteRequest{
	ID: "pos_3djfmzg2db4c6donarecbyv5begtj2bm"
}

res, err := shareClient.Delete(ctx, input)

Create a folder (Beta)

func (e *share) FolderCreate(ctx context.Context, input *FolderCreateRequest) (*pangea.PangeaResponse[FolderCreateResult], error)

Create a folder, either by name or path and parent_id.

required parameters

context.Context
input := &share.FolderCreateRequest{
	Metadata: share.Metadata{
		"created_by": "jim",
		"priority": "medium",
	},
	ParentID: "pos_3djfmzg2db4c6donarecbyv5begtj2bm",
	Path: "/",
	Tags: share.Tags{"irs_2023", "personal"},
}

res, err := shareClient.FolderCreate(ctx, input)

Get an object (Beta)

func (e *share) Get(ctx context.Context, input *GetRequest) (*pangea.PangeaResponse[GetResult], error)

Get object. If both ID and path are supplied, the call will fail if the target object doesn't match both properties.

required parameters

context.Context
input := &share.GetRequest{
	ID: "pos_3djfmzg2db4c6donarecbyv5begtj2bm",
	Path: "/",
}

res, err := shareClient.Get(ctx, input)

Get archive (Beta)

func (e *share) GetArchive(ctx context.Context, input *GetArchiveRequest) (*pangea.PangeaResponse[GetArchiveResult], error)

Get an archive file of multiple objects.

required parameters

context.Context
input := &share.GetArchiveRequest{
	Ids: []string{"pos_3djfmzg2db4c6donarecbyv5begtj2bm"},
}

res, err := shareClient.GetArchive(ctx, input)

List (Beta)

func (e *share) List(ctx context.Context, input *ListRequest) (*pangea.PangeaResponse[ListResult], error)

List or filter/search records. Beta. API

required parameters

context.Context
input := &share.ListRequest{}

res, err := shareClient.List(ctx, input)

Upload a file (Beta)

func (e *share) Put(ctx context.Context, input *PutRequest, file *os.File) (*pangea.PangeaResponse[PutResult], error)

Upload a file.

required parameters

context.Context
*os.File
input := &share.PutRequest{
	TransferMethod: pangea.TMmultipart,
	Metadata: share.Metadata{
		"created_by": "jim",
		"priority": "medium",
	},
	ParentID: "pos_3djfmzg2db4c6donarecbyv5begtj2bm",
	Path: "/",
	Tags: share.Tags{"irs_2023", "personal"},
}

file, err := os.Open("./path/to/file.pdf")
if err != nil {
	log.Fatal("Error opening file: %v", err)
}

res, err := shareClient.Put(ctx, input, file)

Request upload URL (Beta)

func (e *share) RequestUploadURL(ctx context.Context, input *PutRequest) (*pangea.PangeaResponse[PutResult], error)

Request an upload URL.

required parameters

context.Context
input := &share.PutRequest{
	TransferMethod: pangea.TMpostURL,
	CRC32C: "515f7c32",
	SHA256: "c0b56b1a154697f79d27d57a3a2aad4c93849aa2239cd23048fc6f45726271cc",
	Size: 222089,
	Metadata: share.Metadata{
		"created_by": "jim",
		"priority": "medium",
	},
	ParentID: "pos_3djfmzg2db4c6donarecbyv5begtj2bm",
	Path: "/",
	Tags: share.Tags{"irs_2023", "personal"},
}

res, err := shareClient.RequestUploadURL(ctx, input)
func (e *share) ShareLinkCreate(ctx context.Context, input *ShareLinkCreateRequest) (*pangea.PangeaResponse[ShareLinkCreateResult], error)

Create a share link.

required parameters

context.Context
authenticator := share.Authenticator{
	AuthType: share.ATpassword,
	AuthContext: "my_fav_Pa55word",
}

link := share.ShareLinkCreateItem{
	Targets: []string{"pos_3djfmzg2db4c6donarecbyv5begtj2bm"},
	LinkType: "download",
	Authenticators: []Authenticator{authenticator},
}

input := &share.ShareLinkCreateRequest{
	Links: []share.ShareLinkCreateItem{link},
}

res, err := shareClient.ShareLinkCreate(ctx, input)
func (e *share) ShareLinkDelete(ctx context.Context, input *ShareLinkDeleteRequest) (*pangea.PangeaResponse[ShareLinkDeleteResult], error)

Delete share links.

required parameters

context.Context
input := &share.ShareLinkDeleteRequest{
	Ids: []string{"psl_3djfmzg2db4c6donarecbyv5begtj2bm"},
}

res, err := shareClient.ShareLinkDelete(ctx, input)
func (e *share) ShareLinkGet(ctx context.Context, input *ShareLinkGetRequest) (*pangea.PangeaResponse[ShareLinkGetResult], error)

Get a share link.

required parameters

context.Context
input := &share.ShareLinkGetRequest{
	ID: "psl_3djfmzg2db4c6donarecbyv5begtj2bm",
}

res, err := shareClient.ShareLinkGet(ctx, input)
func (e *share) ShareLinkList(ctx context.Context, input *ShareLinkListRequest) (*pangea.PangeaResponse[ShareLinkListResult], error)

Look up share links by filter options.

input := &share.ShareLinkListRequest{}

res, err := shareClient.ShareLinkList(ctx, input)
func (e *share) ShareLinkSend(ctx context.Context, input *ShareLinkSendRequest) (*pangea.PangeaResponse[ShareLinkSendResult], error)

Send share link(s).

required parameters

context.Context
res, err := client.ShareLinkSend(ctx, &share.ShareLinkSendRequest{
	Links: []share.ShareLinkSendItem{
		share.ShareLinkSendItem{
			Id:    link.ID,
			Email: "user@email.com",
		},
	},
	SenderEmail: "sender@email.com",
	SenderName:  "Sender Name",
})

Update a file (Beta)

func (e *share) Update(ctx context.Context, input *UpdateRequest) (*pangea.PangeaResponse[UpdateResult], error)

Update a file.

required parameters

context.Context
input := &share.UpdateRequest{
	ID: "pos_3djfmzg2db4c6donarecbyv5begtj2bm",
	Path: "/",
	RemoveMetadata: share.Metadata{
		"created_by": "jim",
		"priority": "medium",
	},
	RemoveTags: share.Tags{"irs_2023", "personal"},
}

res, err := shareClient.Update(ctx, input)

Type ArchiveFormat

type ArchiveFormat string
type ArchiveFormat string

Type Authenticator

type Authenticator struct

required parameters

AuthenticatorType `json:"auth_type"`
string `json:"auth_context"`
type Authenticator struct {
	AuthType	AuthenticatorType	`json:"auth_type"`
	AuthContext	string			`json:"auth_context"`
}

Type AuthenticatorType

type AuthenticatorType string
type AuthenticatorType string

Type Client

type Client interface

required parameters

func(ctx context.Context, input *FolderCreateRequest) (*pangea.PangeaResponse[FolderCreateResult], error)
context.Context
func(ctx context.Context, input *DeleteRequest) (*pangea.PangeaResponse[DeleteResult], error)
context.Context
func(ctx context.Context, input *GetRequest) (*pangea.PangeaResponse[GetResult], error)
context.Context
func(ctx context.Context, input *PutRequest, file *os.File) (*pangea.PangeaResponse[PutResult], error)
context.Context
*os.File
func(ctx context.Context, input *UpdateRequest) (*pangea.PangeaResponse[UpdateResult], error)
context.Context
func(ctx context.Context, input *ListRequest) (*pangea.PangeaResponse[ListResult], error)
context.Context
func(ctx context.Context, input *GetArchiveRequest) (*pangea.PangeaResponse[GetArchiveResult], error)
context.Context
func(ctx context.Context, input *ShareLinkCreateRequest) (*pangea.PangeaResponse[ShareLinkCreateResult], error)
context.Context
func(ctx context.Context, input *ShareLinkGetRequest) (*pangea.PangeaResponse[ShareLinkGetResult], error)
context.Context
func(ctx context.Context, input *ShareLinkListRequest) (*pangea.PangeaResponse[ShareLinkListResult], error)
context.Context
func(ctx context.Context, input *ShareLinkDeleteRequest) (*pangea.PangeaResponse[ShareLinkDeleteResult], error)
context.Context
func(ctx context.Context, input *ShareLinkSendRequest) (*pangea.PangeaResponse[ShareLinkSendResult], error)
context.Context
func(ctx context.Context, input *PutRequest) (*pangea.PangeaResponse[PutResult], error)
context.Context
pangea.BaseServicer

Base service methods

type Client interface {
	FolderCreate(ctx context.Context, input *FolderCreateRequest) (*pangea.PangeaResponse[FolderCreateResult], error)
	Delete(ctx context.Context, input *DeleteRequest) (*pangea.PangeaResponse[DeleteResult], error)
	Get(ctx context.Context, input *GetRequest) (*pangea.PangeaResponse[GetResult], error)
	Put(ctx context.Context, input *PutRequest, file *os.File) (*pangea.PangeaResponse[PutResult], error)
	Update(ctx context.Context, input *UpdateRequest) (*pangea.PangeaResponse[UpdateResult], error)
	List(ctx context.Context, input *ListRequest) (*pangea.PangeaResponse[ListResult], error)
	GetArchive(ctx context.Context, input *GetArchiveRequest) (*pangea.PangeaResponse[GetArchiveResult], error)
	ShareLinkCreate(ctx context.Context, input *ShareLinkCreateRequest) (*pangea.PangeaResponse[ShareLinkCreateResult], error)
	ShareLinkGet(ctx context.Context, input *ShareLinkGetRequest) (*pangea.PangeaResponse[ShareLinkGetResult], error)
	ShareLinkList(ctx context.Context, input *ShareLinkListRequest) (*pangea.PangeaResponse[ShareLinkListResult], error)
	ShareLinkDelete(ctx context.Context, input *ShareLinkDeleteRequest) (*pangea.PangeaResponse[ShareLinkDeleteResult], error)
	ShareLinkSend(ctx context.Context, input *ShareLinkSendRequest) (*pangea.PangeaResponse[ShareLinkSendResult], error)
	RequestUploadURL(ctx context.Context, input *PutRequest) (*pangea.PangeaResponse[PutResult], error)

	// Base service methods
	pangea.BaseServicer
}

Type DeleteRequest

type DeleteRequest struct

required parameters

string `json:"id,omitempty"`
*bool `json:"force,omitempty"`
string `json:"path,omitempty"`
type DeleteRequest struct {
	pangea.BaseRequest

	ID	string	`json:"id,omitempty"`
	Force	*bool	`json:"force,omitempty"`
	Path	string	`json:"path,omitempty"`
}

Type DeleteResult

type DeleteResult struct

required parameters

int `json:"count"`
type DeleteResult struct {
	Count int `json:"count"`
}

Type FileFormat

type FileFormat string
type FileFormat string

Type FilterList

type FilterList struct

Just allowed to filter by folder now

required parameters

*pangea.FilterMatch[string]
type FilterList struct {
	pangea.FilterBase
	folder	*pangea.FilterMatch[string]
}
type FilterShareLinkList struct
type FilterShareLinkList struct {
	pangea.FilterBase
	id		*pangea.FilterMatch[string]
	storagePoolID	*pangea.FilterMatch[string]
	target		*pangea.FilterMatch[string]
	linkType	*pangea.FilterMatch[string]
	accessCount	*pangea.FilterRange[string]
	maxAccessCount	*pangea.FilterRange[string]
	createdAt	*pangea.FilterRange[string]
	expiresAt	*pangea.FilterRange[string]
	lastAccessedAt	*pangea.FilterRange[string]
	link		*pangea.FilterMatch[string]
}

Type FolderCreateRequest

type FolderCreateRequest struct

required parameters

string `json:"name,omitempty"`
string `json:"parent_id,omitempty"`
string `json:"path,omitempty"`
type FolderCreateRequest struct {
	pangea.BaseRequest

	Name		string		`json:"name,omitempty"`
	Metadata	Metadata	`json:"metadata,omitempty"`
	ParentID	string		`json:"parent_id,omitempty"`
	Path		string		`json:"path,omitempty"`
	Tags		Tags		`json:"tags,omitempty"`
}

Type FolderCreateResult

type FolderCreateResult struct

required parameters

ItemData `json:"object"`
type FolderCreateResult struct {
	Object ItemData `json:"object"`
}

Type GetArchiveRequest

type GetArchiveRequest struct

required parameters

[]string `json:"ids"`
pangea.TransferMethod `json:"transfer_method,omitempty"`
type GetArchiveRequest struct {
	pangea.BaseRequest

	Ids		[]string		`json:"ids"`
	Format		ArchiveFormat		`json:"format,omitempty"`
	TransferMethod	pangea.TransferMethod	`json:"transfer_method,omitempty"`
}

Type GetArchiveResult

type GetArchiveResult struct

required parameters

*string `json:"dest_url,omitempty"`
int `json:"count"`
type GetArchiveResult struct {
	DestURL	*string	`json:"dest_url,omitempty"`
	Count	int	`json:"count"`
}

Type GetRequest

type GetRequest struct

required parameters

string `json:"id,omitempty"`
string `json:"path,omitempty"`
pangea.TransferMethod `json:"transfer_method,omitempty"`
type GetRequest struct {
	pangea.BaseRequest

	ID		string			`json:"id,omitempty"`
	Path		string			`json:"path,omitempty"`
	TransferMethod	pangea.TransferMethod	`json:"transfer_method,omitempty"`
}

Type GetResult

type GetResult struct

required parameters

ItemData `json:"object"`
*string `json:"dest_url,omitempty"`
type GetResult struct {
	Object	ItemData	`json:"object"`
	DestURL	*string		`json:"dest_url,omitempty"`
}

Type ItemData

type ItemData struct

required parameters

string `json:"id"`
string `json:"type"`
string `json:"name"`
string `json:"created_at"`
string `json:"updated_at"`
int `json:"size"`
int `json:"billable_size"`
string `json:"location"`
string `json:"md5"`
string `json:"sha256"`
string `json:"sha512"`
string `json:"parent_id"`
type ItemData struct {
	ID		string		`json:"id"`
	Type		string		`json:"type"`
	Name		string		`json:"name"`
	CreatedAt	string		`json:"created_at"`
	UpdatedAt	string		`json:"updated_at"`
	Size		int		`json:"size"`
	BillableSize	int		`json:"billable_size"`
	Location	string		`json:"location"`
	Tags		Tags		`json:"tags,omitempty"`
	Metadata	Metadata	`json:"metadata,omitempty"`
	MD5		string		`json:"md5"`
	SHA256		string		`json:"sha256"`
	SHA512		string		`json:"sha512"`
	ParentID	string		`json:"parent_id"`
}

Type ItemOrder

type ItemOrder string
type ItemOrder string
type LinkType string
type LinkType string

Type ListRequest

type ListRequest struct

required parameters

pangea.Filter `json:"filter,omitempty"`
string `json:"last,omitempty"`
int `json:"size,omitempty"`
type ListRequest struct {
	pangea.BaseRequest

	Filter	pangea.Filter	`json:"filter,omitempty"`
	Last	string		`json:"last,omitempty"`
	Order	ItemOrder	`json:"order,omitempty"`
	OrderBy	ObjectOrderBy	`json:"order_by,omitempty"`
	Size	int		`json:"size,omitempty"`
}

Type ListResult

type ListResult struct

required parameters

int `json:"count"`
string `json:"last,omitempty"`
type ListResult struct {
	Count	int		`json:"count"`
	Last	string		`json:"last,omitempty"`
	Objects	[]ItemData	`json:"objects"`
}

Type Metadata

type Metadata map[string]string
type Metadata map[string]string

Type ObjectOrderBy

type ObjectOrderBy string
type ObjectOrderBy string

Type PutRequest

type PutRequest struct

required parameters

string `json:"name,omitempty"`
string `json:"mimetype,omitempty"`
string `json:"parent_id,omitempty"`
string `json:"path,omitempty"`
string `json:"crc32c,omitempty"`
string `json:"md5,omitempty"`
string `json:"sha1,omitempty"`
string `json:"sha256,omitempty"`
string `json:"sha512,omitempty"`
*int `json:"size,omitempty"`
type PutRequest struct {
	pangea.BaseRequest
	pangea.TransferRequest

	Name		string		`json:"name,omitempty"`
	Format		*FileFormat	`json:"format,omitempty"`
	Metadata	Metadata	`json:"metadata,omitempty"`
	MimeType	string		`json:"mimetype,omitempty"`
	ParentID	string		`json:"parent_id,omitempty"`
	Path		string		`json:"path,omitempty"`
	CRC32C		string		`json:"crc32c,omitempty"`
	MD5		string		`json:"md5,omitempty"`
	SHA1		string		`json:"sha1,omitempty"`
	SHA256		string		`json:"sha256,omitempty"`
	SHA512		string		`json:"sha512,omitempty"`
	Size		*int		`json:"size,omitempty"`
	Tags		Tags		`json:"tags,omitempty"`
}

Type PutResult

type PutResult struct

required parameters

ItemData `json:"object"`
type PutResult struct {
	Object ItemData `json:"object"`
}
type ShareLinkCreateItem struct

required parameters

[]string `json:"targets"`
string `json:"expires_at,omitempty"`
*int `json:"max_access_count,omitempty"`
string `json:"message,omitempty"`
string `json:"title,omitempty"`
string `json:"notify_email,omitempty"`
type ShareLinkCreateItem struct {
	Targets		[]string	`json:"targets"`
	LinkType	LinkType	`json:"link_type,omitempty"`
	ExpiresAt	string		`json:"expires_at,omitempty"`
	MaxAccessCount	*int		`json:"max_access_count,omitempty"`
	Authenticators	[]Authenticator	`json:"authenticators,omitempty"`
	Message		string		`json:"message,omitempty"`
	Title		string		`json:"title,omitempty"`
	NotifyEmail	string		`json:"notify_email,omitempty"`
	Tags		Tags		`json:"tags,omitempty"`
}
type ShareLinkCreateRequest struct

required parameters

[]ShareLinkCreateItem `json:"links"`
type ShareLinkCreateRequest struct {
	pangea.BaseRequest

	Links	[]ShareLinkCreateItem	`json:"links"`
}
type ShareLinkCreateResult struct

required parameters

[]ShareLinkItem `json:"share_link_objects"`
type ShareLinkCreateResult struct {
	ShareLinkObjects []ShareLinkItem `json:"share_link_objects"`
}
type ShareLinkDeleteRequest struct

required parameters

[]string `json:"ids"`
type ShareLinkDeleteRequest struct {
	pangea.BaseRequest

	Ids	[]string	`json:"ids"`
}
type ShareLinkDeleteResult struct

required parameters

[]ShareLinkItem `json:"share_link_objects"`
type ShareLinkDeleteResult struct {
	ShareLinkObjects []ShareLinkItem `json:"share_link_objects"`
}
type ShareLinkGetRequest struct

required parameters

string `json:"id"`
type ShareLinkGetRequest struct {
	pangea.BaseRequest

	ID	string	`json:"id"`
}
type ShareLinkGetResult struct

required parameters

ShareLinkItem `json:"share_link_object"`
type ShareLinkGetResult struct {
	ShareLinkObject ShareLinkItem `json:"share_link_object"`
}
type ShareLinkItem struct

required parameters

string `json:"id"`
string `json:"storage_pool_id"`
[]string `json:"targets"`
string `json:"link_type"`
int `json:"access_count"`
int `json:"max_access_count"`
string `json:"created_at"`
string `json:"expires_at"`
*string `json:"last_accessed_at,omitempty"`
string `json:"link"`
string `json:"message,omitempty"`
string `json:"title,omitempty"`
string `json:"notify_email,omitempty"`
type ShareLinkItem struct {
	ID		string		`json:"id"`
	StoragePoolID	string		`json:"storage_pool_id"`
	Targets		[]string	`json:"targets"`
	LinkType	string		`json:"link_type"`
	AccessCount	int		`json:"access_count"`
	MaxAccessCount	int		`json:"max_access_count"`
	CreatedAt	string		`json:"created_at"`
	ExpiresAt	string		`json:"expires_at"`
	LastAccessedAt	*string		`json:"last_accessed_at,omitempty"`
	Authenticators	[]Authenticator	`json:"authenticators,omitempty"`
	Link		string		`json:"link"`
	Message		string		`json:"message,omitempty"`
	Title		string		`json:"title,omitempty"`
	NotifyEmail	string		`json:"notify_email,omitempty"`
	Tags		Tags		`json:"tags,omitempty"`
}
type ShareLinkListRequest struct

required parameters

pangea.Filter `json:"filter,omitempty"`
string `json:"last,omitempty"`
int `json:"size,omitempty"`
type ShareLinkListRequest struct {
	pangea.BaseRequest

	Filter	pangea.Filter		`json:"filter,omitempty"`
	Last	string			`json:"last,omitempty"`
	Order	*ItemOrder		`json:"order,omitempty"`
	OrderBy	*ShareLinkOrderBy	`json:"order_by,omitempty"`
	Size	int			`json:"size,omitempty"`
}
type ShareLinkListResult struct

required parameters

int `json:"count"`
type ShareLinkListResult struct {
	Count			int		`json:"count"`
	ShareLinkObjects	[]ShareLinkItem	`json:"share_link_objects"`
}
type ShareLinkOrderBy string
type ShareLinkOrderBy string
type ShareLinkSendItem struct

required parameters

string `json:"id"`
string `json:"email"`
type ShareLinkSendItem struct {
	Id	string	`json:"id"`
	Email	string	`json:"email"`
}
type ShareLinkSendRequest struct

required parameters

[]ShareLinkSendItem `json:"links"`
string `json:"sender_email"`
string `json:"sender_name,omitempty"`
type ShareLinkSendRequest struct {
	pangea.BaseRequest

	Links		[]ShareLinkSendItem	`json:"links"`
	SenderEmail	string			`json:"sender_email"`
	SenderName	string			`json:"sender_name,omitempty"`
}
type ShareLinkSendResult struct

required parameters

[]ShareLinkItem `json:"share_link_objects"`
type ShareLinkSendResult struct {
	ShareLinkObjects []ShareLinkItem `json:"share_link_objects"`
}

Type Tags

type Tags []string
type Tags []string

Type UpdateRequest

type UpdateRequest struct

required parameters

string `json:"id"`
string `json:"path,omitempty"`
string `json:"parent_id,omitempty"`
string `json:"updated_at,omitempty"`
type UpdateRequest struct {
	pangea.BaseRequest

	ID		string		`json:"id"`
	Path		string		`json:"path,omitempty"`
	AddMetadata	Metadata	`json:"add_metadata,omitempty"`
	RemoveMetadata	Metadata	`json:"remove_metadata,omitempty"`
	Metadata	Metadata	`json:"metadata,omitempty"`
	AddTags		Tags		`json:"add_tags,omitempty"`
	RemoveTags	Tags		`json:"remove_tags,omitempty"`
	Tags		Tags		`json:"tags,omitempty"`
	ParentID	string		`json:"parent_id,omitempty"`
	UpdatedAt	string		`json:"updated_at,omitempty"`
}

Type UpdateResult

type UpdateResult struct

required parameters

ItemData `json:"object"`
type UpdateResult struct {
	Object ItemData `json:"object"`
}

Type share

type share struct
type share struct {
	pangea.BaseService
}