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.

Use the Workspaces guide for request scoping and delegated administration.

List Workspaces

SDK Method

workspace.List()

Return Values

Returns a *workspace.Iter and an error. Range over All() to receive files_sdk.Workspace values and errors. Check each loop error before using its resource. Next() and Err() remain supported.

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.Printf("API error (%s): %s\n", respErr.Type, respErr.ErrorMessage)
    } else {
        fmt.Printf("Request failed: %v\n", err)
    }
    return
}

for workspace, err := range workspaceIterator.All() {
    if err != nil {
        var respErr files_sdk.ResponseError
        if errors.As(err, &respErr) {
            fmt.Printf("API error (%s): %s\n", respErr.Type, respErr.ErrorMessage)
        } else {
            fmt.Printf("Request failed: %v\n", err)
        }
        return
    }
    fmt.Println(workspace)
}

Show Workspace

SDK Method

workspace.Find()

Return Values

Returns a files_sdk.Workspace value and an error.

Authorization Requirement

Requires a Site-Wide API key, or a User API key or session from a Site Administrator.

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.Printf("API error (%s): %s\n", respErr.Type, respErr.ErrorMessage)
    } else {
        fmt.Printf("Request failed: %v\n", err)
    }
    return
}
fmt.Println(workspace)

Create Workspace

SDK Method

workspace.Create()

Return Values

Returns a files_sdk.Workspace value and an error.

Authorization Requirement

Requires a Site-Wide API key, or a User API key or session from a Site Administrator.

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.Printf("API error (%s): %s\n", respErr.Type, respErr.ErrorMessage)
    } else {
        fmt.Printf("Request failed: %v\n", err)
    }
    return
}
fmt.Println(workspace)

Update Workspace

SDK Method

workspace.Update()

Return Values

Returns a files_sdk.Workspace value and an error.

Authorization Requirement

Requires a Site-Wide API key, or a User API key or session from a Site Administrator.

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.Printf("API error (%s): %s\n", respErr.Type, respErr.ErrorMessage)
    } else {
        fmt.Printf("Request failed: %v\n", err)
    }
    return
}
fmt.Println(workspace)

Delete Workspace

SDK Method

workspace.Delete()

Return Values

Returns an error, or nil on success.

Authorization Requirement

Requires a Site-Wide API key, or a User API key or session from a Site Administrator.

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.Printf("API error (%s): %s\n", respErr.Type, respErr.ErrorMessage)
    } else {
        fmt.Printf("Request failed: %v\n", err)
    }
    return
}

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