Справочник по SDK для Python

Установка

$pip install frameio

Использование

Создайте экземпляр клиента и используйте его следующим образом.

1from frameio import (
2 Frameio,
3 SelectDefinitionParamsFieldConfiguration,
4 SelectDefinitionParamsFieldConfigurationOptionsItem,
5)
6from frameio.metadata_fields import CreateFieldDefinitionParamsData_Select
7
8client = Frameio(
9 token="YOUR_TOKEN",
10)
11client.metadata_fields.metadata_field_definitions_create(
12 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
13 data=CreateFieldDefinitionParamsData_Select(
14 field_configuration=SelectDefinitionParamsFieldConfiguration(
15 enable_add_new=False,
16 options=[
17 SelectDefinitionParamsFieldConfigurationOptionsItem(
18 display_name="Option 1",
19 ),
20 SelectDefinitionParamsFieldConfigurationOptionsItem(
21 display_name="Option 2",
22 ),
23 ],
24 ),
25 name="Fields definition name",
26 ),
27)

Асинхронный клиент

SDK также экспортирует асинхронный клиент, благодаря чему вы можете выполнять неблокирующие вызовы к нашему API-интерфейсу. Обратите внимание: если вы создаете асинхронный экземпляр httpx для передачи в этот клиент, используйте httpx.AsyncClient() вместо httpx.Client() (например, для параметра httpx_client данного клиента).

1import asyncio
2
3from frameio import (
4 AsyncFrameio,
5 SelectDefinitionParamsFieldConfiguration,
6 SelectDefinitionParamsFieldConfigurationOptionsItem,
7)
8from frameio.metadata_fields import CreateFieldDefinitionParamsData_Select
9
10client = AsyncFrameio(
11 token="YOUR_TOKEN",
12)
13
14
15async def main() -> None:
16 await client.metadata_fields.metadata_field_definitions_create(
17 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
18 data=CreateFieldDefinitionParamsData_Select(
19 field_configuration=SelectDefinitionParamsFieldConfiguration(
20 enable_add_new=False,
21 options=[
22 SelectDefinitionParamsFieldConfigurationOptionsItem(
23 display_name="Option 1",
24 ),
25 SelectDefinitionParamsFieldConfigurationOptionsItem(
26 display_name="Option 2",
27 ),
28 ],
29 ),
30 name="Fields definition name",
31 ),
32 )
33
34
35asyncio.run(main())

Обработка исключений

Если API-интерфейс возвращает код состояния ошибки (ответ 4xx или 5xx), будет создано исключение, являющееся подклассом следующей ошибки.

1from frameio.core.api_error import ApiError
2
3try:
4 client.metadata_fields.metadata_field_definitions_create(...)
5except ApiError as e:
6 print(e.status_code)
7 print(e.body)

Разбивка на страницы

Запросы с разбивкой на страницы будут возвращать объекты SyncPager или AsyncPager, которые можно использовать в качестве генераторов для базовых объектов.

1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6response = client.project_permissions.index(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 project_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 page_size=10,
10 include_total_count=False,
11)
12for item in response:
13 yield item
14# alternatively, you can paginate page-by-page
15for page in response.iter_pages():
16 yield page

Дополнительные возможности

Доступ к необработанным данным ответа

SDK предоставляет доступ к необработанным данным ответа, включая заголовки, с помощью свойства .with_raw_response. Свойство .with_raw_response возвращает «необработанный» клиент, который можно использовать для доступа к атрибутам .headers и .data.

1from frameio import Frameio
2
3client = Frameio(
4 ...,
5)
6response = (
7 client.metadata_fields.with_raw_response.metadata_field_definitions_create(
8 ...
9 )
10)
11print(response.headers) # access the response headers
12print(response.data) # access the underlying object
13pager = client.project_permissions.index(...)
14print(pager.response.headers) # access the response headers for the first page
15for item in pager:
16 print(item) # access the underlying object(s)
17for page in pager.iter_pages():
18 print(page.response.headers) # access the response headers for each page
19 for item in page:
20 print(item) # access the underlying object(s)

Повторные попытки

В SDK предусмотрен автоматический повтор попыток выполнить запрос с экспоненциальной задержкой. Повторные попытки будут выполняться до тех пор, пока запрос считается пригодным для повтора и количество попыток не превысит установленный лимит (по умолчанию: 2).

Запрос считается пригодным для повтора, если сервер возвращает любой из следующих кодов состояния HTTP:

  • 408 (истекло время ожидания)
  • 429 (слишком много запросов)
  • 5XX (внутренние ошибки сервера)


Используйте параметр запроса max_retries, чтобы настроить это поведение.

1client.metadata_fields.metadata_field_definitions_create(..., request_options={
2 "max_retries": 1
3})

Время ожидания

По умолчанию в SDK установлен лимит времени ожидания 60 секунд. Вы можете настроить этот лимит с помощью параметра времени ожидания как на уровне клиента, так и на уровне запроса.

1from frameio import Frameio
2
3client = Frameio(
4 ...,
5 timeout=20.0,
6)
7
8
9# Override timeout for a specific method
10client.metadata_fields.metadata_field_definitions_create(..., request_options={
11 "timeout_in_seconds": 1
12})

Пользовательский клиент

Вы можете переопределить клиент httpx, чтобы настроить его под свои задачи. Среди распространенных сценариев использования — поддержка прокси и транспортов.

1import httpx
2from frameio import Frameio
3
4client = Frameio(
5 ...,
6 httpx_client=httpx.Client(
7 proxy="http://my.test.proxy.example.com",
8 transport=httpx.HTTPTransport(local_address="0.0.0.0"),
9 ),
10)

Справочник

Разрешения учетной записи

Создает список ролей пользователя для указанной учетной записи.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6response = client.account_permissions.index(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 include_deactivated=True,
9 after="<opaque_cursor>",
10 page_size=10,
11 include_total_count=False,
12)
13for item in response:
14 yield item
15# alternatively, you can paginate page-by-page
16for page in response.iter_pages():
17 yield page

Параметры

account_id: Uuid —

include_deactivated: typing.Optional[bool] — поддерживает включение деактивированных пользователей в ответ. По умолчанию: false.

after: typing.Optional[RequestAfterOpaqueCursor]

Параметр запроса «непрозрачный курсор» для запросов, возвращающих разбитые на страницы результаты.

Это значение генерируется автоматически и включается в ссылки из предыдущего ответа. Оно не предназначено для чтения человеком.

page_size: typing.Optional[RequestPageSize] —

include_total_count: typing.Optional[IncludeTotalCount] —

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Учетные записи

Создает список учетных записей для текущего пользователя.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6response = client.accounts.index(
7 after="<opaque_cursor>",
8 page_size=10,
9 include_total_count=False,
10)
11for item in response:
12 yield item
13# alternatively, you can paginate page-by-page
14for page in response.iter_pages():
15 yield page

Параметры

after: typing.Optional[RequestAfterOpaqueCursor]

Параметр запроса «непрозрачный курсор» для запросов, возвращающих разбитые на страницы результаты.

Это значение генерируется автоматически и включается в ссылки из предыдущего ответа. Оно не предназначено для чтения человеком.

page_size: typing.Optional[RequestPageSize] —

include_total_count: typing.Optional[IncludeTotalCount] —

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Создает список журналов аудита с возможностями фильтрации через параметры запроса.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6response = client.accounts.auditlog_index(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 include="user",
9 after="<opaque_cursor>",
10 page_size=10,
11 include_total_count=False,
12 api_version="4.0",
13)
14for item in response:
15 yield item
16# alternatively, you can paginate page-by-page
17for page in response.iter_pages():
18 yield page

Параметры

account_id: Uuid

api_version: typing.Literal["4.0"]

include: typing.Optional[typing.Literal["user"]]

filters: typing.Optional[Filters]

after: typing.Optional[RequestAfterOpaqueCursor]

Параметр запроса «непрозрачный курсор» для запросов, возвращающих разбитые на страницы результаты.

Это значение генерируется автоматически и включается в ссылки из предыдущего ответа. Оно не предназначено для чтения человеком.

page_size: typing.Optional[RequestPageSize]

include_total_count: typing.Optional[IncludeTotalCount]

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Аутентификация

Выполняет аутентификацию с использованием типа разрешения client_credentials протокола OAuth 2.0. Этот процесс не подразумевает участия пользователя и не возвращает токен обновления. Когда срок действия токена доступа истекает, SDK автоматически запрашивает новый, используя учетные данные клиента. В асинхронном коде следует использовать класс AsyncServerToServerAuth.

usage
1from frameio import Frameio
2from frameio.auth import ServerToServerAuth
3
4auth = ServerToServerAuth(client_id="YOUR_CLIENT_ID", client_secret="YOUR_CLIENT_SECRET")
5client = Frameio(token=auth.get_token)

Параметры

client_id: str — идентификатор клиента Oauth в Adobe IMS.

client_secret: str — секретный ключ клиента Oauth в Adobe IMS.

scopes: str — разделенный пробелами список областей доступа (OAuth 2.0 RFC 6749). По умолчанию используется openid AdobeID frame.s2s.all.

ims_base_url: str — базовый URL-адрес сервиса IMS для работы в тестовых/альтернативных средах. По умолчанию указывает на производственную среду.

http_client: typing.Optional[httpx.Client] — необязательный клиент httpx.Client для прокси, TLS или пула подключений.

on_token_refreshed: typing.Optional[typing.Callable[[dict[str, Any]], None]] — необязательная функция обратного вызова, которая срабатывает после каждого запроса токена.

timeout: float — время ожидания запроса HTTP в секундах. По умолчанию: 30.

max_retries: int — максимальное количество повторных попыток при временных сбоях. По умолчанию: 2.

refresh_buffer: int — количество секунд до истечения срока действия токена, при котором запускается упреждающее обновление. По умолчанию: 60. Методы get_token() -&gt; str — возвращает действующий токен доступа, при необходимости выполняя его обновление. Передавайте в SDK ссылку на метод (не вызов): Frameio(token=auth.get_token). authenticate() -&gt; dict[str, Any] — выполняет явный запрос нового токена доступа. Возвращает словарь с ответом сервера, содержащий access_token, expires_in и другие параметры. revoke() -&gt; None — аннулирует оба токена на стороне сервера и очищает локальные данные о состоянии токенов. export_tokens() -&gt; dict[str, Any] — экспортирует текущее состояние токенов для последующего сохранения. import_tokens(data: dict[str, Any]) -&gt; None — восстанавливает состояние токенов из ранее экспортированного словаря.

Выполняет аутентификацию с использованием типа разрешения authorization_code протокола OAuth 2.0. Используйте этот процесс для серверных приложений, которые могут безопасно хранить секретный ключ клиента. В асинхронном коде следует использовать класс AsyncWebAppAuth.

usage
1import secrets
2from frameio import Frameio
3from frameio.auth import WebAppAuth
4
5auth = WebAppAuth(
6 client_id="YOUR_CLIENT_ID",
7 client_secret="YOUR_CLIENT_SECRET",
8 redirect_uri="https://myapp.com/callback",
9)
10url = auth.get_authorization_url(state=secrets.token_urlsafe(32))
11# redirect user to url ...
12auth.exchange_code(code="CODE_FROM_CALLBACK")
13client = Frameio(token=auth.get_token)

Параметры

client_id: str — идентификатор клиента Oauth в Adobe IMS.

client_secret: str — секретный ключ клиента Oauth в Adobe IMS.

redirect_uri: str — зарегистрированный URI перенаправления.

scopes: str — разделенный пробелами список областей доступа (OAuth 2.0 RFC 6749).

ims_base_url: str — базовый URL-адрес сервиса IMS для работы в тестовых/альтернативных средах. По умолчанию указывает на производственную среду.

http_client: typing.Optional[httpx.Client] — необязательный клиент httpx.Client для прокси, TLS или пула подключений.

on_token_refreshed: typing.Optional[typing.Callable[[dict[str, Any]], None]] — необязательная функция обратного вызова, которая срабатывает после каждого обновления токена.

timeout: float — время ожидания запроса HTTP в секундах. По умолчанию: 30.

max_retries: int — максимальное количество повторных попыток при временных сбоях. По умолчанию: 2.

refresh_buffer: int — количество секунд до истечения срока действия токена, при котором запускается упреждающее обновление. По умолчанию: 60. Методы get_token() -&gt; str — возвращает действующий токен доступа, при необходимости выполняя его обновление. Передавайте в SDK ссылку на метод: Frameio(token=auth.get_token). get_authorization_url(state: str) -&gt; str — формирует URL-адрес авторизации Adobe IMS. Передавайте непрозрачное значение CSRF/state, которое будет возвращаться обратно без изменений. exchange_code(code: str) -&gt; dict[str, Any] — обменивает код авторизации на токены доступа и обновления. refresh() -&gt; dict[str, Any] — вручную запускает обновление токенов. revoke() -&gt; None — аннулирует оба токена на стороне сервера и очищает локальные данные о состоянии токенов. export_tokens() -&gt; dict[str, Any] — экспортирует текущее состояние токенов для последующего сохранения. import_tokens(data: dict[str, Any]) -&gt; None — восстанавливает состояние токенов из ранее экспортированного словаря.

Выполняет аутентификацию с использованием комбинации authorization_code + PKCE (без секретного ключа клиента). Используйте этот процесс для браузерных или встроенных приложений, которые не могут безопасно хранить секретный ключ клиента. В асинхронном коде следует использовать класс AsyncSPAAuth.

usage
1import secrets
2from frameio import Frameio
3from frameio.auth import SPAAuth
4
5auth = SPAAuth(client_id="YOUR_CLIENT_ID", redirect_uri="https://myapp.com/cb")
6result = auth.get_authorization_url(state=secrets.token_urlsafe(32))
7# redirect user to result.url, store result.code_verifier
8auth.exchange_code(code="CODE_FROM_CALLBACK", code_verifier=result.code_verifier)
9client = Frameio(token=auth.get_token)

Параметры

client_id: str — идентификатор клиента Oauth в Adobe IMS.

redirect_uri: str — зарегистрированный URI перенаправления.

scopes: str — разделенный пробелами список областей доступа (OAuth 2.0 RFC 6749).

ims_base_url: str — базовый URL-адрес сервиса IMS для работы в тестовых/альтернативных средах. По умолчанию указывает на производственную среду.

http_client: typing.Optional[httpx.Client] — необязательный клиент httpx.Client для прокси, TLS или пула подключений.

on_token_refreshed: typing.Optional[typing.Callable[[dict[str, Any]], None]] — необязательная функция обратного вызова, которая срабатывает после каждого обновления токена.

timeout: float — время ожидания запроса HTTP в секундах. По умолчанию: 30.

max_retries: int — максимальное количество повторных попыток при временных сбоях. По умолчанию: 2.

refresh_buffer: int — количество секунд до истечения срока действия токена, при котором запускается упреждающее обновление. По умолчанию: 60. Методы get_token() -&gt; str — возвращает действующий токен доступа, при необходимости выполняя его обновление. Передавайте в SDK ссылку на метод: Frameio(token=auth.get_token). get_authorization_url(state: str) -&gt; AuthorizationUrlResult — формирует URL-адрес авторизации Adobe IMS с использованием механизма PKCE challenge. Возвращает объект AuthorizationUrlResult с атрибутами url и code_verifier. exchange_code(code: str, code_verifier: str) -&gt; dict[str, Any] — обменивает код авторизации совместно с проверочным ключом PKCE на токены. refresh() -&gt; dict[str, Any] — вручную запускает обновление токенов. revoke() -&gt; None — аннулирует оба токена на стороне сервера и очищает локальные данные о состоянии токенов. export_tokens() -&gt; dict[str, Any] — экспортирует текущее состояние токенов для последующего сохранения. import_tokens(data: dict[str, Any]) -&gt; None — восстанавливает состояние токенов из ранее экспортированного словаря.

Неизменяемый класс данных, возвращаемый методами SPAAuth.get_authorization_url() и AsyncSPAAuth.get_authorization_url(). Содержит URL-адрес авторизации и проверочный ключ PKCE. Атрибуты url: str — полный URL-адрес авторизации, на который необходимо перенаправить пользователя. code_verifier: str — проверочный ключ PKCE, который необходимо сохранить и затем передать в метод exchange_code().

Закрывает HTTP-клиенты уровня модуля, используемые модулем аутентификации. Вызывайте метод close_clients() в синхронном коде или await aclose_clients() в асинхронном при завершении работы приложения, чтобы освободить подключения.

usage
1from frameio.auth import close_clients
2
3# During application shutdown
4close_clients()

Исключения аутентификации

Все исключения аутентификации наследуются от FrameioAuthError.

ИсключениеОписание
FrameioAuthErrorБазовое исключение для всех ошибок модуля frameio.auth.
AuthenticationErrorСбой обмена или обновления токена. Содержит атрибуты error_code и error_description.
TokenExpiredErrorИстек срок действия токена обновления; требуется повторная аутентификация.
ConfigurationErrorОтсутствуют или являются недопустимыми обязательные параметры конфигурации.
NetworkErrorСбой сетевого запроса (превышение времени ожидания, ошибка подключения и т. д.).
RateLimitErrorAPI-интерфейс вернул ошибку 429, и исчерпан лимит повторных попыток. Содержит атрибут retry_after.
PKCEErrorСбой проверки PKCE.

Коллекции

Создает список коллекций для проекта.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6client.collections.index(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 project_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 include="creator,project",
10 after="<opaque_cursor>",
11 page_size=10,
12 include_total_count=False,
13)

Параметры

account_id: Uuid

project_id: Uuid

include: typing.Optional[CollectionInclude]

after: typing.Optional[RequestAfterOpaqueCursor]

Параметр запроса «непрозрачный курсор» для запросов, возвращающих разбитые на страницы результаты.

Это значение генерируется автоматически и включается в ссылки из предыдущего ответа. Оно не предназначено для чтения человеком.

page_size: typing.Optional[RequestPageSize]

include_total_count: typing.Optional[IncludeTotalCount]

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Показывает сведения о коллекции.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6client.collections.show(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 collection_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 include="creator,project",
10)

Параметры

account_id: Uuid

collection_id: Uuid

include: typing.Optional[CollectionInclude]

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Комментарии

Показывает отдельный комментарий к файлу.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6client.comments.show(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 comment_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 include="owner",
10)

Параметры

account_id: Uuid —

comment_id: Uuid —

include: typing.Optional[CommentsShowRequestInclude] —

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Удаляет комментарий из ресурса.

Лимиты запросов: 60 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6client.comments.delete(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 comment_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9)

Параметры

account_id: Uuid —

comment_id: Uuid —

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Обновляет комментарий к указанному ресурсу.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2from frameio.comments import UpdateCommentParamsData
3
4client = Frameio(
5 token="YOUR_TOKEN",
6)
7client.comments.update(
8 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 comment_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
10 timestamp_as_timecode=True,
11 data=UpdateCommentParamsData(
12 annotation='[{"tool":"rect","color":"#F22237","size":8,"x":0.277726001863933,"y":0.12909555568499534,"w":0.3153168321877913,"h":0.5308131407269339,"ix":0.277726001863933,"iy":0.12909555568499534,"radius":8}]',
13 completed=False,
14 page=4,
15 text="This is great!",
16 ),
17)

Параметры

account_id: Uuid —

comment_id: Uuid —

data: UpdateCommentParamsData

timestamp_as_timecode: typing.Optional[bool] —

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Создает список комментариев к указанному ресурсу.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6response = client.comments.index(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 file_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 include="owner",
10 after="<opaque_cursor>",
11 page_size=10,
12 include_total_count=False,
13)
14for item in response:
15 yield item
16# alternatively, you can paginate page-by-page
17for page in response.iter_pages():
18 yield page

Параметры

account_id: Uuid —

file_id: Uuid —

include: typing.Optional[CommentInclude] —

after: typing.Optional[RequestAfterOpaqueCursor]

Параметр запроса «непрозрачный курсор» для запросов, возвращающих разбитые на страницы результаты.

Это значение генерируется автоматически и включается в ссылки из предыдущего ответа. Оно не предназначено для чтения человеком.

page_size: typing.Optional[RequestPageSize] —

include_total_count: typing.Optional[IncludeTotalCount] —

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Создает комментарий к файлу.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2from frameio.comments import CreateCommentParamsData
3
4client = Frameio(
5 token="YOUR_TOKEN",
6)
7client.comments.create(
8 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 file_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
10 timestamp_as_timecode=True,
11 data=CreateCommentParamsData(
12 annotation='[{"tool":"rect","color":"#F22237","size":8,"x":0.277726001863933,"y":0.12909555568499534,"w":0.3153168321877913,"h":0.5308131407269339,"ix":0.277726001863933,"iy":0.12909555568499534,"radius":8}]',
13 completed=False,
14 page=4,
15 text="This is great!",
16 timestamp="00:00:02:12",
17 ),
18)

Параметры

account_id: Uuid —

file_id: Uuid —

data: CreateCommentParamsData

timestamp_as_timecode: typing.Optional[bool] —

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Создает вложение к существующему комментарию.

Лимиты запросов: 60 вызовов в течение 1 минуты для account_user.

usage
1from frameio import AttachmentInput, Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6client.comments.create_attachment(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 comment_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 data=AttachmentInput(
10 file_size=1024000,
11 media_type="image/png",
12 name="screenshot.png",
13 ),
14)

Параметры

account_id: Uuid

comment_id: Uuid

data: AttachmentInput

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Удаляет вложение из комментария.

Лимиты запросов: 60 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6client.comments.delete_attachment(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 comment_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 attachment_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
10)

Параметры

account_id: Uuid

comment_id: Uuid

attachment_id: Uuid

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Пользовательские действия

Создает список действий в указанной рабочей среде.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6client.custom_actions.actions_index(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 workspace_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 include="creator",
10 after="<opaque_cursor>",
11 page_size=10,
12 include_total_count=False,
13)

Параметры

account_id: Uuid

workspace_id: Uuid

include: typing.Optional[typing.Literal["creator"]]

after: typing.Optional[RequestAfterOpaqueCursor]

Параметр запроса «непрозрачный курсор» для запросов, возвращающих разбитые на страницы результаты.

Это значение генерируется автоматически и включается в ссылки из предыдущего ответа. Оно не предназначено для чтения человеком.

page_size: typing.Optional[RequestPageSize]

include_total_count: typing.Optional[IncludeTotalCount]

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Выводит сведения о пользовательском действии.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6client.custom_actions.actions_show(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 action_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 include="creator",
10)

Параметры

account_id: Uuid

action_id: Uuid

include: typing.Optional[typing.Literal["creator"]]

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Создает пользовательское действие в рабочей среде.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2from frameio.custom_actions import ActionCreateParamsData
3
4client = Frameio(
5 token="YOUR_TOKEN",
6)
7client.custom_actions.actions_create(
8 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 workspace_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
10 data=ActionCreateParamsData(
11 description="customizing our workflow",
12 event="my.event",
13 name="First Custom Action",
14 timeout=7,
15 url="https://example.com/custom-action",
16 ),
17)

Параметры

account_id: Uuid

workspace_id: Uuid

data: ActionCreateParamsData

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Обновляет сведения о пользовательском действии.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2from frameio.custom_actions import ActionUpdateParamsData
3
4client = Frameio(
5 token="YOUR_TOKEN",
6)
7client.custom_actions.actions_update(
8 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 action_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
10 data=ActionUpdateParamsData(
11 active=True,
12 description="customizing our workflow",
13 event="my.event",
14 multi_asset=True,
15 name="First Custom Action",
16 timeout=7,
17 url="https://example.com/custom-action",
18 ),
19)

Параметры

account_id: Uuid

action_id: Uuid

data: ActionUpdateParamsData

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Удаляет пользовательское действие.

Лимиты запросов: 60 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6client.custom_actions.actions_delete(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 action_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9)

Параметры

account_id: Uuid

action_id: Uuid

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Файлы

Создает список файлов в указанной папке.

Лимиты запросов: 5 вызовов в течение 1 секунды для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6client.files.list(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 include="media_links",
10 after="<opaque_cursor>",
11 page_size=10,
12 include_total_count=False,
13)

Параметры

account_id: Uuid

folder_id: Uuid

include: typing.Optional[FileWithMediaLinksInclude]

after: typing.Optional[RequestAfterOpaqueCursor]

Параметр запроса «непрозрачный курсор» для запросов, возвращающих разбитые на страницы результаты.

Это значение генерируется автоматически и включается в ссылки из предыдущего ответа. Оно не предназначено для чтения человеком.

page_size: typing.Optional[RequestPageSize]

include_total_count: typing.Optional[IncludeTotalCount]

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Создает новый файл в родительской папке. Создать файл (локальное добавление) и Создать файл (удаленное добавление) заменили эту конечную точку.

Лимиты запросов: 5 вызовов в течение 1 секунды для account_user.

usage
1from frameio import Frameio
2from frameio.files import FileCreateParamsData
3
4client = Frameio(
5 token="YOUR_TOKEN",
6)
7client.files.create(
8 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
10 data=FileCreateParamsData(
11 file_size=1137444,
12 media_type="image/png",
13 name="asset.png",
14 ),
15)

Параметры

account_id: Uuid

folder_id: Uuid

data: FileCreateParamsData

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Показывает сведения о файле.

Используйте параметр запроса include, чтобы в ответ выборочно включались дополнительные свойства.

Если вы передадите параметр media_links.original, а у пользователя не будет прав на загрузку этого файла, то эта конечная точка вернет ошибку 403 (запрещено). Если контент недоступен из-за того, что для данного пользователя требуется водяной знак, а запрошенные media_links его не поддерживают, то запрос будет выполнен успешно, но неподдерживаемые ссылки на медиафайлы примут значение null. Точно так же, если запрашиваемая ссылка на перекодирование не существует для определенного файла (например, включение media_links.video_h264_180 для статического изображения) или процесс перекодирования еще не завершен (то есть статус файла — «добавлен», а не «перекодирован»), то в полезной нагрузке ответа эта ссылка также примет значение null. Проще говоря, клиент должен корректно обрабатывать ссылки на медиафайлы со значением null.

Лимиты запросов: 5 вызовов в течение 1 секунды для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6client.files.show(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 file_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 include="media_links",
10)

Параметры

account_id: Uuid

file_id: Uuid

include: typing.Optional[FileWithMediaLinksInclude]

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Удаляет файл по идентификатору.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6client.files.delete(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 file_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9)

Параметры

account_id: Uuid

file_id: Uuid

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Обновляет сведения о файле.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2from frameio.files import FileUpdateParamsData
3
4client = Frameio(
5 token="YOUR_TOKEN",
6)
7client.files.update(
8 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 file_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
10 data=FileUpdateParamsData(
11 name="asset.png",
12 ),
13)

Параметры

account_id: Uuid

file_id: Uuid

data: FileUpdateParamsData

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Копирует файл.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2from frameio.files import FileCopyParamsData
3
4client = Frameio(
5 token="YOUR_TOKEN",
6)
7client.files.copy(
8 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 file_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
10 copy_metadata=True,
11 copy_comments="none",
12 data=FileCopyParamsData(
13 parent_id="2e426fe0-f965-4594-8b2b-b4dff1dc00ec",
14 ),
15)

Параметры

account_id: Uuid

file_id: Uuid

copy_metadata: typing.Optional[bool] — копировать ли значения метаданных вместе с файлом

copy_comments: typing.Optional[FilesCopyRequestCopyComments] — какие комментарии копировать вместе с файлом

data: typing.Optional[FileCopyParamsData]

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Создает новый файл в родительской папке путем удаленного добавления.

Лимиты запросов: 5 вызовов в течение 1 секунды для account_user.

usage
1from frameio import Frameio
2from frameio.files import FileCreateRemoteUploadParamsData
3
4client = Frameio(
5 token="YOUR_TOKEN",
6)
7client.files.create_remote_upload(
8 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
10 data=FileCreateRemoteUploadParamsData(
11 name="asset.png",
12 source_url="https://upload.wikimedia.org/wikipedia/commons/e/e1/White_Pixel_1x1.png",
13 ),
14)

Параметры

account_id: Uuid

folder_id: Uuid

data: FileCreateRemoteUploadParamsData

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Перемещает файл в папку или стек версий.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2from frameio.files import FileMoveParamsData
3
4client = Frameio(
5 token="YOUR_TOKEN",
6)
7client.files.move(
8 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 file_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
10 data=FileMoveParamsData(
11 parent_id="2e426fe0-f965-4594-8b2b-b4dff1dc00ec",
12 ),
13)

Параметры

account_id: Uuid

file_id: Uuid

data: FileMoveParamsData

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Создает новый файл в родительской папке путем локального добавления.

Лимиты запросов: 5 вызовов в течение 1 секунды для account_user.

usage
1from frameio import Frameio
2from frameio.files import FileCreateLocalUploadParamsData
3
4client = Frameio(
5 token="YOUR_TOKEN",
6)
7client.files.create_local_upload(
8 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
10 data=FileCreateLocalUploadParamsData(
11 file_size=1137444,
12 name="asset.png",
13 ),
14)

Параметры

account_id: Uuid

folder_id: Uuid

data: FileCreateLocalUploadParamsData

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Показать сведения о статусе добавления файла.

Лимиты запросов: 5 вызовов в течение 1 секунды для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6client.files.show_file_upload_status(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 file_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9)

Параметры

account_id: Uuid

file_id: Uuid

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Импортирует файл из хранилища, настроенного в учетной записи.

Лимиты запросов: 5 вызовов в течение 1 секунды для account_user.

usage
1from frameio import Frameio
2from frameio.files import FileImportParamsData
3
4client = Frameio(
5 token="YOUR_TOKEN",
6)
7client.files.import_file(
8 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
10 data=FileImportParamsData(
11 key="uploads/08091b0f-a541-42f5-a059-5e8c4afecc12/original.png",
12 name="asset.png",
13 storage_location="123e4567-e89b-12d3-a456-426614174000",
14 ),
15)

Параметры

account_id: Uuid

folder_id: Uuid

data: FileImportParamsData

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Разрешения папки

Создает список ролей пользователей для указанной папки.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6client.folder_permissions.folder_user_roles_index(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 include_deactivated=True,
10 after="<opaque_cursor>",
11 page_size=10,
12 include_total_count=False,
13)

Параметры

account_id: Uuid

folder_id: Uuid

include_deactivated: typing.Optional[bool] — поддерживает включение деактивированных пользователей в ответ. По умолчанию: false.

after: typing.Optional[RequestAfterOpaqueCursor]

Параметр запроса «непрозрачный курсор» для запросов, возвращающих разбитые на страницы результаты.

Это значение генерируется автоматически и включается в ссылки из предыдущего ответа. Оно не предназначено для чтения человеком.

page_size: typing.Optional[RequestPageSize]

include_total_count: typing.Optional[IncludeTotalCount]

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Обновляет роли пользователей для указанной папки, если пользователь уже добавлен в нее. Если пользователь не добавлен в эту папку, он будет добавлен с указанной ролью.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio, UpdateUserRolesParamsData
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6client.folder_permissions.folder_user_roles_update(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 user_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
10 data=UpdateUserRolesParamsData(
11 role="editor",
12 ),
13)

Параметры

account_id: Uuid

folder_id: Uuid

user_id: Uuid

data: UpdateUserRolesParamsData

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Удаляет пользователя из указанной папки.

Лимиты запросов: 60 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6client.folder_permissions.delete(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 user_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
10)

Параметры

account_id: Uuid

folder_id: Uuid

user_id: Uuid

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Папки

Показывает сведения о папке.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6client.folders.show(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 include="creator",
10)

Параметры

account_id: Uuid —

folder_id: Uuid —

include: typing.Optional[AssetInclude] —

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Удаляет папку по идентификатору.

Лимиты запросов: 60 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6client.folders.delete(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9)

Параметры

account_id: Uuid —

folder_id: Uuid —

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Обновляет сведения о папке.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2from frameio.folders import FolderUpdateParamsData
3
4client = Frameio(
5 token="YOUR_TOKEN",
6)
7client.folders.update(
8 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
10 data=FolderUpdateParamsData(
11 name="Folder name",
12 ),
13)

Параметры

account_id: Uuid —

folder_id: Uuid —

data: FolderUpdateParamsData

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Создает список дочерних элементов в указанной папке.

Используйте параметр запроса include, чтобы в ответ выборочно включались дополнительные свойства.

Если вы передадите параметр media_links.original, а у пользователя не будет прав на загрузку файлов в соответствующем проекте, то эта конечная точка вернет ошибку 403 (запрещено). Если контент недоступен из-за того, что для данного пользователя требуется водяной знак, а запрошенные media_links его не поддерживают, то запрос будет выполнен успешно, но неподдерживаемые ссылки на медиафайлы примут значение null. Точно так же, если запрашиваемая ссылка на перекодирование не существует для определенного файла (например, включение media_links.video_h264_180 для статического изображения) или процесс перекодирования еще не завершен (то есть статус файла — «добавлен», а не «перекодирован»), то в полезной нагрузке ответа ссылка на медиафайл также примет значение null. Проще говоря, клиент должен корректно обрабатывать ссылки на медиафайлы со значением null.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6client.folders.index(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 include="media_links",
10 type="file,folder,version_stack",
11 after="<opaque_cursor>",
12 page_size=10,
13 include_total_count=False,
14)

Параметры

account_id: Uuid —

folder_id: Uuid —

include: typing.Optional[FileWithMediaLinksInclude] —

type: typing.Optional[ChildrenType] —

after: typing.Optional[RequestAfterOpaqueCursor]

Параметр запроса «непрозрачный курсор» для запросов, возвращающих разбитые на страницы результаты.

Это значение генерируется автоматически и включается в ссылки из предыдущего ответа. Оно не предназначено для чтения человеком.

page_size: typing.Optional[RequestPageSize] —

include_total_count: typing.Optional[IncludeTotalCount] —

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Копирует папку.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2from frameio.folders import FolderCopyParamsData
3
4client = Frameio(
5 token="YOUR_TOKEN",
6)
7client.folders.copy(
8 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
10 copy_metadata=True,
11 data=FolderCopyParamsData(
12 parent_id="2e426fe0-f965-4594-8b2b-b4dff1dc00ec",
13 ),
14)

Параметры

account_id: Uuid —

folder_id: Uuid —

copy_metadata: typing.Optional[bool] — копировать ли значения метаданных вместе с папкой

data: typing.Optional[FolderCopyParamsData]

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Создает список папок в указанной папке.

Лимиты запросов: 5 вызовов в течение 1 секунды для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6client.folders.list(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 include="creator",
10 after="<opaque_cursor>",
11 page_size=10,
12 include_total_count=False,
13)

Параметры

account_id: Uuid —

folder_id: Uuid —

include: typing.Optional[AssetInclude] —

after: typing.Optional[RequestAfterOpaqueCursor]

Параметр запроса «непрозрачный курсор» для запросов, возвращающих разбитые на страницы результаты.

Это значение генерируется автоматически и включается в ссылки из предыдущего ответа. Оно не предназначено для чтения человеком.

page_size: typing.Optional[RequestPageSize] —

include_total_count: typing.Optional[IncludeTotalCount] —

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Создает новую папку внутри указанного параметра пути folder_id.

Лимиты запросов: 3 вызова в течение 1 секунды для account_user.

usage
1from frameio import Frameio
2from frameio.folders import FolderCreateParamsData
3
4client = Frameio(
5 token="YOUR_TOKEN",
6)
7client.folders.create(
8 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
10 data=FolderCreateParamsData(
11 name="Folder name",
12 ),
13)

Параметры

account_id: Uuid —

folder_id: Uuid —

data: FolderCreateParamsData

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Перемещает папку в другую папку.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2from frameio.folders import FolderMoveParamsData
3
4client = Frameio(
5 token="YOUR_TOKEN",
6)
7client.folders.move(
8 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
10 data=FolderMoveParamsData(
11 parent_id="2e426fe0-f965-4594-8b2b-b4dff1dc00ec",
12 ),
13)

Параметры

account_id: Uuid —

folder_id: Uuid —

data: FolderMoveParamsData

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Группы

Создает список групп в учетной записи.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6client.groups.index(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 include="creator",
9 sort="creator_asc",
10 after="<opaque_cursor>",
11 page_size=10,
12 include_total_count=False,
13)

Параметры

account_id: Uuid

include: typing.Optional[typing.Literal["creator"]]

sort: typing.Optional[GroupsIndexRequestSort] — сортировка групп по параметрам запроса

after: typing.Optional[RequestAfterOpaqueCursor]

Параметр запроса «непрозрачный курсор» для запросов, возвращающих разбитые на страницы результаты.

Это значение генерируется автоматически и включается в ссылки из предыдущего ответа. Оно не предназначено для чтения человеком.

page_size: typing.Optional[RequestPageSize]

include_total_count: typing.Optional[IncludeTotalCount]

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Показывает сведения о группе.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6client.groups.show(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 group_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 include="creator",
10)

Параметры

account_id: Uuid

group_id: Uuid

include: typing.Optional[typing.Literal["creator"]]

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Создает группу для текущей учетной записи.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2from frameio.groups import CreateGroupParamsData
3
4client = Frameio(
5 token="YOUR_TOKEN",
6)
7client.groups.create(
8 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 data=CreateGroupParamsData(
10 emoji="smile",
11 name="group-1",
12 ),
13)

Параметры

account_id: Uuid

data: CreateGroupParamsData

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Обновляет сведения о группе.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2from frameio.groups import UpdateGroupParamsData
3
4client = Frameio(
5 token="YOUR_TOKEN",
6)
7client.groups.update(
8 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 group_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
10 data=UpdateGroupParamsData(
11 emoji="smile",
12 name="group-1",
13 ),
14)

Параметры

account_id: Uuid

group_id: Uuid

data: UpdateGroupParamsData

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Метаданные

Обновляет значения метаданных сразу в нескольких файлах.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2from frameio.metadata import (
3 BulkUpdateMetadataParamsData,
4 BulkUpdateMetadataParamsDataValuesItem,
5)
6
7client = Frameio(
8 token="YOUR_TOKEN",
9)
10client.metadata.bulk_update(
11 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
12 project_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
13 data=BulkUpdateMetadataParamsData(
14 file_ids=[
15 "09b31c2a-04de-464a-a593-643a36ef0d98",
16 "b967fc36-4e18-4b48-a3ab-c790100e2baa",
17 ],
18 values=[
19 BulkUpdateMetadataParamsDataValuesItem(
20 field_definition_id="ff41ce50-269b-4624-8306-aac10e28ab94",
21 value=[
22 {
23 "id": "e60f47b4-cf8e-4273-96d5-3258a830a0aa",
24 "type": "user",
25 },
26 {
27 "id": "24eeaf7e-ce27-4555-bc77-cce39900626d",
28 "type": "account_user_group",
29 },
30 ],
31 )
32 ],
33 ),
34)

Параметры

account_id: Uuid —

project_id: Uuid —

data: BulkUpdateMetadataParamsData

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Показывает метаданные файла.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6client.metadata.show(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 file_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 show_null=True,
10)

Параметры

account_id: Uuid —

file_id: Uuid —

show_null: typing.Optional[bool] —

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Поля метаданных

Удаляет определения пользовательских полей на уровне учетной записи.

Лимиты запросов: 60 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6client.metadata_fields.metadata_field_definitions_delete(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 field_definition_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9)

Параметры

account_id: Uuid —

field_definition_id: Uuid —

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Обновляет определения пользовательских полей на уровне учетной записи.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
1from frameio import (
2 Frameio,
3 UpdateSelectDefinitionParamsFieldConfiguration,
4 UpdateSelectDefinitionParamsFieldConfigurationOptionsItem,
5)
6from frameio.metadata_fields import UpdateFieldDefinitionParamsData_Select
7
8client = Frameio(
9 token="YOUR_TOKEN",
10)
11client.metadata_fields.metadata_field_definitions_update(
12 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
13 field_definition_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
14 data=UpdateFieldDefinitionParamsData_Select(
15 field_configuration=UpdateSelectDefinitionParamsFieldConfiguration(
16 enable_add_new=False,
17 options=[
18 UpdateSelectDefinitionParamsFieldConfigurationOptionsItem(
19 display_name="Option 1",
20 ),
21 UpdateSelectDefinitionParamsFieldConfigurationOptionsItem(
22 display_name="Option 2",
23 ),
24 ],
25 ),
26 name="Updated-Field-Name",
27 ),
28)

Параметры

account_id: Uuid —

field_definition_id: Uuid —

data: typing.Optional[UpdateFieldDefinitionParamsData]

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Создает список определений полей на уровне учетной записи.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6client.metadata_fields.metadata_field_definitions_index(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 after="<opaque_cursor>",
9 page_size=10,
10 include_total_count=False,
11)

Параметры

account_id: Uuid —

include: typing.Optional[typing.Literal[“creator”]] —

after: typing.Optional[RequestAfterOpaqueCursor]

Параметр запроса «непрозрачный курсор» для запросов, возвращающих разбитые на страницы результаты.

Это значение генерируется автоматически и включается в ссылки из предыдущего ответа. Оно не предназначено для чтения человеком.

page_size: typing.Optional[RequestPageSize] —

include_total_count: typing.Optional[IncludeTotalCount] —

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Создает определения полей на уровне учетной записи.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
1from frameio import (
2 Frameio,
3 SelectDefinitionParamsFieldConfiguration,
4 SelectDefinitionParamsFieldConfigurationOptionsItem,
5)
6from frameio.metadata_fields import CreateFieldDefinitionParamsData_Select
7
8client = Frameio(
9 token="YOUR_TOKEN",
10)
11client.metadata_fields.metadata_field_definitions_create(
12 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
13 data=CreateFieldDefinitionParamsData_Select(
14 field_configuration=SelectDefinitionParamsFieldConfiguration(
15 enable_add_new=False,
16 options=[
17 SelectDefinitionParamsFieldConfigurationOptionsItem(
18 display_name="Option 1",
19 ),
20 SelectDefinitionParamsFieldConfigurationOptionsItem(
21 display_name="Option 2",
22 ),
23 ],
24 ),
25 name="Fields definition name",
26 ),
27)

Параметры

account_id: Uuid —

data: typing.Optional[CreateFieldDefinitionParamsData]

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Разрешения проекта

Создает список ролей пользователя для указанного проекта.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6response = client.project_permissions.index(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 project_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 include_deactivated=True,
10 after="<opaque_cursor>",
11 page_size=10,
12 include_total_count=False,
13)
14for item in response:
15 yield item
16# alternatively, you can paginate page-by-page
17for page in response.iter_pages():
18 yield page

Параметры

account_id: Uuid —

project_id: Uuid —

include_deactivated: typing.Optional[bool] — поддерживает включение деактивированных пользователей в ответ. По умолчанию: false.

after: typing.Optional[RequestAfterOpaqueCursor]

Параметр запроса «непрозрачный курсор» для запросов, возвращающих разбитые на страницы результаты.

ПРИМЕЧАНИЕ. Это значение генерируется автоматически и включается в ссылки из предыдущего ответа. Оно не предназначено для чтения человеком.

page_size: typing.Optional[RequestPageSize] —

include_total_count: typing.Optional[IncludeTotalCount] —

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Удаляет пользователя из указанного проекта.

Лимиты запросов: 60 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6client.project_permissions.delete(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 project_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 user_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
10)

Параметры

account_id: Uuid —

project_id: Uuid —

user_id: Uuid —

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Обновляет роли пользователя для указанного проекта, если пользователь уже добавлен в него. Если пользователь не добавлен в проект, он будет добавлен с указанной ролью.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio, UpdateUserRolesParamsData
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6client.project_permissions.project_user_roles_update(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 project_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 user_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
10 data=UpdateUserRolesParamsData(
11 role="editor",
12 ),
13)

Параметры

account_id: Uuid —

project_id: Uuid —

user_id: Uuid —

data: UpdateUserRolesParamsData

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Проекты

Показывает сведения о проекте.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6client.projects.show(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 project_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9)

Параметры

account_id: Uuid —

project_id: Uuid —

include: typing.Optional[typing.Literal["owner"]] —

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Удаляет проект.

Лимиты запросов: 60 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6client.projects.delete(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 project_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9)

Параметры

account_id: Uuid —

project_id: Uuid —

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Обновляет сведения о проекте.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2from frameio.projects import ProjectUpdateParamsData
3
4client = Frameio(
5 token="YOUR_TOKEN",
6)
7client.projects.update(
8 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 project_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
10 data=ProjectUpdateParamsData(
11 name="Project Name",
12 restricted=True,
13 status="active",
14 ),
15)

Параметры

account_id: Uuid —

project_id: Uuid —

data: ProjectUpdateParamsData

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Создает список проектов в указанной рабочей среде.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6response = client.projects.index(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 workspace_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 after="<opaque_cursor>",
10 page_size=10,
11 include_total_count=False,
12)
13for item in response:
14 yield item
15# alternatively, you can paginate page-by-page
16for page in response.iter_pages():
17 yield page

Параметры

account_id: Uuid —

workspace_id: Uuid —

include: typing.Optional[typing.Literal["owner"]] —

after: typing.Optional[RequestAfterOpaqueCursor]

Параметр запроса «непрозрачный курсор» для запросов, возвращающих разбитые на страницы результаты.

Это значение генерируется автоматически и включается в ссылки из предыдущего ответа. Оно не предназначено для чтения человеком.

page_size: typing.Optional[RequestPageSize] —

include_total_count: typing.Optional[IncludeTotalCount] —

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Создает проект в указанной рабочей среде.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2from frameio.projects import ProjectParamsData
3
4client = Frameio(
5 token="YOUR_TOKEN",
6)
7client.projects.create(
8 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 workspace_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
10 data=ProjectParamsData(
11 name="Project Name",
12 restricted=True,
13 ),
14)

Параметры

account_id: Uuid —

workspace_id: Uuid —

data: ProjectParamsData

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Создает список всех проектов, к которым имеет доступ аутентифицированный пользователь в указанной учетной записи.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6response = client.projects.account_projects_index(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 include="owner",
9 sort="name_asc",
10 after="<opaque_cursor>",
11 page_size=10,
12 include_total_count=False,
13)
14for item in response:
15 yield item
16# alternatively, you can paginate page-by-page
17for page in response.iter_pages():
18 yield page

Параметры

account_id: Uuid

include: typing.Optional[typing.Literal["owner"]]

sort: typing.Optional[AccountProjectsIndexRequestSort] — сортировка проектов по параметрам запроса

after: typing.Optional[RequestAfterOpaqueCursor]

Параметр запроса «непрозрачный курсор» для запросов, возвращающих разбитые на страницы результаты.

Это значение генерируется автоматически и включается в ссылки из предыдущего ответа. Оно не предназначено для чтения человеком.

page_size: typing.Optional[RequestPageSize] —

include_total_count: typing.Optional[IncludeTotalCount] —

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Создает список проектов, в которые текущий пользователь был приглашен в рамках указанной учетной записи, но к которым у него нет доступа на уровне рабочей среды. Это проекты, в которых пользователь имеет доступ для совместной работы на уровне конкретного проекта без более широких разрешений на уровне команды/рабочей среды.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6response = client.projects.invited_projects_index(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 include="owner",
9 sort="name_asc",
10 after="<opaque_cursor>",
11 page_size=10,
12 include_total_count=False,
13)
14for item in response:
15 yield item
16# alternatively, you can paginate page-by-page
17for page in response.iter_pages():
18 yield page

Параметры

account_id: Uuid

include: typing.Optional[typing.Literal["owner"]]

sort: typing.Optional[InvitedProjectsIndexRequestSort] — сортировка проектов по параметрам запроса

after: typing.Optional[RequestAfterOpaqueCursor]

Параметр запроса «непрозрачный курсор» для запросов, возвращающих разбитые на страницы результаты.

Это значение генерируется автоматически и включается в ссылки из предыдущего ответа. Оно не предназначено для чтения человеком.

page_size: typing.Optional[RequestPageSize] —

include_total_count: typing.Optional[IncludeTotalCount] —

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Поиск

Выполняет поиск по ресурсам, папкам и проектам в учетной записи.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2from frameio.search import SearchParamsFilters
3
4client = Frameio(
5 token="YOUR_TOKEN",
6)
7client.search.search(
8 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 engine="nlp",
10 query="red car driving on highway",
11 filters=SearchParamsFilters(
12 files_and_version_stacks=True,
13 folders=False,
14 projects=False,
15 ),
16 after="<opaque_cursor>",
17 page_size=10,
18 include_total_count=False,
19)

Параметры

account_id: Uuid

engine: SearchParamsEngine — используемая поисковая система. Доступные поисковые системы: lexical, nlp.

query: str — текст поискового запроса

after: typing.Optional[RequestAfterOpaqueCursor]

Параметр запроса «непрозрачный курсор» для запросов, возвращающих разбитые на страницы результаты.

Это значение генерируется автоматически и включается в ссылки из предыдущего ответа. Оно не предназначено для чтения человеком.

page_size: typing.Optional[RequestPageSize]

include_total_count: typing.Optional[IncludeTotalCount]

filters: typing.Optional[SearchParamsFilters] — фильтры возвращаемых типов результатов

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Общие ресурсы

Показывает отдельный общий ресурс.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6client.shares.show(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 share_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9)

Параметры

account_id: Uuid

share_id: Uuid

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Удаляет общий ресурс.

Лимиты запросов: 60 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6client.shares.delete(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 share_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9)

Параметры

account_id: Uuid

share_id: Uuid

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Обновляет общий ресурс.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
1import datetime
2
3from frameio import Frameio
4from frameio.shares import UpdateShareParamsData
5
6client = Frameio(
7 token="YOUR_TOKEN",
8)
9client.shares.update(
10 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
11 share_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
12 data=UpdateShareParamsData(
13 access="public",
14 description="A descriptive summary of the share",
15 downloading_enabled=True,
16 expiration=datetime.datetime.fromisoformat(
17 "2026-01-22 17:04:53+00:00",
18 ),
19 name="Share Name",
20 passphrase="as!dfj39sd(*",
21 ),
22)

Параметры

account_id: Uuid

share_id: Uuid

data: UpdateShareParamsData

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Создает список рецензентов общего ресурса.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6response = client.shares.list_reviewers(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 share_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 after="<opaque_cursor>",
10 page_size=10,
11 include_total_count=False,
12)
13for item in response:
14 yield item
15# alternatively, you can paginate page-by-page
16for page in response.iter_pages():
17 yield page

Параметры

account_id: Uuid

share_id: Uuid

after: typing.Optional[RequestAfterOpaqueCursor]

Параметр запроса «непрозрачный курсор» для запросов, возвращающих разбитые на страницы результаты.

Это значение генерируется автоматически и включается в ссылки из предыдущего ответа. Оно не предназначено для чтения человеком.

page_size: typing.Optional[RequestPageSize] —

include_total_count: typing.Optional[IncludeTotalCount] —

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Добавляет рецензентов в безопасный общий ресурс по трем типам идентификаторов: adobe_user_id, email и user_id.

Запрос может включать только один параметр типа идентификатора.

email — единственный идентификатор, позволяющий добавлять в общий ресурс рецензентов, у которых нет учетной записи участника Frame в учетной записи, к которой принадлежит общий ресурс.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2from frameio.shares import (
3 AddReviewersToShareParamsData,
4 AddReviewersToShareParamsDataReviewers,
5)
6
7client = Frameio(
8 token="YOUR_TOKEN",
9)
10client.shares.add_reviewers(
11 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
12 share_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
13 data=AddReviewersToShareParamsData(
14 message="Please join my share!",
15 reviewers=AddReviewersToShareParamsDataReviewers(
16 emails=["email1@domain.com", "email2@domain.com"],
17 ),
18 ),
19)

Параметры

account_id: Uuid

share_id: Uuid

data: AddReviewersToShareParamsData

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Удаляет рецензентов из защищенного общего ресурса по трем типам идентификаторов: adobe_user_id, email и user_id.

Запрос может включать только один параметр типа идентификатора.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2from frameio.shares import (
3 RemoveReviewerParamsData,
4 RemoveReviewerParamsDataReviewers,
5)
6
7client = Frameio(
8 token="YOUR_TOKEN",
9)
10client.shares.remove_reviewers(
11 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
12 share_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
13 data=RemoveReviewerParamsData(
14 reviewers=RemoveReviewerParamsDataReviewers(
15 adobe_user_ids=[
16 "2A3C1A3D66C621B20A494021@176719f5667c82b4499999.e"
17 ],
18 ),
19 ),
20)

Параметры

account_id: Uuid

share_id: Uuid

data: RemoveReviewerParamsData

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Удаляет ресурс, который в настоящий момент указан в ссылке общего доступа, из этой ссылки.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6client.shares.remove_asset(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 share_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 asset_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
10)

Параметры

account_id: Uuid

share_id: Uuid

asset_id: Uuid

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Добавляет новый ресурс в общий доступ.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2from frameio.shares import AddAssetParamsData
3
4client = Frameio(
5 token="YOUR_TOKEN",
6)
7client.shares.add_asset(
8 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 share_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
10 data=AddAssetParamsData(
11 asset_id="0cc1cb59-1d7c-4176-8532-afe099897318",
12 ),
13)

Параметры

account_id: Uuid

share_id: Uuid

data: AddAssetParamsData

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Создает список общих ресурсов в проекте.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6response = client.shares.index(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 project_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 after="<opaque_cursor>",
10 page_size=10,
11 include_total_count=False,
12)
13for item in response:
14 yield item
15# alternatively, you can paginate page-by-page
16for page in response.iter_pages():
17 yield page

Параметры

account_id: Uuid

project_id: Uuid

after: typing.Optional[RequestAfterOpaqueCursor]

Параметр запроса «непрозрачный курсор» для запросов, возвращающих разбитые на страницы результаты.

Это значение генерируется автоматически и включается в ссылки из предыдущего ответа. Оно не предназначено для чтения человеком.

page_size: typing.Optional[RequestPageSize] —

include_total_count: typing.Optional[IncludeTotalCount] —

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Создает общий ресурс.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
1import datetime
2
3from frameio import Frameio
4from frameio.shares import CreateShareParamsData_Asset
5
6client = Frameio(
7 token="YOUR_TOKEN",
8)
9client.shares.create(
10 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
11 project_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
12 data=CreateShareParamsData_Asset(
13 access="public",
14 asset_ids=[
15 "12eb1446-5736-4f93-85fc-3b636f156211",
16 "f23a3b3e-7b1f-4655-b91a-acf0566e5bb9",
17 ],
18 downloading_enabled=True,
19 expiration=datetime.datetime.fromisoformat(
20 "2026-01-22 17:04:53+00:00",
21 ),
22 name="Share Name",
23 passphrase="as!dfj39sd(*",
24 ),
25)

Параметры

account_id: Uuid

project_id: Uuid

data: CreateShareParamsData

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Загрузка

Добавьте локальный файл в Frame.io, используя предварительно подписанные URL-адреса, возвращенные методом client.files.create_local_upload(...). FrameioUploader — это легковесная обертка, которая считывает параметры upload_urls, file_size и media_type из ответа FileWithUploadUrls и выполняет многопоточное добавление фрагментами в хранилище S3.

usage
1from frameio import Frameio
2from frameio.files import FileCreateLocalUploadParamsData
3from frameio.upload import FrameioUploader
4
5client = Frameio(
6 token="YOUR_TOKEN",
7)
8response = client.files.create_local_upload(
9 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
10 folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
11 data=FileCreateLocalUploadParamsData(
12 file_size=1137444,
13 name="asset.png",
14 ),
15)
16with open("asset.png", "rb") as f:
17 FrameioUploader(response.data, f).upload()

Параметры

asset: FileWithUploadUrls — экземпляр FileWithUploadUrls, возвращенный client.files.create_local_upload(...).

file: typing.BinaryIO — файлоподобный объект, открытый в режиме бинарного чтения. ("rb").

max_workers: int — уровень параллелизма пула потоков, передаваемый базовому инструменту для добавления. По умолчанию: 5.

headers: typing.Optional[typing.Dict[str, str]] — дополнительные заголовки, добавляемые в каждый запрос PUT к хранилищу S3. По умолчанию: {"x-amz-acl": "private"}, как того требует Frame.io.

max_retries: int — максимальное количество повторных попыток для каждого фрагмента. По умолчанию: 3.

on_progress: typing.Optional[typing.Callable[[int, int], None]] — дополнительный обратный вызов, выполняемый после каждого фрагмента с (bytes_uploaded_so_far, total_bytes). Методы upload() -&gt; None — добавляет файл. Блокирует действия до завершения операции или возвращает ошибку.

Пользователи

Проверяет сведения о пользователе, связанном с токеном Bearer.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6client.users.show()

Параметры

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Стеки версий

Создает список дочерних элементов (файлов) в указанном стеке версий.

Используйте параметр запроса include, чтобы в ответ выборочно включались дополнительные свойства.

Если вы передадите параметр media_links.original, а у пользователя не будет прав на загрузку файлов в соответствующем проекте, то эта конечная точка вернет ошибку 403 (запрещено). Если контент недоступен из-за того, что для данного пользователя требуется водяной знак, а запрошенные media_links его не поддерживают, то запрос будет выполнен успешно, но неподдерживаемые ссылки на медиафайлы примут значение null. Точно так же, если запрашиваемая ссылка на перекодирование не существует для определенного файла (например, включение media_links.video_h264_180 для статического изображения) или процесс перекодирования еще не завершен (то есть статус файла — «добавлен», а не «перекодирован»), то в полезной нагрузке ответа ссылка на медиафайл также примет значение null. Проще говоря, клиент должен корректно обрабатывать ссылки на медиафайлы со значением null.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6client.version_stacks.index(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 version_stack_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 include="media_links",
10 after="<opaque_cursor>",
11 page_size=10,
12 include_total_count=False,
13)

Параметры

account_id: Uuid —

version_stack_id: Uuid —

include: typing.Optional[FileWithMediaLinksInclude] —

after: typing.Optional[RequestAfterOpaqueCursor]

Параметр запроса «непрозрачный курсор» для запросов, возвращающих разбитые на страницы результаты.

Это значение генерируется автоматически и включается в ссылки из предыдущего ответа. Оно не предназначено для чтения человеком.

page_size: typing.Optional[RequestPageSize] —

include_total_count: typing.Optional[IncludeTotalCount] —

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Показывает сведения о стеке версий.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6client.version_stacks.show(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 version_stack_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 include="media_links",
10)

Параметры

account_id: Uuid —

version_stack_id: Uuid —

include: typing.Optional[VersionStacksShowRequestInclude] —

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Копирует стек версий.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2from frameio.version_stacks import VersionStackCopyParamsData
3
4client = Frameio(
5 token="YOUR_TOKEN",
6)
7client.version_stacks.copy(
8 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 version_stack_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
10 copy_metadata=True,
11 data=VersionStackCopyParamsData(
12 parent_id="2e426fe0-f965-4594-8b2b-b4dff1dc00ec",
13 ),
14)

Параметры

account_id: Uuid —

version_stack_id: Uuid —

copy_metadata: typing.Optional[bool] — копировать ли значения метаданных вместе со стеком версий

data: typing.Optional[VersionStackCopyParamsData]

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Создает список стеков версий в указанной папке.

Лимиты запросов: 5 вызовов в течение 1 секунды для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6client.version_stacks.list(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 include="media_links",
10 after="<opaque_cursor>",
11 page_size=10,
12 include_total_count=False,
13)

Параметры

account_id: Uuid —

folder_id: Uuid —

include: typing.Optional[FileWithMediaLinksInclude] —

after: typing.Optional[RequestAfterOpaqueCursor]

Параметр запроса «непрозрачный курсор» для запросов, возвращающих разбитые на страницы результаты.

Это значение генерируется автоматически и включается в ссылки из предыдущего ответа. Оно не предназначено для чтения человеком.

page_size: typing.Optional[RequestPageSize] —

include_total_count: typing.Optional[IncludeTotalCount] —

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Создает новый стек версий в родительской папке.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2from frameio.version_stacks import VersionStackCreateParamsData
3
4client = Frameio(
5 token="YOUR_TOKEN",
6)
7client.version_stacks.create(
8 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
10 data=VersionStackCreateParamsData(
11 file_ids=[
12 "dd2a3cdd-fc90-41bd-a7b8-8a0447aec6d4",
13 "79fed48a-8372-496e-8dcb-5e959b9b9fcf",
14 ],
15 ),
16)

Параметры

account_id: Uuid —

folder_id: Uuid —

data: VersionStackCreateParamsData

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Перемещает стек версий в папку.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2from frameio.version_stacks import VersionStackMoveParamsData
3
4client = Frameio(
5 token="YOUR_TOKEN",
6)
7client.version_stacks.move(
8 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 version_stack_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
10 data=VersionStackMoveParamsData(
11 parent_id="2e426fe0-f965-4594-8b2b-b4dff1dc00ec",
12 ),
13)

Параметры

account_id: Uuid —

version_stack_id: Uuid —

data: VersionStackMoveParamsData

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Веб-перехватчики

Создает список веб-перехватчиков для указанной рабочей среды.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6response = client.webhooks.index(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 workspace_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 after="<opaque_cursor>",
10 page_size=10,
11 include_total_count=False,
12)
13for item in response:
14 yield item
15# alternatively, you can paginate page-by-page
16for page in response.iter_pages():
17 yield page

Параметры

account_id: Uuid —

workspace_id: Uuid —

include: typing.Optional[typing.Literal[“creator”]] —

after: typing.Optional[RequestAfterOpaqueCursor]

Параметр запроса «непрозрачный курсор» для запросов, возвращающих разбитые на страницы результаты.

Это значение генерируется автоматически и включается в ссылки из предыдущего ответа. Оно не предназначено для чтения человеком.

page_size: typing.Optional[RequestPageSize] —

include_total_count: typing.Optional[IncludeTotalCount] —

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Создает отдельный веб-перехватчик с секретным ключом.

Допустимые события:

file.created, file.deleted, file.ready, file.updated, file.upload.completed, file.versioned, file.copied, folder.created, folder.deleted, folder.updated, folder.copied, comment.completed, comment.created, comment.deleted, comment.uncompleted, comment.updated, customfield.created, customfield.updated, customfield.deleted, metadata.value.updated, project.created, project.deleted, project.updated, collection.created, collection.updated, collection.deleted, share.created, share.updated, share.deleted, share.viewed.

Лимиты запросов: 10 вызовов в течение 1 минуты для учетной записи

usage
1from frameio import Frameio
2from frameio.webhooks import WebhookCreateParamsData
3
4client = Frameio(
5 token="YOUR_TOKEN",
6)
7client.webhooks.create(
8 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 workspace_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
10 data=WebhookCreateParamsData(
11 events=[
12 "file.created",
13 "file.deleted",
14 "file.ready",
15 "file.updated",
16 "file.upload.completed",
17 "file.versioned",
18 "file.copied",
19 "folder.created",
20 "folder.deleted",
21 "folder.updated",
22 "folder.copied",
23 "comment.completed",
24 "comment.created",
25 "comment.deleted",
26 "comment.uncompleted",
27 "comment.updated",
28 "customfield.created",
29 "customfield.updated",
30 "customfield.deleted",
31 "metadata.value.updated",
32 "project.created",
33 "project.deleted",
34 "project.updated",
35 "collection.created",
36 "collection.updated",
37 "collection.deleted",
38 "share.created",
39 "share.updated",
40 "share.deleted",
41 "share.viewed",
42 ],
43 name="New Webhook",
44 url="https://url.example.com",
45 ),
46)

Параметры

account_id: Uuid —

workspace_id: Uuid —

data: WebhookCreateParamsData

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Показывает сведения о веб-перехватчике.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6client.webhooks.show(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 webhook_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9)

Параметры

account_id: Uuid —

webhook_id: Uuid —

include: typing.Optional[typing.Literal[“creator”]] —

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Удаляет веб-перехватчик.

Лимиты запросов: 60 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6client.webhooks.delete(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 webhook_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9)

Параметры

account_id: Uuid —

webhook_id: Uuid —

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Обновляет сведения о веб-перехватчике.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2from frameio.webhooks import WebhookUpdateParamsData
3
4client = Frameio(
5 token="YOUR_TOKEN",
6)
7client.webhooks.update(
8 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 webhook_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
10 data=WebhookUpdateParamsData(
11 active=True,
12 events=[
13 "file.created",
14 "file.deleted",
15 "file.ready",
16 "file.updated",
17 "file.upload.completed",
18 "file.versioned",
19 "file.copied",
20 "folder.created",
21 "folder.deleted",
22 "folder.updated",
23 "folder.copied",
24 "comment.completed",
25 "comment.created",
26 "comment.deleted",
27 "comment.uncompleted",
28 "comment.updated",
29 "customfield.created",
30 "customfield.updated",
31 "customfield.deleted",
32 "metadata.value.updated",
33 "project.created",
34 "project.deleted",
35 "project.updated",
36 "collection.created",
37 "collection.updated",
38 "collection.deleted",
39 "share.created",
40 "share.updated",
41 "share.deleted",
42 "share.viewed",
43 ],
44 name="Updated Webhook",
45 url="https://url.example.com",
46 ),
47)

Параметры

account_id: Uuid —

webhook_id: Uuid —

data: WebhookUpdateParamsData

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Разрешения рабочей среды

Создает список ролей пользователя для указанной рабочей среды.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6response = client.workspace_permissions.index(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 workspace_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 include_deactivated=True,
10 after="<opaque_cursor>",
11 page_size=10,
12 include_total_count=False,
13)
14for item in response:
15 yield item
16# alternatively, you can paginate page-by-page
17for page in response.iter_pages():
18 yield page

Параметры

account_id: Uuid

workspace_id: Uuid

includ_deactivated: typing.Optional[bool] — поддерживает включение деактивированных пользователей в ответ. По умолчанию: false.

after: typing.Optional[RequestAfterOpaqueCursor]

Параметр запроса «непрозрачный курсор» для запросов, возвращающих разбитые на страницы результаты.

Это значение генерируется автоматически и включается в ссылки из предыдущего ответа. Оно не предназначено для чтения человеком.

page_size: typing.Optional[RequestPageSize] —

include_total_count: typing.Optional[IncludeTotalCount] —

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Удаляет пользователя из указанной рабочей среды.

Лимиты запросов: 60 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6client.workspace_permissions.workspace_user_roles_delete(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 workspace_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 user_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
10)

Параметры

account_id: Uuid

workspace_id: Uuid

user_id: Uuid

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Обновляет роли пользователя для указанной рабочей среды, если пользователь уже добавлен в нее. Если пользователь не добавлен в рабочую среду, он будет добавлен с указанной ролью.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio, UpdateUserRolesParamsData
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6client.workspace_permissions.workspace_user_roles_update(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 workspace_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 user_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
10 data=UpdateUserRolesParamsData(
11 role="editor",
12 ),
13)

Параметры

account_id: Uuid

workspace_id: Uuid

user_id: Uuid

data: UpdateUserRolesParamsData

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Рабочие среды

Показывает сведения о рабочей среде.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6client.workspaces.show(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 workspace_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9)

Параметры

account_id: Uuid —

workspace_id: Uuid —

include: typing.Optional[typing.Literal[“creator”]] —

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Удаляет рабочую среду из учетной записи.

Лимиты запросов: 60 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6client.workspaces.delete(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 workspace_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9)

Параметры

account_id: Uuid —

workspace_id: Uuid —

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Обновляет рабочую среду.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio, WorkspaceParamsData
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6client.workspaces.update(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 workspace_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
9 data=WorkspaceParamsData(
10 name="My Workspace",
11 ),
12)

Параметры

account_id: Uuid —

workspace_id: Uuid —

data: WorkspaceParamsData

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Создает список рабочих сред для указанной учетной записи.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6response = client.workspaces.index(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 after="<opaque_cursor>",
9 page_size=10,
10 include_total_count=False,
11)
12for item in response:
13 yield item
14# alternatively, you can paginate page-by-page
15for page in response.iter_pages():
16 yield page

Параметры

account_id: Uuid —

workspace_id: Uuid —

include: typing.Optional[typing.Literal[“owner”]] —

after: typing.Optional[RequestAfterOpaqueCursor]

Параметр запроса «непрозрачный курсор» для запросов, возвращающих разбитые на страницы результаты.

Это значение генерируется автоматически и включается в ссылки из предыдущего ответа. Оно не предназначено для чтения человеком.

page_size: typing.Optional[RequestPageSize] —

include_total_count: typing.Optional[IncludeTotalCount] —

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.

Создает рабочую среду из учетной записи.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
1from frameio import Frameio, WorkspaceParamsData
2
3client = Frameio(
4 token="YOUR_TOKEN",
5)
6client.workspaces.create(
7 account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
8 data=WorkspaceParamsData(
9 name="My Workspace",
10 ),
11)

Параметры

account_id: Uuid —

data: WorkspaceParamsData

request_options: typing.Optional[RequestOptions] — конфигурация на уровне конкретного запроса.


PyPI

Посмотреть в PyPI