dropbox-sdk 0.19.1

Rust bindings to the Dropbox API, generated by Stone from the official spec.
Documentation
namespace common

# Annotates fields to serialize a subset of total fields, depending on caller type

# Annotates fields to redact information before storing in logs

# Annotates fields for documentation changes

alias DropboxTimestamp = Timestamp("%Y-%m-%dT%H:%M:%SZ")

alias Date = Timestamp("%Y-%m-%d")

# Note - "\\." is needed in order to translate to "\."

# Note: If this pattern is changed, we also need to update _parse_json_arg_to_stone_data_type in dropbox/api/v2/substrate/wrapper.py
alias EmailAddress = String(pattern="^['#&A-Za-z0-9._%+-]+@[A-Za-z0-9-][A-Za-z0-9.-]*\\.[A-Za-z]{2,15}$", max_length=255)

# First name or Last name. NOTE: max_length should be synced with USER_NAME_MAX_LEN
alias NamePart = String(pattern="[^\/:?*<>\"|]*", min_length=1, max_length=100)

# First name or Last name. NOTE: max_length should be synced with USER_NAME_MAX_LEN
# Accepting zeo length values which are usually used to clear the first or last name.
alias OptionalNamePart = String(pattern="[^\/:?*<>\"|]*", max_length=100)

# We don't limit the length because it's always generated from the first & last names.
alias DisplayName = String(pattern="[^\/:?*<>\"|]*")

# There are some existing accounts with special characters in their names. Though we don't allow such special characters
# being used through UI, it's still possible to use them right now through some endpoints. This alias should be used in
# the places where those legacy account names are expected, one of the example being the team audit logging. In other
# places we should use `DisplayName` instead to prevent more usage of these special characters.
alias DisplayNameLegacy = String

alias NamespaceId = String(pattern="[-_0-9a-zA-Z:]+")

alias SharedFolderId = NamespaceId

alias SessionId = String

struct RootInfo
    "Information about current user's root."

    union
        team TeamRootInfo
        user UserRootInfo

    root_namespace_id NamespaceId
        "The namespace ID for user's root namespace. It will be the namespace ID
        of the shared team root if the user is member of a team with a separate team root.
        Otherwise it will be same as :field:`RootInfo.home_namespace_id`."

    home_namespace_id NamespaceId
        "The namespace ID for user's home namespace."

    example default
        user = default

struct TeamRootInfo extends RootInfo
    "Root info when user is member of a team with a separate root namespace ID."

    home_path String
        "The path for user's home directory under the shared team root."

struct UserRootInfo extends RootInfo
    "Root info when user is not member of a team or
    the user is a member of a team and the team does not have a separate root namespace."

    example default
        home_namespace_id = "3235641"
        root_namespace_id = "3235641"

union PathRoot
    home
        "Paths are relative to the authenticating user's home namespace,
        whether or not that user belongs to a team."

    root NamespaceId
        "Paths are relative to the authenticating user's root namespace
        (This results in :field:`PathRootError.invalid_root` if the
        user's root namespace has changed.)."

    namespace_id NamespaceId
        "Paths are relative to given namespace id (This results in
        :field:`PathRootError.no_permission` if you don't have access
        to this namespace.)."


union PathRootError
    invalid_root RootInfo
        "The root namespace id in Dropbox-API-Path-Root header is not valid. The value
        of this error is the user's latest root info."
    no_permission
        "You don't have permission to access the namespace id in Dropbox-API-Path-Root
         header."

alias LanguageCode = String(min_length=2)
    "A ISO639-1 code."