Workspaces

A Workspace is a lightweight way to organize related resources inside a single Files.com Site.

Customers commonly group resources by project, department, client, or region. Workspaces provide a built-in structure for that grouping, so the UI can operate within a clear “workspace context” and admins can delegate management for a subset of resources without requiring full site-level isolation.

Every Site has an implicit Default workspace (ID 0). Resources that are not explicitly assigned to a named workspace are considered part of the Default workspace.

List Workspaces

SDK Method

workspace.List()

Return Object

[]*Workspace

Authorization Requirement

Available to all authenticated keys or sessions.

Additional Arguments

Example Request

import (
    "fmt"
    "errors"

    files_sdk "github.com/Files-com/files-sdk-go/v3"
    "github.com/Files-com/files-sdk-go/v3/workspace"
)

workspaceIterator, err := workspace.List(files_sdk.WorkspaceListParams{})
if err != nil {
    var respErr files_sdk.ResponseError
    if errors.As(err, &respErr) {
        fmt.Println("Response Error Occurred (" + respErr.Type + "): " + respErr.ErrorMessage)
    } else {
        fmt.Printf("Unexpected Error: %s\n", err.Error())
    }
}

for workspaceIterator.Next() {
    workspace := workspaceIterator.workspace()
}
err = workspaceIterator.Err()
if err != nil {
    var respErr files_sdk.ResponseError
    if errors.As(err, &respErr) {
        fmt.Println("Response Error Occurred (" + respErr.Type + "): " + respErr.ErrorMessage)
    } else {
        fmt.Printf("Unexpected Error: %s\n", err.Error())
    }
}

Show Workspace

SDK Method

workspace.Find()

Return Object

Workspace

Authorization Requirement

Requires either a Site-Wide API key or User API key or session from a User with Site Admin permissions.

WorkspaceFindParams Fields

FieldDescription
Id
int64
Required
Workspace ID.

Example Request

import (
    "fmt"
    "errors"

    files_sdk "github.com/Files-com/files-sdk-go/v3"
    "github.com/Files-com/files-sdk-go/v3/workspace"
)

workspace, err := workspace.Find(files_sdk.WorkspaceFindParams{Id: 1})
if err != nil {
    var respErr files_sdk.ResponseError
    if errors.As(err, &respErr) {
        fmt.Println("Response Error Occurred (" + respErr.Type + "): " + respErr.ErrorMessage)
    } else {
        fmt.Printf("Unexpected Error: %s\n", err.Error())
    }
}

Create Workspace

SDK Method

workspace.Create()

Return Object

Workspace

Authorization Requirement

Requires either a Site-Wide API key or User API key or session from a User with Site Admin permissions.

WorkspaceCreateParams Fields

FieldDescription
Name
string
Workspace name

Example Request

import (
    "fmt"
    "errors"

    files_sdk "github.com/Files-com/files-sdk-go/v3"
    "github.com/Files-com/files-sdk-go/v3/workspace"
)

workspace, err := workspace.Create(files_sdk.WorkspaceCreateParams{Name: "Project Alpha"})
if err != nil {
    var respErr files_sdk.ResponseError
    if errors.As(err, &respErr) {
        fmt.Println("Response Error Occurred (" + respErr.Type + "): " + respErr.ErrorMessage)
    } else {
        fmt.Printf("Unexpected Error: %s\n", err.Error())
    }
}

Update Workspace

SDK Method

workspace.Update()

Return Object

Workspace

Authorization Requirement

Requires either a Site-Wide API key or User API key or session from a User with Site Admin permissions.

WorkspaceUpdateParams Fields

FieldDescription
Id
int64
Required
Workspace ID.
Name
string
Workspace name

Example Request

import (
    "fmt"
    "errors"

    files_sdk "github.com/Files-com/files-sdk-go/v3"
    "github.com/Files-com/files-sdk-go/v3/workspace"
)

workspace, err := workspace.Update(files_sdk.WorkspaceUpdateParams{
  Id: 1,
  Name: "Project Alpha"
})
if err != nil {
    var respErr files_sdk.ResponseError
    if errors.As(err, &respErr) {
        fmt.Println("Response Error Occurred (" + respErr.Type + "): " + respErr.ErrorMessage)
    } else {
        fmt.Printf("Unexpected Error: %s\n", err.Error())
    }
}

Delete Workspace

SDK Method

workspace.Delete()

Return Object

No return value.

Authorization Requirement

Requires either a Site-Wide API key or User API key or session from a User with Site Admin permissions.

WorkspaceDeleteParams Fields

FieldDescription
Id
int64
Required
Workspace ID.

Example Request

import (
    "fmt"
    "errors"

    files_sdk "github.com/Files-com/files-sdk-go/v3"
    "github.com/Files-com/files-sdk-go/v3/workspace"
)

err := workspace.Delete(files_sdk.WorkspaceDeleteParams{Id: 1})
if err != nil {
    var respErr files_sdk.ResponseError
    if errors.As(err, &respErr) {
        fmt.Println("Response Error Occurred (" + respErr.Type + "): " + respErr.ErrorMessage)
    } else {
        fmt.Printf("Unexpected Error: %s\n", err.Error())
    }
}

The Workspace Object

Some of the methods above return a Workspace object. The attributes of this object are listed below.

AttributeDescription
Id
int64
Workspace ID
Name
string
Workspace name