> ## Documentation Index
> Fetch the complete documentation index at: https://docs.squarecloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Gerenciando Workspaces

> Nesta seção, você aprenderá como gerenciar espaços de trabalho usando o SDK Python. Workspaces permitem que você organize e colabore em múltiplas aplicações com membros da equipe.

[Client]: client

Workspaces são uma forma de organizar suas aplicações e colaborar com membros da equipe. Você pode criar, recuperar, listar e deletar workspaces usando a classe Client.

## Criando um workspace

`client.create_workspace` retorna um objeto `Workspace`.

```python theme={null}
import squarecloud as square

client = square.Client(api_key='API_KEY')

async def example():
    workspace = await client.create_workspace(name='Meu Workspace')
    
    print(workspace.id)              # Identificador do workspace
    print(workspace.name)             # 'Meu Workspace'
    print(workspace.owner)            # Informações do proprietário
    print(workspace.members)          # Lista de membros do workspace
    print(workspace.applications)     # Lista de aplicações no workspace
    print(workspace.createdAt)        # Data de criação do workspace
```

## Recuperando um workspace

`client.get_workspace` retorna um objeto `Workspace`.

```python theme={null}
import squarecloud as square

client = square.Client(api_key='API_KEY')

async def example():
    workspace = await client.get_workspace(workspace_id='WORKSPACE_ID')
    
    print(workspace.id)          # Identificador do workspace
    print(workspace.name)         # Nome do workspace
    print(workspace.owner)        # Informações do proprietário
    print(workspace.members)      # Lista de membros do workspace
    print(workspace.applications) # Lista de aplicações no workspace
```

## Listando todos os workspaces

`client.all_workspaces` retorna uma lista de objetos `Workspace`.

```python theme={null}
import squarecloud as square

client = square.Client(api_key='API_KEY')

async def example():
    workspaces = await client.all_workspaces()
    
    for workspace in workspaces:
        print(f"Workspace: {workspace.name} (ID: {workspace.id})")
        print(f"  Proprietário: {workspace.owner.name}")
        print(f"  Membros: {len(workspace.members)}")
        print(f"  Aplicações: {len(workspace.applications)}")
```

## Deletando um workspace

`client.delete_workspace` retorna um objeto `Response`.

```python theme={null}
import squarecloud as square

client = square.Client(api_key='API_KEY')

async def example():
    response = await client.delete_workspace(workspace_id='WORKSPACE_ID')
    print(f"Workspace deletado com sucesso: {response.status}")
```

## Saindo de um workspace

Se você é membro de um workspace mas não é o proprietário, você pode sair do workspace usando `client.leave_workspace`, que retorna um objeto `Response`.

```python theme={null}
import squarecloud as square

client = square.Client(api_key='API_KEY')

async def example():
    response = await client.leave_workspace(workspace_id='WORKSPACE_ID')
    print(f"Saiu do workspace com sucesso: {response.status}")
```

## Estrutura de dados do Workspace

O objeto `Workspace` contém as seguintes informações:

| Propriedade    | Tipo                | Descrição                                |
| -------------- | ------------------- | ---------------------------------------- |
| `id`           | `str`               | Identificador único do workspace         |
| `name`         | `str`               | Nome do workspace                        |
| `owner`        | `Member`            | Informações do proprietário do workspace |
| `members`      | `list[Member]`      | Lista de membros do workspace            |
| `applications` | `list[Application]` | Aplicações associadas ao workspace       |
| `createdAt`    | `str`               | Data de criação do workspace (ISO 8601)  |

## Estrutura de dados do Membro

Cada membro em um workspace possui a seguinte estrutura:

| Propriedade | Tipo  | Descrição                              |
| ----------- | ----- | -------------------------------------- |
| `id`        | `str` | Identificador único do membro          |
| `name`      | `str` | Nome de exibição do membro             |
| `group`     | `str` | Função ou grupo do membro no workspace |
