dropbox-sdk 0.19.1

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

import common
import file_properties
import team_common
import team_policies
import users_common
import secondary_emails

# Note that in the database, we also have members that are in state "deleted"
# meaning that the User has been permanently removed from the team.
# But the API is not going to expose such users externally.  We will omit such users
# in API responses.
#
union_closed TeamMemberStatus
    "The user's status as a member of a specific team."

    active
        "User has successfully joined the team."
    invited
        "User has been invited to a team, but has not joined the team yet."
    suspended
        "User is no longer a member of the team, but the account can be un-suspended,
        re-establishing the user as a team member."
    removed RemovedStatus
        "User is no longer a member of the team.
        Removed users are only listed when include_removed is true in members/list."

struct RemovedStatus
    is_recoverable Boolean
        "True if the removed team member is recoverable."

    is_disconnected Boolean
        "True if the team member's account was converted to individual account."

    example default
        is_recoverable = false
        is_disconnected = false

union_closed TeamMembershipType
    full
        "User uses a license and has full access to team resources like the shared quota."
    limited
        "User does not have access to the shared quota and team admins have restricted administrative control."

struct MemberProfile
    "Basic member profile."

    team_member_id team_common.TeamMemberId
        "ID of user as a member of a team."

    external_id String?
        "External ID that a team can attach to the user.
        An application using the API may find it easier to use their
        own IDs instead of Dropbox IDs like account_id or team_member_id."

    account_id users_common.AccountId?
        "A user's account identifier."

    email String
        "Email address of user."

    email_verified Boolean
        "Is true if the user's email is verified to be owned by the user."

    secondary_emails List(secondary_emails.SecondaryEmail)?
        "Secondary emails of a user."

    status TeamMemberStatus
        "The user's status as a member of a specific team."

    name users.Name
        "Representations for a person's name."

    membership_type TeamMembershipType
        "The user's membership type: full (normal team member) vs limited (does not use a license; no access to the team's shared quota)."

    invited_on common.DropboxTimestamp?
        "The date and time the user was invited to the team (contains value only when the member's status matches :field:`TeamMemberStatus.invited`)."

    joined_on common.DropboxTimestamp?
        "The date and time the user joined as a member of a specific team."

    suspended_on common.DropboxTimestamp?
        "The date and time the user was suspended from the team (contains value only when the member's status matches :field:`TeamMemberStatus.suspended`)."

    persistent_id String?
        "Persistent ID that a team can attach to the user.
        The persistent ID is unique ID to be used for SAML authentication."

    is_directory_restricted Boolean?
        "Whether the user is a directory restricted user."

    profile_photo_url String?
        "URL for the photo representing the user, if one is set."

    example default
        team_member_id = "dbmid:1234567"
        account_id = "dbid:AAH4f99T0taONIb-OurWxbNQ6ywGRopQngc"
        email = "mary@lamb.com"
        email_verified = true
        secondary_emails = [default, second_sec_email, third_sec_email]
        status = active
        name = default
        membership_type = full
        joined_on = "2015-05-12T15:50:38Z"
        profile_photo_url = "https://dl-web.dropbox.com/account_photo/get/dbaphid%3AAAHWGmIXV3sUuOmBfTz0wPsiqHUpBWvv3ZA?vers=1556069330102&size=128x128"

union_closed UserSelectorArg
    "Argument for selecting a single user, either by team_member_id, external_id or email."

    team_member_id team_common.TeamMemberId
    external_id team_common.MemberExternalId
    email common.EmailAddress

    example default
        team_member_id = "dbmid:efgh5678"

    example email
        email = "dan@hotmail.com"

union_closed UserSelectorError
    "Error that can be returned whenever a struct derived from :type:`UserSelectorArg` is used."

    user_not_found
        "No matching user found. The provided team_member_id, email, or external_id does not exist on this team."

union_closed UsersSelectorArg
    "Argument for selecting a list of users, either by team_member_ids, external_ids or emails."

    team_member_ids List(team_common.TeamMemberId)
        "List of member IDs."
    external_ids List(team_common.MemberExternalId)
        "List of external user IDs."
    emails List(common.EmailAddress)
        "List of email addresses."



#
# Handle DfB routes that do not have a better place to be.
#

#
# Route get_info
#

struct TeamGetInfoResult

    name String
        "The name of the team."

    team_id String
        "The ID of the team."

    num_licensed_users UInt32
        "The number of licenses available to the team."

    num_provisioned_users UInt32
        "The number of accounts that have been invited or are already active members of the team."

    num_used_licenses UInt32 = 0
        "The number of licenses used on the team."

    policies team_policies.TeamMemberPolicies

    example default
        name="Dropbox Inc."
        team_id="dbtid:1234abcd"
        num_licensed_users=5
        num_provisioned_users=2
        num_used_licenses=1
        policies=default

route get_info(Void, TeamGetInfoResult, Void)
    "Retrieves information about a team."

    attrs
        auth = "team"
        scope = "team_info.read"


#
# Structs for token/get_authenticated_admin
#

struct TokenGetAuthenticatedAdminResult
    "Results for :route:`token/get_authenticated_admin`."

    admin_profile TeamMemberProfile
        "The admin who authorized the token."

    example default
        admin_profile = default

union TokenGetAuthenticatedAdminError
    "Error returned by :route:`token/get_authenticated_admin`."

    mapping_not_found
        "The current token is not associated with a team admin, because mappings were not
        recorded when the token was created. Consider re-authorizing a new access token
        to record its authenticating admin."
    admin_not_active
        "Either the team admin that authorized this token is no longer an active member of the
        team or no longer a team admin."

#
# Route: token/get_authenticated_admin
#

route token/get_authenticated_admin(Void, TokenGetAuthenticatedAdminResult, TokenGetAuthenticatedAdminError)
    "Returns the member profile of the admin who generated the team access token used to make the call."

    attrs
        auth = "team"
        scope = "team_info.read"

#
# Common types
#

union Feature
    "A set of features that a Dropbox Business account may support."

    upload_api_rate_limit
        "The number of upload API calls allowed per month."
    has_team_shared_dropbox
        "Does this team have a shared team root."
    has_team_file_events
        "Does this team have file events."
    has_team_selective_sync
        "Does this team have team selective sync enabled."

union FeatureValue
    "The values correspond to entries in :type:`Feature`. You may get different value according
    to your Dropbox Business plan."

    upload_api_rate_limit UploadApiRateLimitValue
    has_team_shared_dropbox  HasTeamSharedDropboxValue
    has_team_file_events HasTeamFileEventsValue
    has_team_selective_sync HasTeamSelectiveSyncValue

    example uploadRateLimited
        upload_api_rate_limit = limited

    example hasTeamSharedDropbox
        has_team_shared_dropbox  = default

    example hasTeamFileEvents
        has_team_file_events = ex_no_file_events

    example HasTeamSelectiveSync
        has_team_selective_sync = default

union UploadApiRateLimitValue
    "The value for :field:`Feature.upload_api_rate_limit`."

    unlimited
        "This team has unlimited upload API quota. So far both server version account and legacy
         account type have unlimited monthly upload api quota."
    limit UInt32
        "The number of upload API calls allowed per month."

    example limited
        limit = 25000

union HasTeamSharedDropboxValue
    "The value for :field:`Feature.has_team_shared_dropbox`."

    has_team_shared_dropbox Boolean
        "Does this team have a shared team root."

    example default
        has_team_shared_dropbox = false

union HasTeamFileEventsValue
    "The value for :field:`Feature.has_team_file_events`."

    enabled Boolean
        "Does this team have file events."

    example ex_no_file_events
        enabled = false

union HasTeamSelectiveSyncValue
    "The value for :field:`Feature.has_team_selective_sync`."

    has_team_selective_sync Boolean
        "Does this team have team selective sync enabled."

    example default
        has_team_selective_sync = true

#
# Route: feature/get_value_batch
#

struct FeaturesGetValuesBatchArg
    features List(Feature)
        "A list of features in :type:`Feature`. If the list is empty,
        this route will return :type:`FeaturesGetValuesBatchError`."

    example listOfValues
        features = [upload_api_rate_limit, has_team_shared_dropbox]

struct FeaturesGetValuesBatchResult
    values List(FeatureValue)

    example listOfResults
        values = [uploadRateLimited, hasTeamSharedDropbox]

union FeaturesGetValuesBatchError
    empty_features_list
        "At least one :type:`Feature` must be included in the
        :type:`FeaturesGetValuesBatchArg`.features list."

route features/get_values(FeaturesGetValuesBatchArg, FeaturesGetValuesBatchResult, FeaturesGetValuesBatchError)
    "Get the values for one or more featues. This route allows you to check your account's
    capability for what feature you can access or what value you have for certain features.

    Permission : Team information."

    attrs
        auth = "team"
        scope = "team_info.read"

#
# Deprecated File Properties Routes
#

route properties/template/add(file_properties.AddTemplateArg, file_properties.AddTemplateResult, file_properties.ModifyTemplateError) deprecated
    "Permission : Team member file access."

    attrs
        auth = "team"
        scope = "files.team_metadata.write"

route properties/template/update(file_properties.UpdateTemplateArg, file_properties.UpdateTemplateResult, file_properties.ModifyTemplateError) deprecated
    "Permission : Team member file access."
    attrs
        auth = "team"
        scope = "files.team_metadata.write"

route properties/template/get(file_properties.GetTemplateArg, file_properties.GetTemplateResult, file_properties.TemplateError) deprecated
    "Permission : Team member file access. The scope for the route is files.team_metadata.write."
    attrs
        auth = "team"
        scope = "files.team_metadata.write"

route properties/template/list(Void, file_properties.ListTemplateResult, file_properties.TemplateError) deprecated
    "Permission : Team member file access. The scope for the route is files.team_metadata.write."
    attrs
        auth = "team"
        scope = "files.team_metadata.write"