Metadata-Version: 2.4
Name: scenaripy_api
Version: 6.4.4
Summary: Une API cliente pour les produits Scenari
Author-email: Kelis <contact@kelis.fr>
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: CeCILL-B Free Software License Agreement (CECILL-B)
Classifier: License :: OSI Approved :: Mozilla Public License 1.1 (MPL 1.1)
Classifier: License :: OSI Approved :: GNU General Public License v2 (GPLv2)
Classifier: License :: OSI Approved :: GNU Lesser General Public License v2 (LGPLv2)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content :: Content Management System
Classifier: Topic :: Documentation
License-File: LICENSE
Project-URL: Documentation, https://doc.scenari.software/SCENARIbuilder/apipython
Project-URL: Homepage, https://scenari.software
Project-URL: Source, https://source.scenari.software/git/dev-core

# Une API cliente pour les produits Scenari

`scenaripy_api` propose des fonctions d'API appelable en Python pour intéragir avec un serveur Scenari. Pour fonctionner, `scenaripy_api` nécessite l'installation d'un package client d'une application Scenari (comme scchainserver_6_4, scchainserverlite_6_4, scsuitestarter_6_4 ou ltisuite_2_0).

## Compatibilité

Il est recommandé de toujours utiliser la dernière version de ce package. Elle est compatible avec **tous les packages clients produits par Scenari 6.3 et 6.4.**

## Exemple d'utilisation
```python
import scenaripy_api
import scchainserver_6_4.portal

# Création de l'objet portal
portal = scchainserver_6_4.portal.new_portal(overridden_conf_file="conf.json")

# Appel d'une méthode de l'API
scenaripy_api.create_or_update_user(portal, account="mon-compte-user", first_name="Prénom", last_name="Nom", roles=["main:reader"], other_props={"password" : "Mon-Password"})
```

## Quelles actions sont possibles avec l'API

### Fonctions génériques : 
 * Lister les utilisateurs ou groupe (`list_users_or_groups`)
 * Créer ou éditer les propriétés d'un utilisateur ou groupe (`create_or_update_user`, `create_or_update_group`)
 * Associer un role à un utilisateur ou groupe (`set_granted_roles`)

### Sur un portlet chain :
 * Créer ou éditer les propriétés d'un atelier (`create_or_update_wsp`)
 * Rechercher dans un atelier (`wsp_search`)
 * Télécharger ou uploader un item, d'une ressource binaire ou de ses métadonnées (`wsp_get_item`, `wsp_get_res`, `wsp_get_res_meta`, `wsp_set_item`, `wsp_set_res`, `wsp_set_res_meta`)
 * Télécharger ou uploader un scar (sous ensemble d'un atelier) ou scwsp (atelier complet) (`wsp_export_scwsp`, `wsp_export_scar`, `wsp_import_scar`)
 * Lancer une génération et télécharger du fichier généré (`wsp_generate`)

### Sur une suite contenant un chain et un depot
 * Envoyer un scar depuis un portlet chain vers un portlet depot (`wsp_send_scar`)

### Sur un portlet depot
 * Uploader une ressource dans un depot (`write_depot_request`)

