> 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.md).

# Présentation de l’API

## Fonctions de provisionnement

### Guardian()

**Description :** Crée une nouvelle instance de Guardian et la place dans l’état de démarrage, prête à être initialisée.

* Première étape avant toute autre opération
* Ce constructeur initialise uniquement les variables membres

**Dépendances :** Aucune — il s’agit de la première fonction à appeler

**Paramètres :** Aucun — le constructeur par défaut ne prend aucun paramètre

**Valeur de retour :** Aucune, puisqu’il s’agit d’un constructeur

**Syntaxe :**

```cpp
Guardian()
```

### Initialize()

**Description :** Initialise Guardian avec les identifiants de l’appareil et les fichiers de configuration. Utilise le profil, l’identité et les fichiers de confiance fournis pour initialiser le système Guardian.

**Dépendances :**

* Doit être appelée après [la création d’une instance de Guardian](#guardian) (`Guardian()` ).
* Doit être appelée avant toute autre opération de Guardian

**Paramètres :**

* `in_files`: Identifiants de l’appareil et fichiers de configuration
* `in_component_handle`: Identifiant unique du composant utilisé pour le provisionnement.
  * **Type :** `const char*`
* `in_hardware_identifier`: Identifiant matériel unique.
  * **Limites de longueur :** 36 (37 avec le caractère nul de fin)
  * **Type :** `const char*`
* `in_options`: Options de configuration supplémentaires pour l’initialisation

**Valeur de retour :** Code d’état indiquant la réussite ou l’échec.

* **Code de réussite :** `OK`**.** Le système Guardian a été initialisé avec succès.
* **Codes d’erreur :**
  * `FAIL`: Échec général. Guardian n’a pas été initialisé correctement. Consultez le fichier journal pour plus d’informations.
  * `BADPARAM`: L’une des entrées est nulle ou vide.
  * `FILENOTFOUND`: Un fichier d’entrée requis est indisponible.
  * `OUTOFMEMORY` **:** Mémoire insuffisante pour initialiser Guardian.

**Syntaxe**

```cpp
Status Initialize(
    const utilities::InitializeFiles & in_files,
    const char * in_component_handle,
    const char * in_hardware_identifier,
    const InitializeOptions & in_options
)
```

## GenerateProvisionRequest()

**Description :** La `GenerateProvisionRequest()` fonction crée les fichiers de demande de provisionnement (`.mcpr`) et d’identité privée (`.mcpi`).

* Il s’agit de la première étape du processus de provisionnement.
* Il s’agit de la seule étape du processus de provisionnement hors ligne.
* Le fichier d’identité privée (`.mcpi`  contient les clés d’appareil générées.
* Le fichier de demande de provisionnement (`.mcpr`  peut être téléversé manuellement vers Guardian Cloud ou transmis à l’aide des méthodes en ligne disponibles dans le profil.

**Dépendances :**

* Doit être appelé après `Initialize()`
* Doit être appelé une fois avant toute autre action de provisionnement ou de reprovisionnement.
* Requis avant `StartProvisioningOnline()`

**Paramètres :**

* `io_files` : structure des fichiers de provisionnement.\
  `in_provisioning_component_handle` : identifiant unique du composant utilisé pour le provisionnement.
  * **Type :** `const char*`
* `in_provisioning_system` : nom unique du système transmis à Guardian Cloud.
  * **Limites de longueur :** 36 (37 avec le caractère nul de fin)
  * **Type :** `const char*`
* `in_hardware_identifier` - Il s’agit de l’identifiant matériel unique.
  * **Limites de longueur :** 36 (37 avec le caractère nul de fin)
  * **Type :** `const char*`

**Valeur de retour :** Code d’état indiquant la réussite ou l’échec.

* **Code de réussite :** `OK`**.** La demande de provisionnement a été créée avec succès
* **Codes d’erreur :**
  * `FAIL`: Échec général. Consultez le fichier journal pour plus d’informations.
  * `BADPARAM`: L’une des entrées est nulle ou vide
  * `FILENOTFOUND`: Un fichier d’entrée requis est indisponible
  * `NOWRITE`: Impossible d’écrire un fichier de sortie requis
  * `OUTOFMEMORY` : Mémoire insuffisante pour effectuer le provisionnement \\

**Syntaxe**

```cpp
Status GenerateProvisionRequest(
    utilities::ProvisionFiles & io_files,
    const char * in_provisioning_component_handle,
    const char * in_provisioning_system,
    const char * in_hardware_identifier
)
```

## StartProvisioningOnline()

La fonction `StartProvisioningOnline()` démarre le processus de provisionnement en ligne afin de soumettre une demande de provisionnement à Guardian Cloud. Elle soumet la demande et lance le flux de traitement automatisé.

* **Dépendances :** Doit être exécutée après GenerateProvisionRequest().
* **Paramètres :**
  * `in_files`: fichiers requis pour le provisionnement en ligne
  * `in_options`: options de configuration supplémentaires et facultatives pour le provisionnement, notamment les délais d’attente
* **Valeur de retour :** Code d’état indiquant la réussite ou l’échec.
  * **Code de réussite :** `OK` : le provisionnement en ligne a démarré avec succès
  * **Codes d’erreur :**
    * `FAIL` : échec général du démarrage du provisionnement. Consultez le fichier journal pour en savoir plus.
    * `BADPARAM` : l’une des entrées est nulle ou non valide
    * `FILENOTFOUND` : un fichier requis pour le provisionnement est indisponible

**Syntaxe**

```cpp
Status StartProvisioningOnline(
    const utilities::ProvisionOnlineFiles & in_files,
    const ProvisioningOptions & in_options
)
```

### Run()

* **Description :**
  * Exécute les tâches d’arrière-plan de Guardian, notamment le traitement de la machine à états du provisionnement.
  * Comprend le provisionnement, la télémétrie, les échanges de prise de contact, l’authentification, les services, les sessions et les canaux qui n’ont pas été placés sur un autre thread, ni dont un élément parent n’a été placé sur un autre thread par [CreateTask](#createtask-service-variant). Cette fonction doit être appelée par la boucle principale du programme ou du thread.
  * Doit être appelée régulièrement et à plusieurs reprises pendant le provisionnement en ligne.
  * Utilisez [IsProvisioningRunning()](#isprovisioningrunning) pour vérifier quand le provisionnement est terminé et cesser d’appeler Run().
  * Traite les machines à états internes et gère la communication avec Guardian Cloud
* **Dépendances :**
  * Doit être appelée après StartProvisioningOnline()
* **Paramètres :** Aucun paramètre
* **Valeur de retour :** Code d’état indiquant la réussite ou l’échec.
  * **Code de réussite :** `OK` - Les tâches d’arrière-plan ont été exécutées avec succès
  * **Codes d’erreur :**
    * `FAIL` - Échec général du traitement en arrière-plan. Consultez le fichier journal pour en savoir plus.
    * `SHUTDOWN` : Guardian est en état d’arrêt et doit être réinitialisé avant tout nouvel appel à Run.

### IsProvisioningRunning()

* **Description :** Vérifie si le processus de provisionnement est toujours actif.
* **Dépendances :**
  * Doit être appelée après StartProvisioningOnline()
  * Permet de déterminer quand cesser d’appeler Run() et tenter de récupérer le profil provisionné.
* **Paramètres :** Aucun : cette fonction ne prend aucun paramètre
* **Valeur de retour :** Valeur booléenne indiquant l’état du provisionnement
  * `true` - Le provisionnement est toujours en cours. Continuez à appeler Run()
  * `false` - Le provisionnement est terminé (avec succès ou en échec). Vous devez maintenant appeler GetProvisionedProfile().
  * Avant le démarrage du processus de provisionnement en ligne, renvoie `false`.
  * Une fois le provisionnement en ligne terminé, qu’il ait réussi ou échoué, renvoie de nouveau `false`.

**Syntaxe**

```cpp
bool IsProvisioningRunning()
```

### GetProvisionedProfile()

* **Description :**
  * Extrait le profil provisionné après un provisionnement en ligne réussi.
  * Copie le profil provisionné, une fois le provisionnement terminé, dans le tampon fourni.
* **Dépendances :**
  * Ne doit être appelé qu’après que IsProvisioningRunning() renvoie `false`.
  * Nécessite la réussite de StartProvisioningOnline() et de la boucle Run()
* **Paramètres :**
  * `out_profile`: Tampon qui recevra le profil provisionné.
    * Type : `char`
  * `io_size`:
    * Indiquez la taille du tampon ( `out_profile` ) en entrée. Une fois le provisionnement réussi, `out_profile` est défini sur la taille réelle du profil.
    * Type : `size_t`
* **Valeur de retour :** Code d’état indiquant la réussite ou l’échec.
  * **Code de réussite :** `OK` : Le profil provisionné a été récupéré avec succès.
    * Le tampon contient un profil certifié valide dans `out_profile` de taille `io_size`.
  * **Codes d’erreur :**
    * `FAIL` : Échec général. Consultez le fichier journal pour plus d’informations.
    * `INCOMPLETE` : Le processus de provisionnement n’est pas terminé ; aucun profil n’est donc disponible.
    * `BADPARAM` - `out_profile` ou `io_size` est un pointeur nul (`nullptr`), ou `io_size` est égal à 0
    * `DENIED` - Le processus de provisionnement en ligne est toujours en cours
    * `FILENOTFOUND` - Le provisionnement est terminé, mais aucun profil provisionné n’est disponible
    * `BADPARAM` - Le paramètre de tampon ou de taille n’est pas valide

**Syntaxe**

```cpp
Status GetProvisionedProfile(
    char * out_profile,
    size_t * io_size
)
```

## Exemples d’implémentation

## Fonctions de gestion des certificats

### GetCertificateManager()

* **Description :** Récupère le gestionnaire de certificats pour gérer les certificats de l’appareil. Donne accès aux opérations sur les certificats et à la gestion de leur cycle de vie.
* **Dépendances :**
  * Peut être appelé facultativement après Initialize()
* **Paramètres :**
  * `out_certificate_manager` : pointeur de sortie destiné à recevoir l’instance du gestionnaire de certificats
* **Valeur de retour :** Code d’état indiquant la réussite ou l’échec.
  * **Code de réussite :** `OK` :
    * Gestionnaire de certificats récupéré avec succès
    * Le pointeur dans `out_certificate_manager` est valide
  * **Codes d’erreur :**
    * `FAIL` : Échec général. Consultez le fichier journal pour plus d’informations.
    * `BADPARAM` : `out_certificate_manager` est un pointeur nul et ne peut pas être renseigné
    * `DENIED`  : Guardian n’est pas initialisé
    * `MISCONFIGURED`  : le profil provisionné chargé n’est pas configuré pour autoriser les opérations sur les certificats.
* **Action :**
  * Utilisez le gestionnaire de certificats récupéré pour importer et exporter des certificats.

**Syntaxe**

```cpp
Status GetCertificateManager(
    std::unique_ptr< CertificateManager > * out_certificate_manager
)
```

### GetProvisionedRevocationList()

* **Description :**
  * Récupère la liste de révocation des certificats (CRL) afin de vérifier la validité des certificats.
  * Permet d’identifier les certificats révoqués auxquels il ne faut plus faire confiance.
* **Dépendances :**
  * Peut être appelé facultativement après un provisionnement réussi (après GetProvisionedProfile())
* **Paramètres :**
  * `out_ccrl` : tampon destiné à recevoir la liste de révocation des certificats
    * Type : `char*`
  * `io_size` : taille du tampon en entrée, taille réelle en sortie
    * Indiquez la taille du tampon ( `out_ccrl` ) en entrée. Après un provisionnement réussi, `out_ccrl` est défini sur la taille réelle de la CRL.
    * Type : `size_t`
* **Valeur de retour :** Code d’état indiquant la réussite ou l’échec.
  * **Code de réussite :** `OK`
    * `out_ccrl` contient une liste de révocation valide de taille `io_size`
  * **Codes d’erreur :**
    * `FAIL` - Échec général. Consultez le fichier journal pour plus d’informations.
    * `INCOMPLETE` - Le processus de provisionnement n’est pas terminé ; aucune liste de révocation n’est disponible
    * `BADPARAM` : `out_ccrl` ou `io_size` est un pointeur nul, ou `io_size` est égal à 0
    * `DENIED` - Le processus de provisionnement en ligne est toujours en cours
    * `FILENOTFOUND` - Le provisionnement est terminé, mais aucune liste de révocation n’est disponible
* **Action :** Copie la liste de révocation des certificats dans le tampon fourni

**Syntaxe**

```cpp
Status GetProvisionedRevocationList(
    char * out_ccrl,
    size_t * io_size
)
```

## Fonction des opérations de sécurité

### FindSecureOperation()

* **Description :**
  * Recherche le nom d’une opération de sécurité.
  * Récupère le gestionnaire d’opérations de sécurité pour les opérations de signature et de vérification.
* **Dépendances :**
  * Peut être appelé facultativement après Initialize()
* **Paramètres :**
  * `in_secureop_name`: Nom de l’opération de sécurité, terminé par un caractère nul.
    * **Type**: `const char*`
  * `out_secureop`: Pointeur vers le stockage `unique_ptr` de l’opération de sécurité localisée
* **Valeur de retour :** Code d’état indiquant la réussite ou l’échec.
* **Code de réussite :** `OK` : Le pointeur dans `out_secureop` est valide
* **Codes d’erreur :**
  * `FAIL` : Impossible de trouver l’opération spécifiée par `in_secureop_name`
  * `BADPARAM` : `out_secureop` est un pointeur nul et ne peut pas être renseigné
  * `DENIED`  : Guardian n’est pas initialisé
* **Action :**
  * Définit `out_secureop` sur l’opération localisée
  * Ne modifie pas `out_secureop` si l’opération `in_secureop_name` n’est pas localisée

**Syntaxe**

```cpp
Status FindSecureOperation(
    const char * in_secureop_name,
    std::unique_ptr< SecureOperation > * out_secureop
)
```

## Fonctions de gestion des services

### FindService()

* **Description :**
  * Recherche un service par son nom afin de localiser un service configuré.
* **Dépendances :**
  * Doit être appelée après Initialize()
* **Paramètres :**
  * `in_service_name`: Nom du service, terminé par un caractère nul
    * **Type :** `const char*`
  * `out_service`: Pointeur vers l’espace de stockage de unique\_ptr pour le service trouvé
* **Valeur de retour :** Code d’état indiquant la réussite ou l’échec.
  * **Code de réussite :** `OK` : Le pointeur dans `out_service` est valide
  * **Codes d’erreur :**
    * `FAIL` : Impossible de trouver le service indiqué par `in_service_name`
    * `BADPARAM` : `out_service` est un pointeur nul et ne peut pas être renseigné
    * `DENIED`  : Guardian n’est pas initialisé
* **Action :**
  * Définit `out_service` sur le service trouvé
  * Ne modifie pas `out_service` si le service indiqué dans `in_service_name` n’est pas trouvé
  * ou le laisse inchangé si le service est introuvable

**Syntaxe**

```cpp
Status FindService(
    const char * in_service_name,
    std::unique_ptr< Service > * out_service
)
```

### **CreateTask() - variante Service** <a href="#createtask-service-variant" id="createtask-service-variant"></a>

* **Description :**
  * Crée une tâche pour les opérations sur un service, en dissociant l’objet fourni et tous ses enfants de Run.
  * Permet d’exécuter des objets distincts dans des threads en les retirant de la boucle principale Guardian Run.
* **Dépendances :**
  * Doit être appelée après Initialize()
  * L’objet Service doit être valide
* **Paramètres :**
  * `io_service`: Composant Service à placer dans un thread ; il sera consommé en cas de réussite et restera inchangé en cas d’échec
  * `out_task`: Pointeur vers l’espace de stockage de unique\_ptr pour la tâche
* **Valeur de retour :** Code d’état indiquant la réussite ou l’échec.
  * **Code de réussite :** `OK` : out\_task contient une tâche valide
  * **Codes d’erreur :**
    * `FAIL` : Échec général. Consultez le fichier journal pour plus d’informations.
    * `BADPARAM` : io\_service ou out\_task est un pointeur nul
    * `DENIED` : Le service indiqué appartient déjà à une tâche
* **Action :** Un composant placé dans une Task avec tous ses enfants ne sera pas exécuté lors de l’appel de Guardian Run, ce qui permet d’exécuter des objets distincts dans des threads

**Syntaxe**

```cpp
Status CreateTask(
    std::unique_ptr< Service > * io_service,
    std::unique_ptr< Task > * out_task
)
```

### CreateTask() - variante Session

* **Description :**
  * Crée une tâche pour les opérations sur un service, en dissociant l’objet fourni et tous ses enfants de Run.
  * Permet d’exécuter des objets distincts dans des threads en les retirant de la boucle principale Run.
* **Dépendances :**
  * Peut être appelé facultativement après Initialize()
  * L’objet Service doit être valide
* **Paramètres :**
  * `io_service`: Composant Service à placer dans un thread. Il sera consommé en cas de réussite, mais restera inchangé en cas d’échec.
  * `out_task`: Pointeur vers `unique_ptr` espace de stockage de la tâche
* **Valeur de retour :** Code d’état indiquant la réussite ou l’échec.
  * **Code de réussite :** `OK` : `out_task` contient une tâche valide
  * **Codes d’erreur :**
    * `FAIL` : Échec général. Consultez le fichier journal pour plus d’informations.
    * `BADPARAM` : `io_service` ou `out_task` est un pointeur nul
    * `DENIED` : Le service indiqué appartient déjà à une tâche
* **Action :**
  * Un composant placé dans une tâche, ainsi que tous ses enfants, ne sera pas exécuté lors de l’appel de Run, ce qui permet de répartir différents objets sur plusieurs threads.
  * Pour réintégrer un objet dans la boucle principale `Run` et détruisez le `unique_ptr`.

**Syntaxe**

```cpp
Status CreateTask(
    std::unique_ptr< Session > * io_session,
    std::unique_ptr< Task > * out_task
)
```

### CreateTask() - variante ChannelGuard

* **Description :**
  * Crée une tâche pour les opérations de canal qui sépare l’objet fourni et tous ses enfants de Run().
  * Permet de répartir différents objets sur plusieurs threads en les retirant de la boucle principale Run().
* **Dépendances :**
  * Doit être appelée après Initialize()
  * `ChannelGuard` l’objet doit être valide
* **Paramètres :**
  * `io_channelguard`: `ChannelGuard` composant à placer sur un thread
  * `out_task`: Pointeur vers `unique_ptr` espace de stockage de la tâche
* **Valeur de retour :** Code d’état indiquant la réussite ou l’échec.
  * **Code de réussite :** `OK` : `out_task` contient une tâche valide
  * **Codes d’erreur :**
    * `FAIL` : Échec général. Consultez le fichier journal pour plus d’informations.
    * `BADPARAM` : `io_channelguard` ou `out_task` est un pointeur nul
    * `DENIED` : le `ChannelGuard` spécifié est déjà dans une tâche et n’a pas été réintégré
* **Action :**
  * Un composant placé dans une tâche, ainsi que tous ses enfants, ne sera pas exécuté lors de l’appel de Run(), ce qui permet de répartir différents objets sur plusieurs threads.
  * Pour réintégrer un objet dans la boucle principale Run(), détruisez le unique\_ptr.

**Syntaxe**

```cpp
Status CreateTask(
    std::unique_ptr< ChannelGuard > * io_channelguard,
    std::unique_ptr< Task > * out_task
)
```

## **Fonctions de gestion du système**

### GetAuthenticationManager()

* **Description :**
  * Récupère le gestionnaire d’authentification en cours d’exécution.
  * Donne accès aux opérations d’authentification ainsi qu’aux listes d’autorisation et de refus pour les connexions gérées par l’utilisateur.
* **Dépendances :**
  * Peut être appelé facultativement après Initialize()
* **Paramètres :**
  * `out_authentication_manager`: pointeur vers l’espace de stockage `unique_ptr` du gestionnaire d’authentification
* **Valeur de retour :** Code d’état indiquant la réussite ou l’échec.
  * **Code de réussite :** `OK` : le pointeur dans `out_authentication_manager` est valide
  * **Codes d’erreur :**
    * `FAIL` : Échec général. Consultez le fichier journal pour plus d’informations.
    * `BADPARAM` : `out_authentication_manager` est un pointeur nul et ne peut pas être renseigné
    * `DENIED`  : Guardian n’est pas initialisé
    * `MISCONFIGURED`  : Le profil chargé n’est pas configuré pour autoriser les opérations d’authentification externe
* **Action :** Utilisez le gestionnaire d’authentification récupéré pour obtenir les listes d’autorisation et de refus des connexions gérées par l’utilisateur

**Syntaxe**

```cpp
Status GetAuthenticationManager(
    std::unique_ptr< AuthenticationManager > * out_authentication_manager
)
```

### GetTelemetryManager()

* **Description :**
  * Récupère le gestionnaire de télémétrie en cours d’exécution.
  * Permet d’accéder aux interactions avec le service de télémétrie.
* **Dépendances :**
  * Peut être appelé facultativement après Initialize()
* **Paramètres :**
  * `out_telemtry_manager` : Pointeur vers `unique_ptr` destiné au stockage du gestionnaire de télémétrie
* **Valeur de retour :** Code d’état indiquant la réussite ou l’échec.
  * **Code de réussite :** `OK`  : Le pointeur dans `out_telemtry_manager` est valide
  * **Codes d’erreur :**
    * `FAIL` : Échec général. Consultez le fichier journal pour plus d’informations.
    * `BADPARAM` : `out_telemtry_manager` est un pointeur nul et ne peut pas être renseigné
    * `DENIED`  : Guardian n’est pas initialisé ou aucun gestionnaire de télémétrie n’est en cours d’exécution
    * `MISCONFIGURED`  : Le profil chargé n’est pas configuré pour la télémétrie
* **Action :** Utilisez le gestionnaire de télémétrie récupéré pour interagir avec le service de télémétrie

**Syntaxe**

```cpp
Status GetTelemetryManager(
    std::unique_ptr< Telemetry > * out_telemtry_manager
)
```

### \~Guardian()

* **Description :** Le destructeur tente d’arrêter Guardian correctement.
* **Dépendances :** Aucune : le destructeur est appelé automatiquement lorsque l’objet sort de sa portée ou est explicitement supprimé
* **Paramètres :** Aucun : le destructeur ne prend aucun paramètre
* **Valeur de retour :** Aucune, puisqu’il s’agit d’un destructeur.
* **Action :** Le destructeur tentera d’appeler Shutdown() pour arrêter le système correctement, puis Guardian sera détruit.

**Syntaxe**

```cpp
~Guardian()
```

### Shutdown()

* **Description :**
  * Tente d’arrêter toutes les machines à états internes et de mettre Guardian hors service.
  * Cela inclut le provisionnement, la télémétrie, les poignées de main, l’authentification, les services, les sessions et les canaux, Y COMPRIS ceux qui ont été placés sur un autre thread, ou dont un parent y a été placé, par [CreateTask](#createtask-service-variant).
* **Dépendances :**
  * Peut être appelé facultativement après Initialize()
  * Si des données sont en attente d’envoi, cette fonction renverra un code d’échec ou nécessitera `in_force`
* **Paramètres :**
  * `in_force` : Abandonner toutes les données d’envoi en file d’attente et arrêter le système. La valeur par défaut est `false`.
* **Valeur de retour :** Code d’état indiquant la réussite ou l’échec.
  * **Code de réussite :** `OK` : Guardian s’est arrêté correctement
  * **Codes d’erreur :**
    * `FAIL` : Échec général. Consultez le fichier journal pour plus d’informations.
    * `AGAIN` : Un ou plusieurs transports ont des données en attente d’envoi
* **Action :** Arrête toutes les machines à états internes, notamment celles liées au provisionnement, à la télémétrie, aux poignées de main, à l’authentification, aux services, aux sessions et aux canaux.

**Syntaxe**

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

Le [espace de noms medcrypt ](/fr/guardian/api-overview/api-reference/namespaces/namespacemedcrypt.md)contient l’ [espace de noms guardian](/fr/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian.md), qui comprend les classes et structures suivantes.

## **Classes principales**

* [Guardian](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-guardian.md) classe :
  * **Description :** Racine du système Guardian.
  * **Emplacement :** medcrypt::guardian::Guardian
* [AuthenticationManager](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-authenticationmanager.md) classe :
  * **Description :** Conteneur des restrictions d’authentification.
  * **Emplacement :** medcrypt::guardian::AuthenticationManager
* [ChannelGuard](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-channelguard.md) classe :
  * **Description :** Canal nommé au sein d’une [Session](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-session.md).
  * **Emplacement :** medcrypt::guardian::ChannelGuard
* [SecureOperation](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-secureoperation.md) classe :
  * **Description :** Opération autonome nommée.
  * **Emplacement :** medcrypt::guardian::SecureOperation
* [Service](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-service.md) classe :
  * **Description :** Groupe nommé de configurations de connexion et de canal.
  * **Emplacement :** medcrypt::guardian::Service
* [Session](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-session.md) classe :
  * **Description :** Connexion individuelle au sein d’un [Service](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-service.md).
  * **Emplacement :** medcrypt::guardian::Session
* [Task](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-task.md) classe :
  * **Description :** Conteneur de multithreading.
  * **Emplacement :** medcrypt::guardian::Task
* [TransportInterface](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-transportinterface.md) classe :
  * **Description :** [ConfigureTransport()](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-service.md#function-configuretransport) interface requise.
  * **Emplacement :** medcrypt::guardian::TransportInterface

## **Structures de données**

* [AuthenticationDomain](/fr/guardian/api-overview/api-reference/classes/structmedcrypt-guardian-authenticationdomain.md) structure :
  * **Description :** Conteneur de restrictions d’authentification. Restrictions destinées à être utilisées par un agent d’authentification.
  * **Emplacement :** medcrypt::guardian::AuthenticationDomain
* [InitializeOptions](/fr/guardian/api-overview/api-reference/classes/structmedcrypt-guardian-initializeoptions.md) structure :
  * **Description :** Options utilisées par [Initialize()](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-guardian.md#step-2-run-initialize) lors de la configuration.
  * **Emplacement :** medcrypt::guardian::InitializeOptions
* [ProvisioningOptions](/fr/guardian/api-overview/api-reference/classes/structmedcrypt-guardian-provisioningoptions.md) structure :
  * **Description :** Options utilisées par [StartProvisioningOnline()](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-guardian.md#step-4-startprovisioningonline).
  * **Emplacement :** medcrypt::guardian::ProvisioningOptions

### Espace de noms et structures utilitaires

L’ [espace de noms guardian](/fr/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian.md) comprend également l’ [espace de noms](/fr/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian-utilities.md) utilities, qui comprend les structures suivantes :

* [InitializeFiles](/fr/guardian/api-overview/api-reference/classes/structmedcrypt-guardian-utilities-initializefiles.md) structure :
  * **Description :** Stockage des fichiers d’initialisation utilisés par [Initialize()](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-guardian.md#step-2-run-initialize).
  * **Emplacement :** medcrypt::guardian::utilities::InitializeFiles
* [ProvisionFiles](/fr/guardian/api-overview/api-reference/classes/structmedcrypt-guardian-utilities-provisionfiles.md) structure :
  * **Description :** Stockage permettant de générer les fichiers de demande de provisionnement dans [GenerateProvisionRequest()](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-guardian.md#step-3-run-generateprovisionrequest).
  * **Emplacement :** medcrypt::guardian::utilities::ProvisionFiles
* [ProvisionOnlineFiles](/fr/guardian/api-overview/api-reference/classes/structmedcrypt-guardian-utilities-provisiononlinefiles.md) struct:
  * **Description :** Stockage des fichiers de provisionnement en ligne dans [StartProvisioningOnline()](/fr/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-guardian.md#step-4-startprovisioningonline).
  * **Emplacement :** medcrypt::guardian::utilities::ProvisionOnlineFiles

## **Autres espaces de noms**

* [AuthenticationAllowDenyEnum](/fr/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian-authenticationallowdenyenum.md) espace de noms :
  * **Description :** Détermine si une liste spécifiée est une liste d’autorisation ou une liste de refus.
  * **Emplacement :** medcrypt::guardian::AuthenticationAllowDenyEnum
* [GuardianStatusEnum](/fr/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian-guardianstatusenum.md) espace de noms :
  * **Description :** Codes d’état renvoyés par les fonctions Guardian.
  * **Emplacement :** medcrypt::guardian::GuardianStatusEnum
* [LogLevelEnum](/fr/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian-loglevelenum.md) espace de noms :
  * **Description :** Niveaux de journalisation renvoyés par les fonctions Guardian.
  * **Emplacement :** medcrypt::guardian::LogLevelEnum


---

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