factpulse 0.1.0

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 (671) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +17 -0
  3. data/Gemfile +9 -0
  4. data/Gemfile.lock +74 -0
  5. data/LICENSE +21 -0
  6. data/README.md +220 -0
  7. data/Rakefile +10 -0
  8. data/docs/AFNORAcknowledgement.md +20 -0
  9. data/docs/AFNORAcknowledgementDetail.md +24 -0
  10. data/docs/AFNORAddressEdit.md +30 -0
  11. data/docs/AFNORAddressPatch.md +30 -0
  12. data/docs/AFNORAddressPut.md +30 -0
  13. data/docs/AFNORAddressRead.md +32 -0
  14. data/docs/AFNORAlgorithm.md +15 -0
  15. data/docs/AFNORContainsOperator.md +15 -0
  16. data/docs/AFNORCreateDirectoryLineBody.md +20 -0
  17. data/docs/AFNORCreateDirectoryLineBodyAddressingInformation.md +24 -0
  18. data/docs/AFNORCreateDirectoryLineBodyPeriod.md +20 -0
  19. data/docs/AFNORCreateRoutingCodeBody.md +32 -0
  20. data/docs/AFNORCredentials.md +22 -0
  21. data/docs/AFNORDestination.md +26 -0
  22. data/docs/AFNORDiffusionStatus.md +15 -0
  23. data/docs/AFNORDirectoryLineField.md +15 -0
  24. data/docs/AFNORDirectoryLinePayloadHistoryLegalUnitFacilityRoutingCode.md +32 -0
  25. data/docs/AFNORDirectoryLinePayloadHistoryLegalUnitFacilityRoutingCodePlatform.md +20 -0
  26. data/docs/AFNORDirectoryLinePayloadHistoryLegalUnitFacilityRoutingCodeRoutingCode.md +28 -0
  27. data/docs/AFNORDirectoryLinePost201Response.md +22 -0
  28. data/docs/AFNORDirectoryLineSearchPost200Response.md +22 -0
  29. data/docs/AFNOREntityType.md +15 -0
  30. data/docs/AFNORError.md +26 -0
  31. data/docs/AFNORFacilityAdministrativeStatus.md +15 -0
  32. data/docs/AFNORFacilityNature.md +15 -0
  33. data/docs/AFNORFacilityPayloadHistory.md +34 -0
  34. data/docs/AFNORFacilityPayloadHistoryUleB2gAdditionalData.md +28 -0
  35. data/docs/AFNORFacilityPayloadIncluded.md +32 -0
  36. data/docs/AFNORFacilityType.md +15 -0
  37. data/docs/AFNORFlow.md +38 -0
  38. data/docs/AFNORFlowAckStatus.md +15 -0
  39. data/docs/AFNORFlowDirection.md +15 -0
  40. data/docs/AFNORFlowInfo.md +28 -0
  41. data/docs/AFNORFlowProfile.md +15 -0
  42. data/docs/AFNORFlowSyntax.md +15 -0
  43. data/docs/AFNORFlowType.md +15 -0
  44. data/docs/AFNORFullFlowInfo.md +32 -0
  45. data/docs/AFNORHealthCheckResponse.md +22 -0
  46. data/docs/AFNORLegalUnitAdministrativeStatus.md +15 -0
  47. data/docs/AFNORLegalUnitPayloadHistory.md +24 -0
  48. data/docs/AFNORLegalUnitPayloadIncluded.md +24 -0
  49. data/docs/AFNORLegalUnitPayloadIncludedNoSiren.md +22 -0
  50. data/docs/AFNORPDPPAApi.md +150 -0
  51. data/docs/AFNORPDPPADirectoryServiceApi.md +1223 -0
  52. data/docs/AFNORPDPPAFlowServiceApi.md +270 -0
  53. data/docs/AFNORPlatformStatus.md +15 -0
  54. data/docs/AFNORProcessingRule.md +15 -0
  55. data/docs/AFNORReasonCode.md +49 -0
  56. data/docs/AFNORReasonCodeEnum.md +15 -0
  57. data/docs/AFNORRecipientPlatformType.md +15 -0
  58. data/docs/AFNORResult.md +32 -0
  59. data/docs/AFNORRoutingCodeAdministrativeStatus.md +15 -0
  60. data/docs/AFNORRoutingCodeField.md +15 -0
  61. data/docs/AFNORRoutingCodePayloadHistoryLegalUnitFacility.md +34 -0
  62. data/docs/AFNORRoutingCodePost201Response.md +22 -0
  63. data/docs/AFNORRoutingCodeSearch.md +28 -0
  64. data/docs/AFNORRoutingCodeSearchFilters.md +30 -0
  65. data/docs/AFNORRoutingCodeSearchFiltersAdministrativeStatus.md +20 -0
  66. data/docs/AFNORRoutingCodeSearchFiltersRoutingCodeName.md +20 -0
  67. data/docs/AFNORRoutingCodeSearchFiltersRoutingIdentifier.md +20 -0
  68. data/docs/AFNORRoutingCodeSearchPost200Response.md +22 -0
  69. data/docs/AFNORRoutingCodeSearchSortingInner.md +20 -0
  70. data/docs/AFNORSearchDirectoryLine.md +26 -0
  71. data/docs/AFNORSearchDirectoryLineFilters.md +26 -0
  72. data/docs/AFNORSearchDirectoryLineFiltersAddressingIdentifier.md +20 -0
  73. data/docs/AFNORSearchDirectoryLineFiltersAddressingSuffix.md +20 -0
  74. data/docs/AFNORSearchDirectoryLineSortingInner.md +20 -0
  75. data/docs/AFNORSearchFlowContent.md +22 -0
  76. data/docs/AFNORSearchFlowFilters.md +30 -0
  77. data/docs/AFNORSearchFlowParams.md +20 -0
  78. data/docs/AFNORSearchSiren.md +26 -0
  79. data/docs/AFNORSearchSirenFilters.md +24 -0
  80. data/docs/AFNORSearchSirenFiltersAdministrativeStatus.md +20 -0
  81. data/docs/AFNORSearchSirenFiltersBusinessName.md +20 -0
  82. data/docs/AFNORSearchSirenFiltersEntityType.md +20 -0
  83. data/docs/AFNORSearchSirenFiltersSiren.md +20 -0
  84. data/docs/AFNORSearchSirenSortingInner.md +20 -0
  85. data/docs/AFNORSearchSiret.md +28 -0
  86. data/docs/AFNORSearchSiretFilters.md +34 -0
  87. data/docs/AFNORSearchSiretFiltersAddressLines.md +20 -0
  88. data/docs/AFNORSearchSiretFiltersAdministrativeStatus.md +20 -0
  89. data/docs/AFNORSearchSiretFiltersCountrySubdivision.md +20 -0
  90. data/docs/AFNORSearchSiretFiltersFacilityType.md +20 -0
  91. data/docs/AFNORSearchSiretFiltersLocality.md +20 -0
  92. data/docs/AFNORSearchSiretFiltersName.md +20 -0
  93. data/docs/AFNORSearchSiretFiltersPostalCode.md +20 -0
  94. data/docs/AFNORSearchSiretFiltersSiret.md +20 -0
  95. data/docs/AFNORSearchSiretSortingInner.md +20 -0
  96. data/docs/AFNORSirenField.md +15 -0
  97. data/docs/AFNORSirenSearchPost200Response.md +22 -0
  98. data/docs/AFNORSiretField.md +15 -0
  99. data/docs/AFNORSiretSearchPost200Response.md +22 -0
  100. data/docs/AFNORSortingOrder.md +15 -0
  101. data/docs/AFNORStrictOperator.md +15 -0
  102. data/docs/AFNORUpdatePatchDirectoryLineBody.md +18 -0
  103. data/docs/AFNORUpdatePatchRoutingCodeBody.md +24 -0
  104. data/docs/AFNORUpdatePutRoutingCodeBody.md +24 -0
  105. data/docs/AFNORWebhookCallbackContent.md +18 -0
  106. data/docs/APIError.md +22 -0
  107. data/docs/APIProfile.md +15 -0
  108. data/docs/AcknowledgmentStatus.md +15 -0
  109. data/docs/ActionCodeInfo.md +22 -0
  110. data/docs/ActionCodesResponse.md +22 -0
  111. data/docs/AdditionalDocument.md +26 -0
  112. data/docs/AggregatedPaymentInput.md +22 -0
  113. data/docs/AggregatedTransactionInput.md +32 -0
  114. data/docs/AllowanceCharge.md +32 -0
  115. data/docs/AllowanceChargeReasonCode.md +15 -0
  116. data/docs/AllowanceReasonCode.md +15 -0
  117. data/docs/AllowanceTotalAmount.md +15 -0
  118. data/docs/Amount.md +15 -0
  119. data/docs/Amount1.md +15 -0
  120. data/docs/Amount2.md +15 -0
  121. data/docs/AmountDue.md +15 -0
  122. data/docs/AsyncTaskStatus.md +22 -0
  123. data/docs/AsyncTasksApi.md +82 -0
  124. data/docs/BaseAmount.md +15 -0
  125. data/docs/BoundingBoxSchema.md +30 -0
  126. data/docs/Buyercountry.md +15 -0
  127. data/docs/CeleryStatus.md +15 -0
  128. data/docs/CertificateInfoResponse.md +40 -0
  129. data/docs/ChargeTotalAmount.md +15 -0
  130. data/docs/ChorusProApi.md +1207 -0
  131. data/docs/ChorusProCredentials.md +26 -0
  132. data/docs/ChorusProDestination.md +20 -0
  133. data/docs/ChorusProResult.md +22 -0
  134. data/docs/ClientActivateResponse.md +22 -0
  135. data/docs/ClientCreateRequest.md +22 -0
  136. data/docs/ClientDetail.md +38 -0
  137. data/docs/ClientListResponse.md +24 -0
  138. data/docs/ClientManagementApi.md +921 -0
  139. data/docs/ClientSummary.md +38 -0
  140. data/docs/ClientUpdateRequest.md +22 -0
  141. data/docs/Contact.md +24 -0
  142. data/docs/ConvertResumeRequest.md +18 -0
  143. data/docs/ConvertSuccessResponse.md +36 -0
  144. data/docs/ConvertValidationFailedResponse.md +34 -0
  145. data/docs/CountryCode.md +15 -0
  146. data/docs/CreateAggregatedReportRequest.md +36 -0
  147. data/docs/CreateCDARRequest.md +52 -0
  148. data/docs/CreateEReportingRequest.md +38 -0
  149. data/docs/Currency.md +15 -0
  150. data/docs/CurrencyCode.md +15 -0
  151. data/docs/DeliveryParty.md +24 -0
  152. data/docs/Destination.md +79 -0
  153. data/docs/DocType.md +15 -0
  154. data/docs/DocumentTypeInfo.md +22 -0
  155. data/docs/DownloadsApi.md +161 -0
  156. data/docs/EReportingFlowType.md +15 -0
  157. data/docs/EReportingValidationError.md +22 -0
  158. data/docs/ElectronicAddress.md +20 -0
  159. data/docs/ElectronicSignatureApi.md +339 -0
  160. data/docs/Encaisseamount.md +15 -0
  161. data/docs/Encaisseamount1.md +15 -0
  162. data/docs/EncaisseeRequest.md +40 -0
  163. data/docs/EnrichedInvoiceInfo.md +32 -0
  164. data/docs/ErrorLevel.md +15 -0
  165. data/docs/ErrorSource.md +15 -0
  166. data/docs/ExtractionInfo.md +24 -0
  167. data/docs/FacturXConversionApi.md +319 -0
  168. data/docs/FacturXGenerationApi.md +254 -0
  169. data/docs/FacturXInvoice.md +76 -0
  170. data/docs/FacturXPDFInfo.md +22 -0
  171. data/docs/FacturXPDFXMLVerificationApi.md +240 -0
  172. data/docs/FacturXValidationApi.md +256 -0
  173. data/docs/FactureElectroniqueRestApiSchemasEreportingInvoiceTypeCode.md +15 -0
  174. data/docs/FactureElectroniqueRestApiSchemasProcessingChorusProCredentials.md +26 -0
  175. data/docs/FactureElectroniqueRestApiSchemasValidationValidationErrorResponse.md +18 -0
  176. data/docs/FieldStatus.md +15 -0
  177. data/docs/FileInfo.md +20 -0
  178. data/docs/FilesInfo.md +20 -0
  179. data/docs/FlowDirection.md +15 -0
  180. data/docs/FlowProfile.md +15 -0
  181. data/docs/FlowSummary.md +32 -0
  182. data/docs/FlowSyntax.md +15 -0
  183. data/docs/FlowType.md +15 -0
  184. data/docs/Flux10EReportingApi.md +814 -0
  185. data/docs/Flux6InvoiceLifecycleCDARApi.md +698 -0
  186. data/docs/GenerateAggregatedReportResponse.md +30 -0
  187. data/docs/GenerateCDARResponse.md +26 -0
  188. data/docs/GenerateCertificateRequest.md +38 -0
  189. data/docs/GenerateCertificateResponse.md +32 -0
  190. data/docs/GenerateEReportingResponse.md +26 -0
  191. data/docs/GetChorusProIdRequest.md +22 -0
  192. data/docs/GetChorusProIdResponse.md +24 -0
  193. data/docs/GetInvoiceRequest.md +20 -0
  194. data/docs/GetInvoiceResponse.md +34 -0
  195. data/docs/GetStructureRequest.md +22 -0
  196. data/docs/GetStructureResponse.md +34 -0
  197. data/docs/GlobalAllowanceAmount.md +15 -0
  198. data/docs/GrossUnitPrice.md +15 -0
  199. data/docs/HTTPValidationError.md +18 -0
  200. data/docs/HealthApi.md +203 -0
  201. data/docs/IncomingInvoice.md +54 -0
  202. data/docs/IncomingSupplier.md +32 -0
  203. data/docs/InvoiceFormat.md +15 -0
  204. data/docs/InvoiceInput.md +50 -0
  205. data/docs/InvoiceLine.md +84 -0
  206. data/docs/InvoiceLineAllowanceAmount.md +15 -0
  207. data/docs/InvoiceNote.md +20 -0
  208. data/docs/InvoicePaymentInput.md +26 -0
  209. data/docs/InvoiceReferences.md +52 -0
  210. data/docs/InvoiceStatus.md +22 -0
  211. data/docs/InvoiceTotals.md +38 -0
  212. data/docs/InvoiceTotalsPrepayment.md +15 -0
  213. data/docs/InvoiceTypeCode.md +15 -0
  214. data/docs/InvoiceTypeCodeOutput.md +15 -0
  215. data/docs/InvoicingFramework.md +24 -0
  216. data/docs/InvoicingFrameworkCode.md +15 -0
  217. data/docs/IssuerRoleCode.md +15 -0
  218. data/docs/KeyRotationRequest.md +20 -0
  219. data/docs/KeyRotationResponse.md +24 -0
  220. data/docs/LineNetAmount.md +15 -0
  221. data/docs/LineSubType.md +15 -0
  222. data/docs/LineTotalAmount.md +15 -0
  223. data/docs/LocationInner.md +15 -0
  224. data/docs/MandatoryNoteSchema.md +30 -0
  225. data/docs/ManualRate.md +15 -0
  226. data/docs/ManualVatRate.md +15 -0
  227. data/docs/MissingField.md +28 -0
  228. data/docs/OperationNature.md +15 -0
  229. data/docs/OutputFormat.md +15 -0
  230. data/docs/PDFValidationResultAPI.md +62 -0
  231. data/docs/PDPConfigResponse.md +46 -0
  232. data/docs/PDPConfigUpdateRequest.md +30 -0
  233. data/docs/PDPCredentials.md +26 -0
  234. data/docs/PageDimensionsSchema.md +20 -0
  235. data/docs/Payee.md +32 -0
  236. data/docs/PaymentAmountByRate.md +20 -0
  237. data/docs/PaymentCard.md +20 -0
  238. data/docs/PaymentMeans.md +15 -0
  239. data/docs/Percentage.md +15 -0
  240. data/docs/PostalAddress.md +30 -0
  241. data/docs/PriceAllowanceAmount.md +15 -0
  242. data/docs/PriceBasisQuantity.md +15 -0
  243. data/docs/ProcessingOptions.md +24 -0
  244. data/docs/ProcessingRule.md +15 -0
  245. data/docs/ProductCharacteristic.md +20 -0
  246. data/docs/ProductClassification.md +22 -0
  247. data/docs/Quantity.md +15 -0
  248. data/docs/Rate.md +15 -0
  249. data/docs/Rate1.md +15 -0
  250. data/docs/ReasonCodeInfo.md +22 -0
  251. data/docs/ReasonCodesResponse.md +22 -0
  252. data/docs/Recipient.md +34 -0
  253. data/docs/RecipientInput.md +26 -0
  254. data/docs/RefuseeRequest.md +40 -0
  255. data/docs/ReportIssuer.md +24 -0
  256. data/docs/ReportPeriod.md +20 -0
  257. data/docs/ReportSender.md +22 -0
  258. data/docs/RoundingAmount.md +15 -0
  259. data/docs/SchematronValidationError.md +32 -0
  260. data/docs/SchemeID.md +15 -0
  261. data/docs/SearchFlowRequest.md +34 -0
  262. data/docs/SearchFlowResponse.md +24 -0
  263. data/docs/SearchServicesResponse.md +24 -0
  264. data/docs/SearchStructureRequest.md +26 -0
  265. data/docs/SearchStructureResponse.md +24 -0
  266. data/docs/SecretStatus.md +24 -0
  267. data/docs/Sellercountry.md +15 -0
  268. data/docs/SignatureInfo.md +22 -0
  269. data/docs/SignatureInfoAPI.md +28 -0
  270. data/docs/SignatureParameters.md +34 -0
  271. data/docs/SimplifiedCDARResponse.md +26 -0
  272. data/docs/SimplifiedInvoiceData.md +42 -0
  273. data/docs/StatusCodeInfo.md +22 -0
  274. data/docs/StatusCodesResponse.md +22 -0
  275. data/docs/StructureInfo.md +26 -0
  276. data/docs/StructureParameters.md +22 -0
  277. data/docs/StructureService.md +24 -0
  278. data/docs/SubmissionMode.md +15 -0
  279. data/docs/SubmitAggregatedReportRequest.md +28 -0
  280. data/docs/SubmitCDARRequest.md +62 -0
  281. data/docs/SubmitCDARResponse.md +24 -0
  282. data/docs/SubmitCDARXMLRequest.md +30 -0
  283. data/docs/SubmitCompleteInvoiceRequest.md +26 -0
  284. data/docs/SubmitCompleteInvoiceResponse.md +34 -0
  285. data/docs/SubmitEReportingRequest.md +28 -0
  286. data/docs/SubmitEReportingResponse.md +32 -0
  287. data/docs/SubmitFlowRequest.md +28 -0
  288. data/docs/SubmitFlowResponse.md +30 -0
  289. data/docs/SubmitGrossAmount.md +15 -0
  290. data/docs/SubmitInvoiceRequest.md +46 -0
  291. data/docs/SubmitInvoiceResponse.md +24 -0
  292. data/docs/SubmitNetAmount.md +15 -0
  293. data/docs/SubmitVatAmount.md +15 -0
  294. data/docs/SupplementaryAttachment.md +26 -0
  295. data/docs/Supplier.md +52 -0
  296. data/docs/TaskResponse.md +18 -0
  297. data/docs/TaxBreakdownInput.md +22 -0
  298. data/docs/TaxDueDateType.md +15 -0
  299. data/docs/TaxRepresentative.md +22 -0
  300. data/docs/TaxableAmount.md +15 -0
  301. data/docs/Taxableamount.md +15 -0
  302. data/docs/Taxamount.md +15 -0
  303. data/docs/Taxamount1.md +15 -0
  304. data/docs/Taxamount2.md +15 -0
  305. data/docs/Taxexclusiveamount.md +15 -0
  306. data/docs/Taxexclusiveamount1.md +15 -0
  307. data/docs/TotalGrossAmount.md +15 -0
  308. data/docs/TotalNetAmount.md +15 -0
  309. data/docs/TotalVATAmount.md +15 -0
  310. data/docs/TransactionCategory.md +15 -0
  311. data/docs/TransmissionTypeCode.md +15 -0
  312. data/docs/UnitNetPrice.md +15 -0
  313. data/docs/UnitOfMeasure.md +15 -0
  314. data/docs/VATAccountingCode.md +15 -0
  315. data/docs/VATAmount.md +15 -0
  316. data/docs/VATCategory.md +15 -0
  317. data/docs/VATLine.md +32 -0
  318. data/docs/VATPointDateCode.md +15 -0
  319. data/docs/ValidateCDARRequest.md +32 -0
  320. data/docs/ValidateCDARResponse.md +22 -0
  321. data/docs/ValidateEReportingRequest.md +18 -0
  322. data/docs/ValidateEReportingResponse.md +28 -0
  323. data/docs/ValidationError.md +22 -0
  324. data/docs/ValidationErrorDetail.md +26 -0
  325. data/docs/ValidationErrorResponse.md +24 -0
  326. data/docs/ValidationInfo.md +28 -0
  327. data/docs/ValidationSuccessResponse.md +18 -0
  328. data/docs/VatRate.md +15 -0
  329. data/docs/VerificationSuccessResponse.md +36 -0
  330. data/docs/VerifiedFieldSchema.md +34 -0
  331. data/docs/WebhookSecretDeleteResponse.md +20 -0
  332. data/docs/WebhookSecretGenerateResponse.md +24 -0
  333. data/docs/WebhookSecretStatusResponse.md +20 -0
  334. data/factpulse.gemspec +39 -0
  335. data/git_push.sh +57 -0
  336. data/lib/factpulse/api/afnorpdppa_api.rb +148 -0
  337. data/lib/factpulse/api/afnorpdppa_directory_service_api.rb +1183 -0
  338. data/lib/factpulse/api/afnorpdppa_flow_service_api.rb +289 -0
  339. data/lib/factpulse/api/async_tasks_api.rb +85 -0
  340. data/lib/factpulse/api/chorus_pro_api.rb +1105 -0
  341. data/lib/factpulse/api/client_management_api.rb +831 -0
  342. data/lib/factpulse/api/downloads_api.rb +151 -0
  343. data/lib/factpulse/api/electronic_signature_api.rb +339 -0
  344. data/lib/factpulse/api/factur_x_conversion_api.rb +306 -0
  345. data/lib/factpulse/api/factur_x_generation_api.rb +254 -0
  346. data/lib/factpulse/api/factur_x_validation_api.rb +256 -0
  347. data/lib/factpulse/api/factur_xpdfxml_verification_api.rb +232 -0
  348. data/lib/factpulse/api/flux10_e_reporting_api.rb +777 -0
  349. data/lib/factpulse/api/flux6_invoice_lifecycle_cdar_api.rb +670 -0
  350. data/lib/factpulse/api/health_api.rb +193 -0
  351. data/lib/factpulse/api_client.rb +397 -0
  352. data/lib/factpulse/api_error.rb +58 -0
  353. data/lib/factpulse/api_model_base.rb +88 -0
  354. data/lib/factpulse/configuration.rb +319 -0
  355. data/lib/factpulse/helpers/client.rb +272 -0
  356. data/lib/factpulse/helpers/exceptions.rb +45 -0
  357. data/lib/factpulse/helpers/helpers.rb +14 -0
  358. data/lib/factpulse/models/acknowledgment_status.rb +41 -0
  359. data/lib/factpulse/models/action_code_info.rb +220 -0
  360. data/lib/factpulse/models/action_codes_response.rb +207 -0
  361. data/lib/factpulse/models/additional_document.rb +206 -0
  362. data/lib/factpulse/models/afnor_acknowledgement.rb +216 -0
  363. data/lib/factpulse/models/afnor_acknowledgement_detail.rb +267 -0
  364. data/lib/factpulse/models/afnor_address_edit.rb +353 -0
  365. data/lib/factpulse/models/afnor_address_patch.rb +386 -0
  366. data/lib/factpulse/models/afnor_address_put.rb +435 -0
  367. data/lib/factpulse/models/afnor_address_read.rb +382 -0
  368. data/lib/factpulse/models/afnor_algorithm.rb +43 -0
  369. data/lib/factpulse/models/afnor_contains_operator.rb +39 -0
  370. data/lib/factpulse/models/afnor_create_directory_line_body.rb +156 -0
  371. data/lib/factpulse/models/afnor_create_directory_line_body_addressing_information.rb +294 -0
  372. data/lib/factpulse/models/afnor_create_directory_line_body_period.rb +175 -0
  373. data/lib/factpulse/models/afnor_create_routing_code_body.rb +412 -0
  374. data/lib/factpulse/models/afnor_credentials.rb +169 -0
  375. data/lib/factpulse/models/afnor_destination.rb +224 -0
  376. data/lib/factpulse/models/afnor_diffusion_status.rb +40 -0
  377. data/lib/factpulse/models/afnor_directory_line_field.rb +44 -0
  378. data/lib/factpulse/models/afnor_directory_line_payload_history_legal_unit_facility_routing_code.rb +312 -0
  379. data/lib/factpulse/models/afnor_directory_line_payload_history_legal_unit_facility_routing_code_platform.rb +178 -0
  380. data/lib/factpulse/models/afnor_directory_line_payload_history_legal_unit_facility_routing_code_routing_code.rb +308 -0
  381. data/lib/factpulse/models/afnor_directory_line_post201_response.rb +187 -0
  382. data/lib/factpulse/models/afnor_directory_line_search_post200_response.rb +168 -0
  383. data/lib/factpulse/models/afnor_entity_type.rb +40 -0
  384. data/lib/factpulse/models/afnor_error.rb +214 -0
  385. data/lib/factpulse/models/afnor_facility_administrative_status.rb +40 -0
  386. data/lib/factpulse/models/afnor_facility_nature.rb +40 -0
  387. data/lib/factpulse/models/afnor_facility_payload_history.rb +323 -0
  388. data/lib/factpulse/models/afnor_facility_payload_history_ule_b2g_additional_data.rb +198 -0
  389. data/lib/factpulse/models/afnor_facility_payload_included.rb +314 -0
  390. data/lib/factpulse/models/afnor_facility_type.rb +40 -0
  391. data/lib/factpulse/models/afnor_flow.rb +315 -0
  392. data/lib/factpulse/models/afnor_flow_ack_status.rb +41 -0
  393. data/lib/factpulse/models/afnor_flow_direction.rb +40 -0
  394. data/lib/factpulse/models/afnor_flow_info.rb +293 -0
  395. data/lib/factpulse/models/afnor_flow_profile.rb +41 -0
  396. data/lib/factpulse/models/afnor_flow_syntax.rb +43 -0
  397. data/lib/factpulse/models/afnor_flow_type.rb +51 -0
  398. data/lib/factpulse/models/afnor_full_flow_info.rb +339 -0
  399. data/lib/factpulse/models/afnor_health_check_response.rb +220 -0
  400. data/lib/factpulse/models/afnor_legal_unit_administrative_status.rb +40 -0
  401. data/lib/factpulse/models/afnor_legal_unit_payload_history.rb +247 -0
  402. data/lib/factpulse/models/afnor_legal_unit_payload_included.rb +247 -0
  403. data/lib/factpulse/models/afnor_legal_unit_payload_included_no_siren.rb +207 -0
  404. data/lib/factpulse/models/afnor_platform_status.rb +40 -0
  405. data/lib/factpulse/models/afnor_processing_rule.rb +44 -0
  406. data/lib/factpulse/models/afnor_reason_code.rb +105 -0
  407. data/lib/factpulse/models/afnor_reason_code_enum.rb +53 -0
  408. data/lib/factpulse/models/afnor_recipient_platform_type.rb +40 -0
  409. data/lib/factpulse/models/afnor_result.rb +270 -0
  410. data/lib/factpulse/models/afnor_routing_code_administrative_status.rb +40 -0
  411. data/lib/factpulse/models/afnor_routing_code_field.rb +46 -0
  412. data/lib/factpulse/models/afnor_routing_code_payload_history_legal_unit_facility.rb +366 -0
  413. data/lib/factpulse/models/afnor_routing_code_post201_response.rb +228 -0
  414. data/lib/factpulse/models/afnor_routing_code_search.rb +224 -0
  415. data/lib/factpulse/models/afnor_routing_code_search_filters.rb +201 -0
  416. data/lib/factpulse/models/afnor_routing_code_search_filters_administrative_status.rb +178 -0
  417. data/lib/factpulse/models/afnor_routing_code_search_filters_routing_code_name.rb +209 -0
  418. data/lib/factpulse/models/afnor_routing_code_search_filters_routing_identifier.rb +209 -0
  419. data/lib/factpulse/models/afnor_routing_code_search_post200_response.rb +168 -0
  420. data/lib/factpulse/models/afnor_routing_code_search_sorting_inner.rb +179 -0
  421. data/lib/factpulse/models/afnor_search_directory_line.rb +191 -0
  422. data/lib/factpulse/models/afnor_search_directory_line_filters.rb +183 -0
  423. data/lib/factpulse/models/afnor_search_directory_line_filters_addressing_identifier.rb +198 -0
  424. data/lib/factpulse/models/afnor_search_directory_line_filters_addressing_suffix.rb +198 -0
  425. data/lib/factpulse/models/afnor_search_directory_line_sorting_inner.rb +179 -0
  426. data/lib/factpulse/models/afnor_search_flow_content.rb +168 -0
  427. data/lib/factpulse/models/afnor_search_flow_filters.rb +250 -0
  428. data/lib/factpulse/models/afnor_search_flow_params.rb +195 -0
  429. data/lib/factpulse/models/afnor_search_siren.rb +191 -0
  430. data/lib/factpulse/models/afnor_search_siren_filters.rb +174 -0
  431. data/lib/factpulse/models/afnor_search_siren_filters_administrative_status.rb +178 -0
  432. data/lib/factpulse/models/afnor_search_siren_filters_business_name.rb +198 -0
  433. data/lib/factpulse/models/afnor_search_siren_filters_entity_type.rb +178 -0
  434. data/lib/factpulse/models/afnor_search_siren_filters_siren.rb +209 -0
  435. data/lib/factpulse/models/afnor_search_siren_sorting_inner.rb +179 -0
  436. data/lib/factpulse/models/afnor_search_siret.rb +224 -0
  437. data/lib/factpulse/models/afnor_search_siret_filters.rb +219 -0
  438. data/lib/factpulse/models/afnor_search_siret_filters_address_lines.rb +198 -0
  439. data/lib/factpulse/models/afnor_search_siret_filters_administrative_status.rb +178 -0
  440. data/lib/factpulse/models/afnor_search_siret_filters_country_subdivision.rb +198 -0
  441. data/lib/factpulse/models/afnor_search_siret_filters_facility_type.rb +178 -0
  442. data/lib/factpulse/models/afnor_search_siret_filters_locality.rb +198 -0
  443. data/lib/factpulse/models/afnor_search_siret_filters_name.rb +198 -0
  444. data/lib/factpulse/models/afnor_search_siret_filters_postal_code.rb +209 -0
  445. data/lib/factpulse/models/afnor_search_siret_filters_siret.rb +209 -0
  446. data/lib/factpulse/models/afnor_search_siret_sorting_inner.rb +179 -0
  447. data/lib/factpulse/models/afnor_siren_field.rb +43 -0
  448. data/lib/factpulse/models/afnor_siren_search_post200_response.rb +168 -0
  449. data/lib/factpulse/models/afnor_siret_field.rb +52 -0
  450. data/lib/factpulse/models/afnor_siret_search_post200_response.rb +168 -0
  451. data/lib/factpulse/models/afnor_sorting_order.rb +40 -0
  452. data/lib/factpulse/models/afnor_strict_operator.rb +39 -0
  453. data/lib/factpulse/models/afnor_update_patch_directory_line_body.rb +148 -0
  454. data/lib/factpulse/models/afnor_update_patch_routing_code_body.rb +258 -0
  455. data/lib/factpulse/models/afnor_update_put_routing_code_body.rb +289 -0
  456. data/lib/factpulse/models/afnor_webhook_callback_content.rb +148 -0
  457. data/lib/factpulse/models/aggregated_payment_input.rb +213 -0
  458. data/lib/factpulse/models/aggregated_transaction_input.rb +349 -0
  459. data/lib/factpulse/models/allowance_charge.rb +274 -0
  460. data/lib/factpulse/models/allowance_charge_reason_code.rb +76 -0
  461. data/lib/factpulse/models/allowance_reason_code.rb +45 -0
  462. data/lib/factpulse/models/allowance_total_amount.rb +104 -0
  463. data/lib/factpulse/models/amount.rb +104 -0
  464. data/lib/factpulse/models/amount1.rb +104 -0
  465. data/lib/factpulse/models/amount2.rb +104 -0
  466. data/lib/factpulse/models/amount_due.rb +104 -0
  467. data/lib/factpulse/models/api_error.rb +205 -0
  468. data/lib/factpulse/models/api_profile.rb +43 -0
  469. data/lib/factpulse/models/async_task_status.rb +227 -0
  470. data/lib/factpulse/models/base_amount.rb +104 -0
  471. data/lib/factpulse/models/bounding_box_schema.rb +332 -0
  472. data/lib/factpulse/models/buyercountry.rb +104 -0
  473. data/lib/factpulse/models/celery_status.rb +43 -0
  474. data/lib/factpulse/models/certificate_info_response.rb +446 -0
  475. data/lib/factpulse/models/charge_total_amount.rb +104 -0
  476. data/lib/factpulse/models/chorus_pro_credentials.rb +259 -0
  477. data/lib/factpulse/models/chorus_pro_destination.rb +194 -0
  478. data/lib/factpulse/models/chorus_pro_result.rb +186 -0
  479. data/lib/factpulse/models/client_activate_response.rb +220 -0
  480. data/lib/factpulse/models/client_create_request.rb +236 -0
  481. data/lib/factpulse/models/client_detail.rb +368 -0
  482. data/lib/factpulse/models/client_list_response.rb +249 -0
  483. data/lib/factpulse/models/client_summary.rb +368 -0
  484. data/lib/factpulse/models/client_update_request.rb +225 -0
  485. data/lib/factpulse/models/contact.rb +179 -0
  486. data/lib/factpulse/models/convert_resume_request.rb +151 -0
  487. data/lib/factpulse/models/convert_success_response.rb +360 -0
  488. data/lib/factpulse/models/convert_validation_failed_response.rb +339 -0
  489. data/lib/factpulse/models/country_code.rb +208 -0
  490. data/lib/factpulse/models/create_aggregated_report_request.rb +320 -0
  491. data/lib/factpulse/models/create_cdar_request.rb +414 -0
  492. data/lib/factpulse/models/create_e_reporting_request.rb +347 -0
  493. data/lib/factpulse/models/currency.rb +104 -0
  494. data/lib/factpulse/models/currency_code.rb +91 -0
  495. data/lib/factpulse/models/delivery_party.rb +179 -0
  496. data/lib/factpulse/models/destination.rb +56 -0
  497. data/lib/factpulse/models/doc_type.rb +42 -0
  498. data/lib/factpulse/models/document_type_info.rb +220 -0
  499. data/lib/factpulse/models/e_reporting_flow_type.rb +42 -0
  500. data/lib/factpulse/models/e_reporting_validation_error.rb +203 -0
  501. data/lib/factpulse/models/electronic_address.rb +198 -0
  502. data/lib/factpulse/models/encaisseamount.rb +104 -0
  503. data/lib/factpulse/models/encaisseamount1.rb +103 -0
  504. data/lib/factpulse/models/encaissee_request.rb +347 -0
  505. data/lib/factpulse/models/enriched_invoice_info.rb +354 -0
  506. data/lib/factpulse/models/error_level.rb +40 -0
  507. data/lib/factpulse/models/error_source.rb +47 -0
  508. data/lib/factpulse/models/extraction_info.rb +217 -0
  509. data/lib/factpulse/models/factur_x_invoice.rb +580 -0
  510. data/lib/factpulse/models/factur_xpdf_info.rb +205 -0
  511. data/lib/factpulse/models/facture_electronique_rest_api_schemas_ereporting_invoice_type_code.rb +43 -0
  512. data/lib/factpulse/models/facture_electronique_rest_api_schemas_processing_chorus_pro_credentials.rb +191 -0
  513. data/lib/factpulse/models/facture_electronique_rest_api_schemas_validation_validation_error_response.rb +168 -0
  514. data/lib/factpulse/models/field_status.rb +43 -0
  515. data/lib/factpulse/models/file_info.rb +161 -0
  516. data/lib/factpulse/models/files_info.rb +159 -0
  517. data/lib/factpulse/models/flow_direction.rb +40 -0
  518. data/lib/factpulse/models/flow_profile.rb +41 -0
  519. data/lib/factpulse/models/flow_summary.rb +253 -0
  520. data/lib/factpulse/models/flow_syntax.rb +43 -0
  521. data/lib/factpulse/models/flow_type.rb +51 -0
  522. data/lib/factpulse/models/generate_aggregated_report_response.rb +330 -0
  523. data/lib/factpulse/models/generate_cdar_response.rb +273 -0
  524. data/lib/factpulse/models/generate_certificate_request.rb +323 -0
  525. data/lib/factpulse/models/generate_certificate_response.rb +254 -0
  526. data/lib/factpulse/models/generate_e_reporting_response.rb +274 -0
  527. data/lib/factpulse/models/get_chorus_pro_id_request.rb +188 -0
  528. data/lib/factpulse/models/get_chorus_pro_id_response.rb +230 -0
  529. data/lib/factpulse/models/get_invoice_request.rb +176 -0
  530. data/lib/factpulse/models/get_invoice_response.rb +263 -0
  531. data/lib/factpulse/models/get_structure_request.rb +188 -0
  532. data/lib/factpulse/models/get_structure_response.rb +263 -0
  533. data/lib/factpulse/models/global_allowance_amount.rb +104 -0
  534. data/lib/factpulse/models/gross_unit_price.rb +104 -0
  535. data/lib/factpulse/models/http_validation_error.rb +149 -0
  536. data/lib/factpulse/models/incoming_invoice.rb +489 -0
  537. data/lib/factpulse/models/incoming_supplier.rb +236 -0
  538. data/lib/factpulse/models/invoice_format.rb +41 -0
  539. data/lib/factpulse/models/invoice_input.rb +439 -0
  540. data/lib/factpulse/models/invoice_line.rb +593 -0
  541. data/lib/factpulse/models/invoice_line_allowance_amount.rb +104 -0
  542. data/lib/factpulse/models/invoice_note.rb +176 -0
  543. data/lib/factpulse/models/invoice_payment_input.rb +267 -0
  544. data/lib/factpulse/models/invoice_references.rb +393 -0
  545. data/lib/factpulse/models/invoice_status.rb +203 -0
  546. data/lib/factpulse/models/invoice_totals.rb +312 -0
  547. data/lib/factpulse/models/invoice_totals_prepayment.rb +104 -0
  548. data/lib/factpulse/models/invoice_type_code.rb +54 -0
  549. data/lib/factpulse/models/invoice_type_code_output.rb +54 -0
  550. data/lib/factpulse/models/invoicing_framework.rb +218 -0
  551. data/lib/factpulse/models/invoicing_framework_code.rb +42 -0
  552. data/lib/factpulse/models/issuer_role_code.rb +40 -0
  553. data/lib/factpulse/models/key_rotation_request.rb +211 -0
  554. data/lib/factpulse/models/key_rotation_response.rb +232 -0
  555. data/lib/factpulse/models/line_net_amount.rb +104 -0
  556. data/lib/factpulse/models/line_sub_type.rb +41 -0
  557. data/lib/factpulse/models/line_total_amount.rb +104 -0
  558. data/lib/factpulse/models/location_inner.rb +103 -0
  559. data/lib/factpulse/models/mandatory_note_schema.rb +265 -0
  560. data/lib/factpulse/models/manual_rate.rb +104 -0
  561. data/lib/factpulse/models/manual_vat_rate.rb +104 -0
  562. data/lib/factpulse/models/missing_field.rb +269 -0
  563. data/lib/factpulse/models/operation_nature.rb +52 -0
  564. data/lib/factpulse/models/output_format.rb +40 -0
  565. data/lib/factpulse/models/page_dimensions_schema.rb +193 -0
  566. data/lib/factpulse/models/payee.rb +281 -0
  567. data/lib/factpulse/models/payment_amount_by_rate.rb +191 -0
  568. data/lib/factpulse/models/payment_card.rb +159 -0
  569. data/lib/factpulse/models/payment_means.rb +44 -0
  570. data/lib/factpulse/models/pdf_validation_result_api.rb +523 -0
  571. data/lib/factpulse/models/pdp_config_response.rb +306 -0
  572. data/lib/factpulse/models/pdp_config_update_request.rb +315 -0
  573. data/lib/factpulse/models/pdp_credentials.rb +257 -0
  574. data/lib/factpulse/models/percentage.rb +104 -0
  575. data/lib/factpulse/models/postal_address.rb +209 -0
  576. data/lib/factpulse/models/price_allowance_amount.rb +104 -0
  577. data/lib/factpulse/models/price_basis_quantity.rb +104 -0
  578. data/lib/factpulse/models/processing_options.rb +207 -0
  579. data/lib/factpulse/models/processing_rule.rb +44 -0
  580. data/lib/factpulse/models/product_characteristic.rb +193 -0
  581. data/lib/factpulse/models/product_classification.rb +186 -0
  582. data/lib/factpulse/models/quantity.rb +104 -0
  583. data/lib/factpulse/models/rate.rb +104 -0
  584. data/lib/factpulse/models/rate1.rb +104 -0
  585. data/lib/factpulse/models/reason_code_info.rb +220 -0
  586. data/lib/factpulse/models/reason_codes_response.rb +207 -0
  587. data/lib/factpulse/models/recipient.rb +231 -0
  588. data/lib/factpulse/models/recipient_input.rb +191 -0
  589. data/lib/factpulse/models/refusee_request.rb +346 -0
  590. data/lib/factpulse/models/report_issuer.rb +236 -0
  591. data/lib/factpulse/models/report_period.rb +193 -0
  592. data/lib/factpulse/models/report_sender.rb +221 -0
  593. data/lib/factpulse/models/rounding_amount.rb +104 -0
  594. data/lib/factpulse/models/schematron_validation_error.rb +294 -0
  595. data/lib/factpulse/models/scheme_id.rb +56 -0
  596. data/lib/factpulse/models/search_flow_request.rb +306 -0
  597. data/lib/factpulse/models/search_flow_response.rb +249 -0
  598. data/lib/factpulse/models/search_services_response.rb +217 -0
  599. data/lib/factpulse/models/search_structure_request.rb +191 -0
  600. data/lib/factpulse/models/search_structure_response.rb +216 -0
  601. data/lib/factpulse/models/secret_status.rb +213 -0
  602. data/lib/factpulse/models/sellercountry.rb +104 -0
  603. data/lib/factpulse/models/signature_info.rb +186 -0
  604. data/lib/factpulse/models/signature_info_api.rb +216 -0
  605. data/lib/factpulse/models/signature_parameters.rb +235 -0
  606. data/lib/factpulse/models/simplified_cdar_response.rb +274 -0
  607. data/lib/factpulse/models/simplified_invoice_data.rb +404 -0
  608. data/lib/factpulse/models/status_code_info.rb +220 -0
  609. data/lib/factpulse/models/status_codes_response.rb +207 -0
  610. data/lib/factpulse/models/structure_info.rb +274 -0
  611. data/lib/factpulse/models/structure_parameters.rb +175 -0
  612. data/lib/factpulse/models/structure_service.rb +247 -0
  613. data/lib/factpulse/models/submission_mode.rb +41 -0
  614. data/lib/factpulse/models/submit_aggregated_report_request.rb +216 -0
  615. data/lib/factpulse/models/submit_cdar_request.rb +466 -0
  616. data/lib/factpulse/models/submit_cdar_response.rb +213 -0
  617. data/lib/factpulse/models/submit_cdarxml_request.rb +228 -0
  618. data/lib/factpulse/models/submit_complete_invoice_request.rb +239 -0
  619. data/lib/factpulse/models/submit_complete_invoice_response.rb +355 -0
  620. data/lib/factpulse/models/submit_e_reporting_request.rb +216 -0
  621. data/lib/factpulse/models/submit_e_reporting_response.rb +306 -0
  622. data/lib/factpulse/models/submit_flow_request.rb +238 -0
  623. data/lib/factpulse/models/submit_flow_response.rb +294 -0
  624. data/lib/factpulse/models/submit_gross_amount.rb +104 -0
  625. data/lib/factpulse/models/submit_invoice_request.rb +388 -0
  626. data/lib/factpulse/models/submit_invoice_response.rb +213 -0
  627. data/lib/factpulse/models/submit_net_amount.rb +104 -0
  628. data/lib/factpulse/models/submit_vat_amount.rb +104 -0
  629. data/lib/factpulse/models/supplementary_attachment.rb +274 -0
  630. data/lib/factpulse/models/supplier.rb +337 -0
  631. data/lib/factpulse/models/task_response.rb +166 -0
  632. data/lib/factpulse/models/tax_breakdown_input.rb +217 -0
  633. data/lib/factpulse/models/tax_due_date_type.rb +44 -0
  634. data/lib/factpulse/models/tax_representative.rb +220 -0
  635. data/lib/factpulse/models/taxable_amount.rb +104 -0
  636. data/lib/factpulse/models/taxableamount.rb +104 -0
  637. data/lib/factpulse/models/taxamount.rb +104 -0
  638. data/lib/factpulse/models/taxamount1.rb +104 -0
  639. data/lib/factpulse/models/taxamount2.rb +104 -0
  640. data/lib/factpulse/models/taxexclusiveamount.rb +104 -0
  641. data/lib/factpulse/models/taxexclusiveamount1.rb +104 -0
  642. data/lib/factpulse/models/total_gross_amount.rb +104 -0
  643. data/lib/factpulse/models/total_net_amount.rb +104 -0
  644. data/lib/factpulse/models/total_vat_amount.rb +104 -0
  645. data/lib/factpulse/models/transaction_category.rb +42 -0
  646. data/lib/factpulse/models/transmission_type_code.rb +40 -0
  647. data/lib/factpulse/models/unit_net_price.rb +104 -0
  648. data/lib/factpulse/models/unit_of_measure.rb +44 -0
  649. data/lib/factpulse/models/validate_cdar_request.rb +219 -0
  650. data/lib/factpulse/models/validate_cdar_response.rb +190 -0
  651. data/lib/factpulse/models/validate_e_reporting_request.rb +166 -0
  652. data/lib/factpulse/models/validate_e_reporting_response.rb +271 -0
  653. data/lib/factpulse/models/validation_error.rb +218 -0
  654. data/lib/factpulse/models/validation_error_detail.rb +245 -0
  655. data/lib/factpulse/models/validation_error_response.rb +215 -0
  656. data/lib/factpulse/models/validation_info.rb +255 -0
  657. data/lib/factpulse/models/validation_success_response.rb +166 -0
  658. data/lib/factpulse/models/vat_accounting_code.rb +42 -0
  659. data/lib/factpulse/models/vat_amount.rb +104 -0
  660. data/lib/factpulse/models/vat_category.rb +47 -0
  661. data/lib/factpulse/models/vat_line.rb +272 -0
  662. data/lib/factpulse/models/vat_point_date_code.rb +41 -0
  663. data/lib/factpulse/models/vat_rate.rb +104 -0
  664. data/lib/factpulse/models/verification_success_response.rb +343 -0
  665. data/lib/factpulse/models/verified_field_schema.rb +334 -0
  666. data/lib/factpulse/models/webhook_secret_delete_response.rb +193 -0
  667. data/lib/factpulse/models/webhook_secret_generate_response.rb +247 -0
  668. data/lib/factpulse/models/webhook_secret_status_response.rb +176 -0
  669. data/lib/factpulse/version.rb +15 -0
  670. data/lib/factpulse.rb +369 -0
  671. metadata +806 -0
@@ -0,0 +1,831 @@
1
+ =begin
2
+ #FactPulse REST API
3
+
4
+ # REST API for electronic invoicing in France: Factur-X, AFNOR PDP/PA, electronic signatures. ## 🎯 Main Features ### 📄 Factur-X - Generation - **Formats**: XML only or PDF/A-3 with embedded XML - **Profiles**: MINIMUM, BASIC, EN16931, EXTENDED - **Standards**: EN 16931 (EU directive 2014/55), ISO 19005-3 (PDF/A-3), CII (UN/CEFACT) - **🆕 Simplified Format**: Generation from SIRET + auto-enrichment (Chorus Pro API + Business Search) ### ✅ Factur-X - Validation - **XML Validation**: Schematron (45 to 210+ rules depending on profile) - **PDF Validation**: PDF/A-3, Factur-X XMP metadata - **VeraPDF**: Strict PDF/A validation (146+ ISO 19005-3 rules) ### ✍️ Electronic Signature - **Standards**: PAdES-B-B, PAdES-B-T (RFC 3161 timestamping), PAdES-B-LT (long-term archival) - **eIDAS Levels**: SES (self-signed), AdES (commercial CA), QES (QTSP) - **Validation**: Cryptographic integrity and certificate verification ### 📋 Flux 6 - Invoice Lifecycle (CDAR) - **CDAR Messages**: Acknowledgements, invoice statuses - **PPF Statuses**: REFUSED (210), PAID (212) ### 📊 Flux 10 - E-Reporting - **Tax Declarations**: International B2B, B2C - **Flow Types**: 10.1 (B2B transactions), 10.2 (B2B payments), 10.3 (B2C transactions), 10.4 (B2C payments) ### 📡 AFNOR PDP/PA (XP Z12-013) - **Flow Service**: Submit and search flows to PDPs - **Directory Service**: Company search (SIREN/SIRET) - **Multi-client**: Support for multiple PDP configs per user ### 🏛️ Chorus Pro - **Public Sector Invoicing**: Complete API for Chorus Pro ### ⏳ Async Tasks - **Celery**: Asynchronous generation, validation and signing - **Polling**: Status tracking via `/tasks/{task_id}/status` - **Webhooks**: Automatic notifications when tasks complete ## 🔒 Authentication All requests require a **JWT token** in the Authorization header: ``` Authorization: Bearer YOUR_JWT_TOKEN ``` ### How to obtain a JWT token? #### 🔑 Method 1: `/api/token/` API (Recommended) **URL:** `https://factpulse.fr/api/token/` This method is **recommended** for integration in your applications and CI/CD workflows. **Prerequisites:** Having set a password on your account **For users registered via email/password:** - You already have a password, use it directly **For users registered via OAuth (Google/GitHub):** - You must first set a password at: https://factpulse.fr/accounts/password/set/ - Once the password is created, you can use the API **Request example:** ```bash curl -X POST https://factpulse.fr/api/token/ \\ -H \"Content-Type: application/json\" \\ -d '{ \"username\": \"your_email@example.com\", \"password\": \"your_password\" }' ``` **Optional `client_uid` parameter:** To select credentials for a specific client (PA/PDP, Chorus Pro, signing certificates), add `client_uid`: ```bash curl -X POST https://factpulse.fr/api/token/ \\ -H \"Content-Type: application/json\" \\ -d '{ \"username\": \"your_email@example.com\", \"password\": \"your_password\", \"client_uid\": \"550e8400-e29b-41d4-a716-446655440000\" }' ``` The `client_uid` will be included in the JWT and allow the API to automatically use: - AFNOR/PDP credentials configured for this client - Chorus Pro credentials configured for this client - Electronic signature certificates configured for this client **Response:** ```json { \"access\": \"eyJ0eXAiOiJKV1QiLCJhbGc...\", // Access token (validity: 30 min) \"refresh\": \"eyJ0eXAiOiJKV1QiLCJhbGc...\" // Refresh token (validity: 7 days) } ``` **Advantages:** - ✅ Full automation (CI/CD, scripts) - ✅ Programmatic token management - ✅ Refresh token support for automatic access renewal - ✅ Easy integration in any language/tool #### 🖥️ Method 2: Dashboard Generation (Alternative) **URL:** https://factpulse.fr/api/dashboard/ This method is suitable for quick tests or occasional use via the graphical interface. **How it works:** - Log in to the dashboard - Use the \"Generate Test Token\" or \"Generate Production Token\" buttons - Works for **all** users (OAuth and email/password), without requiring a password **Token types:** - **Test Token**: 24h validity, 1000 calls/day quota (free) - **Production Token**: 7 days validity, quota based on your plan **Advantages:** - ✅ Quick for API testing - ✅ No password required - ✅ Simple visual interface **Disadvantages:** - ❌ Requires manual action - ❌ No refresh token - ❌ Less suited for automation ### 📚 Full Documentation For more information on authentication and API usage: https://factpulse.fr/documentation-api/
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+ Contact: contact@factpulse.fr
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.20.0-SNAPSHOT
10
+
11
+ =end
12
+
13
+ require 'cgi'
14
+
15
+ module FactPulse
16
+ class ClientManagementApi
17
+ attr_accessor :api_client
18
+
19
+ def initialize(api_client = ApiClient.default)
20
+ @api_client = api_client
21
+ end
22
+ # Activate a client
23
+ # Activate a deactivated client. **Scope**: Client level (JWT with client_uid that must match {uid})
24
+ # @param uid [String]
25
+ # @param [Hash] opts the optional parameters
26
+ # @return [ClientActivateResponse]
27
+ def activate_client_api_v1_clients_uid_activer_post(uid, opts = {})
28
+ data, _status_code, _headers = activate_client_api_v1_clients_uid_activer_post_with_http_info(uid, opts)
29
+ data
30
+ end
31
+
32
+ # Activate a client
33
+ # Activate a deactivated client. **Scope**: Client level (JWT with client_uid that must match {uid})
34
+ # @param uid [String]
35
+ # @param [Hash] opts the optional parameters
36
+ # @return [Array<(ClientActivateResponse, Integer, Hash)>] ClientActivateResponse data, response status code and response headers
37
+ def activate_client_api_v1_clients_uid_activer_post_with_http_info(uid, opts = {})
38
+ if @api_client.config.debugging
39
+ @api_client.config.logger.debug 'Calling API: ClientManagementApi.activate_client_api_v1_clients_uid_activer_post ...'
40
+ end
41
+ # verify the required parameter 'uid' is set
42
+ if @api_client.config.client_side_validation && uid.nil?
43
+ fail ArgumentError, "Missing the required parameter 'uid' when calling ClientManagementApi.activate_client_api_v1_clients_uid_activer_post"
44
+ end
45
+ # resource path
46
+ local_var_path = '/api/v1/clients/{uid}/activer'.sub('{' + 'uid' + '}', CGI.escape(uid.to_s))
47
+
48
+ # query parameters
49
+ query_params = opts[:query_params] || {}
50
+
51
+ # header parameters
52
+ header_params = opts[:header_params] || {}
53
+ # HTTP header 'Accept' (if needed)
54
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
55
+
56
+ # form parameters
57
+ form_params = opts[:form_params] || {}
58
+
59
+ # http body (model)
60
+ post_body = opts[:debug_body]
61
+
62
+ # return_type
63
+ return_type = opts[:debug_return_type] || 'ClientActivateResponse'
64
+
65
+ # auth_names
66
+ auth_names = opts[:debug_auth_names] || ['APIKeyHeader', 'HTTPBearer']
67
+
68
+ new_options = opts.merge(
69
+ :operation => :"ClientManagementApi.activate_client_api_v1_clients_uid_activer_post",
70
+ :header_params => header_params,
71
+ :query_params => query_params,
72
+ :form_params => form_params,
73
+ :body => post_body,
74
+ :auth_names => auth_names,
75
+ :return_type => return_type
76
+ )
77
+
78
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
79
+ if @api_client.config.debugging
80
+ @api_client.config.logger.debug "API called: ClientManagementApi#activate_client_api_v1_clients_uid_activer_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
81
+ end
82
+ return data, status_code, headers
83
+ end
84
+
85
+ # Create a client
86
+ # Create a new client for the account. **Scope**: Account level (JWT without client_uid) **Fields**: - `name`: Client name (required) - `description`: Optional description - `siret`: Optional SIRET (14 digits)
87
+ # @param client_create_request [ClientCreateRequest]
88
+ # @param [Hash] opts the optional parameters
89
+ # @return [ClientDetail]
90
+ def create_client_api_v1_clients_post(client_create_request, opts = {})
91
+ data, _status_code, _headers = create_client_api_v1_clients_post_with_http_info(client_create_request, opts)
92
+ data
93
+ end
94
+
95
+ # Create a client
96
+ # Create a new client for the account. **Scope**: Account level (JWT without client_uid) **Fields**: - &#x60;name&#x60;: Client name (required) - &#x60;description&#x60;: Optional description - &#x60;siret&#x60;: Optional SIRET (14 digits)
97
+ # @param client_create_request [ClientCreateRequest]
98
+ # @param [Hash] opts the optional parameters
99
+ # @return [Array<(ClientDetail, Integer, Hash)>] ClientDetail data, response status code and response headers
100
+ def create_client_api_v1_clients_post_with_http_info(client_create_request, opts = {})
101
+ if @api_client.config.debugging
102
+ @api_client.config.logger.debug 'Calling API: ClientManagementApi.create_client_api_v1_clients_post ...'
103
+ end
104
+ # verify the required parameter 'client_create_request' is set
105
+ if @api_client.config.client_side_validation && client_create_request.nil?
106
+ fail ArgumentError, "Missing the required parameter 'client_create_request' when calling ClientManagementApi.create_client_api_v1_clients_post"
107
+ end
108
+ # resource path
109
+ local_var_path = '/api/v1/clients'
110
+
111
+ # query parameters
112
+ query_params = opts[:query_params] || {}
113
+
114
+ # header parameters
115
+ header_params = opts[:header_params] || {}
116
+ # HTTP header 'Accept' (if needed)
117
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
118
+ # HTTP header 'Content-Type'
119
+ content_type = @api_client.select_header_content_type(['application/json'])
120
+ if !content_type.nil?
121
+ header_params['Content-Type'] = content_type
122
+ end
123
+
124
+ # form parameters
125
+ form_params = opts[:form_params] || {}
126
+
127
+ # http body (model)
128
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(client_create_request)
129
+
130
+ # return_type
131
+ return_type = opts[:debug_return_type] || 'ClientDetail'
132
+
133
+ # auth_names
134
+ auth_names = opts[:debug_auth_names] || ['APIKeyHeader', 'HTTPBearer']
135
+
136
+ new_options = opts.merge(
137
+ :operation => :"ClientManagementApi.create_client_api_v1_clients_post",
138
+ :header_params => header_params,
139
+ :query_params => query_params,
140
+ :form_params => form_params,
141
+ :body => post_body,
142
+ :auth_names => auth_names,
143
+ :return_type => return_type
144
+ )
145
+
146
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
147
+ if @api_client.config.debugging
148
+ @api_client.config.logger.debug "API called: ClientManagementApi#create_client_api_v1_clients_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
149
+ end
150
+ return data, status_code, headers
151
+ end
152
+
153
+ # Deactivate a client
154
+ # Deactivate an active client. **Scope**: Client level (JWT with client_uid that must match {uid}) **Note**: A deactivated client cannot be used for API calls (AFNOR, Chorus Pro, etc.).
155
+ # @param uid [String]
156
+ # @param [Hash] opts the optional parameters
157
+ # @return [ClientActivateResponse]
158
+ def deactivate_client_api_v1_clients_uid_desactiver_post(uid, opts = {})
159
+ data, _status_code, _headers = deactivate_client_api_v1_clients_uid_desactiver_post_with_http_info(uid, opts)
160
+ data
161
+ end
162
+
163
+ # Deactivate a client
164
+ # Deactivate an active client. **Scope**: Client level (JWT with client_uid that must match {uid}) **Note**: A deactivated client cannot be used for API calls (AFNOR, Chorus Pro, etc.).
165
+ # @param uid [String]
166
+ # @param [Hash] opts the optional parameters
167
+ # @return [Array<(ClientActivateResponse, Integer, Hash)>] ClientActivateResponse data, response status code and response headers
168
+ def deactivate_client_api_v1_clients_uid_desactiver_post_with_http_info(uid, opts = {})
169
+ if @api_client.config.debugging
170
+ @api_client.config.logger.debug 'Calling API: ClientManagementApi.deactivate_client_api_v1_clients_uid_desactiver_post ...'
171
+ end
172
+ # verify the required parameter 'uid' is set
173
+ if @api_client.config.client_side_validation && uid.nil?
174
+ fail ArgumentError, "Missing the required parameter 'uid' when calling ClientManagementApi.deactivate_client_api_v1_clients_uid_desactiver_post"
175
+ end
176
+ # resource path
177
+ local_var_path = '/api/v1/clients/{uid}/desactiver'.sub('{' + 'uid' + '}', CGI.escape(uid.to_s))
178
+
179
+ # query parameters
180
+ query_params = opts[:query_params] || {}
181
+
182
+ # header parameters
183
+ header_params = opts[:header_params] || {}
184
+ # HTTP header 'Accept' (if needed)
185
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
186
+
187
+ # form parameters
188
+ form_params = opts[:form_params] || {}
189
+
190
+ # http body (model)
191
+ post_body = opts[:debug_body]
192
+
193
+ # return_type
194
+ return_type = opts[:debug_return_type] || 'ClientActivateResponse'
195
+
196
+ # auth_names
197
+ auth_names = opts[:debug_auth_names] || ['APIKeyHeader', 'HTTPBearer']
198
+
199
+ new_options = opts.merge(
200
+ :operation => :"ClientManagementApi.deactivate_client_api_v1_clients_uid_desactiver_post",
201
+ :header_params => header_params,
202
+ :query_params => query_params,
203
+ :form_params => form_params,
204
+ :body => post_body,
205
+ :auth_names => auth_names,
206
+ :return_type => return_type
207
+ )
208
+
209
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
210
+ if @api_client.config.debugging
211
+ @api_client.config.logger.debug "API called: ClientManagementApi#deactivate_client_api_v1_clients_uid_desactiver_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
212
+ end
213
+ return data, status_code, headers
214
+ end
215
+
216
+ # Delete webhook secret
217
+ # Delete the webhook secret for a client. **Scope**: Client level (JWT with client_uid that must match {uid}) **After deletion**: Webhooks for this client will use the global server key for HMAC signature instead of a client-specific key.
218
+ # @param uid [String]
219
+ # @param [Hash] opts the optional parameters
220
+ # @return [WebhookSecretDeleteResponse]
221
+ def delete_webhook_secret_api_v1_clients_uid_webhook_secret_delete(uid, opts = {})
222
+ data, _status_code, _headers = delete_webhook_secret_api_v1_clients_uid_webhook_secret_delete_with_http_info(uid, opts)
223
+ data
224
+ end
225
+
226
+ # Delete webhook secret
227
+ # Delete the webhook secret for a client. **Scope**: Client level (JWT with client_uid that must match {uid}) **After deletion**: Webhooks for this client will use the global server key for HMAC signature instead of a client-specific key.
228
+ # @param uid [String]
229
+ # @param [Hash] opts the optional parameters
230
+ # @return [Array<(WebhookSecretDeleteResponse, Integer, Hash)>] WebhookSecretDeleteResponse data, response status code and response headers
231
+ def delete_webhook_secret_api_v1_clients_uid_webhook_secret_delete_with_http_info(uid, opts = {})
232
+ if @api_client.config.debugging
233
+ @api_client.config.logger.debug 'Calling API: ClientManagementApi.delete_webhook_secret_api_v1_clients_uid_webhook_secret_delete ...'
234
+ end
235
+ # verify the required parameter 'uid' is set
236
+ if @api_client.config.client_side_validation && uid.nil?
237
+ fail ArgumentError, "Missing the required parameter 'uid' when calling ClientManagementApi.delete_webhook_secret_api_v1_clients_uid_webhook_secret_delete"
238
+ end
239
+ # resource path
240
+ local_var_path = '/api/v1/clients/{uid}/webhook-secret'.sub('{' + 'uid' + '}', CGI.escape(uid.to_s))
241
+
242
+ # query parameters
243
+ query_params = opts[:query_params] || {}
244
+
245
+ # header parameters
246
+ header_params = opts[:header_params] || {}
247
+ # HTTP header 'Accept' (if needed)
248
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
249
+
250
+ # form parameters
251
+ form_params = opts[:form_params] || {}
252
+
253
+ # http body (model)
254
+ post_body = opts[:debug_body]
255
+
256
+ # return_type
257
+ return_type = opts[:debug_return_type] || 'WebhookSecretDeleteResponse'
258
+
259
+ # auth_names
260
+ auth_names = opts[:debug_auth_names] || ['APIKeyHeader', 'HTTPBearer']
261
+
262
+ new_options = opts.merge(
263
+ :operation => :"ClientManagementApi.delete_webhook_secret_api_v1_clients_uid_webhook_secret_delete",
264
+ :header_params => header_params,
265
+ :query_params => query_params,
266
+ :form_params => form_params,
267
+ :body => post_body,
268
+ :auth_names => auth_names,
269
+ :return_type => return_type
270
+ )
271
+
272
+ data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, new_options)
273
+ if @api_client.config.debugging
274
+ @api_client.config.logger.debug "API called: ClientManagementApi#delete_webhook_secret_api_v1_clients_uid_webhook_secret_delete\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
275
+ end
276
+ return data, status_code, headers
277
+ end
278
+
279
+ # Generate webhook secret
280
+ # Generate or regenerate the webhook secret for a client. **Scope**: Client level (JWT with client_uid that must match {uid}) **Important**: Save the returned secret immediately - it will never be shown again. The secret is used to sign webhooks sent by the server (HMAC-SHA256). **If a secret already exists**: It will be replaced by the new one.
281
+ # @param uid [String]
282
+ # @param [Hash] opts the optional parameters
283
+ # @return [WebhookSecretGenerateResponse]
284
+ def generate_webhook_secret_api_v1_clients_uid_webhook_secret_generate_post(uid, opts = {})
285
+ data, _status_code, _headers = generate_webhook_secret_api_v1_clients_uid_webhook_secret_generate_post_with_http_info(uid, opts)
286
+ data
287
+ end
288
+
289
+ # Generate webhook secret
290
+ # Generate or regenerate the webhook secret for a client. **Scope**: Client level (JWT with client_uid that must match {uid}) **Important**: Save the returned secret immediately - it will never be shown again. The secret is used to sign webhooks sent by the server (HMAC-SHA256). **If a secret already exists**: It will be replaced by the new one.
291
+ # @param uid [String]
292
+ # @param [Hash] opts the optional parameters
293
+ # @return [Array<(WebhookSecretGenerateResponse, Integer, Hash)>] WebhookSecretGenerateResponse data, response status code and response headers
294
+ def generate_webhook_secret_api_v1_clients_uid_webhook_secret_generate_post_with_http_info(uid, opts = {})
295
+ if @api_client.config.debugging
296
+ @api_client.config.logger.debug 'Calling API: ClientManagementApi.generate_webhook_secret_api_v1_clients_uid_webhook_secret_generate_post ...'
297
+ end
298
+ # verify the required parameter 'uid' is set
299
+ if @api_client.config.client_side_validation && uid.nil?
300
+ fail ArgumentError, "Missing the required parameter 'uid' when calling ClientManagementApi.generate_webhook_secret_api_v1_clients_uid_webhook_secret_generate_post"
301
+ end
302
+ # resource path
303
+ local_var_path = '/api/v1/clients/{uid}/webhook-secret/generate'.sub('{' + 'uid' + '}', CGI.escape(uid.to_s))
304
+
305
+ # query parameters
306
+ query_params = opts[:query_params] || {}
307
+
308
+ # header parameters
309
+ header_params = opts[:header_params] || {}
310
+ # HTTP header 'Accept' (if needed)
311
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
312
+
313
+ # form parameters
314
+ form_params = opts[:form_params] || {}
315
+
316
+ # http body (model)
317
+ post_body = opts[:debug_body]
318
+
319
+ # return_type
320
+ return_type = opts[:debug_return_type] || 'WebhookSecretGenerateResponse'
321
+
322
+ # auth_names
323
+ auth_names = opts[:debug_auth_names] || ['APIKeyHeader', 'HTTPBearer']
324
+
325
+ new_options = opts.merge(
326
+ :operation => :"ClientManagementApi.generate_webhook_secret_api_v1_clients_uid_webhook_secret_generate_post",
327
+ :header_params => header_params,
328
+ :query_params => query_params,
329
+ :form_params => form_params,
330
+ :body => post_body,
331
+ :auth_names => auth_names,
332
+ :return_type => return_type
333
+ )
334
+
335
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
336
+ if @api_client.config.debugging
337
+ @api_client.config.logger.debug "API called: ClientManagementApi#generate_webhook_secret_api_v1_clients_uid_webhook_secret_generate_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
338
+ end
339
+ return data, status_code, headers
340
+ end
341
+
342
+ # Get client details
343
+ # Get details of a client. **Scope**: Client level (JWT with client_uid that must match {uid}) **Security**: If the JWT contains a client_uid, it must match the {uid} in the URL, otherwise a 403 error is returned.
344
+ # @param uid [String]
345
+ # @param [Hash] opts the optional parameters
346
+ # @return [ClientDetail]
347
+ def get_client_api_v1_clients_uid_get(uid, opts = {})
348
+ data, _status_code, _headers = get_client_api_v1_clients_uid_get_with_http_info(uid, opts)
349
+ data
350
+ end
351
+
352
+ # Get client details
353
+ # Get details of a client. **Scope**: Client level (JWT with client_uid that must match {uid}) **Security**: If the JWT contains a client_uid, it must match the {uid} in the URL, otherwise a 403 error is returned.
354
+ # @param uid [String]
355
+ # @param [Hash] opts the optional parameters
356
+ # @return [Array<(ClientDetail, Integer, Hash)>] ClientDetail data, response status code and response headers
357
+ def get_client_api_v1_clients_uid_get_with_http_info(uid, opts = {})
358
+ if @api_client.config.debugging
359
+ @api_client.config.logger.debug 'Calling API: ClientManagementApi.get_client_api_v1_clients_uid_get ...'
360
+ end
361
+ # verify the required parameter 'uid' is set
362
+ if @api_client.config.client_side_validation && uid.nil?
363
+ fail ArgumentError, "Missing the required parameter 'uid' when calling ClientManagementApi.get_client_api_v1_clients_uid_get"
364
+ end
365
+ # resource path
366
+ local_var_path = '/api/v1/clients/{uid}'.sub('{' + 'uid' + '}', CGI.escape(uid.to_s))
367
+
368
+ # query parameters
369
+ query_params = opts[:query_params] || {}
370
+
371
+ # header parameters
372
+ header_params = opts[:header_params] || {}
373
+ # HTTP header 'Accept' (if needed)
374
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
375
+
376
+ # form parameters
377
+ form_params = opts[:form_params] || {}
378
+
379
+ # http body (model)
380
+ post_body = opts[:debug_body]
381
+
382
+ # return_type
383
+ return_type = opts[:debug_return_type] || 'ClientDetail'
384
+
385
+ # auth_names
386
+ auth_names = opts[:debug_auth_names] || ['APIKeyHeader', 'HTTPBearer']
387
+
388
+ new_options = opts.merge(
389
+ :operation => :"ClientManagementApi.get_client_api_v1_clients_uid_get",
390
+ :header_params => header_params,
391
+ :query_params => query_params,
392
+ :form_params => form_params,
393
+ :body => post_body,
394
+ :auth_names => auth_names,
395
+ :return_type => return_type
396
+ )
397
+
398
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
399
+ if @api_client.config.debugging
400
+ @api_client.config.logger.debug "API called: ClientManagementApi#get_client_api_v1_clients_uid_get\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
401
+ end
402
+ return data, status_code, headers
403
+ end
404
+
405
+ # Get client PDP configuration
406
+ # Get the PDP (PA/PDP) configuration for a client. **Scope**: Client level (JWT with client_uid that must match {uid}) **Security**: The client secret is never returned. Only a status (`secretStatus`) indicates whether a secret is configured. **Response**: - If configured: all config details (URLs, client_id, secret status) - If not configured: `isConfigured: false` with a message
407
+ # @param uid [String]
408
+ # @param [Hash] opts the optional parameters
409
+ # @return [PDPConfigResponse]
410
+ def get_pdp_config_api_v1_clients_uid_pdp_config_get(uid, opts = {})
411
+ data, _status_code, _headers = get_pdp_config_api_v1_clients_uid_pdp_config_get_with_http_info(uid, opts)
412
+ data
413
+ end
414
+
415
+ # Get client PDP configuration
416
+ # Get the PDP (PA/PDP) configuration for a client. **Scope**: Client level (JWT with client_uid that must match {uid}) **Security**: The client secret is never returned. Only a status (&#x60;secretStatus&#x60;) indicates whether a secret is configured. **Response**: - If configured: all config details (URLs, client_id, secret status) - If not configured: &#x60;isConfigured: false&#x60; with a message
417
+ # @param uid [String]
418
+ # @param [Hash] opts the optional parameters
419
+ # @return [Array<(PDPConfigResponse, Integer, Hash)>] PDPConfigResponse data, response status code and response headers
420
+ def get_pdp_config_api_v1_clients_uid_pdp_config_get_with_http_info(uid, opts = {})
421
+ if @api_client.config.debugging
422
+ @api_client.config.logger.debug 'Calling API: ClientManagementApi.get_pdp_config_api_v1_clients_uid_pdp_config_get ...'
423
+ end
424
+ # verify the required parameter 'uid' is set
425
+ if @api_client.config.client_side_validation && uid.nil?
426
+ fail ArgumentError, "Missing the required parameter 'uid' when calling ClientManagementApi.get_pdp_config_api_v1_clients_uid_pdp_config_get"
427
+ end
428
+ # resource path
429
+ local_var_path = '/api/v1/clients/{uid}/pdp-config'.sub('{' + 'uid' + '}', CGI.escape(uid.to_s))
430
+
431
+ # query parameters
432
+ query_params = opts[:query_params] || {}
433
+
434
+ # header parameters
435
+ header_params = opts[:header_params] || {}
436
+ # HTTP header 'Accept' (if needed)
437
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
438
+
439
+ # form parameters
440
+ form_params = opts[:form_params] || {}
441
+
442
+ # http body (model)
443
+ post_body = opts[:debug_body]
444
+
445
+ # return_type
446
+ return_type = opts[:debug_return_type] || 'PDPConfigResponse'
447
+
448
+ # auth_names
449
+ auth_names = opts[:debug_auth_names] || ['APIKeyHeader', 'HTTPBearer']
450
+
451
+ new_options = opts.merge(
452
+ :operation => :"ClientManagementApi.get_pdp_config_api_v1_clients_uid_pdp_config_get",
453
+ :header_params => header_params,
454
+ :query_params => query_params,
455
+ :form_params => form_params,
456
+ :body => post_body,
457
+ :auth_names => auth_names,
458
+ :return_type => return_type
459
+ )
460
+
461
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
462
+ if @api_client.config.debugging
463
+ @api_client.config.logger.debug "API called: ClientManagementApi#get_pdp_config_api_v1_clients_uid_pdp_config_get\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
464
+ end
465
+ return data, status_code, headers
466
+ end
467
+
468
+ # Get webhook secret status
469
+ # Check if a webhook secret is configured for a client. **Scope**: Client level (JWT with client_uid that must match {uid}) **Response**: - `hasSecret`: Whether a webhook secret is configured - `createdAt`: When the secret was created (if exists) **Note**: The secret value is never returned, only its status.
470
+ # @param uid [String]
471
+ # @param [Hash] opts the optional parameters
472
+ # @return [WebhookSecretStatusResponse]
473
+ def get_webhook_secret_status_api_v1_clients_uid_webhook_secret_status_get(uid, opts = {})
474
+ data, _status_code, _headers = get_webhook_secret_status_api_v1_clients_uid_webhook_secret_status_get_with_http_info(uid, opts)
475
+ data
476
+ end
477
+
478
+ # Get webhook secret status
479
+ # Check if a webhook secret is configured for a client. **Scope**: Client level (JWT with client_uid that must match {uid}) **Response**: - &#x60;hasSecret&#x60;: Whether a webhook secret is configured - &#x60;createdAt&#x60;: When the secret was created (if exists) **Note**: The secret value is never returned, only its status.
480
+ # @param uid [String]
481
+ # @param [Hash] opts the optional parameters
482
+ # @return [Array<(WebhookSecretStatusResponse, Integer, Hash)>] WebhookSecretStatusResponse data, response status code and response headers
483
+ def get_webhook_secret_status_api_v1_clients_uid_webhook_secret_status_get_with_http_info(uid, opts = {})
484
+ if @api_client.config.debugging
485
+ @api_client.config.logger.debug 'Calling API: ClientManagementApi.get_webhook_secret_status_api_v1_clients_uid_webhook_secret_status_get ...'
486
+ end
487
+ # verify the required parameter 'uid' is set
488
+ if @api_client.config.client_side_validation && uid.nil?
489
+ fail ArgumentError, "Missing the required parameter 'uid' when calling ClientManagementApi.get_webhook_secret_status_api_v1_clients_uid_webhook_secret_status_get"
490
+ end
491
+ # resource path
492
+ local_var_path = '/api/v1/clients/{uid}/webhook-secret/status'.sub('{' + 'uid' + '}', CGI.escape(uid.to_s))
493
+
494
+ # query parameters
495
+ query_params = opts[:query_params] || {}
496
+
497
+ # header parameters
498
+ header_params = opts[:header_params] || {}
499
+ # HTTP header 'Accept' (if needed)
500
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
501
+
502
+ # form parameters
503
+ form_params = opts[:form_params] || {}
504
+
505
+ # http body (model)
506
+ post_body = opts[:debug_body]
507
+
508
+ # return_type
509
+ return_type = opts[:debug_return_type] || 'WebhookSecretStatusResponse'
510
+
511
+ # auth_names
512
+ auth_names = opts[:debug_auth_names] || ['APIKeyHeader', 'HTTPBearer']
513
+
514
+ new_options = opts.merge(
515
+ :operation => :"ClientManagementApi.get_webhook_secret_status_api_v1_clients_uid_webhook_secret_status_get",
516
+ :header_params => header_params,
517
+ :query_params => query_params,
518
+ :form_params => form_params,
519
+ :body => post_body,
520
+ :auth_names => auth_names,
521
+ :return_type => return_type
522
+ )
523
+
524
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
525
+ if @api_client.config.debugging
526
+ @api_client.config.logger.debug "API called: ClientManagementApi#get_webhook_secret_status_api_v1_clients_uid_webhook_secret_status_get\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
527
+ end
528
+ return data, status_code, headers
529
+ end
530
+
531
+ # List clients
532
+ # Paginated list of clients for the account. **Scope**: Account level (JWT without client_uid) **Pagination**: - `page`: Page number (default: 1) - `pageSize`: Page size (default: 20, max: 100)
533
+ # @param [Hash] opts the optional parameters
534
+ # @option opts [Integer] :page Page number (default to 1)
535
+ # @option opts [Integer] :page_size Page size (default to 20)
536
+ # @return [ClientListResponse]
537
+ def list_clients_api_v1_clients_get(opts = {})
538
+ data, _status_code, _headers = list_clients_api_v1_clients_get_with_http_info(opts)
539
+ data
540
+ end
541
+
542
+ # List clients
543
+ # Paginated list of clients for the account. **Scope**: Account level (JWT without client_uid) **Pagination**: - &#x60;page&#x60;: Page number (default: 1) - &#x60;pageSize&#x60;: Page size (default: 20, max: 100)
544
+ # @param [Hash] opts the optional parameters
545
+ # @option opts [Integer] :page Page number (default to 1)
546
+ # @option opts [Integer] :page_size Page size (default to 20)
547
+ # @return [Array<(ClientListResponse, Integer, Hash)>] ClientListResponse data, response status code and response headers
548
+ def list_clients_api_v1_clients_get_with_http_info(opts = {})
549
+ if @api_client.config.debugging
550
+ @api_client.config.logger.debug 'Calling API: ClientManagementApi.list_clients_api_v1_clients_get ...'
551
+ end
552
+ if @api_client.config.client_side_validation && !opts[:'page'].nil? && opts[:'page'] < 1
553
+ fail ArgumentError, 'invalid value for "opts[:"page"]" when calling ClientManagementApi.list_clients_api_v1_clients_get, must be greater than or equal to 1.'
554
+ end
555
+
556
+ if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] > 100
557
+ fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling ClientManagementApi.list_clients_api_v1_clients_get, must be smaller than or equal to 100.'
558
+ end
559
+
560
+ if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] < 1
561
+ fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling ClientManagementApi.list_clients_api_v1_clients_get, must be greater than or equal to 1.'
562
+ end
563
+
564
+ # resource path
565
+ local_var_path = '/api/v1/clients'
566
+
567
+ # query parameters
568
+ query_params = opts[:query_params] || {}
569
+ query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
570
+ query_params[:'pageSize'] = opts[:'page_size'] if !opts[:'page_size'].nil?
571
+
572
+ # header parameters
573
+ header_params = opts[:header_params] || {}
574
+ # HTTP header 'Accept' (if needed)
575
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
576
+
577
+ # form parameters
578
+ form_params = opts[:form_params] || {}
579
+
580
+ # http body (model)
581
+ post_body = opts[:debug_body]
582
+
583
+ # return_type
584
+ return_type = opts[:debug_return_type] || 'ClientListResponse'
585
+
586
+ # auth_names
587
+ auth_names = opts[:debug_auth_names] || ['APIKeyHeader', 'HTTPBearer']
588
+
589
+ new_options = opts.merge(
590
+ :operation => :"ClientManagementApi.list_clients_api_v1_clients_get",
591
+ :header_params => header_params,
592
+ :query_params => query_params,
593
+ :form_params => form_params,
594
+ :body => post_body,
595
+ :auth_names => auth_names,
596
+ :return_type => return_type
597
+ )
598
+
599
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
600
+ if @api_client.config.debugging
601
+ @api_client.config.logger.debug "API called: ClientManagementApi#list_clients_api_v1_clients_get\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
602
+ end
603
+ return data, status_code, headers
604
+ end
605
+
606
+ # Rotate client encryption key
607
+ # Rotate the client encryption key for all secrets in double encryption mode. **Scope**: Client level (JWT with client_uid that must match {uid}) **What this does**: 1. Decrypts all secrets (PDP, Chorus Pro) using the old key 2. Re-encrypts them using the new key 3. Saves to database **Important notes**: - Both keys must be base64-encoded AES-256 keys (32 bytes each) - The old key becomes invalid immediately after rotation - Only secrets encrypted with `encryptionMode: \"double\"` are affected - If the client has no double-encrypted secrets, returns 404 **Security**: - The old key must be valid (decryption is verified) - If decryption fails, rotation is aborted (atomic operation) - Neither key is logged or stored by the server
608
+ # @param uid [String]
609
+ # @param key_rotation_request [KeyRotationRequest]
610
+ # @param [Hash] opts the optional parameters
611
+ # @return [KeyRotationResponse]
612
+ def rotate_encryption_key_api_v1_clients_uid_rotate_encryption_key_post(uid, key_rotation_request, opts = {})
613
+ data, _status_code, _headers = rotate_encryption_key_api_v1_clients_uid_rotate_encryption_key_post_with_http_info(uid, key_rotation_request, opts)
614
+ data
615
+ end
616
+
617
+ # Rotate client encryption key
618
+ # Rotate the client encryption key for all secrets in double encryption mode. **Scope**: Client level (JWT with client_uid that must match {uid}) **What this does**: 1. Decrypts all secrets (PDP, Chorus Pro) using the old key 2. Re-encrypts them using the new key 3. Saves to database **Important notes**: - Both keys must be base64-encoded AES-256 keys (32 bytes each) - The old key becomes invalid immediately after rotation - Only secrets encrypted with &#x60;encryptionMode: \&quot;double\&quot;&#x60; are affected - If the client has no double-encrypted secrets, returns 404 **Security**: - The old key must be valid (decryption is verified) - If decryption fails, rotation is aborted (atomic operation) - Neither key is logged or stored by the server
619
+ # @param uid [String]
620
+ # @param key_rotation_request [KeyRotationRequest]
621
+ # @param [Hash] opts the optional parameters
622
+ # @return [Array<(KeyRotationResponse, Integer, Hash)>] KeyRotationResponse data, response status code and response headers
623
+ def rotate_encryption_key_api_v1_clients_uid_rotate_encryption_key_post_with_http_info(uid, key_rotation_request, opts = {})
624
+ if @api_client.config.debugging
625
+ @api_client.config.logger.debug 'Calling API: ClientManagementApi.rotate_encryption_key_api_v1_clients_uid_rotate_encryption_key_post ...'
626
+ end
627
+ # verify the required parameter 'uid' is set
628
+ if @api_client.config.client_side_validation && uid.nil?
629
+ fail ArgumentError, "Missing the required parameter 'uid' when calling ClientManagementApi.rotate_encryption_key_api_v1_clients_uid_rotate_encryption_key_post"
630
+ end
631
+ # verify the required parameter 'key_rotation_request' is set
632
+ if @api_client.config.client_side_validation && key_rotation_request.nil?
633
+ fail ArgumentError, "Missing the required parameter 'key_rotation_request' when calling ClientManagementApi.rotate_encryption_key_api_v1_clients_uid_rotate_encryption_key_post"
634
+ end
635
+ # resource path
636
+ local_var_path = '/api/v1/clients/{uid}/rotate-encryption-key'.sub('{' + 'uid' + '}', CGI.escape(uid.to_s))
637
+
638
+ # query parameters
639
+ query_params = opts[:query_params] || {}
640
+
641
+ # header parameters
642
+ header_params = opts[:header_params] || {}
643
+ # HTTP header 'Accept' (if needed)
644
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
645
+ # HTTP header 'Content-Type'
646
+ content_type = @api_client.select_header_content_type(['application/json'])
647
+ if !content_type.nil?
648
+ header_params['Content-Type'] = content_type
649
+ end
650
+
651
+ # form parameters
652
+ form_params = opts[:form_params] || {}
653
+
654
+ # http body (model)
655
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(key_rotation_request)
656
+
657
+ # return_type
658
+ return_type = opts[:debug_return_type] || 'KeyRotationResponse'
659
+
660
+ # auth_names
661
+ auth_names = opts[:debug_auth_names] || ['APIKeyHeader', 'HTTPBearer']
662
+
663
+ new_options = opts.merge(
664
+ :operation => :"ClientManagementApi.rotate_encryption_key_api_v1_clients_uid_rotate_encryption_key_post",
665
+ :header_params => header_params,
666
+ :query_params => query_params,
667
+ :form_params => form_params,
668
+ :body => post_body,
669
+ :auth_names => auth_names,
670
+ :return_type => return_type
671
+ )
672
+
673
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
674
+ if @api_client.config.debugging
675
+ @api_client.config.logger.debug "API called: ClientManagementApi#rotate_encryption_key_api_v1_clients_uid_rotate_encryption_key_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
676
+ end
677
+ return data, status_code, headers
678
+ end
679
+
680
+ # Update a client
681
+ # Update client information (partial update). **Scope**: Client level (JWT with client_uid that must match {uid}) **Updatable fields**: - `name`: Client name - `description`: Description - `siret`: SIRET (14 digits) Only provided fields are updated.
682
+ # @param uid [String]
683
+ # @param client_update_request [ClientUpdateRequest]
684
+ # @param [Hash] opts the optional parameters
685
+ # @return [ClientDetail]
686
+ def update_client_api_v1_clients_uid_patch(uid, client_update_request, opts = {})
687
+ data, _status_code, _headers = update_client_api_v1_clients_uid_patch_with_http_info(uid, client_update_request, opts)
688
+ data
689
+ end
690
+
691
+ # Update a client
692
+ # Update client information (partial update). **Scope**: Client level (JWT with client_uid that must match {uid}) **Updatable fields**: - &#x60;name&#x60;: Client name - &#x60;description&#x60;: Description - &#x60;siret&#x60;: SIRET (14 digits) Only provided fields are updated.
693
+ # @param uid [String]
694
+ # @param client_update_request [ClientUpdateRequest]
695
+ # @param [Hash] opts the optional parameters
696
+ # @return [Array<(ClientDetail, Integer, Hash)>] ClientDetail data, response status code and response headers
697
+ def update_client_api_v1_clients_uid_patch_with_http_info(uid, client_update_request, opts = {})
698
+ if @api_client.config.debugging
699
+ @api_client.config.logger.debug 'Calling API: ClientManagementApi.update_client_api_v1_clients_uid_patch ...'
700
+ end
701
+ # verify the required parameter 'uid' is set
702
+ if @api_client.config.client_side_validation && uid.nil?
703
+ fail ArgumentError, "Missing the required parameter 'uid' when calling ClientManagementApi.update_client_api_v1_clients_uid_patch"
704
+ end
705
+ # verify the required parameter 'client_update_request' is set
706
+ if @api_client.config.client_side_validation && client_update_request.nil?
707
+ fail ArgumentError, "Missing the required parameter 'client_update_request' when calling ClientManagementApi.update_client_api_v1_clients_uid_patch"
708
+ end
709
+ # resource path
710
+ local_var_path = '/api/v1/clients/{uid}'.sub('{' + 'uid' + '}', CGI.escape(uid.to_s))
711
+
712
+ # query parameters
713
+ query_params = opts[:query_params] || {}
714
+
715
+ # header parameters
716
+ header_params = opts[:header_params] || {}
717
+ # HTTP header 'Accept' (if needed)
718
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
719
+ # HTTP header 'Content-Type'
720
+ content_type = @api_client.select_header_content_type(['application/json'])
721
+ if !content_type.nil?
722
+ header_params['Content-Type'] = content_type
723
+ end
724
+
725
+ # form parameters
726
+ form_params = opts[:form_params] || {}
727
+
728
+ # http body (model)
729
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(client_update_request)
730
+
731
+ # return_type
732
+ return_type = opts[:debug_return_type] || 'ClientDetail'
733
+
734
+ # auth_names
735
+ auth_names = opts[:debug_auth_names] || ['APIKeyHeader', 'HTTPBearer']
736
+
737
+ new_options = opts.merge(
738
+ :operation => :"ClientManagementApi.update_client_api_v1_clients_uid_patch",
739
+ :header_params => header_params,
740
+ :query_params => query_params,
741
+ :form_params => form_params,
742
+ :body => post_body,
743
+ :auth_names => auth_names,
744
+ :return_type => return_type
745
+ )
746
+
747
+ data, status_code, headers = @api_client.call_api(:PATCH, local_var_path, new_options)
748
+ if @api_client.config.debugging
749
+ @api_client.config.logger.debug "API called: ClientManagementApi#update_client_api_v1_clients_uid_patch\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
750
+ end
751
+ return data, status_code, headers
752
+ end
753
+
754
+ # Configure client PDP
755
+ # Configure or update the PDP (PA/PDP) configuration for a client. **Scope**: Client level (JWT with client_uid that must match {uid}) **Required fields**: - `flowServiceUrl`: PDP Flow Service URL - `tokenUrl`: PDP OAuth token URL - `oauthClientId`: OAuth Client ID - `clientSecret`: OAuth Client Secret (sent but NEVER returned) **Optional fields**: - `isActive`: Enable/disable the config (default: true) - `modeSandbox`: Sandbox mode (default: false) - `encryptionMode`: Encryption mode (default: \"fernet\") - \"fernet\": Server-side encryption only - \"double\": Client AES-256-GCM + Server Fernet (requires X-Encryption-Key header) **Double Encryption Mode**: When `encryptionMode` is set to \"double\", you MUST also provide the `X-Encryption-Key` header containing a base64-encoded AES-256 key (32 bytes). This key is used to encrypt the `clientSecret` on the client side before the server encrypts it again with Fernet. The server cannot decrypt the secret without the client key. **Security**: The `clientSecret` is stored encrypted on Django side and is never returned in API responses.
756
+ # @param uid [String]
757
+ # @param pdp_config_update_request [PDPConfigUpdateRequest]
758
+ # @param [Hash] opts the optional parameters
759
+ # @option opts [String] :x_encryption_key Client encryption key for double encryption mode. Must be a base64-encoded AES-256 key (32 bytes). Required only when accessing resources encrypted with encryption_mode&#x3D;&#39;double&#39;.
760
+ # @return [PDPConfigResponse]
761
+ def update_pdp_config_api_v1_clients_uid_pdp_config_put(uid, pdp_config_update_request, opts = {})
762
+ data, _status_code, _headers = update_pdp_config_api_v1_clients_uid_pdp_config_put_with_http_info(uid, pdp_config_update_request, opts)
763
+ data
764
+ end
765
+
766
+ # Configure client PDP
767
+ # Configure or update the PDP (PA/PDP) configuration for a client. **Scope**: Client level (JWT with client_uid that must match {uid}) **Required fields**: - &#x60;flowServiceUrl&#x60;: PDP Flow Service URL - &#x60;tokenUrl&#x60;: PDP OAuth token URL - &#x60;oauthClientId&#x60;: OAuth Client ID - &#x60;clientSecret&#x60;: OAuth Client Secret (sent but NEVER returned) **Optional fields**: - &#x60;isActive&#x60;: Enable/disable the config (default: true) - &#x60;modeSandbox&#x60;: Sandbox mode (default: false) - &#x60;encryptionMode&#x60;: Encryption mode (default: \&quot;fernet\&quot;) - \&quot;fernet\&quot;: Server-side encryption only - \&quot;double\&quot;: Client AES-256-GCM + Server Fernet (requires X-Encryption-Key header) **Double Encryption Mode**: When &#x60;encryptionMode&#x60; is set to \&quot;double\&quot;, you MUST also provide the &#x60;X-Encryption-Key&#x60; header containing a base64-encoded AES-256 key (32 bytes). This key is used to encrypt the &#x60;clientSecret&#x60; on the client side before the server encrypts it again with Fernet. The server cannot decrypt the secret without the client key. **Security**: The &#x60;clientSecret&#x60; is stored encrypted on Django side and is never returned in API responses.
768
+ # @param uid [String]
769
+ # @param pdp_config_update_request [PDPConfigUpdateRequest]
770
+ # @param [Hash] opts the optional parameters
771
+ # @option opts [String] :x_encryption_key Client encryption key for double encryption mode. Must be a base64-encoded AES-256 key (32 bytes). Required only when accessing resources encrypted with encryption_mode&#x3D;&#39;double&#39;.
772
+ # @return [Array<(PDPConfigResponse, Integer, Hash)>] PDPConfigResponse data, response status code and response headers
773
+ def update_pdp_config_api_v1_clients_uid_pdp_config_put_with_http_info(uid, pdp_config_update_request, opts = {})
774
+ if @api_client.config.debugging
775
+ @api_client.config.logger.debug 'Calling API: ClientManagementApi.update_pdp_config_api_v1_clients_uid_pdp_config_put ...'
776
+ end
777
+ # verify the required parameter 'uid' is set
778
+ if @api_client.config.client_side_validation && uid.nil?
779
+ fail ArgumentError, "Missing the required parameter 'uid' when calling ClientManagementApi.update_pdp_config_api_v1_clients_uid_pdp_config_put"
780
+ end
781
+ # verify the required parameter 'pdp_config_update_request' is set
782
+ if @api_client.config.client_side_validation && pdp_config_update_request.nil?
783
+ fail ArgumentError, "Missing the required parameter 'pdp_config_update_request' when calling ClientManagementApi.update_pdp_config_api_v1_clients_uid_pdp_config_put"
784
+ end
785
+ # resource path
786
+ local_var_path = '/api/v1/clients/{uid}/pdp-config'.sub('{' + 'uid' + '}', CGI.escape(uid.to_s))
787
+
788
+ # query parameters
789
+ query_params = opts[:query_params] || {}
790
+
791
+ # header parameters
792
+ header_params = opts[:header_params] || {}
793
+ # HTTP header 'Accept' (if needed)
794
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
795
+ # HTTP header 'Content-Type'
796
+ content_type = @api_client.select_header_content_type(['application/json'])
797
+ if !content_type.nil?
798
+ header_params['Content-Type'] = content_type
799
+ end
800
+ header_params[:'X-Encryption-Key'] = opts[:'x_encryption_key'] if !opts[:'x_encryption_key'].nil?
801
+
802
+ # form parameters
803
+ form_params = opts[:form_params] || {}
804
+
805
+ # http body (model)
806
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(pdp_config_update_request)
807
+
808
+ # return_type
809
+ return_type = opts[:debug_return_type] || 'PDPConfigResponse'
810
+
811
+ # auth_names
812
+ auth_names = opts[:debug_auth_names] || ['APIKeyHeader', 'HTTPBearer']
813
+
814
+ new_options = opts.merge(
815
+ :operation => :"ClientManagementApi.update_pdp_config_api_v1_clients_uid_pdp_config_put",
816
+ :header_params => header_params,
817
+ :query_params => query_params,
818
+ :form_params => form_params,
819
+ :body => post_body,
820
+ :auth_names => auth_names,
821
+ :return_type => return_type
822
+ )
823
+
824
+ data, status_code, headers = @api_client.call_api(:PUT, local_var_path, new_options)
825
+ if @api_client.config.debugging
826
+ @api_client.config.logger.debug "API called: ClientManagementApi#update_pdp_config_api_v1_clients_uid_pdp_config_put\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
827
+ end
828
+ return data, status_code, headers
829
+ end
830
+ end
831
+ end