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. -[![This SDK was generated by liblab](https://raw.githubusercontent.com/liblaber/liblab-assets/main/assets/built-by-liblab-icon.svg)](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. -[![This SDK was generated by liblab](https://raw.githubusercontent.com/liblaber/liblab-assets/main/assets/built-by-liblab-icon.svg)](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