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

# Gestire le applicazioni

> In questa sezione imparerai a gestire la tua applicazione utilizzando la libreria disponibile. Puoi interagire con la tua applicazione in vari modi, ad esempio ottenendo informazioni sullo stato dell'applicazione, accedendo ai log, avviando, arrestando e riavviando l'applicazione, oltre a gestire i file associati ad essa.

[Client]: client

[Application]: client#application

Tutte le operazioni descritte di seguito possono essere eseguite tramite la classe [Client], la
classe [Application] o la CLI. Di seguito sono riportati alcuni esempi di come eseguire ognuna di
queste operazioni utilizzando entrambe le classi:

## Ottenere lo stato della tua applicazione

`client.app_status` e `app.status` restituiscono un oggetto `StatusData`.

<Tabs>
  <Tab title="Con Client">
    ```python theme={null}
    import squarecloud as square

    client = square.Client(api_key='API KEY')

    async def example():
        status = await client.app_status('application_id')  # StatusData(...)

        print(status.ram)      # '70MB'
        print(status.cpu)      # '5%'
        print(status.network)  # {'total': '0 KB ↑ 0 KB ↓', 'now': '0 KB ↑ 0 KB ↓'}
        print(status.running)  # True | False
        print(status.storage)  # '0B'
    ```
  </Tab>

  <Tab title="Con Application">
    ```python theme={null}
    import squarecloud as square

    client = square.Client(api_key='API KEY')

    async def example():
        app = await client.app('application_id')  # StatusData(...)
        status = await app.status()

        print(status.ram)  # '70MB'
        print(status.cpu)  # '5%'
        print(status.network)  # {'total': '0 KB ↑ 0 KB ↓', 'now': '0 KB ↑ 0 KB ↓'}
        print(status.running)  # True | False
        print(status.storage)  # '0B'
    ```
  </Tab>
</Tabs>

## Ottenere i log

`client.get_logs` e `app.logs` restituiscono un oggetto `LogsData`.

<Tabs>
  <Tab title="Con Client">
    ```python theme={null}
    import squarecloud as square

    client = square.Client(api_key='API KEY')

    async def example():
        logs = await client.get_logs('application_id')

        print(logs)  # LogsData(logs='Hello World!')
        print(logs.logs)  # 'Hello World'
    ```
  </Tab>

  <Tab title="Con Application">
    ```python theme={null}
    import squarecloud as square

    client = square.Client(api_key='API KEY')

    async def example():
        app = await client.app('application_id')
        logs = await app.logs()

        print(logs)  # LogsData(logs='Hello World!')
        print(logs.logs)  # 'Hello World'
    ```
  </Tab>
</Tabs>

## Avviare l'applicazione

`client.start_app` e `app.start` restituiscono un oggetto `Response`.

<Tabs>
  <Tab title="Con Client">
    ```python theme={null}
    import squarecloud as square

    client = square.Client(api_key='API KEY')

    async def example():
        await client.start_app('application_id')
    ```
  </Tab>

  <Tab title="Con Application">
    ```python theme={null}
    import squarecloud as square

    client = square.Client(api_key='API KEY')

    async def example():
        app = await client.app('application_id')
        await app.start()
    ```
  </Tab>
</Tabs>

## Arrestare l'applicazione

`client.stop_app` e `app.stop` restituiscono un oggetto `Response`.

<Tabs>
  <Tab title="Con Client">
    ```python theme={null}
    import squarecloud as square

    client = square.Client(api_key='API KEY')

    async def example():
        await client.stop_app('application_id')
    ```
  </Tab>

  <Tab title="Con Application">
    ```python theme={null}
    import squarecloud as square

    client = square.Client(api_key='API KEY')

    async def example():
        app = await client.app('application_id')
        await app.stop()
    ```
  </Tab>
</Tabs>

## Riavviare l'applicazione

`client.restart_app` e `app.restart` restituiscono un oggetto `Response`.

<Tabs>
  <Tab title="Con Client">
    ```python theme={null}
    import squarecloud as square

    client = square.Client(api_key='API KEY')

    async def example():
        await client.restart_app('application_id')
    ```
  </Tab>

  <Tab title="Con Application">
    ```python theme={null}
    import squarecloud as square

    client = square.Client(api_key='API KEY')

    async def example():
        app = await client.app('application_id')
        await app.restart()
    ```
  </Tab>
</Tabs>

## Eliminare un'applicazione

`client.delete_app` e `app.delete` restituiscono un oggetto `Response`.

<Warning>
  Questo eliminerà la tua applicazione in modo **PERMANENTE**, il che significa che, a meno che tu non disponga di un backup della tua applicazione, non potrà essere recuperata.
</Warning>

<Tabs>
  <Tab title="Con Client">
    ```python theme={null}
    import squarecloud as square

    client = square.Client(api_key='API KEY')

    async def example():
        await client.delete_app('application_id')
    ```
  </Tab>

  <Tab title="Con Application">
    ```python theme={null}
    import squarecloud as square

    client = square.Client(api_key='API KEY')

    async def example():
        app = await client.app('application_id')
        await app.delete()
    ```
  </Tab>
</Tabs>
