# coding: utf-8

# flake8: noqa

"""
    FactPulse REST API

     REST API for electronic invoicing in France: Factur-X, AFNOR PDP/PA, electronic signatures.  ## 🎯 Main Features  ### 📄 Factur-X Invoice 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)  ### ✅ Validation and Compliance - **XML Validation**: Schematron (45 to 210+ rules depending on profile) - **PDF Validation**: PDF/A-3, Factur-X XMP metadata, electronic signatures - **VeraPDF**: Strict PDF/A validation (146+ ISO 19005-3 rules) - **Asynchronous Processing**: Celery support for heavy validations (VeraPDF)  ### 📡 AFNOR PDP/PA Integration (XP Z12-013) - **Flow Submission**: Send invoices to Partner Dematerialization Platforms - **Flow Search**: View submitted invoices - **Download**: Retrieve PDF/A-3 with XML - **Directory Service**: Company search (SIREN/SIRET) - **Multi-client**: Support for multiple PDP configs per user (stored credentials or zero-storage)  ### ✍️ PDF 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 - **Certificate Generation**: Self-signed X.509 certificates for testing  ### 🔄 Asynchronous Processing - **Celery**: Asynchronous generation, validation and signing - **Polling**: Status tracking via `/tasks/{task_id}/status` - **No timeout**: Ideal for large files or heavy validations  ## 🔒 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://www.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://www.factpulse.fr/accounts/password/set/ - Once the password is created, you can use the API  **Request example:** ```bash curl -X POST https://www.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://www.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://www.factpulse.fr/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://www.factpulse.fr/documentation-api/     

    The version of the OpenAPI document: 1.0.0
    Generated by OpenAPI Generator (https://openapi-generator.tech)

    Do not edit the class manually.
"""  # noqa: E501


__version__ = "3.0.5"

# Define package exports
__all__ = [
    "AFNORPDPPAApi",
    "AFNORPDPPADirectoryServiceApi",
    "AFNORPDPPAFlowServiceApi",
    "ChorusProApi",
    "HealthApi",
    "InvoiceProcessingApi",
    "PDFXMLVerificationApi",
    "UserApi",
    "ApiResponse",
    "ApiClient",
    "Configuration",
    "OpenApiException",
    "ApiTypeError",
    "ApiValueError",
    "ApiKeyError",
    "ApiAttributeError",
    "ApiException",
    "AFNORCredentials",
    "AFNORDestination",
    "AFNORHealthCheckResponse",
    "AFNORResult",
    "APIError",
    "APIProfile",
    "AcknowledgmentStatus",
    "AllowanceReasonCode",
    "AmountDue",
    "AsyncTaskStatus",
    "BoundingBoxSchema",
    "CeleryStatus",
    "CertificateInfoResponse",
    "ChorusProDestination",
    "ChorusProResult",
    "Destination",
    "DocumentType",
    "ElectronicAddress",
    "EnrichedInvoiceInfo",
    "ErrorLevel",
    "ErrorSource",
    "FacturXInvoice",
    "FacturXPDFInfo",
    "FactureElectroniqueRestApiSchemasChorusProChorusProCredentials",
    "FactureElectroniqueRestApiSchemasProcessingChorusProCredentials",
    "FieldStatus",
    "FlowDirection",
    "FlowProfile",
    "FlowSummary",
    "FlowSyntax",
    "FlowType",
    "GenerateCertificateRequest",
    "GenerateCertificateResponse",
    "GetChorusProIdRequest",
    "GetChorusProIdResponse",
    "GetInvoiceRequest",
    "GetInvoiceResponse",
    "GetStructureRequest",
    "GetStructureResponse",
    "GlobalAllowanceAmount",
    "HTTPValidationError",
    "IncomingInvoice",
    "IncomingSupplier",
    "InvoiceFormat",
    "InvoiceLine",
    "InvoiceLineAllowanceAmount",
    "InvoiceNote",
    "InvoiceReferences",
    "InvoiceStatus",
    "InvoiceTotals",
    "InvoiceTotalsPrepayment",
    "InvoiceTypeCode",
    "InvoicingFramework",
    "InvoicingFrameworkCode",
    "LineNetAmount",
    "MandatoryNoteSchema",
    "ManualRate",
    "ManualVatRate",
    "OperationNature",
    "OutputFormat",
    "PDFValidationResultAPI",
    "PDPCredentials",
    "PageDimensionsSchema",
    "Payee",
    "PaymentMeans",
    "PostalAddress",
    "ProcessingOptions",
    "Quantity",
    "Recipient",
    "SchemeID",
    "SearchFlowRequest",
    "SearchFlowResponse",
    "SearchServicesResponse",
    "SearchStructureRequest",
    "SearchStructureResponse",
    "SignatureInfo",
    "SignatureInfoAPI",
    "SignatureParameters",
    "SimplifiedInvoiceData",
    "StructureInfo",
    "StructureParameters",
    "StructureService",
    "SubmissionMode",
    "SubmitCompleteInvoiceRequest",
    "SubmitCompleteInvoiceResponse",
    "SubmitFlowRequest",
    "SubmitFlowResponse",
    "SubmitGrossAmount",
    "SubmitInvoiceRequest",
    "SubmitInvoiceResponse",
    "SubmitNetAmount",
    "SubmitVatAmount",
    "SupplementaryAttachment",
    "Supplier",
    "TaskResponse",
    "TaxableAmount",
    "TotalGrossAmount",
    "TotalNetAmount",
    "TotalVATAmount",
    "UnitNetPrice",
    "UnitOfMeasure",
    "VATAccountingCode",
    "VATAmount",
    "VATCategory",
    "VATLine",
    "ValidationError",
    "ValidationErrorDetail",
    "ValidationErrorLocInner",
    "ValidationErrorResponse",
    "ValidationSuccessResponse",
    "VerificationSuccessResponse",
    "VerifiedFieldSchema",
]

# import apis into sdk package
from factpulse.api.afnorpdppa_api import AFNORPDPPAApi as AFNORPDPPAApi
from factpulse.api.afnorpdppa_directory_service_api import AFNORPDPPADirectoryServiceApi as AFNORPDPPADirectoryServiceApi
from factpulse.api.afnorpdppa_flow_service_api import AFNORPDPPAFlowServiceApi as AFNORPDPPAFlowServiceApi
from factpulse.api.chorus_pro_api import ChorusProApi as ChorusProApi
from factpulse.api.health_api import HealthApi as HealthApi
from factpulse.api.invoice_processing_api import InvoiceProcessingApi as InvoiceProcessingApi
from factpulse.api.pdfxml_verification_api import PDFXMLVerificationApi as PDFXMLVerificationApi
from factpulse.api.user_api import UserApi as UserApi

# import ApiClient
from factpulse.api_response import ApiResponse as ApiResponse
from factpulse.api_client import ApiClient as ApiClient
from factpulse.configuration import Configuration as Configuration
from factpulse.exceptions import OpenApiException as OpenApiException
from factpulse.exceptions import ApiTypeError as ApiTypeError
from factpulse.exceptions import ApiValueError as ApiValueError
from factpulse.exceptions import ApiKeyError as ApiKeyError
from factpulse.exceptions import ApiAttributeError as ApiAttributeError
from factpulse.exceptions import ApiException as ApiException

# import models into sdk package
from factpulse.models.afnor_credentials import AFNORCredentials as AFNORCredentials
from factpulse.models.afnor_destination import AFNORDestination as AFNORDestination
from factpulse.models.afnor_health_check_response import AFNORHealthCheckResponse as AFNORHealthCheckResponse
from factpulse.models.afnor_result import AFNORResult as AFNORResult
from factpulse.models.api_error import APIError as APIError
from factpulse.models.api_profile import APIProfile as APIProfile
from factpulse.models.acknowledgment_status import AcknowledgmentStatus as AcknowledgmentStatus
from factpulse.models.allowance_reason_code import AllowanceReasonCode as AllowanceReasonCode
from factpulse.models.amount_due import AmountDue as AmountDue
from factpulse.models.async_task_status import AsyncTaskStatus as AsyncTaskStatus
from factpulse.models.bounding_box_schema import BoundingBoxSchema as BoundingBoxSchema
from factpulse.models.celery_status import CeleryStatus as CeleryStatus
from factpulse.models.certificate_info_response import CertificateInfoResponse as CertificateInfoResponse
from factpulse.models.chorus_pro_destination import ChorusProDestination as ChorusProDestination
from factpulse.models.chorus_pro_result import ChorusProResult as ChorusProResult
from factpulse.models.destination import Destination as Destination
from factpulse.models.document_type import DocumentType as DocumentType
from factpulse.models.electronic_address import ElectronicAddress as ElectronicAddress
from factpulse.models.enriched_invoice_info import EnrichedInvoiceInfo as EnrichedInvoiceInfo
from factpulse.models.error_level import ErrorLevel as ErrorLevel
from factpulse.models.error_source import ErrorSource as ErrorSource
from factpulse.models.factur_x_invoice import FacturXInvoice as FacturXInvoice
from factpulse.models.factur_xpdf_info import FacturXPDFInfo as FacturXPDFInfo
from factpulse.models.facture_electronique_rest_api_schemas_chorus_pro_chorus_pro_credentials import FactureElectroniqueRestApiSchemasChorusProChorusProCredentials as FactureElectroniqueRestApiSchemasChorusProChorusProCredentials
from factpulse.models.facture_electronique_rest_api_schemas_processing_chorus_pro_credentials import FactureElectroniqueRestApiSchemasProcessingChorusProCredentials as FactureElectroniqueRestApiSchemasProcessingChorusProCredentials
from factpulse.models.field_status import FieldStatus as FieldStatus
from factpulse.models.flow_direction import FlowDirection as FlowDirection
from factpulse.models.flow_profile import FlowProfile as FlowProfile
from factpulse.models.flow_summary import FlowSummary as FlowSummary
from factpulse.models.flow_syntax import FlowSyntax as FlowSyntax
from factpulse.models.flow_type import FlowType as FlowType
from factpulse.models.generate_certificate_request import GenerateCertificateRequest as GenerateCertificateRequest
from factpulse.models.generate_certificate_response import GenerateCertificateResponse as GenerateCertificateResponse
from factpulse.models.get_chorus_pro_id_request import GetChorusProIdRequest as GetChorusProIdRequest
from factpulse.models.get_chorus_pro_id_response import GetChorusProIdResponse as GetChorusProIdResponse
from factpulse.models.get_invoice_request import GetInvoiceRequest as GetInvoiceRequest
from factpulse.models.get_invoice_response import GetInvoiceResponse as GetInvoiceResponse
from factpulse.models.get_structure_request import GetStructureRequest as GetStructureRequest
from factpulse.models.get_structure_response import GetStructureResponse as GetStructureResponse
from factpulse.models.global_allowance_amount import GlobalAllowanceAmount as GlobalAllowanceAmount
from factpulse.models.http_validation_error import HTTPValidationError as HTTPValidationError
from factpulse.models.incoming_invoice import IncomingInvoice as IncomingInvoice
from factpulse.models.incoming_supplier import IncomingSupplier as IncomingSupplier
from factpulse.models.invoice_format import InvoiceFormat as InvoiceFormat
from factpulse.models.invoice_line import InvoiceLine as InvoiceLine
from factpulse.models.invoice_line_allowance_amount import InvoiceLineAllowanceAmount as InvoiceLineAllowanceAmount
from factpulse.models.invoice_note import InvoiceNote as InvoiceNote
from factpulse.models.invoice_references import InvoiceReferences as InvoiceReferences
from factpulse.models.invoice_status import InvoiceStatus as InvoiceStatus
from factpulse.models.invoice_totals import InvoiceTotals as InvoiceTotals
from factpulse.models.invoice_totals_prepayment import InvoiceTotalsPrepayment as InvoiceTotalsPrepayment
from factpulse.models.invoice_type_code import InvoiceTypeCode as InvoiceTypeCode
from factpulse.models.invoicing_framework import InvoicingFramework as InvoicingFramework
from factpulse.models.invoicing_framework_code import InvoicingFrameworkCode as InvoicingFrameworkCode
from factpulse.models.line_net_amount import LineNetAmount as LineNetAmount
from factpulse.models.mandatory_note_schema import MandatoryNoteSchema as MandatoryNoteSchema
from factpulse.models.manual_rate import ManualRate as ManualRate
from factpulse.models.manual_vat_rate import ManualVatRate as ManualVatRate
from factpulse.models.operation_nature import OperationNature as OperationNature
from factpulse.models.output_format import OutputFormat as OutputFormat
from factpulse.models.pdf_validation_result_api import PDFValidationResultAPI as PDFValidationResultAPI
from factpulse.models.pdp_credentials import PDPCredentials as PDPCredentials
from factpulse.models.page_dimensions_schema import PageDimensionsSchema as PageDimensionsSchema
from factpulse.models.payee import Payee as Payee
from factpulse.models.payment_means import PaymentMeans as PaymentMeans
from factpulse.models.postal_address import PostalAddress as PostalAddress
from factpulse.models.processing_options import ProcessingOptions as ProcessingOptions
from factpulse.models.quantity import Quantity as Quantity
from factpulse.models.recipient import Recipient as Recipient
from factpulse.models.scheme_id import SchemeID as SchemeID
from factpulse.models.search_flow_request import SearchFlowRequest as SearchFlowRequest
from factpulse.models.search_flow_response import SearchFlowResponse as SearchFlowResponse
from factpulse.models.search_services_response import SearchServicesResponse as SearchServicesResponse
from factpulse.models.search_structure_request import SearchStructureRequest as SearchStructureRequest
from factpulse.models.search_structure_response import SearchStructureResponse as SearchStructureResponse
from factpulse.models.signature_info import SignatureInfo as SignatureInfo
from factpulse.models.signature_info_api import SignatureInfoAPI as SignatureInfoAPI
from factpulse.models.signature_parameters import SignatureParameters as SignatureParameters
from factpulse.models.simplified_invoice_data import SimplifiedInvoiceData as SimplifiedInvoiceData
from factpulse.models.structure_info import StructureInfo as StructureInfo
from factpulse.models.structure_parameters import StructureParameters as StructureParameters
from factpulse.models.structure_service import StructureService as StructureService
from factpulse.models.submission_mode import SubmissionMode as SubmissionMode
from factpulse.models.submit_complete_invoice_request import SubmitCompleteInvoiceRequest as SubmitCompleteInvoiceRequest
from factpulse.models.submit_complete_invoice_response import SubmitCompleteInvoiceResponse as SubmitCompleteInvoiceResponse
from factpulse.models.submit_flow_request import SubmitFlowRequest as SubmitFlowRequest
from factpulse.models.submit_flow_response import SubmitFlowResponse as SubmitFlowResponse
from factpulse.models.submit_gross_amount import SubmitGrossAmount as SubmitGrossAmount
from factpulse.models.submit_invoice_request import SubmitInvoiceRequest as SubmitInvoiceRequest
from factpulse.models.submit_invoice_response import SubmitInvoiceResponse as SubmitInvoiceResponse
from factpulse.models.submit_net_amount import SubmitNetAmount as SubmitNetAmount
from factpulse.models.submit_vat_amount import SubmitVatAmount as SubmitVatAmount
from factpulse.models.supplementary_attachment import SupplementaryAttachment as SupplementaryAttachment
from factpulse.models.supplier import Supplier as Supplier
from factpulse.models.task_response import TaskResponse as TaskResponse
from factpulse.models.taxable_amount import TaxableAmount as TaxableAmount
from factpulse.models.total_gross_amount import TotalGrossAmount as TotalGrossAmount
from factpulse.models.total_net_amount import TotalNetAmount as TotalNetAmount
from factpulse.models.total_vat_amount import TotalVATAmount as TotalVATAmount
from factpulse.models.unit_net_price import UnitNetPrice as UnitNetPrice
from factpulse.models.unit_of_measure import UnitOfMeasure as UnitOfMeasure
from factpulse.models.vat_accounting_code import VATAccountingCode as VATAccountingCode
from factpulse.models.vat_amount import VATAmount as VATAmount
from factpulse.models.vat_category import VATCategory as VATCategory
from factpulse.models.vat_line import VATLine as VATLine
from factpulse.models.validation_error import ValidationError as ValidationError
from factpulse.models.validation_error_detail import ValidationErrorDetail as ValidationErrorDetail
from factpulse.models.validation_error_loc_inner import ValidationErrorLocInner as ValidationErrorLocInner
from factpulse.models.validation_error_response import ValidationErrorResponse as ValidationErrorResponse
from factpulse.models.validation_success_response import ValidationSuccessResponse as ValidationSuccessResponse
from factpulse.models.verification_success_response import VerificationSuccessResponse as VerificationSuccessResponse
from factpulse.models.verified_field_schema import VerifiedFieldSchema as VerifiedFieldSchema

