> For the complete documentation index, see [llms.txt](https://docs.medcrypt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.medcrypt.com/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-service.md).

# medcrypt::guardian::Service

## Présentation

Il s’agit d’un groupe nommé de configurations de connexion et de canal.

**Utilisation :** Cette classe sert à gérer les connexions réseau et les canaux de communication dans les applications Guardian.

**Inclure :**

```cpp
#include <Service.h>
```

**Syntaxe :**

```cpp
struct medcrypt::guardian::utilities::ProvisionOnlineFiles;
```

### Fonctions publiques

* [\~Service](#function-~service): Il s’agit du destructeur.
* [IsReady](#function-isready): Vérifie si le service est prêt à fonctionner.
* [IsFailed](#function-isfailed): Vérifie si le service est en état d’échec.
* [Listen](#function-listen): Permet à un service serveur géré d’écouter les nouvelles connexions.
* [ConfigureTransport](#function-configuretransport): Sécurise le transport fourni en fonction du profil chargé.
* [Shutdown](#function-shutdown): Arrête toutes les connexions incluses et attend l’envoi des données en file d’attente ou l’échec de leur envoi.
* [Start](#function-start) (sans surcharge) : Démarre la connexion. Cette opération est bloquante.
* [Start](#start-with-override) (avec surcharge) : Démarre la connexion à l’aide de la chaîne de surcharge fournie. Cette opération est bloquante.
* [AsyncStart](#function-asyncstart): Démarre la connexion. Cette opération est non bloquante.
* [AsyncStart](#asyncstart-with-override): Démarre la connexion à l’aide de la chaîne de surcharge fournie. Cette opération est non bloquante.
* [ClientWaiting](#function-clientwaiting): Vérifie si un client attend de se connecter. Cette opération est non bloquante.

### Détails des fonctions

#### \~Service() <a href="#function-service" id="function-service"></a>

* **Description :** Le destructeur n’aura aucun effet sur la représentation interne de [Guardian](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-guardian.md) de la [Service](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-service.md)..
* **Dépendances :** Aucune : le destructeur est appelé automatiquement
* **Paramètres :** Aucun : le destructeur ne prend aucun paramètre
* **Valeur de retour :** Aucune, puisqu’il s’agit d’un destructeur.
* **Action :** Libère les ressources du service sans modifier la représentation interne de Guardian.
* **Syntaxe :**

```cpp
~Service()
```

#### IsReady() <a href="#function-isready" id="function-isready"></a>

* **Description :** Vérifie si le service est prêt à fonctionner.
* **Dépendances :** Doit être appelée après la création du service
* **Paramètres :** Aucun
* **Renvoie :** Valeur booléenne indiquant si le service est prêt
  * `true` - Le service est prêt pour les opérations configurées
  * `false` - Le service n’est pas prêt ou il s’agit d’un service serveur qui n’est pas en écoute
* **Action :**
  * **Pour les services clients/non gérés :** Prêt à créer de nouvelles sessions à l’aide de [Démarrer](#function-start) de manière asynchrone.
  * **Pour les services serveur :** Le transport est en écoute et prêt à accepter les connexions.
* **Syntaxe :**

```cpp
bool IsReady()
```

#### IsFailed() <a href="#function-isfailed" id="function-isfailed"></a>

* **Description :** Utilisé pour les services serveur lorsque le transport sous-jacent échoue pendant l’écoute. Vérifie si le service est en état d’échec.
* **Dépendances :** Utilisé pour les services serveur afin de vérifier l’état du transport
* **Paramètres :** Aucun
* **Renvoie :** Valeur booléenne indiquant l’état d’échec
  * `true` - Le transport serveur sous-jacent a échoué
  * `false` - Le transport serveur sous-jacent n’a pas échoué
* **Action :** Le service doit être arrêté, puis [Listen](#function-listen) doit être appelé à nouveau.
* **Syntaxe :**

```cpp
bool IsFailed()
```

#### Listen() <a href="#function-listen" id="function-listen"></a>

* **Description :**
  * Permet à un service serveur géré d’écouter les nouvelles connexions.
  * Équivalent à l’appel de « bind » et de « listen » sur un socket serveur.
  * Cette fonction ne s’applique pas aux services non gérés ni aux services clients.
* **Dépendances :** S’applique uniquement aux services serveur gérés
* **Paramètres :**
  * `in_override`: Chaîne de remplacement propre au transport, terminée par un caractère nul
  * **Valeur par défaut :** nullptr (aucun remplacement)
* **Valeur de retour :** Code d’état indiquant la réussite ou l’échec.
  * **Codes de réussite :** `OK` - L’écoute des connexions a démarré avec succès
  * **Codes d’erreur :**
    * `FAIL` - Échec général : l’écoute des connexions n’a pas démarré
    * `MISCONFIGURED` - Le service est configuré comme non géré ou comme service client
* **Action :**
  * Démarre l’écoute des connexions entrantes sur le transport configuré.
  * **Exemple :** Exemple ZeroMQ : « tcp\://127.0.0.1:12345 »
  * (par défaut : aucun remplacement)
* **Voir aussi :** Documentation « Chaînes de remplacement »
* **Syntaxe :**

```cpp
Status Listen(
    const char * in_override =nullptr
)
```

#### ConfigureTransport() <a href="#function-configuretransport" id="function-configuretransport"></a>

* **Description :**
  * Sécurise le transport fourni en fonction du profil chargé.
  * Utilise la configuration du profil pour sécuriser le transport fourni et/ou activer l’authentification en fonction de la configuration du service non géré.
* **Dépendances :** Un profil contenant une configuration de transport doit avoir été chargé
* **Paramètres :**
  * `in_transport`: transport à configurer
* **Valeur de retour :** Code d’état indiquant la réussite ou l’échec.
  * **Code de réussite :** `OK` - Transport fourni configuré avec succès
  * **Codes d’erreur :**
    * `FAIL` - Échec général ; le transport n’est pas configuré
    * `BADPARAM` - `in_transport` est vide
    * `MISCONFIGURED` - Le profil ne permet pas de configurer un transport pour ce service
    * `HANDSHAKEREQUIRED` - Le CertificateManager actuel ne dispose pas des clés ou des éléments de confiance nécessaires
  * **Voir aussi :** documentation « Handshaking non géré »
* **Action :** Applique au transport fourni la configuration de sécurité du profil.
* **Voir aussi :** documentation « Handshaking non géré ».
* **Syntaxe :**

```cpp
Status ConfigureTransport(
    std::shared_ptr< TransportInterface > in_transport
)
```

#### Shutdown() <a href="#function-shutdown" id="function-shutdown"></a>

* **Description :**
  * Arrête toutes les connexions contenues et bloque l’exécution jusqu’à l’envoi des données en attente ou à l’échec de leur envoi.
  * Inclut toutes les sessions, connexions et tous les canaux, y compris ceux placés sur d’autres threads par [CreateTask](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-guardian.md#function-createtask).
* **Dépendances :** Peut être appelé sur un service actif
* **Paramètres :**
  * `in_force`: À l’expiration du délai d’attente (ou immédiatement si celui-ci est de 0), abandonne toutes les données en attente et arrête le service.
  * **Valeur par défaut :** `false`
* **Valeur de retour :** Code d’état indiquant la réussite ou l’échec.
  * **Code de réussite :** `OK` - Le service est arrêté
  * **Codes d’erreur :**
    * `FAIL` - Échec général. Consultez le journal.
    * `AGAIN` - Des données à envoyer sont en attente sur un ou plusieurs transports
* **Action :** Arrête toutes les connexions contenues et libère les ressources.
* **Syntaxe :**

```cpp
Status Shutdown(
    const bool & in_force =false
)
```

#### Start() : aucune redéfinition <a href="#function-start" id="function-start"></a>

* **Description :**
  * Démarre la connexion par un appel bloquant.
  * Le comportement varie selon le type de service :
    * **Géré :**
      * **Services clients :** Bloque l’exécution jusqu’à la réussite ou à l’échec de la connexion.
      * **Services serveur :** Bloque l’exécution jusqu’à ce qu’un client se connecte.
    * **Services non gérés :** Réussit toujours, sauf si une configuration de transport est requise et qu’aucun transport n’a été fourni.
* **Dépendances :** Le service doit être prêt et correctement configuré
* **Paramètres :**
  * `out_session`: pointeur renseigné avec la session résultante en cas de réussite
* **Valeur de retour :** Code d’état indiquant la réussite ou l’échec.
  * **Code de réussite :** `OK` - Connexion démarrée avec succès
  * **Codes d’erreur :**
    * `FAIL` - Impossible de se connecter au point de terminaison ou le service serveur a été arrêté
    * `BADPARAM` - `out_session` est un pointeur nul
    * `MISCONFIGURED` - Le profil ne contient pas suffisamment de données pour créer une connexion
* **Action :** Crée et établit une connexion, puis renvoie un objet de session.
* **Syntaxe :**

```cpp
Status Start(
    std::unique_ptr< Session > * out_session
)
```

#### Start() : avec remplacement <a href="#start-with-override" id="start-with-override"></a>

* **Description :**
  * Appel bloquant pour créer une connexion à l’aide de la chaîne de remplacement fournie.
  * Ne s’applique pas aux services serveur.
* **Dépendances :** Le service doit prendre en charge les chaînes de remplacement
* **Paramètres :**
  * `in_override`: chaîne de remplacement propre au transport, terminée par un caractère nul
  * `out_session`: pointeur renseigné avec la session résultante en cas de réussite
* **Valeur de retour :** Code d’état indiquant la réussite ou l’échec.
  * **Code de réussite :** `OK` - Connexion démarrée avec succès
  * **Codes d’erreur :**
    * `FAIL` - Impossible de se connecter au point de terminaison ou le service serveur a été arrêté
    * `BADPARAM` - out\_session est un pointeur nul
    * `MISCONFIGURED` - Le profil ne contient pas suffisamment de données ou la connexion non gérée nécessite un transport configuré
    * `DENIED` - Il s’agit d’un service serveur ; le remplacement n’est pas possible
  * **Voir également :** Tous les codes d’état pour une référence complète
* **Action :** Crée une connexion à l’aide de paramètres de transport personnalisés.
* **Syntaxe :**

```cpp
Status Start(
    const char * in_override,
    std::unique_ptr< Session > * out_session
)
```

Démarre la connexion à l’aide de la chaîne de remplacement fournie (appel bloquant).

**Paramètres**:

* **in\_override** chaîne de remplacement propre au transport, terminée par un caractère nul ; consultez la documentation « Chaînes de remplacement ». Exemple zeromq : « tcp\://127.0.0.1:12345 » ; aucune valeur de remplacement par défaut
* **out\_session** en cas de réussite, ce pointeur est renseigné avec la session résultante

**Renvoie**:

* **OK** connexion démarrée avec succès
* **FAIL** impossible de se connecter au point de terminaison ou le service serveur a été arrêté
* **BADPARAM** out\_session est nullptr
* **MISCONFIGURED** le profil ne contient pas suffisamment de données pour créer une connexion OU il s’agit d’une connexion non gérée qui nécessite un transport configuré
* **REFUSÉ** il s’agit d’un service serveur ; une surcharge n’est pas possible

**Retour**: [medcrypt::guardian::Status](/fr/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian.md#typedef-status)

Appel bloquant pour établir une connexion. Service géré : client : l’appel bloque jusqu’à ce qu’une connexion réussisse ou échoue. Serveur : sans objet.

Service non géré : cet appel réussit toujours, sauf si le profil chargé exige un transport configuré et qu’aucun transport n’a été fourni.

#### AsyncStart() <a href="#function-asyncstart" id="function-asyncstart"></a>

* **Description :** Appel non bloquant pour établir une connexion. Les services clients renvoient le contrôle dès le début du processus de connexion. Les services serveur renvoient le contrôle si un client en attente est disponible. Pour les services non gérés, l’équivalent est Start().
* **Dépendances :** Le service doit être prêt à accepter des connexions
* **Paramètres :**
  * `out_session`: pointeur renseigné avec la session résultante en cas de réussite
* **Valeur de retour :** Code d’état indiquant la réussite ou l’échec.
  * **Codes de réussite :** `OK` - Le processus de connexion a démarré avec succès
  * **Codes d’erreur :**
    * `FAIL` - Impossible de se connecter au point de terminaison
    * `BADPARAM` - out\_session est un pointeur nul
    * `MISCONFIGURED` - Le profil ne contient pas suffisamment de données pour créer une connexion
    * `AGAIN` - Serveur uniquement : aucun client n’attend pour se connecter
  * **Voir également :** Tous les codes d’état pour une référence complète
* **Action :** Lance le processus de connexion sans bloquer.
* **Syntaxe :**

#### AsyncStart() - Avec surcharge <a href="#asyncstart-with-override" id="asyncstart-with-override"></a>

* **Description :** Appel non bloquant pour établir une connexion à l’aide d’une chaîne de surcharge. Ne s’applique pas aux services serveur qui sont déjà en écoute.
* **Dépendances :** Le service doit prendre en charge la surcharge et ne pas être un serveur en écoute
* **Paramètres :**
  * `in_override`: chaîne de remplacement propre au transport, terminée par un caractère nul
  * `out_session`: pointeur renseigné avec la session résultante en cas de réussite
* **Valeur de retour :** Code d’état indiquant la réussite ou l’échec.
  * **Code de réussite :** `OK` - Connexion démarrée avec succès
  * **Codes d’erreur :**
    * `FAIL` - Impossible de se connecter au point de terminaison
    * `BADPARAM` - out\_session est un pointeur nul
    * `MISCONFIGURED` - Le profil ne contient pas suffisamment de données pour créer une connexion
    * `DENIED` - Le service serveur est déjà en écoute ; une surcharge n’est pas possible
    * `AGAIN` - Serveur uniquement : aucun client n’attend pour se connecter
  * **Voir également :** Tous les codes d’état pour une référence complète
* **Action :** Lance une connexion avec des paramètres personnalisés sans bloquer.

**Syntaxe :**

#### ClientWaiting() <a href="#function-clientwaiting" id="function-clientwaiting"></a>

* **Description :** Vérifie si un client attend pour se connecter (sans blocage). Renvoie toujours false pour les services clients.
* **Dépendances :** Concerne uniquement les services serveur
* **Paramètres :** Aucun
* **Renvoie :** Valeur booléenne indiquant la disponibilité d’un client
  * `true` - Un client est en attente
  * `false` - Aucun client n’est en attente ou il s’agit d’un service client
* **Action :** Si la valeur est true, AsyncStart() réussit et Start() ne bloque pas.
* **Syntaxe :**

|                                                                                                         | Nom                                                                                                                                                                                                                                                                                                                                                       |
| ------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|                                                                                                         | <p><a href="#function-~service"><strong>\~Service</strong></a>()<br>Le destructeur.</p>                                                                                                                                                                                                                                                                   |
| bool                                                                                                    | <p><a href="#function-isready"><strong>IsReady</strong></a>()<br>Indique si le service est prêt à fonctionner.</p>                                                                                                                                                                                                                                        |
| bool                                                                                                    | <p><a href="#function-isfailed"><strong>IsFailed</strong></a>()<br>Indique si le service est en état d’échec.</p>                                                                                                                                                                                                                                         |
| [État](/fr/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian.md#typedef-status) | <p><a href="#function-listen"><strong>Listen</strong></a>(const char \* in\_override =nullptr)<br>Permet à un service serveur géré d’écouter les nouvelles connexions.</p>                                                                                                                                                                                |
| [État](/fr/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian.md#typedef-status) | <p><a href="#function-configuretransport"><strong>ConfigureTransport</strong></a>(std::shared\_ptr< <a href="/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-transportinterface.md">TransportInterface</a> > in\_transport)<br>Sécurise le transport fourni en fonction du profil chargé.</p>                                      |
| [État](/fr/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian.md#typedef-status) | <p><a href="#function-shutdown"><strong>Arrêt</strong></a>(const bool & in\_force =false)<br>Arrête toutes les connexions contenues et attend que toutes les données en file d’attente soient envoyées ou que leur envoi échoue.</p>                                                                                                                      |
| [État](/fr/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian.md#typedef-status) | <p><a href="#function-start"><strong>Démarrer</strong></a>(std::unique\_ptr< <a href="/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-session.md">Session</a> > \* out\_session)<br>Démarre la connexion (bloquant).</p>                                                                                                           |
| [État](/fr/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian.md#typedef-status) | <p><a href="#function-start"><strong>Démarrer</strong></a>(const char <em>in\_override, std::unique\_ptr<</em> <a href="/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-session.md"><em>Session</em></a> <em>></em> out\_session)<br>Démarre la connexion à l’aide de la chaîne de remplacement fournie (bloquant).</p>            |
| [État](/fr/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian.md#typedef-status) | <p><a href="#function-asyncstart"><strong>AsyncStart</strong></a>(std::unique\_ptr< <a href="/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-session.md">Session</a> > \* out\_session)<br>Démarre la connexion (non bloquant).</p>                                                                                                |
| [État](/fr/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian.md#typedef-status) | <p><a href="#function-asyncstart"><strong>AsyncStart</strong></a>(const char <em>in\_override, std::unique\_ptr<</em> <a href="/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-session.md"><em>Session</em></a> <em>></em> out\_session)<br>Démarre la connexion à l’aide de la chaîne de remplacement fournie (non bloquant).</p> |
| bool                                                                                                    | <p><a href="#function-clientwaiting"><strong>ClientWaiting</strong></a>()<br>Vérifie si un client attend de se connecter (non bloquant)</p>                                                                                                                                                                                                               |

## Documentation des fonctions publiques

### fonction Start

```cpp
Status Start(
    std::unique_ptr< Session > * out_session
)
```

Démarre la connexion (bloquant).

**Paramètres**:

* **out\_session** en cas de réussite, ce pointeur est renseigné avec la session résultante

**Renvoie**:

* **OK** connexion démarrée avec succès
* **FAIL** impossible de se connecter au point de terminaison ou le service serveur a été arrêté
* **BADPARAM** out\_session est nullptr
* **MISCONFIGURED** le profil ne contient pas suffisamment de données pour établir une connexion

**Retour**: [medcrypt::guardian::Status](/fr/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian.md#typedef-status)

Appel bloquant pour établir une connexion. Managed : Client : l’appel reste bloqué jusqu’à la réussite ou à l’échec de la connexion. Server : l’appel reste bloqué jusqu’à ce qu’un client se connecte.

Service non géré : cet appel réussit toujours, sauf si le profil chargé exige un transport configuré et qu’aucun transport n’a été fourni.

### fonction Start

```cpp
Status Start(
    const char * in_override,
    std::unique_ptr< Session > * out_session
)
```

Démarre la connexion à l’aide de la chaîne de remplacement fournie (appel bloquant).

**Paramètres**:

* **in\_override** chaîne de remplacement propre au transport, terminée par un caractère nul ; consultez la documentation « Chaînes de remplacement ». Exemple zeromq : « tcp\://127.0.0.1:12345 » ; aucune valeur de remplacement par défaut
* **out\_session** en cas de réussite, ce pointeur est renseigné avec la session résultante

**Renvoie**:

* **OK** connexion démarrée avec succès
* **FAIL** impossible de se connecter au point de terminaison ou le service serveur a été arrêté
* **BADPARAM** out\_session est nullptr
* **MISCONFIGURED** le profil ne contient pas suffisamment de données pour créer une connexion OU il s’agit d’une connexion non gérée qui nécessite un transport configuré
* **REFUSÉ** il s’agit d’un service serveur ; une surcharge n’est pas possible

**Retour**: [medcrypt::guardian::Status](/fr/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian.md#typedef-status)

Appel bloquant pour établir une connexion. Service géré : client : l’appel bloque jusqu’à ce qu’une connexion réussisse ou échoue. Serveur : sans objet.

Service non géré : cet appel réussit toujours, sauf si le profil chargé exige un transport configuré et qu’aucun transport n’a été fourni.

### fonction AsyncStart

```cpp
Status AsyncStart(
    std::unique_ptr< Session > * out_session
)
```

Démarre la connexion (non bloquant).

**Paramètres**:

* **out\_session** en cas de réussite, ce pointeur est renseigné avec la session résultante

**Renvoie**:

* **OK** le processus de connexion a démarré avec succès
* **FAIL** impossible de se connecter au point de terminaison
* **BADPARAM** out\_session a été défini sur nullptr
* **MISCONFIGURED** le profil ne contient pas suffisamment de données pour établir une connexion
* **AGAIN** côté serveur uniquement : aucun client n’attend de se connecter, réessayez

**Retour**: [medcrypt::guardian::Status](/fr/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian.md#typedef-status)

Appel non bloquant pour établir une connexion. Managed : Client : l’appel retourne dès que le processus de connexion sous-jacent a démarré ou échoué. Server : retourne une connexion client en attente, si disponible.

Unmanaged : équivaut à appeler Start.

### fonction AsyncStart

```cpp
Status AsyncStart(
    const char * in_override,
    std::unique_ptr< Session > * out_session
)
```

Démarre la connexion à l’aide de la chaîne de remplacement fournie (non bloquant).

**Paramètres**:

* **in\_override** chaîne de remplacement propre au transport, terminée par un caractère nul ; consultez la documentation « Chaînes de remplacement ». Exemple zeromq : « tcp\://127.0.0.1:12345 » ; aucune valeur de remplacement par défaut
* **out\_session** en cas de réussite, ce pointeur est renseigné avec la session résultante

**Renvoie**:

* **OK** connexion démarrée avec succès
* **FAIL** impossible de se connecter au point de terminaison
* **BADPARAM** out\_session a été défini sur nullptr
* **MISCONFIGURED** le profil ne contient pas suffisamment de données pour établir une connexion
* **DENIED** il s’agit d’un service serveur qui est déjà en écoute ; aucun remplacement n’est possible
* **AGAIN** côté serveur uniquement : aucun client n’attend de se connecter, réessayez

**Retour**: [medcrypt::guardian::Status](/fr/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian.md#typedef-status)

Appel non bloquant pour établir une connexion. Managed : Client : l’appel retourne dès que le processus de connexion sous-jacent a démarré ou échoué. Server : sans objet.

Unmanaged : équivaut à appeler Start.

### fonction ClientWaiting

```cpp
bool ClientWaiting()
```

Vérifie si un client attend de se connecter (non bloquant)

**Paramètres**:

* **aucun**

**Renvoie**:

* **true** un client est en attente
* **false** aucun client n’est en attente ou il s’agit d’un service client

**Valeur de retour**: bool

Si la valeur est true, le démarrage asynchrone réussira et Start ne bloquera pas. La valeur renvoyée sera toujours false pour un service client.

## Débogage et journalisation

Guardian ne crée pas de fichiers journaux. La journalisation est plutôt contrôlée par l’application :

* Guardian écrit les journaux dans `stdout` et `stderr`, qui s’affichent dans le terminal/la CLI de l’application en cours d’exécution. Recherchez dans la sortie les codes d’erreur spécifiques ou les échecs de connexion.
* **Journalisation personnalisée :** Utilisez `SetLoggingCallback` pour rediriger les messages de journalisation vers une fonction de rappel, interrompre leur affichage dans le terminal et permettre un traitement personnalisé des journaux
* **Contrôle de la journalisation :** Les applications peuvent contrôler le niveau et le degré de détail de la journalisation.
* **Interface utilisateur de Guardian Cloud**: Consultez l’interface Guardian Cloud pour obtenir des détails supplémentaires sur les erreurs et connaître l’état du provisionnement.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.medcrypt.com/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-service.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
