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

# Gestion des workspaces

> Dans cette section, vous apprendrez à gérer les workspaces à l'aide du SDK Python. Les workspaces vous permettent d'organiser et de collaborer sur plusieurs applications avec les membres de votre équipe.

[Client]: client

Les workspaces sont un moyen d'organiser vos applications et de collaborer avec les membres de votre équipe. Vous pouvez créer, récupérer, lister et supprimer des workspaces à l'aide de la classe Client.

## Créer un workspace

`client.create_workspace` renvoie un objet `Workspace`.

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

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

async def example():
    workspace = await client.create_workspace(name='My Workspace')
    
    print(workspace.id)              # Workspace identifier
    print(workspace.name)             # 'My Workspace'
    print(workspace.owner)            # Owner member information
    print(workspace.members)          # List of workspace members
    print(workspace.applications)     # List of applications in the workspace
    print(workspace.createdAt)        # Workspace creation timestamp
```

## Récupérer un workspace

`client.get_workspace` renvoie un objet `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)          # Workspace identifier
    print(workspace.name)         # Workspace name
    print(workspace.owner)        # Owner member information
    print(workspace.members)      # List of workspace members
    print(workspace.applications) # List of applications in the workspace
```

## Lister tous les workspaces

`client.all_workspaces` renvoie une liste d'objets `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"  Owner: {workspace.owner.name}")
        print(f"  Members: {len(workspace.members)}")
        print(f"  Applications: {len(workspace.applications)}")
```

## Supprimer un workspace

`client.delete_workspace` renvoie un objet `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 deleted successfully: {response.status}")
```

## Quitter un workspace

Si vous êtes membre d'un workspace sans en être le propriétaire, vous pouvez quitter le workspace à l'aide de `client.leave_workspace`, qui renvoie un objet `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"Left workspace successfully: {response.status}")
```

## Structure de données du workspace

L'objet `Workspace` contient les informations suivantes :

| Propriété      | Type                | Description                                    |
| -------------- | ------------------- | ---------------------------------------------- |
| `id`           | `str`               | Identifiant unique du workspace                |
| `name`         | `str`               | Nom du workspace                               |
| `owner`        | `Member`            | Informations sur le propriétaire du workspace  |
| `members`      | `list[Member]`      | Liste des membres du workspace                 |
| `applications` | `list[Application]` | Applications associées au workspace            |
| `createdAt`    | `str`               | Horodatage de création du workspace (ISO 8601) |

## Structure de données du membre

Chaque membre d'un workspace possède la structure suivante :

| Propriété | Type  | Description                                |
| --------- | ----- | ------------------------------------------ |
| `id`      | `str` | Identifiant unique du membre               |
| `name`    | `str` | Nom d'affichage du membre                  |
| `group`   | `str` | Rôle ou groupe du membre dans le workspace |
