> This page is for Plataforma, version V4 (default).
> For other versions, use one of these documentation indexes:
> - V4 (default): https://next.developer.frame.io/platform/v4/llms.txt
> - V4 experimental: https://next.developer.frame.io/platform/v4-experimental/llms.txt
> - Heredado: https://next.developer.frame.io/platform/v2/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://next.developer.frame.io/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://next.developer.frame.io/_mcp/server.

# Referencia del SDK para Python

### Instalación

```curl
pip install frameio
```

---

### Uso

Instancie y use el cliente con lo siguiente:

```python
from frameio import (
    Frameio,
    SelectDefinitionParamsFieldConfiguration,
    SelectDefinitionParamsFieldConfigurationOptionsItem,
)
from frameio.metadata_fields import CreateFieldDefinitionParamsData_Select

client = Frameio(
    token="YOUR_TOKEN",
)
client.metadata_fields.metadata_field_definitions_create(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    data=CreateFieldDefinitionParamsData_Select(
        field_configuration=SelectDefinitionParamsFieldConfiguration(
            enable_add_new=False,
            options=[
                SelectDefinitionParamsFieldConfigurationOptionsItem(
                    display_name="Option 1",
                ),
                SelectDefinitionParamsFieldConfigurationOptionsItem(
                    display_name="Option 2",
                ),
            ],
        ),
        name="Fields definition name",
    ),
)
```

---

### Cliente asíncrono

El SDK también exporta un cliente asíncrono para poder realizar llamadas no bloqueantes a nuestra API. Tenga en cuenta que, si se construye una clase de cliente asíncrono de httpx para pasarla a este, se debe usar httpx.AsyncClient() en lugar de httpx.Client() (por ejemplo, para el parámetro httpx\_client).

```python
import asyncio

from frameio import (
    AsyncFrameio,
    SelectDefinitionParamsFieldConfiguration,
    SelectDefinitionParamsFieldConfigurationOptionsItem,
)
from frameio.metadata_fields import CreateFieldDefinitionParamsData_Select

client = AsyncFrameio(
    token="YOUR_TOKEN",
)


async def main() -> None:
    await client.metadata_fields.metadata_field_definitions_create(
        account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
        data=CreateFieldDefinitionParamsData_Select(
            field_configuration=SelectDefinitionParamsFieldConfiguration(
                enable_add_new=False,
                options=[
                    SelectDefinitionParamsFieldConfigurationOptionsItem(
                        display_name="Option 1",
                    ),
                    SelectDefinitionParamsFieldConfigurationOptionsItem(
                        display_name="Option 2",
                    ),
                ],
            ),
            name="Fields definition name",
        ),
    )


asyncio.run(main())
```

---

### Gestión de excepciones

Cuando la API devuelve un código de estado que no indica éxito, como una respuesta 4xx o 5xx, se genera una subclase del siguiente error.

```python
from frameio.core.api_error import ApiError

try:
    client.metadata_fields.metadata_field_definitions_create(...)
except ApiError as e:
    print(e.status_code)
    print(e.body)
```

---

### Paginación

Las solicitudes paginadas devuelven un SyncPager o un AsyncPager, que se pueden usar como generadores del objeto subyacente.

```python
from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
response = client.project_permissions.index(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    project_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    page_size=10,
    include_total_count=False,
)
for item in response:
    yield item
# alternatively, you can paginate page-by-page
for page in response.iter_pages():
    yield page
```

---

### Avanzado

#### Acceso a datos de respuesta sin procesar

El SDK proporciona acceso a los datos de respuesta sin procesar, incluidos los encabezados, mediante la propiedad .with\_raw\_response. La propiedad .with\_raw\_response devuelve un cliente "sin procesar" que se puede usar para acceder a los atributos .headers y .data.

```python
from frameio import Frameio

client = Frameio(
    ...,
)
response = (
    client.metadata_fields.with_raw_response.metadata_field_definitions_create(
        ...
    )
)
print(response.headers)  # access the response headers
print(response.data)  # access the underlying object
pager = client.project_permissions.index(...)
print(pager.response.headers)  # access the response headers for the first page
for item in pager:
    print(item)  # access the underlying object(s)
for page in pager.iter_pages():
    print(page.response.headers)  # access the response headers for each page
    for item in page:
        print(item)  # access the underlying object(s)
```

---

#### Reintentos

El SDK incorpora reintentos automáticos con espera exponencial. Una solicitud se reintenta siempre que se considere apta para ello y el número de intentos no supere el límite configurado, cuyo valor predeterminado es 2.

Una solicitud se considera apta para reintento cuando se devuelve alguno de los siguientes códigos de estado HTTP:

* 408 (tiempo de espera agotado)
* 429 (demasiadas solicitudes)
* 5XX (errores internos del servidor)

\
&#x20;Use la opción de solicitud `max_retries` para configurar este comportamiento.

```python
client.metadata_fields.metadata_field_definitions_create(..., request_options={
    "max_retries": 1
})
```

---

#### Tiempos de espera

El SDK tiene un tiempo de espera predeterminado de 60 segundos. Puede configurarlo con la opción timeout en el cliente o en la solicitud.

```python
from frameio import Frameio

client = Frameio(
    ...,
    timeout=20.0,
)


# Override timeout for a specific method
client.metadata_fields.metadata_field_definitions_create(..., request_options={
    "timeout_in_seconds": 1
})
```

---

#### Cliente personalizado

Puede sobrescribir el cliente httpx para personalizarlo según el caso de uso. Algunos casos de uso habituales incluyen la compatibilidad con proxies y transportes.

```python
import httpx
from frameio import Frameio

client = Frameio(
    ...,
    httpx_client=httpx.Client(
        proxy="http://my.test.proxy.example.com",
        transport=httpx.HTTPTransport(local_address="0.0.0.0"),
    ),
)
```

---

### Referencia

#### Permisos de cuenta

#### client.account\_permissions.index(...) -> AsyncPager\[AccountUserRole, AccountUserRolesResponse]

Enumere las funciones de usuario de una cuenta determinada.

Límites de frecuencia: 100 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
response = client.account_permissions.index(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    include_deactivated=True,
    after="<opaque_cursor>",
    page_size=10,
    include_total_count=False,
)
for item in response:
    yield item
# alternatively, you can paginate page-by-page
for page in response.iter_pages():
    yield page

```

**Parámetros**

`account_id`: Uuid —

`include_deactivated`: typing.Optional\[bool] — Permite incluir usuarios desactivados en la respuesta. El valor predeterminado es false.

`after`: typing.Optional\[RequestAfterOpaqueCursor]

Parámetro de consulta de cursor opaco para solicitudes que devuelven resultados paginados.

> **Tip**
>
> Este valor se genera automáticamente y se incluye como parte de los vínculos de una respuesta anterior. No está pensado para que pueda leerse.

`page_size`: typing.Optional\[RequestPageSize] —

`include_total_count`: typing.Optional\[IncludeTotalCount] —

`request_options`: typing.Optional\[RequestOptions] — Configuración específica de la solicitud.

#### Cuentas

#### client.accounts.index(...) -> AsyncPager\[Account, AccountsResponse]

Enumere las cuentas del usuario actual.

Límites de frecuencia: 100 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
response = client.accounts.index(
    after="<opaque_cursor>",
    page_size=10,
    include_total_count=False,
)
for item in response:
    yield item
# alternatively, you can paginate page-by-page
for page in response.iter_pages():
    yield page
```

**Parámetros**

`after`: typing.Optional\[RequestAfterOpaqueCursor]

Parámetro de consulta de cursor opaco para solicitudes que devuelven resultados paginados.

> **Tip**
>
> Este valor se genera automáticamente y se incluye como parte de los vínculos de una respuesta anterior. No está pensado para que pueda leerse.

`page_size`: typing.Optional\[RequestPageSize] —

`include_total_count`: typing.Optional\[IncludeTotalCount] —

`request_options`: typing.Optional\[RequestOptions] — Configuración específica de la solicitud.

#### client.accounts.auditlog\_index(...) -> AsyncPager\[AuditLog, AuditLogsWithIncludesResponse]

Enumera los registros de auditoría con funciones de filtrado mediante parámetros de consulta.

Límites de frecuencia: 100 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
response = client.accounts.auditlog_index(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    include="user",
    after="<opaque_cursor>",
    page_size=10,
    include_total_count=False,
    api_version="4.0",
)
for item in response:
    yield item
# alternatively, you can paginate page-by-page
for page in response.iter_pages():
    yield page
```

**Parámetros**

`account_id`: `Uuid` —

`api_version`: `typing.Literal[“4.0”]` —

`include`: `typing.Optional[typing.Literal[“user”]]` —

`filters`: `typing.Optional[Filters]` —

`after`: `typing.Optional[RequestAfterOpaqueCursor]`

Parámetro de consulta de cursor opaco para solicitudes que devuelven resultados paginados.

> **Tip**
>
> Este valor se genera automáticamente y se incluye como parte de los vínculos de una respuesta anterior. No está pensado para que pueda leerse.

`page_size`: `typing.Optional[RequestPageSize]` —

`include_total_count`: `typing.Optional[IncludeTotalCount]` —

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### Autorización

#### frameio.auth.ServerToServerAuth(\*, client\_id, client\_secret, ...)

Autentíquese mediante la concesión client\_credentials de OAuth 2.0. Este flujo no implica a ningún usuario y no devuelve ningún token de actualización. Cuando el token de acceso caduca, el SDK solicita automáticamente uno nuevo con las credenciales de cliente. Para el uso asíncrono, utilice `AsyncServerToServerAuth`.

**`usage`**

```python usage

from frameio import Frameio
from frameio.auth import ServerToServerAuth

auth = ServerToServerAuth(client_id="YOUR_CLIENT_ID", client_secret="YOUR_CLIENT_SECRET")
client = Frameio(token=auth.get_token)
```

**Parámetros**

`client_id`: `str` — ID de cliente de Adobe IMS OAuth.

`client_secret`: `str` — Secreto de cliente de Adobe IMS OAuth.

`scopes`: `str` — Ámbitos separados por espacios (OAuth 2.0 RFC 6749). El valor predeterminado es `openid AdobeID frame.s2s.all`.

`ims_base_url`: `str` — URL base de IMS para entornos de ensayo o alternativos. El valor predeterminado es producción.

`http_client`: `typing.Optional[httpx.Client]`cliente httpx.Client opcionalpara proxy, TLS o agrupación de conexiones.

`on_token_refreshed`: `typing.Optional[typing.Callable[[dict[str, Any]], None]]` — Devolución de llamada opcional que se activa después de cada obtención de token.

`timeout`: `float` — Tiempo de espera de la petición HTTP en segundos. El valor predeterminado es 30.

`max_retries`: `int` — Número máximo de reintentos ante errores transitorios. El valor predeterminado es 2.

`refresh_buffer`: `int` — Segundos antes de la caducidad para activar una actualización proactiva. El valor predeterminado es 60. **Métodos** `get_token() -&gt; str` — Devuelve un token de acceso válido y lo actualiza si es necesario. Pase esta referencia de método (no una llamada) al SDK: `Frameio(token=auth.get_token)`. `authenticate() -&gt; dict[str, Any]` — Obtiene explícitamente un nuevo token de acceso. Devuelve el diccionario de respuesta del token con `access_token`, `expires_in`, etc. `revoke() -&gt; None` — Revoca ambos tokens en el servidor y borra el estado local. `export_tokens() -&gt; dict[str, Any]` — Exporta el estado actual de los tokens para conservarlo. `import_tokens(data: dict[str, Any]) -&gt; None` — Restaura el estado de los tokens a partir de un diccionario exportado anteriormente.

#### frameio.auth.WebAppAuth(\*, client\_id, client\_secret, redirect\_uri, ...)

Autentíquese mediante la concesión authorization\_code de OAuth 2.0. Use este método para aplicaciones del lado del servidor que puedan almacenar de forma segura un secreto de cliente. Para el uso asíncrono, utilice `AsyncWebAppAuth`.

**`usage`**

```python usage

import secrets
from frameio import Frameio
from frameio.auth import WebAppAuth

auth = WebAppAuth(
    client_id="YOUR_CLIENT_ID",
    client_secret="YOUR_CLIENT_SECRET",
    redirect_uri="https://myapp.com/callback",
)
url = auth.get_authorization_url(state=secrets.token_urlsafe(32))
# redirect user to url ...
auth.exchange_code(code="CODE_FROM_CALLBACK")
client = Frameio(token=auth.get_token)
```

**Parámetros**

`client_id`: `str` — ID de cliente de Adobe IMS OAuth.

`client_secret`: `str` — Secreto de cliente de Adobe IMS OAuth.

`redirect_uri`: `str` — URI de redireccionamiento registrado.

`scopes`: `str` — Ámbitos separados por espacios (OAuth 2.0 RFC 6749).

`ims_base_url`: `str` — URL base de IMS para entornos de ensayo o alternativos. El valor predeterminado es producción.

`http_client`: `typing.Optional[httpx.Client]`cliente httpx.Client opcionalpara proxy, TLS o agrupación de conexiones.

`on_token_refreshed`: `typing.Optional[typing.Callable[[dict[str, Any]], None]]` — Devolución de llamada opcional que se activa después de cada actualización del token.

`timeout`: `float` — Tiempo de espera de la petición HTTP en segundos. El valor predeterminado es 30.

`max_retries`: `int` — Número máximo de reintentos ante errores transitorios. El valor predeterminado es 2.

`refresh_buffer`: `int` — Segundos antes de la caducidad para activar una actualización proactiva. El valor predeterminado es 60. **Métodos** `get_token() -&gt; str` — Devuelve un token de acceso válido y lo actualiza si es necesario. Pase esta referencia de método al SDK: `Frameio(token=auth.get_token)`. `get_authorization_url(state: str) -&gt; str` — Crea la URL de autorización de Adobe IMS. Pase un valor opaco de CSRF/estado que se devolverá en la respuesta. `exchange_code(code: str) -&gt; dict[str, Any]` — Intercambia un código de autorización por tokens de acceso y actualización. `refresh() -&gt; dict[str, Any]` — Activa manualmente una actualización del token. `revoke() -&gt; None` — Revoca ambos tokens en el servidor y borra el estado local. `export_tokens() -&gt; dict[str, Any]` — Exporta el estado actual de los tokens para conservarlo. `import_tokens(data: dict[str, Any]) -&gt; None` — Restaura el estado de los tokens a partir de un diccionario exportado anteriormente.

#### frameio.auth.SPAAuth(\*, client\_id, redirect\_uri, ...)

Autentíquese mediante authorization\_code + PKCE, sin secreto de cliente. Use este método para aplicaciones basadas en explorador o aplicaciones nativas que no puedan almacenar de forma segura un secreto de cliente. Para el uso asíncrono, utilice `AsyncSPAAuth`.

**`usage`**

```python usage

import secrets
from frameio import Frameio
from frameio.auth import SPAAuth

auth = SPAAuth(client_id="YOUR_CLIENT_ID", redirect_uri="https://myapp.com/cb")
result = auth.get_authorization_url(state=secrets.token_urlsafe(32))
# redirect user to result.url, store result.code_verifier
auth.exchange_code(code="CODE_FROM_CALLBACK", code_verifier=result.code_verifier)
client = Frameio(token=auth.get_token)
```

**Parámetros**

`client_id`: `str` — ID de cliente de Adobe IMS OAuth.

`redirect_uri`: `str` — URI de redireccionamiento registrado.

`scopes`: `str` — Ámbitos separados por espacios (OAuth 2.0 RFC 6749).

`ims_base_url`: `str` — URL base de IMS para entornos de ensayo o alternativos. El valor predeterminado es producción.

`http_client`: `typing.Optional[httpx.Client]`cliente httpx.Client opcionalpara proxy, TLS o agrupación de conexiones.

`on_token_refreshed`: `typing.Optional[typing.Callable[[dict[str, Any]], None]]` — Devolución de llamada opcional que se activa después de cada actualización del token.

`timeout`: `float` — Tiempo de espera de la petición HTTP en segundos. El valor predeterminado es 30.

`max_retries`: `int` — Número máximo de reintentos ante errores transitorios. El valor predeterminado es 2.

`refresh_buffer`: `int` — Segundos antes de la caducidad para activar una actualización proactiva. El valor predeterminado es 60. **Métodos** `get_token() -&gt; str` — Devuelve un token de acceso válido y lo actualiza si es necesario. Pase esta referencia de método al SDK: `Frameio(token=auth.get_token)`. `get_authorization_url(state: str) -&gt; AuthorizationUrlResult` — Crea la URL de autorización de Adobe IMS con desafío PKCE. Devuelve un `AuthorizationUrlResult` con los atributos `url` y `code_verifier`. `exchange_code(code: str, code_verifier: str) -&gt; dict[str, Any]` — Intercambia un código de autorización y el verificador PKCE por tokens. `refresh() -&gt; dict[str, Any]` — Activa manualmente una actualización del token. `revoke() -&gt; None` — Revoca ambos tokens en el servidor y borra el estado local. `export_tokens() -&gt; dict[str, Any]` — Exporta el estado actual de los tokens para conservarlo. `import_tokens(data: dict[str, Any]) -&gt; None` — Restaura el estado de los tokens a partir de un diccionario exportado anteriormente.

#### frameio.auth.AuthorizationUrlResult

Clase de datos congelada que devuelven `SPAAuth.get_authorization_url()` y `AsyncSPAAuth.get_authorization_url()`. Contiene la URL de autorización y el verificador de código PKCE. **Atributos** `url`: `str` — URL de autorización completa a la que se redirige al usuario. `code_verifier`: `str` — Verificador de código PKCE que se debe almacenar y pasar a `exchange_code()`.

#### frameio.auth.close\_clients() / aclose\_clients()

Cierre los clientes HTTP de nivel de módulo que usa el módulo de autenticación. Llame a `close_clients()` en código síncrono o use `await aclose_clients()` en código asíncrono durante el cierre de la aplicación para liberar las conexiones.

**`usage`**

```python usage

from frameio.auth import close_clients

# During application shutdown
close_clients()
```

#### Excepciones de autenticación

All auth exceptions inherit from `FrameioAuthError`.

| Excepción             | Descripción                                                                                          |
| --------------------- | ---------------------------------------------------------------------------------------------------- |
| `FrameioAuthError`    | Excepción base para todos los errores de `frameio.auth`.                                             |
| `AuthenticationError` | Error al intercambiar o actualizar el token. Tiene los atributos `error_code` y `error_description`. |
| `TokenExpiredError`   | El token de actualización ha caducado; es necesario volver a autenticarse.                           |
| `ConfigurationError`  | Falta la configuración necesaria o no es válida.                                                     |
| `NetworkError`        | Error en la solicitud de red (tiempo de espera agotado, error de conexión, etc.)                     |
| `RateLimitError`      | La API ha devuelto 429 y se han agotado los reintentos. Tiene el atributo `retry_after`.             |
| `PKCEError`           | Error en la verificación de PKCE.                                                                    |

#### Colecciones

#### client.collections.index(...) -> AsyncHttpResponse\[CollectionsResponse]

Enumera las colecciones de un proyecto.

Límites de frecuencia: 100 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
client.collections.index(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    project_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    include="creator,project",
    after="<opaque_cursor>",
    page_size=10,
    include_total_count=False,
)
```

**Parámetros**

`account_id`: `Uuid` —

`project_id`: `Uuid` —

`include`: `typing.Optional[CollectionInclude]` —

`after`: `typing.Optional[RequestAfterOpaqueCursor]`

Parámetro de consulta de cursor opaco para solicitudes que devuelven resultados paginados.

> **Tip**
>
> Este valor se genera automáticamente y se incluye como parte de los vínculos de una respuesta anterior. No está pensado para que pueda leerse.

`page_size`: `typing.Optional[RequestPageSize]` —

`include_total_count`: `typing.Optional[IncludeTotalCount]` —

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### client.collections.show(...) -> AsyncHttpResponse\[CollectionResponse]

Muestra los detalles de la colección.

Límites de frecuencia: 100 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
client.collections.show(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    collection_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    include="creator,project",
)
```

**Parámetros**

`account_id`: `Uuid` —

`collection_id`: `Uuid` —

`include`: `typing.Optional[CollectionInclude]` —

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### Comentarios

#### client.comments.show(...) -> AsyncHttpResponse\[CommentWithIncludesResponse]

Muestre un solo comentario de un archivo.

Límites de frecuencia: 100 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
client.comments.show(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    comment_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    include="owner",
)
```

**Parámetros**

`account_id`: Uuid —

`comment_id`: Uuid —

`include`: typing.Optional\[CommentsShowRequestInclude] —

`request_options`: typing.Optional\[RequestOptions] — Configuración específica de la solicitud.

#### client.comments.delete(...) -> AsyncHttpResponse\[None]

Elimine el comentario de un activo.

Límites de frecuencia: 60 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
client.comments.delete(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    comment_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
)
```

**Parámetros**

`account_id`: Uuid —

`comment_id`: Uuid —

`request_options`: typing.Optional\[RequestOptions] — Configuración específica de la solicitud.

#### client.comments.update(...) -> AsyncHttpResponse\[CommentResponse]

Actualice el comentario del activo determinado.

Límites de frecuencia: 10 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio
from frameio.comments import UpdateCommentParamsData

client = Frameio(
    token="YOUR_TOKEN",
)
client.comments.update(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    comment_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    timestamp_as_timecode=True,
    data=UpdateCommentParamsData(
        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}]',
        completed=False,
        page=4,
        text="This is great!",
    ),
)
```

**Parámetros**

`account_id`: Uuid —

`comment_id`: Uuid —

`data`: UpdateCommentParamsData

`timestamp_as_timecode`: typing.Optional\[bool] —

`request_options`: typing.Optional\[RequestOptions] — Configuración específica de la solicitud.

#### client.comments.index(...) -> AsyncPager\[CommentWithIncludes, CommentsWithIncludesResponse]

Enumere los comentarios de un activo determinado.

Límites de frecuencia: 100 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
response = client.comments.index(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    file_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    include="owner",
    after="<opaque_cursor>",
    page_size=10,
    include_total_count=False,
)
for item in response:
    yield item
# alternatively, you can paginate page-by-page
for page in response.iter_pages():
    yield page
```

**Parámetros**

`account_id`: Uuid —

`file_id`: Uuid —

`include`: typing.Optional\[CommentInclude] —

`after`: typing.Optional\[RequestAfterOpaqueCursor]

Parámetro de consulta de cursor opaco para solicitudes que devuelven resultados paginados.

> **Tip**
>
> Este valor se genera automáticamente y se incluye como parte de los vínculos de una respuesta anterior. No está pensado para que pueda leerse.

`page_size`: typing.Optional\[RequestPageSize] —

`include_total_count`: typing.Optional\[IncludeTotalCount] —

`request_options`: typing.Optional\[RequestOptions] — Configuración específica de la solicitud.

#### client.comments.create(...) -> AsyncHttpResponse\[CommentResponse]

Cree un comentario en un archivo.

Límites de frecuencia: 100 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio
from frameio.comments import CreateCommentParamsData

client = Frameio(
    token="YOUR_TOKEN",
)
client.comments.create(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    file_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    timestamp_as_timecode=True,
    data=CreateCommentParamsData(
        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}]',
        completed=False,
        page=4,
        text="This is great!",
        timestamp="00:00:02:12",
    ),
)
```

**Parámetros**

`account_id`: Uuid —

`file_id`: Uuid —

`data`: CreateCommentParamsData

`timestamp_as_timecode`: typing.Optional\[bool] —

`request_options`: typing.Optional\[RequestOptions] — Configuración específica de la solicitud.

#### client.comments.create\_attachment(...) -> AsyncHttpResponse\[CommentAttachmentResponse]

Crea un archivo adjunto para un comentario existente.

Límites de frecuencia: 60 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import AttachmentInput, Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
client.comments.create_attachment(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    comment_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    data=AttachmentInput(
        file_size=1024000,
        media_type="image/png",
        name="screenshot.png",
    ),
)
```

**Parámetros**

`account_id`: `Uuid` —

`comment_id`: `Uuid` —

`data`: `Attachmentinput`

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### client.comments.delete\_attachment(...) -> AsyncHttpResponse\[None]

Elimina un archivo adjunto de un comentario.

Límites de frecuencia: 60 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
client.comments.delete_attachment(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    comment_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    attachment_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
)
```

**Parámetros**

`account_id`: `Uuid` —

`comment_id`: `Uuid` —

`attachment_id`: `Uuid` —

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### Acciones personalizadas

#### client.custom\_actions.actions\_index(...) -> AsyncHttpResponse\[ActionsWithIncludesResponse]

Enumera las acciones de un espacio de trabajo determinado.

Límites de frecuencia: 100 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
client.custom_actions.actions_index(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    workspace_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    include="creator",
    after="<opaque_cursor>",
    page_size=10,
    include_total_count=False,
)
```

**Parámetros**

`account_id`: `Uuid` —

`workspace_id`: `Uuid` —

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

`after`: `typing.Optional[RequestAfterOpaqueCursor]`

Parámetro de consulta de cursor opaco para solicitudes que devuelven resultados paginados.

> **Tip**
>
> Este valor se genera automáticamente y se incluye como parte de los vínculos de una respuesta anterior. No está pensado para que pueda leerse.

`page_size`: `typing.Optional[RequestPageSize]` —

`include_total_count`: `typing.Optional[IncludeTotalCount]` —

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### client.custom\_actions.actions\_show(...) -> AsyncHttpResponse\[ActionWithIncludesResponse]

Muestre los detalles de una acción personalizada.

Límites de frecuencia: 100 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
client.custom_actions.actions_show(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    action_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    include="creator",
)
```

**Parámetros**

`account_id`: `Uuid` —

`action_id`: `Uuid` —

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

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### client.custom\_actions.actions\_create(...) -> AsyncHttpResponse\[ActionCreateResponse]

Cree una acción personalizada en un espacio de trabajo.

Límites de frecuencia: 10 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio
from frameio.custom_actions import ActionCreateParamsData

client = Frameio(
    token="YOUR_TOKEN",
)
client.custom_actions.actions_create(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    workspace_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    data=ActionCreateParamsData(
        description="customizing our workflow",
        event="my.event",
        name="First Custom Action",
        timeout=7,
        url="https://example.com/custom-action",
    ),
)
```

**Parámetros**

`account_id`: `Uuid` —

`workspace_id`: `Uuid` —

`data`: `ActionCreateParamsData`

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### client.custom\_actions.actions\_update(...) -> AsyncHttpResponse\[ActionResponse]

Actualice los detalles de una acción personalizada.

Límites de frecuencia: 10 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio
from frameio.custom_actions import ActionUpdateParamsData

client = Frameio(
    token="YOUR_TOKEN",
)
client.custom_actions.actions_update(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    action_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    data=ActionUpdateParamsData(
        active=True,
        description="customizing our workflow",
        event="my.event",
        multi_asset=True,
        name="First Custom Action",
        timeout=7,
        url="https://example.com/custom-action",
    ),
)
```

**Parámetros**

`account_id`: `Uuid` —

`action_id`: `Uuid` —

`data`: `ActionUpdateParamsData`

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### client.custom\_actions.actions\_delete(...) -> AsyncHttpResponse\[None]

Elimine una acción personalizada.

Límites de frecuencia: 60 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
client.custom_actions.actions_delete(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    action_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
)
```

**Parámetros**

`account_id`: `Uuid` —

`action_id`: `Uuid` —

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### Archivos

#### client.files.list(...) -> AsyncHttpResponse\[AssetsWithIncludesResponse]

Enumere los archivos de una carpeta determinada.

Límites de frecuencia: 5 llamadas por segundo por account\_user

**`usage`**

```python usage

from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
client.files.list(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    include="media_links",
    after="<opaque_cursor>",
    page_size=10,
    include_total_count=False,
)
```

**Parámetros**

`account_id`: `Uuid` —

`folder_id`: `Uuid` —

`include`: `typing.Optional[FileWithMediaLinksInclude]` —

`after`: `typing.Optional[RequestAfterOpaqueCursor]`

Parámetro de consulta de cursor opaco para solicitudes que devuelven resultados paginados.

> **Tip**
>
> Este valor se genera automáticamente y se incluye como parte de los vínculos de una respuesta anterior. No está pensado para que pueda leerse.

`page_size`: `typing.Optional[RequestPageSize]` —

`include_total_count`: `typing.Optional[IncludeTotalCount]` —

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### client.files.create(...) -> AsyncHttpResponse\[FileWithUploadUrlsResponse]

Cree un archivo nuevo en la carpeta principal. `Crear archivo (carga local)` y `Crear archivo (carga remota)` han sustituido a este punto final.

Límites de frecuencia: 5 llamadas por segundo por account\_user

**`usage`**

```python usage

from frameio import Frameio
from frameio.files import FileCreateParamsData

client = Frameio(
    token="YOUR_TOKEN",
)
client.files.create(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    data=FileCreateParamsData(
        file_size=1137444,
        media_type="image/png",
        name="asset.png",
    ),
)
```

**Parámetros**

`account_id`: `Uuid` —

`folder_id`: `Uuid` —

`data`: `FileCreateParamsData`

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### client.files.show(...) -> AsyncHttpResponse\[FileWithIncludesResponse]

Muestre los detalles del archivo.

Use el parámetro de consulta include para incluir de forma selectiva propiedades adicionales en la respuesta.

> **Note**
>
> Si incluye `media_links.original` y el usuario no tiene permiso para descargar el archivo, este punto final responderá con un error `403 Forbidden`. Si no se puede acceder al contenido porque se requiere marca de agua para este usuario y los media\_links solicitados no la admiten, la solicitud se completará correctamente, pero los vínculos de medios no compatibles se definirán como null. Del mismo modo, si un vínculo de transcodificación solicitado no existe para un archivo concreto (por ejemplo, si se incluye `media_links.video_h264_180` en un archivo de imagen estática) o si el proceso de transcodificación no se ha completado (es decir, el estado del archivo es "uploaded" en lugar de "transcoded"), el vínculo también se definirá como null en la carga útil de respuesta. En resumen, el cliente debe gestionar correctamente los vínculos de medios.

Límites de frecuencia: 5 llamadas por segundo por account\_user

**`usage`**

```python usage

from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
client.files.show(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    file_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    include="media_links",
)
```

**Parámetros**

`account_id`: `Uuid` —

`file_id`: `Uuid` —

`include`: `typing.Optional[FileWithMediaLinksInclude]` —

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### client.files.delete(...) -> AsyncHttpResponse\[None]

Elimine el archivo por ID.

Límites de frecuencia: 100 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
client.files.delete(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    file_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
)
```

**Parámetros**

`account_id`: `Uuid` —

`file_id`: `Uuid` —

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### client.files.update(...) -> AsyncHttpResponse\[FileResponse]

Actualice los detalles del archivo.

Límites de frecuencia: 100 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio
from frameio.files import FileUpdateParamsData

client = Frameio(
    token="YOUR_TOKEN",
)
client.files.update(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    file_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    data=FileUpdateParamsData(
        name="asset.png",
    ),
)
```

**Parámetros**

`account_id`: `Uuid` —

`file_id`: `Uuid` —

`data`: `FileUpdateParamsData`

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### client.files.copy(...) -> AsyncHttpResponse\[FileCopyResponse]

Copie el archivo.

Límites de frecuencia: 100 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio
from frameio.files import FileCopyParamsData

client = Frameio(
    token="YOUR_TOKEN",
)
client.files.copy(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    file_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    copy_metadata=True,
    copy_comments="none",
    data=FileCopyParamsData(
        parent_id="2e426fe0-f965-4594-8b2b-b4dff1dc00ec",
    ),
)
```

**Parámetros**

`account_id`: `Uuid` —

`file_id`: `Uuid` —

`copy_metadata`: `typing.Optional[bool]` — Indica si se deben copiar los valores de metadatos junto con el archivo

`copy_comments`: `typing.Optional[FilesCopyRequestCopyComments]` — Indica qué comentarios se deben copiar junto con el archivo

`data`: `typing.Optional[FileCopyParamsData]`

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### client.files.create\_remote\_upload(...) -> AsyncHttpResponse\[FileRemoteUploadResponse]

Cree un archivo nuevo en la carpeta principal mediante carga remota.

Límites de frecuencia: 5 llamadas por segundo por account\_user

**`usage`**

```python usage

from frameio import Frameio
from frameio.files import FileCreateRemoteUploadParamsData

client = Frameio(
    token="YOUR_TOKEN",
)
client.files.create_remote_upload(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    data=FileCreateRemoteUploadParamsData(
        name="asset.png",
        source_url="https://upload.wikimedia.org/wikipedia/commons/e/e1/White_Pixel_1x1.png",
    ),
)
```

**Parámetros**

`account_id`: `Uuid` —

`folder_id`: `Uuid` —

`data`: `FileCreateRemoteUploadParamsData`

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### client.files.move(...) -> AsyncHttpResponse\[FileResponse]

Mueva el archivo a una carpeta o version\_stack.

Límites de frecuencia: 100 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio
from frameio.files import FileMoveParamsData

client = Frameio(
    token="YOUR_TOKEN",
)
client.files.move(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    file_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    data=FileMoveParamsData(
        parent_id="2e426fe0-f965-4594-8b2b-b4dff1dc00ec",
    ),
)
```

**Parámetros**

`account_id`: `Uuid` —

`file_id`: `Uuid` —

`data`: `FileMoveParamsData`

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### client.files.create\_local\_upload(...) -> AsyncHttpResponse\[FileWithUploadUrlsResponse]

Cree un archivo nuevo en la carpeta principal mediante carga local.

Límites de frecuencia: 5 llamadas por segundo por account\_user

**`usage`**

```python usage

from frameio import Frameio
from frameio.files import FileCreateLocalUploadParamsData

client = Frameio(
    token="YOUR_TOKEN",
)
client.files.create_local_upload(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    data=FileCreateLocalUploadParamsData(
        file_size=1137444,
        name="asset.png",
    ),
)
```

**Parámetros**

`account_id`: `Uuid` —

`folder_id`: `Uuid` —

`data`: `FileCreateLocalUploadParamsData`

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### client.files.show\_file\_upload\_status(...) -> AsyncHttpResponse\[FileUploadStatusResponse]

Muestre los detalles del estado de carga del archivo.

Límites de frecuencia: 5 llamadas por segundo por account\_user

**`usage`**

```python usage

from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
client.files.show_file_upload_status(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    file_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
)
```

**Parámetros**

`account_id`: `Uuid` —

`file_id`: `Uuid` —

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### client.files.import\_file(...) -> AsyncHttpResponse\[FileResponse]

Importe un archivo desde una ubicación de almacenamiento configurada en la cuenta.

Límites de frecuencia: 5 llamadas por segundo por account\_user

**`usage`**

```python usage

from frameio import Frameio
from frameio.files import FileImportParamsData

client = Frameio(
    token="YOUR_TOKEN",
)
client.files.import_file(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    data=FileImportParamsData(
        key="uploads/08091b0f-a541-42f5-a059-5e8c4afecc12/original.png",
        name="asset.png",
        storage_location="123e4567-e89b-12d3-a456-426614174000",
    ),
)
```

**Parámetros**

`account_id`: `Uuid` —

`folder_id`: `Uuid` —

`data`: `FileImportParamsData`

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### Permisos de carpeta

#### client.folder\_permissions.folder\_user\_roles\_index(...) -> AsyncHttpResponse\[UserRolesResponse]

Enumere las funciones de usuario de una carpeta determinada.

Límites de frecuencia: 100 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
client.folder_permissions.folder_user_roles_index(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    include_deactivated=True,
    after="<opaque_cursor>",
    page_size=10,
    include_total_count=False,
)
```

**Parámetros**

`account_id`: `Uuid` —

`folder_id`: `Uuid` —

`include_deactivated`: `typing.Optional[bool]` — Permite incluir usuarios desactivados en la respuesta. El valor predeterminado es false.

`after`: `typing.Optional[RequestAfterOpaqueCursor]`

Parámetro de consulta de cursor opaco para solicitudes que devuelven resultados paginados.

> **Tip**
>
> Este valor se genera automáticamente y se incluye como parte de los vínculos de una respuesta anterior. No está pensado para que pueda leerse.

`page_size`: `typing.Optional[RequestPageSize]` —

`include_total_count`: `typing.Optional[IncludeTotalCount]` —

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### client.folder\_permissions.folder\_user\_roles\_update(...) -> AsyncHttpResponse\[UpdateUserRolesResponse]

Actualice las funciones de usuario de la carpeta determinada si el usuario ya se ha añadido a la carpeta. Si el usuario no se ha añadido a la carpeta, se añadirá con la función indicada.

Límites de frecuencia: 10 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio, UpdateUserRolesParamsData

client = Frameio(
    token="YOUR_TOKEN",
)
client.folder_permissions.folder_user_roles_update(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    user_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    data=UpdateUserRolesParamsData(
        role="editor",
    ),
)
```

**Parámetros**

`account_id`: `Uuid` —

`folder_id`: `Uuid` —

`user_id`: `Uuid` —

`data`: `UpdateUserRolesParamsData`

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### client.folder\_permissions.delete(...) -> AsyncHttpResponse\[None]

Elimine un usuario de una carpeta determinada.

Límites de frecuencia: 60 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
client.folder_permissions.delete(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    user_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
)
```

**Parámetros**

`account_id`: `Uuid` —

`folder_id`: `Uuid` —

`user_id`: `Uuid` —

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### Carpetas

#### client.folders.show(...) -> AsyncHttpResponse\[FolderWithIncludesResponse]

Muestre los detalles de la carpeta.

Límites de frecuencia: 100 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
client.folders.show(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    include="creator",
)

```

**Parámetros**

`account_id`: Uuid —

`folder_id`: Uuid —

`include`: typing.Optional\[AssetInclude] —

`request_options`: typing.Optional\[RequestOptions] — Configuración específica de la solicitud.

#### client.folders.delete(...) -> AsyncHttpResponse\[None]

Elimine la carpeta por ID.

Límites de frecuencia: 60 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
client.folders.delete(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
)

```

**Parámetros**

`account_id`: Uuid —

`folder_id`: Uuid —

`request_options`: typing.Optional\[RequestOptions] — Configuración específica de la solicitud.

#### client.folders.update(...) -> AsyncHttpResponse\[FolderResponse]

Actualice los detalles de la carpeta.

Límites de frecuencia: 10 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio
from frameio.folders import FolderUpdateParamsData

client = Frameio(
    token="YOUR_TOKEN",
)
client.folders.update(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    data=FolderUpdateParamsData(
        name="Folder name",
    ),
)

```

**Parámetros**

`account_id`: Uuid —

`folder_id`: Uuid —

`data`: FolderUpdateParamsData

`request_options`: typing.Optional\[RequestOptions] — Configuración específica de la solicitud.

#### client.folders.index(...) -> AsyncHttpResponse\[AssetsWithIncludesResponse]

Enumere los elementos secundarios de la carpeta determinada.

Use el parámetro de consulta include para incluir de forma selectiva propiedades adicionales en la respuesta.

> **Note**
>
> Si incluye `media_links.original` y el usuario no tiene permiso para descargar archivos en el proyecto correspondiente, este punto final responderá con un error 403 Forbidden. Si no se puede acceder al contenido porque se requiere marca de agua para este usuario y los media\_links solicitados no la admiten, la solicitud se completará correctamente, pero los vínculos de medios no compatibles se definirán como null. Del mismo modo, si un vínculo de transcodificación solicitado no existe para un archivo concreto (por ejemplo, si se incluye `media_links.video_h264_180` en un archivo de imagen estática) o si el proceso de transcodificación no ha finalizado (es decir, el estado del archivo es "uploaded" en lugar de "transcoded"), el vínculo de medios también se definirá como null en la carga útil de respuesta. En resumen, el cliente debe gestionar correctamente los vínculos de medios.

Límites de frecuencia: 100 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
client.folders.index(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    include="media_links",
    type="file,folder,version_stack",
    after="<opaque_cursor>",
    page_size=10,
    include_total_count=False,
)

```

**Parámetros**

`account_id`: Uuid —

`folder_id`: Uuid —

`include`: typing.Optional\[FileWithMediaLinksInclude] —

`type`: typing.Optional\[ChildrenType] —

`after`: typing.Optional\[RequestAfterOpaqueCursor]

Parámetro de consulta de cursor opaco para solicitudes que devuelven resultados paginados.

> **Tip**
>
> Este valor se genera automáticamente y se incluye como parte de los vínculos de una respuesta anterior. No está pensado para que pueda leerse.

`page_size`: typing.Optional\[RequestPageSize] —

`include_total_count`: typing.Optional\[IncludeTotalCount] —

`request_options`: typing.Optional\[RequestOptions] — Configuración específica de la solicitud.

#### client.folders.copy(...) -> AsyncHttpResponse\[FolderCopyResponse]

Copie la carpeta.

Límites de frecuencia: 10 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio
from frameio.folders import FolderCopyParamsData

client = Frameio(
    token="YOUR_TOKEN",
)
client.folders.copy(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    copy_metadata=True,
    data=FolderCopyParamsData(
        parent_id="2e426fe0-f965-4594-8b2b-b4dff1dc00ec",
    ),
)

```

**Parámetros**

`account_id`: Uuid —

`folder_id`: Uuid —

`copy_metadata`: typing.Optional\[bool] — Indica si se deben copiar los valores de metadatos junto con la carpeta

`data`: typing.Optional\[FolderCopyParamsData]

`request_options`: typing.Optional\[RequestOptions] — Configuración específica de la solicitud.

#### client.folders.list(...) -> AsyncHttpResponse\[FoldersWithIncludesResponse]

Enumere las carpetas de una carpeta determinada.

Límites de frecuencia: 5 llamadas por segundo por account\_user

**`usage`**

```python usage

from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
client.folders.list(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    include="creator",
    after="<opaque_cursor>",
    page_size=10,
    include_total_count=False,
)

```

**Parámetros**

`account_id`: Uuid —

`folder_id`: Uuid —

`include`: typing.Optional\[AssetInclude] —

`after`: typing.Optional\[RequestAfterOpaqueCursor]

Parámetro de consulta de cursor opaco para solicitudes que devuelven resultados paginados.

> **Tip**
>
> Este valor se genera automáticamente y se incluye como parte de los vínculos de una respuesta anterior. No está pensado para que pueda leerse.

`page_size`: typing.Optional\[RequestPageSize] —

`include_total_count`: typing.Optional\[IncludeTotalCount] —

`request_options`: typing.Optional\[RequestOptions] — Configuración específica de la solicitud.

#### client.folders.create(...) -> AsyncHttpResponse\[FolderResponse]

Cree una carpeta nueva dentro del parámetro de ruta folder\_id determinado.

Límites de frecuencia: 3 llamadas por segundo por account\_user

**`usage`**

```python usage

from frameio import Frameio
from frameio.folders import FolderCreateParamsData

client = Frameio(
    token="YOUR_TOKEN",
)
client.folders.create(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    data=FolderCreateParamsData(
        name="Folder name",
    ),
)

```

**Parámetros**

`account_id`: Uuid —

`folder_id`: Uuid —

`data`: FolderCreateParamsData

`request_options`: typing.Optional\[RequestOptions] — Configuración específica de la solicitud.

#### client.folders.move(...) -> AsyncHttpResponse\[FolderResponse]

Mueva la carpeta a otra carpeta.

Límites de frecuencia: 10 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio
from frameio.folders import FolderMoveParamsData

client = Frameio(
    token="YOUR_TOKEN",
)
client.folders.move(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    data=FolderMoveParamsData(
        parent_id="2e426fe0-f965-4594-8b2b-b4dff1dc00ec",
    ),
)

```

**Parámetros**

`account_id`: Uuid —

`folder_id`: Uuid —

`data`: FolderMoveParamsData

`request_options`: typing.Optional\[RequestOptions] — Configuración específica de la solicitud.

#### Grupos

#### client.groups.index(...) -> AsyncHttpResponse\[GroupsWithIncludesResponse]

Enumere los grupos de la cuenta.

Límites de frecuencia: 100 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
client.groups.index(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    include="creator",
    sort="creator_asc",
    after="<opaque_cursor>",
    page_size=10,
    include_total_count=False,
)
```

**Parámetros**

`account_id`: `Uuid` —

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

`sort`: `typing.Optional[GroupsIndexRequestSort]` — Ordena grupos por parámetros de consulta

`after`: `typing.Optional[RequestAfterOpaqueCursor]`

Parámetro de consulta de cursor opaco para solicitudes que devuelven resultados paginados.

> **Tip**
>
> Este valor se genera automáticamente y se incluye como parte de los vínculos de una respuesta anterior. No está pensado para que pueda leerse.

`page_size`: `typing.Optional[RequestPageSize]` —

`include_total_count`: `typing.Optional[IncludeTotalCount]` —

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### client.groups.show(...) -> AsyncHttpResponse\[GroupWithIncludesResponse]

Muestra los detalles del grupo.

Límites de frecuencia: 100 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
client.groups.show(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    group_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    include="creator",
)
```

**Parámetros**

`account_id`: `Uuid` —

`group_id`: `Uuid` —

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

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### client.groups.create(...) -> AsyncHttpResponse\[GroupResponse]

Cree un grupo para la cuenta actual.

Límites de frecuencia: 10 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio
from frameio.groups import CreateGroupParamsData

client = Frameio(
    token="YOUR_TOKEN",
)
client.groups.create(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    data=CreateGroupParamsData(
        emoji="smile",
        name="group-1",
    ),
)
```

**Parámetros**

`account_id`: `Uuid` —

`data`: `CreateGroupParamsData`

`request_options`: `typing.Optional[RequestOptions]` — Request-specific configuration. Configuración específica de la solicitud.

#### client.groups.update(...) -> AsyncHttpResponse\[GroupResponse]

Actualice los detalles del grupo.

Límites de frecuencia: 10 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio
from frameio.groups import UpdateGroupParamsData

client = Frameio(
    token="YOUR_TOKEN",
)
client.groups.update(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    group_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    data=UpdateGroupParamsData(
        emoji="smile",
        name="group-1",
    ),
)
```

**Parámetros**

`account_id`: `Uuid` —

`group_id`: `Uuid` —

`data`: `UpdateGroupParamsData`

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### Metadatos

#### client.metadata.bulk\_update(...) -> AsyncHttpResponse\[None]

Actualice los valores de metadatos en varios archivos.

Límites de frecuencia: 10 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio
from frameio.metadata import (
    BulkUpdateMetadataParamsData,
    BulkUpdateMetadataParamsDataValuesItem,
)

client = Frameio(
    token="YOUR_TOKEN",
)
client.metadata.bulk_update(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    project_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    data=BulkUpdateMetadataParamsData(
        file_ids=[
            "09b31c2a-04de-464a-a593-643a36ef0d98",
            "b967fc36-4e18-4b48-a3ab-c790100e2baa",
        ],
        values=[
            BulkUpdateMetadataParamsDataValuesItem(
                field_definition_id="ff41ce50-269b-4624-8306-aac10e28ab94",
                value=[
                    {
                        "id": "e60f47b4-cf8e-4273-96d5-3258a830a0aa",
                        "type": "user",
                    },
                    {
                        "id": "24eeaf7e-ce27-4555-bc77-cce39900626d",
                        "type": "account_user_group",
                    },
                ],
            )
        ],
    ),
)
```

**Parámetros**

`account_id`: `Uuid` —

`project_id`: `Uuid` —

`data`: `BulkUpdateMetadataParamsData`

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### client.metadata.show(...) -> AsyncHttpResponse\[MetadataResponse]

Muestre los metadatos de un archivo.

Límites de frecuencia: 100 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
client.metadata.show(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    file_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    show_null=True,
)
```

**Parámetros**

`account_id`: `Uuid` —

`file_id`: `Uuid` —

`show_null`: `typing.Optional[bool]` —

`request_options`: typing.Optional\[RequestOptions] — Configuración específica de la solicitud.

#### Campos de metadatos

#### client.metadata\_fields.metadata\_field\_definitions\_delete(...) -> AsyncHttpResponse\[None]

Elimine las definiciones de campos personalizados a nivel de cuenta.

Límites de frecuencia: 60 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
client.metadata_fields.metadata_field_definitions_delete(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    field_definition_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
)

```

**Parámetros**

`account_id`: Uuid —

`field_definition_id`: Uuid —

`request_options`: typing.Optional\[RequestOptions] — Configuración específica de la solicitud.

#### client.metadata\_fields.metadata\_field\_definitions\_update(...) -> AsyncHttpResponse\[FieldDefinitionResponse]

Actualice las definiciones de campos personalizados a nivel de cuenta.

Límites de frecuencia: 10 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import (
    Frameio,
    UpdateSelectDefinitionParamsFieldConfiguration,
    UpdateSelectDefinitionParamsFieldConfigurationOptionsItem,
)
from frameio.metadata_fields import UpdateFieldDefinitionParamsData_Select

client = Frameio(
    token="YOUR_TOKEN",
)
client.metadata_fields.metadata_field_definitions_update(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    field_definition_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    data=UpdateFieldDefinitionParamsData_Select(
        field_configuration=UpdateSelectDefinitionParamsFieldConfiguration(
            enable_add_new=False,
            options=[
                UpdateSelectDefinitionParamsFieldConfigurationOptionsItem(
                    display_name="Option 1",
                ),
                UpdateSelectDefinitionParamsFieldConfigurationOptionsItem(
                    display_name="Option 2",
                ),
            ],
        ),
        name="Updated-Field-Name",
    ),
)

```

**Parámetros**

`account_id`: Uuid —

`field_definition_id`: Uuid —

`data`: typing.Optional\[UpdateFieldDefinitionParamsData]

`request_options`: typing.Optional\[RequestOptions — Configuración específica de la solicitud.

#### client.metadata\_fields.metadata\_field\_definitions\_index(...) -> AsyncHttpResponse\[FieldDefinitionsWithIncludesResponse]

Enumere las definiciones de campos a nivel de cuenta.

Límites de frecuencia: 100 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
client.metadata_fields.metadata_field_definitions_index(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    after="<opaque_cursor>",
    page_size=10,
    include_total_count=False,
)

```

**Parámetros**

`account_id`: Uuid —

`include`: typing.Optional\[typing.Literal\["creator"]] —

`after`: typing.Optional\[RequestAfterOpaqueCursor]

Parámetro de consulta de cursor opaco para solicitudes que devuelven resultados paginados.

> **Tip**
>
> Este valor se genera automáticamente y se incluye como parte de los vínculos de una respuesta anterior. No está pensado para que pueda leerse.

`page_size`: typing.Optional\[RequestPageSize] —

`include_total_count`: typing.Optional\[IncludeTotalCount] —

`request_options`: typing.Optional\[RequestOptions] — Configuración específica de la solicitud.

#### client.metadata\_fields.metadata\_field\_definitions\_create(...) -> AsyncHttpResponse\[FieldDefinitionResponse]

Cree definiciones de campos a nivel de cuenta.

Límites de frecuencia: 10 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import (
    Frameio,
    SelectDefinitionParamsFieldConfiguration,
    SelectDefinitionParamsFieldConfigurationOptionsItem,
)
from frameio.metadata_fields import CreateFieldDefinitionParamsData_Select

client = Frameio(
    token="YOUR_TOKEN",
)
client.metadata_fields.metadata_field_definitions_create(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    data=CreateFieldDefinitionParamsData_Select(
        field_configuration=SelectDefinitionParamsFieldConfiguration(
            enable_add_new=False,
            options=[
                SelectDefinitionParamsFieldConfigurationOptionsItem(
                    display_name="Option 1",
                ),
                SelectDefinitionParamsFieldConfigurationOptionsItem(
                    display_name="Option 2",
                ),
            ],
        ),
        name="Fields definition name",
    ),
)

```

**Parámetros**

`account_id`: Uuid —

`data`: typing.Optional\[CreateFieldDefinitionParamsData]

`request_options`: typing.Optional\[RequestOptions] — Configuración específica de la solicitud.

#### Permisos del proyecto

#### client.project\_permissions.index(...) -> AsyncPager\[UserRole, UserRolesResponse]

Enumere las funciones de usuario de un proyecto determinado.

Límites de frecuencia: 100 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
response = client.project_permissions.index(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    project_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    include_deactivated=True,
    after="<opaque_cursor>",
    page_size=10,
    include_total_count=False,
)
for item in response:
    yield item
# alternatively, you can paginate page-by-page
for page in response.iter_pages():
    yield page

```

**Parámetros**

`account_id`: Uuid —

`project_id`: Uuid —

`include_deactivated`: typing.Optional\[bool] — Permite incluir usuarios desactivados en la respuesta. El valor predeterminado es false.

`after`: typing.Optional\[RequestAfterOpaqueCursor]

Parámetro de consulta de cursor opaco para solicitudes que devuelven resultados paginados.

> **Tip**
>
> NOTA: Este valor se genera automáticamente y se incluye como parte de los vínculos de una respuesta anterior. No está pensado para que pueda leerse.

`page_size`: typing.Optional\[RequestPageSize] —

`include_total_count`: typing.Optional\[IncludeTotalCount] —

`request_options`: typing.Optional\[RequestOptions] — Configuración específica de la solicitud.

#### client.project\_permissions.delete(...) -> AsyncHttpResponse\[None]

Elimine un usuario de un proyecto determinado.

Límites de frecuencia: 60 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
client.project_permissions.delete(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    project_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    user_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
)

```

**Parámetros**

`account_id`: Uuid —

`project_id`: Uuid —

`user_id`: Uuid —

`request_options`: typing.Optional\[RequestOptions] — Configuración específica de la solicitud.

#### client.project\_permissions.project\_user\_roles\_update(...) -> AsyncHttpResponse\[UpdateUserRolesResponse]

Actualice las funciones de usuario del proyecto determinado si el usuario ya se ha añadido al proyecto. Si el usuario no se ha añadido al proyecto, se añadirá con la función indicada.

Límites de frecuencia: 10 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio, UpdateUserRolesParamsData

client = Frameio(
    token="YOUR_TOKEN",
)
client.project_permissions.project_user_roles_update(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    project_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    user_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    data=UpdateUserRolesParamsData(
        role="editor",
    ),
)

```

**Parámetros**

`account_id`: Uuid —

`project_id`: Uuid —

`user_id`: Uuid —

`data`: UpdateUserRolesParamsData

`request_options`: typing.Optional\[RequestOptions] — Configuración específica de la solicitud.

#### Proyectos

#### client.projects.show(...) -> AsyncHttpResponse\[ProjectWithIncludesResponse]

Muestre los detalles del proyecto.

Límites de frecuencia: 100 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
client.projects.show(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    project_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
)
```

**Parámetros**

`account_id`: `Uuid` —

`project_id`: `Uuid` —

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

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### client.projects.delete(...) -> AsyncHttpResponse\[None]

Elimine un proyecto.

Límites de frecuencia: 60 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
client.projects.delete(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    project_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
)
```

**Parámetros**

`account_id`: `Uuid` —

`project_id`: `Uuid` —

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### client.projects.update(...) -> AsyncHttpResponse\[ProjectResponse]

Actualice los detalles del proyecto.

Límites de frecuencia: 10 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio
from frameio.projects import ProjectUpdateParamsData

client = Frameio(
    token="YOUR_TOKEN",
)
client.projects.update(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    project_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    data=ProjectUpdateParamsData(
        name="Project Name",
        restricted=True,
        status="active",
    ),
)
```

**Parámetros**

`account_id`: `Uuid` —

`project_id`: `Uuid` —

`data`: `ProjectUpdateParamsData`

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### client.projects.index(...) -> AsyncPager\[ProjectWithIncludes, ProjectsWithIncludesResponse]

Enumere los proyectos de un espacio de trabajo determinado.

Límites de frecuencia: 100 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
response = client.projects.index(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    workspace_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    after="<opaque_cursor>",
    page_size=10,
    include_total_count=False,
)
for item in response:
    yield item
# alternatively, you can paginate page-by-page
for page in response.iter_pages():
    yield page
```

**Parámetros**

`account_id`: `Uuid` —

`workspace_id`: `Uuid` —

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

`after`: `typing.Optional[RequestAfterOpaqueCursor]`

Parámetro de consulta de cursor opaco para solicitudes que devuelven resultados paginados.

> **Tip**
>
> Este valor se genera automáticamente y se incluye como parte de los vínculos de una respuesta anterior. No está pensado para que pueda leerse.

`page_size`: `typing.Optional[RequestPageSize]` —

`include_total_count`: `typing.Optional[IncludeTotalCount]` —

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### client.projects.create(...) -> AsyncHttpResponse\[ProjectResponse]

Cree un proyecto en un espacio de trabajo determinado.

Límites de frecuencia: 10 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio
from frameio.projects import ProjectParamsData

client = Frameio(
    token="YOUR_TOKEN",
)
client.projects.create(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    workspace_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    data=ProjectParamsData(
        name="Project Name",
        restricted=True,
    ),
)
```

**Parámetros**

`account_id`: `Uuid` —

`workspace_id`: `Uuid` —

`data`: `ProjectParamsData`

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### client.projects.account\_projects\_index(...) -> AsyncPager\[ProjectWithIncludes, ProjectsWithIncludesResponse]

Enumera todos los proyectos a los que tiene acceso el usuario autenticado en la cuenta especificada.

Límites de frecuencia: 100 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
response = client.projects.account_projects_index(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    include="owner",
    sort="name_asc",
    after="<opaque_cursor>",
    page_size=10,
    include_total_count=False,
)
for item in response:
    yield item
# alternatively, you can paginate page-by-page
for page in response.iter_pages():
    yield page
```

**Parámetros**

`account_id`: `Uuid` —

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

`sort`: `typing.Optional[AccountProjectsIndexRequestSort]` — Ordena proyectos por parámetros de consulta

`after`: `typing.Optional[RequestAfterOpaqueCursor]`

Parámetro de consulta de cursor opaco para solicitudes que devuelven resultados paginados.

> **Tip**
>
> Este valor se genera automáticamente y se incluye como parte de los vínculos de una respuesta anterior. No está pensado para que pueda leerse.

`page_size`: `typing.Optional[RequestPageSize]` —

`include_total_count`: `typing.Optional[IncludeTotalCount]` —

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### client.projects.invited\_projects\_index(...) -> AsyncPager\[ProjectWithIncludes, ProjectsWithIncludesResponse]

Enumere los proyectos a los que se ha invitado al usuario actual en la cuenta especificada, pero a los que no tiene acceso de nivel de espacio de trabajo. Se trata de proyectos en los que el usuario tiene acceso de colaborador específico del proyecto sin permisos de equipo o espacio de trabajo más amplios.

Límites de frecuencia: 100 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
response = client.projects.invited_projects_index(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    include="owner",
    sort="name_asc",
    after="<opaque_cursor>",
    page_size=10,
    include_total_count=False,
)
for item in response:
    yield item
# alternatively, you can paginate page-by-page
for page in response.iter_pages():
    yield page
```

**Parámetros**

`account_id`: `Uuid` —

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

`sort`: `typing.Optional[InvitedProjectsIndexRequestSort]` — Ordena proyectos por parámetros de consulta

`after`: `typing.Optional[RequestAfterOpaqueCursor]`

Parámetro de consulta de cursor opaco para solicitudes que devuelven resultados paginados.

> **Tip**
>
> Este valor se genera automáticamente y se incluye como parte de los vínculos de una respuesta anterior. No está pensado para que pueda leerse.

`page_size`: `typing.Optional[RequestPageSize]` —

`include_total_count`: `typing.Optional[IncludeTotalCount]` —

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### Búsqueda

#### client.search.search(...) -> AsyncHttpResponse\[SearchResponse]

Busque entre activos, carpetas y proyectos dentro de una cuenta.

Límites de frecuencia: 100 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio
from frameio.search import SearchParamsFilters

client = Frameio(
    token="YOUR_TOKEN",
)
client.search.search(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    engine="nlp",
    query="red car driving on highway",
    filters=SearchParamsFilters(
        files_and_version_stacks=True,
        folders=False,
        projects=False,
    ),
    after="<opaque_cursor>",
    page_size=10,
    include_total_count=False,
)
```

**Parámetros**

`account_id`: `Uuid` —

`engine`: `SearchParamsEngine` — Motor de búsqueda a utilizar. Motores disponibles: lexical, nlp.

`query`: `str` — El texto de la consulta de búsqueda

`after`: `typing.Optional[RequestAfterOpaqueCursor]`

Parámetro de consulta de cursor opaco para solicitudes que devuelven resultados paginados.

> **Tip**
>
> Este valor se genera automáticamente y se incluye como parte de los vínculos de una respuesta anterior. No está pensado para que pueda leerse.

`page_size`: `typing.Optional[RequestPageSize]` —

`include_total_count`: `typing.Optional[IncludeTotalCount]` —

`filters`: `typing.Optional[SearchParamsFilters]` — Filtros para controlar qué tipos de resultados se devuelven

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### Usos compartidos

#### client.shares.show(...) -> AsyncHttpResponse\[ShareResponse]

Muestre un solo elemento de uso compartido.

Límites de frecuencia: 100 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage
from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
client.shares.show(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    share_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
)
```

**Parámetros**

`account_id`: `Uuid` —

`share_id`: `Uuid` —

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### client.shares.delete(...) -> AsyncHttpResponse\[None]

Elimine un elemento de uso compartido.

Límites de frecuencia: 60 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage
from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
client.shares.delete(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    share_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
)

```

**Parámetros**

`account_id`: `Uuid` —

`share_id`: `Uuid` —

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### client.shares.update(...) -> AsyncHttpResponse\[ShareResponse]

Actualice un elemento de uso compartido.

Límites de frecuencia: 10 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

import datetime

from frameio import Frameio
from frameio.shares import UpdateShareParamsData

client = Frameio(
    token="YOUR_TOKEN",
)
client.shares.update(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    share_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    data=UpdateShareParamsData(
        access="public",
        description="A descriptive summary of the share",
        downloading_enabled=True,
        expiration=datetime.datetime.fromisoformat(
            "2026-01-22 17:04:53+00:00",
        ),
        name="Share Name",
        passphrase="as!dfj39sd(*",
    ),
)
```

**Parámetros**

`account_id`: `Uuid` —

`share_id`: `Uuid`—

`data`: `UpdateShareParamsData`

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### client.shares.list\_reviewers(...) -> AsyncPager\[User, ShareReviewersResponse]

Enumere los revisores del elemento de uso compartido.

Límites de frecuencia: 10 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
response = client.shares.list_reviewers(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    share_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    after="<opaque_cursor>",
    page_size=10,
    include_total_count=False,
)
for item in response:
    yield item
# alternatively, you can paginate page-by-page
for page in response.iter_pages():
    yield page
```

**Parámetros**

`account_id`: `Uuid` —

`share_id`: `Uuid`—

`after`: `typing.Optional[RequestAfterOpaqueCursor]`

Parámetro de consulta de cursor opaco para solicitudes que devuelven resultados paginados.

> **Tip**
>
> Este valor se genera automáticamente y se incluye como parte de los vínculos de una respuesta anterior. No está pensado para que pueda leerse.

`page_size`: `typing.Optional[RequestPageSize]` —

`include_total_count`: `typing.Optional[IncludeTotalCount]` —

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### client.shares.add\_reviewers(...) -> AsyncHttpResponse\[None]

Añada revisores al elemento de uso compartido seguro mediante tres tipos de identificador: `adobe_user_id`, `email` y `user_id`.

Una solicitud solo puede incluir un parámetro de tipo de identificador.

`email` es el único identificador que permite añadir revisores sin cuenta de Frame al elemento de uso compartido en la cuenta a la que pertenece.

Límites de frecuencia: 10 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio
from frameio.shares import (
    AddReviewersToShareParamsData,
    AddReviewersToShareParamsDataReviewers,
)

client = Frameio(
    token="YOUR_TOKEN",
)
client.shares.add_reviewers(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    share_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    data=AddReviewersToShareParamsData(
        message="Please join my share!",
        reviewers=AddReviewersToShareParamsDataReviewers(
            emails=["email1@domain.com", "email2@domain.com"],
        ),
    ),
)
```

**Parámetros**

`account_id`: `Uuid` —

`share_id`: `Uuid`—

`data`: `AddReviewersToShareParamsData`

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### client.shares.remove\_reviewers(...) -> AsyncHttpResponse\[None]

Elimina revisores del elemento de uso compartido seguro mediante tres tipos de identificador: `adobe_user_id`, `email` y `user_id`.

Una solicitud solo puede incluir un parámetro de tipo de identificador.

Límites de frecuencia: 10 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio
from frameio.shares import (
    RemoveReviewerParamsData,
    RemoveReviewerParamsDataReviewers,
)

client = Frameio(
    token="YOUR_TOKEN",
)
client.shares.remove_reviewers(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    share_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    data=RemoveReviewerParamsData(
        reviewers=RemoveReviewerParamsDataReviewers(
            adobe_user_ids=[
                "2A3C1A3D66C621B20A494021@176719f5667c82b4499999.e"
            ],
        ),
    ),
)
```

**Parámetros**

`account_id`: `Uuid` —

`share_id`: `Uuid`—

`data`: `RemoveReviewerParamsData`

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### client.shares.remove\_asset(...) -> AsyncHttpResponse\[RemoveAssetResponse]

Elimine de ese elemento de uso compartido un activo incluido actualmente en él.

Límites de frecuencia: 10 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
client.shares.remove_asset(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    share_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    asset_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
)
```

**Parámetros**

`account_id`: `Uuid` —

`share_id`: `Uuid`—

`asset_id`: `Uuid`—

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### client.shares.add\_asset(...) -> AsyncHttpResponse\[AddAssetResponse]

Añada un elemento de uso compartido de un activo nuevo.

Límites de frecuencia: 10 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio
from frameio.shares import AddAssetParamsData

client = Frameio(
    token="YOUR_TOKEN",
)
client.shares.add_asset(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    share_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    data=AddAssetParamsData(
        asset_id="0cc1cb59-1d7c-4176-8532-afe099897318",
    ),
)
```

**Parámetros**

`account_id`: `Uuid` —

`share_id`: `Uuid`—

`data`: `AddAssetParamsData`

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### client.shares.index(...) -> AsyncPager\[Share, SharesResponse]

Enumere los elementos de uso compartido de un proyecto.

Límites de frecuencia: 100 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
response = client.shares.index(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    project_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    after="<opaque_cursor>",
    page_size=10,
    include_total_count=False,
)
for item in response:
    yield item
# alternatively, you can paginate page-by-page
for page in response.iter_pages():
    yield page
```

**Parámetros**

`account_id`: `Uuid` —

`project_id`: `Uuid`—

`after`: `typing.Optional[RequestAfterOpaqueCursor]`

Parámetro de consulta de cursor opaco para solicitudes que devuelven resultados paginados.

> **Tip**
>
> Este valor se genera automáticamente y se incluye como parte de los vínculos de una respuesta anterior. No está pensado para que pueda leerse.

`page_size`: `typing.Optional[RequestPageSize]` —

`include_total_count`: `typing.Optional[IncludeTotalCount]` —

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### client.shares.create(...) -> AsyncHttpResponse\[ShareResponse]

Cree un elemento de uso compartido.

Límites de frecuencia: 10 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage
import datetime

from frameio import Frameio
from frameio.shares import CreateShareParamsData_Asset

client = Frameio(
    token="YOUR_TOKEN",
)
client.shares.create(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    project_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    data=CreateShareParamsData_Asset(
        access="public",
        asset_ids=[
            "12eb1446-5736-4f93-85fc-3b636f156211",
            "f23a3b3e-7b1f-4655-b91a-acf0566e5bb9",
        ],
        downloading_enabled=True,
        expiration=datetime.datetime.fromisoformat(
            "2026-01-22 17:04:53+00:00",
        ),
        name="Share Name",
        passphrase="as!dfj39sd(*",
    ),
)
```

**Parámetros**

`account_id`: `Uuid` —

`project_id`: `Uuid`—

`data`: `CreateShareParamsData`

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### Carga

#### frameio.upload.FrameioUploader(asset, file, …)

Cargue un archivo local en Frame.io utilizando las URL firmadas previamente devueltas por `client.files.create_local_upload(…)`. `FrameioUploader` es un thin wrapper que lee `upload_urls`, `file_size` y `media_type` de la respuesta de `FileWithUploadUrls` y realiza una carga de S3 de varios subprocesos fragmentados.

**`usage`**

```python usage

from frameio import Frameio
from frameio.files import FileCreateLocalUploadParamsData
from frameio.upload import FrameioUploader

client = Frameio(
    token="YOUR_TOKEN",
)
response = client.files.create_local_upload(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    data=FileCreateLocalUploadParamsData(
        file_size=1137444,
        name="asset.png",
    ),
)
with open("asset.png", "rb") as f:
    FrameioUploader(response.data, f).upload()
```

**Parámetros**

`asset`: `FileWithUploadUrls` — Una instancia `FileWithUploadUrls` devuelta por `client.files.create_local_upload(…)`.

`file`: `typing.BinaryIO` — Un objeto similar a un archivo abierto en modo de lectura binario (`“rb”`).

`max_workers`: `int` — Simultaneidad del grupo de subprocesos que pasa al cargador subyacente. El valor predeterminado es 5.

`headers`: `typing.Optional[typing.Dict[str, str]]` — Encabezados adicionales combinados en cada solicitud PT de S3. El valor predeterminado es `{“x-amz-acl”: “private”}` según lo requiera Frame.io.

`max_retries`: `int` — Número de reintentos por fragmento. El valor predeterminado es 3.

`on_progress`: `typing.Optional[typing.Callable[[int, int], None]]` — Devolución de llamada opcional que se invoca después de cada fragmento con `(bytes_uploaded_so_far, total_bytes)`. **Methods** `upload() -&gt; None` — Carga del archivo. Se bloquea hasta que se completa o se produce un error.

#### Usuarios

#### client.users.show() -> AsyncHttpResponse\[ProfileResponse]

Inspeccione los detalles del usuario asociado al token de portador.

Límites de frecuencia: 100 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
client.users.show()
```

**Parámetros**

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### Pilas de versiones

#### client.version\_stacks.index(...) -> AsyncHttpResponse\[AssetsWithIncludesResponse]

Enumere los elementos secundarios (archivos) de una pila de versiones determinada.

Use el parámetro de consulta include para incluir de forma selectiva propiedades adicionales en la respuesta.

> **Note**
>
> Si incluye `media_links.original` y el usuario no tiene permiso para descargar archivos en el proyecto correspondiente, este punto final responderá con un error `403 Forbidden`. Si no se puede acceder al contenido porque se requiere marca de agua para este usuario y los media\_links solicitados no la admiten, la solicitud se completará correctamente, pero los vínculos de medios no compatibles se definirán como null. Del mismo modo, si un vínculo de transcodificación solicitado no existe para un archivo concreto (por ejemplo, si se incluye `media_links.video_h264_180` en un archivo de imagen estática) o si el proceso de transcodificación no ha finalizado (es decir, el estado del archivo es "uploaded" en lugar de "transcoded"), el vínculo de medios también se definirá como null en la carga útil de respuesta. En resumen, el cliente debe gestionar correctamente los vínculos de medios.

Límites de frecuencia: 100 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
client.version_stacks.index(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    version_stack_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    include="media_links",
    after="<opaque_cursor>",
    page_size=10,
    include_total_count=False,
)

```

**Parámetros**

`account_id`: Uuid —

`version_stack_id`: Uuid —

`include`: typing.Optional\[FileWithMediaLinksInclude] —

`after`: typing.Optional\[RequestAfterOpaqueCursor]

Parámetro de consulta de cursor opaco para solicitudes que devuelven resultados paginados.

> **Tip**
>
> Este valor se genera automáticamente y se incluye como parte de los vínculos de una respuesta anterior. No está pensado para que pueda leerse.

`page_size`: typing.Optional\[RequestPageSize] —

`include_total_count`: typing.Optional\[IncludeTotalCount] —

`request_options`: typing.Optional\[RequestOptions] — Configuración específica de la solicitud.

#### client.version\_stacks.show(...) -> AsyncHttpResponse\[VersionStackWithIncludesResponse]

Muestre los detalles de la pila de versiones.

Límites de frecuencia: 100 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
client.version_stacks.show(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    version_stack_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    include="media_links",
)

```

**Parámetros**

`account_id`: Uuid —

`version_stack_id`: Uuid —

`include`: typing.Optional\[VersionStacksShowRequestInclude] —

`request_options`: typing.Optional\[RequestOptions] — Configuración específica de la solicitud.

#### client.version\_stacks.copy(...) -> AsyncHttpResponse\[VersionStackCopyResponse]

Copie la pila de versiones.

Límites de frecuencia: 10 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio
from frameio.version_stacks import VersionStackCopyParamsData

client = Frameio(
    token="YOUR_TOKEN",
)
client.version_stacks.copy(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    version_stack_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    copy_metadata=True,
    data=VersionStackCopyParamsData(
        parent_id="2e426fe0-f965-4594-8b2b-b4dff1dc00ec",
    ),
)

```

**Parámetros**

`account_id`: Uuid —

`version_stack_id`: Uuid —

`copy_metadata`: typing.Optional\[bool] — Indica si se deben copiar los valores de metadatos junto con la pila de versiones

`data`: typing.Optional\[VersionStackCopyParamsData]

`request_options`: typing.Optional\[RequestOptions] — Configuración específica de la solicitud.

#### client.version\_stacks.list(...) -> AsyncHttpResponse\[VersionStacksWithIncludesResponse]

Enumere las pilas de versiones de una carpeta determinada.

Límites de frecuencia: 5 llamadas por segundo por account\_user

**`usage`**

```python usage

from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
client.version_stacks.list(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    include="media_links",
    after="<opaque_cursor>",
    page_size=10,
    include_total_count=False,
)

```

**Parámetros**

`account_id`: Uuid —

`folder_id`: Uuid —

`include`: typing.Optional\[FileWithMediaLinksInclude] —

`after`: typing.Optional\[RequestAfterOpaqueCursor]

Parámetro de consulta de cursor opaco para solicitudes que devuelven resultados paginados.

> **Tip**
>
> Este valor se genera automáticamente y se incluye como parte de los vínculos de una respuesta anterior. No está pensado para que pueda leerse.

`page_size`: typing.Optional\[RequestPageSize] —

`include_total_count`: typing.Optional\[IncludeTotalCount] —

`request_options`: typing.Optional\[RequestOptions] — Configuración específica de la solicitud.

#### client.version\_stacks.create(...) -> AsyncHttpResponse\[VersionStackWithIncludesResponse]

Cree una pila de versiones nueva en la carpeta principal.

Límites de frecuencia: 10 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio
from frameio.version_stacks import VersionStackCreateParamsData

client = Frameio(
    token="YOUR_TOKEN",
)
client.version_stacks.create(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    folder_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    data=VersionStackCreateParamsData(
        file_ids=[
            "dd2a3cdd-fc90-41bd-a7b8-8a0447aec6d4",
            "79fed48a-8372-496e-8dcb-5e959b9b9fcf",
        ],
    ),
)

```

**Parámetros**

`account_id`: Uuid —

`folder_id`: Uuid —

`data`: VersionStackCreateParamsData

`request_options`: typing.Optional\[RequestOptions] — Configuración específica de la solicitud.

#### client.version\_stacks.move(...) -> AsyncHttpResponse\[VersionStackResponse]

Mueva la pila de versiones a una carpeta.

Límites de frecuencia: 10 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio
from frameio.version_stacks import VersionStackMoveParamsData

client = Frameio(
    token="YOUR_TOKEN",
)
client.version_stacks.move(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    version_stack_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    data=VersionStackMoveParamsData(
        parent_id="2e426fe0-f965-4594-8b2b-b4dff1dc00ec",
    ),
)

```

**Parámetros**

`account_id`: Uuid —

`version_stack_id`: Uuid —

`data`: VersionStackMoveParamsData

`request_options`: typing.Optional\[RequestOptions] — Configuración específica de la solicitud.

#### Webhooks

#### client.webhooks.index(...) -> AsyncPager\[WebhookWithIncludes, WebhooksWithIncludesResponse]

Enumere los webhooks del espacio de trabajo determinado.

Límites de frecuencia: 100 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
response = client.webhooks.index(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    workspace_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    after="<opaque_cursor>",
    page_size=10,
    include_total_count=False,
)
for item in response:
    yield item
# alternatively, you can paginate page-by-page
for page in response.iter_pages():
    yield page
```

**Parámetros**

`account_id`: Uuid —

`workspace_id`: Uuid —

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

`after`: typing.Optional\[RequestAfterOpaqueCursor]

Parámetro de consulta de cursor opaco para solicitudes que devuelven resultados paginados.

> **Tip**
>
> Este valor se genera automáticamente y se incluye como parte de los vínculos de una respuesta anterior. No está pensado para que pueda leerse.

`page_size`: typing.Optional\[RequestPageSize] —

`include_total_count`: typing.Optional\[IncludeTotalCount] —

`request_options`: typing.Optional\[RequestOptions] — Configuración específica de la solicitud.

#### client.webhooks.create(...) -> AsyncHttpResponse\[WebhookCreateResponse]

Crea un solo webhook con secreto.

Eventos válidos:

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

Límites de frecuencia: 10 llamadas cada 1,00 minuto(s) por cuenta

**`usage`**

```python usage

from frameio import Frameio
from frameio.webhooks import WebhookCreateParamsData

client = Frameio(
    token="YOUR_TOKEN",
)
client.webhooks.create(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    workspace_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    data=WebhookCreateParamsData(
        events=[
            "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",
        ],
        name="New Webhook",
        url="https://url.example.com",
    ),
)

```

**Parámetros**

`account_id`: Uuid —

`workspace_id`: Uuid —

`data`: WebhookCreateParamsData

`request_options`: typing.Optional\[RequestOptions] — Configuración específica de la solicitud.

#### client.webhooks.show(...) -> AsyncHttpResponse\[WebhookWithIncludesResponse]

Muestre los detalles del webhook.

Límites de frecuencia: 100 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
client.webhooks.show(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    webhook_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
)
```

**Parámetros**

`account_id`: Uuid —

`webhook_id`: Uuid —

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

`request_options`: typing.Optional\[RequestOptions] — Configuración específica de la solicitud.

#### client.webhooks.delete(...) -> AsyncHttpResponse\[None]

Elimine un webhook.

Límites de frecuencia: 60 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
client.webhooks.delete(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    webhook_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
)
```

**Parámetros**

`account_id`: Uuid —

`webhook_id`: Uuid —

`request_options`: typing.Optional\[RequestOptions] — Configuración específica de la solicitud.

#### client.webhooks.update(...) -> AsyncHttpResponse\[WebhookResponse]

Actualice los detalles del webhook.

Límites de frecuencia: 10 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio
from frameio.webhooks import WebhookUpdateParamsData

client = Frameio(
    token="YOUR_TOKEN",
)
client.webhooks.update(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    webhook_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    data=WebhookUpdateParamsData(
        active=True,
        events=[
            "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",
        ],
        name="Updated Webhook",
        url="https://url.example.com",
    ),
)
```

**Parámetros**

`account_id`: Uuid —

`webhook_id`: Uuid —

`data`: WebhookUpdateParamsData

`request_options`: typing.Optional\[RequestOptions] — Configuración específica de la solicitud.

#### Permisos del espacio de trabajo

#### client.workspace\_permissions.index(...) -> AsyncPager\[UserRole, UserRolesResponse]

Enumere las funciones de usuario de un espacio de trabajo determinado.

Límites de frecuencia: 100 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage
from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
response = client.workspace_permissions.index(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    workspace_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    include_deactivated=True,
    after="<opaque_cursor>",
    page_size=10,
    include_total_count=False,
)
for item in response:
    yield item
# alternatively, you can paginate page-by-page
for page in response.iter_pages():
    yield page
```

**Parámetros**

`account_id`: `Uuid` —

`workspace_id`: `Uuid` —

`includ_deactivated`: `typing.Optional[bool]` — Permite incluir usuarios desactivados en la respuesta. El valor predeterminado es false.

`after`: `typing.Optional[RequestAfterOpaqueCursor]`

Parámetro de consulta de cursor opaco para solicitudes que devuelven resultados paginados.

> **Tip**
>
> Este valor se genera automáticamente y se incluye como parte de los vínculos de una respuesta anterior. No está pensado para que pueda leerse.

`page_size`: `typing.Optional[RequestPageSize]` —

`include_total_count`: `typing.Optional[IncludeTotalCount]` —

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### client.workspace\_permissions.workspace\_user\_roles\_delete(...) -> AsyncHttpResponse\[None]

Elimine un usuario de un espacio de trabajo determinado.

Límites de frecuencia: 60 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage
from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
client.workspace_permissions.workspace_user_roles_delete(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    workspace_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    user_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
)

```

**Parámetros**

`account_id`: `Uuid` —

`workspace_id`: `Uuid` —

`user_id`: `Uuid` —

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### client.workspace\_permissions.workspace\_user\_roles\_update(...) -> AsyncHttpResponse\[UpdateUserRolesResponse]

Actualice las funciones de usuario del espacio de trabajo determinado si el usuario ya se ha añadido al espacio de trabajo. Si el usuario no se ha añadido al espacio de trabajo, se añadirá con la función indicada.

Límites de frecuencia: 10 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio, UpdateUserRolesParamsData

client = Frameio(
    token="YOUR_TOKEN",
)
client.workspace_permissions.workspace_user_roles_update(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    workspace_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    user_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    data=UpdateUserRolesParamsData(
        role="editor",
    ),
)
```

**Parámetros**

`account_id`: `Uuid` —

`workspace_id`: `Uuid`—

`user_id`: `Uuid` —

`data`: `UpdateUserRolesParamsData`

`request_options`: `typing.Optional[RequestOptions]` — Configuración específica de la solicitud.

#### Espacios de trabajo

#### client.workspaces.show(...) -> AsyncHttpResponse\[WorkspaceWithIncludesResponse]

Muestre los detalles del espacio de trabajo.

Límites de frecuencia: 100 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
client.workspaces.show(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    workspace_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
)
```

**Parámetros**

`account_id`: Uuid —

`workspace_id`: Uuid —

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

`request_options`: typing.Optional\[RequestOptions] — Configuración específica de la solicitud.

#### client.workspaces.delete(...) -> AsyncHttpResponse\[None]

Elimine el espacio de trabajo de la cuenta.

Límites de frecuencia: 60 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage
from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
client.workspaces.delete(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    workspace_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
)

```

**Parámetros**

`account_id`: Uuid —

`workspace_id`: Uuid —

`request_options`: typing.Optional\[RequestOptions] — Configuración específica de la solicitud.

#### client.workspaces.update(...) -> AsyncHttpResponse\[WorkspaceResponse]

Actualice un espacio de trabajo.

Límites de frecuencia: 10 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage

from frameio import Frameio, WorkspaceParamsData

client = Frameio(
    token="YOUR_TOKEN",
)
client.workspaces.update(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    workspace_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    data=WorkspaceParamsData(
        name="My Workspace",
    ),
)
```

**Parámetros**

`account_id`: Uuid —

`workspace_id`: Uuid —

`data`: WorkspaceParamsData

`request_options`: typing.Optional\[RequestOptions] — Configuración específica de la solicitud.

#### client.workspaces.index(...) -> AsyncPager\[WorkspaceWithIncludes, WorkspacesWithIncludesResponse]

Enumere los espacios de trabajo de una cuenta determinada.

Límites de frecuencia: 100 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage
from frameio import Frameio

client = Frameio(
    token="YOUR_TOKEN",
)
response = client.workspaces.index(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    after="<opaque_cursor>",
    page_size=10,
    include_total_count=False,
)
for item in response:
    yield item
# alternatively, you can paginate page-by-page
for page in response.iter_pages():
    yield page
```

**Parámetros**

`account_id`: Uuid —

`workspace_id`: Uuid —

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

after: typing.Optional\[RequestAfterOpaqueCursor]

Parámetro de consulta de cursor opaco para solicitudes que devuelven resultados paginados.

> **Tip**
>
> Este valor se genera automáticamente y se incluye como parte de los vínculos de una respuesta anterior. No está pensado para que pueda leerse.

`page_size`: typing.Optional\[RequestPageSize] —

`include_total_count`: typing.Optional\[IncludeTotalCount] —

`request_options`: typing.Optional\[RequestOptions] — Configuración específica de la solicitud.

#### client.workspaces.create(...) -> AsyncHttpResponse\[WorkspaceResponse]

Cree un espacio de trabajo a partir de una cuenta.

Límites de frecuencia: 10 llamadas cada 1,00 minuto(s) por account\_user

**`usage`**

```python usage
from frameio import Frameio, WorkspaceParamsData

client = Frameio(
    token="YOUR_TOKEN",
)
client.workspaces.create(
    account_id="b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
    data=WorkspaceParamsData(
        name="My Workspace",
    ),
)
```

**Parámetros**

`account_id`: Uuid —

`data`: WorkspaceParamsData

`request_options`: typing.Optional\[RequestOptions] — Configuración específica de la solicitud.

---

### PyPI

> **Launch**
>
> Ver en [PyPI](https://pypi.org/project/frameio/)

---