Metadata Categories

A MetadataCategory defines a reusable set of Custom Metadata rules that can be assigned to folders via a folder behavior. Each category specifies named metadata keys with optional allowed-value constraints, and a set of default columns to display in the UI.

If a key's allowed_values array is empty, it is treated as a free-form text field. If the array is non-empty, the key is constrained to those values in the Web UI.

List Metadata Categories

SDK Method

metadatacategory.List()

Return Object

[]*MetadataCategory

Authorization Requirement

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

Additional Arguments

Example Request

import (
    "fmt"
    "errors"

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

metadataCategoryIterator, err := metadata_category.List(files_sdk.MetadataCategoryListParams{})
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 metadataCategoryIterator.Next() {
    metadataCategory := metadataCategoryIterator.metadataCategory()
}
err = metadataCategoryIterator.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 Metadata Category

SDK Method

metadatacategory.Find()

Return Object

MetadataCategory

Authorization Requirement

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

MetadataCategoryFindParams Fields

FieldDescription
Id
int64
Required
Metadata Category ID.

Example Request

import (
    "fmt"
    "errors"

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

metadataCategory, err := metadata_category.Find(files_sdk.MetadataCategoryFindParams{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())
    }
}

List Metadata Categories by Path

SDK Method

metadatacategory.ListFor()

Return Object

[]*MetadataCategory

Authorization Requirement

Available to all authenticated keys or sessions.

MetadataCategoryListForParams Fields

FieldDescription
Path
string
Required
Path to operate on.

Additional Arguments

Example Request

import (
    "fmt"
    "errors"

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

metadataCategoryIterator, err := metadata_category.ListFor(files_sdk.MetadataCategoryListForParams{Path: "path"})
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 metadataCategoryIterator.Next() {
    metadataCategory := metadataCategoryIterator.metadataCategory()
}
err = metadataCategoryIterator.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())
    }
}

Create Metadata Category

SDK Method

metadatacategory.Create()

Return Object

MetadataCategory

Authorization Requirement

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

MetadataCategoryCreateParams Fields

FieldDescription
Name
string
Required
Name of the metadata category.
DefaultColumns
array(string)
Metadata keys that should appear as columns in the UI by default.

Example Request

import (
    "fmt"
    "errors"

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

metadataCategory, err := metadata_category.Create(files_sdk.MetadataCategoryCreateParams{Name: "Approval Workflow"})
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 Metadata Category

SDK Method

metadatacategory.Update()

Return Object

MetadataCategory

Authorization Requirement

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

MetadataCategoryUpdateParams Fields

FieldDescription
Id
int64
Required
Metadata Category ID.
Name
string
Name of the metadata category.
DefaultColumns
array(string)
Metadata keys that should appear as columns in the UI by default.

Example Request

import (
    "fmt"
    "errors"

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

metadataCategory, err := metadata_category.Update(files_sdk.MetadataCategoryUpdateParams{
  Id: 1,
  Name: "Approval Workflow"
})
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 Metadata Category

SDK Method

metadatacategory.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.

MetadataCategoryDeleteParams Fields

FieldDescription
Id
int64
Required
Metadata Category ID.

Example Request

import (
    "fmt"
    "errors"

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

err := metadata_category.Delete(files_sdk.MetadataCategoryDeleteParams{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 MetadataCategory Object

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

AttributeDescription
Id
int64
Metadata Category ID
Name
string
Name of the metadata category.
Definitions
hash(string,array(string))
Map of key names to arrays of allowed values. An empty array means free-form text.
DefaultColumns
array(string)
Metadata keys that should appear as columns in the UI by default.