From 14c32d4652763276719561e5e49f167e17128375 Mon Sep 17 00:00:00 2001
From: upcFrost <287771+upcFrost@users.noreply.github.com>
Date: Fri, 1 May 2026 12:05:08 +0200
Subject: [PATCH] SDK update for python v3.0.0
---
.manifest.json | 989 ++++++++++++------
LICENSE | 2 +-
PyPI_README.md | 207 ++--
README.md | 207 ++--
.../models/AddEnvelopeAnnotationRequest.md | 20 +
.../AddEnvelopeAnnotationRequestCheckbox.md | 8 +
.../AddEnvelopeAnnotationRequestDatetime.md | 13 +
.../AddEnvelopeAnnotationRequestInitials.md | 7 +
.../AddEnvelopeAnnotationRequestSignature.md | 7 +
.../AddEnvelopeAnnotationRequestText.md | 12 +
.../models/AddEnvelopeDocumentRequest.md | 6 +-
.../models/AddEnvelopeSigningStepsRequest.md | 6 +-
...EnvelopeSigningStepsRequestSigningSteps.md | 7 +
.../models/AddTemplateAnnotationRequest.md | 20 +
.../AddTemplateAnnotationRequestCheckbox.md | 8 +
.../AddTemplateAnnotationRequestDatetime.md | 13 +
.../AddTemplateAnnotationRequestInitials.md | 7 +
.../AddTemplateAnnotationRequestSignature.md | 7 +
.../AddTemplateAnnotationRequestText.md | 12 +
.../models/AddTemplateDocumentRequest.md | 6 +-
.../models/AddTemplateSigningStepsRequest.md | 6 +-
...TemplateSigningStepsRequestSigningSteps.md | 7 +
.../CreateEnvelopeFromTemplateRequest.md | 10 +-
documentation/models/CreateEnvelopeRequest.md | 14 +-
documentation/models/CreateTemplateRequest.md | 2 +-
documentation/models/CreateWebhookRequest.md | 8 +-
documentation/models/DatetimeFont1.md | 9 +
documentation/models/DatetimeFont2.md | 9 +
documentation/models/DynamicFields.md | 8 +
documentation/models/ListEnvelopesRequest.md | 38 +-
documentation/models/ListTemplatesRequest.md | 22 +-
documentation/models/ListWebhooksRequest.md | 8 +-
documentation/models/RenameEnvelopeRequest.md | 6 +-
documentation/models/RenameTemplateRequest.md | 6 +-
...tEnvelopeAttachmentsPlaceholdersRequest.md | 6 +-
...achmentsPlaceholdersRequestPlaceholders.md | 12 +
.../SetEnvelopeAttachmentsSettingsRequest.md | 6 +-
...elopeAttachmentsSettingsRequestSettings.md | 7 +
.../models/SetEnvelopeCommentRequest.md | 6 +-
.../models/SetEnvelopeDynamicFieldsRequest.md | 6 +-
.../SetEnvelopeExpirationDateRequest.md | 7 +
.../models/SetEnvelopeLegalityLevelRequest.md | 6 +-
.../models/SetEnvelopeNotificationRequest.md | 9 +
...tTemplateAttachmentsPlaceholdersRequest.md | 7 +
...achmentsPlaceholdersRequestPlaceholders.md | 12 +
.../SetTemplateAttachmentsSettingsRequest.md | 7 +
...plateAttachmentsSettingsRequestSettings.md | 7 +
.../models/SetTemplateCommentRequest.md | 6 +-
.../models/SetTemplateNotificationRequest.md | 9 +
.../models/SigningStepsRecipients1.md | 12 +
.../models/SigningStepsRecipients2.md | 11 +
documentation/models/TextFont1.md | 9 +
documentation/models/TextFont2.md | 9 +
documentation/models/Verification.md | 8 +
documentation/services/AnnotationIdService.md | 44 +
documentation/services/AnnotationService.md | 94 ++
documentation/services/AnnotationsService.md | 44 +
documentation/services/CertificateService.md | 44 +
documentation/services/DocumentIdService.md | 46 +
documentation/services/DocumentService.md | 51 +
documentation/services/DocumentsService.md | 44 +
documentation/services/DuplicateService.md | 44 +
.../services/DynamicFieldsService.md | 56 +
...eEnvelopeIdAnnotationsDocumentIdService.md | 46 +
documentation/services/EnvelopeIdService.md | 78 ++
documentation/services/EnvelopeService.md | 53 +
documentation/services/EnvelopesService.md | 73 ++
documentation/services/FileIdService.md | 46 +
documentation/services/PlaceholdersService.md | 60 ++
documentation/services/RenameService.md | 51 +
documentation/services/SendService.md | 44 +
documentation/services/SetCommentService.md | 51 +
.../services/SetExpirationDateService.md | 51 +
.../services/SetLegalityLevelService.md | 51 +
.../services/SetNotificationService.md | 53 +
documentation/services/SettingsService.md | 53 +
.../services/SignedDocumentsService.md | 46 +
documentation/services/SigningStepsService.md | 67 ++
documentation/services/TemplateIdService.md | 53 +
documentation/services/TemplateService.md | 49 +
...TemplateIdAnnotationAnnotationIdService.md | 44 +
.../TemplateTemplateIdAnnotationService.md | 94 ++
...eTemplateIdAnnotationsDocumentIdService.md | 46 +
.../TemplateTemplateIdAnnotationsService.md | 44 +
...emplateIdAttachmentsPlaceholdersService.md | 60 ++
...ateTemplateIdAttachmentsSettingsService.md | 53 +
...lateTemplateIdDocumentDocumentIdService.md | 46 +
.../TemplateTemplateIdDocumentService.md | 51 +
.../TemplateTemplateIdDocumentsService.md | 44 +
.../TemplateTemplateIdDuplicateService.md | 44 +
.../TemplateTemplateIdRenameService.md | 51 +
.../services/TemplateTemplateIdService.md | 78 ++
.../TemplateTemplateIdSetCommentService.md | 51 +
...emplateTemplateIdSetNotificationService.md | 53 +
.../TemplateTemplateIdSigningStepsService.md | 63 ++
documentation/services/TemplatesService.md | 61 ++
documentation/services/VoidService.md | 44 +
documentation/services/WebhookIdService.md | 40 +
documentation/services/WebhookService.md | 50 +
documentation/services/WebhooksService.md | 50 +
documentation/snippets/snippets.json | 293 ++++++
examples/install.cmd | 2 +-
examples/install.sh | 19 +-
examples/sample.py | 8 +-
install.cmd | 2 +-
install.sh | 17 +-
prettier.config.js | 41 +
pyproject.toml | 15 +-
src/signplus/models/__init__.py | 174 ++-
.../models/add_envelope_annotation_request.py | 69 ++
...dd_envelope_annotation_request_checkbox.py | 17 +
...dd_envelope_annotation_request_datetime.py | 34 +
...dd_envelope_annotation_request_initials.py | 14 +
...d_envelope_annotation_request_signature.py | 14 +
.../add_envelope_annotation_request_text.py | 31 +
.../models/add_envelope_document_request.py | 18 +-
.../add_envelope_signing_steps_request.py | 26 +-
...ope_signing_steps_request_signing_steps.py | 17 +
.../models/add_template_annotation_request.py | 69 ++
...dd_template_annotation_request_checkbox.py | 17 +
...dd_template_annotation_request_datetime.py | 34 +
...dd_template_annotation_request_initials.py | 14 +
...d_template_annotation_request_signature.py | 14 +
.../add_template_annotation_request_text.py | 31 +
.../models/add_template_document_request.py | 18 +-
.../add_template_signing_steps_request.py | 24 +-
...ate_signing_steps_request_signing_steps.py | 17 +
.../create_envelope_from_template_request.py | 41 +-
.../models/create_envelope_request.py | 68 +-
.../models/create_template_request.py | 24 +-
src/signplus/models/create_webhook_request.py | 28 +-
src/signplus/models/datetime_font_1.py | 20 +
src/signplus/models/datetime_font_2.py | 20 +
src/signplus/models/dynamic_fields.py | 17 +
src/signplus/models/list_envelopes_request.py | 159 +--
src/signplus/models/list_templates_request.py | 88 +-
src/signplus/models/list_webhooks_request.py | 31 +-
.../models/rename_envelope_request.py | 18 +-
.../models/rename_template_request.py | 18 +-
...velope_attachments_placeholders_request.py | 26 +-
...ments_placeholders_request_placeholders.py | 29 +
...t_envelope_attachments_settings_request.py | 24 +-
...e_attachments_settings_request_settings.py | 14 +
.../models/set_envelope_comment_request.py | 18 +-
.../set_envelope_dynamic_fields_request.py | 20 +-
.../set_envelope_expiration_date_request.py | 14 +
.../set_envelope_legality_level_request.py | 24 +-
.../set_envelope_notification_request.py | 20 +
...mplate_attachments_placeholders_request.py | 21 +
...ments_placeholders_request_placeholders.py | 29 +
...t_template_attachments_settings_request.py | 20 +
...e_attachments_settings_request_settings.py | 14 +
.../models/set_template_comment_request.py | 18 +-
.../set_template_notification_request.py | 20 +
.../models/signing_steps_recipients_1.py | 31 +
.../models/signing_steps_recipients_2.py | 26 +
src/signplus/models/text_font_1.py | 20 +
src/signplus/models/text_font_2.py | 20 +
src/signplus/models/utils/base_error.py | 116 ++
src/signplus/models/utils/base_model.py | 378 ++-----
src/signplus/models/utils/cast_models.py | 29 +-
src/signplus/models/verification.py | 17 +
src/signplus/net/environment/environment.py | 1 +
src/signplus/net/headers/base_header.py | 17 +
.../request_chain/handlers/http_handler.py | 50 +-
.../request_chain/handlers/retry_handler.py | 105 +-
src/signplus/net/sdk_config.py | 63 ++
src/signplus/net/transport/api_error.py | 3 +-
src/signplus/net/transport/request.py | 18 +-
src/signplus/net/transport/response.py | 32 +-
src/signplus/net/transport/serializer.py | 25 +-
src/signplus/net/transport/utils.py | 12 +-
src/signplus/sdk.py | 303 +++++-
src/signplus/sdk_async.py | 162 ++-
src/signplus/services/annotation.py | 81 ++
src/signplus/services/annotation_id.py | 75 ++
src/signplus/services/annotations.py | 75 ++
src/signplus/services/async_/annotation.py | 23 +
src/signplus/services/async_/annotation_id.py | 21 +
src/signplus/services/async_/annotations.py | 21 +
src/signplus/services/async_/certificate.py | 21 +
src/signplus/services/async_/document.py | 23 +
src/signplus/services/async_/document_id.py | 22 +
src/signplus/services/async_/documents.py | 21 +
src/signplus/services/async_/duplicate.py | 21 +
.../services/async_/dynamic_fields.py | 23 +
src/signplus/services/async_/envelope.py | 22 +
...ope_envelope_id_annotations_document_id.py | 26 +
src/signplus/services/async_/envelope_id.py | 28 +
src/signplus/services/async_/envelopes.py | 22 +
src/signplus/services/async_/file_id.py | 22 +
src/signplus/services/async_/placeholders.py | 23 +
src/signplus/services/async_/rename.py | 23 +
src/signplus/services/async_/send.py | 21 +
src/signplus/services/async_/set_comment.py | 23 +
.../services/async_/set_expiration_date.py | 23 +
.../services/async_/set_legality_level.py | 23 +
.../services/async_/set_notification.py | 23 +
src/signplus/services/async_/settings.py | 23 +
.../services/async_/signed_documents.py | 26 +
src/signplus/services/async_/signing_steps.py | 23 +
src/signplus/services/async_/template.py | 22 +
src/signplus/services/async_/template_id.py | 23 +
.../services/async_/template_template_id.py | 28 +
.../async_/template_template_id_annotation.py | 23 +
...te_template_id_annotation_annotation_id.py | 25 +
.../template_template_id_annotations.py | 21 +
...ate_template_id_annotations_document_id.py | 26 +
...te_template_id_attachments_placeholders.py | 27 +
...mplate_template_id_attachments_settings.py | 27 +
.../async_/template_template_id_document.py | 23 +
...mplate_template_id_document_document_id.py | 26 +
.../async_/template_template_id_documents.py | 21 +
.../async_/template_template_id_duplicate.py | 21 +
.../async_/template_template_id_rename.py | 23 +
.../template_template_id_set_comment.py | 23 +
.../template_template_id_set_notification.py | 27 +
.../template_template_id_signing_steps.py | 23 +
src/signplus/services/async_/templates.py | 22 +
src/signplus/services/async_/void.py | 21 +
src/signplus/services/async_/webhook.py | 22 +
src/signplus/services/async_/webhook_id.py | 17 +
src/signplus/services/async_/webhooks.py | 22 +
src/signplus/services/certificate.py | 75 ++
src/signplus/services/document.py | 81 ++
src/signplus/services/document_id.py | 80 ++
src/signplus/services/documents.py | 75 ++
src/signplus/services/duplicate.py | 75 ++
src/signplus/services/dynamic_fields.py | 81 ++
src/signplus/services/envelope.py | 74 ++
...ope_envelope_id_annotations_document_id.py | 80 ++
src/signplus/services/envelope_id.py | 119 +++
src/signplus/services/envelopes.py | 74 ++
src/signplus/services/file_id.py | 80 ++
src/signplus/services/placeholders.py | 83 ++
src/signplus/services/rename.py | 79 ++
src/signplus/services/send.py | 73 ++
src/signplus/services/set_comment.py | 81 ++
src/signplus/services/set_expiration_date.py | 81 ++
src/signplus/services/set_legality_level.py | 81 ++
src/signplus/services/set_notification.py | 81 ++
src/signplus/services/settings.py | 83 ++
src/signplus/services/signed_documents.py | 83 ++
src/signplus/services/signing_steps.py | 81 ++
src/signplus/services/template.py | 74 ++
src/signplus/services/template_id.py | 83 ++
src/signplus/services/template_template_id.py | 119 +++
.../template_template_id_annotation.py | 81 ++
...te_template_id_annotation_annotation_id.py | 75 ++
.../template_template_id_annotations.py | 75 ++
...ate_template_id_annotations_document_id.py | 80 ++
...te_template_id_attachments_placeholders.py | 83 ++
...mplate_template_id_attachments_settings.py | 83 ++
.../services/template_template_id_document.py | 81 ++
...mplate_template_id_document_document_id.py | 80 ++
.../template_template_id_documents.py | 75 ++
.../template_template_id_duplicate.py | 75 ++
.../services/template_template_id_rename.py | 79 ++
.../template_template_id_set_comment.py | 81 ++
.../template_template_id_set_notification.py | 81 ++
.../template_template_id_signing_steps.py | 81 ++
src/signplus/services/templates.py | 74 ++
src/signplus/services/utils/base_service.py | 91 +-
src/signplus/services/void.py | 73 ++
src/signplus/services/webhook.py | 74 ++
src/signplus/services/webhook_id.py | 65 ++
src/signplus/services/webhooks.py | 74 ++
267 files changed, 11035 insertions(+), 1451 deletions(-)
create mode 100644 documentation/models/AddEnvelopeAnnotationRequest.md
create mode 100644 documentation/models/AddEnvelopeAnnotationRequestCheckbox.md
create mode 100644 documentation/models/AddEnvelopeAnnotationRequestDatetime.md
create mode 100644 documentation/models/AddEnvelopeAnnotationRequestInitials.md
create mode 100644 documentation/models/AddEnvelopeAnnotationRequestSignature.md
create mode 100644 documentation/models/AddEnvelopeAnnotationRequestText.md
create mode 100644 documentation/models/AddEnvelopeSigningStepsRequestSigningSteps.md
create mode 100644 documentation/models/AddTemplateAnnotationRequest.md
create mode 100644 documentation/models/AddTemplateAnnotationRequestCheckbox.md
create mode 100644 documentation/models/AddTemplateAnnotationRequestDatetime.md
create mode 100644 documentation/models/AddTemplateAnnotationRequestInitials.md
create mode 100644 documentation/models/AddTemplateAnnotationRequestSignature.md
create mode 100644 documentation/models/AddTemplateAnnotationRequestText.md
create mode 100644 documentation/models/AddTemplateSigningStepsRequestSigningSteps.md
create mode 100644 documentation/models/DatetimeFont1.md
create mode 100644 documentation/models/DatetimeFont2.md
create mode 100644 documentation/models/DynamicFields.md
create mode 100644 documentation/models/SetEnvelopeAttachmentsPlaceholdersRequestPlaceholders.md
create mode 100644 documentation/models/SetEnvelopeAttachmentsSettingsRequestSettings.md
create mode 100644 documentation/models/SetEnvelopeExpirationDateRequest.md
create mode 100644 documentation/models/SetEnvelopeNotificationRequest.md
create mode 100644 documentation/models/SetTemplateAttachmentsPlaceholdersRequest.md
create mode 100644 documentation/models/SetTemplateAttachmentsPlaceholdersRequestPlaceholders.md
create mode 100644 documentation/models/SetTemplateAttachmentsSettingsRequest.md
create mode 100644 documentation/models/SetTemplateAttachmentsSettingsRequestSettings.md
create mode 100644 documentation/models/SetTemplateNotificationRequest.md
create mode 100644 documentation/models/SigningStepsRecipients1.md
create mode 100644 documentation/models/SigningStepsRecipients2.md
create mode 100644 documentation/models/TextFont1.md
create mode 100644 documentation/models/TextFont2.md
create mode 100644 documentation/models/Verification.md
create mode 100644 documentation/services/AnnotationIdService.md
create mode 100644 documentation/services/AnnotationService.md
create mode 100644 documentation/services/AnnotationsService.md
create mode 100644 documentation/services/CertificateService.md
create mode 100644 documentation/services/DocumentIdService.md
create mode 100644 documentation/services/DocumentService.md
create mode 100644 documentation/services/DocumentsService.md
create mode 100644 documentation/services/DuplicateService.md
create mode 100644 documentation/services/DynamicFieldsService.md
create mode 100644 documentation/services/EnvelopeEnvelopeIdAnnotationsDocumentIdService.md
create mode 100644 documentation/services/EnvelopeIdService.md
create mode 100644 documentation/services/EnvelopeService.md
create mode 100644 documentation/services/EnvelopesService.md
create mode 100644 documentation/services/FileIdService.md
create mode 100644 documentation/services/PlaceholdersService.md
create mode 100644 documentation/services/RenameService.md
create mode 100644 documentation/services/SendService.md
create mode 100644 documentation/services/SetCommentService.md
create mode 100644 documentation/services/SetExpirationDateService.md
create mode 100644 documentation/services/SetLegalityLevelService.md
create mode 100644 documentation/services/SetNotificationService.md
create mode 100644 documentation/services/SettingsService.md
create mode 100644 documentation/services/SignedDocumentsService.md
create mode 100644 documentation/services/SigningStepsService.md
create mode 100644 documentation/services/TemplateIdService.md
create mode 100644 documentation/services/TemplateService.md
create mode 100644 documentation/services/TemplateTemplateIdAnnotationAnnotationIdService.md
create mode 100644 documentation/services/TemplateTemplateIdAnnotationService.md
create mode 100644 documentation/services/TemplateTemplateIdAnnotationsDocumentIdService.md
create mode 100644 documentation/services/TemplateTemplateIdAnnotationsService.md
create mode 100644 documentation/services/TemplateTemplateIdAttachmentsPlaceholdersService.md
create mode 100644 documentation/services/TemplateTemplateIdAttachmentsSettingsService.md
create mode 100644 documentation/services/TemplateTemplateIdDocumentDocumentIdService.md
create mode 100644 documentation/services/TemplateTemplateIdDocumentService.md
create mode 100644 documentation/services/TemplateTemplateIdDocumentsService.md
create mode 100644 documentation/services/TemplateTemplateIdDuplicateService.md
create mode 100644 documentation/services/TemplateTemplateIdRenameService.md
create mode 100644 documentation/services/TemplateTemplateIdService.md
create mode 100644 documentation/services/TemplateTemplateIdSetCommentService.md
create mode 100644 documentation/services/TemplateTemplateIdSetNotificationService.md
create mode 100644 documentation/services/TemplateTemplateIdSigningStepsService.md
create mode 100644 documentation/services/TemplatesService.md
create mode 100644 documentation/services/VoidService.md
create mode 100644 documentation/services/WebhookIdService.md
create mode 100644 documentation/services/WebhookService.md
create mode 100644 documentation/services/WebhooksService.md
create mode 100644 documentation/snippets/snippets.json
create mode 100644 prettier.config.js
create mode 100644 src/signplus/models/add_envelope_annotation_request.py
create mode 100644 src/signplus/models/add_envelope_annotation_request_checkbox.py
create mode 100644 src/signplus/models/add_envelope_annotation_request_datetime.py
create mode 100644 src/signplus/models/add_envelope_annotation_request_initials.py
create mode 100644 src/signplus/models/add_envelope_annotation_request_signature.py
create mode 100644 src/signplus/models/add_envelope_annotation_request_text.py
create mode 100644 src/signplus/models/add_envelope_signing_steps_request_signing_steps.py
create mode 100644 src/signplus/models/add_template_annotation_request.py
create mode 100644 src/signplus/models/add_template_annotation_request_checkbox.py
create mode 100644 src/signplus/models/add_template_annotation_request_datetime.py
create mode 100644 src/signplus/models/add_template_annotation_request_initials.py
create mode 100644 src/signplus/models/add_template_annotation_request_signature.py
create mode 100644 src/signplus/models/add_template_annotation_request_text.py
create mode 100644 src/signplus/models/add_template_signing_steps_request_signing_steps.py
create mode 100644 src/signplus/models/datetime_font_1.py
create mode 100644 src/signplus/models/datetime_font_2.py
create mode 100644 src/signplus/models/dynamic_fields.py
create mode 100644 src/signplus/models/set_envelope_attachments_placeholders_request_placeholders.py
create mode 100644 src/signplus/models/set_envelope_attachments_settings_request_settings.py
create mode 100644 src/signplus/models/set_envelope_expiration_date_request.py
create mode 100644 src/signplus/models/set_envelope_notification_request.py
create mode 100644 src/signplus/models/set_template_attachments_placeholders_request.py
create mode 100644 src/signplus/models/set_template_attachments_placeholders_request_placeholders.py
create mode 100644 src/signplus/models/set_template_attachments_settings_request.py
create mode 100644 src/signplus/models/set_template_attachments_settings_request_settings.py
create mode 100644 src/signplus/models/set_template_notification_request.py
create mode 100644 src/signplus/models/signing_steps_recipients_1.py
create mode 100644 src/signplus/models/signing_steps_recipients_2.py
create mode 100644 src/signplus/models/text_font_1.py
create mode 100644 src/signplus/models/text_font_2.py
create mode 100644 src/signplus/models/utils/base_error.py
create mode 100644 src/signplus/models/verification.py
create mode 100644 src/signplus/net/sdk_config.py
create mode 100644 src/signplus/services/annotation.py
create mode 100644 src/signplus/services/annotation_id.py
create mode 100644 src/signplus/services/annotations.py
create mode 100644 src/signplus/services/async_/annotation.py
create mode 100644 src/signplus/services/async_/annotation_id.py
create mode 100644 src/signplus/services/async_/annotations.py
create mode 100644 src/signplus/services/async_/certificate.py
create mode 100644 src/signplus/services/async_/document.py
create mode 100644 src/signplus/services/async_/document_id.py
create mode 100644 src/signplus/services/async_/documents.py
create mode 100644 src/signplus/services/async_/duplicate.py
create mode 100644 src/signplus/services/async_/dynamic_fields.py
create mode 100644 src/signplus/services/async_/envelope.py
create mode 100644 src/signplus/services/async_/envelope_envelope_id_annotations_document_id.py
create mode 100644 src/signplus/services/async_/envelope_id.py
create mode 100644 src/signplus/services/async_/envelopes.py
create mode 100644 src/signplus/services/async_/file_id.py
create mode 100644 src/signplus/services/async_/placeholders.py
create mode 100644 src/signplus/services/async_/rename.py
create mode 100644 src/signplus/services/async_/send.py
create mode 100644 src/signplus/services/async_/set_comment.py
create mode 100644 src/signplus/services/async_/set_expiration_date.py
create mode 100644 src/signplus/services/async_/set_legality_level.py
create mode 100644 src/signplus/services/async_/set_notification.py
create mode 100644 src/signplus/services/async_/settings.py
create mode 100644 src/signplus/services/async_/signed_documents.py
create mode 100644 src/signplus/services/async_/signing_steps.py
create mode 100644 src/signplus/services/async_/template.py
create mode 100644 src/signplus/services/async_/template_id.py
create mode 100644 src/signplus/services/async_/template_template_id.py
create mode 100644 src/signplus/services/async_/template_template_id_annotation.py
create mode 100644 src/signplus/services/async_/template_template_id_annotation_annotation_id.py
create mode 100644 src/signplus/services/async_/template_template_id_annotations.py
create mode 100644 src/signplus/services/async_/template_template_id_annotations_document_id.py
create mode 100644 src/signplus/services/async_/template_template_id_attachments_placeholders.py
create mode 100644 src/signplus/services/async_/template_template_id_attachments_settings.py
create mode 100644 src/signplus/services/async_/template_template_id_document.py
create mode 100644 src/signplus/services/async_/template_template_id_document_document_id.py
create mode 100644 src/signplus/services/async_/template_template_id_documents.py
create mode 100644 src/signplus/services/async_/template_template_id_duplicate.py
create mode 100644 src/signplus/services/async_/template_template_id_rename.py
create mode 100644 src/signplus/services/async_/template_template_id_set_comment.py
create mode 100644 src/signplus/services/async_/template_template_id_set_notification.py
create mode 100644 src/signplus/services/async_/template_template_id_signing_steps.py
create mode 100644 src/signplus/services/async_/templates.py
create mode 100644 src/signplus/services/async_/void.py
create mode 100644 src/signplus/services/async_/webhook.py
create mode 100644 src/signplus/services/async_/webhook_id.py
create mode 100644 src/signplus/services/async_/webhooks.py
create mode 100644 src/signplus/services/certificate.py
create mode 100644 src/signplus/services/document.py
create mode 100644 src/signplus/services/document_id.py
create mode 100644 src/signplus/services/documents.py
create mode 100644 src/signplus/services/duplicate.py
create mode 100644 src/signplus/services/dynamic_fields.py
create mode 100644 src/signplus/services/envelope.py
create mode 100644 src/signplus/services/envelope_envelope_id_annotations_document_id.py
create mode 100644 src/signplus/services/envelope_id.py
create mode 100644 src/signplus/services/envelopes.py
create mode 100644 src/signplus/services/file_id.py
create mode 100644 src/signplus/services/placeholders.py
create mode 100644 src/signplus/services/rename.py
create mode 100644 src/signplus/services/send.py
create mode 100644 src/signplus/services/set_comment.py
create mode 100644 src/signplus/services/set_expiration_date.py
create mode 100644 src/signplus/services/set_legality_level.py
create mode 100644 src/signplus/services/set_notification.py
create mode 100644 src/signplus/services/settings.py
create mode 100644 src/signplus/services/signed_documents.py
create mode 100644 src/signplus/services/signing_steps.py
create mode 100644 src/signplus/services/template.py
create mode 100644 src/signplus/services/template_id.py
create mode 100644 src/signplus/services/template_template_id.py
create mode 100644 src/signplus/services/template_template_id_annotation.py
create mode 100644 src/signplus/services/template_template_id_annotation_annotation_id.py
create mode 100644 src/signplus/services/template_template_id_annotations.py
create mode 100644 src/signplus/services/template_template_id_annotations_document_id.py
create mode 100644 src/signplus/services/template_template_id_attachments_placeholders.py
create mode 100644 src/signplus/services/template_template_id_attachments_settings.py
create mode 100644 src/signplus/services/template_template_id_document.py
create mode 100644 src/signplus/services/template_template_id_document_document_id.py
create mode 100644 src/signplus/services/template_template_id_documents.py
create mode 100644 src/signplus/services/template_template_id_duplicate.py
create mode 100644 src/signplus/services/template_template_id_rename.py
create mode 100644 src/signplus/services/template_template_id_set_comment.py
create mode 100644 src/signplus/services/template_template_id_set_notification.py
create mode 100644 src/signplus/services/template_template_id_signing_steps.py
create mode 100644 src/signplus/services/templates.py
create mode 100644 src/signplus/services/void.py
create mode 100644 src/signplus/services/webhook.py
create mode 100644 src/signplus/services/webhook_id.py
create mode 100644 src/signplus/services/webhooks.py
diff --git a/.manifest.json b/.manifest.json
index 3eda50e..5644e6b 100644
--- a/.manifest.json
+++ b/.manifest.json
@@ -1,24 +1,24 @@
{
- "liblabVersion": "2.25.46",
- "date": "2025-09-17T12:01:31.599Z",
+ "liblabVersion": "1.1.2",
+ "date": "2026-05-01T10:04:51.525Z",
"config": {
- "apiId": 2744,
- "sdkName": "signplus",
- "sdkVersion": "1.4.0",
- "languages": ["python"],
- "auth": ["bearer"],
- "docs": [],
- "liblabVersion": "2",
- "deliveryMethods": ["zip"],
- "rawConfig": {
- "sdkName": "signplus",
- "apiVersion": "2.5.0",
- "apiName": "signplus-api",
- "specFilePath": "openapi.yaml",
- "languages": ["csharp", "go", "python", "typescript", "java", "php"],
- "auth": ["bearer"],
- "customizations": {
- "includeOptionalSnippetParameters": true,
+ "languages": [
+ "python"
+ ],
+ "deliveryMethods": [
+ "zip"
+ ],
+ "languageOptions": {
+ "java": {
+ "githubRepoName": "signplus-sharp",
+ "retry": {
+ "enabled": true,
+ "maxAttempts": 3,
+ "retryDelay": 150
+ },
+ "license": {
+ "type": "MIT"
+ },
"authentication": {
"access": {
"prefix": "Bearer"
@@ -26,186 +26,160 @@
},
"devContainer": false,
"generateEnv": true,
- "inferServiceNames": false,
+ "responseHeaders": false,
+ "includeOptionalSnippetParameters": true,
"injectedModels": [],
+ "inferServiceNames": false,
+ "groupId": "com.alohi",
+ "artifactId": "signplus",
+ "developers": [
+ {
+ "name": "Alohi SA",
+ "email": "support@alohi.com",
+ "organization": "Alohi SA",
+ "organizationUrl": "https://www.alohi.com"
+ }
+ ]
+ },
+ "typescript": {
+ "githubRepoName": "signplus-typescript",
+ "retry": {
+ "enabled": true,
+ "maxAttempts": 3,
+ "retryDelay": 150
+ },
"license": {
"type": "MIT"
},
+ "authentication": {
+ "access": {
+ "prefix": "Bearer"
+ }
+ },
+ "devContainer": false,
+ "generateEnv": true,
"responseHeaders": false,
+ "includeOptionalSnippetParameters": true,
+ "injectedModels": [],
+ "inferServiceNames": false,
+ "npmOrg": "alohi",
+ "npmName": "signplus-typescript",
+ "httpClient": "axios",
+ "bundle": false,
+ "exportClassDefault": false
+ },
+ "python": {
+ "githubRepoName": "signplus-python",
"retry": {
"enabled": true,
"maxAttempts": 3,
"retryDelay": 150
- }
- },
- "languageOptions": {
- "python": {
- "alwaysInitializeOptionals": false,
- "pypiPackageName": "signplus-python",
- "githubRepoName": "signplus-python",
- "ignoreFiles": [],
- "sdkVersion": "1.4.0",
- "liblabVersion": "2",
- "additionalConstructorParameters": []
},
- "java": {
- "githubRepoName": "signplus-java",
- "groupId": "com.alohi",
- "artifactId": "signplus",
- "sdkVersion": "2.4.0",
- "liblabVersion": "2",
- "developers": [
- {
- "name": "Alohi SA",
- "email": "support@alohi.com",
- "organization": "Alohi SA",
- "organizationUrl": "https://www.alohi.com"
- }
- ],
- "additionalConstructorParameters": []
+ "license": {
+ "type": "MIT"
},
- "typescript": {
- "bundle": false,
- "exportClassDefault": false,
- "httpClient": "axios",
- "npmName": "signplus-typescript",
- "npmOrg": "alohi",
- "githubRepoName": "signplus-typescript",
- "ignoreFiles": [],
- "sdkVersion": "2.4.0",
- "liblabVersion": "2",
- "additionalConstructorParameters": []
+ "authentication": {
+ "access": {
+ "prefix": "Bearer"
+ }
},
- "go": {
- "goModuleName": "github.com/alohihq/signplus-go",
- "githubRepoName": "signplus-go",
- "ignoreFiles": [],
- "sdkVersion": "1.4.0",
- "liblabVersion": "2",
- "additionalConstructorParameters": []
+ "devContainer": false,
+ "generateEnv": true,
+ "responseHeaders": false,
+ "includeOptionalSnippetParameters": true,
+ "injectedModels": [],
+ "inferServiceNames": false,
+ "pypiPackageName": "signplus-python",
+ "classifiers": [
+ "Development Status :: 5 - Production/Stable",
+ "License :: OSI Approved :: MIT License",
+ "Topic :: Software Development"
+ ]
+ },
+ "go": {
+ "githubRepoName": "signplus-sharp",
+ "retry": {
+ "enabled": true,
+ "maxAttempts": 3,
+ "retryDelay": 150
},
- "php": {
- "packageName": "alohi/signplus",
- "githubRepoName": "signplus-php",
- "ignoreFiles": [],
- "sdkVersion": "2.4.0",
- "liblabVersion": "2",
- "additionalConstructorParameters": []
+ "license": {
+ "type": "MIT"
+ },
+ "authentication": {
+ "access": {
+ "prefix": "Bearer"
+ }
},
- "csharp": {
- "packageId": "Alohi.Signplus",
- "githubRepoName": "signplus-sharp",
- "ignoreFiles": [],
- "sdkVersion": "1.4.0",
- "liblabVersion": "2"
- }
+ "devContainer": false,
+ "generateEnv": true,
+ "responseHeaders": false,
+ "includeOptionalSnippetParameters": true,
+ "injectedModels": [],
+ "inferServiceNames": false,
+ "goModuleName": "github.com/alohihq/signplus-go"
},
- "publishing": {
- "githubOrg": "alohihq"
- }
- },
- "liblabConfigVersion": "1.0.0",
- "apiVersion": "2.5.0",
- "apiName": "signplus-api",
- "specFilePath": "openapi.yaml",
- "createDocs": false,
- "languageOptions": {
"csharp": {
"githubRepoName": "signplus-sharp",
- "ignoreFiles": [],
- "liblabVersion": "2",
- "renameIllegalModelProperties": true,
- "sdkVersion": "1.4.0",
- "packageId": "Alohi.Signplus"
- },
- "go": {
- "githubRepoName": "signplus-go",
- "ignoreFiles": [],
- "liblabVersion": "2",
- "renameIllegalModelProperties": true,
- "sdkVersion": "1.4.0",
- "goModuleName": "github.com/alohihq/signplus-go",
- "additionalConstructorParameters": []
- },
- "java": {
- "githubRepoName": "signplus-java",
- "ignoreFiles": [],
- "liblabVersion": "2",
- "renameIllegalModelProperties": true,
- "sdkVersion": "2.4.0",
- "groupId": "com.alohi",
- "artifactId": "signplus",
- "includeKotlinSnippets": false,
- "developers": [
- {
- "name": "Alohi SA",
- "email": "support@alohi.com",
- "organization": "Alohi SA",
- "organizationUrl": "https://www.alohi.com"
+ "retry": {
+ "enabled": true,
+ "maxAttempts": 3,
+ "retryDelay": 150
+ },
+ "license": {
+ "type": "MIT"
+ },
+ "authentication": {
+ "access": {
+ "prefix": "Bearer"
}
- ],
- "additionalConstructorParameters": []
- },
- "python": {
- "githubRepoName": "signplus-python",
- "ignoreFiles": [],
- "liblabVersion": "2",
- "renameIllegalModelProperties": true,
- "sdkVersion": "1.4.0",
- "alwaysInitializeOptionals": false,
- "additionalConstructorParameters": [],
- "pypiPackageName": "signplus-python"
+ },
+ "devContainer": false,
+ "generateEnv": true,
+ "responseHeaders": false,
+ "includeOptionalSnippetParameters": true,
+ "injectedModels": [],
+ "inferServiceNames": false,
+ "packageId": "Alohi.Signplus"
},
"php": {
- "githubRepoName": "signplus-php",
- "ignoreFiles": [],
- "liblabVersion": "2",
- "renameIllegalModelProperties": true,
- "sdkVersion": "2.4.0",
- "additionalConstructorParameters": [],
+ "githubRepoName": "signplus-sharp",
+ "retry": {
+ "enabled": true,
+ "maxAttempts": 3,
+ "retryDelay": 150
+ },
+ "license": {
+ "type": "MIT"
+ },
+ "authentication": {
+ "access": {
+ "prefix": "Bearer"
+ }
+ },
+ "devContainer": false,
+ "generateEnv": true,
+ "responseHeaders": false,
+ "includeOptionalSnippetParameters": true,
+ "injectedModels": [],
+ "inferServiceNames": false,
"packageName": "alohi/signplus"
- },
- "typescript": {
- "githubRepoName": "signplus-typescript",
- "ignoreFiles": [],
- "liblabVersion": "2",
- "renameIllegalModelProperties": true,
- "sdkVersion": "2.4.0",
- "additionalConstructorParameters": [],
- "bundle": false,
- "denoteCommon": false,
- "exportClassDefault": false,
- "generateEnumAs": "enum",
- "httpClient": "axios",
- "npmName": "signplus-typescript",
- "npmOrg": "alohi"
}
},
- "validationsToIgnore": [],
+ "includeWatermark": false,
+ "responseHeaders": false,
+ "sdkName": "signplus",
+ "sdkVersion": "3.0.0",
+ "auth": [
+ "bearer"
+ ],
+ "apiVersion": "2.5.0",
"publishing": {
- "githubOrg": "alohihq",
- "platform": "github"
+ "githubOrg": "alohihq"
},
- "analytics": {
- "streaming": false,
- "pagination": false
+ "customCode": {
+ "trackChanges": true
},
- "authentication": {
- "access": {
- "prefix": "Bearer"
- }
- },
- "devContainer": false,
- "generateEnv": true,
- "includeOptionalSnippetParameters": true,
- "license": {
- "type": "MIT",
- "name": "MIT",
- "url": "https://opensource.org/licenses/MIT",
- "path": "MIT.ejs"
- },
- "responseHeaders": false,
- "buildAllModels": false,
"retry": {
"enabled": true,
"maxAttempts": 3,
@@ -213,17 +187,39 @@
"maxDelay": 5000,
"retryDelayJitter": 50,
"backOffFactor": 2,
- "httpCodesToRetry": [408, 429, 500, 502, 503, 504],
- "httpMethodsToRetry": ["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "OPTIONS"]
+ "httpMethodsToRetry": [
+ "GET",
+ "POST",
+ "PUT",
+ "DELETE",
+ "PATCH",
+ "HEAD",
+ "OPTIONS"
+ ]
},
- "multiTenant": true,
- "includeWatermark": false,
+ "license": {
+ "type": "MIT",
+ "name": "MIT",
+ "url": "https://opensource.org/licenses/MIT",
+ "path": "MIT.ejs"
+ },
+ "authentication": {
+ "access": {
+ "prefix": "Bearer"
+ }
+ },
+ "devContainer": false,
+ "generateEnv": true,
+ "includeOptionalSnippetParameters": true,
+ "injectedModels": [],
+ "inferServiceNames": false,
"githubRepoName": "signplus-python",
- "ignoreFiles": [],
- "renameIllegalModelProperties": true,
- "alwaysInitializeOptionals": false,
- "additionalConstructorParameters": [],
"pypiPackageName": "signplus-python",
+ "classifiers": [
+ "Development Status :: 5 - Production/Stable",
+ "License :: OSI Approved :: MIT License",
+ "Topic :: Software Development"
+ ],
"language": "python",
"deliveryMethod": "zip",
"hooks": {
@@ -233,27 +229,33 @@
"usesFormData": false,
"environmentVariables": [],
"fileOutput": "/tmp",
- "inferServiceNames": false,
"httpLibrary": {
"name": "axios",
"packages": {
- "axios": "^1.9.0"
+ "axios": "^1.13.2"
},
- "languages": ["typescript"]
+ "languages": [
+ "typescript"
+ ]
},
+ "multiTenant": false,
"customQueries": {
"paths": [],
"rawQueries": [],
"queriesData": []
},
"ai": false,
- "specType": "openapi",
+ "specType": "postman",
"deprecatedOperations": {
"include": true
+ },
+ "multipleResponses": {
+ "enabled": false
}
},
"files": [
"src/signplus/models/utils/base_model.py",
+ "src/signplus/models/utils/base_error.py",
"src/signplus/models/utils/json_map.py",
"src/signplus/models/__init__.py",
"src/signplus/services/__init__.py",
@@ -262,7 +264,6 @@
"src/signplus/net/__init__.py",
"src/signplus/net/headers/__init__.py",
"src/signplus/net/transport/__init__.py",
- "src/signplus/hooks/__init__.py",
"src/signplus/net/environment/__init__.py",
"src/signplus/net/request_chain/__init__.py",
"src/signplus/net/request_chain/handlers/__init__.py",
@@ -281,7 +282,6 @@
".gitignore",
"src/signplus/models/utils/cast_models.py",
"src/signplus/net/transport/utils.py",
- "src/signplus/hooks/hook.py",
"install.sh",
"install.cmd",
"examples/install.sh",
@@ -292,155 +292,550 @@
"src/signplus/net/request_chain/request_chain.py",
"src/signplus/net/request_chain/handlers/base_handler.py",
"src/signplus/net/request_chain/handlers/http_handler.py",
- "src/signplus/net/request_chain/handlers/hook_handler.py",
"src/signplus/net/request_chain/handlers/retry_handler.py",
"examples/sample.py",
"src/signplus/services/utils/default_headers.py",
"LICENSE",
- "documentation/models/CreateEnvelopeRequest.md",
- "documentation/models/Envelope.md",
+ "documentation/snippets/snippets.json",
"documentation/models/CreateEnvelopeFromTemplateRequest.md",
- "documentation/models/ListEnvelopesRequest.md",
- "documentation/models/ListEnvelopesResponse.md",
- "documentation/models/Document.md",
- "documentation/models/ListEnvelopeDocumentsResponse.md",
"documentation/models/AddEnvelopeDocumentRequest.md",
"documentation/models/SetEnvelopeDynamicFieldsRequest.md",
"documentation/models/AddEnvelopeSigningStepsRequest.md",
"documentation/models/SetEnvelopeAttachmentsSettingsRequest.md",
- "documentation/models/EnvelopeAttachments.md",
"documentation/models/SetEnvelopeAttachmentsPlaceholdersRequest.md",
"documentation/models/RenameEnvelopeRequest.md",
"documentation/models/SetEnvelopeCommentRequest.md",
- "documentation/models/EnvelopeNotification.md",
- "documentation/models/SetEnvelopeExpirationRequest.md",
+ "documentation/models/SetEnvelopeNotificationRequest.md",
+ "documentation/models/SetEnvelopeExpirationDateRequest.md",
"documentation/models/SetEnvelopeLegalityLevelRequest.md",
- "documentation/models/Annotation.md",
- "documentation/models/ListEnvelopeDocumentAnnotationsResponse.md",
- "documentation/models/AddAnnotationRequest.md",
- "documentation/models/CreateTemplateRequest.md",
- "documentation/models/Template.md",
- "documentation/models/ListTemplatesRequest.md",
- "documentation/models/ListTemplatesResponse.md",
+ "documentation/models/AddEnvelopeAnnotationRequest.md",
+ "documentation/models/CreateEnvelopeRequest.md",
+ "documentation/models/ListEnvelopesRequest.md",
"documentation/models/AddTemplateDocumentRequest.md",
- "documentation/models/ListTemplateDocumentsResponse.md",
"documentation/models/AddTemplateSigningStepsRequest.md",
"documentation/models/RenameTemplateRequest.md",
"documentation/models/SetTemplateCommentRequest.md",
- "documentation/models/ListTemplateAnnotationsResponse.md",
- "documentation/models/ListTemplateDocumentAnnotationsResponse.md",
+ "documentation/models/SetTemplateNotificationRequest.md",
+ "documentation/models/AddTemplateAnnotationRequest.md",
+ "documentation/models/SetTemplateAttachmentsSettingsRequest.md",
+ "documentation/models/SetTemplateAttachmentsPlaceholdersRequest.md",
+ "documentation/models/CreateTemplateRequest.md",
+ "documentation/models/ListTemplatesRequest.md",
"documentation/models/CreateWebhookRequest.md",
- "documentation/models/Webhook.md",
"documentation/models/ListWebhooksRequest.md",
- "documentation/models/ListWebhooksResponse.md",
- "documentation/models/EnvelopeLegalityLevel.md",
- "documentation/models/EnvelopeFlowType.md",
- "documentation/models/EnvelopeStatus.md",
- "documentation/models/SigningStep.md",
- "documentation/models/Recipient.md",
- "documentation/models/RecipientRole.md",
- "documentation/models/RecipientVerification.md",
- "documentation/models/RecipientVerificationType.md",
- "documentation/models/Page.md",
- "documentation/models/AttachmentSettings.md",
- "documentation/models/AttachmentPlaceholdersPerRecipient.md",
- "documentation/models/AttachmentPlaceholder.md",
- "documentation/models/AttachmentPlaceholderFile.md",
- "documentation/models/EnvelopeOrderField.md",
- "documentation/models/DynamicField.md",
- "documentation/models/AttachmentPlaceholderRequest.md",
- "documentation/models/AnnotationType.md",
- "documentation/models/AnnotationSignature.md",
- "documentation/models/AnnotationInitials.md",
- "documentation/models/AnnotationText.md",
- "documentation/models/AnnotationDateTime.md",
- "documentation/models/AnnotationCheckbox.md",
- "documentation/models/AnnotationFont.md",
- "documentation/models/AnnotationFontFamily.md",
- "documentation/models/AnnotationDateTimeFormat.md",
- "documentation/models/AnnotationCheckboxStyle.md",
- "documentation/models/TemplateSigningStep.md",
- "documentation/models/TemplateRecipient.md",
- "documentation/models/TemplateRecipientRole.md",
- "documentation/models/TemplateOrderField.md",
- "documentation/models/WebhookEvent.md",
+ "documentation/models/DynamicFields.md",
+ "documentation/models/AddEnvelopeSigningStepsRequestSigningSteps.md",
+ "documentation/models/SigningStepsRecipients1.md",
+ "documentation/models/Verification.md",
+ "documentation/models/SetEnvelopeAttachmentsSettingsRequestSettings.md",
+ "documentation/models/SetEnvelopeAttachmentsPlaceholdersRequestPlaceholders.md",
+ "documentation/models/AddEnvelopeAnnotationRequestSignature.md",
+ "documentation/models/AddEnvelopeAnnotationRequestInitials.md",
+ "documentation/models/AddEnvelopeAnnotationRequestText.md",
+ "documentation/models/AddEnvelopeAnnotationRequestDatetime.md",
+ "documentation/models/AddEnvelopeAnnotationRequestCheckbox.md",
+ "documentation/models/TextFont1.md",
+ "documentation/models/DatetimeFont1.md",
+ "documentation/models/AddTemplateSigningStepsRequestSigningSteps.md",
+ "documentation/models/SigningStepsRecipients2.md",
+ "documentation/models/AddTemplateAnnotationRequestSignature.md",
+ "documentation/models/AddTemplateAnnotationRequestInitials.md",
+ "documentation/models/AddTemplateAnnotationRequestText.md",
+ "documentation/models/AddTemplateAnnotationRequestDatetime.md",
+ "documentation/models/AddTemplateAnnotationRequestCheckbox.md",
+ "documentation/models/TextFont2.md",
+ "documentation/models/DatetimeFont2.md",
+ "documentation/models/SetTemplateAttachmentsSettingsRequestSettings.md",
+ "documentation/models/SetTemplateAttachmentsPlaceholdersRequestPlaceholders.md",
"src/signplus/models/utils/one_of_base_model.py",
"src/signplus/services/async_/utils/to_async.py",
- "src/signplus/services/async_/signplus.py",
+ "src/signplus/services/async_/template_id.py",
+ "src/signplus/services/async_/signed_documents.py",
+ "src/signplus/services/async_/certificate.py",
+ "src/signplus/services/async_/document_id.py",
+ "src/signplus/services/async_/document.py",
+ "src/signplus/services/async_/documents.py",
+ "src/signplus/services/async_/dynamic_fields.py",
+ "src/signplus/services/async_/signing_steps.py",
+ "src/signplus/services/async_/settings.py",
+ "src/signplus/services/async_/placeholders.py",
+ "src/signplus/services/async_/file_id.py",
+ "src/signplus/services/async_/send.py",
+ "src/signplus/services/async_/duplicate.py",
+ "src/signplus/services/async_/void.py",
+ "src/signplus/services/async_/rename.py",
+ "src/signplus/services/async_/set_comment.py",
+ "src/signplus/services/async_/set_notification.py",
+ "src/signplus/services/async_/set_expiration_date.py",
+ "src/signplus/services/async_/set_legality_level.py",
+ "src/signplus/services/async_/envelope_envelope_id_annotations_document_id.py",
+ "src/signplus/services/async_/annotations.py",
+ "src/signplus/services/async_/annotation_id.py",
+ "src/signplus/services/async_/annotation.py",
+ "src/signplus/services/async_/envelope_id.py",
+ "src/signplus/services/async_/envelope.py",
+ "src/signplus/services/async_/envelopes.py",
+ "src/signplus/services/async_/template_template_id_duplicate.py",
+ "src/signplus/services/async_/template_template_id_document_document_id.py",
+ "src/signplus/services/async_/template_template_id_document.py",
+ "src/signplus/services/async_/template_template_id_documents.py",
+ "src/signplus/services/async_/template_template_id_signing_steps.py",
+ "src/signplus/services/async_/template_template_id_rename.py",
+ "src/signplus/services/async_/template_template_id_set_comment.py",
+ "src/signplus/services/async_/template_template_id_set_notification.py",
+ "src/signplus/services/async_/template_template_id_annotations_document_id.py",
+ "src/signplus/services/async_/template_template_id_annotations.py",
+ "src/signplus/services/async_/template_template_id_annotation_annotation_id.py",
+ "src/signplus/services/async_/template_template_id_annotation.py",
+ "src/signplus/services/async_/template_template_id_attachments_settings.py",
+ "src/signplus/services/async_/template_template_id_attachments_placeholders.py",
+ "src/signplus/services/async_/template_template_id.py",
+ "src/signplus/services/async_/template.py",
+ "src/signplus/services/async_/templates.py",
+ "src/signplus/services/async_/webhook_id.py",
+ "src/signplus/services/async_/webhook.py",
+ "src/signplus/services/async_/webhooks.py",
"src/signplus/sdk_async.py",
"src/signplus/models/utils/sentinel.py",
".env.example",
"examples/.env.example",
- "src/signplus/models/envelope_legality_level.py",
- "src/signplus/models/envelope_flow_type.py",
- "src/signplus/models/envelope_status.py",
- "src/signplus/models/recipient_role.py",
- "src/signplus/models/recipient_verification_type.py",
- "src/signplus/models/envelope_order_field.py",
- "src/signplus/models/annotation_type.py",
- "src/signplus/models/annotation_font_family.py",
- "src/signplus/models/annotation_date_time_format.py",
- "src/signplus/models/annotation_checkbox_style.py",
- "src/signplus/models/template_recipient_role.py",
- "src/signplus/models/template_order_field.py",
- "src/signplus/models/webhook_event.py",
- "src/signplus/models/create_envelope_request.py",
- "src/signplus/models/envelope.py",
+ "src/signplus/net/sdk_config.py",
+ "src/signplus/services/template_id.py",
+ "src/signplus/services/signed_documents.py",
+ "src/signplus/services/certificate.py",
+ "src/signplus/services/document_id.py",
+ "src/signplus/services/document.py",
+ "src/signplus/services/documents.py",
+ "src/signplus/services/dynamic_fields.py",
+ "src/signplus/services/signing_steps.py",
+ "src/signplus/services/settings.py",
+ "src/signplus/services/placeholders.py",
+ "src/signplus/services/file_id.py",
+ "src/signplus/services/send.py",
+ "src/signplus/services/duplicate.py",
+ "src/signplus/services/void.py",
+ "src/signplus/services/rename.py",
+ "src/signplus/services/set_comment.py",
+ "src/signplus/services/set_notification.py",
+ "src/signplus/services/set_expiration_date.py",
+ "src/signplus/services/set_legality_level.py",
+ "src/signplus/services/envelope_envelope_id_annotations_document_id.py",
+ "src/signplus/services/annotations.py",
+ "src/signplus/services/annotation_id.py",
+ "src/signplus/services/annotation.py",
+ "src/signplus/services/envelope.py",
+ "src/signplus/services/envelopes.py",
+ "src/signplus/services/template_template_id_duplicate.py",
+ "src/signplus/services/template_template_id_document_document_id.py",
+ "src/signplus/services/template_template_id_document.py",
+ "src/signplus/services/template_template_id_documents.py",
+ "src/signplus/services/template_template_id_signing_steps.py",
+ "src/signplus/services/template_template_id_rename.py",
+ "src/signplus/services/template_template_id_set_comment.py",
+ "src/signplus/services/template_template_id_set_notification.py",
+ "src/signplus/services/template_template_id_annotations_document_id.py",
+ "src/signplus/services/template_template_id_annotations.py",
+ "src/signplus/services/template_template_id_annotation_annotation_id.py",
+ "src/signplus/services/template_template_id_annotation.py",
+ "src/signplus/services/template_template_id_attachments_settings.py",
+ "src/signplus/services/template_template_id_attachments_placeholders.py",
+ "src/signplus/services/template.py",
+ "src/signplus/services/templates.py",
+ "src/signplus/services/webhook_id.py",
+ "src/signplus/services/webhook.py",
+ "src/signplus/services/webhooks.py",
+ "documentation/services/TemplateIdService.md",
+ "documentation/services/SignedDocumentsService.md",
+ "documentation/services/CertificateService.md",
+ "documentation/services/DocumentIdService.md",
+ "documentation/services/DocumentService.md",
+ "documentation/services/DocumentsService.md",
+ "documentation/services/DynamicFieldsService.md",
+ "documentation/services/SigningStepsService.md",
+ "documentation/services/SettingsService.md",
+ "documentation/services/PlaceholdersService.md",
+ "documentation/services/FileIdService.md",
+ "documentation/services/SendService.md",
+ "documentation/services/DuplicateService.md",
+ "documentation/services/VoidService.md",
+ "documentation/services/RenameService.md",
+ "documentation/services/SetCommentService.md",
+ "documentation/services/SetNotificationService.md",
+ "documentation/services/SetExpirationDateService.md",
+ "documentation/services/SetLegalityLevelService.md",
+ "documentation/services/EnvelopeEnvelopeIdAnnotationsDocumentIdService.md",
+ "documentation/services/AnnotationsService.md",
+ "documentation/services/AnnotationIdService.md",
+ "documentation/services/AnnotationService.md",
+ "documentation/services/EnvelopeService.md",
+ "documentation/services/EnvelopesService.md",
+ "documentation/services/TemplateTemplateIdDuplicateService.md",
+ "documentation/services/TemplateTemplateIdDocumentDocumentIdService.md",
+ "documentation/services/TemplateTemplateIdDocumentService.md",
+ "documentation/services/TemplateTemplateIdDocumentsService.md",
+ "documentation/services/TemplateTemplateIdSigningStepsService.md",
+ "documentation/services/TemplateTemplateIdRenameService.md",
+ "documentation/services/TemplateTemplateIdSetCommentService.md",
+ "documentation/services/TemplateTemplateIdSetNotificationService.md",
+ "documentation/services/TemplateTemplateIdAnnotationsDocumentIdService.md",
+ "documentation/services/TemplateTemplateIdAnnotationsService.md",
+ "documentation/services/TemplateTemplateIdAnnotationAnnotationIdService.md",
+ "documentation/services/TemplateTemplateIdAnnotationService.md",
+ "documentation/services/TemplateTemplateIdAttachmentsSettingsService.md",
+ "documentation/services/TemplateTemplateIdAttachmentsPlaceholdersService.md",
+ "documentation/services/TemplateService.md",
+ "documentation/services/TemplatesService.md",
+ "documentation/services/WebhookIdService.md",
+ "documentation/services/WebhookService.md",
+ "documentation/services/WebhooksService.md",
"src/signplus/models/create_envelope_from_template_request.py",
- "src/signplus/models/list_envelopes_request.py",
- "src/signplus/models/list_envelopes_response.py",
- "src/signplus/models/document.py",
- "src/signplus/models/list_envelope_documents_response.py",
"src/signplus/models/add_envelope_document_request.py",
"src/signplus/models/set_envelope_dynamic_fields_request.py",
"src/signplus/models/add_envelope_signing_steps_request.py",
"src/signplus/models/set_envelope_attachments_settings_request.py",
- "src/signplus/models/envelope_attachments.py",
"src/signplus/models/set_envelope_attachments_placeholders_request.py",
"src/signplus/models/rename_envelope_request.py",
"src/signplus/models/set_envelope_comment_request.py",
- "src/signplus/models/envelope_notification.py",
- "src/signplus/models/set_envelope_expiration_request.py",
+ "src/signplus/models/set_envelope_notification_request.py",
+ "src/signplus/models/set_envelope_expiration_date_request.py",
"src/signplus/models/set_envelope_legality_level_request.py",
- "src/signplus/models/annotation.py",
- "src/signplus/models/list_envelope_document_annotations_response.py",
- "src/signplus/models/add_annotation_request.py",
- "src/signplus/models/create_template_request.py",
- "src/signplus/models/template.py",
- "src/signplus/models/list_templates_request.py",
- "src/signplus/models/list_templates_response.py",
+ "src/signplus/models/add_envelope_annotation_request.py",
+ "src/signplus/models/create_envelope_request.py",
+ "src/signplus/models/list_envelopes_request.py",
"src/signplus/models/add_template_document_request.py",
- "src/signplus/models/list_template_documents_response.py",
"src/signplus/models/add_template_signing_steps_request.py",
"src/signplus/models/rename_template_request.py",
"src/signplus/models/set_template_comment_request.py",
- "src/signplus/models/list_template_annotations_response.py",
- "src/signplus/models/list_template_document_annotations_response.py",
+ "src/signplus/models/set_template_notification_request.py",
+ "src/signplus/models/add_template_annotation_request.py",
+ "src/signplus/models/set_template_attachments_settings_request.py",
+ "src/signplus/models/set_template_attachments_placeholders_request.py",
+ "src/signplus/models/create_template_request.py",
+ "src/signplus/models/list_templates_request.py",
"src/signplus/models/create_webhook_request.py",
- "src/signplus/models/webhook.py",
"src/signplus/models/list_webhooks_request.py",
- "src/signplus/models/list_webhooks_response.py",
- "src/signplus/models/signing_step.py",
- "src/signplus/models/recipient.py",
- "src/signplus/models/recipient_verification.py",
- "src/signplus/models/page.py",
- "src/signplus/models/attachment_settings.py",
- "src/signplus/models/attachment_placeholders_per_recipient.py",
- "src/signplus/models/attachment_placeholder.py",
- "src/signplus/models/attachment_placeholder_file.py",
- "src/signplus/models/dynamic_field.py",
- "src/signplus/models/attachment_placeholder_request.py",
- "src/signplus/models/annotation_signature.py",
- "src/signplus/models/annotation_initials.py",
- "src/signplus/models/annotation_text.py",
- "src/signplus/models/annotation_date_time.py",
- "src/signplus/models/annotation_checkbox.py",
- "src/signplus/models/annotation_font.py",
- "src/signplus/models/template_signing_step.py",
- "src/signplus/models/template_recipient.py",
+ "src/signplus/models/dynamic_fields.py",
+ "src/signplus/models/add_envelope_signing_steps_request_signing_steps.py",
+ "src/signplus/models/signing_steps_recipients_1.py",
+ "src/signplus/models/verification.py",
+ "src/signplus/models/set_envelope_attachments_settings_request_settings.py",
+ "src/signplus/models/set_envelope_attachments_placeholders_request_placeholders.py",
+ "src/signplus/models/add_envelope_annotation_request_signature.py",
+ "src/signplus/models/add_envelope_annotation_request_initials.py",
+ "src/signplus/models/add_envelope_annotation_request_text.py",
+ "src/signplus/models/add_envelope_annotation_request_datetime.py",
+ "src/signplus/models/add_envelope_annotation_request_checkbox.py",
+ "src/signplus/models/text_font_1.py",
+ "src/signplus/models/datetime_font_1.py",
+ "src/signplus/models/add_template_signing_steps_request_signing_steps.py",
+ "src/signplus/models/signing_steps_recipients_2.py",
+ "src/signplus/models/add_template_annotation_request_signature.py",
+ "src/signplus/models/add_template_annotation_request_initials.py",
+ "src/signplus/models/add_template_annotation_request_text.py",
+ "src/signplus/models/add_template_annotation_request_datetime.py",
+ "src/signplus/models/add_template_annotation_request_checkbox.py",
+ "src/signplus/models/text_font_2.py",
+ "src/signplus/models/datetime_font_2.py",
+ "src/signplus/models/set_template_attachments_settings_request_settings.py",
+ "src/signplus/models/set_template_attachments_placeholders_request_placeholders.py",
+ "src/signplus/services/envelope_id.py",
+ "src/signplus/services/template_template_id.py",
+ "documentation/services/EnvelopeIdService.md",
+ "documentation/services/TemplateTemplateIdService.md",
"README.md",
- "PyPI_README.md",
- "documentation/services/SignplusService.md",
- "src/signplus/services/signplus.py"
- ]
+ "PyPI_README.md"
+ ],
+ "fileHashes": {
+ ".env.example": "4fb1ccb01931cc8124c1fd6d88721547b83f2d48bd0ddf29b4827a31983ad12c",
+ ".gitignore": "6bbf1931dedfa978c086f704675227391491eeb602840bea6d83e20394768b77",
+ "LICENSE": "3ec558dc6e9c9355ab4b28c942caa92bf90b0b82c12d7838d2ef92467ad135c1",
+ "PyPI_README.md": "9f09534c8a5bff53400f5c0a80fe1e7982060b2278dbcf9d8f4619256b304a25",
+ "README.md": "78a41d4d7d6a6ef6dc862ebc2d7492116149c37e0cc866d1d83421fb3f47bca8",
+ "documentation/models/AddEnvelopeAnnotationRequest.md": "524b1810c6330448be90c3732526107a82177d08f33722f9cb29cf222041aa26",
+ "documentation/models/AddEnvelopeAnnotationRequestCheckbox.md": "5bf7c34633d01f0d8e9c2ffe2e0b2028822b81cb64c6e2691035fadf95c37484",
+ "documentation/models/AddEnvelopeAnnotationRequestDatetime.md": "1e449ad05d9807e61940a913b4bd620d70dcfb013c502be71889f0cda37d4421",
+ "documentation/models/AddEnvelopeAnnotationRequestInitials.md": "7bc06ae3fa79dfeed5d7fb5f97597e43c14f3d05812e8716377ab28348973fff",
+ "documentation/models/AddEnvelopeAnnotationRequestSignature.md": "763cfae6c0ed385cff63d2334089b294dc73ff63677a1d46f0f0a332f540111f",
+ "documentation/models/AddEnvelopeAnnotationRequestText.md": "95edcb4f55130a23ac21aac0145b278004913785131fd1b3ae4ccd54332135df",
+ "documentation/models/AddEnvelopeDocumentRequest.md": "e6bf9f872f4d3c3db5420fefa170522f4eb44200cd063cdf3fd25dc0ab816da0",
+ "documentation/models/AddEnvelopeSigningStepsRequest.md": "57c78bf7b9a4de2c16242fb77ef9bf556d207fcbda0e574b5d5cfc9bb46443a1",
+ "documentation/models/AddEnvelopeSigningStepsRequestSigningSteps.md": "6140584292c905a6a493790d2b359063b7cbf79def2c899eae5894b3f0498b4a",
+ "documentation/models/AddTemplateAnnotationRequest.md": "5485c82387ef84201cc8e38dbc57ef292d324538621932add10b76d465e86ea9",
+ "documentation/models/AddTemplateAnnotationRequestCheckbox.md": "298527fbc50489ca717615fba54c2c5f9fa95aadaabb51252ed8427bb5849dd6",
+ "documentation/models/AddTemplateAnnotationRequestDatetime.md": "df4e62cede18b45417c12b54cde446063032338117076b6b02ce16bdaf5a2833",
+ "documentation/models/AddTemplateAnnotationRequestInitials.md": "14e6fe82779654be22c26811f530cc95e8272101dbee88f9ae96abed255d7fbc",
+ "documentation/models/AddTemplateAnnotationRequestSignature.md": "f2a97f7f689a37e80253f2002fb4f04ff96ec100d2c4417e55a6ecd8ea8fa5db",
+ "documentation/models/AddTemplateAnnotationRequestText.md": "0a24442dd374a93705966d72e58923bfec6eded251acd909fed74086cb3c054e",
+ "documentation/models/AddTemplateDocumentRequest.md": "a6e09f6e3c916b577387fea3808271996a79065bc27c7ed35ac6b9dd6615bd3a",
+ "documentation/models/AddTemplateSigningStepsRequest.md": "7b189a4b20c73f33210cbf145c92ad53a45e163d28c8e89d9499c46a4f2464af",
+ "documentation/models/AddTemplateSigningStepsRequestSigningSteps.md": "9c4b05c4ac94a12520626bf332198e3dc1a549f803ee29a5a4abe1023d4ccad8",
+ "documentation/models/CreateEnvelopeFromTemplateRequest.md": "1968fc82bb8a0e1ead8468497afccd61ca2642dd1a654e7a9f4fd22ab91bb9ec",
+ "documentation/models/CreateEnvelopeRequest.md": "337968b07a5708bb8c123aa027e7cda26731fcfa9dbc47a1e6885ae9924a90ea",
+ "documentation/models/CreateTemplateRequest.md": "b425248470b091cba29c1b2aaa9eeee8129661c8bde865744b4c4c4f561da7de",
+ "documentation/models/CreateWebhookRequest.md": "293b65ea965590cf1c1f80aabad8eb58879ca4e95cba9450052dd220f2143913",
+ "documentation/models/DatetimeFont1.md": "a5fb209cbbdd6a5e358b6fb799ccd8e75425a0a2e27f28718cee6e88daa065aa",
+ "documentation/models/DatetimeFont2.md": "cfd9a73ecbede8ceab7e50dce378847154d65b671700a6a91ee332e984c341b7",
+ "documentation/models/DynamicFields.md": "fc44eba0e86286740da619e6ac7896091b36b971f692dccf856f9502e7721bc8",
+ "documentation/models/ListEnvelopesRequest.md": "0a9402b01a64618da4472f7bd4d7ce6ef1fb3577b7c27e637e685c223ea8f141",
+ "documentation/models/ListTemplatesRequest.md": "55856d387786b5eb842ac00e5bd986dae65989502c13f17272c7c262e920f188",
+ "documentation/models/ListWebhooksRequest.md": "768562fd20560f9d1f1dca92061f62bdcf3ae6b7609b3dc078a534cbe4eaa12b",
+ "documentation/models/RenameEnvelopeRequest.md": "f43b8748f3b4b15f933ff24328f518130a2a1b1282bbc4b8292473f82637ed89",
+ "documentation/models/RenameTemplateRequest.md": "76e0f79362b3ecc97b554921ae7138ceb15ef08a7ab656fefe324a1586d8c6eb",
+ "documentation/models/SetEnvelopeAttachmentsPlaceholdersRequest.md": "e04f70ccfbb74bb6e3f2c33f1056122202f02469f46d5f3e5d6d9c192cc640cb",
+ "documentation/models/SetEnvelopeAttachmentsPlaceholdersRequestPlaceholders.md": "e5ce74b1b1ced0f7e255171a92b6a5969474432041277b57879d97bef29a30df",
+ "documentation/models/SetEnvelopeAttachmentsSettingsRequest.md": "7e67c25c61ad10b795fc7dee3890b598913f88da03e10420bebd6b74d4a2937b",
+ "documentation/models/SetEnvelopeAttachmentsSettingsRequestSettings.md": "5844c45224aef83c59bb5c7baa62d5f111545e348d04870985bb2fb572b3404b",
+ "documentation/models/SetEnvelopeCommentRequest.md": "705ec1b000878800c4999ee628dcd2c74826453d4d1fb6f513ccec2c49d2f135",
+ "documentation/models/SetEnvelopeDynamicFieldsRequest.md": "78fc6b8236c65086ecd50b62a83e9278479f7e2fac35efa976421c57bf9f0f3b",
+ "documentation/models/SetEnvelopeExpirationDateRequest.md": "a7167ad8b8bf0ca44e4d1358d819cf9063f62c215bc72dd774a60a9a2a13a0f2",
+ "documentation/models/SetEnvelopeLegalityLevelRequest.md": "cb9d597632620629215da7f9ac96e685b6e32c241118dea823bdb466e2610e65",
+ "documentation/models/SetEnvelopeNotificationRequest.md": "7544611896d9e171bcfc8c313533eec23288f285447964dd5078c2889912df39",
+ "documentation/models/SetTemplateAttachmentsPlaceholdersRequest.md": "d22bcf7f6266ef53e3b3270b13a4fb8040ad2289349b4734044ea6bd40f95574",
+ "documentation/models/SetTemplateAttachmentsPlaceholdersRequestPlaceholders.md": "04da203036a029155ba778aec1bf08ae54be3d990819f9568e3f92b849204e0e",
+ "documentation/models/SetTemplateAttachmentsSettingsRequest.md": "608a882492b46c753b765200e55e49a2c82ce8c9b1f3a2d09918b917c7a35f74",
+ "documentation/models/SetTemplateAttachmentsSettingsRequestSettings.md": "4dfa2cdd61df24b0dfff6b34174c89606d9c403f9f85fc8c47cb9de53917b8db",
+ "documentation/models/SetTemplateCommentRequest.md": "c44229defdf023baa3e1ab2f10c3480e366d233788fdf36714b80b4b486e71b4",
+ "documentation/models/SetTemplateNotificationRequest.md": "ac3ee0cdde4709fa09703b5a5a7694e346e9ce34f649aefed940cb47cfa76923",
+ "documentation/models/SigningStepsRecipients1.md": "c54d1ee5ce7e5ada426f8513b01972972db1141188d721306fcf20202332bb4e",
+ "documentation/models/SigningStepsRecipients2.md": "9763e507e2b0509952cb1d9ba994a263b40f4dd831d5b277bbd7055ca13c17b1",
+ "documentation/models/TextFont1.md": "c341a4034231f5a43c529f7eca066b6bc21b348d73e4e3ff5caee1dcdac10b49",
+ "documentation/models/TextFont2.md": "e7512020c82e4458ab29b4f14b07170ba5e853eb6b03e6b03aedec0394f17c40",
+ "documentation/models/Verification.md": "be33a676ec56385845f2fea25eff8e081047d5229494ca6906eb315dcdd21598",
+ "documentation/services/AnnotationIdService.md": "10b3b65aeafcf73cfc2a118f5d533eb784ca6a1adef2cc4688ad31421fce1cf7",
+ "documentation/services/AnnotationService.md": "e06dae352f479522064f7b1bb88f13a66c1ccef4ca8dfee4c1b61617108fbb2d",
+ "documentation/services/AnnotationsService.md": "e508ccbfdf2295267ba49ad16edfb3092f9f92a339826cab47d7b93a480395ef",
+ "documentation/services/CertificateService.md": "596b18da33c430f76a2a07536e7afdcacd1dee393b2a29d2cd3a945014815263",
+ "documentation/services/DocumentIdService.md": "0dadb641b34c230b2d4bc65e6d97df4c4f5ca88a3e7a820ad1d20923194decf5",
+ "documentation/services/DocumentService.md": "bc1545f2ae9e0dce64ff3121018bc199a192b2924650a3c1fdeee17d6d79fb4f",
+ "documentation/services/DocumentsService.md": "210272b264eace34e21367137dc5e37d087d41859cd72027f9f166c8de1c0f7b",
+ "documentation/services/DuplicateService.md": "32368facfdd55870c6943b370cb27932fd0fb819661a23b6114553bf94a96aed",
+ "documentation/services/DynamicFieldsService.md": "6c74d0db05cc342293b2967958708b307400c5153acadb3fe1b35e1d8c70a435",
+ "documentation/services/EnvelopeEnvelopeIdAnnotationsDocumentIdService.md": "3834afe8f82cc7728deb48c9d7af186bab1141134615882f4afd043afca31b4e",
+ "documentation/services/EnvelopeIdService.md": "7e15b46b251107db6481655cac552e9d4a4e4bac133f68a5337ed615ee488433",
+ "documentation/services/EnvelopeService.md": "9e9c522853fca727afca51d74aea8be221f64b31773b856eeceafddda11f4737",
+ "documentation/services/EnvelopesService.md": "8420b227e0e92266f3158e6f457a19d0685a7b621009c6611212a63c93b0d4df",
+ "documentation/services/FileIdService.md": "199488a8cc54b2e6796a8444e4451b4c2efc564a6bf8aa84450bcc49d3b96446",
+ "documentation/services/PlaceholdersService.md": "d4782cd0b909611e76cf6deb9d3a46fa22ba7520179c5d1c7016386770828323",
+ "documentation/services/RenameService.md": "bd22fefa3d381407a615b18246487487d3c7046e16aef9696ac94c6286457d75",
+ "documentation/services/SendService.md": "5e903250e2d97c40c7bf6f564de0f46cee2d09fd37571275a711f5a1143d6b25",
+ "documentation/services/SetCommentService.md": "2d900bd785bbe2f7554c25ef2f97f1ad9b79412103cf8e476e9a652117e7a7a6",
+ "documentation/services/SetExpirationDateService.md": "bf15259b2467dfff5047a52b7688505afb90f3581e37bd827edf0b529b3dcd84",
+ "documentation/services/SetLegalityLevelService.md": "fc68c6c2c42ff521ff34cb22e98f4d4db2112372e4d0fda55a8012e9fb91fe09",
+ "documentation/services/SetNotificationService.md": "a00bba150362d6716f8ea288f501d0f1f10639519da74f34bd90bdef90874742",
+ "documentation/services/SettingsService.md": "111ccea25800aed4071f6d9410acf37017e72a78b262252d5fec01c1ec71fd9f",
+ "documentation/services/SignedDocumentsService.md": "773b5e1ea735c0cfd80e8eb460e3af1933b50949f4d41383cd41148bc817a9e1",
+ "documentation/services/SigningStepsService.md": "4513c4427817f8d05b2338c11cdc058fa84ec208aba10720d408f3221e393469",
+ "documentation/services/TemplateIdService.md": "f676f5c958497902a16da8c38fc7e17b04e2e946b1a5121b308fc703eccd62c4",
+ "documentation/services/TemplateService.md": "517639cefe07bf409c09abc34c952a5129c0f2ba1ce19cb0584bd0b192a6ed64",
+ "documentation/services/TemplateTemplateIdAnnotationAnnotationIdService.md": "9a1f614ff1d2ac2589c73301b5665e08dbf606cdf2592b22775fb1d1e4e08099",
+ "documentation/services/TemplateTemplateIdAnnotationService.md": "4526e8abe3fbcc8b10043952b3518236f9e5233ea369eb4ac8de0ed7deae5ebf",
+ "documentation/services/TemplateTemplateIdAnnotationsDocumentIdService.md": "5b2d2ded9b5bd89e6bbcc84e337a92cc5ac9dac6d0c0c676e5e829f2d7e278c2",
+ "documentation/services/TemplateTemplateIdAnnotationsService.md": "cb451c91a42713b052c5e77986214fa4eed180c0ebb28694a28fd7492ac0461e",
+ "documentation/services/TemplateTemplateIdAttachmentsPlaceholdersService.md": "8ef9ee9965f7b78f240e29ea30389d36aa5a8697ec79425bc8b232d6c0c349da",
+ "documentation/services/TemplateTemplateIdAttachmentsSettingsService.md": "79dde420b4fd6f8fda242954e0c03086d9b6d4f8fab9ed51fd0675c73878d779",
+ "documentation/services/TemplateTemplateIdDocumentDocumentIdService.md": "a2df1948e4bdc97fa79ebd61c5ac6bef3950721ceae2baff8835b808ee1a6310",
+ "documentation/services/TemplateTemplateIdDocumentService.md": "fe7dc798435da26271ebec997e609f2849f3d07a2b7a41f60128a7cfecff40e2",
+ "documentation/services/TemplateTemplateIdDocumentsService.md": "592bdc3420a3aa9f416673840b5bae6307f5493de5f6816f36445a49d448782d",
+ "documentation/services/TemplateTemplateIdDuplicateService.md": "ea9fd3c1481cd0a385d4ef5a24628850c4216314653295a3ac923e1a4844b26c",
+ "documentation/services/TemplateTemplateIdRenameService.md": "ea5007c2a8b2db27df145f464bfc5a0f29014291a40e521caa68fd19ba5eb6bf",
+ "documentation/services/TemplateTemplateIdService.md": "6c8dac7b7228860c4d5b4d134778f65129f34c5f43e49a713e0187145fa91c38",
+ "documentation/services/TemplateTemplateIdSetCommentService.md": "dea0f943f65f2b9637de2954d72879a9a7105380a20d08ad43f34e18f25c3233",
+ "documentation/services/TemplateTemplateIdSetNotificationService.md": "32994d793a612908f0b4c7fb808bd61a4befe17202c6ce981c0b5412d71bb465",
+ "documentation/services/TemplateTemplateIdSigningStepsService.md": "4322141bf3bf9f777be408546e9676278f46ff915ab6648c47b8caf7cba206a0",
+ "documentation/services/TemplatesService.md": "f2d10c11623958126ae2407568f6071a2af93713754fa66073587d9a0423934c",
+ "documentation/services/VoidService.md": "ec8ee99e8ff460c013423343c50cfac4f32abbdc801790f92851d6dac7229a85",
+ "documentation/services/WebhookIdService.md": "8d008a3eb45fd3f93d8d03ea324af1636b60b0bc7908aa51cbf5d06c46b33a8c",
+ "documentation/services/WebhookService.md": "6edb1eb29060710d8364dbc68e8f40c5c719a918328d6bd273b5941f16111d76",
+ "documentation/services/WebhooksService.md": "cae245ca3b37179f643d521f6df443b161a004e90cc494527b3d8ba6217d60be",
+ "documentation/snippets/snippets.json": "1edd7b19438a6af9b3ebfdfaa44d4d265279946a0bfdd80aea3d2b213a049bf8",
+ "examples/.env.example": "4fb1ccb01931cc8124c1fd6d88721547b83f2d48bd0ddf29b4827a31983ad12c",
+ "examples/install.cmd": "07d6d4a0ffba5031041d1169dfea5244574ff4435e4a37b986b87f1f30962c2d",
+ "examples/install.sh": "9e28eb68729da57a74acec994c32acd2c56bd4627f43a81889be125e86bf962a",
+ "examples/sample.py": "ac7035080e720d5853fdc6a1be326178fa38f2af00b4c16015437870a412d2ce",
+ "install.cmd": "ab0c5fa88bea5f91fb8e68b2cd4965314cd4262c7d17c6d0b501782da5e7c1f5",
+ "install.sh": "239b0e6b07d6833400980c37e9b945c06619a5337e0c56d6b126681588937833",
+ "prettier.config.js": "2fe33fda52344779fcf235afa8152cfd356880dc3161da09403dc26231bc72d9",
+ "pyproject.toml": "661c245f8eb1482743e723ab9c2348401e3cb9894f21f01da685214ed4e48490",
+ "src/signplus/__init__.py": "15d8b55ff02454669db92ad0c5c938051a90adbb1bc18f6f8172cbc73ecd0895",
+ "src/signplus/models/__init__.py": "03cc06083dc6d0f41c2b85a7215c4f10bf18784ae13084be3bf3a4b302e17596",
+ "src/signplus/models/add_envelope_annotation_request.py": "3df76f05f7d3f5248312f43196b1ab102446c1bcf68ea70a8806892d7bbe3976",
+ "src/signplus/models/add_envelope_annotation_request_checkbox.py": "e615d8c7bae976abe4844c9290bb043148bef9d564f4e7da0f91adc625088440",
+ "src/signplus/models/add_envelope_annotation_request_datetime.py": "46dc03fdb024c0371ecab8d252393ee5a4d78340910fdd1edead1cf570b0966d",
+ "src/signplus/models/add_envelope_annotation_request_initials.py": "a2ef96eb43323babe8395c503c42ad8aec3b6d6154a4bf1194366593d6b1de1e",
+ "src/signplus/models/add_envelope_annotation_request_signature.py": "877abd2ae660e44d78a035e2498ce6aca737cc9a025cf04ddc6f904d39f4e794",
+ "src/signplus/models/add_envelope_annotation_request_text.py": "a0d44d13b2fd80bc8fa9444c9c888dc20bea8ac23d09a41f306ff9b88c830043",
+ "src/signplus/models/add_envelope_document_request.py": "b28f82ec997d61b02ae2ffb8bbf11245f71a190851273c5135f45ae019abbea9",
+ "src/signplus/models/add_envelope_signing_steps_request.py": "0d503f0f6168e1ae1eff6729a581617f698c1d4e84a670e38a9a4d666c5dc941",
+ "src/signplus/models/add_envelope_signing_steps_request_signing_steps.py": "c0298c5f01b4179866940b3107970f71934460b973bf0600000ca0343c55af1e",
+ "src/signplus/models/add_template_annotation_request.py": "d10c6c7ab67e11f3cafbd4524ca439eff1f62f6a569f1d7e41713259fb0a8426",
+ "src/signplus/models/add_template_annotation_request_checkbox.py": "a9da8cc68d5382a788f3f9622581ba219088d87375f28bd69fdfdca18a11b42a",
+ "src/signplus/models/add_template_annotation_request_datetime.py": "e3e5cd2d894f8dfd6e0a619dcc36f45f0ae726a418620be04850aec3f179ca6f",
+ "src/signplus/models/add_template_annotation_request_initials.py": "7f0fef1f4cd699381f99f4f124de4aed9a2ef90938e1ef21aaa38503738860af",
+ "src/signplus/models/add_template_annotation_request_signature.py": "08250b7555b2d95a1e75715798cf44978c19139bcc4ab41837ffac6ef89a3f02",
+ "src/signplus/models/add_template_annotation_request_text.py": "940c164496c395c6d77fc8e87b9f3b46b683160e1e00a544277624ce945b56c9",
+ "src/signplus/models/add_template_document_request.py": "6b12395774446d14b20deac9d6fe1a98fc7f232f9e1ad994c23319810ae63fa0",
+ "src/signplus/models/add_template_signing_steps_request.py": "bbce458727d6f25a8359a6c47019c36b5ade85357b940beca5176287c2b83e39",
+ "src/signplus/models/add_template_signing_steps_request_signing_steps.py": "058e068bc11f220fc7d66710fb31750b0e6c7e4b3ecb51c5607abcd0576ce3a6",
+ "src/signplus/models/create_envelope_from_template_request.py": "55867512610fa3190a3e27895d5b2e9c6b43b977f838626b2f4de9670ad524ff",
+ "src/signplus/models/create_envelope_request.py": "1fa1973448469647b7cd20ce95c2d6e4e45bbb50bb4e193d338c79a4fc6aae96",
+ "src/signplus/models/create_template_request.py": "22147b4f7848ac8f5b613aba70023718722b120f57770da86ecd454bec52f21f",
+ "src/signplus/models/create_webhook_request.py": "2691f9a0d07a0d9ee7b64f0cfd78b1db046a81a929f8b99a6d4831e4cbd0c13b",
+ "src/signplus/models/datetime_font_1.py": "f318ee7c7f3664f0cec4729bced565828b5bfe45fa1c853030b3580a3b95a7f7",
+ "src/signplus/models/datetime_font_2.py": "436f0293607570e9186cef3fb91d9dc1da33a85709f722f49c67214c1ea48c7b",
+ "src/signplus/models/dynamic_fields.py": "1b20b3cf325c5ba5209e8f788fdca4908cdb2b05f5cd30d19e593b7894b3f997",
+ "src/signplus/models/list_envelopes_request.py": "a49fdfb81202f5314d68d1b9eadff0afd6b8833c2322d5bc5943555651dc35da",
+ "src/signplus/models/list_templates_request.py": "dc353aeb2ed523b743c4bf68db69980438b760e4792e4d815a627a98a269d42b",
+ "src/signplus/models/list_webhooks_request.py": "04b54d32ac162015ce9b8ea4b03157bea95b6266d7696d53cc496f97a2d17017",
+ "src/signplus/models/rename_envelope_request.py": "1a6996bdc90746074a280fa363304e6b3f6353f4994b43241e6ea7bd60906e8d",
+ "src/signplus/models/rename_template_request.py": "7186c5e5d2eaac8fde8840503583570f0df9fde0ccf6df799cd805aa99f2b92e",
+ "src/signplus/models/set_envelope_attachments_placeholders_request.py": "a23abdb59752c155900c9cb0f4794d89e68972bc2ea825a236dceb2095b8fc5d",
+ "src/signplus/models/set_envelope_attachments_placeholders_request_placeholders.py": "d3161be3efbc79090bda9d5257d3038be28ff0216ade840e12ea8ed0364620b9",
+ "src/signplus/models/set_envelope_attachments_settings_request.py": "35b354063ca2e18d74bacabde0c53b5fa37a55376a9997eb92301da538671db4",
+ "src/signplus/models/set_envelope_attachments_settings_request_settings.py": "2a5e882f4920b46cd34fb0c7381226127fcfba0e850d06dc6855843b1a698e25",
+ "src/signplus/models/set_envelope_comment_request.py": "ca7397c04b0d18e36cf70ad2a8430a35f38af936df4f98253f836c915099f3d9",
+ "src/signplus/models/set_envelope_dynamic_fields_request.py": "46f5fa01e200616243e229cbcfdfe7e9e3d7797a8f342be6884bb14e79e8534a",
+ "src/signplus/models/set_envelope_expiration_date_request.py": "84d8579ce632e30acbd2930fd005e0009933b1c385fd68281483c7d4106759f0",
+ "src/signplus/models/set_envelope_legality_level_request.py": "d14126051d2f11f760fe46d7b0d0aca654795747082e3dbecc2c91872fb729b6",
+ "src/signplus/models/set_envelope_notification_request.py": "0d0502698283f473fb9eaa19ba44f9b233444941265ab9391d8eb1646814ffd4",
+ "src/signplus/models/set_template_attachments_placeholders_request.py": "90e5f209e5d6efe33510f69f75edb73872d99f43b8e85547ea7d46125f03a773",
+ "src/signplus/models/set_template_attachments_placeholders_request_placeholders.py": "cf5f3dd6f456598432d74a6e3874b947cc860fba1a97f2495780a0ba50163be7",
+ "src/signplus/models/set_template_attachments_settings_request.py": "c4f5415071b019ffae106e81691f9bf09830453d360ad826addba7c278b471c5",
+ "src/signplus/models/set_template_attachments_settings_request_settings.py": "732f70277c6e24e7002ef6b5b95b76b1ce48e51dfeaf3e059155243c25fdba03",
+ "src/signplus/models/set_template_comment_request.py": "1437aacee84e0bdf458bc8e9d7bdd27956864af44d069f2551e08ebb81d8d9a0",
+ "src/signplus/models/set_template_notification_request.py": "dfd606ad879a0e5aebb1662ac382bda27056b16f8f3e97204fa7aa7755a6cf29",
+ "src/signplus/models/signing_steps_recipients_1.py": "5aa8aff82545b99eac3c7871970842d670f9a141dd27746586bfe4cf8d698c17",
+ "src/signplus/models/signing_steps_recipients_2.py": "8f41efd23e9e25574107c0e5a69d8dd694fe4d1079adec2c687c8b164112aa2d",
+ "src/signplus/models/text_font_1.py": "de187f86fca17ffa374104d38695c46c461d77bd14e6ff56060e1ea55f95f4d8",
+ "src/signplus/models/text_font_2.py": "1d894369cd380c488fe6c52c2a70427d34eb24d6284b5faf9c509546fc80b079",
+ "src/signplus/models/utils/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "src/signplus/models/utils/base_error.py": "dd6e081bb478edba5c93940540ff33ce9880b671b45b90f0f1fc2cc81cce1453",
+ "src/signplus/models/utils/base_model.py": "9401a383373d07378da754091de732cd2722dc202ea13bc792a7b802b141db86",
+ "src/signplus/models/utils/cast_models.py": "d3b7120279cf16c24b7574a23b610e64e3f30cd5ded0e979852254b6f76cacf7",
+ "src/signplus/models/utils/json_map.py": "14f2b84ad1a0f95098cfc8cbd8dad350995eb4995547d67096fad10b6d08f8c7",
+ "src/signplus/models/utils/one_of_base_model.py": "bea11eaa99fd499ed0dfbf1cf3f6d9a202685788c3b87b8846c8ed67b33c7178",
+ "src/signplus/models/utils/sentinel.py": "e52b9ac51a9898f65230fb009b60a809e72f646c559ca78d615931b0c0dae466",
+ "src/signplus/models/verification.py": "e5c111843639efe961da8b91c535ee8bc01cdf312a5fe867b579e2a560ca1695",
+ "src/signplus/net/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "src/signplus/net/environment/__init__.py": "0c5ed4bcd5c7423b21f2029436abc728a0f5d223e7467344784bd47afd1cdec0",
+ "src/signplus/net/environment/environment.py": "182dc68314b91cdfc1f455244144c37ccf70d89e9f3ad85f463f7afc43d7b882",
+ "src/signplus/net/headers/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "src/signplus/net/headers/access_token_auth.py": "3eda4da03357b122848f8c3bf4786e21d406c0c67a71a1f208a4c28d0835893a",
+ "src/signplus/net/headers/base_header.py": "0c40412e64e8c34317a13663ddee36137d31b0dbbea38c5eb07ef146f70fe466",
+ "src/signplus/net/request_chain/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "src/signplus/net/request_chain/handlers/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "src/signplus/net/request_chain/handlers/base_handler.py": "5ff9cdc332de0131ce8e4b5052530b28c863eb9f381ece0f145da3b2cbf20fa5",
+ "src/signplus/net/request_chain/handlers/http_handler.py": "a736865ee8e8585b67595af46e791fb8d610cac12522b9f61ed73c38425d5e13",
+ "src/signplus/net/request_chain/handlers/retry_handler.py": "ec6703c6299aaacca84e009a38aed8b8f498b004922154ca3c17fcdbd0208378",
+ "src/signplus/net/request_chain/request_chain.py": "b21ebb0d8f8018887332570ac4610f16e7268dca0b2e73408a724901165bace4",
+ "src/signplus/net/sdk_config.py": "4fde62488a5d16513783f735cd0cef2089edd04e831127c935a070ff17000e58",
+ "src/signplus/net/transport/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "src/signplus/net/transport/api_error.py": "8905d1004cce0846eaa0a30c5aaf83e45071ac4d604274d42d07f35b88cfc23f",
+ "src/signplus/net/transport/request.py": "d04b817c76eee3b345c2c97db44223c1475ad55599faaa3cebb2a8b39b026eba",
+ "src/signplus/net/transport/request_error.py": "962c1e627288694eb31644f85474f32a540367c382b34119e74adfc52d7fdf06",
+ "src/signplus/net/transport/response.py": "27b0834b80f907aab8a7d2c91e4e6c6646fdad69ce67eece63c8af8cc8bcc4a1",
+ "src/signplus/net/transport/serializer.py": "b6338f836743083d6e5761b5703b650d5923e7f39ee24ec646c511e1bab70605",
+ "src/signplus/net/transport/utils.py": "734ea9f9838b85ca9a0b7d8d82c65b56f73324fb02bd9693a60f1b54e4f085da",
+ "src/signplus/sdk.py": "91c39b16594f86f966a3460ff61bded2e345230e23e71c9c630568354344e05d",
+ "src/signplus/sdk_async.py": "2ef845f9848b23d85b464af31f9f2883763f81029192c87cab19d791a421f63f",
+ "src/signplus/services/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "src/signplus/services/annotation.py": "2a32eb0123503a66737477aca04f48df71842cee0d7032116e1cdbc3223a4dfb",
+ "src/signplus/services/annotation_id.py": "13704d1c8de631f43b33e7441d2fdd8640f5a534ac7179cd27fad5efe6c2ed80",
+ "src/signplus/services/annotations.py": "70c66abc2be6bb029f1adcc36aba2c9fb5cb1bd60f50b1365fdbf6bc1fa3ffc6",
+ "src/signplus/services/async_/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "src/signplus/services/async_/annotation.py": "6675b1009bf074eaf1efecccaf61b315bf2f079845602544abb9a975febeb835",
+ "src/signplus/services/async_/annotation_id.py": "165a55e385ab4d3dd5ad2fed15819f457247c94beb9499fa4910d660b3ce8ac3",
+ "src/signplus/services/async_/annotations.py": "edf2a7e5decaacb8b52e411b6a9271fb179252667bf825b4aa4c829bb3db0919",
+ "src/signplus/services/async_/certificate.py": "0a762dd00c8c7a71f46d99bf82b851c9deea30705cd2879a05740c10f529d735",
+ "src/signplus/services/async_/document.py": "3e7ce5a1f722e33556fb56499f8c61c123cd2d76c9594570f0b55c97c01bc1ba",
+ "src/signplus/services/async_/document_id.py": "0a94abc36482f1a8780b7333003f52bdfc8cf4c449af3faac57c8817d3e7bf91",
+ "src/signplus/services/async_/documents.py": "c59d81d4c5573909c22e895779e5f251eea294ac8b7e9e4f3cfd2af6e93bd9de",
+ "src/signplus/services/async_/duplicate.py": "e65a177115a12fc5e16d9af06d3f6dde18c873c225405136c9d3e386c7b8b95f",
+ "src/signplus/services/async_/dynamic_fields.py": "d9aba9c719a50ba8bf65db7897a5ec54ff0f5cec3d76642de9f124bd8c0dd2b3",
+ "src/signplus/services/async_/envelope.py": "fc82a10143bf73e8784580f19263bc669b9b458d4e816df3afd638984216a65c",
+ "src/signplus/services/async_/envelope_envelope_id_annotations_document_id.py": "f166264554629ea9f818f54f19ebd0f9a12c103efea6d07b84b749bf365a0a85",
+ "src/signplus/services/async_/envelope_id.py": "e226a475ef263405541cbb453f1fb89e0f5f53c2d10ae6e6dd5bb928188a0865",
+ "src/signplus/services/async_/envelopes.py": "a42d2db3d81baa8dd9224fb369dfc20bbe77fa0dac467b87ecb48523518145bb",
+ "src/signplus/services/async_/file_id.py": "3da8abad099af6edbb14a7fa9e32746c8c29a8b92f71404dffeb3ae23ca63dad",
+ "src/signplus/services/async_/placeholders.py": "109882c5d6c405e4b770ac66eedae5f36c7a201f5e9acfb16b4a208b5d4a8e05",
+ "src/signplus/services/async_/rename.py": "631e450d993ebd61f5bb4289da2764b25a8e4075f9a0d040c8711e3d5c65ed52",
+ "src/signplus/services/async_/send.py": "ed66fda7cd506e7d19196be098ff27c5e8fe59b3ec15c4b1c16bc6a1ad5206d4",
+ "src/signplus/services/async_/set_comment.py": "cc129038f17e3d9a2600f21b3db7295ebc7f569c599d3356306fca61e419a4b8",
+ "src/signplus/services/async_/set_expiration_date.py": "e2d6c5474f882d8d77baa19dcb055c7d13352168f56d62cf437a01237715d8cd",
+ "src/signplus/services/async_/set_legality_level.py": "fa03c5a435f99cba1b3de377ac40fddfe1dbc220e93aadcffa82665f8dba4757",
+ "src/signplus/services/async_/set_notification.py": "30c0d5efed228ab8fc5d3f5232a3171224ace52160aa9d9fc2d0b79165b28ace",
+ "src/signplus/services/async_/settings.py": "c29907502630c4a8866da131a5615a4be5c210994d115a88a61eb49543d35571",
+ "src/signplus/services/async_/signed_documents.py": "e5ae87a691f5ac32c61c2c2b63fe19982cb115e8420e6d604c7d4e9e262ca991",
+ "src/signplus/services/async_/signing_steps.py": "d7d9ae99f0d78a86d1c864ad55a5fa70dc5a2be5df3dedeeee2648c5302ba408",
+ "src/signplus/services/async_/template.py": "c367477c60b73a49b73b68c39aa0a4be0a375734749c2d5e5eb59bbb4104ed78",
+ "src/signplus/services/async_/template_id.py": "5f5b061a439cf79ca30594f94d18a525cea46227d117266651cf5994a42e7b39",
+ "src/signplus/services/async_/template_template_id.py": "254e8891cbb1bda3ffb85220b2826428e427c38f67f37c3c440b588d5536b81a",
+ "src/signplus/services/async_/template_template_id_annotation.py": "966d6ef43ecb99f832dbf782fc2445f41f66d81d359cec79a9b5594042c171cc",
+ "src/signplus/services/async_/template_template_id_annotation_annotation_id.py": "cefb5540ca7f33bbed7fc9ca74d036a799a237bdf5af11f60d9589be15370062",
+ "src/signplus/services/async_/template_template_id_annotations.py": "dd6cfc27374ac9b500816a5b8d082e624beb6f81e5399749fd7cbcce6ebb21e9",
+ "src/signplus/services/async_/template_template_id_annotations_document_id.py": "5e686398922e7b07735131d6237cae902de7748fc312da74d3d9918fc0132190",
+ "src/signplus/services/async_/template_template_id_attachments_placeholders.py": "3834d7eb7c66eb25bf142fc115ac2b04976b1e6caf22a298b72a66087023fc65",
+ "src/signplus/services/async_/template_template_id_attachments_settings.py": "6d1cf96144d9d6f01e045e3eeb94deec19700341bde49e82d70f52db23017cc2",
+ "src/signplus/services/async_/template_template_id_document.py": "cce8e48a8c15d9228fee340ddf6ab66664298494db37819b45609dc4af9a2312",
+ "src/signplus/services/async_/template_template_id_document_document_id.py": "4e50ee70470c1a99083f247c4d6fb16fc5641576ff8d057c81574a81b7cebcb9",
+ "src/signplus/services/async_/template_template_id_documents.py": "a0613725e7af704c33cc7714c58779cf418c068b3e333a34d54f8772c21d6671",
+ "src/signplus/services/async_/template_template_id_duplicate.py": "8d536fed16a47bb92f377103f644796d8a785e57f43e72ee1faa8836f7dea9b3",
+ "src/signplus/services/async_/template_template_id_rename.py": "a14a5bff1607d03c29a5061f3dfa230dd18089c96c3fc17e48ae5a8b697a89e5",
+ "src/signplus/services/async_/template_template_id_set_comment.py": "668bb86da19e248539b83b079381f9bb423b9e08c5df96e3fb21f5609bb66fb9",
+ "src/signplus/services/async_/template_template_id_set_notification.py": "1eeec144a7f0c8af0f875200589399ce9adf241cd12ec562ef984d854fa88442",
+ "src/signplus/services/async_/template_template_id_signing_steps.py": "8f0aa9d9c80395d6cfb0debdb03fe8f0c60a83982e9429eae853812cf350a308",
+ "src/signplus/services/async_/templates.py": "9e45a6e45efd9caf145c31b9382ad284d725a24f169c329e17f6b294c9fc9886",
+ "src/signplus/services/async_/utils/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "src/signplus/services/async_/utils/to_async.py": "2cb85fd85bcfa814b70ca92e47479d3e486e2e48ec266fc74694854f3965c582",
+ "src/signplus/services/async_/void.py": "7a7fc3d37a8ea2659a53f96362704b7972608d74cde570c0f7234c3a52990c03",
+ "src/signplus/services/async_/webhook.py": "26ff74981dc8ccd61991c38f101dbcdd8617539d4dc54587dad7daa5287d44af",
+ "src/signplus/services/async_/webhook_id.py": "27796712332dc4ba6aa21429db74a96008ef6a9c67ee3a3b498cd29ea1fb2ca2",
+ "src/signplus/services/async_/webhooks.py": "1b7d80f030d824ada7d056548b17494bd7453e3b97e24fc2f2ee7fb72da54c87",
+ "src/signplus/services/certificate.py": "95f1dab9cf1045976a70e2ec06eedc4339485f21b5cf35b82f845b54302dfb89",
+ "src/signplus/services/document.py": "570e1ba2e408747422ff342940894736f28a9be12c6a9e823da3ec50c665a832",
+ "src/signplus/services/document_id.py": "afc053c1e32eccffb82b763a8297a58a5a8bc7f0bde55e75d2186ab06e454971",
+ "src/signplus/services/documents.py": "48d1a35bc19c99f6b648a232c960d1e17813746c61de2674b5d474ebdf5df5b4",
+ "src/signplus/services/duplicate.py": "0fa46f1fb5cbf7f3d7db86cec63d6df339ff02a4c5a5287fcb85c0ced3ccb88d",
+ "src/signplus/services/dynamic_fields.py": "66e836b8b843d18c64b24964240813be270dd5dfff6d4c711e7541d170c18acd",
+ "src/signplus/services/envelope.py": "b576748c8a0a56cd5cbd0c6742dbd0795875863b67ef6fcb00b70fc80b7fe5ea",
+ "src/signplus/services/envelope_envelope_id_annotations_document_id.py": "6f4825ae56be93f679f2821f250341fef724b080517fc6881e7aceafcd91258d",
+ "src/signplus/services/envelope_id.py": "eed1ade6c4ba846cfc17e68bb487accf4a9a776ccdec44becd4e3ebcbfa22de0",
+ "src/signplus/services/envelopes.py": "8a734b61a3e3d511547aeb94ffbfab78f85d9cf66515d481f087f4bbd2320631",
+ "src/signplus/services/file_id.py": "5270bce3e9890eb33b4fe6ddb69d83cad96e76146e27b310060104e974968247",
+ "src/signplus/services/placeholders.py": "65ac87a8bab674edd644f3e88ac811e88787d392f2963555f95aa4d751b1558e",
+ "src/signplus/services/rename.py": "e44e3cd6d66c5685fbbe26862e41f1719174a613b3cff553619deb8d81316583",
+ "src/signplus/services/send.py": "f27e0d5290462f2b7288454b384dff0e0fff0e3fb6c2d6260b7584a5e1f1b934",
+ "src/signplus/services/set_comment.py": "d18f7955cda657808f05fbc4d6ec28e30acfc09cc821763580731eb0f6316689",
+ "src/signplus/services/set_expiration_date.py": "3c480738ca8dde20d7c6f047561f58084e0855c820292ac68e78204b71b205e2",
+ "src/signplus/services/set_legality_level.py": "6c121d4a864fa83da11b2c3724a82889e5fea17a16806b3c24ddf3d82b6fa029",
+ "src/signplus/services/set_notification.py": "5e274580cf9e97bdef991978cf4e6457376472d81cbdbe0161ea2790741b4b96",
+ "src/signplus/services/settings.py": "5cd56bc089388f124a7611fba9c972cc19f98767c1154d6d95b6875f92b82856",
+ "src/signplus/services/signed_documents.py": "34232bce647399e8f903c92d68c9911ef9841701603e9ab8a14141909ef33b7d",
+ "src/signplus/services/signing_steps.py": "2aeb1ef8ae7d4a66996cb62b532ce14364b2e05d7c729bdca52e9df0f546b00c",
+ "src/signplus/services/template.py": "48e7efc5971e6855ffe41d7ec42b3be7f6f82dcf120d6809a31c38e98eb1699e",
+ "src/signplus/services/template_id.py": "0aedc1327e4aa4d4cbb17332c1ca4936e49403511419989ed9e3512104023eab",
+ "src/signplus/services/template_template_id.py": "ca8fd0b08106cdf97b27892018897981dea474987612244ce5a196816738811c",
+ "src/signplus/services/template_template_id_annotation.py": "304779f5ef9d94e6ec14c8afe77fa09479b7052e96ba0c32f489ecd87dd899aa",
+ "src/signplus/services/template_template_id_annotation_annotation_id.py": "ef7a39a9f14c49552ee76162b266527c7e52a8e392670533021cf8f56b6d1823",
+ "src/signplus/services/template_template_id_annotations.py": "8b7dbb96e9301104f84fb12efb4c4a29ed13fb232c104f1cea1f422f2740db24",
+ "src/signplus/services/template_template_id_annotations_document_id.py": "02a8804e572b1fdd2a06578c2a749e4d174071c55de99e7b5535ef21959bdee2",
+ "src/signplus/services/template_template_id_attachments_placeholders.py": "ce0051d38b2a464b4cb971b8fe920f418d779ce68a177de7d4b584e40efc1139",
+ "src/signplus/services/template_template_id_attachments_settings.py": "cb03903b5583d43b90a149177eb9bc8fcbbb992c9268e8af049711945ee191e9",
+ "src/signplus/services/template_template_id_document.py": "a2d3b8f4956a7199980e253206484b5221000e96b65214ebbec158e0b10dabca",
+ "src/signplus/services/template_template_id_document_document_id.py": "d2c2fd03491f6d3d322e679bef90ee581737be3533cd9503e64ea75d13715980",
+ "src/signplus/services/template_template_id_documents.py": "2d6105d31602d90dc4b88a60a5ba7c38ca56feb94dfddc1f10bcc3a9d607f1c1",
+ "src/signplus/services/template_template_id_duplicate.py": "75fe1c8fa538fa6a576616efe0b124941a3c5620ac2cbd682ea31616cb8ad0f9",
+ "src/signplus/services/template_template_id_rename.py": "dfbef3ce8ffc2af3bad4b54c4993f6d7bbae497af4286bd50033445f04f4ae08",
+ "src/signplus/services/template_template_id_set_comment.py": "725de6ae3d2880a5202d46ba64454785e67a1393c9735a58b0001bcce27e00da",
+ "src/signplus/services/template_template_id_set_notification.py": "c6c03e755ee266803497d8f3ef8c70793ef054cc709f5909a672cd26966ca34c",
+ "src/signplus/services/template_template_id_signing_steps.py": "909bb303fc322a4f028663fd54c45577bf3b2e5b8e990d7bf82cff8670725e37",
+ "src/signplus/services/templates.py": "b6f6f22c34e85a5dfa912393e4c6c702bd77c13a5e765e6c65a0cd2eee7e0936",
+ "src/signplus/services/utils/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "src/signplus/services/utils/base_service.py": "1ce712644adcb265a49ad738ee880366ac3dba37f7a10f78c57cb1191a2aacbd",
+ "src/signplus/services/utils/default_headers.py": "8b2763f889d8da9febef2c1f8d846177aff0faf03e8978e91c0b18d8811bdf6b",
+ "src/signplus/services/utils/validator.py": "25e2c20d761d6a8528b4df98545c596e9c309d448e502836f29b0a74e47727ff",
+ "src/signplus/services/void.py": "e07f8e5948093b9ea2d2f268efe098b8b43809d35d800d82e40c5ba30690004d",
+ "src/signplus/services/webhook.py": "ac705dd21146a16f2c70b7808a81f47da6aa2c6f55fe61231b83d82290dd28fc",
+ "src/signplus/services/webhook_id.py": "11d056307a365b9a634a184c4a42882ac75e0cef4e3093ac6df1b75887eb044c",
+ "src/signplus/services/webhooks.py": "9f21a519ff1f735b406e133d0a44c838b660fa7ed2adca4b91cec3ffc7bf17cd"
+ }
}
diff --git a/LICENSE b/LICENSE
index 2be0553..3cef8a0 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,6 @@
MIT License
-Copyright (c) 2025
+Copyright (c) 2026
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/PyPI_README.md b/PyPI_README.md
index 83dd200..0711c87 100644
--- a/PyPI_README.md
+++ b/PyPI_README.md
@@ -1,18 +1,20 @@
-# Signplus Python SDK 1.4.0
+# Signplus Python SDK 3.0.0
Welcome to the Signplus SDK documentation. This guide will help you get started with integrating and using the Signplus SDK in your project.
-[](https://liblab.com/?utm_source=readme)
-
## Versions
- API version: `2.5.0`
-- SDK version: `1.4.0`
+- SDK version: `3.0.0`
## About the API
Integrate legally-binding electronic signature to your workflow
+Contact Support:
+Name: Sign.Plus
+Email: support@alohi.com
+
## Table of Contents
- [Setup & Configuration](#setup--configuration)
@@ -26,13 +28,13 @@ Integrate legally-binding electronic signature to your workflow
- [Models](#models)
- [License](#license)
-## Setup & Configuration
+# Setup & Configuration
-### Supported Language Versions
+## Supported Language Versions
This SDK is compatible with the following versions: `Python >= 3.7`
-### Installation
+## Installation
To get started with the SDK, we recommend installing using `pip`:
@@ -40,6 +42,12 @@ To get started with the SDK, we recommend installing using `pip`:
pip install signplus-python
```
+If you are using Python 3, you can use `pip3` instead:
+
+```bash
+pip3 install signplus-python
+```
+
## Authentication
### Access Token Authentication
@@ -80,14 +88,15 @@ sdk = Signplus(timeout=10000)
Below is a comprehensive example demonstrating how to authenticate and call a simple endpoint:
```py
-from signplus import Signplus
+from signplus import Signplus, Environment
sdk = Signplus(
access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
timeout=10000
)
-result = sdk.signplus.get_envelope(envelope_id="envelope_id")
+result = sdk.envelope_id.delete_envelope(envelope_id="envelope_id")
print(result)
@@ -99,16 +108,20 @@ The SDK includes an Async Client for making asynchronous API requests. This is u
```py
import asyncio
-from signplus import SignplusAsync
+from signplus import SignplusAsync, Environment
sdk = SignplusAsync(
access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
timeout=10000
)
async def main():
- result = await sdk.signplus.get_envelope(envelope_id="envelope_id")
+ result = await sdk.envelope_id.get_envelope(
+ envelope_id="envelope_id",
+ accept="application/json"
+)
print(result)
asyncio.run(main())
@@ -121,9 +134,54 @@ The SDK provides various services to interact with the API.
Below is a list of all available services:
-| Name |
-| :------- |
-| signplus |
+| Name |
+| :-------------------------------------------- |
+| template_id |
+| signed_documents |
+| certificate |
+| document_id |
+| document |
+| documents |
+| dynamic_fields |
+| signing_steps |
+| settings |
+| placeholders |
+| file_id |
+| send |
+| duplicate |
+| void |
+| rename |
+| set_comment |
+| set_notification |
+| set_expiration_date |
+| set_legality_level |
+| envelope_envelope_id_annotations_document_id |
+| annotations |
+| annotation_id |
+| annotation |
+| envelope_id |
+| envelope |
+| envelopes |
+| template_template_id_duplicate |
+| template_template_id_document_document_id |
+| template_template_id_document |
+| template_template_id_documents |
+| template_template_id_signing_steps |
+| template_template_id_rename |
+| template_template_id_set_comment |
+| template_template_id_set_notification |
+| template_template_id_annotations_document_id |
+| template_template_id_annotations |
+| template_template_id_annotation_annotation_id |
+| template_template_id_annotation |
+| template_template_id_attachments_settings |
+| template_template_id_attachments_placeholders |
+| template_template_id |
+| template |
+| templates |
+| webhook_id |
+| webhook |
+| webhooks |
@@ -134,75 +192,58 @@ The SDK includes several models that represent the data structures used in API r
Below is a list of all available models:
-| Name | Description |
-| :---------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| CreateEnvelopeRequest | |
-| Envelope | |
-| CreateEnvelopeFromTemplateRequest | |
-| ListEnvelopesRequest | |
-| ListEnvelopesResponse | |
-| Document | |
-| ListEnvelopeDocumentsResponse | |
-| AddEnvelopeDocumentRequest | |
-| SetEnvelopeDynamicFieldsRequest | |
-| AddEnvelopeSigningStepsRequest | |
-| SetEnvelopeAttachmentsSettingsRequest | |
-| EnvelopeAttachments | |
-| SetEnvelopeAttachmentsPlaceholdersRequest | |
-| RenameEnvelopeRequest | |
-| SetEnvelopeCommentRequest | |
-| EnvelopeNotification | |
-| SetEnvelopeExpirationRequest | |
-| SetEnvelopeLegalityLevelRequest | |
-| Annotation | |
-| ListEnvelopeDocumentAnnotationsResponse | |
-| AddAnnotationRequest | |
-| CreateTemplateRequest | |
-| Template | |
-| ListTemplatesRequest | |
-| ListTemplatesResponse | |
-| AddTemplateDocumentRequest | |
-| ListTemplateDocumentsResponse | |
-| AddTemplateSigningStepsRequest | |
-| RenameTemplateRequest | |
-| SetTemplateCommentRequest | |
-| ListTemplateAnnotationsResponse | |
-| ListTemplateDocumentAnnotationsResponse | |
-| CreateWebhookRequest | |
-| Webhook | |
-| ListWebhooksRequest | |
-| ListWebhooksResponse | |
-| EnvelopeLegalityLevel | Legal level of the envelope (SES is Simple Electronic Signature, QES_EIDAS is Qualified Electronic Signature, QES_ZERTES is Qualified Electronic Signature with Zertes) |
-| EnvelopeFlowType | Flow type of the envelope (REQUEST_SIGNATURE is a request for signature, SIGN_MYSELF is a self-signing flow) |
-| EnvelopeStatus | Status of the envelope |
-| SigningStep | |
-| Recipient | |
-| RecipientRole | Role of the recipient (SIGNER signs the document, RECEIVES_COPY receives a copy of the document, IN_PERSON_SIGNER signs the document in person, SENDER sends the document) |
-| RecipientVerification | |
-| RecipientVerificationType | Type of verification the recipient must complete before accessing the envelope. - `PASSCODE`: requires a code to be entered. - `SMS`: sends a code via SMS. - `ID_VERIFICATION`: prompts the recipient to complete an automated ID and selfie check. |
-| Page | |
-| AttachmentSettings | |
-| AttachmentPlaceholdersPerRecipient | |
-| AttachmentPlaceholder | |
-| AttachmentPlaceholderFile | |
-| EnvelopeOrderField | Field to order envelopes by |
-| DynamicField | |
-| AttachmentPlaceholderRequest | |
-| AnnotationType | Type of the annotation |
-| AnnotationSignature | Signature annotation (null if annotation is not a signature) |
-| AnnotationInitials | Initials annotation (null if annotation is not initials) |
-| AnnotationText | Text annotation (null if annotation is not a text) |
-| AnnotationDateTime | Date annotation (null if annotation is not a date) |
-| AnnotationCheckbox | Checkbox annotation (null if annotation is not a checkbox) |
-| AnnotationFont | |
-| AnnotationFontFamily | Font family of the text |
-| AnnotationDateTimeFormat | Format of the date time (DMY_NUMERIC_SLASH is day/month/year with slashes, MDY_NUMERIC_SLASH is month/day/year with slashes, YMD_NUMERIC_SLASH is year/month/day with slashes, DMY_NUMERIC_DASH_SHORT is day/month/year with dashes, DMY_NUMERIC_DASH is day/month/year with dashes, YMD_NUMERIC_DASH is year/month/day with dashes, MDY_TEXT_DASH_SHORT is month/day/year with dashes, MDY_TEXT_SPACE_SHORT is month/day/year with spaces, MDY_TEXT_SPACE is month/day/year with spaces) |
-| AnnotationCheckboxStyle | Style of the checkbox |
-| TemplateSigningStep | |
-| TemplateRecipient | |
-| TemplateRecipientRole | Role of the recipient (SIGNER signs the document, RECEIVES_COPY receives a copy of the document, IN_PERSON_SIGNER signs the document in person, SENDER sends the document) |
-| TemplateOrderField | Field to order templates by |
-| WebhookEvent | Event of the webhook |
+| Name | Description |
+| :---------------------------------------------------- | :---------- |
+| CreateEnvelopeFromTemplateRequest | |
+| AddEnvelopeDocumentRequest | |
+| SetEnvelopeDynamicFieldsRequest | |
+| AddEnvelopeSigningStepsRequest | |
+| SetEnvelopeAttachmentsSettingsRequest | |
+| SetEnvelopeAttachmentsPlaceholdersRequest | |
+| RenameEnvelopeRequest | |
+| SetEnvelopeCommentRequest | |
+| SetEnvelopeNotificationRequest | |
+| SetEnvelopeExpirationDateRequest | |
+| SetEnvelopeLegalityLevelRequest | |
+| AddEnvelopeAnnotationRequest | |
+| CreateEnvelopeRequest | |
+| ListEnvelopesRequest | |
+| AddTemplateDocumentRequest | |
+| AddTemplateSigningStepsRequest | |
+| RenameTemplateRequest | |
+| SetTemplateCommentRequest | |
+| SetTemplateNotificationRequest | |
+| AddTemplateAnnotationRequest | |
+| SetTemplateAttachmentsSettingsRequest | |
+| SetTemplateAttachmentsPlaceholdersRequest | |
+| CreateTemplateRequest | |
+| ListTemplatesRequest | |
+| CreateWebhookRequest | |
+| ListWebhooksRequest | |
+| DynamicFields | |
+| AddEnvelopeSigningStepsRequestSigningSteps | |
+| SigningStepsRecipients1 | |
+| Verification | |
+| SetEnvelopeAttachmentsSettingsRequestSettings | |
+| SetEnvelopeAttachmentsPlaceholdersRequestPlaceholders | |
+| AddEnvelopeAnnotationRequestSignature | |
+| AddEnvelopeAnnotationRequestInitials | |
+| AddEnvelopeAnnotationRequestText | |
+| AddEnvelopeAnnotationRequestDatetime | |
+| AddEnvelopeAnnotationRequestCheckbox | |
+| TextFont1 | |
+| DatetimeFont1 | |
+| AddTemplateSigningStepsRequestSigningSteps | |
+| SigningStepsRecipients2 | |
+| AddTemplateAnnotationRequestSignature | |
+| AddTemplateAnnotationRequestInitials | |
+| AddTemplateAnnotationRequestText | |
+| AddTemplateAnnotationRequestDatetime | |
+| AddTemplateAnnotationRequestCheckbox | |
+| TextFont2 | |
+| DatetimeFont2 | |
+| SetTemplateAttachmentsSettingsRequestSettings | |
+| SetTemplateAttachmentsPlaceholdersRequestPlaceholders | |
diff --git a/README.md b/README.md
index 789fac7..177f4cd 100644
--- a/README.md
+++ b/README.md
@@ -1,18 +1,20 @@
-# Signplus Python SDK 1.4.0
+# Signplus Python SDK 3.0.0
Welcome to the Signplus SDK documentation. This guide will help you get started with integrating and using the Signplus SDK in your project.
-[](https://liblab.com/?utm_source=readme)
-
## Versions
- API version: `2.5.0`
-- SDK version: `1.4.0`
+- SDK version: `3.0.0`
## About the API
Integrate legally-binding electronic signature to your workflow
+Contact Support:
+Name: Sign.Plus
+Email: support@alohi.com
+
## Table of Contents
- [Setup & Configuration](#setup--configuration)
@@ -27,13 +29,13 @@ Integrate legally-binding electronic signature to your workflow
- [Models](#models)
- [License](#license)
-## Setup & Configuration
+# Setup & Configuration
-### Supported Language Versions
+## Supported Language Versions
This SDK is compatible with the following versions: `Python >= 3.7`
-### Installation
+## Installation
To get started with the SDK, we recommend installing using `pip`:
@@ -41,6 +43,12 @@ To get started with the SDK, we recommend installing using `pip`:
pip install signplus-python
```
+If you are using Python 3, you can use `pip3` instead:
+
+```bash
+pip3 install signplus-python
+```
+
## Authentication
### Access Token Authentication
@@ -81,14 +89,15 @@ sdk = Signplus(timeout=10000)
Below is a comprehensive example demonstrating how to authenticate and call a simple endpoint:
```py
-from signplus import Signplus
+from signplus import Signplus, Environment
sdk = Signplus(
access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
timeout=10000
)
-result = sdk.signplus.get_envelope(envelope_id="envelope_id")
+result = sdk.envelope_id.delete_envelope(envelope_id="envelope_id")
print(result)
@@ -100,16 +109,20 @@ The SDK includes an Async Client for making asynchronous API requests. This is u
```py
import asyncio
-from signplus import SignplusAsync
+from signplus import SignplusAsync, Environment
sdk = SignplusAsync(
access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
timeout=10000
)
async def main():
- result = await sdk.signplus.get_envelope(envelope_id="envelope_id")
+ result = await sdk.envelope_id.get_envelope(
+ envelope_id="envelope_id",
+ accept="application/json"
+)
print(result)
asyncio.run(main())
@@ -122,9 +135,54 @@ The SDK provides various services to interact with the API.
Below is a list of all available services with links to their detailed documentation:
-| Name |
-| :----------------------------------------------------------- |
-| [SignplusService](documentation/services/SignplusService.md) |
+| Name |
+| :----------------------------------------------------------------------------------------------------------------------------- |
+| [TemplateIdService](documentation/services/TemplateIdService.md) |
+| [SignedDocumentsService](documentation/services/SignedDocumentsService.md) |
+| [CertificateService](documentation/services/CertificateService.md) |
+| [DocumentIdService](documentation/services/DocumentIdService.md) |
+| [DocumentService](documentation/services/DocumentService.md) |
+| [DocumentsService](documentation/services/DocumentsService.md) |
+| [DynamicFieldsService](documentation/services/DynamicFieldsService.md) |
+| [SigningStepsService](documentation/services/SigningStepsService.md) |
+| [SettingsService](documentation/services/SettingsService.md) |
+| [PlaceholdersService](documentation/services/PlaceholdersService.md) |
+| [FileIdService](documentation/services/FileIdService.md) |
+| [SendService](documentation/services/SendService.md) |
+| [DuplicateService](documentation/services/DuplicateService.md) |
+| [VoidService](documentation/services/VoidService.md) |
+| [RenameService](documentation/services/RenameService.md) |
+| [SetCommentService](documentation/services/SetCommentService.md) |
+| [SetNotificationService](documentation/services/SetNotificationService.md) |
+| [SetExpirationDateService](documentation/services/SetExpirationDateService.md) |
+| [SetLegalityLevelService](documentation/services/SetLegalityLevelService.md) |
+| [EnvelopeEnvelopeIdAnnotationsDocumentIdService](documentation/services/EnvelopeEnvelopeIdAnnotationsDocumentIdService.md) |
+| [AnnotationsService](documentation/services/AnnotationsService.md) |
+| [AnnotationIdService](documentation/services/AnnotationIdService.md) |
+| [AnnotationService](documentation/services/AnnotationService.md) |
+| [EnvelopeIdService](documentation/services/EnvelopeIdService.md) |
+| [EnvelopeService](documentation/services/EnvelopeService.md) |
+| [EnvelopesService](documentation/services/EnvelopesService.md) |
+| [TemplateTemplateIdDuplicateService](documentation/services/TemplateTemplateIdDuplicateService.md) |
+| [TemplateTemplateIdDocumentDocumentIdService](documentation/services/TemplateTemplateIdDocumentDocumentIdService.md) |
+| [TemplateTemplateIdDocumentService](documentation/services/TemplateTemplateIdDocumentService.md) |
+| [TemplateTemplateIdDocumentsService](documentation/services/TemplateTemplateIdDocumentsService.md) |
+| [TemplateTemplateIdSigningStepsService](documentation/services/TemplateTemplateIdSigningStepsService.md) |
+| [TemplateTemplateIdRenameService](documentation/services/TemplateTemplateIdRenameService.md) |
+| [TemplateTemplateIdSetCommentService](documentation/services/TemplateTemplateIdSetCommentService.md) |
+| [TemplateTemplateIdSetNotificationService](documentation/services/TemplateTemplateIdSetNotificationService.md) |
+| [TemplateTemplateIdAnnotationsDocumentIdService](documentation/services/TemplateTemplateIdAnnotationsDocumentIdService.md) |
+| [TemplateTemplateIdAnnotationsService](documentation/services/TemplateTemplateIdAnnotationsService.md) |
+| [TemplateTemplateIdAnnotationAnnotationIdService](documentation/services/TemplateTemplateIdAnnotationAnnotationIdService.md) |
+| [TemplateTemplateIdAnnotationService](documentation/services/TemplateTemplateIdAnnotationService.md) |
+| [TemplateTemplateIdAttachmentsSettingsService](documentation/services/TemplateTemplateIdAttachmentsSettingsService.md) |
+| [TemplateTemplateIdAttachmentsPlaceholdersService](documentation/services/TemplateTemplateIdAttachmentsPlaceholdersService.md) |
+| [TemplateTemplateIdService](documentation/services/TemplateTemplateIdService.md) |
+| [TemplateService](documentation/services/TemplateService.md) |
+| [TemplatesService](documentation/services/TemplatesService.md) |
+| [WebhookIdService](documentation/services/WebhookIdService.md) |
+| [WebhookService](documentation/services/WebhookService.md) |
+| [WebhooksService](documentation/services/WebhooksService.md) |
@@ -135,75 +193,58 @@ The SDK includes several models that represent the data structures used in API r
Below is a list of all available models with links to their detailed documentation:
-| Name | Description |
-| :------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| [CreateEnvelopeRequest](documentation/models/CreateEnvelopeRequest.md) | |
-| [Envelope](documentation/models/Envelope.md) | |
-| [CreateEnvelopeFromTemplateRequest](documentation/models/CreateEnvelopeFromTemplateRequest.md) | |
-| [ListEnvelopesRequest](documentation/models/ListEnvelopesRequest.md) | |
-| [ListEnvelopesResponse](documentation/models/ListEnvelopesResponse.md) | |
-| [Document](documentation/models/Document.md) | |
-| [ListEnvelopeDocumentsResponse](documentation/models/ListEnvelopeDocumentsResponse.md) | |
-| [AddEnvelopeDocumentRequest](documentation/models/AddEnvelopeDocumentRequest.md) | |
-| [SetEnvelopeDynamicFieldsRequest](documentation/models/SetEnvelopeDynamicFieldsRequest.md) | |
-| [AddEnvelopeSigningStepsRequest](documentation/models/AddEnvelopeSigningStepsRequest.md) | |
-| [SetEnvelopeAttachmentsSettingsRequest](documentation/models/SetEnvelopeAttachmentsSettingsRequest.md) | |
-| [EnvelopeAttachments](documentation/models/EnvelopeAttachments.md) | |
-| [SetEnvelopeAttachmentsPlaceholdersRequest](documentation/models/SetEnvelopeAttachmentsPlaceholdersRequest.md) | |
-| [RenameEnvelopeRequest](documentation/models/RenameEnvelopeRequest.md) | |
-| [SetEnvelopeCommentRequest](documentation/models/SetEnvelopeCommentRequest.md) | |
-| [EnvelopeNotification](documentation/models/EnvelopeNotification.md) | |
-| [SetEnvelopeExpirationRequest](documentation/models/SetEnvelopeExpirationRequest.md) | |
-| [SetEnvelopeLegalityLevelRequest](documentation/models/SetEnvelopeLegalityLevelRequest.md) | |
-| [Annotation](documentation/models/Annotation.md) | |
-| [ListEnvelopeDocumentAnnotationsResponse](documentation/models/ListEnvelopeDocumentAnnotationsResponse.md) | |
-| [AddAnnotationRequest](documentation/models/AddAnnotationRequest.md) | |
-| [CreateTemplateRequest](documentation/models/CreateTemplateRequest.md) | |
-| [Template](documentation/models/Template.md) | |
-| [ListTemplatesRequest](documentation/models/ListTemplatesRequest.md) | |
-| [ListTemplatesResponse](documentation/models/ListTemplatesResponse.md) | |
-| [AddTemplateDocumentRequest](documentation/models/AddTemplateDocumentRequest.md) | |
-| [ListTemplateDocumentsResponse](documentation/models/ListTemplateDocumentsResponse.md) | |
-| [AddTemplateSigningStepsRequest](documentation/models/AddTemplateSigningStepsRequest.md) | |
-| [RenameTemplateRequest](documentation/models/RenameTemplateRequest.md) | |
-| [SetTemplateCommentRequest](documentation/models/SetTemplateCommentRequest.md) | |
-| [ListTemplateAnnotationsResponse](documentation/models/ListTemplateAnnotationsResponse.md) | |
-| [ListTemplateDocumentAnnotationsResponse](documentation/models/ListTemplateDocumentAnnotationsResponse.md) | |
-| [CreateWebhookRequest](documentation/models/CreateWebhookRequest.md) | |
-| [Webhook](documentation/models/Webhook.md) | |
-| [ListWebhooksRequest](documentation/models/ListWebhooksRequest.md) | |
-| [ListWebhooksResponse](documentation/models/ListWebhooksResponse.md) | |
-| [EnvelopeLegalityLevel](documentation/models/EnvelopeLegalityLevel.md) | Legal level of the envelope (SES is Simple Electronic Signature, QES_EIDAS is Qualified Electronic Signature, QES_ZERTES is Qualified Electronic Signature with Zertes) |
-| [EnvelopeFlowType](documentation/models/EnvelopeFlowType.md) | Flow type of the envelope (REQUEST_SIGNATURE is a request for signature, SIGN_MYSELF is a self-signing flow) |
-| [EnvelopeStatus](documentation/models/EnvelopeStatus.md) | Status of the envelope |
-| [SigningStep](documentation/models/SigningStep.md) | |
-| [Recipient](documentation/models/Recipient.md) | |
-| [RecipientRole](documentation/models/RecipientRole.md) | Role of the recipient (SIGNER signs the document, RECEIVES_COPY receives a copy of the document, IN_PERSON_SIGNER signs the document in person, SENDER sends the document) |
-| [RecipientVerification](documentation/models/RecipientVerification.md) | |
-| [RecipientVerificationType](documentation/models/RecipientVerificationType.md) | Type of verification the recipient must complete before accessing the envelope. - `PASSCODE`: requires a code to be entered. - `SMS`: sends a code via SMS. - `ID_VERIFICATION`: prompts the recipient to complete an automated ID and selfie check. |
-| [Page](documentation/models/Page.md) | |
-| [AttachmentSettings](documentation/models/AttachmentSettings.md) | |
-| [AttachmentPlaceholdersPerRecipient](documentation/models/AttachmentPlaceholdersPerRecipient.md) | |
-| [AttachmentPlaceholder](documentation/models/AttachmentPlaceholder.md) | |
-| [AttachmentPlaceholderFile](documentation/models/AttachmentPlaceholderFile.md) | |
-| [EnvelopeOrderField](documentation/models/EnvelopeOrderField.md) | Field to order envelopes by |
-| [DynamicField](documentation/models/DynamicField.md) | |
-| [AttachmentPlaceholderRequest](documentation/models/AttachmentPlaceholderRequest.md) | |
-| [AnnotationType](documentation/models/AnnotationType.md) | Type of the annotation |
-| [AnnotationSignature](documentation/models/AnnotationSignature.md) | Signature annotation (null if annotation is not a signature) |
-| [AnnotationInitials](documentation/models/AnnotationInitials.md) | Initials annotation (null if annotation is not initials) |
-| [AnnotationText](documentation/models/AnnotationText.md) | Text annotation (null if annotation is not a text) |
-| [AnnotationDateTime](documentation/models/AnnotationDateTime.md) | Date annotation (null if annotation is not a date) |
-| [AnnotationCheckbox](documentation/models/AnnotationCheckbox.md) | Checkbox annotation (null if annotation is not a checkbox) |
-| [AnnotationFont](documentation/models/AnnotationFont.md) | |
-| [AnnotationFontFamily](documentation/models/AnnotationFontFamily.md) | Font family of the text |
-| [AnnotationDateTimeFormat](documentation/models/AnnotationDateTimeFormat.md) | Format of the date time (DMY_NUMERIC_SLASH is day/month/year with slashes, MDY_NUMERIC_SLASH is month/day/year with slashes, YMD_NUMERIC_SLASH is year/month/day with slashes, DMY_NUMERIC_DASH_SHORT is day/month/year with dashes, DMY_NUMERIC_DASH is day/month/year with dashes, YMD_NUMERIC_DASH is year/month/day with dashes, MDY_TEXT_DASH_SHORT is month/day/year with dashes, MDY_TEXT_SPACE_SHORT is month/day/year with spaces, MDY_TEXT_SPACE is month/day/year with spaces) |
-| [AnnotationCheckboxStyle](documentation/models/AnnotationCheckboxStyle.md) | Style of the checkbox |
-| [TemplateSigningStep](documentation/models/TemplateSigningStep.md) | |
-| [TemplateRecipient](documentation/models/TemplateRecipient.md) | |
-| [TemplateRecipientRole](documentation/models/TemplateRecipientRole.md) | Role of the recipient (SIGNER signs the document, RECEIVES_COPY receives a copy of the document, IN_PERSON_SIGNER signs the document in person, SENDER sends the document) |
-| [TemplateOrderField](documentation/models/TemplateOrderField.md) | Field to order templates by |
-| [WebhookEvent](documentation/models/WebhookEvent.md) | Event of the webhook |
+| Name | Description |
+| :------------------------------------------------------------------------------------------------------------------------------------- | :---------- |
+| [CreateEnvelopeFromTemplateRequest](documentation/models/CreateEnvelopeFromTemplateRequest.md) | |
+| [AddEnvelopeDocumentRequest](documentation/models/AddEnvelopeDocumentRequest.md) | |
+| [SetEnvelopeDynamicFieldsRequest](documentation/models/SetEnvelopeDynamicFieldsRequest.md) | |
+| [AddEnvelopeSigningStepsRequest](documentation/models/AddEnvelopeSigningStepsRequest.md) | |
+| [SetEnvelopeAttachmentsSettingsRequest](documentation/models/SetEnvelopeAttachmentsSettingsRequest.md) | |
+| [SetEnvelopeAttachmentsPlaceholdersRequest](documentation/models/SetEnvelopeAttachmentsPlaceholdersRequest.md) | |
+| [RenameEnvelopeRequest](documentation/models/RenameEnvelopeRequest.md) | |
+| [SetEnvelopeCommentRequest](documentation/models/SetEnvelopeCommentRequest.md) | |
+| [SetEnvelopeNotificationRequest](documentation/models/SetEnvelopeNotificationRequest.md) | |
+| [SetEnvelopeExpirationDateRequest](documentation/models/SetEnvelopeExpirationDateRequest.md) | |
+| [SetEnvelopeLegalityLevelRequest](documentation/models/SetEnvelopeLegalityLevelRequest.md) | |
+| [AddEnvelopeAnnotationRequest](documentation/models/AddEnvelopeAnnotationRequest.md) | |
+| [CreateEnvelopeRequest](documentation/models/CreateEnvelopeRequest.md) | |
+| [ListEnvelopesRequest](documentation/models/ListEnvelopesRequest.md) | |
+| [AddTemplateDocumentRequest](documentation/models/AddTemplateDocumentRequest.md) | |
+| [AddTemplateSigningStepsRequest](documentation/models/AddTemplateSigningStepsRequest.md) | |
+| [RenameTemplateRequest](documentation/models/RenameTemplateRequest.md) | |
+| [SetTemplateCommentRequest](documentation/models/SetTemplateCommentRequest.md) | |
+| [SetTemplateNotificationRequest](documentation/models/SetTemplateNotificationRequest.md) | |
+| [AddTemplateAnnotationRequest](documentation/models/AddTemplateAnnotationRequest.md) | |
+| [SetTemplateAttachmentsSettingsRequest](documentation/models/SetTemplateAttachmentsSettingsRequest.md) | |
+| [SetTemplateAttachmentsPlaceholdersRequest](documentation/models/SetTemplateAttachmentsPlaceholdersRequest.md) | |
+| [CreateTemplateRequest](documentation/models/CreateTemplateRequest.md) | |
+| [ListTemplatesRequest](documentation/models/ListTemplatesRequest.md) | |
+| [CreateWebhookRequest](documentation/models/CreateWebhookRequest.md) | |
+| [ListWebhooksRequest](documentation/models/ListWebhooksRequest.md) | |
+| [DynamicFields](documentation/models/DynamicFields.md) | |
+| [AddEnvelopeSigningStepsRequestSigningSteps](documentation/models/AddEnvelopeSigningStepsRequestSigningSteps.md) | |
+| [SigningStepsRecipients_1](documentation/models/SigningStepsRecipients1.md) | |
+| [Verification](documentation/models/Verification.md) | |
+| [SetEnvelopeAttachmentsSettingsRequestSettings](documentation/models/SetEnvelopeAttachmentsSettingsRequestSettings.md) | |
+| [SetEnvelopeAttachmentsPlaceholdersRequestPlaceholders](documentation/models/SetEnvelopeAttachmentsPlaceholdersRequestPlaceholders.md) | |
+| [AddEnvelopeAnnotationRequestSignature](documentation/models/AddEnvelopeAnnotationRequestSignature.md) | |
+| [AddEnvelopeAnnotationRequestInitials](documentation/models/AddEnvelopeAnnotationRequestInitials.md) | |
+| [AddEnvelopeAnnotationRequestText](documentation/models/AddEnvelopeAnnotationRequestText.md) | |
+| [AddEnvelopeAnnotationRequestDatetime](documentation/models/AddEnvelopeAnnotationRequestDatetime.md) | |
+| [AddEnvelopeAnnotationRequestCheckbox](documentation/models/AddEnvelopeAnnotationRequestCheckbox.md) | |
+| [TextFont_1](documentation/models/TextFont1.md) | |
+| [DatetimeFont_1](documentation/models/DatetimeFont1.md) | |
+| [AddTemplateSigningStepsRequestSigningSteps](documentation/models/AddTemplateSigningStepsRequestSigningSteps.md) | |
+| [SigningStepsRecipients_2](documentation/models/SigningStepsRecipients2.md) | |
+| [AddTemplateAnnotationRequestSignature](documentation/models/AddTemplateAnnotationRequestSignature.md) | |
+| [AddTemplateAnnotationRequestInitials](documentation/models/AddTemplateAnnotationRequestInitials.md) | |
+| [AddTemplateAnnotationRequestText](documentation/models/AddTemplateAnnotationRequestText.md) | |
+| [AddTemplateAnnotationRequestDatetime](documentation/models/AddTemplateAnnotationRequestDatetime.md) | |
+| [AddTemplateAnnotationRequestCheckbox](documentation/models/AddTemplateAnnotationRequestCheckbox.md) | |
+| [TextFont_2](documentation/models/TextFont2.md) | |
+| [DatetimeFont_2](documentation/models/DatetimeFont2.md) | |
+| [SetTemplateAttachmentsSettingsRequestSettings](documentation/models/SetTemplateAttachmentsSettingsRequestSettings.md) | |
+| [SetTemplateAttachmentsPlaceholdersRequestPlaceholders](documentation/models/SetTemplateAttachmentsPlaceholdersRequestPlaceholders.md) | |
diff --git a/documentation/models/AddEnvelopeAnnotationRequest.md b/documentation/models/AddEnvelopeAnnotationRequest.md
new file mode 100644
index 0000000..7b2bce7
--- /dev/null
+++ b/documentation/models/AddEnvelopeAnnotationRequest.md
@@ -0,0 +1,20 @@
+# AddEnvelopeAnnotationRequest
+
+**Properties**
+
+| Name | Type | Required | Description |
+| :----------- | :-------------------------------------------------------------------------------- | :------- | :---------- |
+| document_id | str | ❌ | |
+| page | float | ❌ | |
+| x | float | ❌ | |
+| y | float | ❌ | |
+| width | float | ❌ | |
+| height | float | ❌ | |
+| type\_ | str | ❌ | |
+| recipient_id | str | ❌ | |
+| required | bool | ❌ | |
+| signature | [AddEnvelopeAnnotationRequestSignature](AddEnvelopeAnnotationRequestSignature.md) | ❌ | |
+| initials | [AddEnvelopeAnnotationRequestInitials](AddEnvelopeAnnotationRequestInitials.md) | ❌ | |
+| text | [AddEnvelopeAnnotationRequestText](AddEnvelopeAnnotationRequestText.md) | ❌ | |
+| datetime\_ | [AddEnvelopeAnnotationRequestDatetime](AddEnvelopeAnnotationRequestDatetime.md) | ❌ | |
+| checkbox | [AddEnvelopeAnnotationRequestCheckbox](AddEnvelopeAnnotationRequestCheckbox.md) | ❌ | |
diff --git a/documentation/models/AddEnvelopeAnnotationRequestCheckbox.md b/documentation/models/AddEnvelopeAnnotationRequestCheckbox.md
new file mode 100644
index 0000000..60dac6c
--- /dev/null
+++ b/documentation/models/AddEnvelopeAnnotationRequestCheckbox.md
@@ -0,0 +1,8 @@
+# AddEnvelopeAnnotationRequestCheckbox
+
+**Properties**
+
+| Name | Type | Required | Description |
+| :------ | :--- | :------- | :---------- |
+| checked | bool | ❌ | |
+| style | str | ❌ | |
diff --git a/documentation/models/AddEnvelopeAnnotationRequestDatetime.md b/documentation/models/AddEnvelopeAnnotationRequestDatetime.md
new file mode 100644
index 0000000..2a4cfd2
--- /dev/null
+++ b/documentation/models/AddEnvelopeAnnotationRequestDatetime.md
@@ -0,0 +1,13 @@
+# AddEnvelopeAnnotationRequestDatetime
+
+**Properties**
+
+| Name | Type | Required | Description |
+| :-------- | :-------------------------------- | :------- | :---------- |
+| size | float | ❌ | |
+| font | [DatetimeFont1](DatetimeFont1.md) | ❌ | |
+| color | str | ❌ | |
+| auto_fill | bool | ❌ | |
+| timezone | str | ❌ | |
+| timestamp | float | ❌ | |
+| format | str | ❌ | |
diff --git a/documentation/models/AddEnvelopeAnnotationRequestInitials.md b/documentation/models/AddEnvelopeAnnotationRequestInitials.md
new file mode 100644
index 0000000..978cdd4
--- /dev/null
+++ b/documentation/models/AddEnvelopeAnnotationRequestInitials.md
@@ -0,0 +1,7 @@
+# AddEnvelopeAnnotationRequestInitials
+
+**Properties**
+
+| Name | Type | Required | Description |
+| :--- | :--- | :------- | :---------- |
+| id\_ | str | ❌ | |
diff --git a/documentation/models/AddEnvelopeAnnotationRequestSignature.md b/documentation/models/AddEnvelopeAnnotationRequestSignature.md
new file mode 100644
index 0000000..6b813b5
--- /dev/null
+++ b/documentation/models/AddEnvelopeAnnotationRequestSignature.md
@@ -0,0 +1,7 @@
+# AddEnvelopeAnnotationRequestSignature
+
+**Properties**
+
+| Name | Type | Required | Description |
+| :--- | :--- | :------- | :---------- |
+| id\_ | str | ❌ | |
diff --git a/documentation/models/AddEnvelopeAnnotationRequestText.md b/documentation/models/AddEnvelopeAnnotationRequestText.md
new file mode 100644
index 0000000..2057f33
--- /dev/null
+++ b/documentation/models/AddEnvelopeAnnotationRequestText.md
@@ -0,0 +1,12 @@
+# AddEnvelopeAnnotationRequestText
+
+**Properties**
+
+| Name | Type | Required | Description |
+| :----------------- | :------------------------ | :------- | :---------- |
+| size | float | ❌ | |
+| color | float | ❌ | |
+| value | str | ❌ | |
+| tooltip | str | ❌ | |
+| dynamic_field_name | str | ❌ | |
+| font | [TextFont1](TextFont1.md) | ❌ | |
diff --git a/documentation/models/AddEnvelopeDocumentRequest.md b/documentation/models/AddEnvelopeDocumentRequest.md
index d993891..0c98e7e 100644
--- a/documentation/models/AddEnvelopeDocumentRequest.md
+++ b/documentation/models/AddEnvelopeDocumentRequest.md
@@ -2,6 +2,6 @@
**Properties**
-| Name | Type | Required | Description |
-| :--- | :---- | :------- | :------------------------------ |
-| file | bytes | ❌ | File to upload in binary format |
+| Name | Type | Required | Description |
+| :--- | :---- | :------- | :---------- |
+| file | bytes | ❌ | |
diff --git a/documentation/models/AddEnvelopeSigningStepsRequest.md b/documentation/models/AddEnvelopeSigningStepsRequest.md
index 5de9bec..f2afee6 100644
--- a/documentation/models/AddEnvelopeSigningStepsRequest.md
+++ b/documentation/models/AddEnvelopeSigningStepsRequest.md
@@ -2,6 +2,6 @@
**Properties**
-| Name | Type | Required | Description |
-| :------------ | :---------------- | :------- | :-------------------- |
-| signing_steps | List[SigningStep] | ❌ | List of signing steps |
+| Name | Type | Required | Description |
+| :------------ | :------------------------------------------------------------------------------------------------ | :------- | :---------- |
+| signing_steps | List[[AddEnvelopeSigningStepsRequestSigningSteps](AddEnvelopeSigningStepsRequestSigningSteps.md)] | ❌ | |
diff --git a/documentation/models/AddEnvelopeSigningStepsRequestSigningSteps.md b/documentation/models/AddEnvelopeSigningStepsRequestSigningSteps.md
new file mode 100644
index 0000000..5fb9f51
--- /dev/null
+++ b/documentation/models/AddEnvelopeSigningStepsRequestSigningSteps.md
@@ -0,0 +1,7 @@
+# AddEnvelopeSigningStepsRequestSigningSteps
+
+**Properties**
+
+| Name | Type | Required | Description |
+| :--------- | :---------------------------------------------------------- | :------- | :---------- |
+| recipients | List[[SigningStepsRecipients1](SigningStepsRecipients1.md)] | ❌ | |
diff --git a/documentation/models/AddTemplateAnnotationRequest.md b/documentation/models/AddTemplateAnnotationRequest.md
new file mode 100644
index 0000000..14a587e
--- /dev/null
+++ b/documentation/models/AddTemplateAnnotationRequest.md
@@ -0,0 +1,20 @@
+# AddTemplateAnnotationRequest
+
+**Properties**
+
+| Name | Type | Required | Description |
+| :----------- | :-------------------------------------------------------------------------------- | :------- | :---------- |
+| document_id | str | ❌ | |
+| page | float | ❌ | |
+| x | float | ❌ | |
+| y | float | ❌ | |
+| width | float | ❌ | |
+| height | float | ❌ | |
+| type\_ | str | ❌ | |
+| recipient_id | str | ❌ | |
+| required | bool | ❌ | |
+| signature | [AddTemplateAnnotationRequestSignature](AddTemplateAnnotationRequestSignature.md) | ❌ | |
+| initials | [AddTemplateAnnotationRequestInitials](AddTemplateAnnotationRequestInitials.md) | ❌ | |
+| text | [AddTemplateAnnotationRequestText](AddTemplateAnnotationRequestText.md) | ❌ | |
+| datetime\_ | [AddTemplateAnnotationRequestDatetime](AddTemplateAnnotationRequestDatetime.md) | ❌ | |
+| checkbox | [AddTemplateAnnotationRequestCheckbox](AddTemplateAnnotationRequestCheckbox.md) | ❌ | |
diff --git a/documentation/models/AddTemplateAnnotationRequestCheckbox.md b/documentation/models/AddTemplateAnnotationRequestCheckbox.md
new file mode 100644
index 0000000..9fb1813
--- /dev/null
+++ b/documentation/models/AddTemplateAnnotationRequestCheckbox.md
@@ -0,0 +1,8 @@
+# AddTemplateAnnotationRequestCheckbox
+
+**Properties**
+
+| Name | Type | Required | Description |
+| :------ | :--- | :------- | :---------- |
+| checked | bool | ❌ | |
+| style | str | ❌ | |
diff --git a/documentation/models/AddTemplateAnnotationRequestDatetime.md b/documentation/models/AddTemplateAnnotationRequestDatetime.md
new file mode 100644
index 0000000..31b95b7
--- /dev/null
+++ b/documentation/models/AddTemplateAnnotationRequestDatetime.md
@@ -0,0 +1,13 @@
+# AddTemplateAnnotationRequestDatetime
+
+**Properties**
+
+| Name | Type | Required | Description |
+| :-------- | :-------------------------------- | :------- | :---------- |
+| size | float | ❌ | |
+| font | [DatetimeFont2](DatetimeFont2.md) | ❌ | |
+| color | str | ❌ | |
+| auto_fill | bool | ❌ | |
+| timezone | str | ❌ | |
+| timestamp | float | ❌ | |
+| format | str | ❌ | |
diff --git a/documentation/models/AddTemplateAnnotationRequestInitials.md b/documentation/models/AddTemplateAnnotationRequestInitials.md
new file mode 100644
index 0000000..f39cb18
--- /dev/null
+++ b/documentation/models/AddTemplateAnnotationRequestInitials.md
@@ -0,0 +1,7 @@
+# AddTemplateAnnotationRequestInitials
+
+**Properties**
+
+| Name | Type | Required | Description |
+| :--- | :--- | :------- | :---------- |
+| id\_ | str | ❌ | |
diff --git a/documentation/models/AddTemplateAnnotationRequestSignature.md b/documentation/models/AddTemplateAnnotationRequestSignature.md
new file mode 100644
index 0000000..e2b7755
--- /dev/null
+++ b/documentation/models/AddTemplateAnnotationRequestSignature.md
@@ -0,0 +1,7 @@
+# AddTemplateAnnotationRequestSignature
+
+**Properties**
+
+| Name | Type | Required | Description |
+| :--- | :--- | :------- | :---------- |
+| id\_ | str | ❌ | |
diff --git a/documentation/models/AddTemplateAnnotationRequestText.md b/documentation/models/AddTemplateAnnotationRequestText.md
new file mode 100644
index 0000000..71d29bb
--- /dev/null
+++ b/documentation/models/AddTemplateAnnotationRequestText.md
@@ -0,0 +1,12 @@
+# AddTemplateAnnotationRequestText
+
+**Properties**
+
+| Name | Type | Required | Description |
+| :----------------- | :------------------------ | :------- | :---------- |
+| size | float | ❌ | |
+| color | float | ❌ | |
+| value | str | ❌ | |
+| tooltip | str | ❌ | |
+| dynamic_field_name | str | ❌ | |
+| font | [TextFont2](TextFont2.md) | ❌ | |
diff --git a/documentation/models/AddTemplateDocumentRequest.md b/documentation/models/AddTemplateDocumentRequest.md
index a5687ce..38a0dae 100644
--- a/documentation/models/AddTemplateDocumentRequest.md
+++ b/documentation/models/AddTemplateDocumentRequest.md
@@ -2,6 +2,6 @@
**Properties**
-| Name | Type | Required | Description |
-| :--- | :---- | :------- | :------------------------------ |
-| file | bytes | ✅ | File to upload in binary format |
+| Name | Type | Required | Description |
+| :--- | :---- | :------- | :---------- |
+| file | bytes | ❌ | |
diff --git a/documentation/models/AddTemplateSigningStepsRequest.md b/documentation/models/AddTemplateSigningStepsRequest.md
index a97f23e..6fed256 100644
--- a/documentation/models/AddTemplateSigningStepsRequest.md
+++ b/documentation/models/AddTemplateSigningStepsRequest.md
@@ -2,6 +2,6 @@
**Properties**
-| Name | Type | Required | Description |
-| :------------ | :------------------------ | :------- | :-------------------- |
-| signing_steps | List[TemplateSigningStep] | ✅ | List of signing steps |
+| Name | Type | Required | Description |
+| :------------ | :------------------------------------------------------------------------------------------------ | :------- | :---------- |
+| signing_steps | List[[AddTemplateSigningStepsRequestSigningSteps](AddTemplateSigningStepsRequestSigningSteps.md)] | ❌ | |
diff --git a/documentation/models/AddTemplateSigningStepsRequestSigningSteps.md b/documentation/models/AddTemplateSigningStepsRequestSigningSteps.md
new file mode 100644
index 0000000..3945bf6
--- /dev/null
+++ b/documentation/models/AddTemplateSigningStepsRequestSigningSteps.md
@@ -0,0 +1,7 @@
+# AddTemplateSigningStepsRequestSigningSteps
+
+**Properties**
+
+| Name | Type | Required | Description |
+| :--------- | :---------------------------------------------------------- | :------- | :---------- |
+| recipients | List[[SigningStepsRecipients2](SigningStepsRecipients2.md)] | ❌ | |
diff --git a/documentation/models/CreateEnvelopeFromTemplateRequest.md b/documentation/models/CreateEnvelopeFromTemplateRequest.md
index f258c5f..6a8437a 100644
--- a/documentation/models/CreateEnvelopeFromTemplateRequest.md
+++ b/documentation/models/CreateEnvelopeFromTemplateRequest.md
@@ -2,8 +2,8 @@
**Properties**
-| Name | Type | Required | Description |
-| :------ | :--- | :------- | :---------------------------------------------- |
-| name | str | ✅ | Name of the envelope |
-| comment | str | ❌ | Comment for the envelope |
-| sandbox | bool | ❌ | Whether the envelope is created in sandbox mode |
+| Name | Type | Required | Description |
+| :------ | :--- | :------- | :---------- |
+| name | str | ❌ | |
+| comment | str | ❌ | |
+| sandbox | bool | ❌ | |
diff --git a/documentation/models/CreateEnvelopeRequest.md b/documentation/models/CreateEnvelopeRequest.md
index 3cb2bdd..d33a419 100644
--- a/documentation/models/CreateEnvelopeRequest.md
+++ b/documentation/models/CreateEnvelopeRequest.md
@@ -2,10 +2,10 @@
**Properties**
-| Name | Type | Required | Description |
-| :------------- | :-------------------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| name | str | ✅ | Name of the envelope |
-| legality_level | EnvelopeLegalityLevel | ✅ | Legal level of the envelope (SES is Simple Electronic Signature, QES_EIDAS is Qualified Electronic Signature, QES_ZERTES is Qualified Electronic Signature with Zertes) |
-| expires_at | int | ❌ | Unix timestamp of the expiration date |
-| comment | str | ❌ | Comment for the envelope |
-| sandbox | bool | ❌ | Whether the envelope is created in sandbox mode |
+| Name | Type | Required | Description |
+| :------------- | :---- | :------- | :---------- |
+| name | str | ❌ | |
+| legality_level | str | ❌ | |
+| expires_at | float | ❌ | |
+| comment | str | ❌ | |
+| sandbox | bool | ❌ | |
diff --git a/documentation/models/CreateTemplateRequest.md b/documentation/models/CreateTemplateRequest.md
index b96b579..e2c7d7a 100644
--- a/documentation/models/CreateTemplateRequest.md
+++ b/documentation/models/CreateTemplateRequest.md
@@ -4,4 +4,4 @@
| Name | Type | Required | Description |
| :--- | :--- | :------- | :---------- |
-| name | str | ✅ | |
+| name | str | ❌ | |
diff --git a/documentation/models/CreateWebhookRequest.md b/documentation/models/CreateWebhookRequest.md
index c92ad94..d25100d 100644
--- a/documentation/models/CreateWebhookRequest.md
+++ b/documentation/models/CreateWebhookRequest.md
@@ -2,7 +2,7 @@
**Properties**
-| Name | Type | Required | Description |
-| :----- | :----------- | :------- | :------------------------ |
-| event | WebhookEvent | ✅ | Event of the webhook |
-| target | str | ✅ | URL of the webhook target |
+| Name | Type | Required | Description |
+| :----- | :--- | :------- | :---------- |
+| event | str | ❌ | |
+| target | str | ❌ | |
diff --git a/documentation/models/DatetimeFont1.md b/documentation/models/DatetimeFont1.md
new file mode 100644
index 0000000..32b4412
--- /dev/null
+++ b/documentation/models/DatetimeFont1.md
@@ -0,0 +1,9 @@
+# DatetimeFont_1
+
+**Properties**
+
+| Name | Type | Required | Description |
+| :----- | :--- | :------- | :---------- |
+| family | str | ❌ | |
+| italic | bool | ❌ | |
+| bold | bool | ❌ | |
diff --git a/documentation/models/DatetimeFont2.md b/documentation/models/DatetimeFont2.md
new file mode 100644
index 0000000..9770ff6
--- /dev/null
+++ b/documentation/models/DatetimeFont2.md
@@ -0,0 +1,9 @@
+# DatetimeFont_2
+
+**Properties**
+
+| Name | Type | Required | Description |
+| :----- | :--- | :------- | :---------- |
+| family | str | ❌ | |
+| italic | bool | ❌ | |
+| bold | bool | ❌ | |
diff --git a/documentation/models/DynamicFields.md b/documentation/models/DynamicFields.md
new file mode 100644
index 0000000..162dfba
--- /dev/null
+++ b/documentation/models/DynamicFields.md
@@ -0,0 +1,8 @@
+# DynamicFields
+
+**Properties**
+
+| Name | Type | Required | Description |
+| :---- | :--- | :------- | :---------- |
+| name | str | ❌ | |
+| value | str | ❌ | |
diff --git a/documentation/models/ListEnvelopesRequest.md b/documentation/models/ListEnvelopesRequest.md
index c69717e..b568f96 100644
--- a/documentation/models/ListEnvelopesRequest.md
+++ b/documentation/models/ListEnvelopesRequest.md
@@ -2,22 +2,22 @@
**Properties**
-| Name | Type | Required | Description |
-| :--------------- | :------------------- | :------- | :------------------------------------------------ |
-| name | str | ❌ | Name of the envelope |
-| tags | List[str] | ❌ | List of tags |
-| comment | str | ❌ | Comment of the envelope |
-| ids | List[str] | ❌ | List of envelope IDs |
-| statuses | List[EnvelopeStatus] | ❌ | List of envelope statuses |
-| folder_ids | List[str] | ❌ | List of folder IDs |
-| only_root_folder | bool | ❌ | Whether to only list envelopes in the root folder |
-| date_from | int | ❌ | Unix timestamp of the start date |
-| date_to | int | ❌ | Unix timestamp of the end date |
-| uid | str | ❌ | Unique identifier of the user |
-| first | int | ❌ | |
-| last | int | ❌ | |
-| after | str | ❌ | |
-| before | str | ❌ | |
-| order_field | EnvelopeOrderField | ❌ | Field to order envelopes by |
-| ascending | bool | ❌ | Whether to order envelopes in ascending order |
-| include_trash | bool | ❌ | Whether to include envelopes in the trash |
+| Name | Type | Required | Description |
+| :--------------- | :-------- | :------- | :---------- |
+| name | str | ❌ | |
+| tags | List[str] | ❌ | |
+| comment | str | ❌ | |
+| ids | List[str] | ❌ | |
+| statuses | List[str] | ❌ | |
+| folder_ids | List[str] | ❌ | |
+| only_root_folder | bool | ❌ | |
+| date_from | float | ❌ | |
+| date_to | float | ❌ | |
+| uid | str | ❌ | |
+| first | float | ❌ | |
+| last | float | ❌ | |
+| after | str | ❌ | |
+| before | str | ❌ | |
+| order_field | str | ❌ | |
+| ascending | bool | ❌ | |
+| include_trash | bool | ❌ | |
diff --git a/documentation/models/ListTemplatesRequest.md b/documentation/models/ListTemplatesRequest.md
index 51cf549..d38c753 100644
--- a/documentation/models/ListTemplatesRequest.md
+++ b/documentation/models/ListTemplatesRequest.md
@@ -2,14 +2,14 @@
**Properties**
-| Name | Type | Required | Description |
-| :---------- | :----------------- | :------- | :-------------------------------------------- |
-| name | str | ❌ | Name of the template |
-| tags | List[str] | ❌ | List of tag templates |
-| ids | List[str] | ❌ | List of templates IDs |
-| first | int | ❌ | |
-| last | int | ❌ | |
-| after | str | ❌ | |
-| before | str | ❌ | |
-| order_field | TemplateOrderField | ❌ | Field to order templates by |
-| ascending | bool | ❌ | Whether to order templates in ascending order |
+| Name | Type | Required | Description |
+| :---------- | :-------- | :------- | :---------- |
+| name | str | ❌ | |
+| tags | List[str] | ❌ | |
+| ids | List[str] | ❌ | |
+| first | float | ❌ | |
+| last | float | ❌ | |
+| after | str | ❌ | |
+| before | str | ❌ | |
+| order_field | str | ❌ | |
+| ascending | bool | ❌ | |
diff --git a/documentation/models/ListWebhooksRequest.md b/documentation/models/ListWebhooksRequest.md
index ab5ab2b..2af53dd 100644
--- a/documentation/models/ListWebhooksRequest.md
+++ b/documentation/models/ListWebhooksRequest.md
@@ -2,7 +2,7 @@
**Properties**
-| Name | Type | Required | Description |
-| :--------- | :----------- | :------- | :------------------- |
-| webhook_id | str | ❌ | ID of the webhook |
-| event | WebhookEvent | ❌ | Event of the webhook |
+| Name | Type | Required | Description |
+| :--------- | :--- | :------- | :---------- |
+| webhook_id | str | ❌ | |
+| event | str | ❌ | |
diff --git a/documentation/models/RenameEnvelopeRequest.md b/documentation/models/RenameEnvelopeRequest.md
index 95f31e3..3b764d2 100644
--- a/documentation/models/RenameEnvelopeRequest.md
+++ b/documentation/models/RenameEnvelopeRequest.md
@@ -2,6 +2,6 @@
**Properties**
-| Name | Type | Required | Description |
-| :--- | :--- | :------- | :------------------- |
-| name | str | ❌ | Name of the envelope |
+| Name | Type | Required | Description |
+| :--- | :--- | :------- | :---------- |
+| name | str | ❌ | |
diff --git a/documentation/models/RenameTemplateRequest.md b/documentation/models/RenameTemplateRequest.md
index d38895f..4d8bf38 100644
--- a/documentation/models/RenameTemplateRequest.md
+++ b/documentation/models/RenameTemplateRequest.md
@@ -2,6 +2,6 @@
**Properties**
-| Name | Type | Required | Description |
-| :--- | :--- | :------- | :------------------- |
-| name | str | ✅ | Name of the template |
+| Name | Type | Required | Description |
+| :--- | :--- | :------- | :---------- |
+| name | str | ❌ | |
diff --git a/documentation/models/SetEnvelopeAttachmentsPlaceholdersRequest.md b/documentation/models/SetEnvelopeAttachmentsPlaceholdersRequest.md
index fe001b1..3f4316a 100644
--- a/documentation/models/SetEnvelopeAttachmentsPlaceholdersRequest.md
+++ b/documentation/models/SetEnvelopeAttachmentsPlaceholdersRequest.md
@@ -2,6 +2,6 @@
**Properties**
-| Name | Type | Required | Description |
-| :----------- | :--------------------------------- | :------- | :---------- |
-| placeholders | List[AttachmentPlaceholderRequest] | ✅ | |
+| Name | Type | Required | Description |
+| :----------- | :---------------------------------------------------------------------------------------------------------------------- | :------- | :---------- |
+| placeholders | List[[SetEnvelopeAttachmentsPlaceholdersRequestPlaceholders](SetEnvelopeAttachmentsPlaceholdersRequestPlaceholders.md)] | ❌ | |
diff --git a/documentation/models/SetEnvelopeAttachmentsPlaceholdersRequestPlaceholders.md b/documentation/models/SetEnvelopeAttachmentsPlaceholdersRequestPlaceholders.md
new file mode 100644
index 0000000..cc864ae
--- /dev/null
+++ b/documentation/models/SetEnvelopeAttachmentsPlaceholdersRequestPlaceholders.md
@@ -0,0 +1,12 @@
+# SetEnvelopeAttachmentsPlaceholdersRequestPlaceholders
+
+**Properties**
+
+| Name | Type | Required | Description |
+| :----------- | :--- | :------- | :---------- |
+| recipient_id | str | ❌ | |
+| name | str | ❌ | |
+| required | bool | ❌ | |
+| multiple | bool | ❌ | |
+| id\_ | str | ❌ | |
+| hint | str | ❌ | |
diff --git a/documentation/models/SetEnvelopeAttachmentsSettingsRequest.md b/documentation/models/SetEnvelopeAttachmentsSettingsRequest.md
index 214f26e..5ce6219 100644
--- a/documentation/models/SetEnvelopeAttachmentsSettingsRequest.md
+++ b/documentation/models/SetEnvelopeAttachmentsSettingsRequest.md
@@ -2,6 +2,6 @@
**Properties**
-| Name | Type | Required | Description |
-| :------- | :----------------- | :------- | :---------- |
-| settings | AttachmentSettings | ✅ | |
+| Name | Type | Required | Description |
+| :------- | :------------------------------------------------------------------------------------------------ | :------- | :---------- |
+| settings | [SetEnvelopeAttachmentsSettingsRequestSettings](SetEnvelopeAttachmentsSettingsRequestSettings.md) | ❌ | |
diff --git a/documentation/models/SetEnvelopeAttachmentsSettingsRequestSettings.md b/documentation/models/SetEnvelopeAttachmentsSettingsRequestSettings.md
new file mode 100644
index 0000000..26933f2
--- /dev/null
+++ b/documentation/models/SetEnvelopeAttachmentsSettingsRequestSettings.md
@@ -0,0 +1,7 @@
+# SetEnvelopeAttachmentsSettingsRequestSettings
+
+**Properties**
+
+| Name | Type | Required | Description |
+| :-------------------- | :--- | :------- | :---------- |
+| visible_to_recipients | bool | ❌ | |
diff --git a/documentation/models/SetEnvelopeCommentRequest.md b/documentation/models/SetEnvelopeCommentRequest.md
index 86cf2fd..b330e06 100644
--- a/documentation/models/SetEnvelopeCommentRequest.md
+++ b/documentation/models/SetEnvelopeCommentRequest.md
@@ -2,6 +2,6 @@
**Properties**
-| Name | Type | Required | Description |
-| :------ | :--- | :------- | :----------------------- |
-| comment | str | ✅ | Comment for the envelope |
+| Name | Type | Required | Description |
+| :------ | :--- | :------- | :---------- |
+| comment | str | ❌ | |
diff --git a/documentation/models/SetEnvelopeDynamicFieldsRequest.md b/documentation/models/SetEnvelopeDynamicFieldsRequest.md
index de3856f..a5673c9 100644
--- a/documentation/models/SetEnvelopeDynamicFieldsRequest.md
+++ b/documentation/models/SetEnvelopeDynamicFieldsRequest.md
@@ -2,6 +2,6 @@
**Properties**
-| Name | Type | Required | Description |
-| :------------- | :----------------- | :------- | :--------------------- |
-| dynamic_fields | List[DynamicField] | ✅ | List of dynamic fields |
+| Name | Type | Required | Description |
+| :------------- | :-------------------------------------- | :------- | :---------- |
+| dynamic_fields | List[[DynamicFields](DynamicFields.md)] | ❌ | |
diff --git a/documentation/models/SetEnvelopeExpirationDateRequest.md b/documentation/models/SetEnvelopeExpirationDateRequest.md
new file mode 100644
index 0000000..2519ce9
--- /dev/null
+++ b/documentation/models/SetEnvelopeExpirationDateRequest.md
@@ -0,0 +1,7 @@
+# SetEnvelopeExpirationDateRequest
+
+**Properties**
+
+| Name | Type | Required | Description |
+| :--------- | :---- | :------- | :---------- |
+| expires_at | float | ❌ | |
diff --git a/documentation/models/SetEnvelopeLegalityLevelRequest.md b/documentation/models/SetEnvelopeLegalityLevelRequest.md
index 8cda3e4..5b78a7d 100644
--- a/documentation/models/SetEnvelopeLegalityLevelRequest.md
+++ b/documentation/models/SetEnvelopeLegalityLevelRequest.md
@@ -2,6 +2,6 @@
**Properties**
-| Name | Type | Required | Description |
-| :------------- | :-------------------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| legality_level | EnvelopeLegalityLevel | ❌ | Legal level of the envelope (SES is Simple Electronic Signature, QES_EIDAS is Qualified Electronic Signature, QES_ZERTES is Qualified Electronic Signature with Zertes) |
+| Name | Type | Required | Description |
+| :------------- | :--- | :------- | :---------- |
+| legality_level | str | ❌ | |
diff --git a/documentation/models/SetEnvelopeNotificationRequest.md b/documentation/models/SetEnvelopeNotificationRequest.md
new file mode 100644
index 0000000..f7bfbd0
--- /dev/null
+++ b/documentation/models/SetEnvelopeNotificationRequest.md
@@ -0,0 +1,9 @@
+# SetEnvelopeNotificationRequest
+
+**Properties**
+
+| Name | Type | Required | Description |
+| :---------------- | :---- | :------- | :---------- |
+| subject | str | ❌ | |
+| message | str | ❌ | |
+| reminder_interval | float | ❌ | |
diff --git a/documentation/models/SetTemplateAttachmentsPlaceholdersRequest.md b/documentation/models/SetTemplateAttachmentsPlaceholdersRequest.md
new file mode 100644
index 0000000..5493ad5
--- /dev/null
+++ b/documentation/models/SetTemplateAttachmentsPlaceholdersRequest.md
@@ -0,0 +1,7 @@
+# SetTemplateAttachmentsPlaceholdersRequest
+
+**Properties**
+
+| Name | Type | Required | Description |
+| :----------- | :---------------------------------------------------------------------------------------------------------------------- | :------- | :---------- |
+| placeholders | List[[SetTemplateAttachmentsPlaceholdersRequestPlaceholders](SetTemplateAttachmentsPlaceholdersRequestPlaceholders.md)] | ❌ | |
diff --git a/documentation/models/SetTemplateAttachmentsPlaceholdersRequestPlaceholders.md b/documentation/models/SetTemplateAttachmentsPlaceholdersRequestPlaceholders.md
new file mode 100644
index 0000000..1307490
--- /dev/null
+++ b/documentation/models/SetTemplateAttachmentsPlaceholdersRequestPlaceholders.md
@@ -0,0 +1,12 @@
+# SetTemplateAttachmentsPlaceholdersRequestPlaceholders
+
+**Properties**
+
+| Name | Type | Required | Description |
+| :----------- | :--- | :------- | :---------- |
+| recipient_id | str | ❌ | |
+| name | str | ❌ | |
+| required | bool | ❌ | |
+| multiple | bool | ❌ | |
+| id\_ | str | ❌ | |
+| hint | str | ❌ | |
diff --git a/documentation/models/SetTemplateAttachmentsSettingsRequest.md b/documentation/models/SetTemplateAttachmentsSettingsRequest.md
new file mode 100644
index 0000000..5ea42ec
--- /dev/null
+++ b/documentation/models/SetTemplateAttachmentsSettingsRequest.md
@@ -0,0 +1,7 @@
+# SetTemplateAttachmentsSettingsRequest
+
+**Properties**
+
+| Name | Type | Required | Description |
+| :------- | :------------------------------------------------------------------------------------------------ | :------- | :---------- |
+| settings | [SetTemplateAttachmentsSettingsRequestSettings](SetTemplateAttachmentsSettingsRequestSettings.md) | ❌ | |
diff --git a/documentation/models/SetTemplateAttachmentsSettingsRequestSettings.md b/documentation/models/SetTemplateAttachmentsSettingsRequestSettings.md
new file mode 100644
index 0000000..9360f14
--- /dev/null
+++ b/documentation/models/SetTemplateAttachmentsSettingsRequestSettings.md
@@ -0,0 +1,7 @@
+# SetTemplateAttachmentsSettingsRequestSettings
+
+**Properties**
+
+| Name | Type | Required | Description |
+| :-------------------- | :--- | :------- | :---------- |
+| visible_to_recipients | bool | ❌ | |
diff --git a/documentation/models/SetTemplateCommentRequest.md b/documentation/models/SetTemplateCommentRequest.md
index 48e9d23..a408307 100644
--- a/documentation/models/SetTemplateCommentRequest.md
+++ b/documentation/models/SetTemplateCommentRequest.md
@@ -2,6 +2,6 @@
**Properties**
-| Name | Type | Required | Description |
-| :------ | :--- | :------- | :----------------------- |
-| comment | str | ✅ | Comment for the template |
+| Name | Type | Required | Description |
+| :------ | :--- | :------- | :---------- |
+| comment | str | ❌ | |
diff --git a/documentation/models/SetTemplateNotificationRequest.md b/documentation/models/SetTemplateNotificationRequest.md
new file mode 100644
index 0000000..22eae5f
--- /dev/null
+++ b/documentation/models/SetTemplateNotificationRequest.md
@@ -0,0 +1,9 @@
+# SetTemplateNotificationRequest
+
+**Properties**
+
+| Name | Type | Required | Description |
+| :---------------- | :---- | :------- | :---------- |
+| subject | str | ❌ | |
+| message | str | ❌ | |
+| reminder_interval | float | ❌ | |
diff --git a/documentation/models/SigningStepsRecipients1.md b/documentation/models/SigningStepsRecipients1.md
new file mode 100644
index 0000000..d693be2
--- /dev/null
+++ b/documentation/models/SigningStepsRecipients1.md
@@ -0,0 +1,12 @@
+# SigningStepsRecipients_1
+
+**Properties**
+
+| Name | Type | Required | Description |
+| :----------- | :------------------------------ | :------- | :---------- |
+| name | str | ❌ | |
+| email | str | ❌ | |
+| role | str | ❌ | |
+| id\_ | str | ❌ | |
+| uid | str | ❌ | |
+| verification | [Verification](Verification.md) | ❌ | |
diff --git a/documentation/models/SigningStepsRecipients2.md b/documentation/models/SigningStepsRecipients2.md
new file mode 100644
index 0000000..fa0b9cc
--- /dev/null
+++ b/documentation/models/SigningStepsRecipients2.md
@@ -0,0 +1,11 @@
+# SigningStepsRecipients_2
+
+**Properties**
+
+| Name | Type | Required | Description |
+| :---- | :--- | :------- | :---------- |
+| id\_ | str | ❌ | |
+| uid | str | ❌ | |
+| name | str | ❌ | |
+| email | str | ❌ | |
+| role | str | ❌ | |
diff --git a/documentation/models/TextFont1.md b/documentation/models/TextFont1.md
new file mode 100644
index 0000000..bab13b2
--- /dev/null
+++ b/documentation/models/TextFont1.md
@@ -0,0 +1,9 @@
+# TextFont_1
+
+**Properties**
+
+| Name | Type | Required | Description |
+| :----- | :--- | :------- | :---------- |
+| family | str | ❌ | |
+| italic | bool | ❌ | |
+| bold | bool | ❌ | |
diff --git a/documentation/models/TextFont2.md b/documentation/models/TextFont2.md
new file mode 100644
index 0000000..544e3a6
--- /dev/null
+++ b/documentation/models/TextFont2.md
@@ -0,0 +1,9 @@
+# TextFont_2
+
+**Properties**
+
+| Name | Type | Required | Description |
+| :----- | :--- | :------- | :---------- |
+| family | str | ❌ | |
+| italic | bool | ❌ | |
+| bold | bool | ❌ | |
diff --git a/documentation/models/Verification.md b/documentation/models/Verification.md
new file mode 100644
index 0000000..0ad19cf
--- /dev/null
+++ b/documentation/models/Verification.md
@@ -0,0 +1,8 @@
+# Verification
+
+**Properties**
+
+| Name | Type | Required | Description |
+| :----- | :--- | :------- | :---------- |
+| type\_ | str | ❌ | |
+| value | str | ❌ | |
diff --git a/documentation/services/AnnotationIdService.md b/documentation/services/AnnotationIdService.md
new file mode 100644
index 0000000..882071b
--- /dev/null
+++ b/documentation/services/AnnotationIdService.md
@@ -0,0 +1,44 @@
+# AnnotationIdService
+
+A list of all methods in the `AnnotationIdService` service. Click on the method name to view detailed information about that method.
+
+| Methods | Description |
+| :-------------------------------------------------------- | :------------------------- |
+| [delete_envelope_annotation](#delete_envelope_annotation) | Delete envelope annotation |
+
+## delete_envelope_annotation
+
+Delete envelope annotation
+
+- HTTP Method: `DELETE`
+- Endpoint: `/envelope/{envelope_id}/annotation/{annotation_id}`
+
+**Parameters**
+
+| Name | Type | Required | Description |
+| :------------ | :--- | :------- | :---------- |
+| envelope_id | str | ✅ | |
+| annotation_id | str | ✅ | |
+
+**Return Type**
+
+`Any`
+
+**Example Usage Code Snippet**
+
+```python
+from signplus import Signplus, Environment
+
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
+ timeout=10000
+)
+
+result = sdk.annotation_id.delete_envelope_annotation(
+ envelope_id="envelope_id",
+ annotation_id="annotation_id"
+)
+
+print(result)
+```
diff --git a/documentation/services/AnnotationService.md b/documentation/services/AnnotationService.md
new file mode 100644
index 0000000..0155729
--- /dev/null
+++ b/documentation/services/AnnotationService.md
@@ -0,0 +1,94 @@
+# AnnotationService
+
+A list of all methods in the `AnnotationService` service. Click on the method name to view detailed information about that method.
+
+| Methods | Description |
+| :-------------------------------------------------- | :---------------------- |
+| [add_envelope_annotation](#add_envelope_annotation) | Add envelope annotation |
+
+## add_envelope_annotation
+
+Add envelope annotation
+
+- HTTP Method: `POST`
+- Endpoint: `/envelope/{envelope_id}/annotation`
+
+**Parameters**
+
+| Name | Type | Required | Description |
+| :----------- | :------------------------------------------------------------------------ | :------- | :---------------- |
+| request_body | [AddEnvelopeAnnotationRequest](../models/AddEnvelopeAnnotationRequest.md) | ✅ | The request body. |
+| envelope_id | str | ✅ | |
+| accept | str | ✅ | |
+
+**Return Type**
+
+`Any`
+
+**Example Usage Code Snippet**
+
+```python
+from signplus import Signplus, Environment
+from signplus.models import AddEnvelopeAnnotationRequest
+
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
+ timeout=10000
+)
+
+request_body = AddEnvelopeAnnotationRequest(
+ document_id="string",
+ page=6387,
+ x=4410.13346533615,
+ y=5148.888749329143,
+ width=3756.0248729763225,
+ height=4178.76189579703,
+ type_="INITIALS",
+ recipient_id="string",
+ required=False,
+ signature={
+ "id_": "string"
+ },
+ initials={
+ "id_": "string"
+ },
+ text={
+ "size": 6190.822136605691,
+ "color": 6489.781325519173,
+ "value": "string",
+ "tooltip": "string",
+ "dynamic_field_name": "string",
+ "font": {
+ "family": "SANS",
+ "italic": False,
+ "bold": False
+ }
+ },
+ datetime_={
+ "size": 3773.1065479576364,
+ "font": {
+ "family": "SERIF",
+ "italic": False,
+ "bold": False
+ },
+ "color": "string",
+ "auto_fill": True,
+ "timezone": "string",
+ "timestamp": 6868,
+ "format": "MDY_TEXT_SPACE_SHORT"
+ },
+ checkbox={
+ "checked": False,
+ "style": "SQUARE_CHECK"
+ }
+)
+
+result = sdk.annotation.add_envelope_annotation(
+ request_body=request_body,
+ envelope_id="envelope_id",
+ accept="application/json"
+)
+
+print(result)
+```
diff --git a/documentation/services/AnnotationsService.md b/documentation/services/AnnotationsService.md
new file mode 100644
index 0000000..22fe265
--- /dev/null
+++ b/documentation/services/AnnotationsService.md
@@ -0,0 +1,44 @@
+# AnnotationsService
+
+A list of all methods in the `AnnotationsService` service. Click on the method name to view detailed information about that method.
+
+| Methods | Description |
+| :---------------------------------------------------- | :----------------------- |
+| [get_envelope_annotations](#get_envelope_annotations) | Get envelope annotations |
+
+## get_envelope_annotations
+
+Get envelope annotations
+
+- HTTP Method: `GET`
+- Endpoint: `/envelope/{envelope_id}/annotations`
+
+**Parameters**
+
+| Name | Type | Required | Description |
+| :---------- | :--- | :------- | :---------- |
+| envelope_id | str | ✅ | |
+| accept | str | ✅ | |
+
+**Return Type**
+
+`Any`
+
+**Example Usage Code Snippet**
+
+```python
+from signplus import Signplus, Environment
+
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
+ timeout=10000
+)
+
+result = sdk.annotations.get_envelope_annotations(
+ envelope_id="envelope_id",
+ accept="application/json"
+)
+
+print(result)
+```
diff --git a/documentation/services/CertificateService.md b/documentation/services/CertificateService.md
new file mode 100644
index 0000000..f0d4f6c
--- /dev/null
+++ b/documentation/services/CertificateService.md
@@ -0,0 +1,44 @@
+# CertificateService
+
+A list of all methods in the `CertificateService` service. Click on the method name to view detailed information about that method.
+
+| Methods | Description |
+| :-------------------------------------------------------------- | :------------------------------------------------- |
+| [download_envelope_certificate](#download_envelope_certificate) | Download certificate of completion for an envelope |
+
+## download_envelope_certificate
+
+Download certificate of completion for an envelope
+
+- HTTP Method: `GET`
+- Endpoint: `/envelope/{envelope_id}/certificate`
+
+**Parameters**
+
+| Name | Type | Required | Description |
+| :---------- | :--- | :------- | :---------- |
+| envelope_id | str | ✅ | |
+| accept | str | ✅ | |
+
+**Return Type**
+
+`Any`
+
+**Example Usage Code Snippet**
+
+```python
+from signplus import Signplus, Environment
+
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
+ timeout=10000
+)
+
+result = sdk.certificate.download_envelope_certificate(
+ envelope_id="envelope_id",
+ accept="application/pdf"
+)
+
+print(result)
+```
diff --git a/documentation/services/DocumentIdService.md b/documentation/services/DocumentIdService.md
new file mode 100644
index 0000000..2f7e8bf
--- /dev/null
+++ b/documentation/services/DocumentIdService.md
@@ -0,0 +1,46 @@
+# DocumentIdService
+
+A list of all methods in the `DocumentIdService` service. Click on the method name to view detailed information about that method.
+
+| Methods | Description |
+| :---------------------------------------------- | :-------------------- |
+| [get_envelope_document](#get_envelope_document) | Get envelope document |
+
+## get_envelope_document
+
+Get envelope document
+
+- HTTP Method: `GET`
+- Endpoint: `/envelope/{envelope_id}/document/{document_id}`
+
+**Parameters**
+
+| Name | Type | Required | Description |
+| :---------- | :--- | :------- | :---------- |
+| envelope_id | str | ✅ | |
+| document_id | str | ✅ | |
+| accept | str | ✅ | |
+
+**Return Type**
+
+`Any`
+
+**Example Usage Code Snippet**
+
+```python
+from signplus import Signplus, Environment
+
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
+ timeout=10000
+)
+
+result = sdk.document_id.get_envelope_document(
+ envelope_id="envelope_id",
+ document_id="document_id",
+ accept="application/json"
+)
+
+print(result)
+```
diff --git a/documentation/services/DocumentService.md b/documentation/services/DocumentService.md
new file mode 100644
index 0000000..f211851
--- /dev/null
+++ b/documentation/services/DocumentService.md
@@ -0,0 +1,51 @@
+# DocumentService
+
+A list of all methods in the `DocumentService` service. Click on the method name to view detailed information about that method.
+
+| Methods | Description |
+| :---------------------------------------------- | :-------------------- |
+| [add_envelope_document](#add_envelope_document) | Add envelope document |
+
+## add_envelope_document
+
+Add envelope document
+
+- HTTP Method: `POST`
+- Endpoint: `/envelope/{envelope_id}/document`
+
+**Parameters**
+
+| Name | Type | Required | Description |
+| :----------- | :-------------------------------------------------------------------- | :------- | :---------------- |
+| request_body | [AddEnvelopeDocumentRequest](../models/AddEnvelopeDocumentRequest.md) | ✅ | The request body. |
+| envelope_id | str | ✅ | |
+| accept | str | ✅ | |
+
+**Return Type**
+
+`Any`
+
+**Example Usage Code Snippet**
+
+```python
+from signplus import Signplus, Environment
+from signplus.models import AddEnvelopeDocumentRequest
+
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
+ timeout=10000
+)
+
+request_body = AddEnvelopeDocumentRequest(
+ file=""
+)
+
+result = sdk.document.add_envelope_document(
+ request_body=request_body,
+ envelope_id="envelope_id",
+ accept="application/json"
+)
+
+print(result)
+```
diff --git a/documentation/services/DocumentsService.md b/documentation/services/DocumentsService.md
new file mode 100644
index 0000000..400f03b
--- /dev/null
+++ b/documentation/services/DocumentsService.md
@@ -0,0 +1,44 @@
+# DocumentsService
+
+A list of all methods in the `DocumentsService` service. Click on the method name to view detailed information about that method.
+
+| Methods | Description |
+| :------------------------------------------------ | :--------------------- |
+| [get_envelope_documents](#get_envelope_documents) | Get envelope documents |
+
+## get_envelope_documents
+
+Get envelope documents
+
+- HTTP Method: `GET`
+- Endpoint: `/envelope/{envelope_id}/documents`
+
+**Parameters**
+
+| Name | Type | Required | Description |
+| :---------- | :--- | :------- | :---------- |
+| envelope_id | str | ✅ | |
+| accept | str | ✅ | |
+
+**Return Type**
+
+`Any`
+
+**Example Usage Code Snippet**
+
+```python
+from signplus import Signplus, Environment
+
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
+ timeout=10000
+)
+
+result = sdk.documents.get_envelope_documents(
+ envelope_id="envelope_id",
+ accept="application/json"
+)
+
+print(result)
+```
diff --git a/documentation/services/DuplicateService.md b/documentation/services/DuplicateService.md
new file mode 100644
index 0000000..f1b9b5c
--- /dev/null
+++ b/documentation/services/DuplicateService.md
@@ -0,0 +1,44 @@
+# DuplicateService
+
+A list of all methods in the `DuplicateService` service. Click on the method name to view detailed information about that method.
+
+| Methods | Description |
+| :---------------------------------------- | :----------------- |
+| [duplicate_envelope](#duplicate_envelope) | Duplicate envelope |
+
+## duplicate_envelope
+
+Duplicate envelope
+
+- HTTP Method: `POST`
+- Endpoint: `/envelope/{envelope_id}/duplicate`
+
+**Parameters**
+
+| Name | Type | Required | Description |
+| :---------- | :--- | :------- | :---------- |
+| envelope_id | str | ✅ | |
+| accept | str | ✅ | |
+
+**Return Type**
+
+`Any`
+
+**Example Usage Code Snippet**
+
+```python
+from signplus import Signplus, Environment
+
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
+ timeout=10000
+)
+
+result = sdk.duplicate.duplicate_envelope(
+ envelope_id="envelope_id",
+ accept="application/json"
+)
+
+print(result)
+```
diff --git a/documentation/services/DynamicFieldsService.md b/documentation/services/DynamicFieldsService.md
new file mode 100644
index 0000000..3d9dcae
--- /dev/null
+++ b/documentation/services/DynamicFieldsService.md
@@ -0,0 +1,56 @@
+# DynamicFieldsService
+
+A list of all methods in the `DynamicFieldsService` service. Click on the method name to view detailed information about that method.
+
+| Methods | Description |
+| :---------------------------------------------------------- | :-------------------------- |
+| [set_envelope_dynamic_fields](#set_envelope_dynamic_fields) | Set envelope dynamic fields |
+
+## set_envelope_dynamic_fields
+
+Set envelope dynamic fields
+
+- HTTP Method: `PUT`
+- Endpoint: `/envelope/{envelope_id}/dynamic_fields`
+
+**Parameters**
+
+| Name | Type | Required | Description |
+| :----------- | :------------------------------------------------------------------------------ | :------- | :---------------- |
+| request_body | [SetEnvelopeDynamicFieldsRequest](../models/SetEnvelopeDynamicFieldsRequest.md) | ✅ | The request body. |
+| envelope_id | str | ✅ | |
+| accept | str | ✅ | |
+
+**Return Type**
+
+`Any`
+
+**Example Usage Code Snippet**
+
+```python
+from signplus import Signplus, Environment
+from signplus.models import SetEnvelopeDynamicFieldsRequest
+
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
+ timeout=10000
+)
+
+request_body = SetEnvelopeDynamicFieldsRequest(
+ dynamic_fields=[
+ {
+ "name": "string",
+ "value": "string"
+ }
+ ]
+)
+
+result = sdk.dynamic_fields.set_envelope_dynamic_fields(
+ request_body=request_body,
+ envelope_id="envelope_id",
+ accept="application/json"
+)
+
+print(result)
+```
diff --git a/documentation/services/EnvelopeEnvelopeIdAnnotationsDocumentIdService.md b/documentation/services/EnvelopeEnvelopeIdAnnotationsDocumentIdService.md
new file mode 100644
index 0000000..5716cb1
--- /dev/null
+++ b/documentation/services/EnvelopeEnvelopeIdAnnotationsDocumentIdService.md
@@ -0,0 +1,46 @@
+# EnvelopeEnvelopeIdAnnotationsDocumentIdService
+
+A list of all methods in the `EnvelopeEnvelopeIdAnnotationsDocumentIdService` service. Click on the method name to view detailed information about that method.
+
+| Methods | Description |
+| :---------------------------------------------------------------------- | :-------------------------------- |
+| [get_envelope_document_annotations](#get_envelope_document_annotations) | Get envelope document annotations |
+
+## get_envelope_document_annotations
+
+Get envelope document annotations
+
+- HTTP Method: `GET`
+- Endpoint: `/envelope/{envelope_id}/annotations/{document_id}`
+
+**Parameters**
+
+| Name | Type | Required | Description |
+| :---------- | :--- | :------- | :---------- |
+| envelope_id | str | ✅ | |
+| document_id | str | ✅ | |
+| accept | str | ✅ | |
+
+**Return Type**
+
+`Any`
+
+**Example Usage Code Snippet**
+
+```python
+from signplus import Signplus, Environment
+
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
+ timeout=10000
+)
+
+result = sdk.envelope_envelope_id_annotations_document_id.get_envelope_document_annotations(
+ envelope_id="envelope_id",
+ document_id="document_id",
+ accept="application/json"
+)
+
+print(result)
+```
diff --git a/documentation/services/EnvelopeIdService.md b/documentation/services/EnvelopeIdService.md
new file mode 100644
index 0000000..b275b18
--- /dev/null
+++ b/documentation/services/EnvelopeIdService.md
@@ -0,0 +1,78 @@
+# EnvelopeIdService
+
+A list of all methods in the `EnvelopeIdService` service. Click on the method name to view detailed information about that method.
+
+| Methods | Description |
+| :---------------------------------- | :-------------- |
+| [get_envelope](#get_envelope) | Get envelope |
+| [delete_envelope](#delete_envelope) | Delete envelope |
+
+## get_envelope
+
+Get envelope
+
+- HTTP Method: `GET`
+- Endpoint: `/envelope/{envelope_id}`
+
+**Parameters**
+
+| Name | Type | Required | Description |
+| :---------- | :--- | :------- | :---------- |
+| envelope_id | str | ✅ | |
+| accept | str | ✅ | |
+
+**Return Type**
+
+`Any`
+
+**Example Usage Code Snippet**
+
+```python
+from signplus import Signplus, Environment
+
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
+ timeout=10000
+)
+
+result = sdk.envelope_id.get_envelope(
+ envelope_id="envelope_id",
+ accept="application/json"
+)
+
+print(result)
+```
+
+## delete_envelope
+
+Delete envelope
+
+- HTTP Method: `DELETE`
+- Endpoint: `/envelope/{envelope_id}`
+
+**Parameters**
+
+| Name | Type | Required | Description |
+| :---------- | :--- | :------- | :---------- |
+| envelope_id | str | ✅ | |
+
+**Return Type**
+
+`Any`
+
+**Example Usage Code Snippet**
+
+```python
+from signplus import Signplus, Environment
+
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
+ timeout=10000
+)
+
+result = sdk.envelope_id.delete_envelope(envelope_id="envelope_id")
+
+print(result)
+```
diff --git a/documentation/services/EnvelopeService.md b/documentation/services/EnvelopeService.md
new file mode 100644
index 0000000..306d0a5
--- /dev/null
+++ b/documentation/services/EnvelopeService.md
@@ -0,0 +1,53 @@
+# EnvelopeService
+
+A list of all methods in the `EnvelopeService` service. Click on the method name to view detailed information about that method.
+
+| Methods | Description |
+| :---------------------------------- | :------------------ |
+| [create_envelope](#create_envelope) | Create new envelope |
+
+## create_envelope
+
+Create new envelope
+
+- HTTP Method: `POST`
+- Endpoint: `/envelope`
+
+**Parameters**
+
+| Name | Type | Required | Description |
+| :----------- | :---------------------------------------------------------- | :------- | :---------------- |
+| request_body | [CreateEnvelopeRequest](../models/CreateEnvelopeRequest.md) | ✅ | The request body. |
+| accept | str | ✅ | |
+
+**Return Type**
+
+`Any`
+
+**Example Usage Code Snippet**
+
+```python
+from signplus import Signplus, Environment
+from signplus.models import CreateEnvelopeRequest
+
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
+ timeout=10000
+)
+
+request_body = CreateEnvelopeRequest(
+ name="7ox22",
+ legality_level="SES",
+ expires_at=5681,
+ comment="string",
+ sandbox=False
+)
+
+result = sdk.envelope.create_envelope(
+ request_body=request_body,
+ accept="application/json"
+)
+
+print(result)
+```
diff --git a/documentation/services/EnvelopesService.md b/documentation/services/EnvelopesService.md
new file mode 100644
index 0000000..fb5c2e1
--- /dev/null
+++ b/documentation/services/EnvelopesService.md
@@ -0,0 +1,73 @@
+# EnvelopesService
+
+A list of all methods in the `EnvelopesService` service. Click on the method name to view detailed information about that method.
+
+| Methods | Description |
+| :-------------------------------- | :------------- |
+| [list_envelopes](#list_envelopes) | List envelopes |
+
+## list_envelopes
+
+List envelopes
+
+- HTTP Method: `POST`
+- Endpoint: `/envelopes`
+
+**Parameters**
+
+| Name | Type | Required | Description |
+| :----------- | :-------------------------------------------------------- | :------- | :---------------- |
+| request_body | [ListEnvelopesRequest](../models/ListEnvelopesRequest.md) | ✅ | The request body. |
+| accept | str | ✅ | |
+
+**Return Type**
+
+`Any`
+
+**Example Usage Code Snippet**
+
+```python
+from signplus import Signplus, Environment
+from signplus.models import ListEnvelopesRequest
+
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
+ timeout=10000
+)
+
+request_body = ListEnvelopesRequest(
+ name="string",
+ tags=[
+ "string"
+ ],
+ comment="string",
+ ids=[
+ "string"
+ ],
+ statuses=[
+ "DRAFT"
+ ],
+ folder_ids=[
+ "string"
+ ],
+ only_root_folder=False,
+ date_from=6508,
+ date_to=690,
+ uid="string",
+ first=6875,
+ last=4384,
+ after="string",
+ before="string",
+ order_field="LAST_DOCUMENT_CHANGE",
+ ascending=False,
+ include_trash=False
+)
+
+result = sdk.envelopes.list_envelopes(
+ request_body=request_body,
+ accept="application/json"
+)
+
+print(result)
+```
diff --git a/documentation/services/FileIdService.md b/documentation/services/FileIdService.md
new file mode 100644
index 0000000..6bc6981
--- /dev/null
+++ b/documentation/services/FileIdService.md
@@ -0,0 +1,46 @@
+# FileIdService
+
+A list of all methods in the `FileIdService` service. Click on the method name to view detailed information about that method.
+
+| Methods | Description |
+| :------------------------------------------ | :--------------------------- |
+| [get_attachment_file](#get_attachment_file) | Get envelope attachment file |
+
+## get_attachment_file
+
+Get envelope attachment file
+
+- HTTP Method: `GET`
+- Endpoint: `/envelope/{envelope_id}/attachments/{file_id}`
+
+**Parameters**
+
+| Name | Type | Required | Description |
+| :---------- | :--- | :------- | :---------- |
+| envelope_id | str | ✅ | |
+| file_id | str | ✅ | |
+| accept | str | ✅ | |
+
+**Return Type**
+
+`Any`
+
+**Example Usage Code Snippet**
+
+```python
+from signplus import Signplus, Environment
+
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
+ timeout=10000
+)
+
+result = sdk.file_id.get_attachment_file(
+ envelope_id="envelope_id",
+ file_id="file_id",
+ accept="application/octet-stream"
+)
+
+print(result)
+```
diff --git a/documentation/services/PlaceholdersService.md b/documentation/services/PlaceholdersService.md
new file mode 100644
index 0000000..8c32412
--- /dev/null
+++ b/documentation/services/PlaceholdersService.md
@@ -0,0 +1,60 @@
+# PlaceholdersService
+
+A list of all methods in the `PlaceholdersService` service. Click on the method name to view detailed information about that method.
+
+| Methods | Description |
+| :------------------------------------------------------------------------------ | :-------------------------------------------------------------- |
+| [set_envelope_attachments_placeholders](#set_envelope_attachments_placeholders) | Placeholders to be set, completely replacing the existing ones. |
+
+## set_envelope_attachments_placeholders
+
+Placeholders to be set, completely replacing the existing ones.
+
+- HTTP Method: `PUT`
+- Endpoint: `/envelope/{envelope_id}/attachments/placeholders`
+
+**Parameters**
+
+| Name | Type | Required | Description |
+| :----------- | :-------------------------------------------------------------------------------------------------- | :------- | :---------------- |
+| request_body | [SetEnvelopeAttachmentsPlaceholdersRequest](../models/SetEnvelopeAttachmentsPlaceholdersRequest.md) | ✅ | The request body. |
+| envelope_id | str | ✅ | |
+| accept | str | ✅ | |
+
+**Return Type**
+
+`Any`
+
+**Example Usage Code Snippet**
+
+```python
+from signplus import Signplus, Environment
+from signplus.models import SetEnvelopeAttachmentsPlaceholdersRequest
+
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
+ timeout=10000
+)
+
+request_body = SetEnvelopeAttachmentsPlaceholdersRequest(
+ placeholders=[
+ {
+ "recipient_id": "string",
+ "name": "string",
+ "required": False,
+ "multiple": False,
+ "id_": "string",
+ "hint": "string"
+ }
+ ]
+)
+
+result = sdk.placeholders.set_envelope_attachments_placeholders(
+ request_body=request_body,
+ envelope_id="envelope_id",
+ accept="application/json"
+)
+
+print(result)
+```
diff --git a/documentation/services/RenameService.md b/documentation/services/RenameService.md
new file mode 100644
index 0000000..dfe8e5b
--- /dev/null
+++ b/documentation/services/RenameService.md
@@ -0,0 +1,51 @@
+# RenameService
+
+A list of all methods in the `RenameService` service. Click on the method name to view detailed information about that method.
+
+| Methods | Description |
+| :---------------------------------- | :-------------- |
+| [rename_envelope](#rename_envelope) | Rename envelope |
+
+## rename_envelope
+
+Rename envelope
+
+- HTTP Method: `PUT`
+- Endpoint: `/envelope/{envelope_id}/rename`
+
+**Parameters**
+
+| Name | Type | Required | Description |
+| :----------- | :---------------------------------------------------------- | :------- | :---------------- |
+| request_body | [RenameEnvelopeRequest](../models/RenameEnvelopeRequest.md) | ✅ | The request body. |
+| envelope_id | str | ✅ | |
+| accept | str | ✅ | |
+
+**Return Type**
+
+`Any`
+
+**Example Usage Code Snippet**
+
+```python
+from signplus import Signplus, Environment
+from signplus.models import RenameEnvelopeRequest
+
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
+ timeout=10000
+)
+
+request_body = RenameEnvelopeRequest(
+ name="string"
+)
+
+result = sdk.rename.rename_envelope(
+ request_body=request_body,
+ envelope_id="envelope_id",
+ accept="application/json"
+)
+
+print(result)
+```
diff --git a/documentation/services/SendService.md b/documentation/services/SendService.md
new file mode 100644
index 0000000..b2d5642
--- /dev/null
+++ b/documentation/services/SendService.md
@@ -0,0 +1,44 @@
+# SendService
+
+A list of all methods in the `SendService` service. Click on the method name to view detailed information about that method.
+
+| Methods | Description |
+| :------------------------------ | :-------------------------- |
+| [send_envelope](#send_envelope) | Send envelope for signature |
+
+## send_envelope
+
+Send envelope for signature
+
+- HTTP Method: `POST`
+- Endpoint: `/envelope/{envelope_id}/send`
+
+**Parameters**
+
+| Name | Type | Required | Description |
+| :---------- | :--- | :------- | :---------- |
+| envelope_id | str | ✅ | |
+| accept | str | ✅ | |
+
+**Return Type**
+
+`Any`
+
+**Example Usage Code Snippet**
+
+```python
+from signplus import Signplus, Environment
+
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
+ timeout=10000
+)
+
+result = sdk.send.send_envelope(
+ envelope_id="envelope_id",
+ accept="application/json"
+)
+
+print(result)
+```
diff --git a/documentation/services/SetCommentService.md b/documentation/services/SetCommentService.md
new file mode 100644
index 0000000..384311b
--- /dev/null
+++ b/documentation/services/SetCommentService.md
@@ -0,0 +1,51 @@
+# SetCommentService
+
+A list of all methods in the `SetCommentService` service. Click on the method name to view detailed information about that method.
+
+| Methods | Description |
+| :-------------------------------------------- | :------------------- |
+| [set_envelope_comment](#set_envelope_comment) | Set envelope comment |
+
+## set_envelope_comment
+
+Set envelope comment
+
+- HTTP Method: `PUT`
+- Endpoint: `/envelope/{envelope_id}/set_comment`
+
+**Parameters**
+
+| Name | Type | Required | Description |
+| :----------- | :------------------------------------------------------------------ | :------- | :---------------- |
+| request_body | [SetEnvelopeCommentRequest](../models/SetEnvelopeCommentRequest.md) | ✅ | The request body. |
+| envelope_id | str | ✅ | |
+| accept | str | ✅ | |
+
+**Return Type**
+
+`Any`
+
+**Example Usage Code Snippet**
+
+```python
+from signplus import Signplus, Environment
+from signplus.models import SetEnvelopeCommentRequest
+
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
+ timeout=10000
+)
+
+request_body = SetEnvelopeCommentRequest(
+ comment="string"
+)
+
+result = sdk.set_comment.set_envelope_comment(
+ request_body=request_body,
+ envelope_id="envelope_id",
+ accept="application/json"
+)
+
+print(result)
+```
diff --git a/documentation/services/SetExpirationDateService.md b/documentation/services/SetExpirationDateService.md
new file mode 100644
index 0000000..b9fd2d7
--- /dev/null
+++ b/documentation/services/SetExpirationDateService.md
@@ -0,0 +1,51 @@
+# SetExpirationDateService
+
+A list of all methods in the `SetExpirationDateService` service. Click on the method name to view detailed information about that method.
+
+| Methods | Description |
+| :------------------------------------------------------------ | :--------------------------- |
+| [set_envelope_expiration_date](#set_envelope_expiration_date) | Set envelope expiration date |
+
+## set_envelope_expiration_date
+
+Set envelope expiration date
+
+- HTTP Method: `PUT`
+- Endpoint: `/envelope/{envelope_id}/set_expiration_date`
+
+**Parameters**
+
+| Name | Type | Required | Description |
+| :----------- | :-------------------------------------------------------------------------------- | :------- | :---------------- |
+| request_body | [SetEnvelopeExpirationDateRequest](../models/SetEnvelopeExpirationDateRequest.md) | ✅ | The request body. |
+| envelope_id | str | ✅ | |
+| accept | str | ✅ | |
+
+**Return Type**
+
+`Any`
+
+**Example Usage Code Snippet**
+
+```python
+from signplus import Signplus, Environment
+from signplus.models import SetEnvelopeExpirationDateRequest
+
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
+ timeout=10000
+)
+
+request_body = SetEnvelopeExpirationDateRequest(
+ expires_at=5958
+)
+
+result = sdk.set_expiration_date.set_envelope_expiration_date(
+ request_body=request_body,
+ envelope_id="envelope_id",
+ accept="application/json"
+)
+
+print(result)
+```
diff --git a/documentation/services/SetLegalityLevelService.md b/documentation/services/SetLegalityLevelService.md
new file mode 100644
index 0000000..d590bef
--- /dev/null
+++ b/documentation/services/SetLegalityLevelService.md
@@ -0,0 +1,51 @@
+# SetLegalityLevelService
+
+A list of all methods in the `SetLegalityLevelService` service. Click on the method name to view detailed information about that method.
+
+| Methods | Description |
+| :---------------------------------------------------------- | :-------------------------- |
+| [set_envelope_legality_level](#set_envelope_legality_level) | Set envelope legality level |
+
+## set_envelope_legality_level
+
+Set envelope legality level
+
+- HTTP Method: `PUT`
+- Endpoint: `/envelope/{envelope_id}/set_legality_level`
+
+**Parameters**
+
+| Name | Type | Required | Description |
+| :----------- | :------------------------------------------------------------------------------ | :------- | :---------------- |
+| request_body | [SetEnvelopeLegalityLevelRequest](../models/SetEnvelopeLegalityLevelRequest.md) | ✅ | The request body. |
+| envelope_id | str | ✅ | |
+| accept | str | ✅ | |
+
+**Return Type**
+
+`Any`
+
+**Example Usage Code Snippet**
+
+```python
+from signplus import Signplus, Environment
+from signplus.models import SetEnvelopeLegalityLevelRequest
+
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
+ timeout=10000
+)
+
+request_body = SetEnvelopeLegalityLevelRequest(
+ legality_level="SES"
+)
+
+result = sdk.set_legality_level.set_envelope_legality_level(
+ request_body=request_body,
+ envelope_id="envelope_id",
+ accept="application/json"
+)
+
+print(result)
+```
diff --git a/documentation/services/SetNotificationService.md b/documentation/services/SetNotificationService.md
new file mode 100644
index 0000000..5b49734
--- /dev/null
+++ b/documentation/services/SetNotificationService.md
@@ -0,0 +1,53 @@
+# SetNotificationService
+
+A list of all methods in the `SetNotificationService` service. Click on the method name to view detailed information about that method.
+
+| Methods | Description |
+| :------------------------------------------------------ | :------------------------ |
+| [set_envelope_notification](#set_envelope_notification) | Set envelope notification |
+
+## set_envelope_notification
+
+Set envelope notification
+
+- HTTP Method: `PUT`
+- Endpoint: `/envelope/{envelope_id}/set_notification`
+
+**Parameters**
+
+| Name | Type | Required | Description |
+| :----------- | :---------------------------------------------------------------------------- | :------- | :---------------- |
+| request_body | [SetEnvelopeNotificationRequest](../models/SetEnvelopeNotificationRequest.md) | ✅ | The request body. |
+| envelope_id | str | ✅ | |
+| accept | str | ✅ | |
+
+**Return Type**
+
+`Any`
+
+**Example Usage Code Snippet**
+
+```python
+from signplus import Signplus, Environment
+from signplus.models import SetEnvelopeNotificationRequest
+
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
+ timeout=10000
+)
+
+request_body = SetEnvelopeNotificationRequest(
+ subject="string",
+ message="string",
+ reminder_interval=4732
+)
+
+result = sdk.set_notification.set_envelope_notification(
+ request_body=request_body,
+ envelope_id="envelope_id",
+ accept="application/json"
+)
+
+print(result)
+```
diff --git a/documentation/services/SettingsService.md b/documentation/services/SettingsService.md
new file mode 100644
index 0000000..94b425e
--- /dev/null
+++ b/documentation/services/SettingsService.md
@@ -0,0 +1,53 @@
+# SettingsService
+
+A list of all methods in the `SettingsService` service. Click on the method name to view detailed information about that method.
+
+| Methods | Description |
+| :---------------------------------------------------------------------- | :------------------------------- |
+| [set_envelope_attachments_settings](#set_envelope_attachments_settings) | Set envelope attachment settings |
+
+## set_envelope_attachments_settings
+
+Set envelope attachment settings
+
+- HTTP Method: `PUT`
+- Endpoint: `/envelope/{envelope_id}/attachments/settings`
+
+**Parameters**
+
+| Name | Type | Required | Description |
+| :----------- | :------------------------------------------------------------------------------------------ | :------- | :---------------- |
+| request_body | [SetEnvelopeAttachmentsSettingsRequest](../models/SetEnvelopeAttachmentsSettingsRequest.md) | ✅ | The request body. |
+| envelope_id | str | ✅ | |
+| accept | str | ✅ | |
+
+**Return Type**
+
+`Any`
+
+**Example Usage Code Snippet**
+
+```python
+from signplus import Signplus, Environment
+from signplus.models import SetEnvelopeAttachmentsSettingsRequest
+
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
+ timeout=10000
+)
+
+request_body = SetEnvelopeAttachmentsSettingsRequest(
+ settings={
+ "visible_to_recipients": False
+ }
+)
+
+result = sdk.settings.set_envelope_attachments_settings(
+ request_body=request_body,
+ envelope_id="envelope_id",
+ accept="application/json"
+)
+
+print(result)
+```
diff --git a/documentation/services/SignedDocumentsService.md b/documentation/services/SignedDocumentsService.md
new file mode 100644
index 0000000..4067f2d
--- /dev/null
+++ b/documentation/services/SignedDocumentsService.md
@@ -0,0 +1,46 @@
+# SignedDocumentsService
+
+A list of all methods in the `SignedDocumentsService` service. Click on the method name to view detailed information about that method.
+
+| Methods | Description |
+| :------------------------------------------------------------------------ | :---------------------------------------- |
+| [download_envelope_signed_documents](#download_envelope_signed_documents) | Download signed documents for an envelope |
+
+## download_envelope_signed_documents
+
+Download signed documents for an envelope
+
+- HTTP Method: `GET`
+- Endpoint: `/envelope/{envelope_id}/signed_documents`
+
+**Parameters**
+
+| Name | Type | Required | Description |
+| :------------------------ | :--- | :------- | :---------------------------------------------------------------------- |
+| envelope_id | str | ✅ | |
+| accept | str | ✅ | |
+| certificate_of_completion | str | ❌ | Whether to include the certificate of completion in the downloaded file |
+
+**Return Type**
+
+`Any`
+
+**Example Usage Code Snippet**
+
+```python
+from signplus import Signplus, Environment
+
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
+ timeout=10000
+)
+
+result = sdk.signed_documents.download_envelope_signed_documents(
+ envelope_id="envelope_id",
+ accept="application/pdf",
+ certificate_of_completion="true"
+)
+
+print(result)
+```
diff --git a/documentation/services/SigningStepsService.md b/documentation/services/SigningStepsService.md
new file mode 100644
index 0000000..0a6af99
--- /dev/null
+++ b/documentation/services/SigningStepsService.md
@@ -0,0 +1,67 @@
+# SigningStepsService
+
+A list of all methods in the `SigningStepsService` service. Click on the method name to view detailed information about that method.
+
+| Methods | Description |
+| :-------------------------------------------------------- | :------------------------- |
+| [add_envelope_signing_steps](#add_envelope_signing_steps) | Add envelope signing steps |
+
+## add_envelope_signing_steps
+
+Add envelope signing steps
+
+- HTTP Method: `POST`
+- Endpoint: `/envelope/{envelope_id}/signing_steps`
+
+**Parameters**
+
+| Name | Type | Required | Description |
+| :----------- | :---------------------------------------------------------------------------- | :------- | :---------------- |
+| request_body | [AddEnvelopeSigningStepsRequest](../models/AddEnvelopeSigningStepsRequest.md) | ✅ | The request body. |
+| envelope_id | str | ✅ | |
+| accept | str | ✅ | |
+
+**Return Type**
+
+`Any`
+
+**Example Usage Code Snippet**
+
+```python
+from signplus import Signplus, Environment
+from signplus.models import AddEnvelopeSigningStepsRequest
+
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
+ timeout=10000
+)
+
+request_body = AddEnvelopeSigningStepsRequest(
+ signing_steps=[
+ {
+ "recipients": [
+ {
+ "name": "string",
+ "email": "string",
+ "role": "IN_PERSON_SIGNER",
+ "id_": "string",
+ "uid": "string",
+ "verification": {
+ "type_": "SMS",
+ "value": "string"
+ }
+ }
+ ]
+ }
+ ]
+)
+
+result = sdk.signing_steps.add_envelope_signing_steps(
+ request_body=request_body,
+ envelope_id="envelope_id",
+ accept="application/json"
+)
+
+print(result)
+```
diff --git a/documentation/services/TemplateIdService.md b/documentation/services/TemplateIdService.md
new file mode 100644
index 0000000..bc259e4
--- /dev/null
+++ b/documentation/services/TemplateIdService.md
@@ -0,0 +1,53 @@
+# TemplateIdService
+
+A list of all methods in the `TemplateIdService` service. Click on the method name to view detailed information about that method.
+
+| Methods | Description |
+| :-------------------------------------------------------------- | :-------------------------------- |
+| [create_envelope_from_template](#create_envelope_from_template) | Create new envelope from template |
+
+## create_envelope_from_template
+
+Create new envelope from template
+
+- HTTP Method: `POST`
+- Endpoint: `/envelope/from_template/{template_id}`
+
+**Parameters**
+
+| Name | Type | Required | Description |
+| :----------- | :---------------------------------------------------------------------------------- | :------- | :---------------- |
+| request_body | [CreateEnvelopeFromTemplateRequest](../models/CreateEnvelopeFromTemplateRequest.md) | ✅ | The request body. |
+| template_id | str | ✅ | |
+| accept | str | ✅ | |
+
+**Return Type**
+
+`Any`
+
+**Example Usage Code Snippet**
+
+```python
+from signplus import Signplus, Environment
+from signplus.models import CreateEnvelopeFromTemplateRequest
+
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
+ timeout=10000
+)
+
+request_body = CreateEnvelopeFromTemplateRequest(
+ name="dwL1t",
+ comment="string",
+ sandbox=False
+)
+
+result = sdk.template_id.create_envelope_from_template(
+ request_body=request_body,
+ template_id="template_id",
+ accept="application/json"
+)
+
+print(result)
+```
diff --git a/documentation/services/TemplateService.md b/documentation/services/TemplateService.md
new file mode 100644
index 0000000..7085883
--- /dev/null
+++ b/documentation/services/TemplateService.md
@@ -0,0 +1,49 @@
+# TemplateService
+
+A list of all methods in the `TemplateService` service. Click on the method name to view detailed information about that method.
+
+| Methods | Description |
+| :---------------------------------- | :------------------ |
+| [create_template](#create_template) | Create new template |
+
+## create_template
+
+Create new template
+
+- HTTP Method: `POST`
+- Endpoint: `/template`
+
+**Parameters**
+
+| Name | Type | Required | Description |
+| :----------- | :---------------------------------------------------------- | :------- | :---------------- |
+| request_body | [CreateTemplateRequest](../models/CreateTemplateRequest.md) | ✅ | The request body. |
+| accept | str | ✅ | |
+
+**Return Type**
+
+`Any`
+
+**Example Usage Code Snippet**
+
+```python
+from signplus import Signplus, Environment
+from signplus.models import CreateTemplateRequest
+
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
+ timeout=10000
+)
+
+request_body = CreateTemplateRequest(
+ name="rEATXel"
+)
+
+result = sdk.template.create_template(
+ request_body=request_body,
+ accept="application/json"
+)
+
+print(result)
+```
diff --git a/documentation/services/TemplateTemplateIdAnnotationAnnotationIdService.md b/documentation/services/TemplateTemplateIdAnnotationAnnotationIdService.md
new file mode 100644
index 0000000..1143ee4
--- /dev/null
+++ b/documentation/services/TemplateTemplateIdAnnotationAnnotationIdService.md
@@ -0,0 +1,44 @@
+# TemplateTemplateIdAnnotationAnnotationIdService
+
+A list of all methods in the `TemplateTemplateIdAnnotationAnnotationIdService` service. Click on the method name to view detailed information about that method.
+
+| Methods | Description |
+| :-------------------------------------------------------- | :------------------------- |
+| [delete_template_annotation](#delete_template_annotation) | Delete template annotation |
+
+## delete_template_annotation
+
+Delete template annotation
+
+- HTTP Method: `DELETE`
+- Endpoint: `/template/{template_id}/annotation/{annotation_id}`
+
+**Parameters**
+
+| Name | Type | Required | Description |
+| :------------ | :--- | :------- | :---------- |
+| template_id | str | ✅ | |
+| annotation_id | str | ✅ | |
+
+**Return Type**
+
+`Any`
+
+**Example Usage Code Snippet**
+
+```python
+from signplus import Signplus, Environment
+
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
+ timeout=10000
+)
+
+result = sdk.template_template_id_annotation_annotation_id.delete_template_annotation(
+ template_id="template_id",
+ annotation_id="annotation_id"
+)
+
+print(result)
+```
diff --git a/documentation/services/TemplateTemplateIdAnnotationService.md b/documentation/services/TemplateTemplateIdAnnotationService.md
new file mode 100644
index 0000000..ba17fa8
--- /dev/null
+++ b/documentation/services/TemplateTemplateIdAnnotationService.md
@@ -0,0 +1,94 @@
+# TemplateTemplateIdAnnotationService
+
+A list of all methods in the `TemplateTemplateIdAnnotationService` service. Click on the method name to view detailed information about that method.
+
+| Methods | Description |
+| :-------------------------------------------------- | :---------------------- |
+| [add_template_annotation](#add_template_annotation) | Add template annotation |
+
+## add_template_annotation
+
+Add template annotation
+
+- HTTP Method: `POST`
+- Endpoint: `/template/{template_id}/annotation`
+
+**Parameters**
+
+| Name | Type | Required | Description |
+| :----------- | :------------------------------------------------------------------------ | :------- | :---------------- |
+| request_body | [AddTemplateAnnotationRequest](../models/AddTemplateAnnotationRequest.md) | ✅ | The request body. |
+| template_id | str | ✅ | |
+| accept | str | ✅ | |
+
+**Return Type**
+
+`Any`
+
+**Example Usage Code Snippet**
+
+```python
+from signplus import Signplus, Environment
+from signplus.models import AddTemplateAnnotationRequest
+
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
+ timeout=10000
+)
+
+request_body = AddTemplateAnnotationRequest(
+ document_id="string",
+ page=6387,
+ x=4410.13346533615,
+ y=5148.888749329143,
+ width=3756.0248729763225,
+ height=4178.76189579703,
+ type_="INITIALS",
+ recipient_id="string",
+ required=False,
+ signature={
+ "id_": "string"
+ },
+ initials={
+ "id_": "string"
+ },
+ text={
+ "size": 6190.822136605691,
+ "color": 6489.781325519173,
+ "value": "string",
+ "tooltip": "string",
+ "dynamic_field_name": "string",
+ "font": {
+ "family": "SANS",
+ "italic": False,
+ "bold": False
+ }
+ },
+ datetime_={
+ "size": 3773.1065479576364,
+ "font": {
+ "family": "SERIF",
+ "italic": False,
+ "bold": False
+ },
+ "color": "string",
+ "auto_fill": True,
+ "timezone": "string",
+ "timestamp": 6868,
+ "format": "MDY_TEXT_SPACE_SHORT"
+ },
+ checkbox={
+ "checked": False,
+ "style": "SQUARE_CHECK"
+ }
+)
+
+result = sdk.template_template_id_annotation.add_template_annotation(
+ request_body=request_body,
+ template_id="template_id",
+ accept="application/json"
+)
+
+print(result)
+```
diff --git a/documentation/services/TemplateTemplateIdAnnotationsDocumentIdService.md b/documentation/services/TemplateTemplateIdAnnotationsDocumentIdService.md
new file mode 100644
index 0000000..6880eae
--- /dev/null
+++ b/documentation/services/TemplateTemplateIdAnnotationsDocumentIdService.md
@@ -0,0 +1,46 @@
+# TemplateTemplateIdAnnotationsDocumentIdService
+
+A list of all methods in the `TemplateTemplateIdAnnotationsDocumentIdService` service. Click on the method name to view detailed information about that method.
+
+| Methods | Description |
+| :---------------------------------------------------------------------- | :-------------------------------- |
+| [get_document_template_annotations](#get_document_template_annotations) | Get document template annotations |
+
+## get_document_template_annotations
+
+Get document template annotations
+
+- HTTP Method: `GET`
+- Endpoint: `/template/{template_id}/annotations/{document_id}`
+
+**Parameters**
+
+| Name | Type | Required | Description |
+| :---------- | :--- | :------- | :---------- |
+| template_id | str | ✅ | |
+| document_id | str | ✅ | |
+| accept | str | ✅ | |
+
+**Return Type**
+
+`Any`
+
+**Example Usage Code Snippet**
+
+```python
+from signplus import Signplus, Environment
+
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
+ timeout=10000
+)
+
+result = sdk.template_template_id_annotations_document_id.get_document_template_annotations(
+ template_id="template_id",
+ document_id="document_id",
+ accept="application/json"
+)
+
+print(result)
+```
diff --git a/documentation/services/TemplateTemplateIdAnnotationsService.md b/documentation/services/TemplateTemplateIdAnnotationsService.md
new file mode 100644
index 0000000..e69dd9a
--- /dev/null
+++ b/documentation/services/TemplateTemplateIdAnnotationsService.md
@@ -0,0 +1,44 @@
+# TemplateTemplateIdAnnotationsService
+
+A list of all methods in the `TemplateTemplateIdAnnotationsService` service. Click on the method name to view detailed information about that method.
+
+| Methods | Description |
+| :---------------------------------------------------- | :----------------------- |
+| [get_template_annotations](#get_template_annotations) | Get template annotations |
+
+## get_template_annotations
+
+Get template annotations
+
+- HTTP Method: `GET`
+- Endpoint: `/template/{template_id}/annotations`
+
+**Parameters**
+
+| Name | Type | Required | Description |
+| :---------- | :--- | :------- | :---------- |
+| template_id | str | ✅ | |
+| accept | str | ✅ | |
+
+**Return Type**
+
+`Any`
+
+**Example Usage Code Snippet**
+
+```python
+from signplus import Signplus, Environment
+
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
+ timeout=10000
+)
+
+result = sdk.template_template_id_annotations.get_template_annotations(
+ template_id="template_id",
+ accept="application/json"
+)
+
+print(result)
+```
diff --git a/documentation/services/TemplateTemplateIdAttachmentsPlaceholdersService.md b/documentation/services/TemplateTemplateIdAttachmentsPlaceholdersService.md
new file mode 100644
index 0000000..2fd4729
--- /dev/null
+++ b/documentation/services/TemplateTemplateIdAttachmentsPlaceholdersService.md
@@ -0,0 +1,60 @@
+# TemplateTemplateIdAttachmentsPlaceholdersService
+
+A list of all methods in the `TemplateTemplateIdAttachmentsPlaceholdersService` service. Click on the method name to view detailed information about that method.
+
+| Methods | Description |
+| :------------------------------------------------------------------------------ | :-------------------------------------------------------------- |
+| [set_template_attachments_placeholders](#set_template_attachments_placeholders) | Placeholders to be set, completely replacing the existing ones. |
+
+## set_template_attachments_placeholders
+
+Placeholders to be set, completely replacing the existing ones.
+
+- HTTP Method: `PUT`
+- Endpoint: `/template/{template_id}/attachments/placeholders`
+
+**Parameters**
+
+| Name | Type | Required | Description |
+| :----------- | :-------------------------------------------------------------------------------------------------- | :------- | :---------------- |
+| request_body | [SetTemplateAttachmentsPlaceholdersRequest](../models/SetTemplateAttachmentsPlaceholdersRequest.md) | ✅ | The request body. |
+| template_id | str | ✅ | |
+| accept | str | ✅ | |
+
+**Return Type**
+
+`Any`
+
+**Example Usage Code Snippet**
+
+```python
+from signplus import Signplus, Environment
+from signplus.models import SetTemplateAttachmentsPlaceholdersRequest
+
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
+ timeout=10000
+)
+
+request_body = SetTemplateAttachmentsPlaceholdersRequest(
+ placeholders=[
+ {
+ "recipient_id": "string",
+ "name": "string",
+ "required": False,
+ "multiple": False,
+ "id_": "string",
+ "hint": "string"
+ }
+ ]
+)
+
+result = sdk.template_template_id_attachments_placeholders.set_template_attachments_placeholders(
+ request_body=request_body,
+ template_id="template_id",
+ accept="application/json"
+)
+
+print(result)
+```
diff --git a/documentation/services/TemplateTemplateIdAttachmentsSettingsService.md b/documentation/services/TemplateTemplateIdAttachmentsSettingsService.md
new file mode 100644
index 0000000..a9057e3
--- /dev/null
+++ b/documentation/services/TemplateTemplateIdAttachmentsSettingsService.md
@@ -0,0 +1,53 @@
+# TemplateTemplateIdAttachmentsSettingsService
+
+A list of all methods in the `TemplateTemplateIdAttachmentsSettingsService` service. Click on the method name to view detailed information about that method.
+
+| Methods | Description |
+| :---------------------------------------------------------------------- | :------------------------------- |
+| [set_template_attachments_settings](#set_template_attachments_settings) | Set template attachment settings |
+
+## set_template_attachments_settings
+
+Set template attachment settings
+
+- HTTP Method: `PUT`
+- Endpoint: `/template/{template_id}/attachments/settings`
+
+**Parameters**
+
+| Name | Type | Required | Description |
+| :----------- | :------------------------------------------------------------------------------------------ | :------- | :---------------- |
+| request_body | [SetTemplateAttachmentsSettingsRequest](../models/SetTemplateAttachmentsSettingsRequest.md) | ✅ | The request body. |
+| template_id | str | ✅ | |
+| accept | str | ✅ | |
+
+**Return Type**
+
+`Any`
+
+**Example Usage Code Snippet**
+
+```python
+from signplus import Signplus, Environment
+from signplus.models import SetTemplateAttachmentsSettingsRequest
+
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
+ timeout=10000
+)
+
+request_body = SetTemplateAttachmentsSettingsRequest(
+ settings={
+ "visible_to_recipients": False
+ }
+)
+
+result = sdk.template_template_id_attachments_settings.set_template_attachments_settings(
+ request_body=request_body,
+ template_id="template_id",
+ accept="application/json"
+)
+
+print(result)
+```
diff --git a/documentation/services/TemplateTemplateIdDocumentDocumentIdService.md b/documentation/services/TemplateTemplateIdDocumentDocumentIdService.md
new file mode 100644
index 0000000..b1ed5b1
--- /dev/null
+++ b/documentation/services/TemplateTemplateIdDocumentDocumentIdService.md
@@ -0,0 +1,46 @@
+# TemplateTemplateIdDocumentDocumentIdService
+
+A list of all methods in the `TemplateTemplateIdDocumentDocumentIdService` service. Click on the method name to view detailed information about that method.
+
+| Methods | Description |
+| :---------------------------------------------- | :-------------------- |
+| [get_template_document](#get_template_document) | Get template document |
+
+## get_template_document
+
+Get template document
+
+- HTTP Method: `GET`
+- Endpoint: `/template/{template_id}/document/{document_id}`
+
+**Parameters**
+
+| Name | Type | Required | Description |
+| :---------- | :--- | :------- | :---------- |
+| template_id | str | ✅ | |
+| document_id | str | ✅ | |
+| accept | str | ✅ | |
+
+**Return Type**
+
+`Any`
+
+**Example Usage Code Snippet**
+
+```python
+from signplus import Signplus, Environment
+
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
+ timeout=10000
+)
+
+result = sdk.template_template_id_document_document_id.get_template_document(
+ template_id="template_id",
+ document_id="document_id",
+ accept="application/json"
+)
+
+print(result)
+```
diff --git a/documentation/services/TemplateTemplateIdDocumentService.md b/documentation/services/TemplateTemplateIdDocumentService.md
new file mode 100644
index 0000000..2a7dd19
--- /dev/null
+++ b/documentation/services/TemplateTemplateIdDocumentService.md
@@ -0,0 +1,51 @@
+# TemplateTemplateIdDocumentService
+
+A list of all methods in the `TemplateTemplateIdDocumentService` service. Click on the method name to view detailed information about that method.
+
+| Methods | Description |
+| :---------------------------------------------- | :-------------------- |
+| [add_template_document](#add_template_document) | Add template document |
+
+## add_template_document
+
+Add template document
+
+- HTTP Method: `POST`
+- Endpoint: `/template/{template_id}/document`
+
+**Parameters**
+
+| Name | Type | Required | Description |
+| :----------- | :-------------------------------------------------------------------- | :------- | :---------------- |
+| request_body | [AddTemplateDocumentRequest](../models/AddTemplateDocumentRequest.md) | ✅ | The request body. |
+| template_id | str | ✅ | |
+| accept | str | ✅ | |
+
+**Return Type**
+
+`Any`
+
+**Example Usage Code Snippet**
+
+```python
+from signplus import Signplus, Environment
+from signplus.models import AddTemplateDocumentRequest
+
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
+ timeout=10000
+)
+
+request_body = AddTemplateDocumentRequest(
+ file=""
+)
+
+result = sdk.template_template_id_document.add_template_document(
+ request_body=request_body,
+ template_id="template_id",
+ accept="application/json"
+)
+
+print(result)
+```
diff --git a/documentation/services/TemplateTemplateIdDocumentsService.md b/documentation/services/TemplateTemplateIdDocumentsService.md
new file mode 100644
index 0000000..c815118
--- /dev/null
+++ b/documentation/services/TemplateTemplateIdDocumentsService.md
@@ -0,0 +1,44 @@
+# TemplateTemplateIdDocumentsService
+
+A list of all methods in the `TemplateTemplateIdDocumentsService` service. Click on the method name to view detailed information about that method.
+
+| Methods | Description |
+| :------------------------------------------------ | :--------------------- |
+| [get_template_documents](#get_template_documents) | Get template documents |
+
+## get_template_documents
+
+Get template documents
+
+- HTTP Method: `GET`
+- Endpoint: `/template/{template_id}/documents`
+
+**Parameters**
+
+| Name | Type | Required | Description |
+| :---------- | :--- | :------- | :---------- |
+| template_id | str | ✅ | |
+| accept | str | ✅ | |
+
+**Return Type**
+
+`Any`
+
+**Example Usage Code Snippet**
+
+```python
+from signplus import Signplus, Environment
+
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
+ timeout=10000
+)
+
+result = sdk.template_template_id_documents.get_template_documents(
+ template_id="template_id",
+ accept="application/json"
+)
+
+print(result)
+```
diff --git a/documentation/services/TemplateTemplateIdDuplicateService.md b/documentation/services/TemplateTemplateIdDuplicateService.md
new file mode 100644
index 0000000..e4efe33
--- /dev/null
+++ b/documentation/services/TemplateTemplateIdDuplicateService.md
@@ -0,0 +1,44 @@
+# TemplateTemplateIdDuplicateService
+
+A list of all methods in the `TemplateTemplateIdDuplicateService` service. Click on the method name to view detailed information about that method.
+
+| Methods | Description |
+| :---------------------------------------- | :----------------- |
+| [duplicate_template](#duplicate_template) | Duplicate template |
+
+## duplicate_template
+
+Duplicate template
+
+- HTTP Method: `POST`
+- Endpoint: `/template/{template_id}/duplicate`
+
+**Parameters**
+
+| Name | Type | Required | Description |
+| :---------- | :--- | :------- | :---------- |
+| template_id | str | ✅ | |
+| accept | str | ✅ | |
+
+**Return Type**
+
+`Any`
+
+**Example Usage Code Snippet**
+
+```python
+from signplus import Signplus, Environment
+
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
+ timeout=10000
+)
+
+result = sdk.template_template_id_duplicate.duplicate_template(
+ template_id="template_id",
+ accept="application/json"
+)
+
+print(result)
+```
diff --git a/documentation/services/TemplateTemplateIdRenameService.md b/documentation/services/TemplateTemplateIdRenameService.md
new file mode 100644
index 0000000..8c33fde
--- /dev/null
+++ b/documentation/services/TemplateTemplateIdRenameService.md
@@ -0,0 +1,51 @@
+# TemplateTemplateIdRenameService
+
+A list of all methods in the `TemplateTemplateIdRenameService` service. Click on the method name to view detailed information about that method.
+
+| Methods | Description |
+| :---------------------------------- | :-------------- |
+| [rename_template](#rename_template) | Rename template |
+
+## rename_template
+
+Rename template
+
+- HTTP Method: `PUT`
+- Endpoint: `/template/{template_id}/rename`
+
+**Parameters**
+
+| Name | Type | Required | Description |
+| :----------- | :---------------------------------------------------------- | :------- | :---------------- |
+| request_body | [RenameTemplateRequest](../models/RenameTemplateRequest.md) | ✅ | The request body. |
+| template_id | str | ✅ | |
+| accept | str | ✅ | |
+
+**Return Type**
+
+`Any`
+
+**Example Usage Code Snippet**
+
+```python
+from signplus import Signplus, Environment
+from signplus.models import RenameTemplateRequest
+
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
+ timeout=10000
+)
+
+request_body = RenameTemplateRequest(
+ name="string"
+)
+
+result = sdk.template_template_id_rename.rename_template(
+ request_body=request_body,
+ template_id="template_id",
+ accept="application/json"
+)
+
+print(result)
+```
diff --git a/documentation/services/TemplateTemplateIdService.md b/documentation/services/TemplateTemplateIdService.md
new file mode 100644
index 0000000..ce61928
--- /dev/null
+++ b/documentation/services/TemplateTemplateIdService.md
@@ -0,0 +1,78 @@
+# TemplateTemplateIdService
+
+A list of all methods in the `TemplateTemplateIdService` service. Click on the method name to view detailed information about that method.
+
+| Methods | Description |
+| :---------------------------------- | :-------------- |
+| [get_template](#get_template) | Get template |
+| [delete_template](#delete_template) | Delete template |
+
+## get_template
+
+Get template
+
+- HTTP Method: `GET`
+- Endpoint: `/template/{template_id}`
+
+**Parameters**
+
+| Name | Type | Required | Description |
+| :---------- | :--- | :------- | :---------- |
+| template_id | str | ✅ | |
+| accept | str | ✅ | |
+
+**Return Type**
+
+`Any`
+
+**Example Usage Code Snippet**
+
+```python
+from signplus import Signplus, Environment
+
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
+ timeout=10000
+)
+
+result = sdk.template_template_id.get_template(
+ template_id="template_id",
+ accept="application/json"
+)
+
+print(result)
+```
+
+## delete_template
+
+Delete template
+
+- HTTP Method: `DELETE`
+- Endpoint: `/template/{template_id}`
+
+**Parameters**
+
+| Name | Type | Required | Description |
+| :---------- | :--- | :------- | :---------- |
+| template_id | str | ✅ | |
+
+**Return Type**
+
+`Any`
+
+**Example Usage Code Snippet**
+
+```python
+from signplus import Signplus, Environment
+
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
+ timeout=10000
+)
+
+result = sdk.template_template_id.delete_template(template_id="template_id")
+
+print(result)
+```
diff --git a/documentation/services/TemplateTemplateIdSetCommentService.md b/documentation/services/TemplateTemplateIdSetCommentService.md
new file mode 100644
index 0000000..1a4592e
--- /dev/null
+++ b/documentation/services/TemplateTemplateIdSetCommentService.md
@@ -0,0 +1,51 @@
+# TemplateTemplateIdSetCommentService
+
+A list of all methods in the `TemplateTemplateIdSetCommentService` service. Click on the method name to view detailed information about that method.
+
+| Methods | Description |
+| :-------------------------------------------- | :------------------- |
+| [set_template_comment](#set_template_comment) | Set template comment |
+
+## set_template_comment
+
+Set template comment
+
+- HTTP Method: `PUT`
+- Endpoint: `/template/{template_id}/set_comment`
+
+**Parameters**
+
+| Name | Type | Required | Description |
+| :----------- | :------------------------------------------------------------------ | :------- | :---------------- |
+| request_body | [SetTemplateCommentRequest](../models/SetTemplateCommentRequest.md) | ✅ | The request body. |
+| template_id | str | ✅ | |
+| accept | str | ✅ | |
+
+**Return Type**
+
+`Any`
+
+**Example Usage Code Snippet**
+
+```python
+from signplus import Signplus, Environment
+from signplus.models import SetTemplateCommentRequest
+
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
+ timeout=10000
+)
+
+request_body = SetTemplateCommentRequest(
+ comment="string"
+)
+
+result = sdk.template_template_id_set_comment.set_template_comment(
+ request_body=request_body,
+ template_id="template_id",
+ accept="application/json"
+)
+
+print(result)
+```
diff --git a/documentation/services/TemplateTemplateIdSetNotificationService.md b/documentation/services/TemplateTemplateIdSetNotificationService.md
new file mode 100644
index 0000000..cf0846d
--- /dev/null
+++ b/documentation/services/TemplateTemplateIdSetNotificationService.md
@@ -0,0 +1,53 @@
+# TemplateTemplateIdSetNotificationService
+
+A list of all methods in the `TemplateTemplateIdSetNotificationService` service. Click on the method name to view detailed information about that method.
+
+| Methods | Description |
+| :------------------------------------------------------ | :------------------------ |
+| [set_template_notification](#set_template_notification) | Set template notification |
+
+## set_template_notification
+
+Set template notification
+
+- HTTP Method: `PUT`
+- Endpoint: `/template/{template_id}/set_notification`
+
+**Parameters**
+
+| Name | Type | Required | Description |
+| :----------- | :---------------------------------------------------------------------------- | :------- | :---------------- |
+| request_body | [SetTemplateNotificationRequest](../models/SetTemplateNotificationRequest.md) | ✅ | The request body. |
+| template_id | str | ✅ | |
+| accept | str | ✅ | |
+
+**Return Type**
+
+`Any`
+
+**Example Usage Code Snippet**
+
+```python
+from signplus import Signplus, Environment
+from signplus.models import SetTemplateNotificationRequest
+
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
+ timeout=10000
+)
+
+request_body = SetTemplateNotificationRequest(
+ subject="string",
+ message="string",
+ reminder_interval=4732
+)
+
+result = sdk.template_template_id_set_notification.set_template_notification(
+ request_body=request_body,
+ template_id="template_id",
+ accept="application/json"
+)
+
+print(result)
+```
diff --git a/documentation/services/TemplateTemplateIdSigningStepsService.md b/documentation/services/TemplateTemplateIdSigningStepsService.md
new file mode 100644
index 0000000..5b8a2ab
--- /dev/null
+++ b/documentation/services/TemplateTemplateIdSigningStepsService.md
@@ -0,0 +1,63 @@
+# TemplateTemplateIdSigningStepsService
+
+A list of all methods in the `TemplateTemplateIdSigningStepsService` service. Click on the method name to view detailed information about that method.
+
+| Methods | Description |
+| :-------------------------------------------------------- | :------------------------- |
+| [add_template_signing_steps](#add_template_signing_steps) | Add template signing steps |
+
+## add_template_signing_steps
+
+Add template signing steps
+
+- HTTP Method: `POST`
+- Endpoint: `/template/{template_id}/signing_steps`
+
+**Parameters**
+
+| Name | Type | Required | Description |
+| :----------- | :---------------------------------------------------------------------------- | :------- | :---------------- |
+| request_body | [AddTemplateSigningStepsRequest](../models/AddTemplateSigningStepsRequest.md) | ✅ | The request body. |
+| template_id | str | ✅ | |
+| accept | str | ✅ | |
+
+**Return Type**
+
+`Any`
+
+**Example Usage Code Snippet**
+
+```python
+from signplus import Signplus, Environment
+from signplus.models import AddTemplateSigningStepsRequest
+
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
+ timeout=10000
+)
+
+request_body = AddTemplateSigningStepsRequest(
+ signing_steps=[
+ {
+ "recipients": [
+ {
+ "id_": "string",
+ "uid": "string",
+ "name": "string",
+ "email": "string",
+ "role": "RECEIVES_COPY"
+ }
+ ]
+ }
+ ]
+)
+
+result = sdk.template_template_id_signing_steps.add_template_signing_steps(
+ request_body=request_body,
+ template_id="template_id",
+ accept="application/json"
+)
+
+print(result)
+```
diff --git a/documentation/services/TemplatesService.md b/documentation/services/TemplatesService.md
new file mode 100644
index 0000000..4aaf1e8
--- /dev/null
+++ b/documentation/services/TemplatesService.md
@@ -0,0 +1,61 @@
+# TemplatesService
+
+A list of all methods in the `TemplatesService` service. Click on the method name to view detailed information about that method.
+
+| Methods | Description |
+| :-------------------------------- | :------------- |
+| [list_templates](#list_templates) | List templates |
+
+## list_templates
+
+List templates
+
+- HTTP Method: `POST`
+- Endpoint: `/templates`
+
+**Parameters**
+
+| Name | Type | Required | Description |
+| :----------- | :-------------------------------------------------------- | :------- | :---------------- |
+| request_body | [ListTemplatesRequest](../models/ListTemplatesRequest.md) | ✅ | The request body. |
+| accept | str | ✅ | |
+
+**Return Type**
+
+`Any`
+
+**Example Usage Code Snippet**
+
+```python
+from signplus import Signplus, Environment
+from signplus.models import ListTemplatesRequest
+
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
+ timeout=10000
+)
+
+request_body = ListTemplatesRequest(
+ name="string",
+ tags=[
+ "string"
+ ],
+ ids=[
+ "string"
+ ],
+ first=7297,
+ last=8379,
+ after="string",
+ before="string",
+ order_field="TEMPLATE_NAME",
+ ascending=False
+)
+
+result = sdk.templates.list_templates(
+ request_body=request_body,
+ accept="application/json"
+)
+
+print(result)
+```
diff --git a/documentation/services/VoidService.md b/documentation/services/VoidService.md
new file mode 100644
index 0000000..65e66b7
--- /dev/null
+++ b/documentation/services/VoidService.md
@@ -0,0 +1,44 @@
+# VoidService
+
+A list of all methods in the `VoidService` service. Click on the method name to view detailed information about that method.
+
+| Methods | Description |
+| :------------------------------ | :------------ |
+| [void_envelope](#void_envelope) | Void envelope |
+
+## void_envelope
+
+Void envelope
+
+- HTTP Method: `PUT`
+- Endpoint: `/envelope/{envelope_id}/void`
+
+**Parameters**
+
+| Name | Type | Required | Description |
+| :---------- | :--- | :------- | :---------- |
+| envelope_id | str | ✅ | |
+| accept | str | ✅ | |
+
+**Return Type**
+
+`Any`
+
+**Example Usage Code Snippet**
+
+```python
+from signplus import Signplus, Environment
+
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
+ timeout=10000
+)
+
+result = sdk.void.void_envelope(
+ envelope_id="envelope_id",
+ accept="application/json"
+)
+
+print(result)
+```
diff --git a/documentation/services/WebhookIdService.md b/documentation/services/WebhookIdService.md
new file mode 100644
index 0000000..f370e0d
--- /dev/null
+++ b/documentation/services/WebhookIdService.md
@@ -0,0 +1,40 @@
+# WebhookIdService
+
+A list of all methods in the `WebhookIdService` service. Click on the method name to view detailed information about that method.
+
+| Methods | Description |
+| :-------------------------------- | :------------- |
+| [delete_webhook](#delete_webhook) | Delete webhook |
+
+## delete_webhook
+
+Delete webhook
+
+- HTTP Method: `DELETE`
+- Endpoint: `/webhook/{webhook_id}`
+
+**Parameters**
+
+| Name | Type | Required | Description |
+| :--------- | :--- | :------- | :---------- |
+| webhook_id | str | ✅ | |
+
+**Return Type**
+
+`Any`
+
+**Example Usage Code Snippet**
+
+```python
+from signplus import Signplus, Environment
+
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
+ timeout=10000
+)
+
+result = sdk.webhook_id.delete_webhook(webhook_id="webhook_id")
+
+print(result)
+```
diff --git a/documentation/services/WebhookService.md b/documentation/services/WebhookService.md
new file mode 100644
index 0000000..4132fb4
--- /dev/null
+++ b/documentation/services/WebhookService.md
@@ -0,0 +1,50 @@
+# WebhookService
+
+A list of all methods in the `WebhookService` service. Click on the method name to view detailed information about that method.
+
+| Methods | Description |
+| :-------------------------------- | :------------- |
+| [create_webhook](#create_webhook) | Create webhook |
+
+## create_webhook
+
+Create webhook
+
+- HTTP Method: `POST`
+- Endpoint: `/webhook`
+
+**Parameters**
+
+| Name | Type | Required | Description |
+| :----------- | :-------------------------------------------------------- | :------- | :---------------- |
+| request_body | [CreateWebhookRequest](../models/CreateWebhookRequest.md) | ✅ | The request body. |
+| accept | str | ✅ | |
+
+**Return Type**
+
+`Any`
+
+**Example Usage Code Snippet**
+
+```python
+from signplus import Signplus, Environment
+from signplus.models import CreateWebhookRequest
+
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
+ timeout=10000
+)
+
+request_body = CreateWebhookRequest(
+ event="ENVELOPE_AUDIT_TRAIL",
+ target="string"
+)
+
+result = sdk.webhook.create_webhook(
+ request_body=request_body,
+ accept="application/json"
+)
+
+print(result)
+```
diff --git a/documentation/services/WebhooksService.md b/documentation/services/WebhooksService.md
new file mode 100644
index 0000000..eba3e37
--- /dev/null
+++ b/documentation/services/WebhooksService.md
@@ -0,0 +1,50 @@
+# WebhooksService
+
+A list of all methods in the `WebhooksService` service. Click on the method name to view detailed information about that method.
+
+| Methods | Description |
+| :------------------------------ | :------------ |
+| [list_webhooks](#list_webhooks) | List webhooks |
+
+## list_webhooks
+
+List webhooks
+
+- HTTP Method: `POST`
+- Endpoint: `/webhooks`
+
+**Parameters**
+
+| Name | Type | Required | Description |
+| :----------- | :------------------------------------------------------ | :------- | :---------------- |
+| request_body | [ListWebhooksRequest](../models/ListWebhooksRequest.md) | ✅ | The request body. |
+| accept | str | ✅ | |
+
+**Return Type**
+
+`Any`
+
+**Example Usage Code Snippet**
+
+```python
+from signplus import Signplus, Environment
+from signplus.models import ListWebhooksRequest
+
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN",
+ base_url=Environment.DEFAULT.value,
+ timeout=10000
+)
+
+request_body = ListWebhooksRequest(
+ webhook_id="string",
+ event="ENVELOPE_COMPLETED"
+)
+
+result = sdk.webhooks.list_webhooks(
+ request_body=request_body,
+ accept="application/json"
+)
+
+print(result)
+```
diff --git a/documentation/snippets/snippets.json b/documentation/snippets/snippets.json
new file mode 100644
index 0000000..a57f09e
--- /dev/null
+++ b/documentation/snippets/snippets.json
@@ -0,0 +1,293 @@
+{
+ "endpoints": {
+ "/envelope/from_template/{template_id}": {
+ "post": "from signplus import Signplus, Environment\nfrom signplus.models import CreateEnvelopeFromTemplateRequest\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nrequest_body = CreateEnvelopeFromTemplateRequest(\n name=\"dwL1t\",\n comment=\"string\",\n sandbox=False\n)\n\nresult = sdk.template_id.create_envelope_from_template(\n request_body=request_body,\n template_id=\"template_id\",\n accept=\"application/json\"\n)\n\nprint(result)\n"
+ },
+ "/envelope/{envelope_id}/signed_documents": {
+ "get": "from signplus import Signplus, Environment\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nresult = sdk.signed_documents.download_envelope_signed_documents(\n envelope_id=\"envelope_id\",\n accept=\"application/pdf\",\n certificate_of_completion=\"true\"\n)\n\nprint(result)\n"
+ },
+ "/envelope/{envelope_id}/certificate": {
+ "get": "from signplus import Signplus, Environment\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nresult = sdk.certificate.download_envelope_certificate(\n envelope_id=\"envelope_id\",\n accept=\"application/pdf\"\n)\n\nprint(result)\n"
+ },
+ "/envelope/{envelope_id}/document/{document_id}": {
+ "get": "from signplus import Signplus, Environment\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nresult = sdk.document_id.get_envelope_document(\n envelope_id=\"envelope_id\",\n document_id=\"document_id\",\n accept=\"application/json\"\n)\n\nprint(result)\n"
+ },
+ "/envelope/{envelope_id}/document": {
+ "post": "from signplus import Signplus, Environment\nfrom signplus.models import AddEnvelopeDocumentRequest\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nrequest_body = AddEnvelopeDocumentRequest(\n file=\"\"\n)\n\nresult = sdk.document.add_envelope_document(\n request_body=request_body,\n envelope_id=\"envelope_id\",\n accept=\"application/json\"\n)\n\nprint(result)\n"
+ },
+ "/envelope/{envelope_id}/documents": {
+ "get": "from signplus import Signplus, Environment\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nresult = sdk.documents.get_envelope_documents(\n envelope_id=\"envelope_id\",\n accept=\"application/json\"\n)\n\nprint(result)\n"
+ },
+ "/envelope/{envelope_id}/dynamic_fields": {
+ "put": "from signplus import Signplus, Environment\nfrom signplus.models import SetEnvelopeDynamicFieldsRequest\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nrequest_body = SetEnvelopeDynamicFieldsRequest(\n dynamic_fields=[\n {\n \"name\": \"string\",\n \"value\": \"string\"\n }\n ]\n)\n\nresult = sdk.dynamic_fields.set_envelope_dynamic_fields(\n request_body=request_body,\n envelope_id=\"envelope_id\",\n accept=\"application/json\"\n)\n\nprint(result)\n"
+ },
+ "/envelope/{envelope_id}/signing_steps": {
+ "post": "from signplus import Signplus, Environment\nfrom signplus.models import AddEnvelopeSigningStepsRequest\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nrequest_body = AddEnvelopeSigningStepsRequest(\n signing_steps=[\n {\n \"recipients\": [\n {\n \"name\": \"string\",\n \"email\": \"string\",\n \"role\": \"IN_PERSON_SIGNER\",\n \"id_\": \"string\",\n \"uid\": \"string\",\n \"verification\": {\n \"type_\": \"SMS\",\n \"value\": \"string\"\n }\n }\n ]\n }\n ]\n)\n\nresult = sdk.signing_steps.add_envelope_signing_steps(\n request_body=request_body,\n envelope_id=\"envelope_id\",\n accept=\"application/json\"\n)\n\nprint(result)\n"
+ },
+ "/envelope/{envelope_id}/attachments/settings": {
+ "put": "from signplus import Signplus, Environment\nfrom signplus.models import SetEnvelopeAttachmentsSettingsRequest\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nrequest_body = SetEnvelopeAttachmentsSettingsRequest(\n settings={\n \"visible_to_recipients\": False\n }\n)\n\nresult = sdk.settings.set_envelope_attachments_settings(\n request_body=request_body,\n envelope_id=\"envelope_id\",\n accept=\"application/json\"\n)\n\nprint(result)\n"
+ },
+ "/envelope/{envelope_id}/attachments/placeholders": {
+ "put": "from signplus import Signplus, Environment\nfrom signplus.models import SetEnvelopeAttachmentsPlaceholdersRequest\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nrequest_body = SetEnvelopeAttachmentsPlaceholdersRequest(\n placeholders=[\n {\n \"recipient_id\": \"string\",\n \"name\": \"string\",\n \"required\": False,\n \"multiple\": False,\n \"id_\": \"string\",\n \"hint\": \"string\"\n }\n ]\n)\n\nresult = sdk.placeholders.set_envelope_attachments_placeholders(\n request_body=request_body,\n envelope_id=\"envelope_id\",\n accept=\"application/json\"\n)\n\nprint(result)\n"
+ },
+ "/envelope/{envelope_id}/attachments/{file_id}": {
+ "get": "from signplus import Signplus, Environment\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nresult = sdk.file_id.get_attachment_file(\n envelope_id=\"envelope_id\",\n file_id=\"file_id\",\n accept=\"application/octet-stream\"\n)\n\nprint(result)\n"
+ },
+ "/envelope/{envelope_id}/send": {
+ "post": "from signplus import Signplus, Environment\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nresult = sdk.send.send_envelope(\n envelope_id=\"envelope_id\",\n accept=\"application/json\"\n)\n\nprint(result)\n"
+ },
+ "/envelope/{envelope_id}/duplicate": {
+ "post": "from signplus import Signplus, Environment\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nresult = sdk.duplicate.duplicate_envelope(\n envelope_id=\"envelope_id\",\n accept=\"application/json\"\n)\n\nprint(result)\n"
+ },
+ "/envelope/{envelope_id}/void": {
+ "put": "from signplus import Signplus, Environment\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nresult = sdk.void.void_envelope(\n envelope_id=\"envelope_id\",\n accept=\"application/json\"\n)\n\nprint(result)\n"
+ },
+ "/envelope/{envelope_id}/rename": {
+ "put": "from signplus import Signplus, Environment\nfrom signplus.models import RenameEnvelopeRequest\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nrequest_body = RenameEnvelopeRequest(\n name=\"string\"\n)\n\nresult = sdk.rename.rename_envelope(\n request_body=request_body,\n envelope_id=\"envelope_id\",\n accept=\"application/json\"\n)\n\nprint(result)\n"
+ },
+ "/envelope/{envelope_id}/set_comment": {
+ "put": "from signplus import Signplus, Environment\nfrom signplus.models import SetEnvelopeCommentRequest\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nrequest_body = SetEnvelopeCommentRequest(\n comment=\"string\"\n)\n\nresult = sdk.set_comment.set_envelope_comment(\n request_body=request_body,\n envelope_id=\"envelope_id\",\n accept=\"application/json\"\n)\n\nprint(result)\n"
+ },
+ "/envelope/{envelope_id}/set_notification": {
+ "put": "from signplus import Signplus, Environment\nfrom signplus.models import SetEnvelopeNotificationRequest\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nrequest_body = SetEnvelopeNotificationRequest(\n subject=\"string\",\n message=\"string\",\n reminder_interval=4732\n)\n\nresult = sdk.set_notification.set_envelope_notification(\n request_body=request_body,\n envelope_id=\"envelope_id\",\n accept=\"application/json\"\n)\n\nprint(result)\n"
+ },
+ "/envelope/{envelope_id}/set_expiration_date": {
+ "put": "from signplus import Signplus, Environment\nfrom signplus.models import SetEnvelopeExpirationDateRequest\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nrequest_body = SetEnvelopeExpirationDateRequest(\n expires_at=5958\n)\n\nresult = sdk.set_expiration_date.set_envelope_expiration_date(\n request_body=request_body,\n envelope_id=\"envelope_id\",\n accept=\"application/json\"\n)\n\nprint(result)\n"
+ },
+ "/envelope/{envelope_id}/set_legality_level": {
+ "put": "from signplus import Signplus, Environment\nfrom signplus.models import SetEnvelopeLegalityLevelRequest\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nrequest_body = SetEnvelopeLegalityLevelRequest(\n legality_level=\"SES\"\n)\n\nresult = sdk.set_legality_level.set_envelope_legality_level(\n request_body=request_body,\n envelope_id=\"envelope_id\",\n accept=\"application/json\"\n)\n\nprint(result)\n"
+ },
+ "/envelope/{envelope_id}/annotations/{document_id}": {
+ "get": "from signplus import Signplus, Environment\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nresult = sdk.envelope_envelope_id_annotations_document_id.get_envelope_document_annotations(\n envelope_id=\"envelope_id\",\n document_id=\"document_id\",\n accept=\"application/json\"\n)\n\nprint(result)\n"
+ },
+ "/envelope/{envelope_id}/annotations": {
+ "get": "from signplus import Signplus, Environment\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nresult = sdk.annotations.get_envelope_annotations(\n envelope_id=\"envelope_id\",\n accept=\"application/json\"\n)\n\nprint(result)\n"
+ },
+ "/envelope/{envelope_id}/annotation/{annotation_id}": {
+ "delete": "from signplus import Signplus, Environment\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nresult = sdk.annotation_id.delete_envelope_annotation(\n envelope_id=\"envelope_id\",\n annotation_id=\"annotation_id\"\n)\n\nprint(result)\n"
+ },
+ "/envelope/{envelope_id}/annotation": {
+ "post": "from signplus import Signplus, Environment\nfrom signplus.models import AddEnvelopeAnnotationRequest\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nrequest_body = AddEnvelopeAnnotationRequest(\n document_id=\"string\",\n page=6387,\n x=4410.13346533615,\n y=5148.888749329143,\n width=3756.0248729763225,\n height=4178.76189579703,\n type_=\"INITIALS\",\n recipient_id=\"string\",\n required=False,\n signature={\n \"id_\": \"string\"\n },\n initials={\n \"id_\": \"string\"\n },\n text={\n \"size\": 6190.822136605691,\n \"color\": 6489.781325519173,\n \"value\": \"string\",\n \"tooltip\": \"string\",\n \"dynamic_field_name\": \"string\",\n \"font\": {\n \"family\": \"SANS\",\n \"italic\": False,\n \"bold\": False\n }\n },\n datetime_={\n \"size\": 3773.1065479576364,\n \"font\": {\n \"family\": \"SERIF\",\n \"italic\": False,\n \"bold\": False\n },\n \"color\": \"string\",\n \"auto_fill\": True,\n \"timezone\": \"string\",\n \"timestamp\": 6868,\n \"format\": \"MDY_TEXT_SPACE_SHORT\"\n },\n checkbox={\n \"checked\": False,\n \"style\": \"SQUARE_CHECK\"\n }\n)\n\nresult = sdk.annotation.add_envelope_annotation(\n request_body=request_body,\n envelope_id=\"envelope_id\",\n accept=\"application/json\"\n)\n\nprint(result)\n"
+ },
+ "/envelope/{envelope_id}": {
+ "get": "from signplus import Signplus, Environment\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nresult = sdk.envelope_id.get_envelope(\n envelope_id=\"envelope_id\",\n accept=\"application/json\"\n)\n\nprint(result)\n",
+ "delete": "from signplus import Signplus, Environment\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nresult = sdk.envelope_id.delete_envelope(envelope_id=\"envelope_id\")\n\nprint(result)\n"
+ },
+ "/envelope": {
+ "post": "from signplus import Signplus, Environment\nfrom signplus.models import CreateEnvelopeRequest\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nrequest_body = CreateEnvelopeRequest(\n name=\"7ox22\",\n legality_level=\"SES\",\n expires_at=5681,\n comment=\"string\",\n sandbox=False\n)\n\nresult = sdk.envelope.create_envelope(\n request_body=request_body,\n accept=\"application/json\"\n)\n\nprint(result)\n"
+ },
+ "/envelopes": {
+ "post": "from signplus import Signplus, Environment\nfrom signplus.models import ListEnvelopesRequest\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nrequest_body = ListEnvelopesRequest(\n name=\"string\",\n tags=[\n \"string\"\n ],\n comment=\"string\",\n ids=[\n \"string\"\n ],\n statuses=[\n \"DRAFT\"\n ],\n folder_ids=[\n \"string\"\n ],\n only_root_folder=False,\n date_from=6508,\n date_to=690,\n uid=\"string\",\n first=6875,\n last=4384,\n after=\"string\",\n before=\"string\",\n order_field=\"LAST_DOCUMENT_CHANGE\",\n ascending=False,\n include_trash=False\n)\n\nresult = sdk.envelopes.list_envelopes(\n request_body=request_body,\n accept=\"application/json\"\n)\n\nprint(result)\n"
+ },
+ "/template/{template_id}/duplicate": {
+ "post": "from signplus import Signplus, Environment\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nresult = sdk.template_template_id_duplicate.duplicate_template(\n template_id=\"template_id\",\n accept=\"application/json\"\n)\n\nprint(result)\n"
+ },
+ "/template/{template_id}/document/{document_id}": {
+ "get": "from signplus import Signplus, Environment\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nresult = sdk.template_template_id_document_document_id.get_template_document(\n template_id=\"template_id\",\n document_id=\"document_id\",\n accept=\"application/json\"\n)\n\nprint(result)\n"
+ },
+ "/template/{template_id}/document": {
+ "post": "from signplus import Signplus, Environment\nfrom signplus.models import AddTemplateDocumentRequest\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nrequest_body = AddTemplateDocumentRequest(\n file=\"\"\n)\n\nresult = sdk.template_template_id_document.add_template_document(\n request_body=request_body,\n template_id=\"template_id\",\n accept=\"application/json\"\n)\n\nprint(result)\n"
+ },
+ "/template/{template_id}/documents": {
+ "get": "from signplus import Signplus, Environment\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nresult = sdk.template_template_id_documents.get_template_documents(\n template_id=\"template_id\",\n accept=\"application/json\"\n)\n\nprint(result)\n"
+ },
+ "/template/{template_id}/signing_steps": {
+ "post": "from signplus import Signplus, Environment\nfrom signplus.models import AddTemplateSigningStepsRequest\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nrequest_body = AddTemplateSigningStepsRequest(\n signing_steps=[\n {\n \"recipients\": [\n {\n \"id_\": \"string\",\n \"uid\": \"string\",\n \"name\": \"string\",\n \"email\": \"string\",\n \"role\": \"RECEIVES_COPY\"\n }\n ]\n }\n ]\n)\n\nresult = sdk.template_template_id_signing_steps.add_template_signing_steps(\n request_body=request_body,\n template_id=\"template_id\",\n accept=\"application/json\"\n)\n\nprint(result)\n"
+ },
+ "/template/{template_id}/rename": {
+ "put": "from signplus import Signplus, Environment\nfrom signplus.models import RenameTemplateRequest\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nrequest_body = RenameTemplateRequest(\n name=\"string\"\n)\n\nresult = sdk.template_template_id_rename.rename_template(\n request_body=request_body,\n template_id=\"template_id\",\n accept=\"application/json\"\n)\n\nprint(result)\n"
+ },
+ "/template/{template_id}/set_comment": {
+ "put": "from signplus import Signplus, Environment\nfrom signplus.models import SetTemplateCommentRequest\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nrequest_body = SetTemplateCommentRequest(\n comment=\"string\"\n)\n\nresult = sdk.template_template_id_set_comment.set_template_comment(\n request_body=request_body,\n template_id=\"template_id\",\n accept=\"application/json\"\n)\n\nprint(result)\n"
+ },
+ "/template/{template_id}/set_notification": {
+ "put": "from signplus import Signplus, Environment\nfrom signplus.models import SetTemplateNotificationRequest\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nrequest_body = SetTemplateNotificationRequest(\n subject=\"string\",\n message=\"string\",\n reminder_interval=4732\n)\n\nresult = sdk.template_template_id_set_notification.set_template_notification(\n request_body=request_body,\n template_id=\"template_id\",\n accept=\"application/json\"\n)\n\nprint(result)\n"
+ },
+ "/template/{template_id}/annotations/{document_id}": {
+ "get": "from signplus import Signplus, Environment\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nresult = sdk.template_template_id_annotations_document_id.get_document_template_annotations(\n template_id=\"template_id\",\n document_id=\"document_id\",\n accept=\"application/json\"\n)\n\nprint(result)\n"
+ },
+ "/template/{template_id}/annotations": {
+ "get": "from signplus import Signplus, Environment\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nresult = sdk.template_template_id_annotations.get_template_annotations(\n template_id=\"template_id\",\n accept=\"application/json\"\n)\n\nprint(result)\n"
+ },
+ "/template/{template_id}/annotation/{annotation_id}": {
+ "delete": "from signplus import Signplus, Environment\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nresult = sdk.template_template_id_annotation_annotation_id.delete_template_annotation(\n template_id=\"template_id\",\n annotation_id=\"annotation_id\"\n)\n\nprint(result)\n"
+ },
+ "/template/{template_id}/annotation": {
+ "post": "from signplus import Signplus, Environment\nfrom signplus.models import AddTemplateAnnotationRequest\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nrequest_body = AddTemplateAnnotationRequest(\n document_id=\"string\",\n page=6387,\n x=4410.13346533615,\n y=5148.888749329143,\n width=3756.0248729763225,\n height=4178.76189579703,\n type_=\"INITIALS\",\n recipient_id=\"string\",\n required=False,\n signature={\n \"id_\": \"string\"\n },\n initials={\n \"id_\": \"string\"\n },\n text={\n \"size\": 6190.822136605691,\n \"color\": 6489.781325519173,\n \"value\": \"string\",\n \"tooltip\": \"string\",\n \"dynamic_field_name\": \"string\",\n \"font\": {\n \"family\": \"SANS\",\n \"italic\": False,\n \"bold\": False\n }\n },\n datetime_={\n \"size\": 3773.1065479576364,\n \"font\": {\n \"family\": \"SERIF\",\n \"italic\": False,\n \"bold\": False\n },\n \"color\": \"string\",\n \"auto_fill\": True,\n \"timezone\": \"string\",\n \"timestamp\": 6868,\n \"format\": \"MDY_TEXT_SPACE_SHORT\"\n },\n checkbox={\n \"checked\": False,\n \"style\": \"SQUARE_CHECK\"\n }\n)\n\nresult = sdk.template_template_id_annotation.add_template_annotation(\n request_body=request_body,\n template_id=\"template_id\",\n accept=\"application/json\"\n)\n\nprint(result)\n"
+ },
+ "/template/{template_id}/attachments/settings": {
+ "put": "from signplus import Signplus, Environment\nfrom signplus.models import SetTemplateAttachmentsSettingsRequest\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nrequest_body = SetTemplateAttachmentsSettingsRequest(\n settings={\n \"visible_to_recipients\": False\n }\n)\n\nresult = sdk.template_template_id_attachments_settings.set_template_attachments_settings(\n request_body=request_body,\n template_id=\"template_id\",\n accept=\"application/json\"\n)\n\nprint(result)\n"
+ },
+ "/template/{template_id}/attachments/placeholders": {
+ "put": "from signplus import Signplus, Environment\nfrom signplus.models import SetTemplateAttachmentsPlaceholdersRequest\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nrequest_body = SetTemplateAttachmentsPlaceholdersRequest(\n placeholders=[\n {\n \"recipient_id\": \"string\",\n \"name\": \"string\",\n \"required\": False,\n \"multiple\": False,\n \"id_\": \"string\",\n \"hint\": \"string\"\n }\n ]\n)\n\nresult = sdk.template_template_id_attachments_placeholders.set_template_attachments_placeholders(\n request_body=request_body,\n template_id=\"template_id\",\n accept=\"application/json\"\n)\n\nprint(result)\n"
+ },
+ "/template/{template_id}": {
+ "get": "from signplus import Signplus, Environment\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nresult = sdk.template_template_id.get_template(\n template_id=\"template_id\",\n accept=\"application/json\"\n)\n\nprint(result)\n",
+ "delete": "from signplus import Signplus, Environment\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nresult = sdk.template_template_id.delete_template(template_id=\"template_id\")\n\nprint(result)\n"
+ },
+ "/template": {
+ "post": "from signplus import Signplus, Environment\nfrom signplus.models import CreateTemplateRequest\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nrequest_body = CreateTemplateRequest(\n name=\"rEATXel\"\n)\n\nresult = sdk.template.create_template(\n request_body=request_body,\n accept=\"application/json\"\n)\n\nprint(result)\n"
+ },
+ "/templates": {
+ "post": "from signplus import Signplus, Environment\nfrom signplus.models import ListTemplatesRequest\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nrequest_body = ListTemplatesRequest(\n name=\"string\",\n tags=[\n \"string\"\n ],\n ids=[\n \"string\"\n ],\n first=7297,\n last=8379,\n after=\"string\",\n before=\"string\",\n order_field=\"TEMPLATE_NAME\",\n ascending=False\n)\n\nresult = sdk.templates.list_templates(\n request_body=request_body,\n accept=\"application/json\"\n)\n\nprint(result)\n"
+ },
+ "/webhook/{webhook_id}": {
+ "delete": "from signplus import Signplus, Environment\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nresult = sdk.webhook_id.delete_webhook(webhook_id=\"webhook_id\")\n\nprint(result)\n"
+ },
+ "/webhook": {
+ "post": "from signplus import Signplus, Environment\nfrom signplus.models import CreateWebhookRequest\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nrequest_body = CreateWebhookRequest(\n event=\"ENVELOPE_AUDIT_TRAIL\",\n target=\"string\"\n)\n\nresult = sdk.webhook.create_webhook(\n request_body=request_body,\n accept=\"application/json\"\n)\n\nprint(result)\n"
+ },
+ "/webhooks": {
+ "post": "from signplus import Signplus, Environment\nfrom signplus.models import ListWebhooksRequest\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nrequest_body = ListWebhooksRequest(\n webhook_id=\"string\",\n event=\"ENVELOPE_COMPLETED\"\n)\n\nresult = sdk.webhooks.list_webhooks(\n request_body=request_body,\n accept=\"application/json\"\n)\n\nprint(result)\n"
+ }
+ },
+ "methodResponses": {
+ "/envelope/from_template/{template_id}": {
+ "post": "print(result)"
+ },
+ "/envelope/{envelope_id}/signed_documents": {
+ "get": "print(result)"
+ },
+ "/envelope/{envelope_id}/certificate": {
+ "get": "print(result)"
+ },
+ "/envelope/{envelope_id}/document/{document_id}": {
+ "get": "print(result)"
+ },
+ "/envelope/{envelope_id}/document": {
+ "post": "print(result)"
+ },
+ "/envelope/{envelope_id}/documents": {
+ "get": "print(result)"
+ },
+ "/envelope/{envelope_id}/dynamic_fields": {
+ "put": "print(result)"
+ },
+ "/envelope/{envelope_id}/signing_steps": {
+ "post": "print(result)"
+ },
+ "/envelope/{envelope_id}/attachments/settings": {
+ "put": "print(result)"
+ },
+ "/envelope/{envelope_id}/attachments/placeholders": {
+ "put": "print(result)"
+ },
+ "/envelope/{envelope_id}/attachments/{file_id}": {
+ "get": "print(result)"
+ },
+ "/envelope/{envelope_id}/send": {
+ "post": "print(result)"
+ },
+ "/envelope/{envelope_id}/duplicate": {
+ "post": "print(result)"
+ },
+ "/envelope/{envelope_id}/void": {
+ "put": "print(result)"
+ },
+ "/envelope/{envelope_id}/rename": {
+ "put": "print(result)"
+ },
+ "/envelope/{envelope_id}/set_comment": {
+ "put": "print(result)"
+ },
+ "/envelope/{envelope_id}/set_notification": {
+ "put": "print(result)"
+ },
+ "/envelope/{envelope_id}/set_expiration_date": {
+ "put": "print(result)"
+ },
+ "/envelope/{envelope_id}/set_legality_level": {
+ "put": "print(result)"
+ },
+ "/envelope/{envelope_id}/annotations/{document_id}": {
+ "get": "print(result)"
+ },
+ "/envelope/{envelope_id}/annotations": {
+ "get": "print(result)"
+ },
+ "/envelope/{envelope_id}/annotation/{annotation_id}": {
+ "delete": "print(result)"
+ },
+ "/envelope/{envelope_id}/annotation": {
+ "post": "print(result)"
+ },
+ "/envelope/{envelope_id}": {
+ "get": "print(result)",
+ "delete": "print(result)"
+ },
+ "/envelope": {
+ "post": "print(result)"
+ },
+ "/envelopes": {
+ "post": "print(result)"
+ },
+ "/template/{template_id}/duplicate": {
+ "post": "print(result)"
+ },
+ "/template/{template_id}/document/{document_id}": {
+ "get": "print(result)"
+ },
+ "/template/{template_id}/document": {
+ "post": "print(result)"
+ },
+ "/template/{template_id}/documents": {
+ "get": "print(result)"
+ },
+ "/template/{template_id}/signing_steps": {
+ "post": "print(result)"
+ },
+ "/template/{template_id}/rename": {
+ "put": "print(result)"
+ },
+ "/template/{template_id}/set_comment": {
+ "put": "print(result)"
+ },
+ "/template/{template_id}/set_notification": {
+ "put": "print(result)"
+ },
+ "/template/{template_id}/annotations/{document_id}": {
+ "get": "print(result)"
+ },
+ "/template/{template_id}/annotations": {
+ "get": "print(result)"
+ },
+ "/template/{template_id}/annotation/{annotation_id}": {
+ "delete": "print(result)"
+ },
+ "/template/{template_id}/annotation": {
+ "post": "print(result)"
+ },
+ "/template/{template_id}/attachments/settings": {
+ "put": "print(result)"
+ },
+ "/template/{template_id}/attachments/placeholders": {
+ "put": "print(result)"
+ },
+ "/template/{template_id}": {
+ "get": "print(result)",
+ "delete": "print(result)"
+ },
+ "/template": {
+ "post": "print(result)"
+ },
+ "/templates": {
+ "post": "print(result)"
+ },
+ "/webhook/{webhook_id}": {
+ "delete": "print(result)"
+ },
+ "/webhook": {
+ "post": "print(result)"
+ },
+ "/webhooks": {
+ "post": "print(result)"
+ }
+ },
+ "example": "from signplus import Signplus, Environment\n\nsdk = Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n base_url=Environment.DEFAULT.value,\n timeout=10000\n)\n\nresult = sdk.envelope_id.delete_envelope(envelope_id=\"envelope_id\")\n\nprint(result)\n",
+ "authentication": {
+ "bearer": {
+ "constructor": "Signplus(\n access_token=\"YOUR_ACCESS_TOKEN\",\n timeout=10000\n)",
+ "setter": "sdk.set_access_token(\"YOUR_ACCESS_TOKEN\")"
+ }
+ }
+}
diff --git a/examples/install.cmd b/examples/install.cmd
index 127b161..b001938 100644
--- a/examples/install.cmd
+++ b/examples/install.cmd
@@ -2,4 +2,4 @@ python -m venv .venv
call .venv\Scripts\activate
pip install build
python -m build --outdir dist ..\
-pip install dist\signplus_python-1.4.0-py3-none-any.whl --force-reinstall
+pip install dist\signplus_python-3.0.0-py3-none-any.whl --force-reinstall
diff --git a/examples/install.sh b/examples/install.sh
index 83ac5a0..7fa410d 100644
--- a/examples/install.sh
+++ b/examples/install.sh
@@ -1,5 +1,16 @@
-python -m venv .venv
+#!/bin/bash
+
+if command -v python3 &> /dev/null; then
+ PYTHON_CMD=python3
+elif command -v python &> /dev/null && python --version 2>&1 | grep -qE "Python 3\."; then
+ PYTHON_CMD=python
+else
+ echo "Error: Python 3 is not installed or not found in PATH"
+ exit 1
+fi
+
+$PYTHON_CMD -m venv .venv
. .venv/bin/activate
-pip install build
-python -m build --outdir dist ../
-pip install dist/signplus_python-1.4.0-py3-none-any.whl --force-reinstall
+$PYTHON_CMD -m pip install build
+$PYTHON_CMD -m build --outdir dist ../
+$PYTHON_CMD -m pip install dist/signplus_python-3.0.0-py3-none-any.whl --force-reinstall
diff --git a/examples/sample.py b/examples/sample.py
index 8ebdae1..f921ffc 100644
--- a/examples/sample.py
+++ b/examples/sample.py
@@ -1,7 +1,9 @@
-from signplus import Signplus
+from signplus import Signplus, Environment
-sdk = Signplus(access_token="YOUR_ACCESS_TOKEN", timeout=10000)
+sdk = Signplus(
+ access_token="YOUR_ACCESS_TOKEN", base_url=Environment.DEFAULT.value, timeout=10000
+)
-result = sdk.signplus.get_envelope(envelope_id="envelope_id")
+result = sdk.envelope_id.delete_envelope(envelope_id="envelope_id")
print(result)
diff --git a/install.cmd b/install.cmd
index 618b60f..a3b0d54 100644
--- a/install.cmd
+++ b/install.cmd
@@ -15,7 +15,7 @@ if "%USE_VENV%"=="1" (
pip install build
python -m build --outdir dist .
-pip install dist\signplus_python-1.4.0-py3-none-any.whl --force-reinstall
+pip install dist\signplus_python-3.0.0-py3-none-any.whl --force-reinstall
if "%USE_VENV%"=="1" (
deactivate
diff --git a/install.sh b/install.sh
index f7e99b9..0a1c63e 100644
--- a/install.sh
+++ b/install.sh
@@ -1,5 +1,14 @@
#!/bin/bash
+if command -v python3 &> /dev/null; then
+ PYTHON_CMD=python3
+elif command -v python &> /dev/null && python --version 2>&1 | grep -qE "Python 3\."; then
+ PYTHON_CMD=python
+else
+ echo "Error: Python 3 is not installed or not found in PATH"
+ exit 1
+fi
+
USE_VENV=0
for arg in "$@"
@@ -13,13 +22,13 @@ do
done
if [ "$USE_VENV" -eq 1 ]; then
- python -m venv .venv
+ $PYTHON_CMD -m venv .venv
. .venv/bin/activate
fi
-pip install build
-python -m build --outdir dist .
-pip install dist/signplus_python-1.4.0-py3-none-any.whl --force-reinstall
+$PYTHON_CMD -m pip install build
+$PYTHON_CMD -m build --outdir dist .
+$PYTHON_CMD -m pip install dist/signplus_python-3.0.0-py3-none-any.whl --force-reinstall
if [ "$USE_VENV" -eq 1 ]; then
deactivate
diff --git a/prettier.config.js b/prettier.config.js
new file mode 100644
index 0000000..f68d86e
--- /dev/null
+++ b/prettier.config.js
@@ -0,0 +1,41 @@
+// Prettier configuration for code-formatter lambda
+// Aligned with sdk-gen/prettier.config.ts
+
+module.exports = {
+ printWidth: 100,
+ tabWidth: 2,
+ useTabs: false,
+ semi: true,
+ singleQuote: true,
+ quoteProps: 'as-needed',
+ jsxSingleQuote: false,
+ trailingComma: 'all',
+ bracketSpacing: true,
+ arrowParens: 'always',
+ overrides: [
+ {
+ files: '.editorconfig',
+ options: { parser: 'yaml' },
+ },
+ {
+ files: 'LICENSE',
+ options: { parser: 'markdown' },
+ },
+ {
+ files: '*.php',
+ options: {
+ parser: 'php',
+ phpVersion: '8.0',
+ trailingCommaPHP: false,
+ },
+ },
+ {
+ files: '*.md',
+ options: {
+ parser: 'markdown',
+ phpVersion: '8.0',
+ trailingCommaPHP: false,
+ },
+ },
+ ],
+};
diff --git a/pyproject.toml b/pyproject.toml
index b9e80d2..3dff2a8 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -4,11 +4,20 @@ build-backend = "setuptools.build_meta"
[project]
name = "signplus-python"
-version = "1.4.0"
+version = "3.0.0"
license = { text = "MIT" }
-description = """Integrate legally-binding electronic signature to your workflow"""
+description = """Integrate legally-binding electronic signature to your workflow\n\nContact Support:\n Name: Sign.Plus\n Email: support@alohi.com"""
readme = "PyPI_README.md"
requires-python = ">=3.9"
+classifiers = [
+ "Development Status :: 5 - Production/Stable",
+ "License :: OSI Approved :: MIT License",
+ "Topic :: Software Development"
+]
dependencies = [
- "requests>=2.31.0"
+ "requests>=2.31.0",
+ "pydantic>=2.0.0,<3.0.0"
]
+
+[project.urls]
+Repository = "https://github.com/alohihq/signplus-python"
diff --git a/src/signplus/models/__init__.py b/src/signplus/models/__init__.py
index 87b0beb..592777a 100644
--- a/src/signplus/models/__init__.py
+++ b/src/signplus/models/__init__.py
@@ -1,75 +1,139 @@
-from .create_envelope_request import CreateEnvelopeRequest
-from .envelope import Envelope
from .create_envelope_from_template_request import CreateEnvelopeFromTemplateRequest
-from .list_envelopes_request import ListEnvelopesRequest
-from .list_envelopes_response import ListEnvelopesResponse
-from .document import Document
-from .list_envelope_documents_response import ListEnvelopeDocumentsResponse
from .add_envelope_document_request import AddEnvelopeDocumentRequest
from .set_envelope_dynamic_fields_request import SetEnvelopeDynamicFieldsRequest
from .add_envelope_signing_steps_request import AddEnvelopeSigningStepsRequest
from .set_envelope_attachments_settings_request import (
SetEnvelopeAttachmentsSettingsRequest,
)
-from .envelope_attachments import EnvelopeAttachments
from .set_envelope_attachments_placeholders_request import (
SetEnvelopeAttachmentsPlaceholdersRequest,
)
from .rename_envelope_request import RenameEnvelopeRequest
from .set_envelope_comment_request import SetEnvelopeCommentRequest
-from .envelope_notification import EnvelopeNotification
-from .set_envelope_expiration_request import SetEnvelopeExpirationRequest
+from .set_envelope_notification_request import SetEnvelopeNotificationRequest
+from .set_envelope_expiration_date_request import SetEnvelopeExpirationDateRequest
from .set_envelope_legality_level_request import SetEnvelopeLegalityLevelRequest
-from .annotation import Annotation
-from .list_envelope_document_annotations_response import (
- ListEnvelopeDocumentAnnotationsResponse,
-)
-from .add_annotation_request import AddAnnotationRequest
-from .create_template_request import CreateTemplateRequest
-from .template import Template
-from .list_templates_request import ListTemplatesRequest
-from .list_templates_response import ListTemplatesResponse
+from .add_envelope_annotation_request import AddEnvelopeAnnotationRequest
+from .create_envelope_request import CreateEnvelopeRequest
+from .list_envelopes_request import ListEnvelopesRequest
from .add_template_document_request import AddTemplateDocumentRequest
-from .list_template_documents_response import ListTemplateDocumentsResponse
from .add_template_signing_steps_request import AddTemplateSigningStepsRequest
from .rename_template_request import RenameTemplateRequest
from .set_template_comment_request import SetTemplateCommentRequest
-from .list_template_annotations_response import ListTemplateAnnotationsResponse
-from .list_template_document_annotations_response import (
- ListTemplateDocumentAnnotationsResponse,
+from .set_template_notification_request import SetTemplateNotificationRequest
+from .add_template_annotation_request import AddTemplateAnnotationRequest
+from .set_template_attachments_settings_request import (
+ SetTemplateAttachmentsSettingsRequest,
+)
+from .set_template_attachments_placeholders_request import (
+ SetTemplateAttachmentsPlaceholdersRequest,
)
+from .create_template_request import CreateTemplateRequest
+from .list_templates_request import ListTemplatesRequest
from .create_webhook_request import CreateWebhookRequest
-from .webhook import Webhook
from .list_webhooks_request import ListWebhooksRequest
-from .list_webhooks_response import ListWebhooksResponse
-from .envelope_legality_level import EnvelopeLegalityLevel
-from .envelope_flow_type import EnvelopeFlowType
-from .envelope_status import EnvelopeStatus
-from .signing_step import SigningStep
-from .recipient import Recipient
-from .recipient_role import RecipientRole
-from .recipient_verification import RecipientVerification
-from .recipient_verification_type import RecipientVerificationType
-from .page import Page
-from .attachment_settings import AttachmentSettings
-from .attachment_placeholders_per_recipient import AttachmentPlaceholdersPerRecipient
-from .attachment_placeholder import AttachmentPlaceholder
-from .attachment_placeholder_file import AttachmentPlaceholderFile
-from .envelope_order_field import EnvelopeOrderField
-from .dynamic_field import DynamicField
-from .attachment_placeholder_request import AttachmentPlaceholderRequest
-from .annotation_type import AnnotationType
-from .annotation_signature import AnnotationSignature
-from .annotation_initials import AnnotationInitials
-from .annotation_text import AnnotationText
-from .annotation_date_time import AnnotationDateTime
-from .annotation_checkbox import AnnotationCheckbox
-from .annotation_font import AnnotationFont
-from .annotation_font_family import AnnotationFontFamily
-from .annotation_date_time_format import AnnotationDateTimeFormat
-from .annotation_checkbox_style import AnnotationCheckboxStyle
-from .template_signing_step import TemplateSigningStep
-from .template_recipient import TemplateRecipient
-from .template_recipient_role import TemplateRecipientRole
-from .template_order_field import TemplateOrderField
-from .webhook_event import WebhookEvent
+from .dynamic_fields import DynamicFields
+from .add_envelope_signing_steps_request_signing_steps import (
+ AddEnvelopeSigningStepsRequestSigningSteps,
+)
+from .signing_steps_recipients_1 import SigningStepsRecipients1
+from .verification import Verification
+from .set_envelope_attachments_settings_request_settings import (
+ SetEnvelopeAttachmentsSettingsRequestSettings,
+)
+from .set_envelope_attachments_placeholders_request_placeholders import (
+ SetEnvelopeAttachmentsPlaceholdersRequestPlaceholders,
+)
+from .add_envelope_annotation_request_signature import (
+ AddEnvelopeAnnotationRequestSignature,
+)
+from .add_envelope_annotation_request_initials import (
+ AddEnvelopeAnnotationRequestInitials,
+)
+from .add_envelope_annotation_request_text import AddEnvelopeAnnotationRequestText
+from .add_envelope_annotation_request_datetime import (
+ AddEnvelopeAnnotationRequestDatetime,
+)
+from .add_envelope_annotation_request_checkbox import (
+ AddEnvelopeAnnotationRequestCheckbox,
+)
+from .text_font_1 import TextFont1
+from .datetime_font_1 import DatetimeFont1
+from .add_template_signing_steps_request_signing_steps import (
+ AddTemplateSigningStepsRequestSigningSteps,
+)
+from .signing_steps_recipients_2 import SigningStepsRecipients2
+from .add_template_annotation_request_signature import (
+ AddTemplateAnnotationRequestSignature,
+)
+from .add_template_annotation_request_initials import (
+ AddTemplateAnnotationRequestInitials,
+)
+from .add_template_annotation_request_text import AddTemplateAnnotationRequestText
+from .add_template_annotation_request_datetime import (
+ AddTemplateAnnotationRequestDatetime,
+)
+from .add_template_annotation_request_checkbox import (
+ AddTemplateAnnotationRequestCheckbox,
+)
+from .text_font_2 import TextFont2
+from .datetime_font_2 import DatetimeFont2
+from .set_template_attachments_settings_request_settings import (
+ SetTemplateAttachmentsSettingsRequestSettings,
+)
+from .set_template_attachments_placeholders_request_placeholders import (
+ SetTemplateAttachmentsPlaceholdersRequestPlaceholders,
+)
+
+# Rebuild models to resolve circular forward references
+# This ensures Pydantic can properly validate models that reference each other
+CreateEnvelopeFromTemplateRequest.model_rebuild()
+AddEnvelopeDocumentRequest.model_rebuild()
+SetEnvelopeDynamicFieldsRequest.model_rebuild()
+AddEnvelopeSigningStepsRequest.model_rebuild()
+SetEnvelopeAttachmentsSettingsRequest.model_rebuild()
+SetEnvelopeAttachmentsPlaceholdersRequest.model_rebuild()
+RenameEnvelopeRequest.model_rebuild()
+SetEnvelopeCommentRequest.model_rebuild()
+SetEnvelopeNotificationRequest.model_rebuild()
+SetEnvelopeExpirationDateRequest.model_rebuild()
+SetEnvelopeLegalityLevelRequest.model_rebuild()
+AddEnvelopeAnnotationRequest.model_rebuild()
+CreateEnvelopeRequest.model_rebuild()
+ListEnvelopesRequest.model_rebuild()
+AddTemplateDocumentRequest.model_rebuild()
+AddTemplateSigningStepsRequest.model_rebuild()
+RenameTemplateRequest.model_rebuild()
+SetTemplateCommentRequest.model_rebuild()
+SetTemplateNotificationRequest.model_rebuild()
+AddTemplateAnnotationRequest.model_rebuild()
+SetTemplateAttachmentsSettingsRequest.model_rebuild()
+SetTemplateAttachmentsPlaceholdersRequest.model_rebuild()
+CreateTemplateRequest.model_rebuild()
+ListTemplatesRequest.model_rebuild()
+CreateWebhookRequest.model_rebuild()
+ListWebhooksRequest.model_rebuild()
+DynamicFields.model_rebuild()
+AddEnvelopeSigningStepsRequestSigningSteps.model_rebuild()
+SigningStepsRecipients1.model_rebuild()
+Verification.model_rebuild()
+SetEnvelopeAttachmentsSettingsRequestSettings.model_rebuild()
+SetEnvelopeAttachmentsPlaceholdersRequestPlaceholders.model_rebuild()
+AddEnvelopeAnnotationRequestSignature.model_rebuild()
+AddEnvelopeAnnotationRequestInitials.model_rebuild()
+AddEnvelopeAnnotationRequestText.model_rebuild()
+AddEnvelopeAnnotationRequestDatetime.model_rebuild()
+AddEnvelopeAnnotationRequestCheckbox.model_rebuild()
+TextFont1.model_rebuild()
+DatetimeFont1.model_rebuild()
+AddTemplateSigningStepsRequestSigningSteps.model_rebuild()
+SigningStepsRecipients2.model_rebuild()
+AddTemplateAnnotationRequestSignature.model_rebuild()
+AddTemplateAnnotationRequestInitials.model_rebuild()
+AddTemplateAnnotationRequestText.model_rebuild()
+AddTemplateAnnotationRequestDatetime.model_rebuild()
+AddTemplateAnnotationRequestCheckbox.model_rebuild()
+TextFont2.model_rebuild()
+DatetimeFont2.model_rebuild()
+SetTemplateAttachmentsSettingsRequestSettings.model_rebuild()
+SetTemplateAttachmentsPlaceholdersRequestPlaceholders.model_rebuild()
diff --git a/src/signplus/models/add_envelope_annotation_request.py b/src/signplus/models/add_envelope_annotation_request.py
new file mode 100644
index 0000000..bce945d
--- /dev/null
+++ b/src/signplus/models/add_envelope_annotation_request.py
@@ -0,0 +1,69 @@
+from __future__ import annotations
+from pydantic import Field
+from typing import Optional
+from typing import Union
+from .utils.base_model import BaseModel
+from .add_envelope_annotation_request_signature import (
+ AddEnvelopeAnnotationRequestSignature,
+)
+from .add_envelope_annotation_request_initials import (
+ AddEnvelopeAnnotationRequestInitials,
+)
+from .add_envelope_annotation_request_text import AddEnvelopeAnnotationRequestText
+from .add_envelope_annotation_request_datetime import (
+ AddEnvelopeAnnotationRequestDatetime,
+)
+from .add_envelope_annotation_request_checkbox import (
+ AddEnvelopeAnnotationRequestCheckbox,
+)
+
+
+class AddEnvelopeAnnotationRequest(BaseModel):
+ """AddEnvelopeAnnotationRequest
+
+ :param document_id: document_id, defaults to None
+ :type document_id: str, optional
+ :param page: page, defaults to None
+ :type page: float, optional
+ :param x: x, defaults to None
+ :type x: float, optional
+ :param y: y, defaults to None
+ :type y: float, optional
+ :param width: width, defaults to None
+ :type width: float, optional
+ :param height: height, defaults to None
+ :type height: float, optional
+ :param type_: type_, defaults to None
+ :type type_: str, optional
+ :param recipient_id: recipient_id, defaults to None
+ :type recipient_id: str, optional
+ :param required: required, defaults to None
+ :type required: bool, optional
+ :param signature: signature, defaults to None
+ :type signature: AddEnvelopeAnnotationRequestSignature, optional
+ :param initials: initials, defaults to None
+ :type initials: AddEnvelopeAnnotationRequestInitials, optional
+ :param text: text, defaults to None
+ :type text: AddEnvelopeAnnotationRequestText, optional
+ :param datetime_: datetime_, defaults to None
+ :type datetime_: AddEnvelopeAnnotationRequestDatetime, optional
+ :param checkbox: checkbox, defaults to None
+ :type checkbox: AddEnvelopeAnnotationRequestCheckbox, optional
+ """
+
+ document_id: Optional[str] = Field(default=None)
+ page: Optional[float] = Field(default=None)
+ x: Optional[float] = Field(default=None)
+ y: Optional[float] = Field(default=None)
+ width: Optional[float] = Field(default=None)
+ height: Optional[float] = Field(default=None)
+ type_: Optional[str] = Field(alias="type", serialization_alias="type", default=None)
+ recipient_id: Optional[str] = Field(default=None)
+ required: Optional[bool] = Field(default=None)
+ signature: Optional[AddEnvelopeAnnotationRequestSignature] = Field(default=None)
+ initials: Optional[AddEnvelopeAnnotationRequestInitials] = Field(default=None)
+ text: Optional[AddEnvelopeAnnotationRequestText] = Field(default=None)
+ datetime_: Optional[AddEnvelopeAnnotationRequestDatetime] = Field(
+ alias="datetime", serialization_alias="datetime", default=None
+ )
+ checkbox: Optional[AddEnvelopeAnnotationRequestCheckbox] = Field(default=None)
diff --git a/src/signplus/models/add_envelope_annotation_request_checkbox.py b/src/signplus/models/add_envelope_annotation_request_checkbox.py
new file mode 100644
index 0000000..3dcf6c9
--- /dev/null
+++ b/src/signplus/models/add_envelope_annotation_request_checkbox.py
@@ -0,0 +1,17 @@
+from pydantic import Field
+from typing import Optional
+from typing import Union
+from .utils.base_model import BaseModel
+
+
+class AddEnvelopeAnnotationRequestCheckbox(BaseModel):
+ """AddEnvelopeAnnotationRequestCheckbox
+
+ :param checked: checked, defaults to None
+ :type checked: bool, optional
+ :param style: style, defaults to None
+ :type style: str, optional
+ """
+
+ checked: Optional[bool] = Field(default=None)
+ style: Optional[str] = Field(default=None)
diff --git a/src/signplus/models/add_envelope_annotation_request_datetime.py b/src/signplus/models/add_envelope_annotation_request_datetime.py
new file mode 100644
index 0000000..9baa05d
--- /dev/null
+++ b/src/signplus/models/add_envelope_annotation_request_datetime.py
@@ -0,0 +1,34 @@
+from __future__ import annotations
+from pydantic import Field
+from typing import Optional
+from typing import Union
+from .utils.base_model import BaseModel
+from .datetime_font_1 import DatetimeFont1
+
+
+class AddEnvelopeAnnotationRequestDatetime(BaseModel):
+ """AddEnvelopeAnnotationRequestDatetime
+
+ :param size: size, defaults to None
+ :type size: float, optional
+ :param font: font, defaults to None
+ :type font: DatetimeFont1, optional
+ :param color: color, defaults to None
+ :type color: str, optional
+ :param auto_fill: auto_fill, defaults to None
+ :type auto_fill: bool, optional
+ :param timezone: timezone, defaults to None
+ :type timezone: str, optional
+ :param timestamp: timestamp, defaults to None
+ :type timestamp: float, optional
+ :param format: format, defaults to None
+ :type format: str, optional
+ """
+
+ size: Optional[float] = Field(default=None)
+ font: Optional[DatetimeFont1] = Field(default=None)
+ color: Optional[str] = Field(default=None)
+ auto_fill: Optional[bool] = Field(default=None)
+ timezone: Optional[str] = Field(default=None)
+ timestamp: Optional[float] = Field(default=None)
+ format: Optional[str] = Field(default=None)
diff --git a/src/signplus/models/add_envelope_annotation_request_initials.py b/src/signplus/models/add_envelope_annotation_request_initials.py
new file mode 100644
index 0000000..8a0bc7f
--- /dev/null
+++ b/src/signplus/models/add_envelope_annotation_request_initials.py
@@ -0,0 +1,14 @@
+from pydantic import Field
+from typing import Optional
+from typing import Union
+from .utils.base_model import BaseModel
+
+
+class AddEnvelopeAnnotationRequestInitials(BaseModel):
+ """AddEnvelopeAnnotationRequestInitials
+
+ :param id_: id_, defaults to None
+ :type id_: str, optional
+ """
+
+ id_: Optional[str] = Field(alias="id", serialization_alias="id", default=None)
diff --git a/src/signplus/models/add_envelope_annotation_request_signature.py b/src/signplus/models/add_envelope_annotation_request_signature.py
new file mode 100644
index 0000000..31b4d1c
--- /dev/null
+++ b/src/signplus/models/add_envelope_annotation_request_signature.py
@@ -0,0 +1,14 @@
+from pydantic import Field
+from typing import Optional
+from typing import Union
+from .utils.base_model import BaseModel
+
+
+class AddEnvelopeAnnotationRequestSignature(BaseModel):
+ """AddEnvelopeAnnotationRequestSignature
+
+ :param id_: id_, defaults to None
+ :type id_: str, optional
+ """
+
+ id_: Optional[str] = Field(alias="id", serialization_alias="id", default=None)
diff --git a/src/signplus/models/add_envelope_annotation_request_text.py b/src/signplus/models/add_envelope_annotation_request_text.py
new file mode 100644
index 0000000..617036f
--- /dev/null
+++ b/src/signplus/models/add_envelope_annotation_request_text.py
@@ -0,0 +1,31 @@
+from __future__ import annotations
+from pydantic import Field
+from typing import Optional
+from typing import Union
+from .utils.base_model import BaseModel
+from .text_font_1 import TextFont1
+
+
+class AddEnvelopeAnnotationRequestText(BaseModel):
+ """AddEnvelopeAnnotationRequestText
+
+ :param size: size, defaults to None
+ :type size: float, optional
+ :param color: color, defaults to None
+ :type color: float, optional
+ :param value: value, defaults to None
+ :type value: str, optional
+ :param tooltip: tooltip, defaults to None
+ :type tooltip: str, optional
+ :param dynamic_field_name: dynamic_field_name, defaults to None
+ :type dynamic_field_name: str, optional
+ :param font: font, defaults to None
+ :type font: TextFont1, optional
+ """
+
+ size: Optional[float] = Field(default=None)
+ color: Optional[float] = Field(default=None)
+ value: Optional[str] = Field(default=None)
+ tooltip: Optional[str] = Field(default=None)
+ dynamic_field_name: Optional[str] = Field(default=None)
+ font: Optional[TextFont1] = Field(default=None)
diff --git a/src/signplus/models/add_envelope_document_request.py b/src/signplus/models/add_envelope_document_request.py
index 90962a7..d2af4ee 100644
--- a/src/signplus/models/add_envelope_document_request.py
+++ b/src/signplus/models/add_envelope_document_request.py
@@ -1,22 +1,14 @@
-from .utils.json_map import JsonMap
+from pydantic import Field
+from typing import Optional
+from typing import Union
from .utils.base_model import BaseModel
-from .utils.sentinel import SENTINEL
-@JsonMap({})
class AddEnvelopeDocumentRequest(BaseModel):
"""AddEnvelopeDocumentRequest
- :param file: File to upload in binary format, defaults to None
+ :param file: file, defaults to None
:type file: bytes, optional
"""
- def __init__(self, file: bytes = SENTINEL, **kwargs):
- """AddEnvelopeDocumentRequest
-
- :param file: File to upload in binary format, defaults to None
- :type file: bytes, optional
- """
- if file is not SENTINEL:
- self.file = file
- self._kwargs = kwargs
+ file: Optional[bytes] = Field(default=None)
diff --git a/src/signplus/models/add_envelope_signing_steps_request.py b/src/signplus/models/add_envelope_signing_steps_request.py
index e5641f9..48aa7e6 100644
--- a/src/signplus/models/add_envelope_signing_steps_request.py
+++ b/src/signplus/models/add_envelope_signing_steps_request.py
@@ -1,25 +1,21 @@
from __future__ import annotations
from typing import List
-from .utils.json_map import JsonMap
+from pydantic import Field
+from typing import Optional
+from typing import Union
from .utils.base_model import BaseModel
-from .utils.sentinel import SENTINEL
-from .signing_step import SigningStep
+from .add_envelope_signing_steps_request_signing_steps import (
+ AddEnvelopeSigningStepsRequestSigningSteps,
+)
-@JsonMap({})
class AddEnvelopeSigningStepsRequest(BaseModel):
"""AddEnvelopeSigningStepsRequest
- :param signing_steps: List of signing steps, defaults to None
- :type signing_steps: List[SigningStep], optional
+ :param signing_steps: signing_steps, defaults to None
+ :type signing_steps: List[AddEnvelopeSigningStepsRequestSigningSteps], optional
"""
- def __init__(self, signing_steps: List[SigningStep] = SENTINEL, **kwargs):
- """AddEnvelopeSigningStepsRequest
-
- :param signing_steps: List of signing steps, defaults to None
- :type signing_steps: List[SigningStep], optional
- """
- if signing_steps is not SENTINEL:
- self.signing_steps = self._define_list(signing_steps, SigningStep)
- self._kwargs = kwargs
+ signing_steps: Optional[List[AddEnvelopeSigningStepsRequestSigningSteps]] = Field(
+ default=None
+ )
diff --git a/src/signplus/models/add_envelope_signing_steps_request_signing_steps.py b/src/signplus/models/add_envelope_signing_steps_request_signing_steps.py
new file mode 100644
index 0000000..e4fdf0a
--- /dev/null
+++ b/src/signplus/models/add_envelope_signing_steps_request_signing_steps.py
@@ -0,0 +1,17 @@
+from __future__ import annotations
+from typing import List
+from pydantic import Field
+from typing import Optional
+from typing import Union
+from .utils.base_model import BaseModel
+from .signing_steps_recipients_1 import SigningStepsRecipients1
+
+
+class AddEnvelopeSigningStepsRequestSigningSteps(BaseModel):
+ """AddEnvelopeSigningStepsRequestSigningSteps
+
+ :param recipients: recipients, defaults to None
+ :type recipients: List[SigningStepsRecipients1], optional
+ """
+
+ recipients: Optional[List[SigningStepsRecipients1]] = Field(default=None)
diff --git a/src/signplus/models/add_template_annotation_request.py b/src/signplus/models/add_template_annotation_request.py
new file mode 100644
index 0000000..227afb2
--- /dev/null
+++ b/src/signplus/models/add_template_annotation_request.py
@@ -0,0 +1,69 @@
+from __future__ import annotations
+from pydantic import Field
+from typing import Optional
+from typing import Union
+from .utils.base_model import BaseModel
+from .add_template_annotation_request_signature import (
+ AddTemplateAnnotationRequestSignature,
+)
+from .add_template_annotation_request_initials import (
+ AddTemplateAnnotationRequestInitials,
+)
+from .add_template_annotation_request_text import AddTemplateAnnotationRequestText
+from .add_template_annotation_request_datetime import (
+ AddTemplateAnnotationRequestDatetime,
+)
+from .add_template_annotation_request_checkbox import (
+ AddTemplateAnnotationRequestCheckbox,
+)
+
+
+class AddTemplateAnnotationRequest(BaseModel):
+ """AddTemplateAnnotationRequest
+
+ :param document_id: document_id, defaults to None
+ :type document_id: str, optional
+ :param page: page, defaults to None
+ :type page: float, optional
+ :param x: x, defaults to None
+ :type x: float, optional
+ :param y: y, defaults to None
+ :type y: float, optional
+ :param width: width, defaults to None
+ :type width: float, optional
+ :param height: height, defaults to None
+ :type height: float, optional
+ :param type_: type_, defaults to None
+ :type type_: str, optional
+ :param recipient_id: recipient_id, defaults to None
+ :type recipient_id: str, optional
+ :param required: required, defaults to None
+ :type required: bool, optional
+ :param signature: signature, defaults to None
+ :type signature: AddTemplateAnnotationRequestSignature, optional
+ :param initials: initials, defaults to None
+ :type initials: AddTemplateAnnotationRequestInitials, optional
+ :param text: text, defaults to None
+ :type text: AddTemplateAnnotationRequestText, optional
+ :param datetime_: datetime_, defaults to None
+ :type datetime_: AddTemplateAnnotationRequestDatetime, optional
+ :param checkbox: checkbox, defaults to None
+ :type checkbox: AddTemplateAnnotationRequestCheckbox, optional
+ """
+
+ document_id: Optional[str] = Field(default=None)
+ page: Optional[float] = Field(default=None)
+ x: Optional[float] = Field(default=None)
+ y: Optional[float] = Field(default=None)
+ width: Optional[float] = Field(default=None)
+ height: Optional[float] = Field(default=None)
+ type_: Optional[str] = Field(alias="type", serialization_alias="type", default=None)
+ recipient_id: Optional[str] = Field(default=None)
+ required: Optional[bool] = Field(default=None)
+ signature: Optional[AddTemplateAnnotationRequestSignature] = Field(default=None)
+ initials: Optional[AddTemplateAnnotationRequestInitials] = Field(default=None)
+ text: Optional[AddTemplateAnnotationRequestText] = Field(default=None)
+ datetime_: Optional[AddTemplateAnnotationRequestDatetime] = Field(
+ alias="datetime", serialization_alias="datetime", default=None
+ )
+ checkbox: Optional[AddTemplateAnnotationRequestCheckbox] = Field(default=None)
diff --git a/src/signplus/models/add_template_annotation_request_checkbox.py b/src/signplus/models/add_template_annotation_request_checkbox.py
new file mode 100644
index 0000000..c25558b
--- /dev/null
+++ b/src/signplus/models/add_template_annotation_request_checkbox.py
@@ -0,0 +1,17 @@
+from pydantic import Field
+from typing import Optional
+from typing import Union
+from .utils.base_model import BaseModel
+
+
+class AddTemplateAnnotationRequestCheckbox(BaseModel):
+ """AddTemplateAnnotationRequestCheckbox
+
+ :param checked: checked, defaults to None
+ :type checked: bool, optional
+ :param style: style, defaults to None
+ :type style: str, optional
+ """
+
+ checked: Optional[bool] = Field(default=None)
+ style: Optional[str] = Field(default=None)
diff --git a/src/signplus/models/add_template_annotation_request_datetime.py b/src/signplus/models/add_template_annotation_request_datetime.py
new file mode 100644
index 0000000..531872e
--- /dev/null
+++ b/src/signplus/models/add_template_annotation_request_datetime.py
@@ -0,0 +1,34 @@
+from __future__ import annotations
+from pydantic import Field
+from typing import Optional
+from typing import Union
+from .utils.base_model import BaseModel
+from .datetime_font_2 import DatetimeFont2
+
+
+class AddTemplateAnnotationRequestDatetime(BaseModel):
+ """AddTemplateAnnotationRequestDatetime
+
+ :param size: size, defaults to None
+ :type size: float, optional
+ :param font: font, defaults to None
+ :type font: DatetimeFont2, optional
+ :param color: color, defaults to None
+ :type color: str, optional
+ :param auto_fill: auto_fill, defaults to None
+ :type auto_fill: bool, optional
+ :param timezone: timezone, defaults to None
+ :type timezone: str, optional
+ :param timestamp: timestamp, defaults to None
+ :type timestamp: float, optional
+ :param format: format, defaults to None
+ :type format: str, optional
+ """
+
+ size: Optional[float] = Field(default=None)
+ font: Optional[DatetimeFont2] = Field(default=None)
+ color: Optional[str] = Field(default=None)
+ auto_fill: Optional[bool] = Field(default=None)
+ timezone: Optional[str] = Field(default=None)
+ timestamp: Optional[float] = Field(default=None)
+ format: Optional[str] = Field(default=None)
diff --git a/src/signplus/models/add_template_annotation_request_initials.py b/src/signplus/models/add_template_annotation_request_initials.py
new file mode 100644
index 0000000..66d2159
--- /dev/null
+++ b/src/signplus/models/add_template_annotation_request_initials.py
@@ -0,0 +1,14 @@
+from pydantic import Field
+from typing import Optional
+from typing import Union
+from .utils.base_model import BaseModel
+
+
+class AddTemplateAnnotationRequestInitials(BaseModel):
+ """AddTemplateAnnotationRequestInitials
+
+ :param id_: id_, defaults to None
+ :type id_: str, optional
+ """
+
+ id_: Optional[str] = Field(alias="id", serialization_alias="id", default=None)
diff --git a/src/signplus/models/add_template_annotation_request_signature.py b/src/signplus/models/add_template_annotation_request_signature.py
new file mode 100644
index 0000000..ec9879c
--- /dev/null
+++ b/src/signplus/models/add_template_annotation_request_signature.py
@@ -0,0 +1,14 @@
+from pydantic import Field
+from typing import Optional
+from typing import Union
+from .utils.base_model import BaseModel
+
+
+class AddTemplateAnnotationRequestSignature(BaseModel):
+ """AddTemplateAnnotationRequestSignature
+
+ :param id_: id_, defaults to None
+ :type id_: str, optional
+ """
+
+ id_: Optional[str] = Field(alias="id", serialization_alias="id", default=None)
diff --git a/src/signplus/models/add_template_annotation_request_text.py b/src/signplus/models/add_template_annotation_request_text.py
new file mode 100644
index 0000000..51b87ae
--- /dev/null
+++ b/src/signplus/models/add_template_annotation_request_text.py
@@ -0,0 +1,31 @@
+from __future__ import annotations
+from pydantic import Field
+from typing import Optional
+from typing import Union
+from .utils.base_model import BaseModel
+from .text_font_2 import TextFont2
+
+
+class AddTemplateAnnotationRequestText(BaseModel):
+ """AddTemplateAnnotationRequestText
+
+ :param size: size, defaults to None
+ :type size: float, optional
+ :param color: color, defaults to None
+ :type color: float, optional
+ :param value: value, defaults to None
+ :type value: str, optional
+ :param tooltip: tooltip, defaults to None
+ :type tooltip: str, optional
+ :param dynamic_field_name: dynamic_field_name, defaults to None
+ :type dynamic_field_name: str, optional
+ :param font: font, defaults to None
+ :type font: TextFont2, optional
+ """
+
+ size: Optional[float] = Field(default=None)
+ color: Optional[float] = Field(default=None)
+ value: Optional[str] = Field(default=None)
+ tooltip: Optional[str] = Field(default=None)
+ dynamic_field_name: Optional[str] = Field(default=None)
+ font: Optional[TextFont2] = Field(default=None)
diff --git a/src/signplus/models/add_template_document_request.py b/src/signplus/models/add_template_document_request.py
index 2210283..beb1346 100644
--- a/src/signplus/models/add_template_document_request.py
+++ b/src/signplus/models/add_template_document_request.py
@@ -1,20 +1,14 @@
-from .utils.json_map import JsonMap
+from pydantic import Field
+from typing import Optional
+from typing import Union
from .utils.base_model import BaseModel
-@JsonMap({})
class AddTemplateDocumentRequest(BaseModel):
"""AddTemplateDocumentRequest
- :param file: File to upload in binary format
- :type file: bytes
+ :param file: file, defaults to None
+ :type file: bytes, optional
"""
- def __init__(self, file: bytes, **kwargs):
- """AddTemplateDocumentRequest
-
- :param file: File to upload in binary format
- :type file: bytes
- """
- self.file = file
- self._kwargs = kwargs
+ file: Optional[bytes] = Field(default=None)
diff --git a/src/signplus/models/add_template_signing_steps_request.py b/src/signplus/models/add_template_signing_steps_request.py
index 6a87d7e..f7ff7f8 100644
--- a/src/signplus/models/add_template_signing_steps_request.py
+++ b/src/signplus/models/add_template_signing_steps_request.py
@@ -1,23 +1,21 @@
from __future__ import annotations
from typing import List
-from .utils.json_map import JsonMap
+from pydantic import Field
+from typing import Optional
+from typing import Union
from .utils.base_model import BaseModel
-from .template_signing_step import TemplateSigningStep
+from .add_template_signing_steps_request_signing_steps import (
+ AddTemplateSigningStepsRequestSigningSteps,
+)
-@JsonMap({})
class AddTemplateSigningStepsRequest(BaseModel):
"""AddTemplateSigningStepsRequest
- :param signing_steps: List of signing steps
- :type signing_steps: List[TemplateSigningStep]
+ :param signing_steps: signing_steps, defaults to None
+ :type signing_steps: List[AddTemplateSigningStepsRequestSigningSteps], optional
"""
- def __init__(self, signing_steps: List[TemplateSigningStep], **kwargs):
- """AddTemplateSigningStepsRequest
-
- :param signing_steps: List of signing steps
- :type signing_steps: List[TemplateSigningStep]
- """
- self.signing_steps = self._define_list(signing_steps, TemplateSigningStep)
- self._kwargs = kwargs
+ signing_steps: Optional[List[AddTemplateSigningStepsRequestSigningSteps]] = Field(
+ default=None
+ )
diff --git a/src/signplus/models/add_template_signing_steps_request_signing_steps.py b/src/signplus/models/add_template_signing_steps_request_signing_steps.py
new file mode 100644
index 0000000..760f0f2
--- /dev/null
+++ b/src/signplus/models/add_template_signing_steps_request_signing_steps.py
@@ -0,0 +1,17 @@
+from __future__ import annotations
+from typing import List
+from pydantic import Field
+from typing import Optional
+from typing import Union
+from .utils.base_model import BaseModel
+from .signing_steps_recipients_2 import SigningStepsRecipients2
+
+
+class AddTemplateSigningStepsRequestSigningSteps(BaseModel):
+ """AddTemplateSigningStepsRequestSigningSteps
+
+ :param recipients: recipients, defaults to None
+ :type recipients: List[SigningStepsRecipients2], optional
+ """
+
+ recipients: Optional[List[SigningStepsRecipients2]] = Field(default=None)
diff --git a/src/signplus/models/create_envelope_from_template_request.py b/src/signplus/models/create_envelope_from_template_request.py
index 98b825b..3697c58 100644
--- a/src/signplus/models/create_envelope_from_template_request.py
+++ b/src/signplus/models/create_envelope_from_template_request.py
@@ -1,41 +1,20 @@
-from .utils.json_map import JsonMap
+from pydantic import Field
+from typing import Optional
+from typing import Union
from .utils.base_model import BaseModel
-from .utils.sentinel import SENTINEL
-@JsonMap({})
class CreateEnvelopeFromTemplateRequest(BaseModel):
"""CreateEnvelopeFromTemplateRequest
- :param name: Name of the envelope
- :type name: str
- :param comment: Comment for the envelope, defaults to None
+ :param name: name, defaults to None
+ :type name: str, optional
+ :param comment: comment, defaults to None
:type comment: str, optional
- :param sandbox: Whether the envelope is created in sandbox mode, defaults to None
+ :param sandbox: sandbox, defaults to None
:type sandbox: bool, optional
"""
- def __init__(
- self, name: str, comment: str = SENTINEL, sandbox: bool = SENTINEL, **kwargs
- ):
- """CreateEnvelopeFromTemplateRequest
-
- :param name: Name of the envelope
- :type name: str
- :param comment: Comment for the envelope, defaults to None
- :type comment: str, optional
- :param sandbox: Whether the envelope is created in sandbox mode, defaults to None
- :type sandbox: bool, optional
- """
- self.name = self._define_str(
- "name",
- name,
- pattern="^[a-zA-Z0-9][a-zA-Z0-9 ]*[a-zA-Z0-9]$",
- min_length=2,
- max_length=256,
- )
- if comment is not SENTINEL:
- self.comment = comment
- if sandbox is not SENTINEL:
- self.sandbox = sandbox
- self._kwargs = kwargs
+ name: Optional[str] = Field(default=None)
+ comment: Optional[str] = Field(default=None)
+ sandbox: Optional[bool] = Field(default=None)
diff --git a/src/signplus/models/create_envelope_request.py b/src/signplus/models/create_envelope_request.py
index 05f5e83..5c90ecc 100644
--- a/src/signplus/models/create_envelope_request.py
+++ b/src/signplus/models/create_envelope_request.py
@@ -1,62 +1,26 @@
-from __future__ import annotations
-from .utils.json_map import JsonMap
+from pydantic import Field
+from typing import Optional
+from typing import Union
from .utils.base_model import BaseModel
-from .utils.sentinel import SENTINEL
-from .envelope_legality_level import EnvelopeLegalityLevel
-@JsonMap({})
class CreateEnvelopeRequest(BaseModel):
"""CreateEnvelopeRequest
- :param name: Name of the envelope
- :type name: str
- :param legality_level: Legal level of the envelope (SES is Simple Electronic Signature, QES_EIDAS is Qualified Electronic Signature, QES_ZERTES is Qualified Electronic Signature with Zertes)
- :type legality_level: EnvelopeLegalityLevel
- :param expires_at: Unix timestamp of the expiration date, defaults to None
- :type expires_at: int, optional
- :param comment: Comment for the envelope, defaults to None
+ :param name: name, defaults to None
+ :type name: str, optional
+ :param legality_level: legality_level, defaults to None
+ :type legality_level: str, optional
+ :param expires_at: expires_at, defaults to None
+ :type expires_at: float, optional
+ :param comment: comment, defaults to None
:type comment: str, optional
- :param sandbox: Whether the envelope is created in sandbox mode, defaults to None
+ :param sandbox: sandbox, defaults to None
:type sandbox: bool, optional
"""
- def __init__(
- self,
- name: str,
- legality_level: EnvelopeLegalityLevel,
- expires_at: int = SENTINEL,
- comment: str = SENTINEL,
- sandbox: bool = SENTINEL,
- **kwargs,
- ):
- """CreateEnvelopeRequest
-
- :param name: Name of the envelope
- :type name: str
- :param legality_level: Legal level of the envelope (SES is Simple Electronic Signature, QES_EIDAS is Qualified Electronic Signature, QES_ZERTES is Qualified Electronic Signature with Zertes)
- :type legality_level: EnvelopeLegalityLevel
- :param expires_at: Unix timestamp of the expiration date, defaults to None
- :type expires_at: int, optional
- :param comment: Comment for the envelope, defaults to None
- :type comment: str, optional
- :param sandbox: Whether the envelope is created in sandbox mode, defaults to None
- :type sandbox: bool, optional
- """
- self.name = self._define_str(
- "name",
- name,
- pattern="^[a-zA-Z0-9][a-zA-Z0-9 ]*[a-zA-Z0-9]$",
- min_length=2,
- max_length=256,
- )
- self.legality_level = self._enum_matching(
- legality_level, EnvelopeLegalityLevel.list(), "legality_level"
- )
- if expires_at is not SENTINEL:
- self.expires_at = expires_at
- if comment is not SENTINEL:
- self.comment = comment
- if sandbox is not SENTINEL:
- self.sandbox = sandbox
- self._kwargs = kwargs
+ name: Optional[str] = Field(default=None)
+ legality_level: Optional[str] = Field(default=None)
+ expires_at: Optional[float] = Field(default=None)
+ comment: Optional[str] = Field(default=None)
+ sandbox: Optional[bool] = Field(default=None)
diff --git a/src/signplus/models/create_template_request.py b/src/signplus/models/create_template_request.py
index 1f0b710..39dada0 100644
--- a/src/signplus/models/create_template_request.py
+++ b/src/signplus/models/create_template_request.py
@@ -1,26 +1,14 @@
-from .utils.json_map import JsonMap
+from pydantic import Field
+from typing import Optional
+from typing import Union
from .utils.base_model import BaseModel
-@JsonMap({})
class CreateTemplateRequest(BaseModel):
"""CreateTemplateRequest
- :param name: name
- :type name: str
+ :param name: name, defaults to None
+ :type name: str, optional
"""
- def __init__(self, name: str, **kwargs):
- """CreateTemplateRequest
-
- :param name: name
- :type name: str
- """
- self.name = self._define_str(
- "name",
- name,
- pattern="^[a-zA-Z0-9][a-zA-Z0-9 ]*[a-zA-Z0-9]$",
- min_length=2,
- max_length=256,
- )
- self._kwargs = kwargs
+ name: Optional[str] = Field(default=None)
diff --git a/src/signplus/models/create_webhook_request.py b/src/signplus/models/create_webhook_request.py
index fa43dcf..f88083d 100644
--- a/src/signplus/models/create_webhook_request.py
+++ b/src/signplus/models/create_webhook_request.py
@@ -1,27 +1,17 @@
-from __future__ import annotations
-from .utils.json_map import JsonMap
+from pydantic import Field
+from typing import Optional
+from typing import Union
from .utils.base_model import BaseModel
-from .webhook_event import WebhookEvent
-@JsonMap({})
class CreateWebhookRequest(BaseModel):
"""CreateWebhookRequest
- :param event: Event of the webhook
- :type event: WebhookEvent
- :param target: URL of the webhook target
- :type target: str
+ :param event: event, defaults to None
+ :type event: str, optional
+ :param target: target, defaults to None
+ :type target: str, optional
"""
- def __init__(self, event: WebhookEvent, target: str, **kwargs):
- """CreateWebhookRequest
-
- :param event: Event of the webhook
- :type event: WebhookEvent
- :param target: URL of the webhook target
- :type target: str
- """
- self.event = self._enum_matching(event, WebhookEvent.list(), "event")
- self.target = target
- self._kwargs = kwargs
+ event: Optional[str] = Field(default=None)
+ target: Optional[str] = Field(default=None)
diff --git a/src/signplus/models/datetime_font_1.py b/src/signplus/models/datetime_font_1.py
new file mode 100644
index 0000000..c00f2f5
--- /dev/null
+++ b/src/signplus/models/datetime_font_1.py
@@ -0,0 +1,20 @@
+from pydantic import Field
+from typing import Optional
+from typing import Union
+from .utils.base_model import BaseModel
+
+
+class DatetimeFont1(BaseModel):
+ """DatetimeFont1
+
+ :param family: family, defaults to None
+ :type family: str, optional
+ :param italic: italic, defaults to None
+ :type italic: bool, optional
+ :param bold: bold, defaults to None
+ :type bold: bool, optional
+ """
+
+ family: Optional[str] = Field(default=None)
+ italic: Optional[bool] = Field(default=None)
+ bold: Optional[bool] = Field(default=None)
diff --git a/src/signplus/models/datetime_font_2.py b/src/signplus/models/datetime_font_2.py
new file mode 100644
index 0000000..fc106e3
--- /dev/null
+++ b/src/signplus/models/datetime_font_2.py
@@ -0,0 +1,20 @@
+from pydantic import Field
+from typing import Optional
+from typing import Union
+from .utils.base_model import BaseModel
+
+
+class DatetimeFont2(BaseModel):
+ """DatetimeFont2
+
+ :param family: family, defaults to None
+ :type family: str, optional
+ :param italic: italic, defaults to None
+ :type italic: bool, optional
+ :param bold: bold, defaults to None
+ :type bold: bool, optional
+ """
+
+ family: Optional[str] = Field(default=None)
+ italic: Optional[bool] = Field(default=None)
+ bold: Optional[bool] = Field(default=None)
diff --git a/src/signplus/models/dynamic_fields.py b/src/signplus/models/dynamic_fields.py
new file mode 100644
index 0000000..66e69a3
--- /dev/null
+++ b/src/signplus/models/dynamic_fields.py
@@ -0,0 +1,17 @@
+from pydantic import Field
+from typing import Optional
+from typing import Union
+from .utils.base_model import BaseModel
+
+
+class DynamicFields(BaseModel):
+ """DynamicFields
+
+ :param name: name, defaults to None
+ :type name: str, optional
+ :param value: value, defaults to None
+ :type value: str, optional
+ """
+
+ name: Optional[str] = Field(default=None)
+ value: Optional[str] = Field(default=None)
diff --git a/src/signplus/models/list_envelopes_request.py b/src/signplus/models/list_envelopes_request.py
index d06292a..0830436 100644
--- a/src/signplus/models/list_envelopes_request.py
+++ b/src/signplus/models/list_envelopes_request.py
@@ -1,144 +1,63 @@
-from __future__ import annotations
from typing import List
-from .utils.json_map import JsonMap
+from pydantic import Field
+from typing import Optional
+from typing import Union
from .utils.base_model import BaseModel
-from .utils.sentinel import SENTINEL
-from .envelope_status import EnvelopeStatus
-from .envelope_order_field import EnvelopeOrderField
-@JsonMap({})
class ListEnvelopesRequest(BaseModel):
"""ListEnvelopesRequest
- :param name: Name of the envelope, defaults to None
+ :param name: name, defaults to None
:type name: str, optional
- :param tags: List of tags, defaults to None
+ :param tags: tags, defaults to None
:type tags: List[str], optional
- :param comment: Comment of the envelope, defaults to None
+ :param comment: comment, defaults to None
:type comment: str, optional
- :param ids: List of envelope IDs, defaults to None
+ :param ids: ids, defaults to None
:type ids: List[str], optional
- :param statuses: List of envelope statuses, defaults to None
- :type statuses: List[EnvelopeStatus], optional
- :param folder_ids: List of folder IDs, defaults to None
+ :param statuses: statuses, defaults to None
+ :type statuses: List[str], optional
+ :param folder_ids: folder_ids, defaults to None
:type folder_ids: List[str], optional
- :param only_root_folder: Whether to only list envelopes in the root folder, defaults to None
+ :param only_root_folder: only_root_folder, defaults to None
:type only_root_folder: bool, optional
- :param date_from: Unix timestamp of the start date, defaults to None
- :type date_from: int, optional
- :param date_to: Unix timestamp of the end date, defaults to None
- :type date_to: int, optional
- :param uid: Unique identifier of the user, defaults to None
+ :param date_from: date_from, defaults to None
+ :type date_from: float, optional
+ :param date_to: date_to, defaults to None
+ :type date_to: float, optional
+ :param uid: uid, defaults to None
:type uid: str, optional
:param first: first, defaults to None
- :type first: int, optional
+ :type first: float, optional
:param last: last, defaults to None
- :type last: int, optional
+ :type last: float, optional
:param after: after, defaults to None
:type after: str, optional
:param before: before, defaults to None
:type before: str, optional
- :param order_field: Field to order envelopes by, defaults to None
- :type order_field: EnvelopeOrderField, optional
- :param ascending: Whether to order envelopes in ascending order, defaults to None
+ :param order_field: order_field, defaults to None
+ :type order_field: str, optional
+ :param ascending: ascending, defaults to None
:type ascending: bool, optional
- :param include_trash: Whether to include envelopes in the trash, defaults to None
+ :param include_trash: include_trash, defaults to None
:type include_trash: bool, optional
"""
- def __init__(
- self,
- name: str = SENTINEL,
- tags: List[str] = SENTINEL,
- comment: str = SENTINEL,
- ids: List[str] = SENTINEL,
- statuses: List[EnvelopeStatus] = SENTINEL,
- folder_ids: List[str] = SENTINEL,
- only_root_folder: bool = SENTINEL,
- date_from: int = SENTINEL,
- date_to: int = SENTINEL,
- uid: str = SENTINEL,
- first: int = SENTINEL,
- last: int = SENTINEL,
- after: str = SENTINEL,
- before: str = SENTINEL,
- order_field: EnvelopeOrderField = SENTINEL,
- ascending: bool = SENTINEL,
- include_trash: bool = SENTINEL,
- **kwargs,
- ):
- """ListEnvelopesRequest
-
- :param name: Name of the envelope, defaults to None
- :type name: str, optional
- :param tags: List of tags, defaults to None
- :type tags: List[str], optional
- :param comment: Comment of the envelope, defaults to None
- :type comment: str, optional
- :param ids: List of envelope IDs, defaults to None
- :type ids: List[str], optional
- :param statuses: List of envelope statuses, defaults to None
- :type statuses: List[EnvelopeStatus], optional
- :param folder_ids: List of folder IDs, defaults to None
- :type folder_ids: List[str], optional
- :param only_root_folder: Whether to only list envelopes in the root folder, defaults to None
- :type only_root_folder: bool, optional
- :param date_from: Unix timestamp of the start date, defaults to None
- :type date_from: int, optional
- :param date_to: Unix timestamp of the end date, defaults to None
- :type date_to: int, optional
- :param uid: Unique identifier of the user, defaults to None
- :type uid: str, optional
- :param first: first, defaults to None
- :type first: int, optional
- :param last: last, defaults to None
- :type last: int, optional
- :param after: after, defaults to None
- :type after: str, optional
- :param before: before, defaults to None
- :type before: str, optional
- :param order_field: Field to order envelopes by, defaults to None
- :type order_field: EnvelopeOrderField, optional
- :param ascending: Whether to order envelopes in ascending order, defaults to None
- :type ascending: bool, optional
- :param include_trash: Whether to include envelopes in the trash, defaults to None
- :type include_trash: bool, optional
- """
- if name is not SENTINEL:
- self.name = name
- if tags is not SENTINEL:
- self.tags = tags
- if comment is not SENTINEL:
- self.comment = comment
- if ids is not SENTINEL:
- self.ids = ids
- if statuses is not SENTINEL:
- self.statuses = self._define_list(statuses, EnvelopeStatus)
- if folder_ids is not SENTINEL:
- self.folder_ids = folder_ids
- if only_root_folder is not SENTINEL:
- self.only_root_folder = only_root_folder
- if date_from is not SENTINEL:
- self.date_from = date_from
- if date_to is not SENTINEL:
- self.date_to = date_to
- if uid is not SENTINEL:
- self.uid = uid
- if first is not SENTINEL:
- self.first = first
- if last is not SENTINEL:
- self.last = last
- if after is not SENTINEL:
- self.after = after
- if before is not SENTINEL:
- self.before = before
- if order_field is not SENTINEL:
- self.order_field = self._enum_matching(
- order_field, EnvelopeOrderField.list(), "order_field"
- )
- if ascending is not SENTINEL:
- self.ascending = ascending
- if include_trash is not SENTINEL:
- self.include_trash = include_trash
- self._kwargs = kwargs
+ name: Optional[str] = Field(default=None)
+ tags: Optional[List[str]] = Field(default=None)
+ comment: Optional[str] = Field(default=None)
+ ids: Optional[List[str]] = Field(default=None)
+ statuses: Optional[List[str]] = Field(default=None)
+ folder_ids: Optional[List[str]] = Field(default=None)
+ only_root_folder: Optional[bool] = Field(default=None)
+ date_from: Optional[float] = Field(default=None)
+ date_to: Optional[float] = Field(default=None)
+ uid: Optional[str] = Field(default=None)
+ first: Optional[float] = Field(default=None)
+ last: Optional[float] = Field(default=None)
+ after: Optional[str] = Field(default=None)
+ before: Optional[str] = Field(default=None)
+ order_field: Optional[str] = Field(default=None)
+ ascending: Optional[bool] = Field(default=None)
+ include_trash: Optional[bool] = Field(default=None)
diff --git a/src/signplus/models/list_templates_request.py b/src/signplus/models/list_templates_request.py
index b1c448a..077e84f 100644
--- a/src/signplus/models/list_templates_request.py
+++ b/src/signplus/models/list_templates_request.py
@@ -1,87 +1,39 @@
-from __future__ import annotations
from typing import List
-from .utils.json_map import JsonMap
+from pydantic import Field
+from typing import Optional
+from typing import Union
from .utils.base_model import BaseModel
-from .utils.sentinel import SENTINEL
-from .template_order_field import TemplateOrderField
-@JsonMap({})
class ListTemplatesRequest(BaseModel):
"""ListTemplatesRequest
- :param name: Name of the template, defaults to None
+ :param name: name, defaults to None
:type name: str, optional
- :param tags: List of tag templates, defaults to None
+ :param tags: tags, defaults to None
:type tags: List[str], optional
- :param ids: List of templates IDs, defaults to None
+ :param ids: ids, defaults to None
:type ids: List[str], optional
:param first: first, defaults to None
- :type first: int, optional
+ :type first: float, optional
:param last: last, defaults to None
- :type last: int, optional
+ :type last: float, optional
:param after: after, defaults to None
:type after: str, optional
:param before: before, defaults to None
:type before: str, optional
- :param order_field: Field to order templates by, defaults to None
- :type order_field: TemplateOrderField, optional
- :param ascending: Whether to order templates in ascending order, defaults to None
+ :param order_field: order_field, defaults to None
+ :type order_field: str, optional
+ :param ascending: ascending, defaults to None
:type ascending: bool, optional
"""
- def __init__(
- self,
- name: str = SENTINEL,
- tags: List[str] = SENTINEL,
- ids: List[str] = SENTINEL,
- first: int = SENTINEL,
- last: int = SENTINEL,
- after: str = SENTINEL,
- before: str = SENTINEL,
- order_field: TemplateOrderField = SENTINEL,
- ascending: bool = SENTINEL,
- **kwargs,
- ):
- """ListTemplatesRequest
-
- :param name: Name of the template, defaults to None
- :type name: str, optional
- :param tags: List of tag templates, defaults to None
- :type tags: List[str], optional
- :param ids: List of templates IDs, defaults to None
- :type ids: List[str], optional
- :param first: first, defaults to None
- :type first: int, optional
- :param last: last, defaults to None
- :type last: int, optional
- :param after: after, defaults to None
- :type after: str, optional
- :param before: before, defaults to None
- :type before: str, optional
- :param order_field: Field to order templates by, defaults to None
- :type order_field: TemplateOrderField, optional
- :param ascending: Whether to order templates in ascending order, defaults to None
- :type ascending: bool, optional
- """
- if name is not SENTINEL:
- self.name = name
- if tags is not SENTINEL:
- self.tags = tags
- if ids is not SENTINEL:
- self.ids = ids
- if first is not SENTINEL:
- self.first = first
- if last is not SENTINEL:
- self.last = last
- if after is not SENTINEL:
- self.after = after
- if before is not SENTINEL:
- self.before = before
- if order_field is not SENTINEL:
- self.order_field = self._enum_matching(
- order_field, TemplateOrderField.list(), "order_field"
- )
- if ascending is not SENTINEL:
- self.ascending = ascending
- self._kwargs = kwargs
+ name: Optional[str] = Field(default=None)
+ tags: Optional[List[str]] = Field(default=None)
+ ids: Optional[List[str]] = Field(default=None)
+ first: Optional[float] = Field(default=None)
+ last: Optional[float] = Field(default=None)
+ after: Optional[str] = Field(default=None)
+ before: Optional[str] = Field(default=None)
+ order_field: Optional[str] = Field(default=None)
+ ascending: Optional[bool] = Field(default=None)
diff --git a/src/signplus/models/list_webhooks_request.py b/src/signplus/models/list_webhooks_request.py
index 873ff0d..83b2614 100644
--- a/src/signplus/models/list_webhooks_request.py
+++ b/src/signplus/models/list_webhooks_request.py
@@ -1,32 +1,17 @@
-from __future__ import annotations
-from .utils.json_map import JsonMap
+from pydantic import Field
+from typing import Optional
+from typing import Union
from .utils.base_model import BaseModel
-from .utils.sentinel import SENTINEL
-from .webhook_event import WebhookEvent
-@JsonMap({})
class ListWebhooksRequest(BaseModel):
"""ListWebhooksRequest
- :param webhook_id: ID of the webhook, defaults to None
+ :param webhook_id: webhook_id, defaults to None
:type webhook_id: str, optional
- :param event: Event of the webhook, defaults to None
- :type event: WebhookEvent, optional
+ :param event: event, defaults to None
+ :type event: str, optional
"""
- def __init__(
- self, webhook_id: str = SENTINEL, event: WebhookEvent = SENTINEL, **kwargs
- ):
- """ListWebhooksRequest
-
- :param webhook_id: ID of the webhook, defaults to None
- :type webhook_id: str, optional
- :param event: Event of the webhook, defaults to None
- :type event: WebhookEvent, optional
- """
- if webhook_id is not SENTINEL:
- self.webhook_id = webhook_id
- if event is not SENTINEL:
- self.event = self._enum_matching(event, WebhookEvent.list(), "event")
- self._kwargs = kwargs
+ webhook_id: Optional[str] = Field(default=None)
+ event: Optional[str] = Field(default=None)
diff --git a/src/signplus/models/rename_envelope_request.py b/src/signplus/models/rename_envelope_request.py
index 958becd..641e2d9 100644
--- a/src/signplus/models/rename_envelope_request.py
+++ b/src/signplus/models/rename_envelope_request.py
@@ -1,22 +1,14 @@
-from .utils.json_map import JsonMap
+from pydantic import Field
+from typing import Optional
+from typing import Union
from .utils.base_model import BaseModel
-from .utils.sentinel import SENTINEL
-@JsonMap({})
class RenameEnvelopeRequest(BaseModel):
"""RenameEnvelopeRequest
- :param name: Name of the envelope, defaults to None
+ :param name: name, defaults to None
:type name: str, optional
"""
- def __init__(self, name: str = SENTINEL, **kwargs):
- """RenameEnvelopeRequest
-
- :param name: Name of the envelope, defaults to None
- :type name: str, optional
- """
- if name is not SENTINEL:
- self.name = name
- self._kwargs = kwargs
+ name: Optional[str] = Field(default=None)
diff --git a/src/signplus/models/rename_template_request.py b/src/signplus/models/rename_template_request.py
index 7bcbddc..91518cf 100644
--- a/src/signplus/models/rename_template_request.py
+++ b/src/signplus/models/rename_template_request.py
@@ -1,20 +1,14 @@
-from .utils.json_map import JsonMap
+from pydantic import Field
+from typing import Optional
+from typing import Union
from .utils.base_model import BaseModel
-@JsonMap({})
class RenameTemplateRequest(BaseModel):
"""RenameTemplateRequest
- :param name: Name of the template
- :type name: str
+ :param name: name, defaults to None
+ :type name: str, optional
"""
- def __init__(self, name: str, **kwargs):
- """RenameTemplateRequest
-
- :param name: Name of the template
- :type name: str
- """
- self.name = name
- self._kwargs = kwargs
+ name: Optional[str] = Field(default=None)
diff --git a/src/signplus/models/set_envelope_attachments_placeholders_request.py b/src/signplus/models/set_envelope_attachments_placeholders_request.py
index 0a87ec7..8412913 100644
--- a/src/signplus/models/set_envelope_attachments_placeholders_request.py
+++ b/src/signplus/models/set_envelope_attachments_placeholders_request.py
@@ -1,25 +1,21 @@
from __future__ import annotations
from typing import List
-from .utils.json_map import JsonMap
+from pydantic import Field
+from typing import Optional
+from typing import Union
from .utils.base_model import BaseModel
-from .attachment_placeholder_request import AttachmentPlaceholderRequest
+from .set_envelope_attachments_placeholders_request_placeholders import (
+ SetEnvelopeAttachmentsPlaceholdersRequestPlaceholders,
+)
-@JsonMap({})
class SetEnvelopeAttachmentsPlaceholdersRequest(BaseModel):
"""SetEnvelopeAttachmentsPlaceholdersRequest
- :param placeholders: placeholders
- :type placeholders: List[AttachmentPlaceholderRequest]
+ :param placeholders: placeholders, defaults to None
+ :type placeholders: List[SetEnvelopeAttachmentsPlaceholdersRequestPlaceholders], optional
"""
- def __init__(self, placeholders: List[AttachmentPlaceholderRequest], **kwargs):
- """SetEnvelopeAttachmentsPlaceholdersRequest
-
- :param placeholders: placeholders
- :type placeholders: List[AttachmentPlaceholderRequest]
- """
- self.placeholders = self._define_list(
- placeholders, AttachmentPlaceholderRequest
- )
- self._kwargs = kwargs
+ placeholders: Optional[
+ List[SetEnvelopeAttachmentsPlaceholdersRequestPlaceholders]
+ ] = Field(default=None)
diff --git a/src/signplus/models/set_envelope_attachments_placeholders_request_placeholders.py b/src/signplus/models/set_envelope_attachments_placeholders_request_placeholders.py
new file mode 100644
index 0000000..35cb85b
--- /dev/null
+++ b/src/signplus/models/set_envelope_attachments_placeholders_request_placeholders.py
@@ -0,0 +1,29 @@
+from pydantic import Field
+from typing import Optional
+from typing import Union
+from .utils.base_model import BaseModel
+
+
+class SetEnvelopeAttachmentsPlaceholdersRequestPlaceholders(BaseModel):
+ """SetEnvelopeAttachmentsPlaceholdersRequestPlaceholders
+
+ :param recipient_id: recipient_id, defaults to None
+ :type recipient_id: str, optional
+ :param name: name, defaults to None
+ :type name: str, optional
+ :param required: required, defaults to None
+ :type required: bool, optional
+ :param multiple: multiple, defaults to None
+ :type multiple: bool, optional
+ :param id_: id_, defaults to None
+ :type id_: str, optional
+ :param hint: hint, defaults to None
+ :type hint: str, optional
+ """
+
+ recipient_id: Optional[str] = Field(default=None)
+ name: Optional[str] = Field(default=None)
+ required: Optional[bool] = Field(default=None)
+ multiple: Optional[bool] = Field(default=None)
+ id_: Optional[str] = Field(alias="id", serialization_alias="id", default=None)
+ hint: Optional[str] = Field(default=None)
diff --git a/src/signplus/models/set_envelope_attachments_settings_request.py b/src/signplus/models/set_envelope_attachments_settings_request.py
index b1fe63b..5e655f8 100644
--- a/src/signplus/models/set_envelope_attachments_settings_request.py
+++ b/src/signplus/models/set_envelope_attachments_settings_request.py
@@ -1,22 +1,20 @@
from __future__ import annotations
-from .utils.json_map import JsonMap
+from pydantic import Field
+from typing import Optional
+from typing import Union
from .utils.base_model import BaseModel
-from .attachment_settings import AttachmentSettings
+from .set_envelope_attachments_settings_request_settings import (
+ SetEnvelopeAttachmentsSettingsRequestSettings,
+)
-@JsonMap({})
class SetEnvelopeAttachmentsSettingsRequest(BaseModel):
"""SetEnvelopeAttachmentsSettingsRequest
- :param settings: settings
- :type settings: AttachmentSettings
+ :param settings: settings, defaults to None
+ :type settings: SetEnvelopeAttachmentsSettingsRequestSettings, optional
"""
- def __init__(self, settings: AttachmentSettings, **kwargs):
- """SetEnvelopeAttachmentsSettingsRequest
-
- :param settings: settings
- :type settings: AttachmentSettings
- """
- self.settings = self._define_object(settings, AttachmentSettings)
- self._kwargs = kwargs
+ settings: Optional[SetEnvelopeAttachmentsSettingsRequestSettings] = Field(
+ default=None
+ )
diff --git a/src/signplus/models/set_envelope_attachments_settings_request_settings.py b/src/signplus/models/set_envelope_attachments_settings_request_settings.py
new file mode 100644
index 0000000..b433d60
--- /dev/null
+++ b/src/signplus/models/set_envelope_attachments_settings_request_settings.py
@@ -0,0 +1,14 @@
+from pydantic import Field
+from typing import Optional
+from typing import Union
+from .utils.base_model import BaseModel
+
+
+class SetEnvelopeAttachmentsSettingsRequestSettings(BaseModel):
+ """SetEnvelopeAttachmentsSettingsRequestSettings
+
+ :param visible_to_recipients: visible_to_recipients, defaults to None
+ :type visible_to_recipients: bool, optional
+ """
+
+ visible_to_recipients: Optional[bool] = Field(default=None)
diff --git a/src/signplus/models/set_envelope_comment_request.py b/src/signplus/models/set_envelope_comment_request.py
index c46dbb2..d4b4cd2 100644
--- a/src/signplus/models/set_envelope_comment_request.py
+++ b/src/signplus/models/set_envelope_comment_request.py
@@ -1,20 +1,14 @@
-from .utils.json_map import JsonMap
+from pydantic import Field
+from typing import Optional
+from typing import Union
from .utils.base_model import BaseModel
-@JsonMap({})
class SetEnvelopeCommentRequest(BaseModel):
"""SetEnvelopeCommentRequest
- :param comment: Comment for the envelope
- :type comment: str
+ :param comment: comment, defaults to None
+ :type comment: str, optional
"""
- def __init__(self, comment: str, **kwargs):
- """SetEnvelopeCommentRequest
-
- :param comment: Comment for the envelope
- :type comment: str
- """
- self.comment = comment
- self._kwargs = kwargs
+ comment: Optional[str] = Field(default=None)
diff --git a/src/signplus/models/set_envelope_dynamic_fields_request.py b/src/signplus/models/set_envelope_dynamic_fields_request.py
index c407b52..0cdc752 100644
--- a/src/signplus/models/set_envelope_dynamic_fields_request.py
+++ b/src/signplus/models/set_envelope_dynamic_fields_request.py
@@ -1,23 +1,17 @@
from __future__ import annotations
from typing import List
-from .utils.json_map import JsonMap
+from pydantic import Field
+from typing import Optional
+from typing import Union
from .utils.base_model import BaseModel
-from .dynamic_field import DynamicField
+from .dynamic_fields import DynamicFields
-@JsonMap({})
class SetEnvelopeDynamicFieldsRequest(BaseModel):
"""SetEnvelopeDynamicFieldsRequest
- :param dynamic_fields: List of dynamic fields
- :type dynamic_fields: List[DynamicField]
+ :param dynamic_fields: dynamic_fields, defaults to None
+ :type dynamic_fields: List[DynamicFields], optional
"""
- def __init__(self, dynamic_fields: List[DynamicField], **kwargs):
- """SetEnvelopeDynamicFieldsRequest
-
- :param dynamic_fields: List of dynamic fields
- :type dynamic_fields: List[DynamicField]
- """
- self.dynamic_fields = self._define_list(dynamic_fields, DynamicField)
- self._kwargs = kwargs
+ dynamic_fields: Optional[List[DynamicFields]] = Field(default=None)
diff --git a/src/signplus/models/set_envelope_expiration_date_request.py b/src/signplus/models/set_envelope_expiration_date_request.py
new file mode 100644
index 0000000..b830ab1
--- /dev/null
+++ b/src/signplus/models/set_envelope_expiration_date_request.py
@@ -0,0 +1,14 @@
+from pydantic import Field
+from typing import Optional
+from typing import Union
+from .utils.base_model import BaseModel
+
+
+class SetEnvelopeExpirationDateRequest(BaseModel):
+ """SetEnvelopeExpirationDateRequest
+
+ :param expires_at: expires_at, defaults to None
+ :type expires_at: float, optional
+ """
+
+ expires_at: Optional[float] = Field(default=None)
diff --git a/src/signplus/models/set_envelope_legality_level_request.py b/src/signplus/models/set_envelope_legality_level_request.py
index 409e94b..0bbf178 100644
--- a/src/signplus/models/set_envelope_legality_level_request.py
+++ b/src/signplus/models/set_envelope_legality_level_request.py
@@ -1,26 +1,14 @@
-from __future__ import annotations
-from .utils.json_map import JsonMap
+from pydantic import Field
+from typing import Optional
+from typing import Union
from .utils.base_model import BaseModel
-from .utils.sentinel import SENTINEL
-from .envelope_legality_level import EnvelopeLegalityLevel
-@JsonMap({})
class SetEnvelopeLegalityLevelRequest(BaseModel):
"""SetEnvelopeLegalityLevelRequest
- :param legality_level: Legal level of the envelope (SES is Simple Electronic Signature, QES_EIDAS is Qualified Electronic Signature, QES_ZERTES is Qualified Electronic Signature with Zertes), defaults to None
- :type legality_level: EnvelopeLegalityLevel, optional
+ :param legality_level: legality_level, defaults to None
+ :type legality_level: str, optional
"""
- def __init__(self, legality_level: EnvelopeLegalityLevel = SENTINEL, **kwargs):
- """SetEnvelopeLegalityLevelRequest
-
- :param legality_level: Legal level of the envelope (SES is Simple Electronic Signature, QES_EIDAS is Qualified Electronic Signature, QES_ZERTES is Qualified Electronic Signature with Zertes), defaults to None
- :type legality_level: EnvelopeLegalityLevel, optional
- """
- if legality_level is not SENTINEL:
- self.legality_level = self._enum_matching(
- legality_level, EnvelopeLegalityLevel.list(), "legality_level"
- )
- self._kwargs = kwargs
+ legality_level: Optional[str] = Field(default=None)
diff --git a/src/signplus/models/set_envelope_notification_request.py b/src/signplus/models/set_envelope_notification_request.py
new file mode 100644
index 0000000..e1a5c66
--- /dev/null
+++ b/src/signplus/models/set_envelope_notification_request.py
@@ -0,0 +1,20 @@
+from pydantic import Field
+from typing import Optional
+from typing import Union
+from .utils.base_model import BaseModel
+
+
+class SetEnvelopeNotificationRequest(BaseModel):
+ """SetEnvelopeNotificationRequest
+
+ :param subject: subject, defaults to None
+ :type subject: str, optional
+ :param message: message, defaults to None
+ :type message: str, optional
+ :param reminder_interval: reminder_interval, defaults to None
+ :type reminder_interval: float, optional
+ """
+
+ subject: Optional[str] = Field(default=None)
+ message: Optional[str] = Field(default=None)
+ reminder_interval: Optional[float] = Field(default=None)
diff --git a/src/signplus/models/set_template_attachments_placeholders_request.py b/src/signplus/models/set_template_attachments_placeholders_request.py
new file mode 100644
index 0000000..cdb82fb
--- /dev/null
+++ b/src/signplus/models/set_template_attachments_placeholders_request.py
@@ -0,0 +1,21 @@
+from __future__ import annotations
+from typing import List
+from pydantic import Field
+from typing import Optional
+from typing import Union
+from .utils.base_model import BaseModel
+from .set_template_attachments_placeholders_request_placeholders import (
+ SetTemplateAttachmentsPlaceholdersRequestPlaceholders,
+)
+
+
+class SetTemplateAttachmentsPlaceholdersRequest(BaseModel):
+ """SetTemplateAttachmentsPlaceholdersRequest
+
+ :param placeholders: placeholders, defaults to None
+ :type placeholders: List[SetTemplateAttachmentsPlaceholdersRequestPlaceholders], optional
+ """
+
+ placeholders: Optional[
+ List[SetTemplateAttachmentsPlaceholdersRequestPlaceholders]
+ ] = Field(default=None)
diff --git a/src/signplus/models/set_template_attachments_placeholders_request_placeholders.py b/src/signplus/models/set_template_attachments_placeholders_request_placeholders.py
new file mode 100644
index 0000000..2ecf146
--- /dev/null
+++ b/src/signplus/models/set_template_attachments_placeholders_request_placeholders.py
@@ -0,0 +1,29 @@
+from pydantic import Field
+from typing import Optional
+from typing import Union
+from .utils.base_model import BaseModel
+
+
+class SetTemplateAttachmentsPlaceholdersRequestPlaceholders(BaseModel):
+ """SetTemplateAttachmentsPlaceholdersRequestPlaceholders
+
+ :param recipient_id: recipient_id, defaults to None
+ :type recipient_id: str, optional
+ :param name: name, defaults to None
+ :type name: str, optional
+ :param required: required, defaults to None
+ :type required: bool, optional
+ :param multiple: multiple, defaults to None
+ :type multiple: bool, optional
+ :param id_: id_, defaults to None
+ :type id_: str, optional
+ :param hint: hint, defaults to None
+ :type hint: str, optional
+ """
+
+ recipient_id: Optional[str] = Field(default=None)
+ name: Optional[str] = Field(default=None)
+ required: Optional[bool] = Field(default=None)
+ multiple: Optional[bool] = Field(default=None)
+ id_: Optional[str] = Field(alias="id", serialization_alias="id", default=None)
+ hint: Optional[str] = Field(default=None)
diff --git a/src/signplus/models/set_template_attachments_settings_request.py b/src/signplus/models/set_template_attachments_settings_request.py
new file mode 100644
index 0000000..c6fbe1b
--- /dev/null
+++ b/src/signplus/models/set_template_attachments_settings_request.py
@@ -0,0 +1,20 @@
+from __future__ import annotations
+from pydantic import Field
+from typing import Optional
+from typing import Union
+from .utils.base_model import BaseModel
+from .set_template_attachments_settings_request_settings import (
+ SetTemplateAttachmentsSettingsRequestSettings,
+)
+
+
+class SetTemplateAttachmentsSettingsRequest(BaseModel):
+ """SetTemplateAttachmentsSettingsRequest
+
+ :param settings: settings, defaults to None
+ :type settings: SetTemplateAttachmentsSettingsRequestSettings, optional
+ """
+
+ settings: Optional[SetTemplateAttachmentsSettingsRequestSettings] = Field(
+ default=None
+ )
diff --git a/src/signplus/models/set_template_attachments_settings_request_settings.py b/src/signplus/models/set_template_attachments_settings_request_settings.py
new file mode 100644
index 0000000..b4c2579
--- /dev/null
+++ b/src/signplus/models/set_template_attachments_settings_request_settings.py
@@ -0,0 +1,14 @@
+from pydantic import Field
+from typing import Optional
+from typing import Union
+from .utils.base_model import BaseModel
+
+
+class SetTemplateAttachmentsSettingsRequestSettings(BaseModel):
+ """SetTemplateAttachmentsSettingsRequestSettings
+
+ :param visible_to_recipients: visible_to_recipients, defaults to None
+ :type visible_to_recipients: bool, optional
+ """
+
+ visible_to_recipients: Optional[bool] = Field(default=None)
diff --git a/src/signplus/models/set_template_comment_request.py b/src/signplus/models/set_template_comment_request.py
index a7d0b99..f1cad6b 100644
--- a/src/signplus/models/set_template_comment_request.py
+++ b/src/signplus/models/set_template_comment_request.py
@@ -1,20 +1,14 @@
-from .utils.json_map import JsonMap
+from pydantic import Field
+from typing import Optional
+from typing import Union
from .utils.base_model import BaseModel
-@JsonMap({})
class SetTemplateCommentRequest(BaseModel):
"""SetTemplateCommentRequest
- :param comment: Comment for the template
- :type comment: str
+ :param comment: comment, defaults to None
+ :type comment: str, optional
"""
- def __init__(self, comment: str, **kwargs):
- """SetTemplateCommentRequest
-
- :param comment: Comment for the template
- :type comment: str
- """
- self.comment = comment
- self._kwargs = kwargs
+ comment: Optional[str] = Field(default=None)
diff --git a/src/signplus/models/set_template_notification_request.py b/src/signplus/models/set_template_notification_request.py
new file mode 100644
index 0000000..c667046
--- /dev/null
+++ b/src/signplus/models/set_template_notification_request.py
@@ -0,0 +1,20 @@
+from pydantic import Field
+from typing import Optional
+from typing import Union
+from .utils.base_model import BaseModel
+
+
+class SetTemplateNotificationRequest(BaseModel):
+ """SetTemplateNotificationRequest
+
+ :param subject: subject, defaults to None
+ :type subject: str, optional
+ :param message: message, defaults to None
+ :type message: str, optional
+ :param reminder_interval: reminder_interval, defaults to None
+ :type reminder_interval: float, optional
+ """
+
+ subject: Optional[str] = Field(default=None)
+ message: Optional[str] = Field(default=None)
+ reminder_interval: Optional[float] = Field(default=None)
diff --git a/src/signplus/models/signing_steps_recipients_1.py b/src/signplus/models/signing_steps_recipients_1.py
new file mode 100644
index 0000000..e7016da
--- /dev/null
+++ b/src/signplus/models/signing_steps_recipients_1.py
@@ -0,0 +1,31 @@
+from __future__ import annotations
+from pydantic import Field
+from typing import Optional
+from typing import Union
+from .utils.base_model import BaseModel
+from .verification import Verification
+
+
+class SigningStepsRecipients1(BaseModel):
+ """SigningStepsRecipients1
+
+ :param name: name, defaults to None
+ :type name: str, optional
+ :param email: email, defaults to None
+ :type email: str, optional
+ :param role: role, defaults to None
+ :type role: str, optional
+ :param id_: id_, defaults to None
+ :type id_: str, optional
+ :param uid: uid, defaults to None
+ :type uid: str, optional
+ :param verification: verification, defaults to None
+ :type verification: Verification, optional
+ """
+
+ name: Optional[str] = Field(default=None)
+ email: Optional[str] = Field(default=None)
+ role: Optional[str] = Field(default=None)
+ id_: Optional[str] = Field(alias="id", serialization_alias="id", default=None)
+ uid: Optional[str] = Field(default=None)
+ verification: Optional[Verification] = Field(default=None)
diff --git a/src/signplus/models/signing_steps_recipients_2.py b/src/signplus/models/signing_steps_recipients_2.py
new file mode 100644
index 0000000..c46900e
--- /dev/null
+++ b/src/signplus/models/signing_steps_recipients_2.py
@@ -0,0 +1,26 @@
+from pydantic import Field
+from typing import Optional
+from typing import Union
+from .utils.base_model import BaseModel
+
+
+class SigningStepsRecipients2(BaseModel):
+ """SigningStepsRecipients2
+
+ :param id_: id_, defaults to None
+ :type id_: str, optional
+ :param uid: uid, defaults to None
+ :type uid: str, optional
+ :param name: name, defaults to None
+ :type name: str, optional
+ :param email: email, defaults to None
+ :type email: str, optional
+ :param role: role, defaults to None
+ :type role: str, optional
+ """
+
+ id_: Optional[str] = Field(alias="id", serialization_alias="id", default=None)
+ uid: Optional[str] = Field(default=None)
+ name: Optional[str] = Field(default=None)
+ email: Optional[str] = Field(default=None)
+ role: Optional[str] = Field(default=None)
diff --git a/src/signplus/models/text_font_1.py b/src/signplus/models/text_font_1.py
new file mode 100644
index 0000000..9448861
--- /dev/null
+++ b/src/signplus/models/text_font_1.py
@@ -0,0 +1,20 @@
+from pydantic import Field
+from typing import Optional
+from typing import Union
+from .utils.base_model import BaseModel
+
+
+class TextFont1(BaseModel):
+ """TextFont1
+
+ :param family: family, defaults to None
+ :type family: str, optional
+ :param italic: italic, defaults to None
+ :type italic: bool, optional
+ :param bold: bold, defaults to None
+ :type bold: bool, optional
+ """
+
+ family: Optional[str] = Field(default=None)
+ italic: Optional[bool] = Field(default=None)
+ bold: Optional[bool] = Field(default=None)
diff --git a/src/signplus/models/text_font_2.py b/src/signplus/models/text_font_2.py
new file mode 100644
index 0000000..d668578
--- /dev/null
+++ b/src/signplus/models/text_font_2.py
@@ -0,0 +1,20 @@
+from pydantic import Field
+from typing import Optional
+from typing import Union
+from .utils.base_model import BaseModel
+
+
+class TextFont2(BaseModel):
+ """TextFont2
+
+ :param family: family, defaults to None
+ :type family: str, optional
+ :param italic: italic, defaults to None
+ :type italic: bool, optional
+ :param bold: bold, defaults to None
+ :type bold: bool, optional
+ """
+
+ family: Optional[str] = Field(default=None)
+ italic: Optional[bool] = Field(default=None)
+ bold: Optional[bool] = Field(default=None)
diff --git a/src/signplus/models/utils/base_error.py b/src/signplus/models/utils/base_error.py
new file mode 100644
index 0000000..ef59699
--- /dev/null
+++ b/src/signplus/models/utils/base_error.py
@@ -0,0 +1,116 @@
+from typing import Any, Dict, Optional, Type
+from pydantic import BaseModel as PydanticBaseModel, ValidationError
+
+
+class BaseError(Exception):
+ """
+ Base exception class for SDK error models.
+
+ Combines Exception behavior with Pydantic validation:
+ - Can be raised as an exception
+ - Validates input data using Pydantic
+ - Provides attribute access to error fields
+ - Includes status and response for HTTP errors
+ """
+
+ # Pydantic model class for validation (overridden by subclasses)
+ _model_class: Type[PydanticBaseModel] = None
+
+ def __init__(self, **data: Any):
+ """
+ Initialize error with validated data.
+
+ :param data: Error data to validate
+ """
+ # If _model_class is set, use it for validation
+ if self._model_class is not None:
+ try:
+ # Validate data using Pydantic model
+ validated_data = self._model_class(**data)
+ # Store validated fields as instance attributes
+ for field_name in self._model_class.model_fields:
+ setattr(self, field_name, getattr(validated_data, field_name))
+ # Store the validated model for serialization
+ self._data = validated_data
+ except ValidationError:
+ # If validation fails, store raw data
+ for key, value in data.items():
+ setattr(self, key, value)
+ self._data = data
+ else:
+ # No validation - just store attributes
+ for key, value in data.items():
+ setattr(self, key, value)
+ self._data = data
+
+ # Add standard error attributes
+ self.status: Optional[int] = getattr(self, "status", None)
+ self.response: Optional[Any] = getattr(self, "response", None)
+
+ # Call Exception.__init__ with message if available
+ message = getattr(self, "message", str(data))
+ super().__init__(message)
+
+ def model_dump_original(self, **kwargs: Any) -> Dict[str, Any]:
+ """
+ Serialize error using original field names.
+
+ :param kwargs: Additional arguments for serialization
+ :return: Dictionary with original API field names
+ :rtype: Dict[str, Any]
+ """
+ if isinstance(self._data, PydanticBaseModel):
+ # Set exclude_unset=True by default
+ if "exclude_unset" not in kwargs:
+ kwargs["exclude_unset"] = True
+ return self._data.model_dump(by_alias=True, **kwargs)
+ else:
+ # Raw data
+ return self._data if isinstance(self._data, dict) else {}
+
+ def _map(self, **kwargs: Any) -> Dict[str, Any]:
+ """
+ Legacy alias for model_dump_original().
+
+ :param kwargs: Additional arguments
+ :return: Dictionary with original field names
+ :rtype: Dict[str, Any]
+ """
+ return self.model_dump_original(**kwargs)
+
+ @classmethod
+ def _unmap(cls, obj: Any) -> "BaseError":
+ """
+ Create error instance from dictionary.
+
+ :param obj: Dictionary or object to convert
+ :return: Error instance
+ :rtype: BaseError
+ """
+ if isinstance(obj, dict):
+ return cls(**obj)
+ return obj
+
+ @property
+ def _kwargs(self) -> Dict[str, Any]:
+ """
+ Access extra fields not in schema.
+
+ :return: Dictionary of extra fields
+ :rtype: Dict[str, Any]
+ """
+ if isinstance(self._data, PydanticBaseModel):
+ return getattr(self._data, "__pydantic_extra__", {})
+ return {}
+
+ def __str__(self) -> str:
+ """String representation of the error."""
+ message = getattr(self, "message", None)
+ status = getattr(self, "status", None)
+ if message and status:
+ return f"{status}: {message}"
+ elif message:
+ return str(message)
+ elif status:
+ return f"Error {status}"
+ return super().__str__()
diff --git a/src/signplus/models/utils/base_model.py b/src/signplus/models/utils/base_model.py
index 48c34e9..4bd6616 100644
--- a/src/signplus/models/utils/base_model.py
+++ b/src/signplus/models/utils/base_model.py
@@ -1,310 +1,120 @@
-import re
-import operator
-from typing import List, Union, Type, Any, TypeVar, Optional
-from enum import Enum
-from .one_of_base_model import OneOfBaseModel
-from .sentinel import SENTINEL
+from pydantic import BaseModel as PydanticBaseModel, ConfigDict, ValidationError
+from typing import Any, Dict
-T = TypeVar("T")
-
-class BaseModel:
- """
- A base class that most of the models in the SDK inherited from.
+class BaseModel(PydanticBaseModel):
"""
+ Pydantic-based model for SDK objects with custom configuration.
- def __init__(self):
- pass
-
- def _define_object(self, input_data: Any, input_class: Type[T]) -> Optional[T]:
- """
- Check if the input data is an instance of the input class and return the input data if it is.
- Otherwise, return an instance of the input class.
-
- :param input_data: The input data to be checked.
- :param input_class: The class that the input data should be an instance of.
- :return: The input data if it is an instance of input_class, otherwise an instance of input_class.
- :rtype: object
- """
- if input_data is None or input_data is SENTINEL:
- return None
- elif isinstance(input_data, input_class):
- return input_data
- else:
- return input_class._unmap(input_data)
-
- def _define_list(
- self, input_data: Optional[List[Any]], list_class: Type[T]
- ) -> Optional[List[T]]:
- """
- Create a list of instances of a specified class from input data.
- :param input_data: The input data to be transformed into a list of instances.
- :param list_class: The class that each instance in the list should be an instance of.
- :return: A list of instances of list_class.
- :rtype: list
- """
+ This class extends Pydantic's BaseModel to provide:
+ - Automatic validation on instantiation
+ - Type-safe attribute access
+ - JSON serialization with API field name mapping
+ - Support for additional properties (extra fields)
+ """
- if input_data is None or input_data is SENTINEL:
- return None
+ model_config = ConfigDict(
+ # Allow extra fields beyond defined properties (replaces **kwargs behavior)
+ extra="allow",
+ # Validate field values when they are assigned after initialization
+ validate_assignment=True,
+ # Use enum values instead of enum objects in serialization
+ use_enum_values=True,
+ # Allow models to be populated using either field name or alias
+ populate_by_name=True,
+ # Arbitrary types allowed (for flexibility with custom types)
+ arbitrary_types_allowed=False,
+ )
+
+ def model_dump_original(self, **kwargs: Any) -> Dict[str, Any]:
+ """
+ Serialize model using original field names from OpenAPI spec.
+
+ This ensures JSON output matches the API contract by using field aliases
+ (typically camelCase) instead of Python field names (snake_case).
+
+ By default, unset fields are excluded from the output.
+ To include them, pass exclude_unset=False explicitly.
+
+ :param kwargs: Additional arguments passed to model_dump()
+ :return: Dictionary with original API field names
+ :rtype: Dict[str, Any]
+
+ Example:
+ >>> cat = Cat(body_fat_percentage=15.5, age=None)
+ >>> cat.model_dump_original()
+ {'bodyFatPercentage': 15.5, 'age': None}
+ >>> cat.model_dump_original(exclude_unset=False)
+ {'bodyFatPercentage': 15.5, 'age': None}
+ """
+ # Set exclude_unset=True by default to exclude fields that were not explicitly set
+ # Note: We do NOT exclude None values by default, because if a field is explicitly
+ # set to None, it should be sent as null in the JSON to the API
+ if "exclude_unset" not in kwargs:
+ kwargs["exclude_unset"] = True
+
+ # Exclude extra fields by default (additional properties not in schema)
+ # This matches the expected behavior where undefined fields are not sent to APIs
+ result = self.model_dump(by_alias=True, **kwargs)
+
+ # Remove extra fields from the result
+ extra_fields = getattr(self, "__pydantic_extra__", {})
+ if extra_fields:
+ for extra_field_name in extra_fields.keys():
+ result.pop(extra_field_name, None)
- result: List[T] = []
- for item in input_data:
- if hasattr(list_class, "__args__") and len(list_class.__args__) > 0:
- class_list = self.__create_class_map(list_class)
- OneOfBaseModel.class_list = class_list
- result.append(OneOfBaseModel.return_one_of(item))
- elif issubclass(list_class, Enum):
- result.append(
- self._enum_matching(item, list_class.list(), list_class.__name__)
- )
- elif isinstance(item, list_class):
- result.append(item)
- elif isinstance(item, dict):
- result.append(list_class._unmap(item))
- else:
- result.append(list_class(item))
return result
- def _define_str(
- self,
- variable_name: str,
- value: Optional[Any],
- nullable=False,
- pattern: Optional[str] = None,
- min_length: Optional[int] = None,
- max_length: Optional[int] = None,
- ) -> Optional[str]:
- """
- Check if a string value is within the specified boundaries and matches a regex pattern.
- Return the value if it is, otherwise raise a ValueError.
-
- :param variable_name: The variable name.
- :type variable_name: str
- :param value: The value to be checked.
- :type value: str
- :param nullable: Whether the value can be None.
- :type nullable: bool
- :param pattern: The regex pattern to match.
- :type pattern: str
- :param min_length: The minimum length of the value.
- :type min_length: int
- :param max_length: The maximum length of the value.
- :type max_length: int
- :param inclusive_lenght_boundary: Whether the length boundaries are inclusive.
- :type inclusive_lenght_boundary: bool
-
- :raises ValueError: If the value is not within the boundaries or does not match the pattern.
-
- :return: The value if it is within the boundaries and matches the pattern.
- :rtype: str
- """
- if value is None and not nullable:
- raise ValueError(f"{variable_name} cannot be null.")
- if value is None or value is SENTINEL:
- return None
-
- if pattern:
- self._pattern_matching(value, pattern, variable_name)
-
- if min_length is not None:
- operation = operator.ge
- self._boundary_check(variable_name, len(value), min_length, operation, str)
-
- if max_length is not None:
- operation = operator.le
- self._boundary_check(variable_name, len(value), max_length, operation, str)
-
- return value
-
- def _define_number(
- self,
- variable_name: str,
- value: Optional[Union[float, int]],
- nullable=False,
- ge: Optional[Union[float, int]] = None,
- gt: Optional[Union[float, int]] = None,
- le: Optional[Union[float, int]] = None,
- lt: Optional[Union[float, int]] = None,
- ) -> Optional[Union[float, int]]:
- """
- Check if a number value is within the specified boundaries.
- Return the value if it is, otherwise raise a ValueError.
-
- :param variable_name: The variable name.
- :type variable_name: str
- :param value: The value to be checked.
- :type value: Union[float, int]
- :param nullable: Whether the value can be None.
- :type nullable: bool
- :param ge: The minimum value of the number (inclusive). The value must be greater than or equal to this.
- :type ge: Union[float, int]
- :param gt: The minimum value of the number (exclusive). The value must be greater than this.
- :type gt: Union[float, int]
- :param le: The maximum value of the number (inclusive). The value must be less than or equal to this.
- :type le: Union[float, int]
- :param lt: The maximum value of the number (exclusive). The value must be less than this.
- :type lt: Union[float, int]
-
- :raises ValueError: If the value is not within the boundaries.
-
- :return: The value if it is within the boundaries.
- :rtype: Union[float, int]
+ @classmethod
+ def model_validate_original(cls, obj: Any) -> "BaseModel":
"""
- if value is None and not nullable:
- raise ValueError(f"{variable_name} cannot be null.")
-
- if value is None or value is SENTINEL:
- return None
-
- if ge is not None:
- operation = operator.ge
- self._boundary_check(variable_name, value, ge, operation, float)
-
- if gt is not None:
- operation = operator.gt
- self._boundary_check(variable_name, value, gt, operation, float)
+ Parse and validate object using original field names from OpenAPI spec.
- if le is not None:
- operation = operator.le
- self._boundary_check(variable_name, value, le, operation, float)
+ This method accepts data with API field names (aliases) and creates
+ a validated model instance.
- if lt is not None:
- operation = operator.lt
- self._boundary_check(variable_name, value, lt, operation, float)
+ :param obj: Dictionary or object to validate
+ :return: Validated model instance
+ :rtype: BaseModel
- return value
-
- def _boundary_check(
- self,
- variable_name: str,
- value: float,
- boundary: float,
- operation: operator,
- value_type: Union[str, float, int],
- ) -> Optional[str]:
+ Example:
+ >>> data = {'bodyFatPercentage': 15.5}
+ >>> cat = Cat.model_validate_original(data)
+ >>> cat.body_fat_percentage
+ 15.5
"""
- Checks if a value is within the specified boundaries and returns the value if it is.
-
- :param variable_name: The variable name.
- :type variable_name: str
- :param value: The value to be checked.
- :type value: Union[str, float, int]
- :param boundary: The boundary value to be checked against.
- :type boundary: float
- :param operator: The operator to be used for the boundary check.
- :type operator: operator
- :param type: The type of the value.
- :type type: Union[str, float, int]
-
- :raises ValueError: If the value is not within the boundaries.
+ return cls.model_validate(obj)
- :return: The value if it is within the boundaries.
- :rtype: Union[str, float, int]
+ def _map(self, **kwargs: Any) -> Dict[str, Any]:
"""
- reference = "length" if value_type is str else "value"
- if not operation(value, boundary):
- raise ValueError(
- f"Invalid {reference} for {variable_name}: must satisfy the condition {operation.__name__} {boundary}, received {value}"
- )
+ Legacy alias for model_dump_original() for backward compatibility.
- return value
-
- def _pattern_matching(
- self, value: Optional[str], pattern: str, variable_name: str
- ) -> Optional[str]:
+ :param kwargs: Additional arguments passed to model_dump_original()
+ :return: Dictionary with original API field names
+ :rtype: Dict[str, Any]
"""
- Checks if a value matches a regex pattern and returns the value if there's a match.
+ return self.model_dump_original(**kwargs)
- :param value: The value to be checked.
- :type value: str
- :param pattern: The regex pattern.
- :type pattern: str
- :param variable_name: The variable name.
- :type variable_name: str
- :return: The value if it matches the pattern.
- :rtype: str
- :raises ValueError: If the value does not match the pattern.
+ @classmethod
+ def _unmap(cls, obj: Any) -> "BaseModel":
"""
- if value is None:
- return None
-
- if re.match(r"{}".format(pattern), value):
- return value
- else:
- raise ValueError(
- f"Invalid value for {variable_name}: must match {pattern}, received {value}"
- )
+ Legacy alias for model_validate_original() for backward compatibility.
- def _enum_matching(
- self, value: Union[str, Enum], enum_values: List[str], variable_name: str
- ) -> Union[str, Enum]:
+ :param obj: Dictionary or object to validate
+ :return: Validated model instance
+ :rtype: BaseModel
"""
- Checks if a value (str or enum) matches the required enum values and returns the value if there's a match.
+ return cls.model_validate_original(obj)
- :param value: The value to be checked.
- :type value: Union[str, Enum]
- :param enum_values: The list of valid enum values.
- :type enum_values: List[str]
- :param variable_name: The variable name.
- :type variable_name: str
- :return: The value if it matches one of the enum values.
- :rtype: Union[str, Enum]
- :raises ValueError: If the value does not match any of the enum values.
+ @property
+ def _kwargs(self) -> Dict[str, Any]:
"""
- if value is None:
- return None
+ Access extra fields (additional properties beyond defined schema).
- str_value = value.value if isinstance(value, Enum) else value
- if str_value in enum_values:
- return value
- else:
- raise ValueError(
- f"Invalid value for {variable_name}: must match one of {enum_values}, received {value}"
- )
-
- def _get_representation(self, level: int = 0) -> str:
- """
- Get a string representation of the model.
-
- :param int level: The indentation level.
- :return: A string representation of the model.
- """
- indent = " " * level
- representation_lines = []
-
- for attr, value in vars(self).items():
- if value is not None:
- value_representation = (
- value._get_representation(level + 1)
- if hasattr(value, "_get_representation")
- else repr(value)
- )
- representation_lines.append(
- f"{indent} {attr}={value_representation}"
- )
-
- return (
- f"{self.__class__.__name__}(\n"
- + ",\n".join(representation_lines)
- + f"\n{indent})"
- )
-
- def __str__(self):
- return self._get_representation()
-
- def __repr__(self):
- return self._get_representation()
-
- def __create_class_map(self, union_type):
- """
- Create a dictionary that maps class names to the actual classes in a Union type.
+ In Pydantic v2, extra fields are stored in __pydantic_extra__.
+ This property provides backward compatibility with v1's **kwargs pattern.
- :param union_type: The Union type to create a class map for.
- :return: A dictionary mapping class names to classes.
- :rtype: dict
+ :return: Dictionary of extra fields
+ :rtype: Dict[str, Any]
"""
- class_map = {}
- for arg in union_type.__args__:
- if arg.__name__:
- class_map[arg.__name__] = arg
- return class_map
+ return getattr(self, "__pydantic_extra__", {})
diff --git a/src/signplus/models/utils/cast_models.py b/src/signplus/models/utils/cast_models.py
index 2ad2229..06138f6 100644
--- a/src/signplus/models/utils/cast_models.py
+++ b/src/signplus/models/utils/cast_models.py
@@ -2,6 +2,7 @@
from typing import get_args, Union
from inspect import isclass
from .one_of_base_model import OneOfBaseModel
+from pydantic import ValidationError
def cast_models(func):
@@ -23,7 +24,11 @@ def wrapper(self, *clss, **kwargs):
new_cls_args.append(_get_instanced_type(input, input_type))
for type_name, input in kwargs.items():
- new_kwargs[type_name] = _get_instanced_type(input, cls_types[type_name])
+ # Config parameters pass through unchanged - they're already dicts
+ if type_name == "request_config":
+ new_kwargs[type_name] = input
+ else:
+ new_kwargs[type_name] = _get_instanced_type(input, cls_types[type_name])
return func(self, *new_cls_args, **new_kwargs)
@@ -53,12 +58,30 @@ def _get_instanced_type(data, input_type):
# Instanciate object models
elif isinstance(data, dict) and input_type is not str:
- return input_type(**data)
+ # Pydantic models: use model_validate() for better validation
+ if hasattr(input_type, "model_validate"):
+ try:
+ return input_type.model_validate(data)
+ except ValidationError as e:
+ # Convert ValidationError to TypeError for backward compatibility
+ raise TypeError(f"Invalid data for {input_type.__name__}: {e}")
+ # Legacy models or direct instantiation
+ else:
+ return input_type(**data)
# Instanciate list of object models
elif isinstance(data, list) and all(isinstance(i, dict) for i in data):
element_type = get_args(input_type)[0]
- return [element_type(**item) for item in data]
+ # Pydantic models: use model_validate() for each item
+ if hasattr(element_type, "model_validate"):
+ try:
+ return [element_type.model_validate(item) for item in data]
+ except ValidationError as e:
+ # Convert ValidationError to TypeError for backward compatibility
+ raise TypeError(f"Invalid data for {element_type.__name__}: {e}")
+ # Legacy models or direct instantiation
+ else:
+ return [element_type(**item) for item in data]
# Instanciate bytes if input is str
elif input_type is bytes and isinstance(data, str):
diff --git a/src/signplus/models/verification.py b/src/signplus/models/verification.py
new file mode 100644
index 0000000..fb1b639
--- /dev/null
+++ b/src/signplus/models/verification.py
@@ -0,0 +1,17 @@
+from pydantic import Field
+from typing import Optional
+from typing import Union
+from .utils.base_model import BaseModel
+
+
+class Verification(BaseModel):
+ """Verification
+
+ :param type_: type_, defaults to None
+ :type type_: str, optional
+ :param value: value, defaults to None
+ :type value: str, optional
+ """
+
+ type_: Optional[str] = Field(alias="type", serialization_alias="type", default=None)
+ value: Optional[str] = Field(default=None)
diff --git a/src/signplus/net/environment/environment.py b/src/signplus/net/environment/environment.py
index 5ecc969..b24d320 100644
--- a/src/signplus/net/environment/environment.py
+++ b/src/signplus/net/environment/environment.py
@@ -10,6 +10,7 @@ class Environment(Enum):
"""The environments available for the SDK"""
DEFAULT = "https://restapi.sign.plus/v2"
+ RESTAPI = "https://restapi.sign.plus/v2"
def __new__(cls, url):
parsed_url = urlparse(url)
diff --git a/src/signplus/net/headers/base_header.py b/src/signplus/net/headers/base_header.py
index cc1eb3c..8c6b8c3 100644
--- a/src/signplus/net/headers/base_header.py
+++ b/src/signplus/net/headers/base_header.py
@@ -2,8 +2,25 @@
class BaseHeader:
+ """
+ Base class for authentication header implementations.
+ Defines the interface for setting authentication values and retrieving HTTP headers.
+ """
+
def set_value(self, value: Any) -> None:
+ """
+ Set the authentication value.
+ Subclasses should override this method to store authentication credentials.
+
+ :param value: The authentication value to set.
+ """
pass
def get_headers(self) -> Dict[str, str]:
+ """
+ Get the HTTP headers containing authentication information.
+ Subclasses should override this method to return appropriate authentication headers.
+
+ :return: A dictionary of HTTP headers with authentication data.
+ """
pass
diff --git a/src/signplus/net/request_chain/handlers/http_handler.py b/src/signplus/net/request_chain/handlers/http_handler.py
index 6fc9255..5ac9289 100644
--- a/src/signplus/net/request_chain/handlers/http_handler.py
+++ b/src/signplus/net/request_chain/handlers/http_handler.py
@@ -2,6 +2,7 @@
from requests.exceptions import Timeout
from typing import Generator, Optional, Tuple
+from pydantic import TypeAdapter
from .base_handler import BaseHandler
from ...transport.request import Request
from ...transport.response import Response
@@ -36,11 +37,14 @@ def handle(
try:
request_args = self._get_request_data(request)
+ # Get timeout from config if available, otherwise use default
+ timeout = self._get_timeout_from_config(request)
+
result = requests.request(
request.method,
request.url,
headers=request.headers,
- timeout=self._timeout_in_seconds,
+ timeout=timeout,
**request_args,
)
response = Response(result)
@@ -50,6 +54,26 @@ def handle(
response.body, dict
):
error_model_class = request.errors[response.status]
+ if isinstance(error_model_class, TypeAdapter):
+ # TypeAdapter for anyOf/oneOf union type errors: parse into the correct variant
+ try:
+ parsed_body = error_model_class.validate_python(
+ response.body
+ )
+ except Exception:
+ parsed_body = response.body
+ message = response.body.get("message")
+ if not isinstance(message, str):
+ message = (
+ f"{response.status} error in request to: {request.url}"
+ )
+ error = ApiError(
+ message=message,
+ status=response.status,
+ response=response,
+ )
+ error.body = parsed_body
+ return None, error
error = error_model_class(**response.body)
if "message" not in response.body:
error.message = (
@@ -73,14 +97,24 @@ def handle(
def stream(
self, request: Request
) -> Generator[Tuple[Optional[Response], Optional[Exception]], None, None]:
+ """
+ Stream the request to the specified URL and yield response chunks.
+ Useful for handling large responses or server-sent events.
+
+ :param request: The request to stream.
+ :return: A generator yielding response chunks and any errors that occurred.
+ """
try:
request_args = self._get_request_data(request)
+ # Get timeout from config if available, otherwise use default
+ timeout = self._get_timeout_from_config(request)
+
result = requests.request(
request.method,
request.url,
headers=request.headers,
- timeout=self._timeout_in_seconds,
+ timeout=timeout,
stream=True,
**request_args,
)
@@ -133,3 +167,15 @@ def _get_request_data(self, request: Request) -> dict:
return {"files": files, "data": form_data}
return {"data": data}
+
+ def _get_timeout_from_config(self, request: Request) -> float:
+ """
+ Get the timeout for the request from config or use default.
+
+ :param Request request: The request object.
+ :return: The timeout in seconds.
+ :rtype: float
+ """
+ if request.config and "timeout" in request.config:
+ return request.config["timeout"] / 1000
+ return self._timeout_in_seconds
diff --git a/src/signplus/net/request_chain/handlers/retry_handler.py b/src/signplus/net/request_chain/handlers/retry_handler.py
index 6807d69..8238e3d 100644
--- a/src/signplus/net/request_chain/handlers/retry_handler.py
+++ b/src/signplus/net/request_chain/handlers/retry_handler.py
@@ -12,10 +12,15 @@
class RetryHandler(BaseHandler):
"""
Handler for retrying requests.
- Retries the request if the previous handler in the chain returned an error or a response with a status code of 500 or higher.
+ Supports configurable retry attempts, exponential backoff with jitter, and specific status codes or HTTP methods to retry.
:ivar int _max_attempts: The maximum number of retry attempts.
- :ivar int _delay_in_milliseconds: The delay between retry attempts in milliseconds.
+ :ivar int _delay_in_milliseconds: The initial delay between retry attempts in milliseconds.
+ :ivar int _max_delay_in_milliseconds: The maximum delay between retry attempts in milliseconds (caps exponential backoff).
+ :ivar float _backoff_factor: Multiplier for exponential backoff.
+ :ivar int _jitter_in_milliseconds: Maximum random jitter in milliseconds to add to retry delays.
+ :ivar set[int] | None _status_codes_to_retry: Specific HTTP status codes to retry (None triggers default: 5xx + 408, 429).
+ :ivar set[str] _http_methods_to_retry: HTTP methods that are allowed to be retried.
"""
def __init__(self):
@@ -25,12 +30,22 @@ def __init__(self):
super().__init__()
self._max_attempts = 3
self._delay_in_milliseconds = 150
+ self._max_delay_in_milliseconds = 5000
+ self._backoff_factor = 2
+ self._jitter_in_milliseconds = 50
+ self._status_codes_to_retry = None
+ self._http_methods_to_retry = {
+ m.upper()
+ for m in ["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "OPTIONS"]
+ }
def handle(
self, request: Request
) -> Tuple[Optional[Response], Optional[RequestError]]:
"""
- Retry the request if the response has a status code greater or equal to 500 or equal to 408 (timeout).
+ Retry the request based on configured retry settings.
+ Implements exponential backoff with optional jitter between retry attempts.
+ Per-request retry config (via request.config['retry']) overrides SDK defaults.
:param Request request: The request to retry.
:return: The response and any error that occurred.
@@ -40,11 +55,14 @@ def handle(
if self._next_handler is None:
raise RequestError("Handler chain is incomplete")
+ retry_config = (request.config or {}).get("retry") or {}
+ max_attempts = retry_config.get("attempts", self._max_attempts)
+
response, error = self._next_handler.handle(request)
try_count = 0
- while try_count < self._max_attempts and self._should_retry(error):
- self._delay(try_count)
+ while try_count < max_attempts and self._should_retry(error, request):
+ self._delay(try_count, request)
response, error = self._next_handler.handle(request)
try_count += 1
@@ -54,7 +72,9 @@ def stream(
self, request: Request
) -> Generator[Tuple[Optional[Response], Optional[RequestError]], None, None]:
"""
- Retry the request if the response has a status code greater or equal to 500 or equal to 408 (timeout).
+ Retry the request based on configured retry settings.
+ Implements exponential backoff with optional jitter between retry attempts.
+ Per-request retry config (via request.config['retry']) overrides SDK defaults.
:param Request request: The request to retry.
:return: The response and any error that occurred.
@@ -65,15 +85,17 @@ def stream(
raise RequestError("Handler chain is incomplete")
try:
+ retry_config = (request.config or {}).get("retry") or {}
+ max_attempts = retry_config.get("attempts", self._max_attempts)
try_count = 0
stream = self._next_handler.stream(request)
while True:
response, error = next(stream)
- if try_count < self._max_attempts and self._should_retry(error):
- self._delay(try_count)
+ if try_count < max_attempts and self._should_retry(error, request):
+ self._delay(try_count, request)
try_count += 1
stream = self._next_handler.stream(request) # Retry the request
- elif try_count >= self._max_attempts:
+ elif try_count >= max_attempts:
yield response, error
break
else:
@@ -82,20 +104,69 @@ def stream(
except StopIteration:
pass
- def _delay(self, try_count: int) -> None:
- jitter = random.uniform(0.5, 1.5)
- delay = self._delay_in_milliseconds * (2**try_count) * jitter / 1000
- sleep(delay)
+ def _delay(self, try_count: int, request: Request) -> None:
+ """
+ Calculate and apply delay before next retry attempt using exponential backoff.
+ Delay is capped at maximum delay and optional jitter is added.
+ Per-request retry config overrides SDK defaults.
- def _should_retry(self, error: Optional[ApiError]) -> bool:
+ :param int try_count: Current retry attempt number (0-indexed).
+ :param Request request: The request being retried, used to read per-request retry config.
"""
- Determine whether the request should be retried.
+ retry_config = (request.config or {}).get("retry") or {}
+ base_delay = retry_config.get("delay_ms", self._delay_in_milliseconds)
+ max_delay = retry_config.get("max_delay_ms", self._max_delay_in_milliseconds)
+ backoff_factor = retry_config.get("backoff_factor", self._backoff_factor)
+ jitter = retry_config.get("jitter_ms", self._jitter_in_milliseconds)
+
+ # Calculate exponential backoff: initialDelay * (backoffFactor ^ try_count)
+ delay = base_delay * (backoff_factor**try_count)
+
+ # Cap at max delay
+ delay = min(delay, max_delay)
+
+ # Add jitter: random value between 0 and jitter_ms
+ if jitter > 0:
+ delay += random.uniform(0, jitter)
+
+ # Convert to seconds and sleep
+ sleep(delay / 1000)
+
+ def _should_retry(self, error: Optional[ApiError], request: Request) -> bool:
+ """
+ Determine whether the request should be retried based on status code and HTTP method.
+ By default, retries all 5xx server errors and specific 4xx client errors (408 Timeout, 429 Rate Limit).
+ Per-request retry config overrides SDK defaults for status codes and HTTP methods.
- :param Optional[Response] response: The response from the previous handler.
:param Optional[ApiError] error: The error from the previous handler.
+ :param Request request: The request being retried.
:return: True if the request should be retried, False otherwise.
:rtype: bool
"""
if not error:
return False
- return error.status == 408 or error.status >= 500
+
+ retry_config = (request.config or {}).get("retry") or {}
+
+ # Check if status code is retryable
+ request_status_codes = retry_config.get("status_codes_to_retry")
+ if request_status_codes is not None:
+ should_retry_status = error.status in request_status_codes
+ elif self._status_codes_to_retry is not None:
+ should_retry_status = error.status in self._status_codes_to_retry
+ else:
+ # Default: retry 5xx, 408 (Timeout), 429 (Rate Limit)
+ should_retry_status = (
+ error.status >= 500 or error.status == 408 or error.status == 429
+ )
+
+ # Check if HTTP method is retryable
+ request_http_methods = retry_config.get("http_methods_to_retry")
+ if request_http_methods is not None:
+ should_retry_method = request.method.upper() in {
+ m.upper() for m in request_http_methods
+ }
+ else:
+ should_retry_method = request.method.upper() in self._http_methods_to_retry
+
+ return should_retry_status and should_retry_method
diff --git a/src/signplus/net/sdk_config.py b/src/signplus/net/sdk_config.py
new file mode 100644
index 0000000..0e1ce6b
--- /dev/null
+++ b/src/signplus/net/sdk_config.py
@@ -0,0 +1,63 @@
+from typing import TypedDict, Optional
+
+from ..net.environment import Environment
+
+
+class RetryConfig(TypedDict, total=False):
+ """
+ Configuration for retry behavior.
+
+ :ivar int attempts: Maximum number of retry attempts.
+ :ivar int delay_ms: Delay in milliseconds between retries.
+ :ivar int max_delay_ms: Maximum delay in milliseconds between retries (caps exponential backoff).
+ :ivar float backoff_factor: Multiplier for exponential backoff (e.g., 2.0 for doubling delay each retry).
+ :ivar int jitter_ms: Maximum random jitter in milliseconds to add to retry delays.
+ :ivar list[int] status_codes_to_retry: Specific HTTP status codes to retry (overrides default 5xx + 408, 429).
+ :ivar list[str] http_methods_to_retry: HTTP methods to retry (e.g., ['GET', 'POST']).
+ """
+
+ attempts: int
+ delay_ms: int
+ max_delay_ms: int
+ backoff_factor: float
+ jitter_ms: int
+ status_codes_to_retry: list[int]
+ http_methods_to_retry: list[str]
+
+
+class ValidationConfig(TypedDict, total=False):
+ """
+ Configuration for response validation.
+
+ :ivar bool response_validation: Whether to validate responses against schemas.
+ """
+
+ response_validation: bool
+
+
+class SdkConfig(TypedDict, total=False):
+ """
+ Configuration dictionary for SDK, service, method, and request-level overrides.
+
+ Hierarchy (highest to lowest priority):
+ - Request config (passed directly to method call)
+ - Method config (set via set__config())
+ - Service config (set via set_config())
+ - SDK config (set at initialization)
+
+ :ivar str base_url: Base URL for API requests. Can be a string URL or Environment enum.
+ :ivar Environment environment: Environment enum value for base URL.
+ :ivar int timeout: Request timeout in milliseconds.
+ :ivar str token: Bearer token for authentication.
+ :ivar str access_token: Access token for authentication (alias for token).
+ :ivar RetryConfig retry: Retry configuration.
+ :ivar ValidationConfig validation: Validation configuration.
+ """
+
+ base_url: str
+ environment: Environment
+ timeout: int
+ token: str
+ access_token: str
+ retry: RetryConfig
+ validation: ValidationConfig
diff --git a/src/signplus/net/transport/api_error.py b/src/signplus/net/transport/api_error.py
index cb4cdd5..0189f44 100644
--- a/src/signplus/net/transport/api_error.py
+++ b/src/signplus/net/transport/api_error.py
@@ -1,9 +1,8 @@
-from ...models.utils.base_model import BaseModel
from .response import Response
from typing import Optional
-class ApiError(BaseModel, Exception):
+class ApiError(Exception):
"""
Class representing an API Error.
diff --git a/src/signplus/net/transport/request.py b/src/signplus/net/transport/request.py
index 81fa33b..ce86fee 100644
--- a/src/signplus/net/transport/request.py
+++ b/src/signplus/net/transport/request.py
@@ -1,6 +1,9 @@
-from typing import Any, Set
+from typing import Any, Set, TYPE_CHECKING
from .utils import extract_original_data
+if TYPE_CHECKING:
+ from ..sdk_config import SdkConfig
+
class Request:
"""
@@ -27,6 +30,7 @@ class Request:
:ivar Any body: Request body.
:ivar Set[str] scopes: List of scopes to include in the request.
:ivar dict errors: Dictionary of HTTP status codes to error models.
+ :ivar SdkConfig config: Configuration dictionary for the request.
"""
def __init__(self):
@@ -36,6 +40,7 @@ def __init__(self):
self.body = None
self.scopes = None
self.errors = None
+ self.config: "SdkConfig" = None
def set_url(self, url: str) -> "Request":
"""
@@ -105,6 +110,17 @@ def set_errors(self, errors: dict) -> "Request":
self.errors = errors
return self
+ def set_config(self, config: "SdkConfig") -> "Request":
+ """
+ Set the configuration for the request.
+
+ :param SdkConfig config: Configuration dictionary for the request.
+ :return: The updated Request object.
+ :rtype: Request
+ """
+ self.config = config
+ return self
+
def __str__(self) -> str:
"""
Return a string representation of the Request object.
diff --git a/src/signplus/net/transport/response.py b/src/signplus/net/transport/response.py
index 5824044..f1bacb8 100644
--- a/src/signplus/net/transport/response.py
+++ b/src/signplus/net/transport/response.py
@@ -1,7 +1,7 @@
import json
import re
from typing import Generator, Optional, Union
-from requests import Response as RequestsResponse
+from requests import Response
from urllib.parse import parse_qs
@@ -13,19 +13,21 @@ class Response:
:ivar dict headers: The headers of the HTTP response.
:ivar str body: The body of the HTTP response.
:var str chunk: The chunk of the HTTP response.
+ :property Response raw: The original requests.Response object.
"""
def __init__(
self,
- response: RequestsResponse,
+ response: Response,
chunk: Optional[str] = None,
raw_chunk: Optional[bytes] = None,
) -> None:
"""
Initializes a Response object.
- :param RequestsResponse response: The requests.Response object.
+ :param Response response: The Response object.
"""
+ self._raw_response = response
self.status = response.status_code
self.headers = response.headers
@@ -37,12 +39,12 @@ def __init__(
@staticmethod
def from_chunk(
- response: RequestsResponse, raw_chunk: bytes
+ response: Response, raw_chunk: bytes
) -> Generator["Response", None, None]:
"""
Create a Response object from a chunk of data.
- :param RequestsResponse response: The requests.Response object.
+ :param Response response: The Response object.
:param bytes chunk: The chunk of data.
:return: A Response object.
:rtype: Response
@@ -67,6 +69,16 @@ def __str__(self) -> str:
f"Response(status={self.status}, headers={self.headers}, body={self.body})"
)
+ @property
+ def raw(self) -> Response:
+ """
+ Get the underlying requests.Response object.
+
+ :return: The original requests.Response object.
+ :rtype: Response
+ """
+ return self._raw_response
+
def _parse_response_body(
self, content_type: str, body: str, raw_body: bytes
) -> Union[str, dict, bytes]:
@@ -79,7 +91,9 @@ def _parse_response_body(
If the content type is 'application/x-www-form-urlencoded', it parses the body as a query string.
For all other content types, it returns the raw binary content.
- :param RequestsResponse response: The HTTP response received from a request.
+ :param str content_type: The content type of the response.
+ :param str body: The text body of the response.
+ :param bytes raw_body: The raw binary body of the response.
:return: The parsed response body.
:rtype: str or dict or bytes
"""
@@ -92,7 +106,11 @@ def _parse_response_body(
# Note: this assumes that the content of data is a valid JSON string
return json.loads(json_body)
- if "text/" in content_type or content_type == "application/xml":
+ if (
+ "text/" in content_type
+ or content_type == "application/xml"
+ or content_type == "application/javascript"
+ ):
return body
if content_type == "application/x-www-form-urlencoded":
diff --git a/src/signplus/net/transport/serializer.py b/src/signplus/net/transport/serializer.py
index d258dd4..c37c7ab 100644
--- a/src/signplus/net/transport/serializer.py
+++ b/src/signplus/net/transport/serializer.py
@@ -1,4 +1,4 @@
-from typing import Any, List
+from typing import Any, List, Optional, TYPE_CHECKING
from urllib.parse import quote
from .request import Request
@@ -7,6 +7,9 @@
from ...net.headers.base_header import BaseHeader
from ...net.transport.api_error import ApiError
+if TYPE_CHECKING:
+ from ...net.sdk_config import SdkConfig
+
class Serializer:
"""
@@ -18,14 +21,21 @@ class Serializer:
:ivar dict[str, str] path: A dictionary containing path parameters for the request.
:ivar list[str] query: A list containing query parameters for the request.
:ivar dict[int, ApiError] errors: A dictionary of HTTP status codes to error models.
+ :ivar SdkConfig config: Configuration dictionary for the request.
"""
- def __init__(self, url: str, default_headers: List[BaseHeader] = []):
+ def __init__(
+ self,
+ url: str,
+ default_headers: List[BaseHeader] = [],
+ config: Optional["SdkConfig"] = None,
+ ):
"""
- Initializes a Serializer instance with the base URL.
+ Initializes a Serializer instance with the base URL and configuration.
:param str url: The base URL to be serialized.
- :param list[BaseHeader] default_headers: A list of default headers to be added to the request. Defaults to an empty list.
+ :param list[BaseHeader] default_headers: A list of default headers to be added to the request (with config overrides already applied). Defaults to an empty list.
+ :param SdkConfig config: Configuration dictionary for timeout and other non-auth settings.
"""
self.url: str = url
self.headers: dict[str, str] = {}
@@ -33,7 +43,13 @@ def __init__(self, url: str, default_headers: List[BaseHeader] = []):
self.path: dict[str, str] = {}
self.query: list[str] = []
self.errors: dict[int, ApiError] = {}
+ self.config: Optional["SdkConfig"] = config
+
+ self.headers["User-Agent"] = (
+ "postman-codegen/1.1.2 signplus-python/3.0.0 (python)"
+ )
+ # Apply default headers
for header in default_headers:
for key, value in header.get_headers().items():
self.add_header(key, value)
@@ -219,6 +235,7 @@ def serialize(self) -> Request:
.set_url(final_url)
.set_headers(self.headers)
.set_errors(self.errors)
+ .set_config(self.config)
)
def _define_url(self) -> str:
diff --git a/src/signplus/net/transport/utils.py b/src/signplus/net/transport/utils.py
index ca12a77..7ccb062 100644
--- a/src/signplus/net/transport/utils.py
+++ b/src/signplus/net/transport/utils.py
@@ -7,6 +7,8 @@ def extract_original_data(data: Any) -> Any:
"""
Extracts the original data from internal models and enums.
+ Supports both Pydantic models (model_dump_original) and legacy models (_map).
+
:param Any data: The data to be extracted.
:return: The extracted data.
:rtype: Any
@@ -17,7 +19,15 @@ def extract_original_data(data: Any) -> Any:
data_type = type(data)
if issubclass(data_type, BaseModel):
- return data._map()
+ # Pydantic models: use model_dump_original()
+ if hasattr(data, "model_dump_original"):
+ return data.model_dump_original()
+ # Legacy models: use _map()
+ elif hasattr(data, "_map"):
+ return data._map()
+ # Fallback: try to convert to dict
+ else:
+ return dict(data)
if issubclass(data_type, Enum):
return data.value
diff --git a/src/signplus/sdk.py b/src/signplus/sdk.py
index c5ab162..bf3f644 100644
--- a/src/signplus/sdk.py
+++ b/src/signplus/sdk.py
@@ -1,9 +1,82 @@
from typing import Union
-from .services.signplus import SignplusService
+from .services.template_id import TemplateIdService
+from .services.signed_documents import SignedDocumentsService
+from .services.certificate import CertificateService
+from .services.document_id import DocumentIdService
+from .services.document import DocumentService
+from .services.documents import DocumentsService
+from .services.dynamic_fields import DynamicFieldsService
+from .services.signing_steps import SigningStepsService
+from .services.settings import SettingsService
+from .services.placeholders import PlaceholdersService
+from .services.file_id import FileIdService
+from .services.send import SendService
+from .services.duplicate import DuplicateService
+from .services.void import VoidService
+from .services.rename import RenameService
+from .services.set_comment import SetCommentService
+from .services.set_notification import SetNotificationService
+from .services.set_expiration_date import SetExpirationDateService
+from .services.set_legality_level import SetLegalityLevelService
+from .services.envelope_envelope_id_annotations_document_id import (
+ EnvelopeEnvelopeIdAnnotationsDocumentIdService,
+)
+from .services.annotations import AnnotationsService
+from .services.annotation_id import AnnotationIdService
+from .services.annotation import AnnotationService
+from .services.envelope_id import EnvelopeIdService
+from .services.envelope import EnvelopeService
+from .services.envelopes import EnvelopesService
+from .services.template_template_id_duplicate import TemplateTemplateIdDuplicateService
+from .services.template_template_id_document_document_id import (
+ TemplateTemplateIdDocumentDocumentIdService,
+)
+from .services.template_template_id_document import TemplateTemplateIdDocumentService
+from .services.template_template_id_documents import TemplateTemplateIdDocumentsService
+from .services.template_template_id_signing_steps import (
+ TemplateTemplateIdSigningStepsService,
+)
+from .services.template_template_id_rename import TemplateTemplateIdRenameService
+from .services.template_template_id_set_comment import (
+ TemplateTemplateIdSetCommentService,
+)
+from .services.template_template_id_set_notification import (
+ TemplateTemplateIdSetNotificationService,
+)
+from .services.template_template_id_annotations_document_id import (
+ TemplateTemplateIdAnnotationsDocumentIdService,
+)
+from .services.template_template_id_annotations import (
+ TemplateTemplateIdAnnotationsService,
+)
+from .services.template_template_id_annotation_annotation_id import (
+ TemplateTemplateIdAnnotationAnnotationIdService,
+)
+from .services.template_template_id_annotation import (
+ TemplateTemplateIdAnnotationService,
+)
+from .services.template_template_id_attachments_settings import (
+ TemplateTemplateIdAttachmentsSettingsService,
+)
+from .services.template_template_id_attachments_placeholders import (
+ TemplateTemplateIdAttachmentsPlaceholdersService,
+)
+from .services.template_template_id import TemplateTemplateIdService
+from .services.template import TemplateService
+from .services.templates import TemplatesService
+from .services.webhook_id import WebhookIdService
+from .services.webhook import WebhookService
+from .services.webhooks import WebhooksService
from .net.environment import Environment
class Signplus:
+ """
+ Main SDK client class for Signplus.
+ Provides centralized configuration and access to all service endpoints.
+ Supports authentication, environment management, and global timeout settings.
+ """
+
def __init__(
self,
access_token: str = None,
@@ -14,10 +87,86 @@ def __init__(
Initializes Signplus the SDK class.
"""
- self._base_url = (
+ _resolved_url = (
base_url.value if isinstance(base_url, Environment) else base_url
)
- self.signplus = SignplusService(base_url=self._base_url)
+ self._base_url = _resolved_url.rstrip("/") if _resolved_url else _resolved_url
+ self.template_id = TemplateIdService(base_url=self._base_url)
+ self.signed_documents = SignedDocumentsService(base_url=self._base_url)
+ self.certificate = CertificateService(base_url=self._base_url)
+ self.document_id = DocumentIdService(base_url=self._base_url)
+ self.document = DocumentService(base_url=self._base_url)
+ self.documents = DocumentsService(base_url=self._base_url)
+ self.dynamic_fields = DynamicFieldsService(base_url=self._base_url)
+ self.signing_steps = SigningStepsService(base_url=self._base_url)
+ self.settings = SettingsService(base_url=self._base_url)
+ self.placeholders = PlaceholdersService(base_url=self._base_url)
+ self.file_id = FileIdService(base_url=self._base_url)
+ self.send = SendService(base_url=self._base_url)
+ self.duplicate = DuplicateService(base_url=self._base_url)
+ self.void = VoidService(base_url=self._base_url)
+ self.rename = RenameService(base_url=self._base_url)
+ self.set_comment = SetCommentService(base_url=self._base_url)
+ self.set_notification = SetNotificationService(base_url=self._base_url)
+ self.set_expiration_date = SetExpirationDateService(base_url=self._base_url)
+ self.set_legality_level = SetLegalityLevelService(base_url=self._base_url)
+ self.envelope_envelope_id_annotations_document_id = (
+ EnvelopeEnvelopeIdAnnotationsDocumentIdService(base_url=self._base_url)
+ )
+ self.annotations = AnnotationsService(base_url=self._base_url)
+ self.annotation_id = AnnotationIdService(base_url=self._base_url)
+ self.annotation = AnnotationService(base_url=self._base_url)
+ self.envelope_id = EnvelopeIdService(base_url=self._base_url)
+ self.envelope = EnvelopeService(base_url=self._base_url)
+ self.envelopes = EnvelopesService(base_url=self._base_url)
+ self.template_template_id_duplicate = TemplateTemplateIdDuplicateService(
+ base_url=self._base_url
+ )
+ self.template_template_id_document_document_id = (
+ TemplateTemplateIdDocumentDocumentIdService(base_url=self._base_url)
+ )
+ self.template_template_id_document = TemplateTemplateIdDocumentService(
+ base_url=self._base_url
+ )
+ self.template_template_id_documents = TemplateTemplateIdDocumentsService(
+ base_url=self._base_url
+ )
+ self.template_template_id_signing_steps = TemplateTemplateIdSigningStepsService(
+ base_url=self._base_url
+ )
+ self.template_template_id_rename = TemplateTemplateIdRenameService(
+ base_url=self._base_url
+ )
+ self.template_template_id_set_comment = TemplateTemplateIdSetCommentService(
+ base_url=self._base_url
+ )
+ self.template_template_id_set_notification = (
+ TemplateTemplateIdSetNotificationService(base_url=self._base_url)
+ )
+ self.template_template_id_annotations_document_id = (
+ TemplateTemplateIdAnnotationsDocumentIdService(base_url=self._base_url)
+ )
+ self.template_template_id_annotations = TemplateTemplateIdAnnotationsService(
+ base_url=self._base_url
+ )
+ self.template_template_id_annotation_annotation_id = (
+ TemplateTemplateIdAnnotationAnnotationIdService(base_url=self._base_url)
+ )
+ self.template_template_id_annotation = TemplateTemplateIdAnnotationService(
+ base_url=self._base_url
+ )
+ self.template_template_id_attachments_settings = (
+ TemplateTemplateIdAttachmentsSettingsService(base_url=self._base_url)
+ )
+ self.template_template_id_attachments_placeholders = (
+ TemplateTemplateIdAttachmentsPlaceholdersService(base_url=self._base_url)
+ )
+ self.template_template_id = TemplateTemplateIdService(base_url=self._base_url)
+ self.template = TemplateService(base_url=self._base_url)
+ self.templates = TemplatesService(base_url=self._base_url)
+ self.webhook_id = WebhookIdService(base_url=self._base_url)
+ self.webhook = WebhookService(base_url=self._base_url)
+ self.webhooks = WebhooksService(base_url=self._base_url)
self.set_access_token(access_token)
self.set_timeout(timeout)
@@ -28,11 +177,57 @@ def set_base_url(self, base_url: Union[Environment, str]):
:param Union[Environment, str] base_url: The base URL to be set.
:return: The SDK instance.
"""
- self._base_url = (
+ _resolved_url = (
base_url.value if isinstance(base_url, Environment) else base_url
)
+ self._base_url = _resolved_url.rstrip("/") if _resolved_url else _resolved_url
- self.signplus.set_base_url(self._base_url)
+ self.template_id.set_base_url(self._base_url)
+ self.signed_documents.set_base_url(self._base_url)
+ self.certificate.set_base_url(self._base_url)
+ self.document_id.set_base_url(self._base_url)
+ self.document.set_base_url(self._base_url)
+ self.documents.set_base_url(self._base_url)
+ self.dynamic_fields.set_base_url(self._base_url)
+ self.signing_steps.set_base_url(self._base_url)
+ self.settings.set_base_url(self._base_url)
+ self.placeholders.set_base_url(self._base_url)
+ self.file_id.set_base_url(self._base_url)
+ self.send.set_base_url(self._base_url)
+ self.duplicate.set_base_url(self._base_url)
+ self.void.set_base_url(self._base_url)
+ self.rename.set_base_url(self._base_url)
+ self.set_comment.set_base_url(self._base_url)
+ self.set_notification.set_base_url(self._base_url)
+ self.set_expiration_date.set_base_url(self._base_url)
+ self.set_legality_level.set_base_url(self._base_url)
+ self.envelope_envelope_id_annotations_document_id.set_base_url(self._base_url)
+ self.annotations.set_base_url(self._base_url)
+ self.annotation_id.set_base_url(self._base_url)
+ self.annotation.set_base_url(self._base_url)
+ self.envelope_id.set_base_url(self._base_url)
+ self.envelope.set_base_url(self._base_url)
+ self.envelopes.set_base_url(self._base_url)
+ self.template_template_id_duplicate.set_base_url(self._base_url)
+ self.template_template_id_document_document_id.set_base_url(self._base_url)
+ self.template_template_id_document.set_base_url(self._base_url)
+ self.template_template_id_documents.set_base_url(self._base_url)
+ self.template_template_id_signing_steps.set_base_url(self._base_url)
+ self.template_template_id_rename.set_base_url(self._base_url)
+ self.template_template_id_set_comment.set_base_url(self._base_url)
+ self.template_template_id_set_notification.set_base_url(self._base_url)
+ self.template_template_id_annotations_document_id.set_base_url(self._base_url)
+ self.template_template_id_annotations.set_base_url(self._base_url)
+ self.template_template_id_annotation_annotation_id.set_base_url(self._base_url)
+ self.template_template_id_annotation.set_base_url(self._base_url)
+ self.template_template_id_attachments_settings.set_base_url(self._base_url)
+ self.template_template_id_attachments_placeholders.set_base_url(self._base_url)
+ self.template_template_id.set_base_url(self._base_url)
+ self.template.set_base_url(self._base_url)
+ self.templates.set_base_url(self._base_url)
+ self.webhook_id.set_base_url(self._base_url)
+ self.webhook.set_base_url(self._base_url)
+ self.webhooks.set_base_url(self._base_url)
return self
@@ -40,7 +235,56 @@ def set_access_token(self, access_token: str):
"""
Sets the access token for the entire SDK.
"""
- self.signplus.set_access_token(access_token)
+ self.template_id.set_access_token(access_token)
+ self.signed_documents.set_access_token(access_token)
+ self.certificate.set_access_token(access_token)
+ self.document_id.set_access_token(access_token)
+ self.document.set_access_token(access_token)
+ self.documents.set_access_token(access_token)
+ self.dynamic_fields.set_access_token(access_token)
+ self.signing_steps.set_access_token(access_token)
+ self.settings.set_access_token(access_token)
+ self.placeholders.set_access_token(access_token)
+ self.file_id.set_access_token(access_token)
+ self.send.set_access_token(access_token)
+ self.duplicate.set_access_token(access_token)
+ self.void.set_access_token(access_token)
+ self.rename.set_access_token(access_token)
+ self.set_comment.set_access_token(access_token)
+ self.set_notification.set_access_token(access_token)
+ self.set_expiration_date.set_access_token(access_token)
+ self.set_legality_level.set_access_token(access_token)
+ self.envelope_envelope_id_annotations_document_id.set_access_token(access_token)
+ self.annotations.set_access_token(access_token)
+ self.annotation_id.set_access_token(access_token)
+ self.annotation.set_access_token(access_token)
+ self.envelope_id.set_access_token(access_token)
+ self.envelope.set_access_token(access_token)
+ self.envelopes.set_access_token(access_token)
+ self.template_template_id_duplicate.set_access_token(access_token)
+ self.template_template_id_document_document_id.set_access_token(access_token)
+ self.template_template_id_document.set_access_token(access_token)
+ self.template_template_id_documents.set_access_token(access_token)
+ self.template_template_id_signing_steps.set_access_token(access_token)
+ self.template_template_id_rename.set_access_token(access_token)
+ self.template_template_id_set_comment.set_access_token(access_token)
+ self.template_template_id_set_notification.set_access_token(access_token)
+ self.template_template_id_annotations_document_id.set_access_token(access_token)
+ self.template_template_id_annotations.set_access_token(access_token)
+ self.template_template_id_annotation_annotation_id.set_access_token(
+ access_token
+ )
+ self.template_template_id_annotation.set_access_token(access_token)
+ self.template_template_id_attachments_settings.set_access_token(access_token)
+ self.template_template_id_attachments_placeholders.set_access_token(
+ access_token
+ )
+ self.template_template_id.set_access_token(access_token)
+ self.template.set_access_token(access_token)
+ self.templates.set_access_token(access_token)
+ self.webhook_id.set_access_token(access_token)
+ self.webhook.set_access_token(access_token)
+ self.webhooks.set_access_token(access_token)
return self
@@ -51,7 +295,52 @@ def set_timeout(self, timeout: int):
:param int timeout: The timeout (ms) to be set.
:return: The SDK instance.
"""
- self.signplus.set_timeout(timeout)
+ self.template_id.set_timeout(timeout)
+ self.signed_documents.set_timeout(timeout)
+ self.certificate.set_timeout(timeout)
+ self.document_id.set_timeout(timeout)
+ self.document.set_timeout(timeout)
+ self.documents.set_timeout(timeout)
+ self.dynamic_fields.set_timeout(timeout)
+ self.signing_steps.set_timeout(timeout)
+ self.settings.set_timeout(timeout)
+ self.placeholders.set_timeout(timeout)
+ self.file_id.set_timeout(timeout)
+ self.send.set_timeout(timeout)
+ self.duplicate.set_timeout(timeout)
+ self.void.set_timeout(timeout)
+ self.rename.set_timeout(timeout)
+ self.set_comment.set_timeout(timeout)
+ self.set_notification.set_timeout(timeout)
+ self.set_expiration_date.set_timeout(timeout)
+ self.set_legality_level.set_timeout(timeout)
+ self.envelope_envelope_id_annotations_document_id.set_timeout(timeout)
+ self.annotations.set_timeout(timeout)
+ self.annotation_id.set_timeout(timeout)
+ self.annotation.set_timeout(timeout)
+ self.envelope_id.set_timeout(timeout)
+ self.envelope.set_timeout(timeout)
+ self.envelopes.set_timeout(timeout)
+ self.template_template_id_duplicate.set_timeout(timeout)
+ self.template_template_id_document_document_id.set_timeout(timeout)
+ self.template_template_id_document.set_timeout(timeout)
+ self.template_template_id_documents.set_timeout(timeout)
+ self.template_template_id_signing_steps.set_timeout(timeout)
+ self.template_template_id_rename.set_timeout(timeout)
+ self.template_template_id_set_comment.set_timeout(timeout)
+ self.template_template_id_set_notification.set_timeout(timeout)
+ self.template_template_id_annotations_document_id.set_timeout(timeout)
+ self.template_template_id_annotations.set_timeout(timeout)
+ self.template_template_id_annotation_annotation_id.set_timeout(timeout)
+ self.template_template_id_annotation.set_timeout(timeout)
+ self.template_template_id_attachments_settings.set_timeout(timeout)
+ self.template_template_id_attachments_placeholders.set_timeout(timeout)
+ self.template_template_id.set_timeout(timeout)
+ self.template.set_timeout(timeout)
+ self.templates.set_timeout(timeout)
+ self.webhook_id.set_timeout(timeout)
+ self.webhook.set_timeout(timeout)
+ self.webhooks.set_timeout(timeout)
return self
diff --git a/src/signplus/sdk_async.py b/src/signplus/sdk_async.py
index aa5d070..05cb153 100644
--- a/src/signplus/sdk_async.py
+++ b/src/signplus/sdk_async.py
@@ -1,7 +1,82 @@
from typing import Union
from .net.environment import Environment
from .sdk import Signplus
-from .services.async_.signplus import SignplusServiceAsync
+from .services.async_.template_id import TemplateIdServiceAsync
+from .services.async_.signed_documents import SignedDocumentsServiceAsync
+from .services.async_.certificate import CertificateServiceAsync
+from .services.async_.document_id import DocumentIdServiceAsync
+from .services.async_.document import DocumentServiceAsync
+from .services.async_.documents import DocumentsServiceAsync
+from .services.async_.dynamic_fields import DynamicFieldsServiceAsync
+from .services.async_.signing_steps import SigningStepsServiceAsync
+from .services.async_.settings import SettingsServiceAsync
+from .services.async_.placeholders import PlaceholdersServiceAsync
+from .services.async_.file_id import FileIdServiceAsync
+from .services.async_.send import SendServiceAsync
+from .services.async_.duplicate import DuplicateServiceAsync
+from .services.async_.void import VoidServiceAsync
+from .services.async_.rename import RenameServiceAsync
+from .services.async_.set_comment import SetCommentServiceAsync
+from .services.async_.set_notification import SetNotificationServiceAsync
+from .services.async_.set_expiration_date import SetExpirationDateServiceAsync
+from .services.async_.set_legality_level import SetLegalityLevelServiceAsync
+from .services.async_.envelope_envelope_id_annotations_document_id import (
+ EnvelopeEnvelopeIdAnnotationsDocumentIdServiceAsync,
+)
+from .services.async_.annotations import AnnotationsServiceAsync
+from .services.async_.annotation_id import AnnotationIdServiceAsync
+from .services.async_.annotation import AnnotationServiceAsync
+from .services.async_.envelope_id import EnvelopeIdServiceAsync
+from .services.async_.envelope import EnvelopeServiceAsync
+from .services.async_.envelopes import EnvelopesServiceAsync
+from .services.async_.template_template_id_duplicate import (
+ TemplateTemplateIdDuplicateServiceAsync,
+)
+from .services.async_.template_template_id_document_document_id import (
+ TemplateTemplateIdDocumentDocumentIdServiceAsync,
+)
+from .services.async_.template_template_id_document import (
+ TemplateTemplateIdDocumentServiceAsync,
+)
+from .services.async_.template_template_id_documents import (
+ TemplateTemplateIdDocumentsServiceAsync,
+)
+from .services.async_.template_template_id_signing_steps import (
+ TemplateTemplateIdSigningStepsServiceAsync,
+)
+from .services.async_.template_template_id_rename import (
+ TemplateTemplateIdRenameServiceAsync,
+)
+from .services.async_.template_template_id_set_comment import (
+ TemplateTemplateIdSetCommentServiceAsync,
+)
+from .services.async_.template_template_id_set_notification import (
+ TemplateTemplateIdSetNotificationServiceAsync,
+)
+from .services.async_.template_template_id_annotations_document_id import (
+ TemplateTemplateIdAnnotationsDocumentIdServiceAsync,
+)
+from .services.async_.template_template_id_annotations import (
+ TemplateTemplateIdAnnotationsServiceAsync,
+)
+from .services.async_.template_template_id_annotation_annotation_id import (
+ TemplateTemplateIdAnnotationAnnotationIdServiceAsync,
+)
+from .services.async_.template_template_id_annotation import (
+ TemplateTemplateIdAnnotationServiceAsync,
+)
+from .services.async_.template_template_id_attachments_settings import (
+ TemplateTemplateIdAttachmentsSettingsServiceAsync,
+)
+from .services.async_.template_template_id_attachments_placeholders import (
+ TemplateTemplateIdAttachmentsPlaceholdersServiceAsync,
+)
+from .services.async_.template_template_id import TemplateTemplateIdServiceAsync
+from .services.async_.template import TemplateServiceAsync
+from .services.async_.templates import TemplatesServiceAsync
+from .services.async_.webhook_id import WebhookIdServiceAsync
+from .services.async_.webhook import WebhookServiceAsync
+from .services.async_.webhooks import WebhooksServiceAsync
class SignplusAsync(Signplus):
@@ -17,4 +92,87 @@ def __init__(
):
super().__init__(access_token=access_token, base_url=base_url, timeout=timeout)
- self.signplus = SignplusServiceAsync(base_url=self._base_url)
+ self.template_id = TemplateIdServiceAsync(base_url=self._base_url)
+ self.signed_documents = SignedDocumentsServiceAsync(base_url=self._base_url)
+ self.certificate = CertificateServiceAsync(base_url=self._base_url)
+ self.document_id = DocumentIdServiceAsync(base_url=self._base_url)
+ self.document = DocumentServiceAsync(base_url=self._base_url)
+ self.documents = DocumentsServiceAsync(base_url=self._base_url)
+ self.dynamic_fields = DynamicFieldsServiceAsync(base_url=self._base_url)
+ self.signing_steps = SigningStepsServiceAsync(base_url=self._base_url)
+ self.settings = SettingsServiceAsync(base_url=self._base_url)
+ self.placeholders = PlaceholdersServiceAsync(base_url=self._base_url)
+ self.file_id = FileIdServiceAsync(base_url=self._base_url)
+ self.send = SendServiceAsync(base_url=self._base_url)
+ self.duplicate = DuplicateServiceAsync(base_url=self._base_url)
+ self.void = VoidServiceAsync(base_url=self._base_url)
+ self.rename = RenameServiceAsync(base_url=self._base_url)
+ self.set_comment = SetCommentServiceAsync(base_url=self._base_url)
+ self.set_notification = SetNotificationServiceAsync(base_url=self._base_url)
+ self.set_expiration_date = SetExpirationDateServiceAsync(
+ base_url=self._base_url
+ )
+ self.set_legality_level = SetLegalityLevelServiceAsync(base_url=self._base_url)
+ self.envelope_envelope_id_annotations_document_id = (
+ EnvelopeEnvelopeIdAnnotationsDocumentIdServiceAsync(base_url=self._base_url)
+ )
+ self.annotations = AnnotationsServiceAsync(base_url=self._base_url)
+ self.annotation_id = AnnotationIdServiceAsync(base_url=self._base_url)
+ self.annotation = AnnotationServiceAsync(base_url=self._base_url)
+ self.envelope_id = EnvelopeIdServiceAsync(base_url=self._base_url)
+ self.envelope = EnvelopeServiceAsync(base_url=self._base_url)
+ self.envelopes = EnvelopesServiceAsync(base_url=self._base_url)
+ self.template_template_id_duplicate = TemplateTemplateIdDuplicateServiceAsync(
+ base_url=self._base_url
+ )
+ self.template_template_id_document_document_id = (
+ TemplateTemplateIdDocumentDocumentIdServiceAsync(base_url=self._base_url)
+ )
+ self.template_template_id_document = TemplateTemplateIdDocumentServiceAsync(
+ base_url=self._base_url
+ )
+ self.template_template_id_documents = TemplateTemplateIdDocumentsServiceAsync(
+ base_url=self._base_url
+ )
+ self.template_template_id_signing_steps = (
+ TemplateTemplateIdSigningStepsServiceAsync(base_url=self._base_url)
+ )
+ self.template_template_id_rename = TemplateTemplateIdRenameServiceAsync(
+ base_url=self._base_url
+ )
+ self.template_template_id_set_comment = (
+ TemplateTemplateIdSetCommentServiceAsync(base_url=self._base_url)
+ )
+ self.template_template_id_set_notification = (
+ TemplateTemplateIdSetNotificationServiceAsync(base_url=self._base_url)
+ )
+ self.template_template_id_annotations_document_id = (
+ TemplateTemplateIdAnnotationsDocumentIdServiceAsync(base_url=self._base_url)
+ )
+ self.template_template_id_annotations = (
+ TemplateTemplateIdAnnotationsServiceAsync(base_url=self._base_url)
+ )
+ self.template_template_id_annotation_annotation_id = (
+ TemplateTemplateIdAnnotationAnnotationIdServiceAsync(
+ base_url=self._base_url
+ )
+ )
+ self.template_template_id_annotation = TemplateTemplateIdAnnotationServiceAsync(
+ base_url=self._base_url
+ )
+ self.template_template_id_attachments_settings = (
+ TemplateTemplateIdAttachmentsSettingsServiceAsync(base_url=self._base_url)
+ )
+ self.template_template_id_attachments_placeholders = (
+ TemplateTemplateIdAttachmentsPlaceholdersServiceAsync(
+ base_url=self._base_url
+ )
+ )
+ self.template_template_id = TemplateTemplateIdServiceAsync(
+ base_url=self._base_url
+ )
+ self.template = TemplateServiceAsync(base_url=self._base_url)
+ self.templates = TemplatesServiceAsync(base_url=self._base_url)
+ self.webhook_id = WebhookIdServiceAsync(base_url=self._base_url)
+ self.webhook = WebhookServiceAsync(base_url=self._base_url)
+ self.webhooks = WebhooksServiceAsync(base_url=self._base_url)
diff --git a/src/signplus/services/annotation.py b/src/signplus/services/annotation.py
new file mode 100644
index 0000000..4388a0d
--- /dev/null
+++ b/src/signplus/services/annotation.py
@@ -0,0 +1,81 @@
+from typing import Any, Optional, Union
+from .utils.validator import Validator
+from .utils.base_service import BaseService
+from ..net.transport.serializer import Serializer
+from ..net.sdk_config import SdkConfig
+from ..net.environment.environment import Environment
+from ..models.utils.cast_models import cast_models
+from ..models import AddEnvelopeAnnotationRequest
+
+
+class AnnotationService(BaseService):
+ """
+ Service class for AnnotationService operations.
+ Provides methods to interact with AnnotationService-related API endpoints.
+ Inherits common functionality from BaseService including authentication and request handling.
+ """
+
+ def __init__(self, *args, **kwargs):
+ """Initialize the service and method-level configurations."""
+ super().__init__(*args, **kwargs)
+ self._add_envelope_annotation_config: SdkConfig = {
+ "environment": Environment.RESTAPI
+ }
+
+ def set_add_envelope_annotation_config(self, config: SdkConfig):
+ """
+ Sets method-level configuration for add_envelope_annotation.
+
+ :param SdkConfig config: Configuration dictionary to override service-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._add_envelope_annotation_config = config
+ return self
+
+ @cast_models
+ def add_envelope_annotation(
+ self,
+ request_body: AddEnvelopeAnnotationRequest,
+ envelope_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Any:
+ """Add envelope annotation
+
+ :param request_body: The request body.
+ :type request_body: AddEnvelopeAnnotationRequest
+ :param envelope_id: envelope_id
+ :type envelope_id: str
+ :param accept: accept
+ :type accept: str
+ ...
+ :raises RequestError: Raised when a request fails, with optional HTTP status code and details.
+ ...
+ :return: The parsed response data.
+ :rtype: Any
+ """
+
+ Validator(AddEnvelopeAnnotationRequest).is_nullable().validate(request_body)
+ Validator(str).validate(envelope_id)
+ Validator(str).is_nullable().validate(accept)
+
+ resolved_config = self._get_resolved_config(
+ self._add_envelope_annotation_config, request_config
+ )
+
+ serialized_request = (
+ Serializer(
+ f"{resolved_config.get('base_url') or self.base_url or Environment.RESTAPI.url or Environment.DEFAULT.url}/envelope/{{envelope_id}}/annotation",
+ [self.get_access_token(resolved_config)],
+ resolved_config,
+ )
+ .add_header("Accept", accept)
+ .add_path("envelope_id", envelope_id)
+ .serialize()
+ .set_method("POST")
+ .set_body(request_body)
+ )
+
+ response, _, _ = self.send_request(serialized_request)
+ return response
diff --git a/src/signplus/services/annotation_id.py b/src/signplus/services/annotation_id.py
new file mode 100644
index 0000000..9517d80
--- /dev/null
+++ b/src/signplus/services/annotation_id.py
@@ -0,0 +1,75 @@
+from typing import Any, Optional
+from .utils.validator import Validator
+from .utils.base_service import BaseService
+from ..net.transport.serializer import Serializer
+from ..net.sdk_config import SdkConfig
+from ..net.environment.environment import Environment
+from ..models.utils.cast_models import cast_models
+
+
+class AnnotationIdService(BaseService):
+ """
+ Service class for AnnotationIdService operations.
+ Provides methods to interact with AnnotationIdService-related API endpoints.
+ Inherits common functionality from BaseService including authentication and request handling.
+ """
+
+ def __init__(self, *args, **kwargs):
+ """Initialize the service and method-level configurations."""
+ super().__init__(*args, **kwargs)
+ self._delete_envelope_annotation_config: SdkConfig = {
+ "environment": Environment.RESTAPI
+ }
+
+ def set_delete_envelope_annotation_config(self, config: SdkConfig):
+ """
+ Sets method-level configuration for delete_envelope_annotation.
+
+ :param SdkConfig config: Configuration dictionary to override service-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._delete_envelope_annotation_config = config
+ return self
+
+ @cast_models
+ def delete_envelope_annotation(
+ self,
+ envelope_id: str,
+ annotation_id: str,
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Any:
+ """Delete envelope annotation
+
+ :param envelope_id: envelope_id
+ :type envelope_id: str
+ :param annotation_id: annotation_id
+ :type annotation_id: str
+ ...
+ :raises RequestError: Raised when a request fails, with optional HTTP status code and details.
+ ...
+ :return: The parsed response data.
+ :rtype: Any
+ """
+
+ Validator(str).validate(envelope_id)
+ Validator(str).validate(annotation_id)
+
+ resolved_config = self._get_resolved_config(
+ self._delete_envelope_annotation_config, request_config
+ )
+
+ serialized_request = (
+ Serializer(
+ f"{resolved_config.get('base_url') or self.base_url or Environment.RESTAPI.url or Environment.DEFAULT.url}/envelope/{{envelope_id}}/annotation/{{annotation_id}}",
+ [self.get_access_token(resolved_config)],
+ resolved_config,
+ )
+ .add_path("envelope_id", envelope_id)
+ .add_path("annotation_id", annotation_id)
+ .serialize()
+ .set_method("DELETE")
+ )
+
+ response, _, _ = self.send_request(serialized_request)
+ return response
diff --git a/src/signplus/services/annotations.py b/src/signplus/services/annotations.py
new file mode 100644
index 0000000..ce84f74
--- /dev/null
+++ b/src/signplus/services/annotations.py
@@ -0,0 +1,75 @@
+from typing import Any, Optional, Union
+from .utils.validator import Validator
+from .utils.base_service import BaseService
+from ..net.transport.serializer import Serializer
+from ..net.sdk_config import SdkConfig
+from ..net.environment.environment import Environment
+from ..models.utils.cast_models import cast_models
+
+
+class AnnotationsService(BaseService):
+ """
+ Service class for AnnotationsService operations.
+ Provides methods to interact with AnnotationsService-related API endpoints.
+ Inherits common functionality from BaseService including authentication and request handling.
+ """
+
+ def __init__(self, *args, **kwargs):
+ """Initialize the service and method-level configurations."""
+ super().__init__(*args, **kwargs)
+ self._get_envelope_annotations_config: SdkConfig = {
+ "environment": Environment.RESTAPI
+ }
+
+ def set_get_envelope_annotations_config(self, config: SdkConfig):
+ """
+ Sets method-level configuration for get_envelope_annotations.
+
+ :param SdkConfig config: Configuration dictionary to override service-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._get_envelope_annotations_config = config
+ return self
+
+ @cast_models
+ def get_envelope_annotations(
+ self,
+ envelope_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Any:
+ """Get envelope annotations
+
+ :param envelope_id: envelope_id
+ :type envelope_id: str
+ :param accept: accept
+ :type accept: str
+ ...
+ :raises RequestError: Raised when a request fails, with optional HTTP status code and details.
+ ...
+ :return: The parsed response data.
+ :rtype: Any
+ """
+
+ Validator(str).validate(envelope_id)
+ Validator(str).is_nullable().validate(accept)
+
+ resolved_config = self._get_resolved_config(
+ self._get_envelope_annotations_config, request_config
+ )
+
+ serialized_request = (
+ Serializer(
+ f"{resolved_config.get('base_url') or self.base_url or Environment.RESTAPI.url or Environment.DEFAULT.url}/envelope/{{envelope_id}}/annotations",
+ [self.get_access_token(resolved_config)],
+ resolved_config,
+ )
+ .add_header("Accept", accept)
+ .add_path("envelope_id", envelope_id)
+ .serialize()
+ .set_method("GET")
+ )
+
+ response, _, _ = self.send_request(serialized_request)
+ return response
diff --git a/src/signplus/services/async_/annotation.py b/src/signplus/services/async_/annotation.py
new file mode 100644
index 0000000..55b53bc
--- /dev/null
+++ b/src/signplus/services/async_/annotation.py
@@ -0,0 +1,23 @@
+from typing import Awaitable, Optional, Any, Union
+from .utils.to_async import to_async
+from ..annotation import AnnotationService
+from ...net.sdk_config import SdkConfig
+from ...models import AddEnvelopeAnnotationRequest
+
+
+class AnnotationServiceAsync(AnnotationService):
+ """
+ Async Wrapper for AnnotationServiceAsync
+ """
+
+ def add_envelope_annotation(
+ self,
+ request_body: AddEnvelopeAnnotationRequest,
+ envelope_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Awaitable[Any]:
+ return to_async(super().add_envelope_annotation)(
+ request_body, envelope_id, accept, request_config=request_config
+ )
diff --git a/src/signplus/services/async_/annotation_id.py b/src/signplus/services/async_/annotation_id.py
new file mode 100644
index 0000000..1ef0b4b
--- /dev/null
+++ b/src/signplus/services/async_/annotation_id.py
@@ -0,0 +1,21 @@
+from typing import Awaitable, Optional, Any
+from .utils.to_async import to_async
+from ..annotation_id import AnnotationIdService
+from ...net.sdk_config import SdkConfig
+
+
+class AnnotationIdServiceAsync(AnnotationIdService):
+ """
+ Async Wrapper for AnnotationIdServiceAsync
+ """
+
+ def delete_envelope_annotation(
+ self,
+ envelope_id: str,
+ annotation_id: str,
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Awaitable[Any]:
+ return to_async(super().delete_envelope_annotation)(
+ envelope_id, annotation_id, request_config=request_config
+ )
diff --git a/src/signplus/services/async_/annotations.py b/src/signplus/services/async_/annotations.py
new file mode 100644
index 0000000..e0cd5ed
--- /dev/null
+++ b/src/signplus/services/async_/annotations.py
@@ -0,0 +1,21 @@
+from typing import Awaitable, Optional, Any, Union
+from .utils.to_async import to_async
+from ..annotations import AnnotationsService
+from ...net.sdk_config import SdkConfig
+
+
+class AnnotationsServiceAsync(AnnotationsService):
+ """
+ Async Wrapper for AnnotationsServiceAsync
+ """
+
+ def get_envelope_annotations(
+ self,
+ envelope_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Awaitable[Any]:
+ return to_async(super().get_envelope_annotations)(
+ envelope_id, accept, request_config=request_config
+ )
diff --git a/src/signplus/services/async_/certificate.py b/src/signplus/services/async_/certificate.py
new file mode 100644
index 0000000..e65c66e
--- /dev/null
+++ b/src/signplus/services/async_/certificate.py
@@ -0,0 +1,21 @@
+from typing import Awaitable, Optional, Any, Union
+from .utils.to_async import to_async
+from ..certificate import CertificateService
+from ...net.sdk_config import SdkConfig
+
+
+class CertificateServiceAsync(CertificateService):
+ """
+ Async Wrapper for CertificateServiceAsync
+ """
+
+ def download_envelope_certificate(
+ self,
+ envelope_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Awaitable[Any]:
+ return to_async(super().download_envelope_certificate)(
+ envelope_id, accept, request_config=request_config
+ )
diff --git a/src/signplus/services/async_/document.py b/src/signplus/services/async_/document.py
new file mode 100644
index 0000000..30d1c7a
--- /dev/null
+++ b/src/signplus/services/async_/document.py
@@ -0,0 +1,23 @@
+from typing import Awaitable, Optional, Any, Union
+from .utils.to_async import to_async
+from ..document import DocumentService
+from ...net.sdk_config import SdkConfig
+from ...models import AddEnvelopeDocumentRequest
+
+
+class DocumentServiceAsync(DocumentService):
+ """
+ Async Wrapper for DocumentServiceAsync
+ """
+
+ def add_envelope_document(
+ self,
+ request_body: AddEnvelopeDocumentRequest,
+ envelope_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Awaitable[Any]:
+ return to_async(super().add_envelope_document)(
+ request_body, envelope_id, accept, request_config=request_config
+ )
diff --git a/src/signplus/services/async_/document_id.py b/src/signplus/services/async_/document_id.py
new file mode 100644
index 0000000..66f7e5d
--- /dev/null
+++ b/src/signplus/services/async_/document_id.py
@@ -0,0 +1,22 @@
+from typing import Awaitable, Optional, Any, Union
+from .utils.to_async import to_async
+from ..document_id import DocumentIdService
+from ...net.sdk_config import SdkConfig
+
+
+class DocumentIdServiceAsync(DocumentIdService):
+ """
+ Async Wrapper for DocumentIdServiceAsync
+ """
+
+ def get_envelope_document(
+ self,
+ envelope_id: str,
+ document_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Awaitable[Any]:
+ return to_async(super().get_envelope_document)(
+ envelope_id, document_id, accept, request_config=request_config
+ )
diff --git a/src/signplus/services/async_/documents.py b/src/signplus/services/async_/documents.py
new file mode 100644
index 0000000..079816a
--- /dev/null
+++ b/src/signplus/services/async_/documents.py
@@ -0,0 +1,21 @@
+from typing import Awaitable, Optional, Any, Union
+from .utils.to_async import to_async
+from ..documents import DocumentsService
+from ...net.sdk_config import SdkConfig
+
+
+class DocumentsServiceAsync(DocumentsService):
+ """
+ Async Wrapper for DocumentsServiceAsync
+ """
+
+ def get_envelope_documents(
+ self,
+ envelope_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Awaitable[Any]:
+ return to_async(super().get_envelope_documents)(
+ envelope_id, accept, request_config=request_config
+ )
diff --git a/src/signplus/services/async_/duplicate.py b/src/signplus/services/async_/duplicate.py
new file mode 100644
index 0000000..86d8ab2
--- /dev/null
+++ b/src/signplus/services/async_/duplicate.py
@@ -0,0 +1,21 @@
+from typing import Awaitable, Optional, Any, Union
+from .utils.to_async import to_async
+from ..duplicate import DuplicateService
+from ...net.sdk_config import SdkConfig
+
+
+class DuplicateServiceAsync(DuplicateService):
+ """
+ Async Wrapper for DuplicateServiceAsync
+ """
+
+ def duplicate_envelope(
+ self,
+ envelope_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Awaitable[Any]:
+ return to_async(super().duplicate_envelope)(
+ envelope_id, accept, request_config=request_config
+ )
diff --git a/src/signplus/services/async_/dynamic_fields.py b/src/signplus/services/async_/dynamic_fields.py
new file mode 100644
index 0000000..3d536fc
--- /dev/null
+++ b/src/signplus/services/async_/dynamic_fields.py
@@ -0,0 +1,23 @@
+from typing import Awaitable, Optional, Any, Union
+from .utils.to_async import to_async
+from ..dynamic_fields import DynamicFieldsService
+from ...net.sdk_config import SdkConfig
+from ...models import SetEnvelopeDynamicFieldsRequest
+
+
+class DynamicFieldsServiceAsync(DynamicFieldsService):
+ """
+ Async Wrapper for DynamicFieldsServiceAsync
+ """
+
+ def set_envelope_dynamic_fields(
+ self,
+ request_body: SetEnvelopeDynamicFieldsRequest,
+ envelope_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Awaitable[Any]:
+ return to_async(super().set_envelope_dynamic_fields)(
+ request_body, envelope_id, accept, request_config=request_config
+ )
diff --git a/src/signplus/services/async_/envelope.py b/src/signplus/services/async_/envelope.py
new file mode 100644
index 0000000..721c78c
--- /dev/null
+++ b/src/signplus/services/async_/envelope.py
@@ -0,0 +1,22 @@
+from typing import Awaitable, Optional, Any, Union
+from .utils.to_async import to_async
+from ..envelope import EnvelopeService
+from ...net.sdk_config import SdkConfig
+from ...models import CreateEnvelopeRequest
+
+
+class EnvelopeServiceAsync(EnvelopeService):
+ """
+ Async Wrapper for EnvelopeServiceAsync
+ """
+
+ def create_envelope(
+ self,
+ request_body: CreateEnvelopeRequest,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Awaitable[Any]:
+ return to_async(super().create_envelope)(
+ request_body, accept, request_config=request_config
+ )
diff --git a/src/signplus/services/async_/envelope_envelope_id_annotations_document_id.py b/src/signplus/services/async_/envelope_envelope_id_annotations_document_id.py
new file mode 100644
index 0000000..acafb1a
--- /dev/null
+++ b/src/signplus/services/async_/envelope_envelope_id_annotations_document_id.py
@@ -0,0 +1,26 @@
+from typing import Awaitable, Optional, Any, Union
+from .utils.to_async import to_async
+from ..envelope_envelope_id_annotations_document_id import (
+ EnvelopeEnvelopeIdAnnotationsDocumentIdService,
+)
+from ...net.sdk_config import SdkConfig
+
+
+class EnvelopeEnvelopeIdAnnotationsDocumentIdServiceAsync(
+ EnvelopeEnvelopeIdAnnotationsDocumentIdService
+):
+ """
+ Async Wrapper for EnvelopeEnvelopeIdAnnotationsDocumentIdServiceAsync
+ """
+
+ def get_envelope_document_annotations(
+ self,
+ envelope_id: str,
+ document_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Awaitable[Any]:
+ return to_async(super().get_envelope_document_annotations)(
+ envelope_id, document_id, accept, request_config=request_config
+ )
diff --git a/src/signplus/services/async_/envelope_id.py b/src/signplus/services/async_/envelope_id.py
new file mode 100644
index 0000000..8ed5a3e
--- /dev/null
+++ b/src/signplus/services/async_/envelope_id.py
@@ -0,0 +1,28 @@
+from typing import Awaitable, Optional, Any, Union
+from .utils.to_async import to_async
+from ..envelope_id import EnvelopeIdService
+from ...net.sdk_config import SdkConfig
+
+
+class EnvelopeIdServiceAsync(EnvelopeIdService):
+ """
+ Async Wrapper for EnvelopeIdServiceAsync
+ """
+
+ def get_envelope(
+ self,
+ envelope_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Awaitable[Any]:
+ return to_async(super().get_envelope)(
+ envelope_id, accept, request_config=request_config
+ )
+
+ def delete_envelope(
+ self, envelope_id: str, *, request_config: Optional[SdkConfig] = None
+ ) -> Awaitable[Any]:
+ return to_async(super().delete_envelope)(
+ envelope_id, request_config=request_config
+ )
diff --git a/src/signplus/services/async_/envelopes.py b/src/signplus/services/async_/envelopes.py
new file mode 100644
index 0000000..4db4232
--- /dev/null
+++ b/src/signplus/services/async_/envelopes.py
@@ -0,0 +1,22 @@
+from typing import Awaitable, Optional, Any, Union
+from .utils.to_async import to_async
+from ..envelopes import EnvelopesService
+from ...net.sdk_config import SdkConfig
+from ...models import ListEnvelopesRequest
+
+
+class EnvelopesServiceAsync(EnvelopesService):
+ """
+ Async Wrapper for EnvelopesServiceAsync
+ """
+
+ def list_envelopes(
+ self,
+ request_body: ListEnvelopesRequest,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Awaitable[Any]:
+ return to_async(super().list_envelopes)(
+ request_body, accept, request_config=request_config
+ )
diff --git a/src/signplus/services/async_/file_id.py b/src/signplus/services/async_/file_id.py
new file mode 100644
index 0000000..0e9036f
--- /dev/null
+++ b/src/signplus/services/async_/file_id.py
@@ -0,0 +1,22 @@
+from typing import Awaitable, Optional, Any, Union
+from .utils.to_async import to_async
+from ..file_id import FileIdService
+from ...net.sdk_config import SdkConfig
+
+
+class FileIdServiceAsync(FileIdService):
+ """
+ Async Wrapper for FileIdServiceAsync
+ """
+
+ def get_attachment_file(
+ self,
+ envelope_id: str,
+ file_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Awaitable[Any]:
+ return to_async(super().get_attachment_file)(
+ envelope_id, file_id, accept, request_config=request_config
+ )
diff --git a/src/signplus/services/async_/placeholders.py b/src/signplus/services/async_/placeholders.py
new file mode 100644
index 0000000..afb07cd
--- /dev/null
+++ b/src/signplus/services/async_/placeholders.py
@@ -0,0 +1,23 @@
+from typing import Awaitable, Optional, Any, Union
+from .utils.to_async import to_async
+from ..placeholders import PlaceholdersService
+from ...net.sdk_config import SdkConfig
+from ...models import SetEnvelopeAttachmentsPlaceholdersRequest
+
+
+class PlaceholdersServiceAsync(PlaceholdersService):
+ """
+ Async Wrapper for PlaceholdersServiceAsync
+ """
+
+ def set_envelope_attachments_placeholders(
+ self,
+ request_body: SetEnvelopeAttachmentsPlaceholdersRequest,
+ envelope_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Awaitable[Any]:
+ return to_async(super().set_envelope_attachments_placeholders)(
+ request_body, envelope_id, accept, request_config=request_config
+ )
diff --git a/src/signplus/services/async_/rename.py b/src/signplus/services/async_/rename.py
new file mode 100644
index 0000000..0803635
--- /dev/null
+++ b/src/signplus/services/async_/rename.py
@@ -0,0 +1,23 @@
+from typing import Awaitable, Optional, Any, Union
+from .utils.to_async import to_async
+from ..rename import RenameService
+from ...net.sdk_config import SdkConfig
+from ...models import RenameEnvelopeRequest
+
+
+class RenameServiceAsync(RenameService):
+ """
+ Async Wrapper for RenameServiceAsync
+ """
+
+ def rename_envelope(
+ self,
+ request_body: RenameEnvelopeRequest,
+ envelope_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Awaitable[Any]:
+ return to_async(super().rename_envelope)(
+ request_body, envelope_id, accept, request_config=request_config
+ )
diff --git a/src/signplus/services/async_/send.py b/src/signplus/services/async_/send.py
new file mode 100644
index 0000000..64e9153
--- /dev/null
+++ b/src/signplus/services/async_/send.py
@@ -0,0 +1,21 @@
+from typing import Awaitable, Optional, Any, Union
+from .utils.to_async import to_async
+from ..send import SendService
+from ...net.sdk_config import SdkConfig
+
+
+class SendServiceAsync(SendService):
+ """
+ Async Wrapper for SendServiceAsync
+ """
+
+ def send_envelope(
+ self,
+ envelope_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Awaitable[Any]:
+ return to_async(super().send_envelope)(
+ envelope_id, accept, request_config=request_config
+ )
diff --git a/src/signplus/services/async_/set_comment.py b/src/signplus/services/async_/set_comment.py
new file mode 100644
index 0000000..7f7e021
--- /dev/null
+++ b/src/signplus/services/async_/set_comment.py
@@ -0,0 +1,23 @@
+from typing import Awaitable, Optional, Any, Union
+from .utils.to_async import to_async
+from ..set_comment import SetCommentService
+from ...net.sdk_config import SdkConfig
+from ...models import SetEnvelopeCommentRequest
+
+
+class SetCommentServiceAsync(SetCommentService):
+ """
+ Async Wrapper for SetCommentServiceAsync
+ """
+
+ def set_envelope_comment(
+ self,
+ request_body: SetEnvelopeCommentRequest,
+ envelope_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Awaitable[Any]:
+ return to_async(super().set_envelope_comment)(
+ request_body, envelope_id, accept, request_config=request_config
+ )
diff --git a/src/signplus/services/async_/set_expiration_date.py b/src/signplus/services/async_/set_expiration_date.py
new file mode 100644
index 0000000..94e0cb6
--- /dev/null
+++ b/src/signplus/services/async_/set_expiration_date.py
@@ -0,0 +1,23 @@
+from typing import Awaitable, Optional, Any, Union
+from .utils.to_async import to_async
+from ..set_expiration_date import SetExpirationDateService
+from ...net.sdk_config import SdkConfig
+from ...models import SetEnvelopeExpirationDateRequest
+
+
+class SetExpirationDateServiceAsync(SetExpirationDateService):
+ """
+ Async Wrapper for SetExpirationDateServiceAsync
+ """
+
+ def set_envelope_expiration_date(
+ self,
+ request_body: SetEnvelopeExpirationDateRequest,
+ envelope_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Awaitable[Any]:
+ return to_async(super().set_envelope_expiration_date)(
+ request_body, envelope_id, accept, request_config=request_config
+ )
diff --git a/src/signplus/services/async_/set_legality_level.py b/src/signplus/services/async_/set_legality_level.py
new file mode 100644
index 0000000..e706fd1
--- /dev/null
+++ b/src/signplus/services/async_/set_legality_level.py
@@ -0,0 +1,23 @@
+from typing import Awaitable, Optional, Any, Union
+from .utils.to_async import to_async
+from ..set_legality_level import SetLegalityLevelService
+from ...net.sdk_config import SdkConfig
+from ...models import SetEnvelopeLegalityLevelRequest
+
+
+class SetLegalityLevelServiceAsync(SetLegalityLevelService):
+ """
+ Async Wrapper for SetLegalityLevelServiceAsync
+ """
+
+ def set_envelope_legality_level(
+ self,
+ request_body: SetEnvelopeLegalityLevelRequest,
+ envelope_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Awaitable[Any]:
+ return to_async(super().set_envelope_legality_level)(
+ request_body, envelope_id, accept, request_config=request_config
+ )
diff --git a/src/signplus/services/async_/set_notification.py b/src/signplus/services/async_/set_notification.py
new file mode 100644
index 0000000..2f207e5
--- /dev/null
+++ b/src/signplus/services/async_/set_notification.py
@@ -0,0 +1,23 @@
+from typing import Awaitable, Optional, Any, Union
+from .utils.to_async import to_async
+from ..set_notification import SetNotificationService
+from ...net.sdk_config import SdkConfig
+from ...models import SetEnvelopeNotificationRequest
+
+
+class SetNotificationServiceAsync(SetNotificationService):
+ """
+ Async Wrapper for SetNotificationServiceAsync
+ """
+
+ def set_envelope_notification(
+ self,
+ request_body: SetEnvelopeNotificationRequest,
+ envelope_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Awaitable[Any]:
+ return to_async(super().set_envelope_notification)(
+ request_body, envelope_id, accept, request_config=request_config
+ )
diff --git a/src/signplus/services/async_/settings.py b/src/signplus/services/async_/settings.py
new file mode 100644
index 0000000..accfa64
--- /dev/null
+++ b/src/signplus/services/async_/settings.py
@@ -0,0 +1,23 @@
+from typing import Awaitable, Optional, Any, Union
+from .utils.to_async import to_async
+from ..settings import SettingsService
+from ...net.sdk_config import SdkConfig
+from ...models import SetEnvelopeAttachmentsSettingsRequest
+
+
+class SettingsServiceAsync(SettingsService):
+ """
+ Async Wrapper for SettingsServiceAsync
+ """
+
+ def set_envelope_attachments_settings(
+ self,
+ request_body: SetEnvelopeAttachmentsSettingsRequest,
+ envelope_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Awaitable[Any]:
+ return to_async(super().set_envelope_attachments_settings)(
+ request_body, envelope_id, accept, request_config=request_config
+ )
diff --git a/src/signplus/services/async_/signed_documents.py b/src/signplus/services/async_/signed_documents.py
new file mode 100644
index 0000000..910ea73
--- /dev/null
+++ b/src/signplus/services/async_/signed_documents.py
@@ -0,0 +1,26 @@
+from typing import Awaitable, Optional, Any, Union
+from .utils.to_async import to_async
+from ..signed_documents import SignedDocumentsService
+from ...net.sdk_config import SdkConfig
+from ...models.utils.sentinel import SENTINEL
+
+
+class SignedDocumentsServiceAsync(SignedDocumentsService):
+ """
+ Async Wrapper for SignedDocumentsServiceAsync
+ """
+
+ def download_envelope_signed_documents(
+ self,
+ envelope_id: str,
+ accept: Union[str, None],
+ certificate_of_completion: Union[str, None] = SENTINEL,
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Awaitable[Any]:
+ return to_async(super().download_envelope_signed_documents)(
+ envelope_id,
+ accept,
+ certificate_of_completion,
+ request_config=request_config,
+ )
diff --git a/src/signplus/services/async_/signing_steps.py b/src/signplus/services/async_/signing_steps.py
new file mode 100644
index 0000000..d1235e9
--- /dev/null
+++ b/src/signplus/services/async_/signing_steps.py
@@ -0,0 +1,23 @@
+from typing import Awaitable, Optional, Any, Union
+from .utils.to_async import to_async
+from ..signing_steps import SigningStepsService
+from ...net.sdk_config import SdkConfig
+from ...models import AddEnvelopeSigningStepsRequest
+
+
+class SigningStepsServiceAsync(SigningStepsService):
+ """
+ Async Wrapper for SigningStepsServiceAsync
+ """
+
+ def add_envelope_signing_steps(
+ self,
+ request_body: AddEnvelopeSigningStepsRequest,
+ envelope_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Awaitable[Any]:
+ return to_async(super().add_envelope_signing_steps)(
+ request_body, envelope_id, accept, request_config=request_config
+ )
diff --git a/src/signplus/services/async_/template.py b/src/signplus/services/async_/template.py
new file mode 100644
index 0000000..6b25175
--- /dev/null
+++ b/src/signplus/services/async_/template.py
@@ -0,0 +1,22 @@
+from typing import Awaitable, Optional, Any, Union
+from .utils.to_async import to_async
+from ..template import TemplateService
+from ...net.sdk_config import SdkConfig
+from ...models import CreateTemplateRequest
+
+
+class TemplateServiceAsync(TemplateService):
+ """
+ Async Wrapper for TemplateServiceAsync
+ """
+
+ def create_template(
+ self,
+ request_body: CreateTemplateRequest,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Awaitable[Any]:
+ return to_async(super().create_template)(
+ request_body, accept, request_config=request_config
+ )
diff --git a/src/signplus/services/async_/template_id.py b/src/signplus/services/async_/template_id.py
new file mode 100644
index 0000000..9d42138
--- /dev/null
+++ b/src/signplus/services/async_/template_id.py
@@ -0,0 +1,23 @@
+from typing import Awaitable, Optional, Any, Union
+from .utils.to_async import to_async
+from ..template_id import TemplateIdService
+from ...net.sdk_config import SdkConfig
+from ...models import CreateEnvelopeFromTemplateRequest
+
+
+class TemplateIdServiceAsync(TemplateIdService):
+ """
+ Async Wrapper for TemplateIdServiceAsync
+ """
+
+ def create_envelope_from_template(
+ self,
+ request_body: CreateEnvelopeFromTemplateRequest,
+ template_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Awaitable[Any]:
+ return to_async(super().create_envelope_from_template)(
+ request_body, template_id, accept, request_config=request_config
+ )
diff --git a/src/signplus/services/async_/template_template_id.py b/src/signplus/services/async_/template_template_id.py
new file mode 100644
index 0000000..178541c
--- /dev/null
+++ b/src/signplus/services/async_/template_template_id.py
@@ -0,0 +1,28 @@
+from typing import Awaitable, Optional, Any, Union
+from .utils.to_async import to_async
+from ..template_template_id import TemplateTemplateIdService
+from ...net.sdk_config import SdkConfig
+
+
+class TemplateTemplateIdServiceAsync(TemplateTemplateIdService):
+ """
+ Async Wrapper for TemplateTemplateIdServiceAsync
+ """
+
+ def get_template(
+ self,
+ template_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Awaitable[Any]:
+ return to_async(super().get_template)(
+ template_id, accept, request_config=request_config
+ )
+
+ def delete_template(
+ self, template_id: str, *, request_config: Optional[SdkConfig] = None
+ ) -> Awaitable[Any]:
+ return to_async(super().delete_template)(
+ template_id, request_config=request_config
+ )
diff --git a/src/signplus/services/async_/template_template_id_annotation.py b/src/signplus/services/async_/template_template_id_annotation.py
new file mode 100644
index 0000000..7ba1927
--- /dev/null
+++ b/src/signplus/services/async_/template_template_id_annotation.py
@@ -0,0 +1,23 @@
+from typing import Awaitable, Optional, Any, Union
+from .utils.to_async import to_async
+from ..template_template_id_annotation import TemplateTemplateIdAnnotationService
+from ...net.sdk_config import SdkConfig
+from ...models import AddTemplateAnnotationRequest
+
+
+class TemplateTemplateIdAnnotationServiceAsync(TemplateTemplateIdAnnotationService):
+ """
+ Async Wrapper for TemplateTemplateIdAnnotationServiceAsync
+ """
+
+ def add_template_annotation(
+ self,
+ request_body: AddTemplateAnnotationRequest,
+ template_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Awaitable[Any]:
+ return to_async(super().add_template_annotation)(
+ request_body, template_id, accept, request_config=request_config
+ )
diff --git a/src/signplus/services/async_/template_template_id_annotation_annotation_id.py b/src/signplus/services/async_/template_template_id_annotation_annotation_id.py
new file mode 100644
index 0000000..03bb37d
--- /dev/null
+++ b/src/signplus/services/async_/template_template_id_annotation_annotation_id.py
@@ -0,0 +1,25 @@
+from typing import Awaitable, Optional, Any
+from .utils.to_async import to_async
+from ..template_template_id_annotation_annotation_id import (
+ TemplateTemplateIdAnnotationAnnotationIdService,
+)
+from ...net.sdk_config import SdkConfig
+
+
+class TemplateTemplateIdAnnotationAnnotationIdServiceAsync(
+ TemplateTemplateIdAnnotationAnnotationIdService
+):
+ """
+ Async Wrapper for TemplateTemplateIdAnnotationAnnotationIdServiceAsync
+ """
+
+ def delete_template_annotation(
+ self,
+ template_id: str,
+ annotation_id: str,
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Awaitable[Any]:
+ return to_async(super().delete_template_annotation)(
+ template_id, annotation_id, request_config=request_config
+ )
diff --git a/src/signplus/services/async_/template_template_id_annotations.py b/src/signplus/services/async_/template_template_id_annotations.py
new file mode 100644
index 0000000..3f7a8b8
--- /dev/null
+++ b/src/signplus/services/async_/template_template_id_annotations.py
@@ -0,0 +1,21 @@
+from typing import Awaitable, Optional, Any, Union
+from .utils.to_async import to_async
+from ..template_template_id_annotations import TemplateTemplateIdAnnotationsService
+from ...net.sdk_config import SdkConfig
+
+
+class TemplateTemplateIdAnnotationsServiceAsync(TemplateTemplateIdAnnotationsService):
+ """
+ Async Wrapper for TemplateTemplateIdAnnotationsServiceAsync
+ """
+
+ def get_template_annotations(
+ self,
+ template_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Awaitable[Any]:
+ return to_async(super().get_template_annotations)(
+ template_id, accept, request_config=request_config
+ )
diff --git a/src/signplus/services/async_/template_template_id_annotations_document_id.py b/src/signplus/services/async_/template_template_id_annotations_document_id.py
new file mode 100644
index 0000000..5e7109b
--- /dev/null
+++ b/src/signplus/services/async_/template_template_id_annotations_document_id.py
@@ -0,0 +1,26 @@
+from typing import Awaitable, Optional, Any, Union
+from .utils.to_async import to_async
+from ..template_template_id_annotations_document_id import (
+ TemplateTemplateIdAnnotationsDocumentIdService,
+)
+from ...net.sdk_config import SdkConfig
+
+
+class TemplateTemplateIdAnnotationsDocumentIdServiceAsync(
+ TemplateTemplateIdAnnotationsDocumentIdService
+):
+ """
+ Async Wrapper for TemplateTemplateIdAnnotationsDocumentIdServiceAsync
+ """
+
+ def get_document_template_annotations(
+ self,
+ template_id: str,
+ document_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Awaitable[Any]:
+ return to_async(super().get_document_template_annotations)(
+ template_id, document_id, accept, request_config=request_config
+ )
diff --git a/src/signplus/services/async_/template_template_id_attachments_placeholders.py b/src/signplus/services/async_/template_template_id_attachments_placeholders.py
new file mode 100644
index 0000000..b3cc028
--- /dev/null
+++ b/src/signplus/services/async_/template_template_id_attachments_placeholders.py
@@ -0,0 +1,27 @@
+from typing import Awaitable, Optional, Any, Union
+from .utils.to_async import to_async
+from ..template_template_id_attachments_placeholders import (
+ TemplateTemplateIdAttachmentsPlaceholdersService,
+)
+from ...net.sdk_config import SdkConfig
+from ...models import SetTemplateAttachmentsPlaceholdersRequest
+
+
+class TemplateTemplateIdAttachmentsPlaceholdersServiceAsync(
+ TemplateTemplateIdAttachmentsPlaceholdersService
+):
+ """
+ Async Wrapper for TemplateTemplateIdAttachmentsPlaceholdersServiceAsync
+ """
+
+ def set_template_attachments_placeholders(
+ self,
+ request_body: SetTemplateAttachmentsPlaceholdersRequest,
+ template_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Awaitable[Any]:
+ return to_async(super().set_template_attachments_placeholders)(
+ request_body, template_id, accept, request_config=request_config
+ )
diff --git a/src/signplus/services/async_/template_template_id_attachments_settings.py b/src/signplus/services/async_/template_template_id_attachments_settings.py
new file mode 100644
index 0000000..95b3282
--- /dev/null
+++ b/src/signplus/services/async_/template_template_id_attachments_settings.py
@@ -0,0 +1,27 @@
+from typing import Awaitable, Optional, Any, Union
+from .utils.to_async import to_async
+from ..template_template_id_attachments_settings import (
+ TemplateTemplateIdAttachmentsSettingsService,
+)
+from ...net.sdk_config import SdkConfig
+from ...models import SetTemplateAttachmentsSettingsRequest
+
+
+class TemplateTemplateIdAttachmentsSettingsServiceAsync(
+ TemplateTemplateIdAttachmentsSettingsService
+):
+ """
+ Async Wrapper for TemplateTemplateIdAttachmentsSettingsServiceAsync
+ """
+
+ def set_template_attachments_settings(
+ self,
+ request_body: SetTemplateAttachmentsSettingsRequest,
+ template_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Awaitable[Any]:
+ return to_async(super().set_template_attachments_settings)(
+ request_body, template_id, accept, request_config=request_config
+ )
diff --git a/src/signplus/services/async_/template_template_id_document.py b/src/signplus/services/async_/template_template_id_document.py
new file mode 100644
index 0000000..279df0f
--- /dev/null
+++ b/src/signplus/services/async_/template_template_id_document.py
@@ -0,0 +1,23 @@
+from typing import Awaitable, Optional, Any, Union
+from .utils.to_async import to_async
+from ..template_template_id_document import TemplateTemplateIdDocumentService
+from ...net.sdk_config import SdkConfig
+from ...models import AddTemplateDocumentRequest
+
+
+class TemplateTemplateIdDocumentServiceAsync(TemplateTemplateIdDocumentService):
+ """
+ Async Wrapper for TemplateTemplateIdDocumentServiceAsync
+ """
+
+ def add_template_document(
+ self,
+ request_body: AddTemplateDocumentRequest,
+ template_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Awaitable[Any]:
+ return to_async(super().add_template_document)(
+ request_body, template_id, accept, request_config=request_config
+ )
diff --git a/src/signplus/services/async_/template_template_id_document_document_id.py b/src/signplus/services/async_/template_template_id_document_document_id.py
new file mode 100644
index 0000000..c353651
--- /dev/null
+++ b/src/signplus/services/async_/template_template_id_document_document_id.py
@@ -0,0 +1,26 @@
+from typing import Awaitable, Optional, Any, Union
+from .utils.to_async import to_async
+from ..template_template_id_document_document_id import (
+ TemplateTemplateIdDocumentDocumentIdService,
+)
+from ...net.sdk_config import SdkConfig
+
+
+class TemplateTemplateIdDocumentDocumentIdServiceAsync(
+ TemplateTemplateIdDocumentDocumentIdService
+):
+ """
+ Async Wrapper for TemplateTemplateIdDocumentDocumentIdServiceAsync
+ """
+
+ def get_template_document(
+ self,
+ template_id: str,
+ document_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Awaitable[Any]:
+ return to_async(super().get_template_document)(
+ template_id, document_id, accept, request_config=request_config
+ )
diff --git a/src/signplus/services/async_/template_template_id_documents.py b/src/signplus/services/async_/template_template_id_documents.py
new file mode 100644
index 0000000..b60af40
--- /dev/null
+++ b/src/signplus/services/async_/template_template_id_documents.py
@@ -0,0 +1,21 @@
+from typing import Awaitable, Optional, Any, Union
+from .utils.to_async import to_async
+from ..template_template_id_documents import TemplateTemplateIdDocumentsService
+from ...net.sdk_config import SdkConfig
+
+
+class TemplateTemplateIdDocumentsServiceAsync(TemplateTemplateIdDocumentsService):
+ """
+ Async Wrapper for TemplateTemplateIdDocumentsServiceAsync
+ """
+
+ def get_template_documents(
+ self,
+ template_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Awaitable[Any]:
+ return to_async(super().get_template_documents)(
+ template_id, accept, request_config=request_config
+ )
diff --git a/src/signplus/services/async_/template_template_id_duplicate.py b/src/signplus/services/async_/template_template_id_duplicate.py
new file mode 100644
index 0000000..86fe5d9
--- /dev/null
+++ b/src/signplus/services/async_/template_template_id_duplicate.py
@@ -0,0 +1,21 @@
+from typing import Awaitable, Optional, Any, Union
+from .utils.to_async import to_async
+from ..template_template_id_duplicate import TemplateTemplateIdDuplicateService
+from ...net.sdk_config import SdkConfig
+
+
+class TemplateTemplateIdDuplicateServiceAsync(TemplateTemplateIdDuplicateService):
+ """
+ Async Wrapper for TemplateTemplateIdDuplicateServiceAsync
+ """
+
+ def duplicate_template(
+ self,
+ template_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Awaitable[Any]:
+ return to_async(super().duplicate_template)(
+ template_id, accept, request_config=request_config
+ )
diff --git a/src/signplus/services/async_/template_template_id_rename.py b/src/signplus/services/async_/template_template_id_rename.py
new file mode 100644
index 0000000..fdff33c
--- /dev/null
+++ b/src/signplus/services/async_/template_template_id_rename.py
@@ -0,0 +1,23 @@
+from typing import Awaitable, Optional, Any, Union
+from .utils.to_async import to_async
+from ..template_template_id_rename import TemplateTemplateIdRenameService
+from ...net.sdk_config import SdkConfig
+from ...models import RenameTemplateRequest
+
+
+class TemplateTemplateIdRenameServiceAsync(TemplateTemplateIdRenameService):
+ """
+ Async Wrapper for TemplateTemplateIdRenameServiceAsync
+ """
+
+ def rename_template(
+ self,
+ request_body: RenameTemplateRequest,
+ template_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Awaitable[Any]:
+ return to_async(super().rename_template)(
+ request_body, template_id, accept, request_config=request_config
+ )
diff --git a/src/signplus/services/async_/template_template_id_set_comment.py b/src/signplus/services/async_/template_template_id_set_comment.py
new file mode 100644
index 0000000..1302473
--- /dev/null
+++ b/src/signplus/services/async_/template_template_id_set_comment.py
@@ -0,0 +1,23 @@
+from typing import Awaitable, Optional, Any, Union
+from .utils.to_async import to_async
+from ..template_template_id_set_comment import TemplateTemplateIdSetCommentService
+from ...net.sdk_config import SdkConfig
+from ...models import SetTemplateCommentRequest
+
+
+class TemplateTemplateIdSetCommentServiceAsync(TemplateTemplateIdSetCommentService):
+ """
+ Async Wrapper for TemplateTemplateIdSetCommentServiceAsync
+ """
+
+ def set_template_comment(
+ self,
+ request_body: SetTemplateCommentRequest,
+ template_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Awaitable[Any]:
+ return to_async(super().set_template_comment)(
+ request_body, template_id, accept, request_config=request_config
+ )
diff --git a/src/signplus/services/async_/template_template_id_set_notification.py b/src/signplus/services/async_/template_template_id_set_notification.py
new file mode 100644
index 0000000..7223a60
--- /dev/null
+++ b/src/signplus/services/async_/template_template_id_set_notification.py
@@ -0,0 +1,27 @@
+from typing import Awaitable, Optional, Any, Union
+from .utils.to_async import to_async
+from ..template_template_id_set_notification import (
+ TemplateTemplateIdSetNotificationService,
+)
+from ...net.sdk_config import SdkConfig
+from ...models import SetTemplateNotificationRequest
+
+
+class TemplateTemplateIdSetNotificationServiceAsync(
+ TemplateTemplateIdSetNotificationService
+):
+ """
+ Async Wrapper for TemplateTemplateIdSetNotificationServiceAsync
+ """
+
+ def set_template_notification(
+ self,
+ request_body: SetTemplateNotificationRequest,
+ template_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Awaitable[Any]:
+ return to_async(super().set_template_notification)(
+ request_body, template_id, accept, request_config=request_config
+ )
diff --git a/src/signplus/services/async_/template_template_id_signing_steps.py b/src/signplus/services/async_/template_template_id_signing_steps.py
new file mode 100644
index 0000000..0c598dd
--- /dev/null
+++ b/src/signplus/services/async_/template_template_id_signing_steps.py
@@ -0,0 +1,23 @@
+from typing import Awaitable, Optional, Any, Union
+from .utils.to_async import to_async
+from ..template_template_id_signing_steps import TemplateTemplateIdSigningStepsService
+from ...net.sdk_config import SdkConfig
+from ...models import AddTemplateSigningStepsRequest
+
+
+class TemplateTemplateIdSigningStepsServiceAsync(TemplateTemplateIdSigningStepsService):
+ """
+ Async Wrapper for TemplateTemplateIdSigningStepsServiceAsync
+ """
+
+ def add_template_signing_steps(
+ self,
+ request_body: AddTemplateSigningStepsRequest,
+ template_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Awaitable[Any]:
+ return to_async(super().add_template_signing_steps)(
+ request_body, template_id, accept, request_config=request_config
+ )
diff --git a/src/signplus/services/async_/templates.py b/src/signplus/services/async_/templates.py
new file mode 100644
index 0000000..e7d3c75
--- /dev/null
+++ b/src/signplus/services/async_/templates.py
@@ -0,0 +1,22 @@
+from typing import Awaitable, Optional, Any, Union
+from .utils.to_async import to_async
+from ..templates import TemplatesService
+from ...net.sdk_config import SdkConfig
+from ...models import ListTemplatesRequest
+
+
+class TemplatesServiceAsync(TemplatesService):
+ """
+ Async Wrapper for TemplatesServiceAsync
+ """
+
+ def list_templates(
+ self,
+ request_body: ListTemplatesRequest,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Awaitable[Any]:
+ return to_async(super().list_templates)(
+ request_body, accept, request_config=request_config
+ )
diff --git a/src/signplus/services/async_/void.py b/src/signplus/services/async_/void.py
new file mode 100644
index 0000000..c643df5
--- /dev/null
+++ b/src/signplus/services/async_/void.py
@@ -0,0 +1,21 @@
+from typing import Awaitable, Optional, Any, Union
+from .utils.to_async import to_async
+from ..void import VoidService
+from ...net.sdk_config import SdkConfig
+
+
+class VoidServiceAsync(VoidService):
+ """
+ Async Wrapper for VoidServiceAsync
+ """
+
+ def void_envelope(
+ self,
+ envelope_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Awaitable[Any]:
+ return to_async(super().void_envelope)(
+ envelope_id, accept, request_config=request_config
+ )
diff --git a/src/signplus/services/async_/webhook.py b/src/signplus/services/async_/webhook.py
new file mode 100644
index 0000000..ee487d1
--- /dev/null
+++ b/src/signplus/services/async_/webhook.py
@@ -0,0 +1,22 @@
+from typing import Awaitable, Optional, Any, Union
+from .utils.to_async import to_async
+from ..webhook import WebhookService
+from ...net.sdk_config import SdkConfig
+from ...models import CreateWebhookRequest
+
+
+class WebhookServiceAsync(WebhookService):
+ """
+ Async Wrapper for WebhookServiceAsync
+ """
+
+ def create_webhook(
+ self,
+ request_body: CreateWebhookRequest,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Awaitable[Any]:
+ return to_async(super().create_webhook)(
+ request_body, accept, request_config=request_config
+ )
diff --git a/src/signplus/services/async_/webhook_id.py b/src/signplus/services/async_/webhook_id.py
new file mode 100644
index 0000000..f99bfb4
--- /dev/null
+++ b/src/signplus/services/async_/webhook_id.py
@@ -0,0 +1,17 @@
+from typing import Awaitable, Optional, Any
+from .utils.to_async import to_async
+from ..webhook_id import WebhookIdService
+from ...net.sdk_config import SdkConfig
+
+
+class WebhookIdServiceAsync(WebhookIdService):
+ """
+ Async Wrapper for WebhookIdServiceAsync
+ """
+
+ def delete_webhook(
+ self, webhook_id: str, *, request_config: Optional[SdkConfig] = None
+ ) -> Awaitable[Any]:
+ return to_async(super().delete_webhook)(
+ webhook_id, request_config=request_config
+ )
diff --git a/src/signplus/services/async_/webhooks.py b/src/signplus/services/async_/webhooks.py
new file mode 100644
index 0000000..6c8ddfe
--- /dev/null
+++ b/src/signplus/services/async_/webhooks.py
@@ -0,0 +1,22 @@
+from typing import Awaitable, Optional, Any, Union
+from .utils.to_async import to_async
+from ..webhooks import WebhooksService
+from ...net.sdk_config import SdkConfig
+from ...models import ListWebhooksRequest
+
+
+class WebhooksServiceAsync(WebhooksService):
+ """
+ Async Wrapper for WebhooksServiceAsync
+ """
+
+ def list_webhooks(
+ self,
+ request_body: ListWebhooksRequest,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Awaitable[Any]:
+ return to_async(super().list_webhooks)(
+ request_body, accept, request_config=request_config
+ )
diff --git a/src/signplus/services/certificate.py b/src/signplus/services/certificate.py
new file mode 100644
index 0000000..c63220e
--- /dev/null
+++ b/src/signplus/services/certificate.py
@@ -0,0 +1,75 @@
+from typing import Any, Optional, Union
+from .utils.validator import Validator
+from .utils.base_service import BaseService
+from ..net.transport.serializer import Serializer
+from ..net.sdk_config import SdkConfig
+from ..net.environment.environment import Environment
+from ..models.utils.cast_models import cast_models
+
+
+class CertificateService(BaseService):
+ """
+ Service class for CertificateService operations.
+ Provides methods to interact with CertificateService-related API endpoints.
+ Inherits common functionality from BaseService including authentication and request handling.
+ """
+
+ def __init__(self, *args, **kwargs):
+ """Initialize the service and method-level configurations."""
+ super().__init__(*args, **kwargs)
+ self._download_envelope_certificate_config: SdkConfig = {
+ "environment": Environment.RESTAPI
+ }
+
+ def set_download_envelope_certificate_config(self, config: SdkConfig):
+ """
+ Sets method-level configuration for download_envelope_certificate.
+
+ :param SdkConfig config: Configuration dictionary to override service-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._download_envelope_certificate_config = config
+ return self
+
+ @cast_models
+ def download_envelope_certificate(
+ self,
+ envelope_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Any:
+ """Download certificate of completion for an envelope
+
+ :param envelope_id: envelope_id
+ :type envelope_id: str
+ :param accept: accept
+ :type accept: str
+ ...
+ :raises RequestError: Raised when a request fails, with optional HTTP status code and details.
+ ...
+ :return: The parsed response data.
+ :rtype: Any
+ """
+
+ Validator(str).validate(envelope_id)
+ Validator(str).is_nullable().validate(accept)
+
+ resolved_config = self._get_resolved_config(
+ self._download_envelope_certificate_config, request_config
+ )
+
+ serialized_request = (
+ Serializer(
+ f"{resolved_config.get('base_url') or self.base_url or Environment.RESTAPI.url or Environment.DEFAULT.url}/envelope/{{envelope_id}}/certificate",
+ [self.get_access_token(resolved_config)],
+ resolved_config,
+ )
+ .add_header("Accept", accept)
+ .add_path("envelope_id", envelope_id)
+ .serialize()
+ .set_method("GET")
+ )
+
+ response, _, _ = self.send_request(serialized_request)
+ return response
diff --git a/src/signplus/services/document.py b/src/signplus/services/document.py
new file mode 100644
index 0000000..aeb8dc3
--- /dev/null
+++ b/src/signplus/services/document.py
@@ -0,0 +1,81 @@
+from typing import Any, Optional, Union
+from .utils.validator import Validator
+from .utils.base_service import BaseService
+from ..net.transport.serializer import Serializer
+from ..net.sdk_config import SdkConfig
+from ..net.environment.environment import Environment
+from ..models.utils.cast_models import cast_models
+from ..models import AddEnvelopeDocumentRequest
+
+
+class DocumentService(BaseService):
+ """
+ Service class for DocumentService operations.
+ Provides methods to interact with DocumentService-related API endpoints.
+ Inherits common functionality from BaseService including authentication and request handling.
+ """
+
+ def __init__(self, *args, **kwargs):
+ """Initialize the service and method-level configurations."""
+ super().__init__(*args, **kwargs)
+ self._add_envelope_document_config: SdkConfig = {
+ "environment": Environment.RESTAPI
+ }
+
+ def set_add_envelope_document_config(self, config: SdkConfig):
+ """
+ Sets method-level configuration for add_envelope_document.
+
+ :param SdkConfig config: Configuration dictionary to override service-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._add_envelope_document_config = config
+ return self
+
+ @cast_models
+ def add_envelope_document(
+ self,
+ request_body: AddEnvelopeDocumentRequest,
+ envelope_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Any:
+ """Add envelope document
+
+ :param request_body: The request body.
+ :type request_body: AddEnvelopeDocumentRequest
+ :param envelope_id: envelope_id
+ :type envelope_id: str
+ :param accept: accept
+ :type accept: str
+ ...
+ :raises RequestError: Raised when a request fails, with optional HTTP status code and details.
+ ...
+ :return: The parsed response data.
+ :rtype: Any
+ """
+
+ Validator(AddEnvelopeDocumentRequest).is_nullable().validate(request_body)
+ Validator(str).validate(envelope_id)
+ Validator(str).is_nullable().validate(accept)
+
+ resolved_config = self._get_resolved_config(
+ self._add_envelope_document_config, request_config
+ )
+
+ serialized_request = (
+ Serializer(
+ f"{resolved_config.get('base_url') or self.base_url or Environment.RESTAPI.url or Environment.DEFAULT.url}/envelope/{{envelope_id}}/document",
+ [self.get_access_token(resolved_config)],
+ resolved_config,
+ )
+ .add_header("Accept", accept)
+ .add_path("envelope_id", envelope_id)
+ .serialize()
+ .set_method("POST")
+ .set_body(request_body, "multipart/form-data")
+ )
+
+ response, _, _ = self.send_request(serialized_request)
+ return response
diff --git a/src/signplus/services/document_id.py b/src/signplus/services/document_id.py
new file mode 100644
index 0000000..01edf14
--- /dev/null
+++ b/src/signplus/services/document_id.py
@@ -0,0 +1,80 @@
+from typing import Any, Optional, Union
+from .utils.validator import Validator
+from .utils.base_service import BaseService
+from ..net.transport.serializer import Serializer
+from ..net.sdk_config import SdkConfig
+from ..net.environment.environment import Environment
+from ..models.utils.cast_models import cast_models
+
+
+class DocumentIdService(BaseService):
+ """
+ Service class for DocumentIdService operations.
+ Provides methods to interact with DocumentIdService-related API endpoints.
+ Inherits common functionality from BaseService including authentication and request handling.
+ """
+
+ def __init__(self, *args, **kwargs):
+ """Initialize the service and method-level configurations."""
+ super().__init__(*args, **kwargs)
+ self._get_envelope_document_config: SdkConfig = {
+ "environment": Environment.RESTAPI
+ }
+
+ def set_get_envelope_document_config(self, config: SdkConfig):
+ """
+ Sets method-level configuration for get_envelope_document.
+
+ :param SdkConfig config: Configuration dictionary to override service-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._get_envelope_document_config = config
+ return self
+
+ @cast_models
+ def get_envelope_document(
+ self,
+ envelope_id: str,
+ document_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Any:
+ """Get envelope document
+
+ :param envelope_id: envelope_id
+ :type envelope_id: str
+ :param document_id: document_id
+ :type document_id: str
+ :param accept: accept
+ :type accept: str
+ ...
+ :raises RequestError: Raised when a request fails, with optional HTTP status code and details.
+ ...
+ :return: The parsed response data.
+ :rtype: Any
+ """
+
+ Validator(str).validate(envelope_id)
+ Validator(str).validate(document_id)
+ Validator(str).is_nullable().validate(accept)
+
+ resolved_config = self._get_resolved_config(
+ self._get_envelope_document_config, request_config
+ )
+
+ serialized_request = (
+ Serializer(
+ f"{resolved_config.get('base_url') or self.base_url or Environment.RESTAPI.url or Environment.DEFAULT.url}/envelope/{{envelope_id}}/document/{{document_id}}",
+ [self.get_access_token(resolved_config)],
+ resolved_config,
+ )
+ .add_header("Accept", accept)
+ .add_path("envelope_id", envelope_id)
+ .add_path("document_id", document_id)
+ .serialize()
+ .set_method("GET")
+ )
+
+ response, _, _ = self.send_request(serialized_request)
+ return response
diff --git a/src/signplus/services/documents.py b/src/signplus/services/documents.py
new file mode 100644
index 0000000..0f1d685
--- /dev/null
+++ b/src/signplus/services/documents.py
@@ -0,0 +1,75 @@
+from typing import Any, Optional, Union
+from .utils.validator import Validator
+from .utils.base_service import BaseService
+from ..net.transport.serializer import Serializer
+from ..net.sdk_config import SdkConfig
+from ..net.environment.environment import Environment
+from ..models.utils.cast_models import cast_models
+
+
+class DocumentsService(BaseService):
+ """
+ Service class for DocumentsService operations.
+ Provides methods to interact with DocumentsService-related API endpoints.
+ Inherits common functionality from BaseService including authentication and request handling.
+ """
+
+ def __init__(self, *args, **kwargs):
+ """Initialize the service and method-level configurations."""
+ super().__init__(*args, **kwargs)
+ self._get_envelope_documents_config: SdkConfig = {
+ "environment": Environment.RESTAPI
+ }
+
+ def set_get_envelope_documents_config(self, config: SdkConfig):
+ """
+ Sets method-level configuration for get_envelope_documents.
+
+ :param SdkConfig config: Configuration dictionary to override service-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._get_envelope_documents_config = config
+ return self
+
+ @cast_models
+ def get_envelope_documents(
+ self,
+ envelope_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Any:
+ """Get envelope documents
+
+ :param envelope_id: envelope_id
+ :type envelope_id: str
+ :param accept: accept
+ :type accept: str
+ ...
+ :raises RequestError: Raised when a request fails, with optional HTTP status code and details.
+ ...
+ :return: The parsed response data.
+ :rtype: Any
+ """
+
+ Validator(str).validate(envelope_id)
+ Validator(str).is_nullable().validate(accept)
+
+ resolved_config = self._get_resolved_config(
+ self._get_envelope_documents_config, request_config
+ )
+
+ serialized_request = (
+ Serializer(
+ f"{resolved_config.get('base_url') or self.base_url or Environment.RESTAPI.url or Environment.DEFAULT.url}/envelope/{{envelope_id}}/documents",
+ [self.get_access_token(resolved_config)],
+ resolved_config,
+ )
+ .add_header("Accept", accept)
+ .add_path("envelope_id", envelope_id)
+ .serialize()
+ .set_method("GET")
+ )
+
+ response, _, _ = self.send_request(serialized_request)
+ return response
diff --git a/src/signplus/services/duplicate.py b/src/signplus/services/duplicate.py
new file mode 100644
index 0000000..d8f2f6c
--- /dev/null
+++ b/src/signplus/services/duplicate.py
@@ -0,0 +1,75 @@
+from typing import Any, Optional, Union
+from .utils.validator import Validator
+from .utils.base_service import BaseService
+from ..net.transport.serializer import Serializer
+from ..net.sdk_config import SdkConfig
+from ..net.environment.environment import Environment
+from ..models.utils.cast_models import cast_models
+
+
+class DuplicateService(BaseService):
+ """
+ Service class for DuplicateService operations.
+ Provides methods to interact with DuplicateService-related API endpoints.
+ Inherits common functionality from BaseService including authentication and request handling.
+ """
+
+ def __init__(self, *args, **kwargs):
+ """Initialize the service and method-level configurations."""
+ super().__init__(*args, **kwargs)
+ self._duplicate_envelope_config: SdkConfig = {
+ "environment": Environment.RESTAPI
+ }
+
+ def set_duplicate_envelope_config(self, config: SdkConfig):
+ """
+ Sets method-level configuration for duplicate_envelope.
+
+ :param SdkConfig config: Configuration dictionary to override service-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._duplicate_envelope_config = config
+ return self
+
+ @cast_models
+ def duplicate_envelope(
+ self,
+ envelope_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Any:
+ """Duplicate envelope
+
+ :param envelope_id: envelope_id
+ :type envelope_id: str
+ :param accept: accept
+ :type accept: str
+ ...
+ :raises RequestError: Raised when a request fails, with optional HTTP status code and details.
+ ...
+ :return: The parsed response data.
+ :rtype: Any
+ """
+
+ Validator(str).validate(envelope_id)
+ Validator(str).is_nullable().validate(accept)
+
+ resolved_config = self._get_resolved_config(
+ self._duplicate_envelope_config, request_config
+ )
+
+ serialized_request = (
+ Serializer(
+ f"{resolved_config.get('base_url') or self.base_url or Environment.RESTAPI.url or Environment.DEFAULT.url}/envelope/{{envelope_id}}/duplicate",
+ [self.get_access_token(resolved_config)],
+ resolved_config,
+ )
+ .add_header("Accept", accept)
+ .add_path("envelope_id", envelope_id)
+ .serialize()
+ .set_method("POST")
+ )
+
+ response, _, _ = self.send_request(serialized_request)
+ return response
diff --git a/src/signplus/services/dynamic_fields.py b/src/signplus/services/dynamic_fields.py
new file mode 100644
index 0000000..bf6e700
--- /dev/null
+++ b/src/signplus/services/dynamic_fields.py
@@ -0,0 +1,81 @@
+from typing import Any, Optional, Union
+from .utils.validator import Validator
+from .utils.base_service import BaseService
+from ..net.transport.serializer import Serializer
+from ..net.sdk_config import SdkConfig
+from ..net.environment.environment import Environment
+from ..models.utils.cast_models import cast_models
+from ..models import SetEnvelopeDynamicFieldsRequest
+
+
+class DynamicFieldsService(BaseService):
+ """
+ Service class for DynamicFieldsService operations.
+ Provides methods to interact with DynamicFieldsService-related API endpoints.
+ Inherits common functionality from BaseService including authentication and request handling.
+ """
+
+ def __init__(self, *args, **kwargs):
+ """Initialize the service and method-level configurations."""
+ super().__init__(*args, **kwargs)
+ self._set_envelope_dynamic_fields_config: SdkConfig = {
+ "environment": Environment.RESTAPI
+ }
+
+ def set_set_envelope_dynamic_fields_config(self, config: SdkConfig):
+ """
+ Sets method-level configuration for set_envelope_dynamic_fields.
+
+ :param SdkConfig config: Configuration dictionary to override service-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._set_envelope_dynamic_fields_config = config
+ return self
+
+ @cast_models
+ def set_envelope_dynamic_fields(
+ self,
+ request_body: SetEnvelopeDynamicFieldsRequest,
+ envelope_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Any:
+ """Set envelope dynamic fields
+
+ :param request_body: The request body.
+ :type request_body: SetEnvelopeDynamicFieldsRequest
+ :param envelope_id: envelope_id
+ :type envelope_id: str
+ :param accept: accept
+ :type accept: str
+ ...
+ :raises RequestError: Raised when a request fails, with optional HTTP status code and details.
+ ...
+ :return: The parsed response data.
+ :rtype: Any
+ """
+
+ Validator(SetEnvelopeDynamicFieldsRequest).is_nullable().validate(request_body)
+ Validator(str).validate(envelope_id)
+ Validator(str).is_nullable().validate(accept)
+
+ resolved_config = self._get_resolved_config(
+ self._set_envelope_dynamic_fields_config, request_config
+ )
+
+ serialized_request = (
+ Serializer(
+ f"{resolved_config.get('base_url') or self.base_url or Environment.RESTAPI.url or Environment.DEFAULT.url}/envelope/{{envelope_id}}/dynamic_fields",
+ [self.get_access_token(resolved_config)],
+ resolved_config,
+ )
+ .add_header("Accept", accept)
+ .add_path("envelope_id", envelope_id)
+ .serialize()
+ .set_method("PUT")
+ .set_body(request_body)
+ )
+
+ response, _, _ = self.send_request(serialized_request)
+ return response
diff --git a/src/signplus/services/envelope.py b/src/signplus/services/envelope.py
new file mode 100644
index 0000000..79e64e9
--- /dev/null
+++ b/src/signplus/services/envelope.py
@@ -0,0 +1,74 @@
+from typing import Any, Optional, Union
+from .utils.validator import Validator
+from .utils.base_service import BaseService
+from ..net.transport.serializer import Serializer
+from ..net.sdk_config import SdkConfig
+from ..net.environment.environment import Environment
+from ..models.utils.cast_models import cast_models
+from ..models import CreateEnvelopeRequest
+
+
+class EnvelopeService(BaseService):
+ """
+ Service class for EnvelopeService operations.
+ Provides methods to interact with EnvelopeService-related API endpoints.
+ Inherits common functionality from BaseService including authentication and request handling.
+ """
+
+ def __init__(self, *args, **kwargs):
+ """Initialize the service and method-level configurations."""
+ super().__init__(*args, **kwargs)
+ self._create_envelope_config: SdkConfig = {"environment": Environment.RESTAPI}
+
+ def set_create_envelope_config(self, config: SdkConfig):
+ """
+ Sets method-level configuration for create_envelope.
+
+ :param SdkConfig config: Configuration dictionary to override service-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._create_envelope_config = config
+ return self
+
+ @cast_models
+ def create_envelope(
+ self,
+ request_body: CreateEnvelopeRequest,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Any:
+ """Create new envelope
+
+ :param request_body: The request body.
+ :type request_body: CreateEnvelopeRequest
+ :param accept: accept
+ :type accept: str
+ ...
+ :raises RequestError: Raised when a request fails, with optional HTTP status code and details.
+ ...
+ :return: The parsed response data.
+ :rtype: Any
+ """
+
+ Validator(CreateEnvelopeRequest).is_nullable().validate(request_body)
+ Validator(str).is_nullable().validate(accept)
+
+ resolved_config = self._get_resolved_config(
+ self._create_envelope_config, request_config
+ )
+
+ serialized_request = (
+ Serializer(
+ f"{resolved_config.get('base_url') or self.base_url or Environment.RESTAPI.url or Environment.DEFAULT.url}/envelope",
+ [self.get_access_token(resolved_config)],
+ resolved_config,
+ )
+ .add_header("Accept", accept)
+ .serialize()
+ .set_method("POST")
+ .set_body(request_body)
+ )
+
+ response, _, _ = self.send_request(serialized_request)
+ return response
diff --git a/src/signplus/services/envelope_envelope_id_annotations_document_id.py b/src/signplus/services/envelope_envelope_id_annotations_document_id.py
new file mode 100644
index 0000000..7d9c684
--- /dev/null
+++ b/src/signplus/services/envelope_envelope_id_annotations_document_id.py
@@ -0,0 +1,80 @@
+from typing import Any, Optional, Union
+from .utils.validator import Validator
+from .utils.base_service import BaseService
+from ..net.transport.serializer import Serializer
+from ..net.sdk_config import SdkConfig
+from ..net.environment.environment import Environment
+from ..models.utils.cast_models import cast_models
+
+
+class EnvelopeEnvelopeIdAnnotationsDocumentIdService(BaseService):
+ """
+ Service class for EnvelopeEnvelopeIdAnnotationsDocumentIdService operations.
+ Provides methods to interact with EnvelopeEnvelopeIdAnnotationsDocumentIdService-related API endpoints.
+ Inherits common functionality from BaseService including authentication and request handling.
+ """
+
+ def __init__(self, *args, **kwargs):
+ """Initialize the service and method-level configurations."""
+ super().__init__(*args, **kwargs)
+ self._get_envelope_document_annotations_config: SdkConfig = {
+ "environment": Environment.RESTAPI
+ }
+
+ def set_get_envelope_document_annotations_config(self, config: SdkConfig):
+ """
+ Sets method-level configuration for get_envelope_document_annotations.
+
+ :param SdkConfig config: Configuration dictionary to override service-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._get_envelope_document_annotations_config = config
+ return self
+
+ @cast_models
+ def get_envelope_document_annotations(
+ self,
+ envelope_id: str,
+ document_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Any:
+ """Get envelope document annotations
+
+ :param envelope_id: envelope_id
+ :type envelope_id: str
+ :param document_id: document_id
+ :type document_id: str
+ :param accept: accept
+ :type accept: str
+ ...
+ :raises RequestError: Raised when a request fails, with optional HTTP status code and details.
+ ...
+ :return: The parsed response data.
+ :rtype: Any
+ """
+
+ Validator(str).validate(envelope_id)
+ Validator(str).validate(document_id)
+ Validator(str).is_nullable().validate(accept)
+
+ resolved_config = self._get_resolved_config(
+ self._get_envelope_document_annotations_config, request_config
+ )
+
+ serialized_request = (
+ Serializer(
+ f"{resolved_config.get('base_url') or self.base_url or Environment.RESTAPI.url or Environment.DEFAULT.url}/envelope/{{envelope_id}}/annotations/{{document_id}}",
+ [self.get_access_token(resolved_config)],
+ resolved_config,
+ )
+ .add_header("Accept", accept)
+ .add_path("envelope_id", envelope_id)
+ .add_path("document_id", document_id)
+ .serialize()
+ .set_method("GET")
+ )
+
+ response, _, _ = self.send_request(serialized_request)
+ return response
diff --git a/src/signplus/services/envelope_id.py b/src/signplus/services/envelope_id.py
new file mode 100644
index 0000000..dfde84f
--- /dev/null
+++ b/src/signplus/services/envelope_id.py
@@ -0,0 +1,119 @@
+from typing import Any, Optional, Union
+from .utils.validator import Validator
+from .utils.base_service import BaseService
+from ..net.transport.serializer import Serializer
+from ..net.sdk_config import SdkConfig
+from ..net.environment.environment import Environment
+from ..models.utils.cast_models import cast_models
+
+
+class EnvelopeIdService(BaseService):
+ """
+ Service class for EnvelopeIdService operations.
+ Provides methods to interact with EnvelopeIdService-related API endpoints.
+ Inherits common functionality from BaseService including authentication and request handling.
+ """
+
+ def __init__(self, *args, **kwargs):
+ """Initialize the service and method-level configurations."""
+ super().__init__(*args, **kwargs)
+ self._get_envelope_config: SdkConfig = {"environment": Environment.RESTAPI}
+ self._delete_envelope_config: SdkConfig = {"environment": Environment.RESTAPI}
+
+ def set_get_envelope_config(self, config: SdkConfig):
+ """
+ Sets method-level configuration for get_envelope.
+
+ :param SdkConfig config: Configuration dictionary to override service-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._get_envelope_config = config
+ return self
+
+ def set_delete_envelope_config(self, config: SdkConfig):
+ """
+ Sets method-level configuration for delete_envelope.
+
+ :param SdkConfig config: Configuration dictionary to override service-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._delete_envelope_config = config
+ return self
+
+ @cast_models
+ def get_envelope(
+ self,
+ envelope_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Any:
+ """Get envelope
+
+ :param envelope_id: envelope_id
+ :type envelope_id: str
+ :param accept: accept
+ :type accept: str
+ ...
+ :raises RequestError: Raised when a request fails, with optional HTTP status code and details.
+ ...
+ :return: The parsed response data.
+ :rtype: Any
+ """
+
+ Validator(str).validate(envelope_id)
+ Validator(str).is_nullable().validate(accept)
+
+ resolved_config = self._get_resolved_config(
+ self._get_envelope_config, request_config
+ )
+
+ serialized_request = (
+ Serializer(
+ f"{resolved_config.get('base_url') or self.base_url or Environment.RESTAPI.url or Environment.DEFAULT.url}/envelope/{{envelope_id}}",
+ [self.get_access_token(resolved_config)],
+ resolved_config,
+ )
+ .add_header("Accept", accept)
+ .add_path("envelope_id", envelope_id)
+ .serialize()
+ .set_method("GET")
+ )
+
+ response, _, _ = self.send_request(serialized_request)
+ return response
+
+ @cast_models
+ def delete_envelope(
+ self, envelope_id: str, *, request_config: Optional[SdkConfig] = None
+ ) -> Any:
+ """Delete envelope
+
+ :param envelope_id: envelope_id
+ :type envelope_id: str
+ ...
+ :raises RequestError: Raised when a request fails, with optional HTTP status code and details.
+ ...
+ :return: The parsed response data.
+ :rtype: Any
+ """
+
+ Validator(str).validate(envelope_id)
+
+ resolved_config = self._get_resolved_config(
+ self._delete_envelope_config, request_config
+ )
+
+ serialized_request = (
+ Serializer(
+ f"{resolved_config.get('base_url') or self.base_url or Environment.RESTAPI.url or Environment.DEFAULT.url}/envelope/{{envelope_id}}",
+ [self.get_access_token(resolved_config)],
+ resolved_config,
+ )
+ .add_path("envelope_id", envelope_id)
+ .serialize()
+ .set_method("DELETE")
+ )
+
+ response, _, _ = self.send_request(serialized_request)
+ return response
diff --git a/src/signplus/services/envelopes.py b/src/signplus/services/envelopes.py
new file mode 100644
index 0000000..bf1184d
--- /dev/null
+++ b/src/signplus/services/envelopes.py
@@ -0,0 +1,74 @@
+from typing import Any, Optional, Union
+from .utils.validator import Validator
+from .utils.base_service import BaseService
+from ..net.transport.serializer import Serializer
+from ..net.sdk_config import SdkConfig
+from ..net.environment.environment import Environment
+from ..models.utils.cast_models import cast_models
+from ..models import ListEnvelopesRequest
+
+
+class EnvelopesService(BaseService):
+ """
+ Service class for EnvelopesService operations.
+ Provides methods to interact with EnvelopesService-related API endpoints.
+ Inherits common functionality from BaseService including authentication and request handling.
+ """
+
+ def __init__(self, *args, **kwargs):
+ """Initialize the service and method-level configurations."""
+ super().__init__(*args, **kwargs)
+ self._list_envelopes_config: SdkConfig = {"environment": Environment.RESTAPI}
+
+ def set_list_envelopes_config(self, config: SdkConfig):
+ """
+ Sets method-level configuration for list_envelopes.
+
+ :param SdkConfig config: Configuration dictionary to override service-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._list_envelopes_config = config
+ return self
+
+ @cast_models
+ def list_envelopes(
+ self,
+ request_body: ListEnvelopesRequest,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Any:
+ """List envelopes
+
+ :param request_body: The request body.
+ :type request_body: ListEnvelopesRequest
+ :param accept: accept
+ :type accept: str
+ ...
+ :raises RequestError: Raised when a request fails, with optional HTTP status code and details.
+ ...
+ :return: The parsed response data.
+ :rtype: Any
+ """
+
+ Validator(ListEnvelopesRequest).is_nullable().validate(request_body)
+ Validator(str).is_nullable().validate(accept)
+
+ resolved_config = self._get_resolved_config(
+ self._list_envelopes_config, request_config
+ )
+
+ serialized_request = (
+ Serializer(
+ f"{resolved_config.get('base_url') or self.base_url or Environment.RESTAPI.url or Environment.DEFAULT.url}/envelopes",
+ [self.get_access_token(resolved_config)],
+ resolved_config,
+ )
+ .add_header("Accept", accept)
+ .serialize()
+ .set_method("POST")
+ .set_body(request_body)
+ )
+
+ response, _, _ = self.send_request(serialized_request)
+ return response
diff --git a/src/signplus/services/file_id.py b/src/signplus/services/file_id.py
new file mode 100644
index 0000000..01333db
--- /dev/null
+++ b/src/signplus/services/file_id.py
@@ -0,0 +1,80 @@
+from typing import Any, Optional, Union
+from .utils.validator import Validator
+from .utils.base_service import BaseService
+from ..net.transport.serializer import Serializer
+from ..net.sdk_config import SdkConfig
+from ..net.environment.environment import Environment
+from ..models.utils.cast_models import cast_models
+
+
+class FileIdService(BaseService):
+ """
+ Service class for FileIdService operations.
+ Provides methods to interact with FileIdService-related API endpoints.
+ Inherits common functionality from BaseService including authentication and request handling.
+ """
+
+ def __init__(self, *args, **kwargs):
+ """Initialize the service and method-level configurations."""
+ super().__init__(*args, **kwargs)
+ self._get_attachment_file_config: SdkConfig = {
+ "environment": Environment.RESTAPI
+ }
+
+ def set_get_attachment_file_config(self, config: SdkConfig):
+ """
+ Sets method-level configuration for get_attachment_file.
+
+ :param SdkConfig config: Configuration dictionary to override service-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._get_attachment_file_config = config
+ return self
+
+ @cast_models
+ def get_attachment_file(
+ self,
+ envelope_id: str,
+ file_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Any:
+ """Get envelope attachment file
+
+ :param envelope_id: envelope_id
+ :type envelope_id: str
+ :param file_id: file_id
+ :type file_id: str
+ :param accept: accept
+ :type accept: str
+ ...
+ :raises RequestError: Raised when a request fails, with optional HTTP status code and details.
+ ...
+ :return: The parsed response data.
+ :rtype: Any
+ """
+
+ Validator(str).validate(envelope_id)
+ Validator(str).validate(file_id)
+ Validator(str).is_nullable().validate(accept)
+
+ resolved_config = self._get_resolved_config(
+ self._get_attachment_file_config, request_config
+ )
+
+ serialized_request = (
+ Serializer(
+ f"{resolved_config.get('base_url') or self.base_url or Environment.RESTAPI.url or Environment.DEFAULT.url}/envelope/{{envelope_id}}/attachments/{{file_id}}",
+ [self.get_access_token(resolved_config)],
+ resolved_config,
+ )
+ .add_header("Accept", accept)
+ .add_path("envelope_id", envelope_id)
+ .add_path("file_id", file_id)
+ .serialize()
+ .set_method("GET")
+ )
+
+ response, _, _ = self.send_request(serialized_request)
+ return response
diff --git a/src/signplus/services/placeholders.py b/src/signplus/services/placeholders.py
new file mode 100644
index 0000000..9518718
--- /dev/null
+++ b/src/signplus/services/placeholders.py
@@ -0,0 +1,83 @@
+from typing import Any, Optional, Union
+from .utils.validator import Validator
+from .utils.base_service import BaseService
+from ..net.transport.serializer import Serializer
+from ..net.sdk_config import SdkConfig
+from ..net.environment.environment import Environment
+from ..models.utils.cast_models import cast_models
+from ..models import SetEnvelopeAttachmentsPlaceholdersRequest
+
+
+class PlaceholdersService(BaseService):
+ """
+ Service class for PlaceholdersService operations.
+ Provides methods to interact with PlaceholdersService-related API endpoints.
+ Inherits common functionality from BaseService including authentication and request handling.
+ """
+
+ def __init__(self, *args, **kwargs):
+ """Initialize the service and method-level configurations."""
+ super().__init__(*args, **kwargs)
+ self._set_envelope_attachments_placeholders_config: SdkConfig = {
+ "environment": Environment.RESTAPI
+ }
+
+ def set_set_envelope_attachments_placeholders_config(self, config: SdkConfig):
+ """
+ Sets method-level configuration for set_envelope_attachments_placeholders.
+
+ :param SdkConfig config: Configuration dictionary to override service-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._set_envelope_attachments_placeholders_config = config
+ return self
+
+ @cast_models
+ def set_envelope_attachments_placeholders(
+ self,
+ request_body: SetEnvelopeAttachmentsPlaceholdersRequest,
+ envelope_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Any:
+ """Placeholders to be set, completely replacing the existing ones.
+
+ :param request_body: The request body.
+ :type request_body: SetEnvelopeAttachmentsPlaceholdersRequest
+ :param envelope_id: envelope_id
+ :type envelope_id: str
+ :param accept: accept
+ :type accept: str
+ ...
+ :raises RequestError: Raised when a request fails, with optional HTTP status code and details.
+ ...
+ :return: The parsed response data.
+ :rtype: Any
+ """
+
+ Validator(SetEnvelopeAttachmentsPlaceholdersRequest).is_nullable().validate(
+ request_body
+ )
+ Validator(str).validate(envelope_id)
+ Validator(str).is_nullable().validate(accept)
+
+ resolved_config = self._get_resolved_config(
+ self._set_envelope_attachments_placeholders_config, request_config
+ )
+
+ serialized_request = (
+ Serializer(
+ f"{resolved_config.get('base_url') or self.base_url or Environment.RESTAPI.url or Environment.DEFAULT.url}/envelope/{{envelope_id}}/attachments/placeholders",
+ [self.get_access_token(resolved_config)],
+ resolved_config,
+ )
+ .add_header("Accept", accept)
+ .add_path("envelope_id", envelope_id)
+ .serialize()
+ .set_method("PUT")
+ .set_body(request_body)
+ )
+
+ response, _, _ = self.send_request(serialized_request)
+ return response
diff --git a/src/signplus/services/rename.py b/src/signplus/services/rename.py
new file mode 100644
index 0000000..8681c63
--- /dev/null
+++ b/src/signplus/services/rename.py
@@ -0,0 +1,79 @@
+from typing import Any, Optional, Union
+from .utils.validator import Validator
+from .utils.base_service import BaseService
+from ..net.transport.serializer import Serializer
+from ..net.sdk_config import SdkConfig
+from ..net.environment.environment import Environment
+from ..models.utils.cast_models import cast_models
+from ..models import RenameEnvelopeRequest
+
+
+class RenameService(BaseService):
+ """
+ Service class for RenameService operations.
+ Provides methods to interact with RenameService-related API endpoints.
+ Inherits common functionality from BaseService including authentication and request handling.
+ """
+
+ def __init__(self, *args, **kwargs):
+ """Initialize the service and method-level configurations."""
+ super().__init__(*args, **kwargs)
+ self._rename_envelope_config: SdkConfig = {"environment": Environment.RESTAPI}
+
+ def set_rename_envelope_config(self, config: SdkConfig):
+ """
+ Sets method-level configuration for rename_envelope.
+
+ :param SdkConfig config: Configuration dictionary to override service-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._rename_envelope_config = config
+ return self
+
+ @cast_models
+ def rename_envelope(
+ self,
+ request_body: RenameEnvelopeRequest,
+ envelope_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Any:
+ """Rename envelope
+
+ :param request_body: The request body.
+ :type request_body: RenameEnvelopeRequest
+ :param envelope_id: envelope_id
+ :type envelope_id: str
+ :param accept: accept
+ :type accept: str
+ ...
+ :raises RequestError: Raised when a request fails, with optional HTTP status code and details.
+ ...
+ :return: The parsed response data.
+ :rtype: Any
+ """
+
+ Validator(RenameEnvelopeRequest).is_nullable().validate(request_body)
+ Validator(str).validate(envelope_id)
+ Validator(str).is_nullable().validate(accept)
+
+ resolved_config = self._get_resolved_config(
+ self._rename_envelope_config, request_config
+ )
+
+ serialized_request = (
+ Serializer(
+ f"{resolved_config.get('base_url') or self.base_url or Environment.RESTAPI.url or Environment.DEFAULT.url}/envelope/{{envelope_id}}/rename",
+ [self.get_access_token(resolved_config)],
+ resolved_config,
+ )
+ .add_header("Accept", accept)
+ .add_path("envelope_id", envelope_id)
+ .serialize()
+ .set_method("PUT")
+ .set_body(request_body)
+ )
+
+ response, _, _ = self.send_request(serialized_request)
+ return response
diff --git a/src/signplus/services/send.py b/src/signplus/services/send.py
new file mode 100644
index 0000000..fc08f1e
--- /dev/null
+++ b/src/signplus/services/send.py
@@ -0,0 +1,73 @@
+from typing import Any, Optional, Union
+from .utils.validator import Validator
+from .utils.base_service import BaseService
+from ..net.transport.serializer import Serializer
+from ..net.sdk_config import SdkConfig
+from ..net.environment.environment import Environment
+from ..models.utils.cast_models import cast_models
+
+
+class SendService(BaseService):
+ """
+ Service class for SendService operations.
+ Provides methods to interact with SendService-related API endpoints.
+ Inherits common functionality from BaseService including authentication and request handling.
+ """
+
+ def __init__(self, *args, **kwargs):
+ """Initialize the service and method-level configurations."""
+ super().__init__(*args, **kwargs)
+ self._send_envelope_config: SdkConfig = {"environment": Environment.RESTAPI}
+
+ def set_send_envelope_config(self, config: SdkConfig):
+ """
+ Sets method-level configuration for send_envelope.
+
+ :param SdkConfig config: Configuration dictionary to override service-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._send_envelope_config = config
+ return self
+
+ @cast_models
+ def send_envelope(
+ self,
+ envelope_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Any:
+ """Send envelope for signature
+
+ :param envelope_id: envelope_id
+ :type envelope_id: str
+ :param accept: accept
+ :type accept: str
+ ...
+ :raises RequestError: Raised when a request fails, with optional HTTP status code and details.
+ ...
+ :return: The parsed response data.
+ :rtype: Any
+ """
+
+ Validator(str).validate(envelope_id)
+ Validator(str).is_nullable().validate(accept)
+
+ resolved_config = self._get_resolved_config(
+ self._send_envelope_config, request_config
+ )
+
+ serialized_request = (
+ Serializer(
+ f"{resolved_config.get('base_url') or self.base_url or Environment.RESTAPI.url or Environment.DEFAULT.url}/envelope/{{envelope_id}}/send",
+ [self.get_access_token(resolved_config)],
+ resolved_config,
+ )
+ .add_header("Accept", accept)
+ .add_path("envelope_id", envelope_id)
+ .serialize()
+ .set_method("POST")
+ )
+
+ response, _, _ = self.send_request(serialized_request)
+ return response
diff --git a/src/signplus/services/set_comment.py b/src/signplus/services/set_comment.py
new file mode 100644
index 0000000..44322d4
--- /dev/null
+++ b/src/signplus/services/set_comment.py
@@ -0,0 +1,81 @@
+from typing import Any, Optional, Union
+from .utils.validator import Validator
+from .utils.base_service import BaseService
+from ..net.transport.serializer import Serializer
+from ..net.sdk_config import SdkConfig
+from ..net.environment.environment import Environment
+from ..models.utils.cast_models import cast_models
+from ..models import SetEnvelopeCommentRequest
+
+
+class SetCommentService(BaseService):
+ """
+ Service class for SetCommentService operations.
+ Provides methods to interact with SetCommentService-related API endpoints.
+ Inherits common functionality from BaseService including authentication and request handling.
+ """
+
+ def __init__(self, *args, **kwargs):
+ """Initialize the service and method-level configurations."""
+ super().__init__(*args, **kwargs)
+ self._set_envelope_comment_config: SdkConfig = {
+ "environment": Environment.RESTAPI
+ }
+
+ def set_set_envelope_comment_config(self, config: SdkConfig):
+ """
+ Sets method-level configuration for set_envelope_comment.
+
+ :param SdkConfig config: Configuration dictionary to override service-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._set_envelope_comment_config = config
+ return self
+
+ @cast_models
+ def set_envelope_comment(
+ self,
+ request_body: SetEnvelopeCommentRequest,
+ envelope_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Any:
+ """Set envelope comment
+
+ :param request_body: The request body.
+ :type request_body: SetEnvelopeCommentRequest
+ :param envelope_id: envelope_id
+ :type envelope_id: str
+ :param accept: accept
+ :type accept: str
+ ...
+ :raises RequestError: Raised when a request fails, with optional HTTP status code and details.
+ ...
+ :return: The parsed response data.
+ :rtype: Any
+ """
+
+ Validator(SetEnvelopeCommentRequest).is_nullable().validate(request_body)
+ Validator(str).validate(envelope_id)
+ Validator(str).is_nullable().validate(accept)
+
+ resolved_config = self._get_resolved_config(
+ self._set_envelope_comment_config, request_config
+ )
+
+ serialized_request = (
+ Serializer(
+ f"{resolved_config.get('base_url') or self.base_url or Environment.RESTAPI.url or Environment.DEFAULT.url}/envelope/{{envelope_id}}/set_comment",
+ [self.get_access_token(resolved_config)],
+ resolved_config,
+ )
+ .add_header("Accept", accept)
+ .add_path("envelope_id", envelope_id)
+ .serialize()
+ .set_method("PUT")
+ .set_body(request_body)
+ )
+
+ response, _, _ = self.send_request(serialized_request)
+ return response
diff --git a/src/signplus/services/set_expiration_date.py b/src/signplus/services/set_expiration_date.py
new file mode 100644
index 0000000..1ac9595
--- /dev/null
+++ b/src/signplus/services/set_expiration_date.py
@@ -0,0 +1,81 @@
+from typing import Any, Optional, Union
+from .utils.validator import Validator
+from .utils.base_service import BaseService
+from ..net.transport.serializer import Serializer
+from ..net.sdk_config import SdkConfig
+from ..net.environment.environment import Environment
+from ..models.utils.cast_models import cast_models
+from ..models import SetEnvelopeExpirationDateRequest
+
+
+class SetExpirationDateService(BaseService):
+ """
+ Service class for SetExpirationDateService operations.
+ Provides methods to interact with SetExpirationDateService-related API endpoints.
+ Inherits common functionality from BaseService including authentication and request handling.
+ """
+
+ def __init__(self, *args, **kwargs):
+ """Initialize the service and method-level configurations."""
+ super().__init__(*args, **kwargs)
+ self._set_envelope_expiration_date_config: SdkConfig = {
+ "environment": Environment.RESTAPI
+ }
+
+ def set_set_envelope_expiration_date_config(self, config: SdkConfig):
+ """
+ Sets method-level configuration for set_envelope_expiration_date.
+
+ :param SdkConfig config: Configuration dictionary to override service-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._set_envelope_expiration_date_config = config
+ return self
+
+ @cast_models
+ def set_envelope_expiration_date(
+ self,
+ request_body: SetEnvelopeExpirationDateRequest,
+ envelope_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Any:
+ """Set envelope expiration date
+
+ :param request_body: The request body.
+ :type request_body: SetEnvelopeExpirationDateRequest
+ :param envelope_id: envelope_id
+ :type envelope_id: str
+ :param accept: accept
+ :type accept: str
+ ...
+ :raises RequestError: Raised when a request fails, with optional HTTP status code and details.
+ ...
+ :return: The parsed response data.
+ :rtype: Any
+ """
+
+ Validator(SetEnvelopeExpirationDateRequest).is_nullable().validate(request_body)
+ Validator(str).validate(envelope_id)
+ Validator(str).is_nullable().validate(accept)
+
+ resolved_config = self._get_resolved_config(
+ self._set_envelope_expiration_date_config, request_config
+ )
+
+ serialized_request = (
+ Serializer(
+ f"{resolved_config.get('base_url') or self.base_url or Environment.RESTAPI.url or Environment.DEFAULT.url}/envelope/{{envelope_id}}/set_expiration_date",
+ [self.get_access_token(resolved_config)],
+ resolved_config,
+ )
+ .add_header("Accept", accept)
+ .add_path("envelope_id", envelope_id)
+ .serialize()
+ .set_method("PUT")
+ .set_body(request_body)
+ )
+
+ response, _, _ = self.send_request(serialized_request)
+ return response
diff --git a/src/signplus/services/set_legality_level.py b/src/signplus/services/set_legality_level.py
new file mode 100644
index 0000000..21d056d
--- /dev/null
+++ b/src/signplus/services/set_legality_level.py
@@ -0,0 +1,81 @@
+from typing import Any, Optional, Union
+from .utils.validator import Validator
+from .utils.base_service import BaseService
+from ..net.transport.serializer import Serializer
+from ..net.sdk_config import SdkConfig
+from ..net.environment.environment import Environment
+from ..models.utils.cast_models import cast_models
+from ..models import SetEnvelopeLegalityLevelRequest
+
+
+class SetLegalityLevelService(BaseService):
+ """
+ Service class for SetLegalityLevelService operations.
+ Provides methods to interact with SetLegalityLevelService-related API endpoints.
+ Inherits common functionality from BaseService including authentication and request handling.
+ """
+
+ def __init__(self, *args, **kwargs):
+ """Initialize the service and method-level configurations."""
+ super().__init__(*args, **kwargs)
+ self._set_envelope_legality_level_config: SdkConfig = {
+ "environment": Environment.RESTAPI
+ }
+
+ def set_set_envelope_legality_level_config(self, config: SdkConfig):
+ """
+ Sets method-level configuration for set_envelope_legality_level.
+
+ :param SdkConfig config: Configuration dictionary to override service-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._set_envelope_legality_level_config = config
+ return self
+
+ @cast_models
+ def set_envelope_legality_level(
+ self,
+ request_body: SetEnvelopeLegalityLevelRequest,
+ envelope_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Any:
+ """Set envelope legality level
+
+ :param request_body: The request body.
+ :type request_body: SetEnvelopeLegalityLevelRequest
+ :param envelope_id: envelope_id
+ :type envelope_id: str
+ :param accept: accept
+ :type accept: str
+ ...
+ :raises RequestError: Raised when a request fails, with optional HTTP status code and details.
+ ...
+ :return: The parsed response data.
+ :rtype: Any
+ """
+
+ Validator(SetEnvelopeLegalityLevelRequest).is_nullable().validate(request_body)
+ Validator(str).validate(envelope_id)
+ Validator(str).is_nullable().validate(accept)
+
+ resolved_config = self._get_resolved_config(
+ self._set_envelope_legality_level_config, request_config
+ )
+
+ serialized_request = (
+ Serializer(
+ f"{resolved_config.get('base_url') or self.base_url or Environment.RESTAPI.url or Environment.DEFAULT.url}/envelope/{{envelope_id}}/set_legality_level",
+ [self.get_access_token(resolved_config)],
+ resolved_config,
+ )
+ .add_header("Accept", accept)
+ .add_path("envelope_id", envelope_id)
+ .serialize()
+ .set_method("PUT")
+ .set_body(request_body)
+ )
+
+ response, _, _ = self.send_request(serialized_request)
+ return response
diff --git a/src/signplus/services/set_notification.py b/src/signplus/services/set_notification.py
new file mode 100644
index 0000000..d71aeaa
--- /dev/null
+++ b/src/signplus/services/set_notification.py
@@ -0,0 +1,81 @@
+from typing import Any, Optional, Union
+from .utils.validator import Validator
+from .utils.base_service import BaseService
+from ..net.transport.serializer import Serializer
+from ..net.sdk_config import SdkConfig
+from ..net.environment.environment import Environment
+from ..models.utils.cast_models import cast_models
+from ..models import SetEnvelopeNotificationRequest
+
+
+class SetNotificationService(BaseService):
+ """
+ Service class for SetNotificationService operations.
+ Provides methods to interact with SetNotificationService-related API endpoints.
+ Inherits common functionality from BaseService including authentication and request handling.
+ """
+
+ def __init__(self, *args, **kwargs):
+ """Initialize the service and method-level configurations."""
+ super().__init__(*args, **kwargs)
+ self._set_envelope_notification_config: SdkConfig = {
+ "environment": Environment.RESTAPI
+ }
+
+ def set_set_envelope_notification_config(self, config: SdkConfig):
+ """
+ Sets method-level configuration for set_envelope_notification.
+
+ :param SdkConfig config: Configuration dictionary to override service-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._set_envelope_notification_config = config
+ return self
+
+ @cast_models
+ def set_envelope_notification(
+ self,
+ request_body: SetEnvelopeNotificationRequest,
+ envelope_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Any:
+ """Set envelope notification
+
+ :param request_body: The request body.
+ :type request_body: SetEnvelopeNotificationRequest
+ :param envelope_id: envelope_id
+ :type envelope_id: str
+ :param accept: accept
+ :type accept: str
+ ...
+ :raises RequestError: Raised when a request fails, with optional HTTP status code and details.
+ ...
+ :return: The parsed response data.
+ :rtype: Any
+ """
+
+ Validator(SetEnvelopeNotificationRequest).is_nullable().validate(request_body)
+ Validator(str).validate(envelope_id)
+ Validator(str).is_nullable().validate(accept)
+
+ resolved_config = self._get_resolved_config(
+ self._set_envelope_notification_config, request_config
+ )
+
+ serialized_request = (
+ Serializer(
+ f"{resolved_config.get('base_url') or self.base_url or Environment.RESTAPI.url or Environment.DEFAULT.url}/envelope/{{envelope_id}}/set_notification",
+ [self.get_access_token(resolved_config)],
+ resolved_config,
+ )
+ .add_header("Accept", accept)
+ .add_path("envelope_id", envelope_id)
+ .serialize()
+ .set_method("PUT")
+ .set_body(request_body)
+ )
+
+ response, _, _ = self.send_request(serialized_request)
+ return response
diff --git a/src/signplus/services/settings.py b/src/signplus/services/settings.py
new file mode 100644
index 0000000..918d7e5
--- /dev/null
+++ b/src/signplus/services/settings.py
@@ -0,0 +1,83 @@
+from typing import Any, Optional, Union
+from .utils.validator import Validator
+from .utils.base_service import BaseService
+from ..net.transport.serializer import Serializer
+from ..net.sdk_config import SdkConfig
+from ..net.environment.environment import Environment
+from ..models.utils.cast_models import cast_models
+from ..models import SetEnvelopeAttachmentsSettingsRequest
+
+
+class SettingsService(BaseService):
+ """
+ Service class for SettingsService operations.
+ Provides methods to interact with SettingsService-related API endpoints.
+ Inherits common functionality from BaseService including authentication and request handling.
+ """
+
+ def __init__(self, *args, **kwargs):
+ """Initialize the service and method-level configurations."""
+ super().__init__(*args, **kwargs)
+ self._set_envelope_attachments_settings_config: SdkConfig = {
+ "environment": Environment.RESTAPI
+ }
+
+ def set_set_envelope_attachments_settings_config(self, config: SdkConfig):
+ """
+ Sets method-level configuration for set_envelope_attachments_settings.
+
+ :param SdkConfig config: Configuration dictionary to override service-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._set_envelope_attachments_settings_config = config
+ return self
+
+ @cast_models
+ def set_envelope_attachments_settings(
+ self,
+ request_body: SetEnvelopeAttachmentsSettingsRequest,
+ envelope_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Any:
+ """Set envelope attachment settings
+
+ :param request_body: The request body.
+ :type request_body: SetEnvelopeAttachmentsSettingsRequest
+ :param envelope_id: envelope_id
+ :type envelope_id: str
+ :param accept: accept
+ :type accept: str
+ ...
+ :raises RequestError: Raised when a request fails, with optional HTTP status code and details.
+ ...
+ :return: The parsed response data.
+ :rtype: Any
+ """
+
+ Validator(SetEnvelopeAttachmentsSettingsRequest).is_nullable().validate(
+ request_body
+ )
+ Validator(str).validate(envelope_id)
+ Validator(str).is_nullable().validate(accept)
+
+ resolved_config = self._get_resolved_config(
+ self._set_envelope_attachments_settings_config, request_config
+ )
+
+ serialized_request = (
+ Serializer(
+ f"{resolved_config.get('base_url') or self.base_url or Environment.RESTAPI.url or Environment.DEFAULT.url}/envelope/{{envelope_id}}/attachments/settings",
+ [self.get_access_token(resolved_config)],
+ resolved_config,
+ )
+ .add_header("Accept", accept)
+ .add_path("envelope_id", envelope_id)
+ .serialize()
+ .set_method("PUT")
+ .set_body(request_body)
+ )
+
+ response, _, _ = self.send_request(serialized_request)
+ return response
diff --git a/src/signplus/services/signed_documents.py b/src/signplus/services/signed_documents.py
new file mode 100644
index 0000000..ee6ab70
--- /dev/null
+++ b/src/signplus/services/signed_documents.py
@@ -0,0 +1,83 @@
+from typing import Any, Optional, Union
+from .utils.validator import Validator
+from .utils.base_service import BaseService
+from ..net.transport.serializer import Serializer
+from ..net.sdk_config import SdkConfig
+from ..net.environment.environment import Environment
+from ..models.utils.sentinel import SENTINEL
+from ..models.utils.cast_models import cast_models
+
+
+class SignedDocumentsService(BaseService):
+ """
+ Service class for SignedDocumentsService operations.
+ Provides methods to interact with SignedDocumentsService-related API endpoints.
+ Inherits common functionality from BaseService including authentication and request handling.
+ """
+
+ def __init__(self, *args, **kwargs):
+ """Initialize the service and method-level configurations."""
+ super().__init__(*args, **kwargs)
+ self._download_envelope_signed_documents_config: SdkConfig = {
+ "environment": Environment.RESTAPI
+ }
+
+ def set_download_envelope_signed_documents_config(self, config: SdkConfig):
+ """
+ Sets method-level configuration for download_envelope_signed_documents.
+
+ :param SdkConfig config: Configuration dictionary to override service-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._download_envelope_signed_documents_config = config
+ return self
+
+ @cast_models
+ def download_envelope_signed_documents(
+ self,
+ envelope_id: str,
+ accept: Union[str, None],
+ certificate_of_completion: Union[str, None] = SENTINEL,
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Any:
+ """Download signed documents for an envelope
+
+ :param envelope_id: envelope_id
+ :type envelope_id: str
+ :param accept: accept
+ :type accept: str
+ :param certificate_of_completion: Whether to include the certificate of completion in the downloaded file, defaults to None
+ :type certificate_of_completion: str, optional
+ ...
+ :raises RequestError: Raised when a request fails, with optional HTTP status code and details.
+ ...
+ :return: The parsed response data.
+ :rtype: Any
+ """
+
+ Validator(str).validate(envelope_id)
+ Validator(str).is_nullable().validate(accept)
+ Validator(str).is_optional().is_nullable().validate(certificate_of_completion)
+
+ resolved_config = self._get_resolved_config(
+ self._download_envelope_signed_documents_config, request_config
+ )
+
+ serialized_request = (
+ Serializer(
+ f"{resolved_config.get('base_url') or self.base_url or Environment.RESTAPI.url or Environment.DEFAULT.url}/envelope/{{envelope_id}}/signed_documents",
+ [self.get_access_token(resolved_config)],
+ resolved_config,
+ )
+ .add_header("Accept", accept)
+ .add_path("envelope_id", envelope_id)
+ .add_query(
+ "certificate_of_completion", certificate_of_completion, nullable=True
+ )
+ .serialize()
+ .set_method("GET")
+ )
+
+ response, _, _ = self.send_request(serialized_request)
+ return response
diff --git a/src/signplus/services/signing_steps.py b/src/signplus/services/signing_steps.py
new file mode 100644
index 0000000..501fa16
--- /dev/null
+++ b/src/signplus/services/signing_steps.py
@@ -0,0 +1,81 @@
+from typing import Any, Optional, Union
+from .utils.validator import Validator
+from .utils.base_service import BaseService
+from ..net.transport.serializer import Serializer
+from ..net.sdk_config import SdkConfig
+from ..net.environment.environment import Environment
+from ..models.utils.cast_models import cast_models
+from ..models import AddEnvelopeSigningStepsRequest
+
+
+class SigningStepsService(BaseService):
+ """
+ Service class for SigningStepsService operations.
+ Provides methods to interact with SigningStepsService-related API endpoints.
+ Inherits common functionality from BaseService including authentication and request handling.
+ """
+
+ def __init__(self, *args, **kwargs):
+ """Initialize the service and method-level configurations."""
+ super().__init__(*args, **kwargs)
+ self._add_envelope_signing_steps_config: SdkConfig = {
+ "environment": Environment.RESTAPI
+ }
+
+ def set_add_envelope_signing_steps_config(self, config: SdkConfig):
+ """
+ Sets method-level configuration for add_envelope_signing_steps.
+
+ :param SdkConfig config: Configuration dictionary to override service-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._add_envelope_signing_steps_config = config
+ return self
+
+ @cast_models
+ def add_envelope_signing_steps(
+ self,
+ request_body: AddEnvelopeSigningStepsRequest,
+ envelope_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Any:
+ """Add envelope signing steps
+
+ :param request_body: The request body.
+ :type request_body: AddEnvelopeSigningStepsRequest
+ :param envelope_id: envelope_id
+ :type envelope_id: str
+ :param accept: accept
+ :type accept: str
+ ...
+ :raises RequestError: Raised when a request fails, with optional HTTP status code and details.
+ ...
+ :return: The parsed response data.
+ :rtype: Any
+ """
+
+ Validator(AddEnvelopeSigningStepsRequest).is_nullable().validate(request_body)
+ Validator(str).validate(envelope_id)
+ Validator(str).is_nullable().validate(accept)
+
+ resolved_config = self._get_resolved_config(
+ self._add_envelope_signing_steps_config, request_config
+ )
+
+ serialized_request = (
+ Serializer(
+ f"{resolved_config.get('base_url') or self.base_url or Environment.RESTAPI.url or Environment.DEFAULT.url}/envelope/{{envelope_id}}/signing_steps",
+ [self.get_access_token(resolved_config)],
+ resolved_config,
+ )
+ .add_header("Accept", accept)
+ .add_path("envelope_id", envelope_id)
+ .serialize()
+ .set_method("POST")
+ .set_body(request_body)
+ )
+
+ response, _, _ = self.send_request(serialized_request)
+ return response
diff --git a/src/signplus/services/template.py b/src/signplus/services/template.py
new file mode 100644
index 0000000..a071105
--- /dev/null
+++ b/src/signplus/services/template.py
@@ -0,0 +1,74 @@
+from typing import Any, Optional, Union
+from .utils.validator import Validator
+from .utils.base_service import BaseService
+from ..net.transport.serializer import Serializer
+from ..net.sdk_config import SdkConfig
+from ..net.environment.environment import Environment
+from ..models.utils.cast_models import cast_models
+from ..models import CreateTemplateRequest
+
+
+class TemplateService(BaseService):
+ """
+ Service class for TemplateService operations.
+ Provides methods to interact with TemplateService-related API endpoints.
+ Inherits common functionality from BaseService including authentication and request handling.
+ """
+
+ def __init__(self, *args, **kwargs):
+ """Initialize the service and method-level configurations."""
+ super().__init__(*args, **kwargs)
+ self._create_template_config: SdkConfig = {"environment": Environment.RESTAPI}
+
+ def set_create_template_config(self, config: SdkConfig):
+ """
+ Sets method-level configuration for create_template.
+
+ :param SdkConfig config: Configuration dictionary to override service-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._create_template_config = config
+ return self
+
+ @cast_models
+ def create_template(
+ self,
+ request_body: CreateTemplateRequest,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Any:
+ """Create new template
+
+ :param request_body: The request body.
+ :type request_body: CreateTemplateRequest
+ :param accept: accept
+ :type accept: str
+ ...
+ :raises RequestError: Raised when a request fails, with optional HTTP status code and details.
+ ...
+ :return: The parsed response data.
+ :rtype: Any
+ """
+
+ Validator(CreateTemplateRequest).is_nullable().validate(request_body)
+ Validator(str).is_nullable().validate(accept)
+
+ resolved_config = self._get_resolved_config(
+ self._create_template_config, request_config
+ )
+
+ serialized_request = (
+ Serializer(
+ f"{resolved_config.get('base_url') or self.base_url or Environment.RESTAPI.url or Environment.DEFAULT.url}/template",
+ [self.get_access_token(resolved_config)],
+ resolved_config,
+ )
+ .add_header("Accept", accept)
+ .serialize()
+ .set_method("POST")
+ .set_body(request_body)
+ )
+
+ response, _, _ = self.send_request(serialized_request)
+ return response
diff --git a/src/signplus/services/template_id.py b/src/signplus/services/template_id.py
new file mode 100644
index 0000000..fd3a666
--- /dev/null
+++ b/src/signplus/services/template_id.py
@@ -0,0 +1,83 @@
+from typing import Any, Optional, Union
+from .utils.validator import Validator
+from .utils.base_service import BaseService
+from ..net.transport.serializer import Serializer
+from ..net.sdk_config import SdkConfig
+from ..net.environment.environment import Environment
+from ..models.utils.cast_models import cast_models
+from ..models import CreateEnvelopeFromTemplateRequest
+
+
+class TemplateIdService(BaseService):
+ """
+ Service class for TemplateIdService operations.
+ Provides methods to interact with TemplateIdService-related API endpoints.
+ Inherits common functionality from BaseService including authentication and request handling.
+ """
+
+ def __init__(self, *args, **kwargs):
+ """Initialize the service and method-level configurations."""
+ super().__init__(*args, **kwargs)
+ self._create_envelope_from_template_config: SdkConfig = {
+ "environment": Environment.RESTAPI
+ }
+
+ def set_create_envelope_from_template_config(self, config: SdkConfig):
+ """
+ Sets method-level configuration for create_envelope_from_template.
+
+ :param SdkConfig config: Configuration dictionary to override service-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._create_envelope_from_template_config = config
+ return self
+
+ @cast_models
+ def create_envelope_from_template(
+ self,
+ request_body: CreateEnvelopeFromTemplateRequest,
+ template_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Any:
+ """Create new envelope from template
+
+ :param request_body: The request body.
+ :type request_body: CreateEnvelopeFromTemplateRequest
+ :param template_id: template_id
+ :type template_id: str
+ :param accept: accept
+ :type accept: str
+ ...
+ :raises RequestError: Raised when a request fails, with optional HTTP status code and details.
+ ...
+ :return: The parsed response data.
+ :rtype: Any
+ """
+
+ Validator(CreateEnvelopeFromTemplateRequest).is_nullable().validate(
+ request_body
+ )
+ Validator(str).validate(template_id)
+ Validator(str).is_nullable().validate(accept)
+
+ resolved_config = self._get_resolved_config(
+ self._create_envelope_from_template_config, request_config
+ )
+
+ serialized_request = (
+ Serializer(
+ f"{resolved_config.get('base_url') or self.base_url or Environment.RESTAPI.url or Environment.DEFAULT.url}/envelope/from_template/{{template_id}}",
+ [self.get_access_token(resolved_config)],
+ resolved_config,
+ )
+ .add_header("Accept", accept)
+ .add_path("template_id", template_id)
+ .serialize()
+ .set_method("POST")
+ .set_body(request_body)
+ )
+
+ response, _, _ = self.send_request(serialized_request)
+ return response
diff --git a/src/signplus/services/template_template_id.py b/src/signplus/services/template_template_id.py
new file mode 100644
index 0000000..d62e5fc
--- /dev/null
+++ b/src/signplus/services/template_template_id.py
@@ -0,0 +1,119 @@
+from typing import Any, Optional, Union
+from .utils.validator import Validator
+from .utils.base_service import BaseService
+from ..net.transport.serializer import Serializer
+from ..net.sdk_config import SdkConfig
+from ..net.environment.environment import Environment
+from ..models.utils.cast_models import cast_models
+
+
+class TemplateTemplateIdService(BaseService):
+ """
+ Service class for TemplateTemplateIdService operations.
+ Provides methods to interact with TemplateTemplateIdService-related API endpoints.
+ Inherits common functionality from BaseService including authentication and request handling.
+ """
+
+ def __init__(self, *args, **kwargs):
+ """Initialize the service and method-level configurations."""
+ super().__init__(*args, **kwargs)
+ self._get_template_config: SdkConfig = {"environment": Environment.RESTAPI}
+ self._delete_template_config: SdkConfig = {"environment": Environment.RESTAPI}
+
+ def set_get_template_config(self, config: SdkConfig):
+ """
+ Sets method-level configuration for get_template.
+
+ :param SdkConfig config: Configuration dictionary to override service-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._get_template_config = config
+ return self
+
+ def set_delete_template_config(self, config: SdkConfig):
+ """
+ Sets method-level configuration for delete_template.
+
+ :param SdkConfig config: Configuration dictionary to override service-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._delete_template_config = config
+ return self
+
+ @cast_models
+ def get_template(
+ self,
+ template_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Any:
+ """Get template
+
+ :param template_id: template_id
+ :type template_id: str
+ :param accept: accept
+ :type accept: str
+ ...
+ :raises RequestError: Raised when a request fails, with optional HTTP status code and details.
+ ...
+ :return: The parsed response data.
+ :rtype: Any
+ """
+
+ Validator(str).validate(template_id)
+ Validator(str).is_nullable().validate(accept)
+
+ resolved_config = self._get_resolved_config(
+ self._get_template_config, request_config
+ )
+
+ serialized_request = (
+ Serializer(
+ f"{resolved_config.get('base_url') or self.base_url or Environment.RESTAPI.url or Environment.DEFAULT.url}/template/{{template_id}}",
+ [self.get_access_token(resolved_config)],
+ resolved_config,
+ )
+ .add_header("Accept", accept)
+ .add_path("template_id", template_id)
+ .serialize()
+ .set_method("GET")
+ )
+
+ response, _, _ = self.send_request(serialized_request)
+ return response
+
+ @cast_models
+ def delete_template(
+ self, template_id: str, *, request_config: Optional[SdkConfig] = None
+ ) -> Any:
+ """Delete template
+
+ :param template_id: template_id
+ :type template_id: str
+ ...
+ :raises RequestError: Raised when a request fails, with optional HTTP status code and details.
+ ...
+ :return: The parsed response data.
+ :rtype: Any
+ """
+
+ Validator(str).validate(template_id)
+
+ resolved_config = self._get_resolved_config(
+ self._delete_template_config, request_config
+ )
+
+ serialized_request = (
+ Serializer(
+ f"{resolved_config.get('base_url') or self.base_url or Environment.RESTAPI.url or Environment.DEFAULT.url}/template/{{template_id}}",
+ [self.get_access_token(resolved_config)],
+ resolved_config,
+ )
+ .add_path("template_id", template_id)
+ .serialize()
+ .set_method("DELETE")
+ )
+
+ response, _, _ = self.send_request(serialized_request)
+ return response
diff --git a/src/signplus/services/template_template_id_annotation.py b/src/signplus/services/template_template_id_annotation.py
new file mode 100644
index 0000000..48633d7
--- /dev/null
+++ b/src/signplus/services/template_template_id_annotation.py
@@ -0,0 +1,81 @@
+from typing import Any, Optional, Union
+from .utils.validator import Validator
+from .utils.base_service import BaseService
+from ..net.transport.serializer import Serializer
+from ..net.sdk_config import SdkConfig
+from ..net.environment.environment import Environment
+from ..models.utils.cast_models import cast_models
+from ..models import AddTemplateAnnotationRequest
+
+
+class TemplateTemplateIdAnnotationService(BaseService):
+ """
+ Service class for TemplateTemplateIdAnnotationService operations.
+ Provides methods to interact with TemplateTemplateIdAnnotationService-related API endpoints.
+ Inherits common functionality from BaseService including authentication and request handling.
+ """
+
+ def __init__(self, *args, **kwargs):
+ """Initialize the service and method-level configurations."""
+ super().__init__(*args, **kwargs)
+ self._add_template_annotation_config: SdkConfig = {
+ "environment": Environment.RESTAPI
+ }
+
+ def set_add_template_annotation_config(self, config: SdkConfig):
+ """
+ Sets method-level configuration for add_template_annotation.
+
+ :param SdkConfig config: Configuration dictionary to override service-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._add_template_annotation_config = config
+ return self
+
+ @cast_models
+ def add_template_annotation(
+ self,
+ request_body: AddTemplateAnnotationRequest,
+ template_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Any:
+ """Add template annotation
+
+ :param request_body: The request body.
+ :type request_body: AddTemplateAnnotationRequest
+ :param template_id: template_id
+ :type template_id: str
+ :param accept: accept
+ :type accept: str
+ ...
+ :raises RequestError: Raised when a request fails, with optional HTTP status code and details.
+ ...
+ :return: The parsed response data.
+ :rtype: Any
+ """
+
+ Validator(AddTemplateAnnotationRequest).is_nullable().validate(request_body)
+ Validator(str).validate(template_id)
+ Validator(str).is_nullable().validate(accept)
+
+ resolved_config = self._get_resolved_config(
+ self._add_template_annotation_config, request_config
+ )
+
+ serialized_request = (
+ Serializer(
+ f"{resolved_config.get('base_url') or self.base_url or Environment.RESTAPI.url or Environment.DEFAULT.url}/template/{{template_id}}/annotation",
+ [self.get_access_token(resolved_config)],
+ resolved_config,
+ )
+ .add_header("Accept", accept)
+ .add_path("template_id", template_id)
+ .serialize()
+ .set_method("POST")
+ .set_body(request_body)
+ )
+
+ response, _, _ = self.send_request(serialized_request)
+ return response
diff --git a/src/signplus/services/template_template_id_annotation_annotation_id.py b/src/signplus/services/template_template_id_annotation_annotation_id.py
new file mode 100644
index 0000000..54f80a6
--- /dev/null
+++ b/src/signplus/services/template_template_id_annotation_annotation_id.py
@@ -0,0 +1,75 @@
+from typing import Any, Optional
+from .utils.validator import Validator
+from .utils.base_service import BaseService
+from ..net.transport.serializer import Serializer
+from ..net.sdk_config import SdkConfig
+from ..net.environment.environment import Environment
+from ..models.utils.cast_models import cast_models
+
+
+class TemplateTemplateIdAnnotationAnnotationIdService(BaseService):
+ """
+ Service class for TemplateTemplateIdAnnotationAnnotationIdService operations.
+ Provides methods to interact with TemplateTemplateIdAnnotationAnnotationIdService-related API endpoints.
+ Inherits common functionality from BaseService including authentication and request handling.
+ """
+
+ def __init__(self, *args, **kwargs):
+ """Initialize the service and method-level configurations."""
+ super().__init__(*args, **kwargs)
+ self._delete_template_annotation_config: SdkConfig = {
+ "environment": Environment.RESTAPI
+ }
+
+ def set_delete_template_annotation_config(self, config: SdkConfig):
+ """
+ Sets method-level configuration for delete_template_annotation.
+
+ :param SdkConfig config: Configuration dictionary to override service-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._delete_template_annotation_config = config
+ return self
+
+ @cast_models
+ def delete_template_annotation(
+ self,
+ template_id: str,
+ annotation_id: str,
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Any:
+ """Delete template annotation
+
+ :param template_id: template_id
+ :type template_id: str
+ :param annotation_id: annotation_id
+ :type annotation_id: str
+ ...
+ :raises RequestError: Raised when a request fails, with optional HTTP status code and details.
+ ...
+ :return: The parsed response data.
+ :rtype: Any
+ """
+
+ Validator(str).validate(template_id)
+ Validator(str).validate(annotation_id)
+
+ resolved_config = self._get_resolved_config(
+ self._delete_template_annotation_config, request_config
+ )
+
+ serialized_request = (
+ Serializer(
+ f"{resolved_config.get('base_url') or self.base_url or Environment.RESTAPI.url or Environment.DEFAULT.url}/template/{{template_id}}/annotation/{{annotation_id}}",
+ [self.get_access_token(resolved_config)],
+ resolved_config,
+ )
+ .add_path("template_id", template_id)
+ .add_path("annotation_id", annotation_id)
+ .serialize()
+ .set_method("DELETE")
+ )
+
+ response, _, _ = self.send_request(serialized_request)
+ return response
diff --git a/src/signplus/services/template_template_id_annotations.py b/src/signplus/services/template_template_id_annotations.py
new file mode 100644
index 0000000..938bf85
--- /dev/null
+++ b/src/signplus/services/template_template_id_annotations.py
@@ -0,0 +1,75 @@
+from typing import Any, Optional, Union
+from .utils.validator import Validator
+from .utils.base_service import BaseService
+from ..net.transport.serializer import Serializer
+from ..net.sdk_config import SdkConfig
+from ..net.environment.environment import Environment
+from ..models.utils.cast_models import cast_models
+
+
+class TemplateTemplateIdAnnotationsService(BaseService):
+ """
+ Service class for TemplateTemplateIdAnnotationsService operations.
+ Provides methods to interact with TemplateTemplateIdAnnotationsService-related API endpoints.
+ Inherits common functionality from BaseService including authentication and request handling.
+ """
+
+ def __init__(self, *args, **kwargs):
+ """Initialize the service and method-level configurations."""
+ super().__init__(*args, **kwargs)
+ self._get_template_annotations_config: SdkConfig = {
+ "environment": Environment.RESTAPI
+ }
+
+ def set_get_template_annotations_config(self, config: SdkConfig):
+ """
+ Sets method-level configuration for get_template_annotations.
+
+ :param SdkConfig config: Configuration dictionary to override service-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._get_template_annotations_config = config
+ return self
+
+ @cast_models
+ def get_template_annotations(
+ self,
+ template_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Any:
+ """Get template annotations
+
+ :param template_id: template_id
+ :type template_id: str
+ :param accept: accept
+ :type accept: str
+ ...
+ :raises RequestError: Raised when a request fails, with optional HTTP status code and details.
+ ...
+ :return: The parsed response data.
+ :rtype: Any
+ """
+
+ Validator(str).validate(template_id)
+ Validator(str).is_nullable().validate(accept)
+
+ resolved_config = self._get_resolved_config(
+ self._get_template_annotations_config, request_config
+ )
+
+ serialized_request = (
+ Serializer(
+ f"{resolved_config.get('base_url') or self.base_url or Environment.RESTAPI.url or Environment.DEFAULT.url}/template/{{template_id}}/annotations",
+ [self.get_access_token(resolved_config)],
+ resolved_config,
+ )
+ .add_header("Accept", accept)
+ .add_path("template_id", template_id)
+ .serialize()
+ .set_method("GET")
+ )
+
+ response, _, _ = self.send_request(serialized_request)
+ return response
diff --git a/src/signplus/services/template_template_id_annotations_document_id.py b/src/signplus/services/template_template_id_annotations_document_id.py
new file mode 100644
index 0000000..5b17292
--- /dev/null
+++ b/src/signplus/services/template_template_id_annotations_document_id.py
@@ -0,0 +1,80 @@
+from typing import Any, Optional, Union
+from .utils.validator import Validator
+from .utils.base_service import BaseService
+from ..net.transport.serializer import Serializer
+from ..net.sdk_config import SdkConfig
+from ..net.environment.environment import Environment
+from ..models.utils.cast_models import cast_models
+
+
+class TemplateTemplateIdAnnotationsDocumentIdService(BaseService):
+ """
+ Service class for TemplateTemplateIdAnnotationsDocumentIdService operations.
+ Provides methods to interact with TemplateTemplateIdAnnotationsDocumentIdService-related API endpoints.
+ Inherits common functionality from BaseService including authentication and request handling.
+ """
+
+ def __init__(self, *args, **kwargs):
+ """Initialize the service and method-level configurations."""
+ super().__init__(*args, **kwargs)
+ self._get_document_template_annotations_config: SdkConfig = {
+ "environment": Environment.RESTAPI
+ }
+
+ def set_get_document_template_annotations_config(self, config: SdkConfig):
+ """
+ Sets method-level configuration for get_document_template_annotations.
+
+ :param SdkConfig config: Configuration dictionary to override service-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._get_document_template_annotations_config = config
+ return self
+
+ @cast_models
+ def get_document_template_annotations(
+ self,
+ template_id: str,
+ document_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Any:
+ """Get document template annotations
+
+ :param template_id: template_id
+ :type template_id: str
+ :param document_id: document_id
+ :type document_id: str
+ :param accept: accept
+ :type accept: str
+ ...
+ :raises RequestError: Raised when a request fails, with optional HTTP status code and details.
+ ...
+ :return: The parsed response data.
+ :rtype: Any
+ """
+
+ Validator(str).validate(template_id)
+ Validator(str).validate(document_id)
+ Validator(str).is_nullable().validate(accept)
+
+ resolved_config = self._get_resolved_config(
+ self._get_document_template_annotations_config, request_config
+ )
+
+ serialized_request = (
+ Serializer(
+ f"{resolved_config.get('base_url') or self.base_url or Environment.RESTAPI.url or Environment.DEFAULT.url}/template/{{template_id}}/annotations/{{document_id}}",
+ [self.get_access_token(resolved_config)],
+ resolved_config,
+ )
+ .add_header("Accept", accept)
+ .add_path("template_id", template_id)
+ .add_path("document_id", document_id)
+ .serialize()
+ .set_method("GET")
+ )
+
+ response, _, _ = self.send_request(serialized_request)
+ return response
diff --git a/src/signplus/services/template_template_id_attachments_placeholders.py b/src/signplus/services/template_template_id_attachments_placeholders.py
new file mode 100644
index 0000000..797aa10
--- /dev/null
+++ b/src/signplus/services/template_template_id_attachments_placeholders.py
@@ -0,0 +1,83 @@
+from typing import Any, Optional, Union
+from .utils.validator import Validator
+from .utils.base_service import BaseService
+from ..net.transport.serializer import Serializer
+from ..net.sdk_config import SdkConfig
+from ..net.environment.environment import Environment
+from ..models.utils.cast_models import cast_models
+from ..models import SetTemplateAttachmentsPlaceholdersRequest
+
+
+class TemplateTemplateIdAttachmentsPlaceholdersService(BaseService):
+ """
+ Service class for TemplateTemplateIdAttachmentsPlaceholdersService operations.
+ Provides methods to interact with TemplateTemplateIdAttachmentsPlaceholdersService-related API endpoints.
+ Inherits common functionality from BaseService including authentication and request handling.
+ """
+
+ def __init__(self, *args, **kwargs):
+ """Initialize the service and method-level configurations."""
+ super().__init__(*args, **kwargs)
+ self._set_template_attachments_placeholders_config: SdkConfig = {
+ "environment": Environment.RESTAPI
+ }
+
+ def set_set_template_attachments_placeholders_config(self, config: SdkConfig):
+ """
+ Sets method-level configuration for set_template_attachments_placeholders.
+
+ :param SdkConfig config: Configuration dictionary to override service-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._set_template_attachments_placeholders_config = config
+ return self
+
+ @cast_models
+ def set_template_attachments_placeholders(
+ self,
+ request_body: SetTemplateAttachmentsPlaceholdersRequest,
+ template_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Any:
+ """Placeholders to be set, completely replacing the existing ones.
+
+ :param request_body: The request body.
+ :type request_body: SetTemplateAttachmentsPlaceholdersRequest
+ :param template_id: template_id
+ :type template_id: str
+ :param accept: accept
+ :type accept: str
+ ...
+ :raises RequestError: Raised when a request fails, with optional HTTP status code and details.
+ ...
+ :return: The parsed response data.
+ :rtype: Any
+ """
+
+ Validator(SetTemplateAttachmentsPlaceholdersRequest).is_nullable().validate(
+ request_body
+ )
+ Validator(str).validate(template_id)
+ Validator(str).is_nullable().validate(accept)
+
+ resolved_config = self._get_resolved_config(
+ self._set_template_attachments_placeholders_config, request_config
+ )
+
+ serialized_request = (
+ Serializer(
+ f"{resolved_config.get('base_url') or self.base_url or Environment.RESTAPI.url or Environment.DEFAULT.url}/template/{{template_id}}/attachments/placeholders",
+ [self.get_access_token(resolved_config)],
+ resolved_config,
+ )
+ .add_header("Accept", accept)
+ .add_path("template_id", template_id)
+ .serialize()
+ .set_method("PUT")
+ .set_body(request_body)
+ )
+
+ response, _, _ = self.send_request(serialized_request)
+ return response
diff --git a/src/signplus/services/template_template_id_attachments_settings.py b/src/signplus/services/template_template_id_attachments_settings.py
new file mode 100644
index 0000000..17645f5
--- /dev/null
+++ b/src/signplus/services/template_template_id_attachments_settings.py
@@ -0,0 +1,83 @@
+from typing import Any, Optional, Union
+from .utils.validator import Validator
+from .utils.base_service import BaseService
+from ..net.transport.serializer import Serializer
+from ..net.sdk_config import SdkConfig
+from ..net.environment.environment import Environment
+from ..models.utils.cast_models import cast_models
+from ..models import SetTemplateAttachmentsSettingsRequest
+
+
+class TemplateTemplateIdAttachmentsSettingsService(BaseService):
+ """
+ Service class for TemplateTemplateIdAttachmentsSettingsService operations.
+ Provides methods to interact with TemplateTemplateIdAttachmentsSettingsService-related API endpoints.
+ Inherits common functionality from BaseService including authentication and request handling.
+ """
+
+ def __init__(self, *args, **kwargs):
+ """Initialize the service and method-level configurations."""
+ super().__init__(*args, **kwargs)
+ self._set_template_attachments_settings_config: SdkConfig = {
+ "environment": Environment.RESTAPI
+ }
+
+ def set_set_template_attachments_settings_config(self, config: SdkConfig):
+ """
+ Sets method-level configuration for set_template_attachments_settings.
+
+ :param SdkConfig config: Configuration dictionary to override service-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._set_template_attachments_settings_config = config
+ return self
+
+ @cast_models
+ def set_template_attachments_settings(
+ self,
+ request_body: SetTemplateAttachmentsSettingsRequest,
+ template_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Any:
+ """Set template attachment settings
+
+ :param request_body: The request body.
+ :type request_body: SetTemplateAttachmentsSettingsRequest
+ :param template_id: template_id
+ :type template_id: str
+ :param accept: accept
+ :type accept: str
+ ...
+ :raises RequestError: Raised when a request fails, with optional HTTP status code and details.
+ ...
+ :return: The parsed response data.
+ :rtype: Any
+ """
+
+ Validator(SetTemplateAttachmentsSettingsRequest).is_nullable().validate(
+ request_body
+ )
+ Validator(str).validate(template_id)
+ Validator(str).is_nullable().validate(accept)
+
+ resolved_config = self._get_resolved_config(
+ self._set_template_attachments_settings_config, request_config
+ )
+
+ serialized_request = (
+ Serializer(
+ f"{resolved_config.get('base_url') or self.base_url or Environment.RESTAPI.url or Environment.DEFAULT.url}/template/{{template_id}}/attachments/settings",
+ [self.get_access_token(resolved_config)],
+ resolved_config,
+ )
+ .add_header("Accept", accept)
+ .add_path("template_id", template_id)
+ .serialize()
+ .set_method("PUT")
+ .set_body(request_body)
+ )
+
+ response, _, _ = self.send_request(serialized_request)
+ return response
diff --git a/src/signplus/services/template_template_id_document.py b/src/signplus/services/template_template_id_document.py
new file mode 100644
index 0000000..ecd1248
--- /dev/null
+++ b/src/signplus/services/template_template_id_document.py
@@ -0,0 +1,81 @@
+from typing import Any, Optional, Union
+from .utils.validator import Validator
+from .utils.base_service import BaseService
+from ..net.transport.serializer import Serializer
+from ..net.sdk_config import SdkConfig
+from ..net.environment.environment import Environment
+from ..models.utils.cast_models import cast_models
+from ..models import AddTemplateDocumentRequest
+
+
+class TemplateTemplateIdDocumentService(BaseService):
+ """
+ Service class for TemplateTemplateIdDocumentService operations.
+ Provides methods to interact with TemplateTemplateIdDocumentService-related API endpoints.
+ Inherits common functionality from BaseService including authentication and request handling.
+ """
+
+ def __init__(self, *args, **kwargs):
+ """Initialize the service and method-level configurations."""
+ super().__init__(*args, **kwargs)
+ self._add_template_document_config: SdkConfig = {
+ "environment": Environment.RESTAPI
+ }
+
+ def set_add_template_document_config(self, config: SdkConfig):
+ """
+ Sets method-level configuration for add_template_document.
+
+ :param SdkConfig config: Configuration dictionary to override service-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._add_template_document_config = config
+ return self
+
+ @cast_models
+ def add_template_document(
+ self,
+ request_body: AddTemplateDocumentRequest,
+ template_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Any:
+ """Add template document
+
+ :param request_body: The request body.
+ :type request_body: AddTemplateDocumentRequest
+ :param template_id: template_id
+ :type template_id: str
+ :param accept: accept
+ :type accept: str
+ ...
+ :raises RequestError: Raised when a request fails, with optional HTTP status code and details.
+ ...
+ :return: The parsed response data.
+ :rtype: Any
+ """
+
+ Validator(AddTemplateDocumentRequest).is_nullable().validate(request_body)
+ Validator(str).validate(template_id)
+ Validator(str).is_nullable().validate(accept)
+
+ resolved_config = self._get_resolved_config(
+ self._add_template_document_config, request_config
+ )
+
+ serialized_request = (
+ Serializer(
+ f"{resolved_config.get('base_url') or self.base_url or Environment.RESTAPI.url or Environment.DEFAULT.url}/template/{{template_id}}/document",
+ [self.get_access_token(resolved_config)],
+ resolved_config,
+ )
+ .add_header("Accept", accept)
+ .add_path("template_id", template_id)
+ .serialize()
+ .set_method("POST")
+ .set_body(request_body, "multipart/form-data")
+ )
+
+ response, _, _ = self.send_request(serialized_request)
+ return response
diff --git a/src/signplus/services/template_template_id_document_document_id.py b/src/signplus/services/template_template_id_document_document_id.py
new file mode 100644
index 0000000..cf84719
--- /dev/null
+++ b/src/signplus/services/template_template_id_document_document_id.py
@@ -0,0 +1,80 @@
+from typing import Any, Optional, Union
+from .utils.validator import Validator
+from .utils.base_service import BaseService
+from ..net.transport.serializer import Serializer
+from ..net.sdk_config import SdkConfig
+from ..net.environment.environment import Environment
+from ..models.utils.cast_models import cast_models
+
+
+class TemplateTemplateIdDocumentDocumentIdService(BaseService):
+ """
+ Service class for TemplateTemplateIdDocumentDocumentIdService operations.
+ Provides methods to interact with TemplateTemplateIdDocumentDocumentIdService-related API endpoints.
+ Inherits common functionality from BaseService including authentication and request handling.
+ """
+
+ def __init__(self, *args, **kwargs):
+ """Initialize the service and method-level configurations."""
+ super().__init__(*args, **kwargs)
+ self._get_template_document_config: SdkConfig = {
+ "environment": Environment.RESTAPI
+ }
+
+ def set_get_template_document_config(self, config: SdkConfig):
+ """
+ Sets method-level configuration for get_template_document.
+
+ :param SdkConfig config: Configuration dictionary to override service-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._get_template_document_config = config
+ return self
+
+ @cast_models
+ def get_template_document(
+ self,
+ template_id: str,
+ document_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Any:
+ """Get template document
+
+ :param template_id: template_id
+ :type template_id: str
+ :param document_id: document_id
+ :type document_id: str
+ :param accept: accept
+ :type accept: str
+ ...
+ :raises RequestError: Raised when a request fails, with optional HTTP status code and details.
+ ...
+ :return: The parsed response data.
+ :rtype: Any
+ """
+
+ Validator(str).validate(template_id)
+ Validator(str).validate(document_id)
+ Validator(str).is_nullable().validate(accept)
+
+ resolved_config = self._get_resolved_config(
+ self._get_template_document_config, request_config
+ )
+
+ serialized_request = (
+ Serializer(
+ f"{resolved_config.get('base_url') or self.base_url or Environment.RESTAPI.url or Environment.DEFAULT.url}/template/{{template_id}}/document/{{document_id}}",
+ [self.get_access_token(resolved_config)],
+ resolved_config,
+ )
+ .add_header("Accept", accept)
+ .add_path("template_id", template_id)
+ .add_path("document_id", document_id)
+ .serialize()
+ .set_method("GET")
+ )
+
+ response, _, _ = self.send_request(serialized_request)
+ return response
diff --git a/src/signplus/services/template_template_id_documents.py b/src/signplus/services/template_template_id_documents.py
new file mode 100644
index 0000000..6eae989
--- /dev/null
+++ b/src/signplus/services/template_template_id_documents.py
@@ -0,0 +1,75 @@
+from typing import Any, Optional, Union
+from .utils.validator import Validator
+from .utils.base_service import BaseService
+from ..net.transport.serializer import Serializer
+from ..net.sdk_config import SdkConfig
+from ..net.environment.environment import Environment
+from ..models.utils.cast_models import cast_models
+
+
+class TemplateTemplateIdDocumentsService(BaseService):
+ """
+ Service class for TemplateTemplateIdDocumentsService operations.
+ Provides methods to interact with TemplateTemplateIdDocumentsService-related API endpoints.
+ Inherits common functionality from BaseService including authentication and request handling.
+ """
+
+ def __init__(self, *args, **kwargs):
+ """Initialize the service and method-level configurations."""
+ super().__init__(*args, **kwargs)
+ self._get_template_documents_config: SdkConfig = {
+ "environment": Environment.RESTAPI
+ }
+
+ def set_get_template_documents_config(self, config: SdkConfig):
+ """
+ Sets method-level configuration for get_template_documents.
+
+ :param SdkConfig config: Configuration dictionary to override service-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._get_template_documents_config = config
+ return self
+
+ @cast_models
+ def get_template_documents(
+ self,
+ template_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Any:
+ """Get template documents
+
+ :param template_id: template_id
+ :type template_id: str
+ :param accept: accept
+ :type accept: str
+ ...
+ :raises RequestError: Raised when a request fails, with optional HTTP status code and details.
+ ...
+ :return: The parsed response data.
+ :rtype: Any
+ """
+
+ Validator(str).validate(template_id)
+ Validator(str).is_nullable().validate(accept)
+
+ resolved_config = self._get_resolved_config(
+ self._get_template_documents_config, request_config
+ )
+
+ serialized_request = (
+ Serializer(
+ f"{resolved_config.get('base_url') or self.base_url or Environment.RESTAPI.url or Environment.DEFAULT.url}/template/{{template_id}}/documents",
+ [self.get_access_token(resolved_config)],
+ resolved_config,
+ )
+ .add_header("Accept", accept)
+ .add_path("template_id", template_id)
+ .serialize()
+ .set_method("GET")
+ )
+
+ response, _, _ = self.send_request(serialized_request)
+ return response
diff --git a/src/signplus/services/template_template_id_duplicate.py b/src/signplus/services/template_template_id_duplicate.py
new file mode 100644
index 0000000..9cfaf43
--- /dev/null
+++ b/src/signplus/services/template_template_id_duplicate.py
@@ -0,0 +1,75 @@
+from typing import Any, Optional, Union
+from .utils.validator import Validator
+from .utils.base_service import BaseService
+from ..net.transport.serializer import Serializer
+from ..net.sdk_config import SdkConfig
+from ..net.environment.environment import Environment
+from ..models.utils.cast_models import cast_models
+
+
+class TemplateTemplateIdDuplicateService(BaseService):
+ """
+ Service class for TemplateTemplateIdDuplicateService operations.
+ Provides methods to interact with TemplateTemplateIdDuplicateService-related API endpoints.
+ Inherits common functionality from BaseService including authentication and request handling.
+ """
+
+ def __init__(self, *args, **kwargs):
+ """Initialize the service and method-level configurations."""
+ super().__init__(*args, **kwargs)
+ self._duplicate_template_config: SdkConfig = {
+ "environment": Environment.RESTAPI
+ }
+
+ def set_duplicate_template_config(self, config: SdkConfig):
+ """
+ Sets method-level configuration for duplicate_template.
+
+ :param SdkConfig config: Configuration dictionary to override service-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._duplicate_template_config = config
+ return self
+
+ @cast_models
+ def duplicate_template(
+ self,
+ template_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Any:
+ """Duplicate template
+
+ :param template_id: template_id
+ :type template_id: str
+ :param accept: accept
+ :type accept: str
+ ...
+ :raises RequestError: Raised when a request fails, with optional HTTP status code and details.
+ ...
+ :return: The parsed response data.
+ :rtype: Any
+ """
+
+ Validator(str).validate(template_id)
+ Validator(str).is_nullable().validate(accept)
+
+ resolved_config = self._get_resolved_config(
+ self._duplicate_template_config, request_config
+ )
+
+ serialized_request = (
+ Serializer(
+ f"{resolved_config.get('base_url') or self.base_url or Environment.RESTAPI.url or Environment.DEFAULT.url}/template/{{template_id}}/duplicate",
+ [self.get_access_token(resolved_config)],
+ resolved_config,
+ )
+ .add_header("Accept", accept)
+ .add_path("template_id", template_id)
+ .serialize()
+ .set_method("POST")
+ )
+
+ response, _, _ = self.send_request(serialized_request)
+ return response
diff --git a/src/signplus/services/template_template_id_rename.py b/src/signplus/services/template_template_id_rename.py
new file mode 100644
index 0000000..fb5fec4
--- /dev/null
+++ b/src/signplus/services/template_template_id_rename.py
@@ -0,0 +1,79 @@
+from typing import Any, Optional, Union
+from .utils.validator import Validator
+from .utils.base_service import BaseService
+from ..net.transport.serializer import Serializer
+from ..net.sdk_config import SdkConfig
+from ..net.environment.environment import Environment
+from ..models.utils.cast_models import cast_models
+from ..models import RenameTemplateRequest
+
+
+class TemplateTemplateIdRenameService(BaseService):
+ """
+ Service class for TemplateTemplateIdRenameService operations.
+ Provides methods to interact with TemplateTemplateIdRenameService-related API endpoints.
+ Inherits common functionality from BaseService including authentication and request handling.
+ """
+
+ def __init__(self, *args, **kwargs):
+ """Initialize the service and method-level configurations."""
+ super().__init__(*args, **kwargs)
+ self._rename_template_config: SdkConfig = {"environment": Environment.RESTAPI}
+
+ def set_rename_template_config(self, config: SdkConfig):
+ """
+ Sets method-level configuration for rename_template.
+
+ :param SdkConfig config: Configuration dictionary to override service-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._rename_template_config = config
+ return self
+
+ @cast_models
+ def rename_template(
+ self,
+ request_body: RenameTemplateRequest,
+ template_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Any:
+ """Rename template
+
+ :param request_body: The request body.
+ :type request_body: RenameTemplateRequest
+ :param template_id: template_id
+ :type template_id: str
+ :param accept: accept
+ :type accept: str
+ ...
+ :raises RequestError: Raised when a request fails, with optional HTTP status code and details.
+ ...
+ :return: The parsed response data.
+ :rtype: Any
+ """
+
+ Validator(RenameTemplateRequest).is_nullable().validate(request_body)
+ Validator(str).validate(template_id)
+ Validator(str).is_nullable().validate(accept)
+
+ resolved_config = self._get_resolved_config(
+ self._rename_template_config, request_config
+ )
+
+ serialized_request = (
+ Serializer(
+ f"{resolved_config.get('base_url') or self.base_url or Environment.RESTAPI.url or Environment.DEFAULT.url}/template/{{template_id}}/rename",
+ [self.get_access_token(resolved_config)],
+ resolved_config,
+ )
+ .add_header("Accept", accept)
+ .add_path("template_id", template_id)
+ .serialize()
+ .set_method("PUT")
+ .set_body(request_body)
+ )
+
+ response, _, _ = self.send_request(serialized_request)
+ return response
diff --git a/src/signplus/services/template_template_id_set_comment.py b/src/signplus/services/template_template_id_set_comment.py
new file mode 100644
index 0000000..e0995ad
--- /dev/null
+++ b/src/signplus/services/template_template_id_set_comment.py
@@ -0,0 +1,81 @@
+from typing import Any, Optional, Union
+from .utils.validator import Validator
+from .utils.base_service import BaseService
+from ..net.transport.serializer import Serializer
+from ..net.sdk_config import SdkConfig
+from ..net.environment.environment import Environment
+from ..models.utils.cast_models import cast_models
+from ..models import SetTemplateCommentRequest
+
+
+class TemplateTemplateIdSetCommentService(BaseService):
+ """
+ Service class for TemplateTemplateIdSetCommentService operations.
+ Provides methods to interact with TemplateTemplateIdSetCommentService-related API endpoints.
+ Inherits common functionality from BaseService including authentication and request handling.
+ """
+
+ def __init__(self, *args, **kwargs):
+ """Initialize the service and method-level configurations."""
+ super().__init__(*args, **kwargs)
+ self._set_template_comment_config: SdkConfig = {
+ "environment": Environment.RESTAPI
+ }
+
+ def set_set_template_comment_config(self, config: SdkConfig):
+ """
+ Sets method-level configuration for set_template_comment.
+
+ :param SdkConfig config: Configuration dictionary to override service-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._set_template_comment_config = config
+ return self
+
+ @cast_models
+ def set_template_comment(
+ self,
+ request_body: SetTemplateCommentRequest,
+ template_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Any:
+ """Set template comment
+
+ :param request_body: The request body.
+ :type request_body: SetTemplateCommentRequest
+ :param template_id: template_id
+ :type template_id: str
+ :param accept: accept
+ :type accept: str
+ ...
+ :raises RequestError: Raised when a request fails, with optional HTTP status code and details.
+ ...
+ :return: The parsed response data.
+ :rtype: Any
+ """
+
+ Validator(SetTemplateCommentRequest).is_nullable().validate(request_body)
+ Validator(str).validate(template_id)
+ Validator(str).is_nullable().validate(accept)
+
+ resolved_config = self._get_resolved_config(
+ self._set_template_comment_config, request_config
+ )
+
+ serialized_request = (
+ Serializer(
+ f"{resolved_config.get('base_url') or self.base_url or Environment.RESTAPI.url or Environment.DEFAULT.url}/template/{{template_id}}/set_comment",
+ [self.get_access_token(resolved_config)],
+ resolved_config,
+ )
+ .add_header("Accept", accept)
+ .add_path("template_id", template_id)
+ .serialize()
+ .set_method("PUT")
+ .set_body(request_body)
+ )
+
+ response, _, _ = self.send_request(serialized_request)
+ return response
diff --git a/src/signplus/services/template_template_id_set_notification.py b/src/signplus/services/template_template_id_set_notification.py
new file mode 100644
index 0000000..1264748
--- /dev/null
+++ b/src/signplus/services/template_template_id_set_notification.py
@@ -0,0 +1,81 @@
+from typing import Any, Optional, Union
+from .utils.validator import Validator
+from .utils.base_service import BaseService
+from ..net.transport.serializer import Serializer
+from ..net.sdk_config import SdkConfig
+from ..net.environment.environment import Environment
+from ..models.utils.cast_models import cast_models
+from ..models import SetTemplateNotificationRequest
+
+
+class TemplateTemplateIdSetNotificationService(BaseService):
+ """
+ Service class for TemplateTemplateIdSetNotificationService operations.
+ Provides methods to interact with TemplateTemplateIdSetNotificationService-related API endpoints.
+ Inherits common functionality from BaseService including authentication and request handling.
+ """
+
+ def __init__(self, *args, **kwargs):
+ """Initialize the service and method-level configurations."""
+ super().__init__(*args, **kwargs)
+ self._set_template_notification_config: SdkConfig = {
+ "environment": Environment.RESTAPI
+ }
+
+ def set_set_template_notification_config(self, config: SdkConfig):
+ """
+ Sets method-level configuration for set_template_notification.
+
+ :param SdkConfig config: Configuration dictionary to override service-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._set_template_notification_config = config
+ return self
+
+ @cast_models
+ def set_template_notification(
+ self,
+ request_body: SetTemplateNotificationRequest,
+ template_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Any:
+ """Set template notification
+
+ :param request_body: The request body.
+ :type request_body: SetTemplateNotificationRequest
+ :param template_id: template_id
+ :type template_id: str
+ :param accept: accept
+ :type accept: str
+ ...
+ :raises RequestError: Raised when a request fails, with optional HTTP status code and details.
+ ...
+ :return: The parsed response data.
+ :rtype: Any
+ """
+
+ Validator(SetTemplateNotificationRequest).is_nullable().validate(request_body)
+ Validator(str).validate(template_id)
+ Validator(str).is_nullable().validate(accept)
+
+ resolved_config = self._get_resolved_config(
+ self._set_template_notification_config, request_config
+ )
+
+ serialized_request = (
+ Serializer(
+ f"{resolved_config.get('base_url') or self.base_url or Environment.RESTAPI.url or Environment.DEFAULT.url}/template/{{template_id}}/set_notification",
+ [self.get_access_token(resolved_config)],
+ resolved_config,
+ )
+ .add_header("Accept", accept)
+ .add_path("template_id", template_id)
+ .serialize()
+ .set_method("PUT")
+ .set_body(request_body)
+ )
+
+ response, _, _ = self.send_request(serialized_request)
+ return response
diff --git a/src/signplus/services/template_template_id_signing_steps.py b/src/signplus/services/template_template_id_signing_steps.py
new file mode 100644
index 0000000..016bfa2
--- /dev/null
+++ b/src/signplus/services/template_template_id_signing_steps.py
@@ -0,0 +1,81 @@
+from typing import Any, Optional, Union
+from .utils.validator import Validator
+from .utils.base_service import BaseService
+from ..net.transport.serializer import Serializer
+from ..net.sdk_config import SdkConfig
+from ..net.environment.environment import Environment
+from ..models.utils.cast_models import cast_models
+from ..models import AddTemplateSigningStepsRequest
+
+
+class TemplateTemplateIdSigningStepsService(BaseService):
+ """
+ Service class for TemplateTemplateIdSigningStepsService operations.
+ Provides methods to interact with TemplateTemplateIdSigningStepsService-related API endpoints.
+ Inherits common functionality from BaseService including authentication and request handling.
+ """
+
+ def __init__(self, *args, **kwargs):
+ """Initialize the service and method-level configurations."""
+ super().__init__(*args, **kwargs)
+ self._add_template_signing_steps_config: SdkConfig = {
+ "environment": Environment.RESTAPI
+ }
+
+ def set_add_template_signing_steps_config(self, config: SdkConfig):
+ """
+ Sets method-level configuration for add_template_signing_steps.
+
+ :param SdkConfig config: Configuration dictionary to override service-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._add_template_signing_steps_config = config
+ return self
+
+ @cast_models
+ def add_template_signing_steps(
+ self,
+ request_body: AddTemplateSigningStepsRequest,
+ template_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Any:
+ """Add template signing steps
+
+ :param request_body: The request body.
+ :type request_body: AddTemplateSigningStepsRequest
+ :param template_id: template_id
+ :type template_id: str
+ :param accept: accept
+ :type accept: str
+ ...
+ :raises RequestError: Raised when a request fails, with optional HTTP status code and details.
+ ...
+ :return: The parsed response data.
+ :rtype: Any
+ """
+
+ Validator(AddTemplateSigningStepsRequest).is_nullable().validate(request_body)
+ Validator(str).validate(template_id)
+ Validator(str).is_nullable().validate(accept)
+
+ resolved_config = self._get_resolved_config(
+ self._add_template_signing_steps_config, request_config
+ )
+
+ serialized_request = (
+ Serializer(
+ f"{resolved_config.get('base_url') or self.base_url or Environment.RESTAPI.url or Environment.DEFAULT.url}/template/{{template_id}}/signing_steps",
+ [self.get_access_token(resolved_config)],
+ resolved_config,
+ )
+ .add_header("Accept", accept)
+ .add_path("template_id", template_id)
+ .serialize()
+ .set_method("POST")
+ .set_body(request_body)
+ )
+
+ response, _, _ = self.send_request(serialized_request)
+ return response
diff --git a/src/signplus/services/templates.py b/src/signplus/services/templates.py
new file mode 100644
index 0000000..c71a075
--- /dev/null
+++ b/src/signplus/services/templates.py
@@ -0,0 +1,74 @@
+from typing import Any, Optional, Union
+from .utils.validator import Validator
+from .utils.base_service import BaseService
+from ..net.transport.serializer import Serializer
+from ..net.sdk_config import SdkConfig
+from ..net.environment.environment import Environment
+from ..models.utils.cast_models import cast_models
+from ..models import ListTemplatesRequest
+
+
+class TemplatesService(BaseService):
+ """
+ Service class for TemplatesService operations.
+ Provides methods to interact with TemplatesService-related API endpoints.
+ Inherits common functionality from BaseService including authentication and request handling.
+ """
+
+ def __init__(self, *args, **kwargs):
+ """Initialize the service and method-level configurations."""
+ super().__init__(*args, **kwargs)
+ self._list_templates_config: SdkConfig = {"environment": Environment.RESTAPI}
+
+ def set_list_templates_config(self, config: SdkConfig):
+ """
+ Sets method-level configuration for list_templates.
+
+ :param SdkConfig config: Configuration dictionary to override service-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._list_templates_config = config
+ return self
+
+ @cast_models
+ def list_templates(
+ self,
+ request_body: ListTemplatesRequest,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Any:
+ """List templates
+
+ :param request_body: The request body.
+ :type request_body: ListTemplatesRequest
+ :param accept: accept
+ :type accept: str
+ ...
+ :raises RequestError: Raised when a request fails, with optional HTTP status code and details.
+ ...
+ :return: The parsed response data.
+ :rtype: Any
+ """
+
+ Validator(ListTemplatesRequest).is_nullable().validate(request_body)
+ Validator(str).is_nullable().validate(accept)
+
+ resolved_config = self._get_resolved_config(
+ self._list_templates_config, request_config
+ )
+
+ serialized_request = (
+ Serializer(
+ f"{resolved_config.get('base_url') or self.base_url or Environment.RESTAPI.url or Environment.DEFAULT.url}/templates",
+ [self.get_access_token(resolved_config)],
+ resolved_config,
+ )
+ .add_header("Accept", accept)
+ .serialize()
+ .set_method("POST")
+ .set_body(request_body)
+ )
+
+ response, _, _ = self.send_request(serialized_request)
+ return response
diff --git a/src/signplus/services/utils/base_service.py b/src/signplus/services/utils/base_service.py
index db2e2d5..4db3a29 100644
--- a/src/signplus/services/utils/base_service.py
+++ b/src/signplus/services/utils/base_service.py
@@ -1,4 +1,4 @@
-from typing import Any, Dict, Tuple, Generator
+from typing import Any, Dict, Tuple, Generator, TYPE_CHECKING
from enum import Enum
from .default_headers import DefaultHeaders, DefaultHeadersKeys
@@ -7,11 +7,13 @@
from ...net.transport.request import Request
from ...net.request_chain.request_chain import RequestChain
-from ...net.request_chain.handlers.hook_handler import HookHandler
from ...net.request_chain.handlers.http_handler import HttpHandler
from ...net.headers.access_token_auth import AccessTokenAuth
from ...net.request_chain.handlers.retry_handler import RetryHandler
+if TYPE_CHECKING:
+ from ...net.sdk_config import SdkConfig
+
class BaseService:
"""
@@ -27,9 +29,10 @@ def __init__(self, base_url: str) -> None:
:param str base_url: The base URL for the service. Defaults to None.
"""
- self.base_url = base_url
+ self.base_url = base_url.rstrip("/") if base_url else base_url
self._default_headers = DefaultHeaders()
self._timeout = 60000
+ self._service_config: "SdkConfig" = {}
self._update_request_handler()
@@ -43,13 +46,19 @@ def set_access_token(self, access_token: str):
return self
- def get_access_token(self) -> BaseHeader:
+ def get_access_token(self, resolved_config: "SdkConfig" = None) -> BaseHeader:
"""
- Get the access auth header.
+ Get the access auth header, with optional config overrides.
+ :param SdkConfig resolved_config: Optional resolved configuration for overrides.
:return: The access auth header.
:rtype: BaseHeader
"""
+ if resolved_config and (
+ "token" in resolved_config or "access_token" in resolved_config
+ ):
+ token = resolved_config.get("token") or resolved_config.get("access_token")
+ return AccessTokenAuth(token)
return self._default_headers.get_header(DefaultHeadersKeys.ACCESS_AUTH)
def set_timeout(self, timeout: int):
@@ -70,10 +79,78 @@ def set_base_url(self, base_url: str):
:param str base_url: The base URL to be set.
"""
- self.base_url = base_url
+ self.base_url = base_url.rstrip("/") if base_url else base_url
+
+ return self
+
+ def set_config(self, config: "SdkConfig"):
+ """
+ Sets service-level configuration that applies to all methods in this service.
+ :param SdkConfig config: Configuration dictionary to override SDK-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._service_config = config
return self
+ @staticmethod
+ def _deep_merge(base: dict, override: dict) -> dict:
+ """
+ Recursively merges two dictionaries. Nested dicts are merged key-by-key so
+ that a partial override (e.g. ``{"retry": {"attempts": 5}}``) only overwrites
+ the keys it specifies instead of replacing the entire nested dict.
+
+ Every dict value from ``override`` is recursed into (creating a fresh dict),
+ so override sources are never shared by reference in the result. Unoverridden
+ nested values from ``base`` are shallow-copied at the top level via ``dict(base)``;
+ configs are consumed read-only downstream so this is intentional.
+
+ :param dict base: The base dictionary.
+ :param dict override: Values to merge on top of base.
+ :return: A new merged dictionary.
+ :rtype: dict
+ """
+ merged = dict(base)
+ for key, value in override.items():
+ if isinstance(value, dict):
+ base_node = merged.get(key)
+ merged[key] = BaseService._deep_merge(
+ base_node if isinstance(base_node, dict) else {}, value
+ )
+ else:
+ merged[key] = value
+ return merged
+
+ def _get_resolved_config(
+ self, method_config: "SdkConfig" = None, request_config: "SdkConfig" = None
+ ) -> "SdkConfig":
+ """
+ Resolves configuration overrides from the hierarchy: request_config > method_config > service_config.
+ Merges override configs into a single dictionary using deep merge so that partial
+ overrides for nested dicts (e.g. ``retry``) only replace the specified keys.
+ SDK defaults are used as fallbacks where these overrides are not provided.
+
+ :param SdkConfig method_config: Method-level configuration override.
+ :param SdkConfig request_config: Request-level configuration override.
+ :return: Merged configuration with all overrides applied.
+ :rtype: SdkConfig
+ """
+ resolved: "SdkConfig" = {}
+
+ # Apply service config
+ if self._service_config:
+ resolved = BaseService._deep_merge(resolved, self._service_config)
+
+ # Apply method config
+ if method_config:
+ resolved = BaseService._deep_merge(resolved, method_config)
+
+ # Apply request config
+ if request_config:
+ resolved = BaseService._deep_merge(resolved, request_config)
+
+ return resolved
+
def send_request(self, request: Request) -> Tuple[Dict, int, str]:
"""
Sends the given request.
@@ -83,6 +160,7 @@ def send_request(self, request: Request) -> Tuple[Dict, int, str]:
:rtype: Tuple[Dict, int, str]
"""
response = self._request_handler.send(request)
+ self._last_response = response
return (
response.body,
response.status,
@@ -122,7 +200,6 @@ def _get_request_handler(self) -> RequestChain:
"""
return (
RequestChain()
- .add_handler(HookHandler())
.add_handler(RetryHandler())
.add_handler(HttpHandler(self._timeout))
)
diff --git a/src/signplus/services/void.py b/src/signplus/services/void.py
new file mode 100644
index 0000000..b0decec
--- /dev/null
+++ b/src/signplus/services/void.py
@@ -0,0 +1,73 @@
+from typing import Any, Optional, Union
+from .utils.validator import Validator
+from .utils.base_service import BaseService
+from ..net.transport.serializer import Serializer
+from ..net.sdk_config import SdkConfig
+from ..net.environment.environment import Environment
+from ..models.utils.cast_models import cast_models
+
+
+class VoidService(BaseService):
+ """
+ Service class for VoidService operations.
+ Provides methods to interact with VoidService-related API endpoints.
+ Inherits common functionality from BaseService including authentication and request handling.
+ """
+
+ def __init__(self, *args, **kwargs):
+ """Initialize the service and method-level configurations."""
+ super().__init__(*args, **kwargs)
+ self._void_envelope_config: SdkConfig = {"environment": Environment.RESTAPI}
+
+ def set_void_envelope_config(self, config: SdkConfig):
+ """
+ Sets method-level configuration for void_envelope.
+
+ :param SdkConfig config: Configuration dictionary to override service-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._void_envelope_config = config
+ return self
+
+ @cast_models
+ def void_envelope(
+ self,
+ envelope_id: str,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Any:
+ """Void envelope
+
+ :param envelope_id: envelope_id
+ :type envelope_id: str
+ :param accept: accept
+ :type accept: str
+ ...
+ :raises RequestError: Raised when a request fails, with optional HTTP status code and details.
+ ...
+ :return: The parsed response data.
+ :rtype: Any
+ """
+
+ Validator(str).validate(envelope_id)
+ Validator(str).is_nullable().validate(accept)
+
+ resolved_config = self._get_resolved_config(
+ self._void_envelope_config, request_config
+ )
+
+ serialized_request = (
+ Serializer(
+ f"{resolved_config.get('base_url') or self.base_url or Environment.RESTAPI.url or Environment.DEFAULT.url}/envelope/{{envelope_id}}/void",
+ [self.get_access_token(resolved_config)],
+ resolved_config,
+ )
+ .add_header("Accept", accept)
+ .add_path("envelope_id", envelope_id)
+ .serialize()
+ .set_method("PUT")
+ )
+
+ response, _, _ = self.send_request(serialized_request)
+ return response
diff --git a/src/signplus/services/webhook.py b/src/signplus/services/webhook.py
new file mode 100644
index 0000000..5de9289
--- /dev/null
+++ b/src/signplus/services/webhook.py
@@ -0,0 +1,74 @@
+from typing import Any, Optional, Union
+from .utils.validator import Validator
+from .utils.base_service import BaseService
+from ..net.transport.serializer import Serializer
+from ..net.sdk_config import SdkConfig
+from ..net.environment.environment import Environment
+from ..models.utils.cast_models import cast_models
+from ..models import CreateWebhookRequest
+
+
+class WebhookService(BaseService):
+ """
+ Service class for WebhookService operations.
+ Provides methods to interact with WebhookService-related API endpoints.
+ Inherits common functionality from BaseService including authentication and request handling.
+ """
+
+ def __init__(self, *args, **kwargs):
+ """Initialize the service and method-level configurations."""
+ super().__init__(*args, **kwargs)
+ self._create_webhook_config: SdkConfig = {"environment": Environment.RESTAPI}
+
+ def set_create_webhook_config(self, config: SdkConfig):
+ """
+ Sets method-level configuration for create_webhook.
+
+ :param SdkConfig config: Configuration dictionary to override service-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._create_webhook_config = config
+ return self
+
+ @cast_models
+ def create_webhook(
+ self,
+ request_body: CreateWebhookRequest,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Any:
+ """Create webhook
+
+ :param request_body: The request body.
+ :type request_body: CreateWebhookRequest
+ :param accept: accept
+ :type accept: str
+ ...
+ :raises RequestError: Raised when a request fails, with optional HTTP status code and details.
+ ...
+ :return: The parsed response data.
+ :rtype: Any
+ """
+
+ Validator(CreateWebhookRequest).is_nullable().validate(request_body)
+ Validator(str).is_nullable().validate(accept)
+
+ resolved_config = self._get_resolved_config(
+ self._create_webhook_config, request_config
+ )
+
+ serialized_request = (
+ Serializer(
+ f"{resolved_config.get('base_url') or self.base_url or Environment.RESTAPI.url or Environment.DEFAULT.url}/webhook",
+ [self.get_access_token(resolved_config)],
+ resolved_config,
+ )
+ .add_header("Accept", accept)
+ .serialize()
+ .set_method("POST")
+ .set_body(request_body)
+ )
+
+ response, _, _ = self.send_request(serialized_request)
+ return response
diff --git a/src/signplus/services/webhook_id.py b/src/signplus/services/webhook_id.py
new file mode 100644
index 0000000..5aa6d88
--- /dev/null
+++ b/src/signplus/services/webhook_id.py
@@ -0,0 +1,65 @@
+from typing import Any, Optional
+from .utils.validator import Validator
+from .utils.base_service import BaseService
+from ..net.transport.serializer import Serializer
+from ..net.sdk_config import SdkConfig
+from ..net.environment.environment import Environment
+from ..models.utils.cast_models import cast_models
+
+
+class WebhookIdService(BaseService):
+ """
+ Service class for WebhookIdService operations.
+ Provides methods to interact with WebhookIdService-related API endpoints.
+ Inherits common functionality from BaseService including authentication and request handling.
+ """
+
+ def __init__(self, *args, **kwargs):
+ """Initialize the service and method-level configurations."""
+ super().__init__(*args, **kwargs)
+ self._delete_webhook_config: SdkConfig = {"environment": Environment.RESTAPI}
+
+ def set_delete_webhook_config(self, config: SdkConfig):
+ """
+ Sets method-level configuration for delete_webhook.
+
+ :param SdkConfig config: Configuration dictionary to override service-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._delete_webhook_config = config
+ return self
+
+ @cast_models
+ def delete_webhook(
+ self, webhook_id: str, *, request_config: Optional[SdkConfig] = None
+ ) -> Any:
+ """Delete webhook
+
+ :param webhook_id: webhook_id
+ :type webhook_id: str
+ ...
+ :raises RequestError: Raised when a request fails, with optional HTTP status code and details.
+ ...
+ :return: The parsed response data.
+ :rtype: Any
+ """
+
+ Validator(str).validate(webhook_id)
+
+ resolved_config = self._get_resolved_config(
+ self._delete_webhook_config, request_config
+ )
+
+ serialized_request = (
+ Serializer(
+ f"{resolved_config.get('base_url') or self.base_url or Environment.RESTAPI.url or Environment.DEFAULT.url}/webhook/{{webhook_id}}",
+ [self.get_access_token(resolved_config)],
+ resolved_config,
+ )
+ .add_path("webhook_id", webhook_id)
+ .serialize()
+ .set_method("DELETE")
+ )
+
+ response, _, _ = self.send_request(serialized_request)
+ return response
diff --git a/src/signplus/services/webhooks.py b/src/signplus/services/webhooks.py
new file mode 100644
index 0000000..beb9c66
--- /dev/null
+++ b/src/signplus/services/webhooks.py
@@ -0,0 +1,74 @@
+from typing import Any, Optional, Union
+from .utils.validator import Validator
+from .utils.base_service import BaseService
+from ..net.transport.serializer import Serializer
+from ..net.sdk_config import SdkConfig
+from ..net.environment.environment import Environment
+from ..models.utils.cast_models import cast_models
+from ..models import ListWebhooksRequest
+
+
+class WebhooksService(BaseService):
+ """
+ Service class for WebhooksService operations.
+ Provides methods to interact with WebhooksService-related API endpoints.
+ Inherits common functionality from BaseService including authentication and request handling.
+ """
+
+ def __init__(self, *args, **kwargs):
+ """Initialize the service and method-level configurations."""
+ super().__init__(*args, **kwargs)
+ self._list_webhooks_config: SdkConfig = {"environment": Environment.RESTAPI}
+
+ def set_list_webhooks_config(self, config: SdkConfig):
+ """
+ Sets method-level configuration for list_webhooks.
+
+ :param SdkConfig config: Configuration dictionary to override service-level defaults.
+ :return: The service instance for method chaining.
+ """
+ self._list_webhooks_config = config
+ return self
+
+ @cast_models
+ def list_webhooks(
+ self,
+ request_body: ListWebhooksRequest,
+ accept: Union[str, None],
+ *,
+ request_config: Optional[SdkConfig] = None,
+ ) -> Any:
+ """List webhooks
+
+ :param request_body: The request body.
+ :type request_body: ListWebhooksRequest
+ :param accept: accept
+ :type accept: str
+ ...
+ :raises RequestError: Raised when a request fails, with optional HTTP status code and details.
+ ...
+ :return: The parsed response data.
+ :rtype: Any
+ """
+
+ Validator(ListWebhooksRequest).is_nullable().validate(request_body)
+ Validator(str).is_nullable().validate(accept)
+
+ resolved_config = self._get_resolved_config(
+ self._list_webhooks_config, request_config
+ )
+
+ serialized_request = (
+ Serializer(
+ f"{resolved_config.get('base_url') or self.base_url or Environment.RESTAPI.url or Environment.DEFAULT.url}/webhooks",
+ [self.get_access_token(resolved_config)],
+ resolved_config,
+ )
+ .add_header("Accept", accept)
+ .serialize()
+ .set_method("POST")
+ .set_body(request_body)
+ )
+
+ response, _, _ = self.send_request(serialized_request)
+ return response