factpulse 1.0.6__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. factpulse/__init__.py +280 -0
  2. factpulse/api/__init__.py +13 -0
  3. factpulse/api/afnorpdppa_api.py +284 -0
  4. factpulse/api/afnorpdppa_directory_service_api.py +799 -0
  5. factpulse/api/afnorpdppa_flow_service_api.py +1075 -0
  6. factpulse/api/chorus_pro_api.py +4506 -0
  7. factpulse/api/processing_endpoints_unifis_api.py +592 -0
  8. factpulse/api/sant_api.py +281 -0
  9. factpulse/api/signature_lectronique_api.py +1358 -0
  10. factpulse/api/traitement_facture_api.py +3439 -0
  11. factpulse/api/utilisateur_api.py +282 -0
  12. factpulse/api_client.py +804 -0
  13. factpulse/api_response.py +21 -0
  14. factpulse/configuration.py +585 -0
  15. factpulse/exceptions.py +216 -0
  16. factpulse/models/__init__.py +124 -0
  17. factpulse/models/adresse_electronique.py +90 -0
  18. factpulse/models/adresse_postale.py +120 -0
  19. factpulse/models/body_ajouter_fichier_api_v1_chorus_pro_transverses_ajouter_fichier_post.py +104 -0
  20. factpulse/models/body_completer_facture_api_v1_chorus_pro_factures_completer_post.py +104 -0
  21. factpulse/models/body_lister_services_structure_api_v1_chorus_pro_structures_id_structure_cpp_services_get.py +102 -0
  22. factpulse/models/body_rechercher_factures_destinataire_api_v1_chorus_pro_factures_rechercher_destinataire_post.py +104 -0
  23. factpulse/models/body_rechercher_factures_fournisseur_api_v1_chorus_pro_factures_rechercher_fournisseur_post.py +104 -0
  24. factpulse/models/body_recycler_facture_api_v1_chorus_pro_factures_recycler_post.py +104 -0
  25. factpulse/models/body_telecharger_groupe_factures_api_v1_chorus_pro_factures_telecharger_groupe_post.py +104 -0
  26. factpulse/models/body_traiter_facture_recue_api_v1_chorus_pro_factures_traiter_facture_recue_post.py +104 -0
  27. factpulse/models/body_valideur_consulter_facture_api_v1_chorus_pro_factures_valideur_consulter_post.py +104 -0
  28. factpulse/models/body_valideur_rechercher_factures_api_v1_chorus_pro_factures_valideur_rechercher_post.py +104 -0
  29. factpulse/models/body_valideur_traiter_facture_api_v1_chorus_pro_factures_valideur_traiter_post.py +104 -0
  30. factpulse/models/cadre_de_facturation.py +102 -0
  31. factpulse/models/categorie_tva.py +44 -0
  32. factpulse/models/certificate_info_response.py +114 -0
  33. factpulse/models/chorus_pro_credentials.py +95 -0
  34. factpulse/models/code_cadre_facturation.py +39 -0
  35. factpulse/models/code_raison_reduction.py +42 -0
  36. factpulse/models/consulter_facture_request.py +98 -0
  37. factpulse/models/consulter_facture_response.py +142 -0
  38. factpulse/models/consulter_structure_request.py +100 -0
  39. factpulse/models/consulter_structure_response.py +142 -0
  40. factpulse/models/credentials_afnor.py +106 -0
  41. factpulse/models/credentials_chorus_pro.py +115 -0
  42. factpulse/models/destinataire.py +116 -0
  43. factpulse/models/destination.py +140 -0
  44. factpulse/models/destination_afnor.py +127 -0
  45. factpulse/models/destination_chorus_pro.py +108 -0
  46. factpulse/models/direction_flux.py +37 -0
  47. factpulse/models/donnees_facture_simplifiees.py +124 -0
  48. factpulse/models/facture_enrichie_info_input.py +123 -0
  49. factpulse/models/facture_enrichie_info_output.py +133 -0
  50. factpulse/models/facture_factur_x.py +173 -0
  51. factpulse/models/flux_resume.py +131 -0
  52. factpulse/models/format_sortie.py +37 -0
  53. factpulse/models/fournisseur.py +146 -0
  54. factpulse/models/generate_certificate_request.py +118 -0
  55. factpulse/models/generate_certificate_response.py +106 -0
  56. factpulse/models/http_validation_error.py +95 -0
  57. factpulse/models/information_signature_api.py +122 -0
  58. factpulse/models/ligne_de_poste.py +188 -0
  59. factpulse/models/ligne_de_poste_montant_remise_ht.py +145 -0
  60. factpulse/models/ligne_de_poste_montant_total_ligne_ht.py +145 -0
  61. factpulse/models/ligne_de_poste_taux_tva_manuel.py +145 -0
  62. factpulse/models/ligne_de_tva.py +118 -0
  63. factpulse/models/mode_depot.py +38 -0
  64. factpulse/models/mode_paiement.py +41 -0
  65. factpulse/models/montant_ht_total.py +139 -0
  66. factpulse/models/montant_total.py +138 -0
  67. factpulse/models/montant_total_acompte.py +145 -0
  68. factpulse/models/montant_total_montant_remise_globale_ttc.py +145 -0
  69. factpulse/models/montant_ttc_total.py +139 -0
  70. factpulse/models/montant_tva.py +139 -0
  71. factpulse/models/montantapayer.py +139 -0
  72. factpulse/models/montantbaseht.py +139 -0
  73. factpulse/models/montanthttotal.py +139 -0
  74. factpulse/models/montantttctotal.py +139 -0
  75. factpulse/models/montanttva.py +139 -0
  76. factpulse/models/montanttva1.py +139 -0
  77. factpulse/models/montantunitaireht.py +139 -0
  78. factpulse/models/obtenir_id_chorus_pro_request.py +100 -0
  79. factpulse/models/obtenir_id_chorus_pro_response.py +98 -0
  80. factpulse/models/options_processing.py +103 -0
  81. factpulse/models/parametres_signature.py +133 -0
  82. factpulse/models/parametres_structure.py +91 -0
  83. factpulse/models/pdf_factur_x_info.py +91 -0
  84. factpulse/models/pdp_credentials.py +93 -0
  85. factpulse/models/piece_jointe_complementaire.py +95 -0
  86. factpulse/models/profil_api.py +39 -0
  87. factpulse/models/profil_flux.py +38 -0
  88. factpulse/models/quantite.py +139 -0
  89. factpulse/models/quota_info.py +95 -0
  90. factpulse/models/rechercher_services_response.py +101 -0
  91. factpulse/models/rechercher_structure_request.py +119 -0
  92. factpulse/models/rechercher_structure_response.py +101 -0
  93. factpulse/models/references.py +124 -0
  94. factpulse/models/reponse_healthcheck_afnor.py +91 -0
  95. factpulse/models/reponse_recherche_flux.py +101 -0
  96. factpulse/models/reponse_soumission_flux.py +109 -0
  97. factpulse/models/reponse_tache.py +87 -0
  98. factpulse/models/reponse_validation_erreur.py +87 -0
  99. factpulse/models/reponse_validation_succes.py +87 -0
  100. factpulse/models/requete_recherche_flux.py +143 -0
  101. factpulse/models/requete_soumission_flux.py +123 -0
  102. factpulse/models/resultat_afnor.py +105 -0
  103. factpulse/models/resultat_chorus_pro.py +101 -0
  104. factpulse/models/resultat_validation_pdfapi.py +169 -0
  105. factpulse/models/scheme_id.py +40 -0
  106. factpulse/models/service_structure.py +93 -0
  107. factpulse/models/signature_info.py +101 -0
  108. factpulse/models/soumettre_facture_complete_request.py +116 -0
  109. factpulse/models/soumettre_facture_complete_response.py +145 -0
  110. factpulse/models/soumettre_facture_request.py +164 -0
  111. factpulse/models/soumettre_facture_response.py +103 -0
  112. factpulse/models/statut_acquittement.py +38 -0
  113. factpulse/models/statut_facture.py +96 -0
  114. factpulse/models/statut_tache.py +99 -0
  115. factpulse/models/structure_info.py +95 -0
  116. factpulse/models/syntaxe_flux.py +40 -0
  117. factpulse/models/tauxmanuel.py +139 -0
  118. factpulse/models/type_facture.py +37 -0
  119. factpulse/models/type_flux.py +40 -0
  120. factpulse/models/type_tva.py +39 -0
  121. factpulse/models/unite.py +41 -0
  122. factpulse/models/utilisateur.py +128 -0
  123. factpulse/models/validation_error.py +99 -0
  124. factpulse/models/validation_error_loc_inner.py +138 -0
  125. factpulse/py.typed +0 -0
  126. factpulse/rest.py +258 -0
  127. factpulse-1.0.6.dist-info/METADATA +182 -0
  128. factpulse-1.0.6.dist-info/RECORD +131 -0
  129. factpulse-1.0.6.dist-info/WHEEL +5 -0
  130. factpulse-1.0.6.dist-info/licenses/LICENSE +21 -0
  131. factpulse-1.0.6.dist-info/top_level.txt +1 -0
@@ -0,0 +1,1075 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ API REST FactPulse
5
+
6
+ API REST pour la facturation électronique en France : Factur-X, AFNOR PDP/PA, signatures électroniques. ## 🎯 Fonctionnalités principales ### 📄 Génération de factures Factur-X - **Formats** : XML seul ou PDF/A-3 avec XML embarqué - **Profils** : MINIMUM, BASIC, EN16931, EXTENDED - **Normes** : EN 16931 (directive UE 2014/55), ISO 19005-3 (PDF/A-3), CII (UN/CEFACT) - **🆕 Format simplifié** : Génération à partir de SIRET + auto-enrichissement (API Chorus Pro + Recherche Entreprises) ### ✅ Validation et conformité - **Validation XML** : Schematron (45 à 210+ règles selon profil) - **Validation PDF** : PDF/A-3, métadonnées XMP Factur-X, signatures électroniques - **VeraPDF** : Validation stricte PDF/A (146+ règles ISO 19005-3) - **Traitement asynchrone** : Support Celery pour validations lourdes (VeraPDF) ### 📡 Intégration AFNOR PDP/PA (XP Z12-013) - **Soumission de flux** : Envoi de factures vers Plateformes de Dématérialisation Partenaires - **Recherche de flux** : Consultation des factures soumises - **Téléchargement** : Récupération des PDF/A-3 avec XML - **Directory Service** : Recherche d'entreprises (SIREN/SIRET) - **Multi-client** : Support de plusieurs configs PDP par utilisateur (stored credentials ou zero-storage) ### ✍️ Signature électronique PDF - **Standards** : PAdES-B-B, PAdES-B-T (horodatage RFC 3161), PAdES-B-LT (archivage long terme) - **Niveaux eIDAS** : SES (auto-signé), AdES (CA commerciale), QES (PSCO) - **Validation** : Vérification intégrité cryptographique et certificats - **Génération de certificats** : Certificats X.509 auto-signés pour tests ### 🔄 Traitement asynchrone - **Celery** : Génération, validation et signature asynchrones - **Polling** : Suivi d'état via `/taches/{id_tache}/statut` - **Pas de timeout** : Idéal pour gros fichiers ou validations lourdes ## 🔒 Authentification Toutes les requêtes nécessitent un **token JWT** dans le header Authorization : ``` Authorization: Bearer YOUR_JWT_TOKEN ``` ### Comment obtenir un token JWT ? #### 🔑 Méthode 1 : API `/api/token/` (Recommandée) **URL :** `https://www.factpulse.fr/api/token/` Cette méthode est **recommandée** pour l'intégration dans vos applications et workflows CI/CD. **Prérequis :** Avoir défini un mot de passe sur votre compte **Pour les utilisateurs inscrits via email/password :** - Vous avez déjà un mot de passe, utilisez-le directement **Pour les utilisateurs inscrits via OAuth (Google/GitHub) :** - Vous devez d'abord définir un mot de passe sur : https://www.factpulse.fr/accounts/password/set/ - Une fois le mot de passe créé, vous pourrez utiliser l'API **Exemple de requête :** ```bash curl -X POST https://www.factpulse.fr/api/token/ \\ -H \"Content-Type: application/json\" \\ -d '{ \"username\": \"votre_email@example.com\", \"password\": \"votre_mot_de_passe\" }' ``` **Réponse :** ```json { \"access\": \"eyJ0eXAiOiJKV1QiLCJhbGc...\", // Token d'accès (validité: 30 min) \"refresh\": \"eyJ0eXAiOiJKV1QiLCJhbGc...\" // Token de rafraîchissement (validité: 7 jours) } ``` **Avantages :** - ✅ Automatisation complète (CI/CD, scripts) - ✅ Gestion programmatique des tokens - ✅ Support du refresh token pour renouveler automatiquement l'accès - ✅ Intégration facile dans n'importe quel langage/outil #### 🖥️ Méthode 2 : Génération via Dashboard (Alternative) **URL :** https://www.factpulse.fr/dashboard/ Cette méthode convient pour des tests rapides ou une utilisation occasionnelle via l'interface graphique. **Fonctionnement :** - Connectez-vous au dashboard - Utilisez les boutons \"Generate Test Token\" ou \"Generate Production Token\" - Fonctionne pour **tous** les utilisateurs (OAuth et email/password), sans nécessiter de mot de passe **Types de tokens :** - **Token Test** : Validité 24h, quota 1000 appels/jour (gratuit) - **Token Production** : Validité 7 jours, quota selon votre forfait **Avantages :** - ✅ Rapide pour tester l'API - ✅ Aucun mot de passe requis - ✅ Interface visuelle simple **Inconvénients :** - ❌ Nécessite une action manuelle - ❌ Pas de refresh token - ❌ Moins adapté pour l'automatisation ### 📚 Documentation complète Pour plus d'informations sur l'authentification et l'utilisation de l'API : https://www.factpulse.fr/documentation-api/
7
+
8
+ The version of the OpenAPI document: 1.0.0
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+ import warnings
15
+ from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
16
+ from typing import Any, Dict, List, Optional, Tuple, Union
17
+ from typing_extensions import Annotated
18
+
19
+ from pydantic import StrictStr
20
+ from typing import Any
21
+
22
+ from factpulse.api_client import ApiClient, RequestSerialized
23
+ from factpulse.api_response import ApiResponse
24
+ from factpulse.rest import RESTResponseType
25
+
26
+
27
+ class AFNORPDPPAFlowServiceApi:
28
+ """NOTE: This class is auto generated by OpenAPI Generator
29
+ Ref: https://openapi-generator.tech
30
+
31
+ Do not edit the class manually.
32
+ """
33
+
34
+ def __init__(self, api_client=None) -> None:
35
+ if api_client is None:
36
+ api_client = ApiClient.get_default()
37
+ self.api_client = api_client
38
+
39
+
40
+ @validate_call
41
+ def download_flow_proxy_api_v1_afnor_flow_v1_flows_flow_id_get(
42
+ self,
43
+ flow_id: StrictStr,
44
+ _request_timeout: Union[
45
+ None,
46
+ Annotated[StrictFloat, Field(gt=0)],
47
+ Tuple[
48
+ Annotated[StrictFloat, Field(gt=0)],
49
+ Annotated[StrictFloat, Field(gt=0)]
50
+ ]
51
+ ] = None,
52
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
53
+ _content_type: Optional[StrictStr] = None,
54
+ _headers: Optional[Dict[StrictStr, Any]] = None,
55
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
56
+ ) -> object:
57
+ """Télécharger un flux
58
+
59
+ Télécharger le fichier PDF/A-3 d'un flux de facturation (utilise le client_uid du JWT)
60
+
61
+ :param flow_id: (required)
62
+ :type flow_id: str
63
+ :param _request_timeout: timeout setting for this request. If one
64
+ number provided, it will be total request
65
+ timeout. It can also be a pair (tuple) of
66
+ (connection, read) timeouts.
67
+ :type _request_timeout: int, tuple(int, int), optional
68
+ :param _request_auth: set to override the auth_settings for an a single
69
+ request; this effectively ignores the
70
+ authentication in the spec for a single request.
71
+ :type _request_auth: dict, optional
72
+ :param _content_type: force content-type for the request.
73
+ :type _content_type: str, Optional
74
+ :param _headers: set to override the headers for a single
75
+ request; this effectively ignores the headers
76
+ in the spec for a single request.
77
+ :type _headers: dict, optional
78
+ :param _host_index: set to override the host_index for a single
79
+ request; this effectively ignores the host_index
80
+ in the spec for a single request.
81
+ :type _host_index: int, optional
82
+ :return: Returns the result object.
83
+ """ # noqa: E501
84
+
85
+ _param = self._download_flow_proxy_api_v1_afnor_flow_v1_flows_flow_id_get_serialize(
86
+ flow_id=flow_id,
87
+ _request_auth=_request_auth,
88
+ _content_type=_content_type,
89
+ _headers=_headers,
90
+ _host_index=_host_index
91
+ )
92
+
93
+ _response_types_map: Dict[str, Optional[str]] = {
94
+ '200': "object",
95
+ '400': None,
96
+ '401': None,
97
+ '404': None,
98
+ '422': "HTTPValidationError",
99
+ }
100
+ response_data = self.api_client.call_api(
101
+ *_param,
102
+ _request_timeout=_request_timeout
103
+ )
104
+ response_data.read()
105
+ return self.api_client.response_deserialize(
106
+ response_data=response_data,
107
+ response_types_map=_response_types_map,
108
+ ).data
109
+
110
+
111
+ @validate_call
112
+ def download_flow_proxy_api_v1_afnor_flow_v1_flows_flow_id_get_with_http_info(
113
+ self,
114
+ flow_id: StrictStr,
115
+ _request_timeout: Union[
116
+ None,
117
+ Annotated[StrictFloat, Field(gt=0)],
118
+ Tuple[
119
+ Annotated[StrictFloat, Field(gt=0)],
120
+ Annotated[StrictFloat, Field(gt=0)]
121
+ ]
122
+ ] = None,
123
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
124
+ _content_type: Optional[StrictStr] = None,
125
+ _headers: Optional[Dict[StrictStr, Any]] = None,
126
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
127
+ ) -> ApiResponse[object]:
128
+ """Télécharger un flux
129
+
130
+ Télécharger le fichier PDF/A-3 d'un flux de facturation (utilise le client_uid du JWT)
131
+
132
+ :param flow_id: (required)
133
+ :type flow_id: str
134
+ :param _request_timeout: timeout setting for this request. If one
135
+ number provided, it will be total request
136
+ timeout. It can also be a pair (tuple) of
137
+ (connection, read) timeouts.
138
+ :type _request_timeout: int, tuple(int, int), optional
139
+ :param _request_auth: set to override the auth_settings for an a single
140
+ request; this effectively ignores the
141
+ authentication in the spec for a single request.
142
+ :type _request_auth: dict, optional
143
+ :param _content_type: force content-type for the request.
144
+ :type _content_type: str, Optional
145
+ :param _headers: set to override the headers for a single
146
+ request; this effectively ignores the headers
147
+ in the spec for a single request.
148
+ :type _headers: dict, optional
149
+ :param _host_index: set to override the host_index for a single
150
+ request; this effectively ignores the host_index
151
+ in the spec for a single request.
152
+ :type _host_index: int, optional
153
+ :return: Returns the result object.
154
+ """ # noqa: E501
155
+
156
+ _param = self._download_flow_proxy_api_v1_afnor_flow_v1_flows_flow_id_get_serialize(
157
+ flow_id=flow_id,
158
+ _request_auth=_request_auth,
159
+ _content_type=_content_type,
160
+ _headers=_headers,
161
+ _host_index=_host_index
162
+ )
163
+
164
+ _response_types_map: Dict[str, Optional[str]] = {
165
+ '200': "object",
166
+ '400': None,
167
+ '401': None,
168
+ '404': None,
169
+ '422': "HTTPValidationError",
170
+ }
171
+ response_data = self.api_client.call_api(
172
+ *_param,
173
+ _request_timeout=_request_timeout
174
+ )
175
+ response_data.read()
176
+ return self.api_client.response_deserialize(
177
+ response_data=response_data,
178
+ response_types_map=_response_types_map,
179
+ )
180
+
181
+
182
+ @validate_call
183
+ def download_flow_proxy_api_v1_afnor_flow_v1_flows_flow_id_get_without_preload_content(
184
+ self,
185
+ flow_id: StrictStr,
186
+ _request_timeout: Union[
187
+ None,
188
+ Annotated[StrictFloat, Field(gt=0)],
189
+ Tuple[
190
+ Annotated[StrictFloat, Field(gt=0)],
191
+ Annotated[StrictFloat, Field(gt=0)]
192
+ ]
193
+ ] = None,
194
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
195
+ _content_type: Optional[StrictStr] = None,
196
+ _headers: Optional[Dict[StrictStr, Any]] = None,
197
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
198
+ ) -> RESTResponseType:
199
+ """Télécharger un flux
200
+
201
+ Télécharger le fichier PDF/A-3 d'un flux de facturation (utilise le client_uid du JWT)
202
+
203
+ :param flow_id: (required)
204
+ :type flow_id: str
205
+ :param _request_timeout: timeout setting for this request. If one
206
+ number provided, it will be total request
207
+ timeout. It can also be a pair (tuple) of
208
+ (connection, read) timeouts.
209
+ :type _request_timeout: int, tuple(int, int), optional
210
+ :param _request_auth: set to override the auth_settings for an a single
211
+ request; this effectively ignores the
212
+ authentication in the spec for a single request.
213
+ :type _request_auth: dict, optional
214
+ :param _content_type: force content-type for the request.
215
+ :type _content_type: str, Optional
216
+ :param _headers: set to override the headers for a single
217
+ request; this effectively ignores the headers
218
+ in the spec for a single request.
219
+ :type _headers: dict, optional
220
+ :param _host_index: set to override the host_index for a single
221
+ request; this effectively ignores the host_index
222
+ in the spec for a single request.
223
+ :type _host_index: int, optional
224
+ :return: Returns the result object.
225
+ """ # noqa: E501
226
+
227
+ _param = self._download_flow_proxy_api_v1_afnor_flow_v1_flows_flow_id_get_serialize(
228
+ flow_id=flow_id,
229
+ _request_auth=_request_auth,
230
+ _content_type=_content_type,
231
+ _headers=_headers,
232
+ _host_index=_host_index
233
+ )
234
+
235
+ _response_types_map: Dict[str, Optional[str]] = {
236
+ '200': "object",
237
+ '400': None,
238
+ '401': None,
239
+ '404': None,
240
+ '422': "HTTPValidationError",
241
+ }
242
+ response_data = self.api_client.call_api(
243
+ *_param,
244
+ _request_timeout=_request_timeout
245
+ )
246
+ return response_data.response
247
+
248
+
249
+ def _download_flow_proxy_api_v1_afnor_flow_v1_flows_flow_id_get_serialize(
250
+ self,
251
+ flow_id,
252
+ _request_auth,
253
+ _content_type,
254
+ _headers,
255
+ _host_index,
256
+ ) -> RequestSerialized:
257
+
258
+ _host = None
259
+
260
+ _collection_formats: Dict[str, str] = {
261
+ }
262
+
263
+ _path_params: Dict[str, str] = {}
264
+ _query_params: List[Tuple[str, str]] = []
265
+ _header_params: Dict[str, Optional[str]] = _headers or {}
266
+ _form_params: List[Tuple[str, str]] = []
267
+ _files: Dict[
268
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
269
+ ] = {}
270
+ _body_params: Optional[bytes] = None
271
+
272
+ # process the path parameters
273
+ if flow_id is not None:
274
+ _path_params['flowId'] = flow_id
275
+ # process the query parameters
276
+ # process the header parameters
277
+ # process the form parameters
278
+ # process the body parameter
279
+
280
+
281
+ # set the HTTP header `Accept`
282
+ if 'Accept' not in _header_params:
283
+ _header_params['Accept'] = self.api_client.select_header_accept(
284
+ [
285
+ 'application/json',
286
+ 'application/pdf'
287
+ ]
288
+ )
289
+
290
+
291
+ # authentication setting
292
+ _auth_settings: List[str] = [
293
+ ]
294
+
295
+ return self.api_client.param_serialize(
296
+ method='GET',
297
+ resource_path='/api/v1/afnor/flow/v1/flows/{flowId}',
298
+ path_params=_path_params,
299
+ query_params=_query_params,
300
+ header_params=_header_params,
301
+ body=_body_params,
302
+ post_params=_form_params,
303
+ files=_files,
304
+ auth_settings=_auth_settings,
305
+ collection_formats=_collection_formats,
306
+ _host=_host,
307
+ _request_auth=_request_auth
308
+ )
309
+
310
+
311
+
312
+
313
+ @validate_call
314
+ def flow_healthcheck_proxy_api_v1_afnor_flow_v1_healthcheck_get(
315
+ self,
316
+ _request_timeout: Union[
317
+ None,
318
+ Annotated[StrictFloat, Field(gt=0)],
319
+ Tuple[
320
+ Annotated[StrictFloat, Field(gt=0)],
321
+ Annotated[StrictFloat, Field(gt=0)]
322
+ ]
323
+ ] = None,
324
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
325
+ _content_type: Optional[StrictStr] = None,
326
+ _headers: Optional[Dict[StrictStr, Any]] = None,
327
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
328
+ ) -> object:
329
+ """Healthcheck Flow Service
330
+
331
+ Vérifier la disponibilité du Flow Service
332
+
333
+ :param _request_timeout: timeout setting for this request. If one
334
+ number provided, it will be total request
335
+ timeout. It can also be a pair (tuple) of
336
+ (connection, read) timeouts.
337
+ :type _request_timeout: int, tuple(int, int), optional
338
+ :param _request_auth: set to override the auth_settings for an a single
339
+ request; this effectively ignores the
340
+ authentication in the spec for a single request.
341
+ :type _request_auth: dict, optional
342
+ :param _content_type: force content-type for the request.
343
+ :type _content_type: str, Optional
344
+ :param _headers: set to override the headers for a single
345
+ request; this effectively ignores the headers
346
+ in the spec for a single request.
347
+ :type _headers: dict, optional
348
+ :param _host_index: set to override the host_index for a single
349
+ request; this effectively ignores the host_index
350
+ in the spec for a single request.
351
+ :type _host_index: int, optional
352
+ :return: Returns the result object.
353
+ """ # noqa: E501
354
+
355
+ _param = self._flow_healthcheck_proxy_api_v1_afnor_flow_v1_healthcheck_get_serialize(
356
+ _request_auth=_request_auth,
357
+ _content_type=_content_type,
358
+ _headers=_headers,
359
+ _host_index=_host_index
360
+ )
361
+
362
+ _response_types_map: Dict[str, Optional[str]] = {
363
+ '200': "object",
364
+ }
365
+ response_data = self.api_client.call_api(
366
+ *_param,
367
+ _request_timeout=_request_timeout
368
+ )
369
+ response_data.read()
370
+ return self.api_client.response_deserialize(
371
+ response_data=response_data,
372
+ response_types_map=_response_types_map,
373
+ ).data
374
+
375
+
376
+ @validate_call
377
+ def flow_healthcheck_proxy_api_v1_afnor_flow_v1_healthcheck_get_with_http_info(
378
+ self,
379
+ _request_timeout: Union[
380
+ None,
381
+ Annotated[StrictFloat, Field(gt=0)],
382
+ Tuple[
383
+ Annotated[StrictFloat, Field(gt=0)],
384
+ Annotated[StrictFloat, Field(gt=0)]
385
+ ]
386
+ ] = None,
387
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
388
+ _content_type: Optional[StrictStr] = None,
389
+ _headers: Optional[Dict[StrictStr, Any]] = None,
390
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
391
+ ) -> ApiResponse[object]:
392
+ """Healthcheck Flow Service
393
+
394
+ Vérifier la disponibilité du Flow Service
395
+
396
+ :param _request_timeout: timeout setting for this request. If one
397
+ number provided, it will be total request
398
+ timeout. It can also be a pair (tuple) of
399
+ (connection, read) timeouts.
400
+ :type _request_timeout: int, tuple(int, int), optional
401
+ :param _request_auth: set to override the auth_settings for an a single
402
+ request; this effectively ignores the
403
+ authentication in the spec for a single request.
404
+ :type _request_auth: dict, optional
405
+ :param _content_type: force content-type for the request.
406
+ :type _content_type: str, Optional
407
+ :param _headers: set to override the headers for a single
408
+ request; this effectively ignores the headers
409
+ in the spec for a single request.
410
+ :type _headers: dict, optional
411
+ :param _host_index: set to override the host_index for a single
412
+ request; this effectively ignores the host_index
413
+ in the spec for a single request.
414
+ :type _host_index: int, optional
415
+ :return: Returns the result object.
416
+ """ # noqa: E501
417
+
418
+ _param = self._flow_healthcheck_proxy_api_v1_afnor_flow_v1_healthcheck_get_serialize(
419
+ _request_auth=_request_auth,
420
+ _content_type=_content_type,
421
+ _headers=_headers,
422
+ _host_index=_host_index
423
+ )
424
+
425
+ _response_types_map: Dict[str, Optional[str]] = {
426
+ '200': "object",
427
+ }
428
+ response_data = self.api_client.call_api(
429
+ *_param,
430
+ _request_timeout=_request_timeout
431
+ )
432
+ response_data.read()
433
+ return self.api_client.response_deserialize(
434
+ response_data=response_data,
435
+ response_types_map=_response_types_map,
436
+ )
437
+
438
+
439
+ @validate_call
440
+ def flow_healthcheck_proxy_api_v1_afnor_flow_v1_healthcheck_get_without_preload_content(
441
+ self,
442
+ _request_timeout: Union[
443
+ None,
444
+ Annotated[StrictFloat, Field(gt=0)],
445
+ Tuple[
446
+ Annotated[StrictFloat, Field(gt=0)],
447
+ Annotated[StrictFloat, Field(gt=0)]
448
+ ]
449
+ ] = None,
450
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
451
+ _content_type: Optional[StrictStr] = None,
452
+ _headers: Optional[Dict[StrictStr, Any]] = None,
453
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
454
+ ) -> RESTResponseType:
455
+ """Healthcheck Flow Service
456
+
457
+ Vérifier la disponibilité du Flow Service
458
+
459
+ :param _request_timeout: timeout setting for this request. If one
460
+ number provided, it will be total request
461
+ timeout. It can also be a pair (tuple) of
462
+ (connection, read) timeouts.
463
+ :type _request_timeout: int, tuple(int, int), optional
464
+ :param _request_auth: set to override the auth_settings for an a single
465
+ request; this effectively ignores the
466
+ authentication in the spec for a single request.
467
+ :type _request_auth: dict, optional
468
+ :param _content_type: force content-type for the request.
469
+ :type _content_type: str, Optional
470
+ :param _headers: set to override the headers for a single
471
+ request; this effectively ignores the headers
472
+ in the spec for a single request.
473
+ :type _headers: dict, optional
474
+ :param _host_index: set to override the host_index for a single
475
+ request; this effectively ignores the host_index
476
+ in the spec for a single request.
477
+ :type _host_index: int, optional
478
+ :return: Returns the result object.
479
+ """ # noqa: E501
480
+
481
+ _param = self._flow_healthcheck_proxy_api_v1_afnor_flow_v1_healthcheck_get_serialize(
482
+ _request_auth=_request_auth,
483
+ _content_type=_content_type,
484
+ _headers=_headers,
485
+ _host_index=_host_index
486
+ )
487
+
488
+ _response_types_map: Dict[str, Optional[str]] = {
489
+ '200': "object",
490
+ }
491
+ response_data = self.api_client.call_api(
492
+ *_param,
493
+ _request_timeout=_request_timeout
494
+ )
495
+ return response_data.response
496
+
497
+
498
+ def _flow_healthcheck_proxy_api_v1_afnor_flow_v1_healthcheck_get_serialize(
499
+ self,
500
+ _request_auth,
501
+ _content_type,
502
+ _headers,
503
+ _host_index,
504
+ ) -> RequestSerialized:
505
+
506
+ _host = None
507
+
508
+ _collection_formats: Dict[str, str] = {
509
+ }
510
+
511
+ _path_params: Dict[str, str] = {}
512
+ _query_params: List[Tuple[str, str]] = []
513
+ _header_params: Dict[str, Optional[str]] = _headers or {}
514
+ _form_params: List[Tuple[str, str]] = []
515
+ _files: Dict[
516
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
517
+ ] = {}
518
+ _body_params: Optional[bytes] = None
519
+
520
+ # process the path parameters
521
+ # process the query parameters
522
+ # process the header parameters
523
+ # process the form parameters
524
+ # process the body parameter
525
+
526
+
527
+ # set the HTTP header `Accept`
528
+ if 'Accept' not in _header_params:
529
+ _header_params['Accept'] = self.api_client.select_header_accept(
530
+ [
531
+ 'application/json'
532
+ ]
533
+ )
534
+
535
+
536
+ # authentication setting
537
+ _auth_settings: List[str] = [
538
+ ]
539
+
540
+ return self.api_client.param_serialize(
541
+ method='GET',
542
+ resource_path='/api/v1/afnor/flow/v1/healthcheck',
543
+ path_params=_path_params,
544
+ query_params=_query_params,
545
+ header_params=_header_params,
546
+ body=_body_params,
547
+ post_params=_form_params,
548
+ files=_files,
549
+ auth_settings=_auth_settings,
550
+ collection_formats=_collection_formats,
551
+ _host=_host,
552
+ _request_auth=_request_auth
553
+ )
554
+
555
+
556
+
557
+
558
+ @validate_call
559
+ def search_flows_proxy_api_v1_afnor_flow_v1_flows_search_post(
560
+ self,
561
+ _request_timeout: Union[
562
+ None,
563
+ Annotated[StrictFloat, Field(gt=0)],
564
+ Tuple[
565
+ Annotated[StrictFloat, Field(gt=0)],
566
+ Annotated[StrictFloat, Field(gt=0)]
567
+ ]
568
+ ] = None,
569
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
570
+ _content_type: Optional[StrictStr] = None,
571
+ _headers: Optional[Dict[StrictStr, Any]] = None,
572
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
573
+ ) -> object:
574
+ """Rechercher des flux
575
+
576
+ Rechercher des flux de facturation selon des critères (utilise le client_uid du JWT)
577
+
578
+ :param _request_timeout: timeout setting for this request. If one
579
+ number provided, it will be total request
580
+ timeout. It can also be a pair (tuple) of
581
+ (connection, read) timeouts.
582
+ :type _request_timeout: int, tuple(int, int), optional
583
+ :param _request_auth: set to override the auth_settings for an a single
584
+ request; this effectively ignores the
585
+ authentication in the spec for a single request.
586
+ :type _request_auth: dict, optional
587
+ :param _content_type: force content-type for the request.
588
+ :type _content_type: str, Optional
589
+ :param _headers: set to override the headers for a single
590
+ request; this effectively ignores the headers
591
+ in the spec for a single request.
592
+ :type _headers: dict, optional
593
+ :param _host_index: set to override the host_index for a single
594
+ request; this effectively ignores the host_index
595
+ in the spec for a single request.
596
+ :type _host_index: int, optional
597
+ :return: Returns the result object.
598
+ """ # noqa: E501
599
+
600
+ _param = self._search_flows_proxy_api_v1_afnor_flow_v1_flows_search_post_serialize(
601
+ _request_auth=_request_auth,
602
+ _content_type=_content_type,
603
+ _headers=_headers,
604
+ _host_index=_host_index
605
+ )
606
+
607
+ _response_types_map: Dict[str, Optional[str]] = {
608
+ '200': "object",
609
+ '400': None,
610
+ '401': None,
611
+ '404': None,
612
+ '429': None,
613
+ }
614
+ response_data = self.api_client.call_api(
615
+ *_param,
616
+ _request_timeout=_request_timeout
617
+ )
618
+ response_data.read()
619
+ return self.api_client.response_deserialize(
620
+ response_data=response_data,
621
+ response_types_map=_response_types_map,
622
+ ).data
623
+
624
+
625
+ @validate_call
626
+ def search_flows_proxy_api_v1_afnor_flow_v1_flows_search_post_with_http_info(
627
+ self,
628
+ _request_timeout: Union[
629
+ None,
630
+ Annotated[StrictFloat, Field(gt=0)],
631
+ Tuple[
632
+ Annotated[StrictFloat, Field(gt=0)],
633
+ Annotated[StrictFloat, Field(gt=0)]
634
+ ]
635
+ ] = None,
636
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
637
+ _content_type: Optional[StrictStr] = None,
638
+ _headers: Optional[Dict[StrictStr, Any]] = None,
639
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
640
+ ) -> ApiResponse[object]:
641
+ """Rechercher des flux
642
+
643
+ Rechercher des flux de facturation selon des critères (utilise le client_uid du JWT)
644
+
645
+ :param _request_timeout: timeout setting for this request. If one
646
+ number provided, it will be total request
647
+ timeout. It can also be a pair (tuple) of
648
+ (connection, read) timeouts.
649
+ :type _request_timeout: int, tuple(int, int), optional
650
+ :param _request_auth: set to override the auth_settings for an a single
651
+ request; this effectively ignores the
652
+ authentication in the spec for a single request.
653
+ :type _request_auth: dict, optional
654
+ :param _content_type: force content-type for the request.
655
+ :type _content_type: str, Optional
656
+ :param _headers: set to override the headers for a single
657
+ request; this effectively ignores the headers
658
+ in the spec for a single request.
659
+ :type _headers: dict, optional
660
+ :param _host_index: set to override the host_index for a single
661
+ request; this effectively ignores the host_index
662
+ in the spec for a single request.
663
+ :type _host_index: int, optional
664
+ :return: Returns the result object.
665
+ """ # noqa: E501
666
+
667
+ _param = self._search_flows_proxy_api_v1_afnor_flow_v1_flows_search_post_serialize(
668
+ _request_auth=_request_auth,
669
+ _content_type=_content_type,
670
+ _headers=_headers,
671
+ _host_index=_host_index
672
+ )
673
+
674
+ _response_types_map: Dict[str, Optional[str]] = {
675
+ '200': "object",
676
+ '400': None,
677
+ '401': None,
678
+ '404': None,
679
+ '429': None,
680
+ }
681
+ response_data = self.api_client.call_api(
682
+ *_param,
683
+ _request_timeout=_request_timeout
684
+ )
685
+ response_data.read()
686
+ return self.api_client.response_deserialize(
687
+ response_data=response_data,
688
+ response_types_map=_response_types_map,
689
+ )
690
+
691
+
692
+ @validate_call
693
+ def search_flows_proxy_api_v1_afnor_flow_v1_flows_search_post_without_preload_content(
694
+ self,
695
+ _request_timeout: Union[
696
+ None,
697
+ Annotated[StrictFloat, Field(gt=0)],
698
+ Tuple[
699
+ Annotated[StrictFloat, Field(gt=0)],
700
+ Annotated[StrictFloat, Field(gt=0)]
701
+ ]
702
+ ] = None,
703
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
704
+ _content_type: Optional[StrictStr] = None,
705
+ _headers: Optional[Dict[StrictStr, Any]] = None,
706
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
707
+ ) -> RESTResponseType:
708
+ """Rechercher des flux
709
+
710
+ Rechercher des flux de facturation selon des critères (utilise le client_uid du JWT)
711
+
712
+ :param _request_timeout: timeout setting for this request. If one
713
+ number provided, it will be total request
714
+ timeout. It can also be a pair (tuple) of
715
+ (connection, read) timeouts.
716
+ :type _request_timeout: int, tuple(int, int), optional
717
+ :param _request_auth: set to override the auth_settings for an a single
718
+ request; this effectively ignores the
719
+ authentication in the spec for a single request.
720
+ :type _request_auth: dict, optional
721
+ :param _content_type: force content-type for the request.
722
+ :type _content_type: str, Optional
723
+ :param _headers: set to override the headers for a single
724
+ request; this effectively ignores the headers
725
+ in the spec for a single request.
726
+ :type _headers: dict, optional
727
+ :param _host_index: set to override the host_index for a single
728
+ request; this effectively ignores the host_index
729
+ in the spec for a single request.
730
+ :type _host_index: int, optional
731
+ :return: Returns the result object.
732
+ """ # noqa: E501
733
+
734
+ _param = self._search_flows_proxy_api_v1_afnor_flow_v1_flows_search_post_serialize(
735
+ _request_auth=_request_auth,
736
+ _content_type=_content_type,
737
+ _headers=_headers,
738
+ _host_index=_host_index
739
+ )
740
+
741
+ _response_types_map: Dict[str, Optional[str]] = {
742
+ '200': "object",
743
+ '400': None,
744
+ '401': None,
745
+ '404': None,
746
+ '429': None,
747
+ }
748
+ response_data = self.api_client.call_api(
749
+ *_param,
750
+ _request_timeout=_request_timeout
751
+ )
752
+ return response_data.response
753
+
754
+
755
+ def _search_flows_proxy_api_v1_afnor_flow_v1_flows_search_post_serialize(
756
+ self,
757
+ _request_auth,
758
+ _content_type,
759
+ _headers,
760
+ _host_index,
761
+ ) -> RequestSerialized:
762
+
763
+ _host = None
764
+
765
+ _collection_formats: Dict[str, str] = {
766
+ }
767
+
768
+ _path_params: Dict[str, str] = {}
769
+ _query_params: List[Tuple[str, str]] = []
770
+ _header_params: Dict[str, Optional[str]] = _headers or {}
771
+ _form_params: List[Tuple[str, str]] = []
772
+ _files: Dict[
773
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
774
+ ] = {}
775
+ _body_params: Optional[bytes] = None
776
+
777
+ # process the path parameters
778
+ # process the query parameters
779
+ # process the header parameters
780
+ # process the form parameters
781
+ # process the body parameter
782
+
783
+
784
+ # set the HTTP header `Accept`
785
+ if 'Accept' not in _header_params:
786
+ _header_params['Accept'] = self.api_client.select_header_accept(
787
+ [
788
+ 'application/json'
789
+ ]
790
+ )
791
+
792
+
793
+ # authentication setting
794
+ _auth_settings: List[str] = [
795
+ ]
796
+
797
+ return self.api_client.param_serialize(
798
+ method='POST',
799
+ resource_path='/api/v1/afnor/flow/v1/flows/search',
800
+ path_params=_path_params,
801
+ query_params=_query_params,
802
+ header_params=_header_params,
803
+ body=_body_params,
804
+ post_params=_form_params,
805
+ files=_files,
806
+ auth_settings=_auth_settings,
807
+ collection_formats=_collection_formats,
808
+ _host=_host,
809
+ _request_auth=_request_auth
810
+ )
811
+
812
+
813
+
814
+
815
+ @validate_call
816
+ def submit_flow_proxy_api_v1_afnor_flow_v1_flows_post(
817
+ self,
818
+ _request_timeout: Union[
819
+ None,
820
+ Annotated[StrictFloat, Field(gt=0)],
821
+ Tuple[
822
+ Annotated[StrictFloat, Field(gt=0)],
823
+ Annotated[StrictFloat, Field(gt=0)]
824
+ ]
825
+ ] = None,
826
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
827
+ _content_type: Optional[StrictStr] = None,
828
+ _headers: Optional[Dict[StrictStr, Any]] = None,
829
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
830
+ ) -> object:
831
+ """Soumettre un flux de facturation
832
+
833
+ Soumet une facture électronique à une Plateforme de Dématérialisation Partenaire (PDP) conformément à la norme AFNOR XP Z12-013
834
+
835
+ :param _request_timeout: timeout setting for this request. If one
836
+ number provided, it will be total request
837
+ timeout. It can also be a pair (tuple) of
838
+ (connection, read) timeouts.
839
+ :type _request_timeout: int, tuple(int, int), optional
840
+ :param _request_auth: set to override the auth_settings for an a single
841
+ request; this effectively ignores the
842
+ authentication in the spec for a single request.
843
+ :type _request_auth: dict, optional
844
+ :param _content_type: force content-type for the request.
845
+ :type _content_type: str, Optional
846
+ :param _headers: set to override the headers for a single
847
+ request; this effectively ignores the headers
848
+ in the spec for a single request.
849
+ :type _headers: dict, optional
850
+ :param _host_index: set to override the host_index for a single
851
+ request; this effectively ignores the host_index
852
+ in the spec for a single request.
853
+ :type _host_index: int, optional
854
+ :return: Returns the result object.
855
+ """ # noqa: E501
856
+
857
+ _param = self._submit_flow_proxy_api_v1_afnor_flow_v1_flows_post_serialize(
858
+ _request_auth=_request_auth,
859
+ _content_type=_content_type,
860
+ _headers=_headers,
861
+ _host_index=_host_index
862
+ )
863
+
864
+ _response_types_map: Dict[str, Optional[str]] = {
865
+ '200': "object",
866
+ '201': None,
867
+ '400': None,
868
+ '401': None,
869
+ '403': None,
870
+ '404': None,
871
+ '429': None,
872
+ }
873
+ response_data = self.api_client.call_api(
874
+ *_param,
875
+ _request_timeout=_request_timeout
876
+ )
877
+ response_data.read()
878
+ return self.api_client.response_deserialize(
879
+ response_data=response_data,
880
+ response_types_map=_response_types_map,
881
+ ).data
882
+
883
+
884
+ @validate_call
885
+ def submit_flow_proxy_api_v1_afnor_flow_v1_flows_post_with_http_info(
886
+ self,
887
+ _request_timeout: Union[
888
+ None,
889
+ Annotated[StrictFloat, Field(gt=0)],
890
+ Tuple[
891
+ Annotated[StrictFloat, Field(gt=0)],
892
+ Annotated[StrictFloat, Field(gt=0)]
893
+ ]
894
+ ] = None,
895
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
896
+ _content_type: Optional[StrictStr] = None,
897
+ _headers: Optional[Dict[StrictStr, Any]] = None,
898
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
899
+ ) -> ApiResponse[object]:
900
+ """Soumettre un flux de facturation
901
+
902
+ Soumet une facture électronique à une Plateforme de Dématérialisation Partenaire (PDP) conformément à la norme AFNOR XP Z12-013
903
+
904
+ :param _request_timeout: timeout setting for this request. If one
905
+ number provided, it will be total request
906
+ timeout. It can also be a pair (tuple) of
907
+ (connection, read) timeouts.
908
+ :type _request_timeout: int, tuple(int, int), optional
909
+ :param _request_auth: set to override the auth_settings for an a single
910
+ request; this effectively ignores the
911
+ authentication in the spec for a single request.
912
+ :type _request_auth: dict, optional
913
+ :param _content_type: force content-type for the request.
914
+ :type _content_type: str, Optional
915
+ :param _headers: set to override the headers for a single
916
+ request; this effectively ignores the headers
917
+ in the spec for a single request.
918
+ :type _headers: dict, optional
919
+ :param _host_index: set to override the host_index for a single
920
+ request; this effectively ignores the host_index
921
+ in the spec for a single request.
922
+ :type _host_index: int, optional
923
+ :return: Returns the result object.
924
+ """ # noqa: E501
925
+
926
+ _param = self._submit_flow_proxy_api_v1_afnor_flow_v1_flows_post_serialize(
927
+ _request_auth=_request_auth,
928
+ _content_type=_content_type,
929
+ _headers=_headers,
930
+ _host_index=_host_index
931
+ )
932
+
933
+ _response_types_map: Dict[str, Optional[str]] = {
934
+ '200': "object",
935
+ '201': None,
936
+ '400': None,
937
+ '401': None,
938
+ '403': None,
939
+ '404': None,
940
+ '429': None,
941
+ }
942
+ response_data = self.api_client.call_api(
943
+ *_param,
944
+ _request_timeout=_request_timeout
945
+ )
946
+ response_data.read()
947
+ return self.api_client.response_deserialize(
948
+ response_data=response_data,
949
+ response_types_map=_response_types_map,
950
+ )
951
+
952
+
953
+ @validate_call
954
+ def submit_flow_proxy_api_v1_afnor_flow_v1_flows_post_without_preload_content(
955
+ self,
956
+ _request_timeout: Union[
957
+ None,
958
+ Annotated[StrictFloat, Field(gt=0)],
959
+ Tuple[
960
+ Annotated[StrictFloat, Field(gt=0)],
961
+ Annotated[StrictFloat, Field(gt=0)]
962
+ ]
963
+ ] = None,
964
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
965
+ _content_type: Optional[StrictStr] = None,
966
+ _headers: Optional[Dict[StrictStr, Any]] = None,
967
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
968
+ ) -> RESTResponseType:
969
+ """Soumettre un flux de facturation
970
+
971
+ Soumet une facture électronique à une Plateforme de Dématérialisation Partenaire (PDP) conformément à la norme AFNOR XP Z12-013
972
+
973
+ :param _request_timeout: timeout setting for this request. If one
974
+ number provided, it will be total request
975
+ timeout. It can also be a pair (tuple) of
976
+ (connection, read) timeouts.
977
+ :type _request_timeout: int, tuple(int, int), optional
978
+ :param _request_auth: set to override the auth_settings for an a single
979
+ request; this effectively ignores the
980
+ authentication in the spec for a single request.
981
+ :type _request_auth: dict, optional
982
+ :param _content_type: force content-type for the request.
983
+ :type _content_type: str, Optional
984
+ :param _headers: set to override the headers for a single
985
+ request; this effectively ignores the headers
986
+ in the spec for a single request.
987
+ :type _headers: dict, optional
988
+ :param _host_index: set to override the host_index for a single
989
+ request; this effectively ignores the host_index
990
+ in the spec for a single request.
991
+ :type _host_index: int, optional
992
+ :return: Returns the result object.
993
+ """ # noqa: E501
994
+
995
+ _param = self._submit_flow_proxy_api_v1_afnor_flow_v1_flows_post_serialize(
996
+ _request_auth=_request_auth,
997
+ _content_type=_content_type,
998
+ _headers=_headers,
999
+ _host_index=_host_index
1000
+ )
1001
+
1002
+ _response_types_map: Dict[str, Optional[str]] = {
1003
+ '200': "object",
1004
+ '201': None,
1005
+ '400': None,
1006
+ '401': None,
1007
+ '403': None,
1008
+ '404': None,
1009
+ '429': None,
1010
+ }
1011
+ response_data = self.api_client.call_api(
1012
+ *_param,
1013
+ _request_timeout=_request_timeout
1014
+ )
1015
+ return response_data.response
1016
+
1017
+
1018
+ def _submit_flow_proxy_api_v1_afnor_flow_v1_flows_post_serialize(
1019
+ self,
1020
+ _request_auth,
1021
+ _content_type,
1022
+ _headers,
1023
+ _host_index,
1024
+ ) -> RequestSerialized:
1025
+
1026
+ _host = None
1027
+
1028
+ _collection_formats: Dict[str, str] = {
1029
+ }
1030
+
1031
+ _path_params: Dict[str, str] = {}
1032
+ _query_params: List[Tuple[str, str]] = []
1033
+ _header_params: Dict[str, Optional[str]] = _headers or {}
1034
+ _form_params: List[Tuple[str, str]] = []
1035
+ _files: Dict[
1036
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
1037
+ ] = {}
1038
+ _body_params: Optional[bytes] = None
1039
+
1040
+ # process the path parameters
1041
+ # process the query parameters
1042
+ # process the header parameters
1043
+ # process the form parameters
1044
+ # process the body parameter
1045
+
1046
+
1047
+ # set the HTTP header `Accept`
1048
+ if 'Accept' not in _header_params:
1049
+ _header_params['Accept'] = self.api_client.select_header_accept(
1050
+ [
1051
+ 'application/json'
1052
+ ]
1053
+ )
1054
+
1055
+
1056
+ # authentication setting
1057
+ _auth_settings: List[str] = [
1058
+ ]
1059
+
1060
+ return self.api_client.param_serialize(
1061
+ method='POST',
1062
+ resource_path='/api/v1/afnor/flow/v1/flows',
1063
+ path_params=_path_params,
1064
+ query_params=_query_params,
1065
+ header_params=_header_params,
1066
+ body=_body_params,
1067
+ post_params=_form_params,
1068
+ files=_files,
1069
+ auth_settings=_auth_settings,
1070
+ collection_formats=_collection_formats,
1071
+ _host=_host,
1072
+ _request_auth=_request_auth
1073
+ )
1074
+
1075
+