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]Link
func (f *FilterShareLinkList) Link() *pangea.FilterMatch[string]LinkType
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.
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.
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.
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.
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
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.
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.
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)
Create share links (Beta)
func (e *share) ShareLinkCreate(ctx context.Context, input *ShareLinkCreateRequest) (*pangea.PangeaResponse[ShareLinkCreateResult], error)Create a share link.
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)
Delete share links (Beta)
func (e *share) ShareLinkDelete(ctx context.Context, input *ShareLinkDeleteRequest) (*pangea.PangeaResponse[ShareLinkDeleteResult], error)Delete share links.
input := &share.ShareLinkDeleteRequest{
Ids: []string{"psl_3djfmzg2db4c6donarecbyv5begtj2bm"},
}
res, err := shareClient.ShareLinkDelete(ctx, input)
Get share link (Beta)
func (e *share) ShareLinkGet(ctx context.Context, input *ShareLinkGetRequest) (*pangea.PangeaResponse[ShareLinkGetResult], error)Get a share link.
input := &share.ShareLinkGetRequest{
ID: "psl_3djfmzg2db4c6donarecbyv5begtj2bm",
}
res, err := shareClient.ShareLinkGet(ctx, input)
List share links (Beta)
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)
Send share link(s) (Beta)
func (e *share) ShareLinkSend(ctx context.Context, input *ShareLinkSendRequest) (*pangea.PangeaResponse[ShareLinkSendResult], error)Send share link(s).
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.
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 stringtype ArchiveFormat string
Type Authenticator
type Authenticator structtype Authenticator struct {
AuthType AuthenticatorType `json:"auth_type"`
AuthContext string `json:"auth_context"`
}
Type AuthenticatorType
type AuthenticatorType stringtype AuthenticatorType string
Type Client
type Client interfacetype 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 structtype DeleteRequest struct {
pangea.BaseRequest
ID string `json:"id,omitempty"`
Force *bool `json:"force,omitempty"`
Path string `json:"path,omitempty"`
}
Type DeleteResult
type DeleteResult structtype DeleteResult struct {
Count int `json:"count"`
}
Type FileFormat
type FileFormat stringtype FileFormat string
Type FilterList
type FilterList structJust allowed to filter by folder now
type FilterList struct {
pangea.FilterBase
folder *pangea.FilterMatch[string]
}
Type FilterShareLinkList
type FilterShareLinkList structtype 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 structtype 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 structtype FolderCreateResult struct {
Object ItemData `json:"object"`
}
Type GetArchiveRequest
type GetArchiveRequest structtype GetArchiveRequest struct {
pangea.BaseRequest
Ids []string `json:"ids"`
Format ArchiveFormat `json:"format,omitempty"`
TransferMethod pangea.TransferMethod `json:"transfer_method,omitempty"`
}
Type GetArchiveResult
type GetArchiveResult structtype GetArchiveResult struct {
DestURL *string `json:"dest_url,omitempty"`
Count int `json:"count"`
}
Type GetRequest
type GetRequest structtype 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 structtype GetResult struct {
Object ItemData `json:"object"`
DestURL *string `json:"dest_url,omitempty"`
}
Type ItemData
type ItemData structtype 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 stringtype ItemOrder string
Type LinkType
type LinkType stringtype LinkType string
Type ListRequest
type ListRequest structtype 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 structtype ListResult struct {
Count int `json:"count"`
Last string `json:"last,omitempty"`
Objects []ItemData `json:"objects"`
}
Type Metadata
type Metadata map[string]stringtype Metadata map[string]string
Type ObjectOrderBy
type ObjectOrderBy stringtype ObjectOrderBy string
Type PutRequest
type PutRequest structtype 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 structtype PutResult struct {
Object ItemData `json:"object"`
}
Type ShareLinkCreateItem
type ShareLinkCreateItem structtype 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
type ShareLinkCreateRequest structtype ShareLinkCreateRequest struct {
pangea.BaseRequest
Links []ShareLinkCreateItem `json:"links"`
}
Type ShareLinkCreateResult
type ShareLinkCreateResult structtype ShareLinkCreateResult struct {
ShareLinkObjects []ShareLinkItem `json:"share_link_objects"`
}
Type ShareLinkDeleteRequest
type ShareLinkDeleteRequest structtype ShareLinkDeleteRequest struct {
pangea.BaseRequest
Ids []string `json:"ids"`
}
Type ShareLinkDeleteResult
type ShareLinkDeleteResult structtype ShareLinkDeleteResult struct {
ShareLinkObjects []ShareLinkItem `json:"share_link_objects"`
}
Type ShareLinkGetRequest
type ShareLinkGetRequest structtype ShareLinkGetRequest struct {
pangea.BaseRequest
ID string `json:"id"`
}
Type ShareLinkGetResult
type ShareLinkGetResult structtype ShareLinkGetResult struct {
ShareLinkObject ShareLinkItem `json:"share_link_object"`
}
Type ShareLinkItem
type ShareLinkItem structtype 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
type ShareLinkListRequest structtype 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
type ShareLinkListResult structtype ShareLinkListResult struct {
Count int `json:"count"`
ShareLinkObjects []ShareLinkItem `json:"share_link_objects"`
}
Type ShareLinkOrderBy
type ShareLinkOrderBy stringtype ShareLinkOrderBy string
Type ShareLinkSendItem
type ShareLinkSendItem structtype ShareLinkSendItem struct {
Id string `json:"id"`
Email string `json:"email"`
}
Type ShareLinkSendRequest
type ShareLinkSendRequest structtype ShareLinkSendRequest struct {
pangea.BaseRequest
Links []ShareLinkSendItem `json:"links"`
SenderEmail string `json:"sender_email"`
SenderName string `json:"sender_name,omitempty"`
}
Type ShareLinkSendResult
type ShareLinkSendResult structtype ShareLinkSendResult struct {
ShareLinkObjects []ShareLinkItem `json:"share_link_objects"`
}
Type Tags
type Tags []stringtype Tags []string
Type UpdateRequest
type UpdateRequest structtype 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 structtype UpdateResult struct {
Object ItemData `json:"object"`
}
Type share
type share structtype share struct {
pangea.BaseService
}