# Overview

## Débuter avec l'API ITCare ? <a href="#apiitcare-gettingstartedwiththeitcare-api" id="apiitcare-gettingstartedwiththeitcare-api"></a>

L'API REST ITCare respecte les spécifications standard OpenAPI.\
La documentation en ligne est disponible à cette adresse : [https://api.cegedim.cloud/](https://api.cegedim.cloud/itcare-console/swagger-ui/index.html)

Exemple:

<pre class="language-bash" data-title="Récupérer le statut de ITCare"><code class="lang-bash"><strong>curl -X GET "https://api.cegedim.cloud/itcare/health"
</strong></code></pre>

## Structure de l'API ITCare <a href="#apiitcare-philosiphy" id="apiitcare-philosiphy"></a>

Chaque ressource appartient à une hiérarchie qui contient : Catégorie, Type, Famille. Une vue d'ensemble de la catégorisation est décrite comme suit :

| Categorie          | Type          | Famille |
| ------------------ | ------------- | ------- |
| Application server | Tomcat        |         |
|                    | Wildfly       |         |
| Container          | Kubernetes    |         |
| Instance           | Linux         | CentOS  |
|                    |               | Debian  |
|                    |               | Oracle  |
|                    |               | RHEL    |
|                    |               | Ubuntu  |
|                    | Windows       |         |
|                    | Unix          |         |
| Load balancer      | Load Balancer |         |
| Managed database   | MariaDB       |         |
|                    | OpenSearch    |         |
|                    | PostgreSQL    |         |
|                    | Redis         |         |
|                    | SQL Server    |         |
| Message broker     | Apache Kafka  |         |
|                    | RabbitMQ      |         |
| Storage            | GlusterFS     |         |

Lors de l'obtention d'une ressource, un attribut nommé `path` est disponible dans la sortie pour informer sur la catégorie-famille-type à parcourir afin d'obtenir des détails sur la ressource.

Le point d'entrée de l'API pourrait être le endpoint : `/compute/resources`. Il peut être utilisé pour explorer les informations de base et naviguer vers la catégorie appropriée pour obtenir les détails.

## Quel format de date / temps est utilisé par l'API ? <a href="#apiitcare-quelformatdedate-tempsestutiliseparlapi" id="apiitcare-quelformatdedate-tempsestutiliseparlapi"></a>

JSON ne supporte pas nativement le format Date/Time.\
Tous les paramètres tagués en tant que Date par l'API sont donc des string au format ISO8601.

```
YYYY-MM-DDTHH:MM:SS.sssZ
```

Z correspond à la timezone : +0200 par exemple.

```
2016-06-01T12:27:19.000+0200
```

Pour les requêtes GET, ne pas oublier d'URL-Encoder ces paramètres.

## Puis-je lancer des actions à blanc via l'API ? <a href="#apiitcare-puis-jelancerdesactionsablancvialapi" id="apiitcare-puis-jelancerdesactionsablancvialapi"></a>

Certaines méthodes autorisent le test des appels API sans que cela ne déclenche réellement l'action dans ITCare.\
La validation s'effectue cependant.\
Pour activer le mode Dry Run, il suffit d'ajouter un header personnalisé dans vos requêtes HTTP :

```
ITCare-DryRun: true
```

Une fois que le serveur traitera votre requête, le même header personnalisé sera inclus dans la réponse.

## Comment fonctionnent les actions asynchrones ? <a href="#apiitcare-commentfonctionnentlesactionsasynchrones" id="apiitcare-commentfonctionnentlesactionsasynchrones"></a>

Certaines méthodes sont asynchrones et nécessitent un délai après leur invocation.\
Cela s'applique à des longues transactions telles que l'administration des ressources ou l'envoi de rapports.\
Les méthodes qui fonctionnent de manière asynchrone répondront :

* un code retour HTTP 202
* un corps contenant un ID de suivi de l'opération asynchrone en cours

Voici un exemple de code en Python qui explique le fonctionnement asynchrone :

{% code overflow="wrap" %}

```</div>

Les statuts des actions peuvent être :

* IN\_PROGRESS
* SUCCESS
* ERROR
```

{% endcode %}


---

# Agent Instructions: Querying This Documentation

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

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://academy.cegedim.cloud/francais/itcare-api/overview.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
